ETH Price: $2,484.19 (+3.11%)
 

Overview

Max Total Supply

1,000,000,000 TBOT

Holders

94

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
206,787.760337536696516106 TBOT

Value
$0.00
0xafa499be1e930a54A56bE7d47C483cA69c9b2309
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:
Tbot

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-09-20
*/

// SPDX-License-Identifier: MIT

/**

Website: https://www.trading-bot.pro
Telegram: https://t.me/TradingBot_channel
Twitter: https://twitter.com/TradingBOT_ERC

**/
pragma solidity 0.8.0;

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 {
    address private _owner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        _owner = msg.sender;
        emit OwnershipTransferred(address(0), msg.sender);
    }

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

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

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    )
        external
        payable
        returns (uint amountToken, uint amountETH, uint liquidity);
}

contract Tbot is IERC20, Ownable {
    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    address payable private _taxWallet;

    uint256 public _buyTax = 25;
    uint256 public _sellTax = 30;

    string private constant _name = unicode"Trading bot";
    string private constant _symbol = unicode"TBOT";
    uint256 private constant _tTotal = 1000000000 ether;
    uint256 public _maxTxAmount = (_tTotal * 1) / 100;
    uint256 public _maxWalletSize = (_tTotal * 1) / 100;
    uint256 private _taxSwapThreshold = (_tTotal * 1) / 100;
    uint256 private _maxTaxSwap = (_tTotal * 1) / 100;
    uint256 private _teamShare = (_tTotal * 5) / 100;

    uint256 public _whitelistBuyTax = 10;
    uint256 public _whitelistSellTax = 15;

    mapping(address => bool) public whitelist;
    uint256 private _whitelistMaxAmount = (_tTotal * 1) / 100;

    IUniswapV2Router02 private uniswapV2Router =
        IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address private uniswapV2Pair;
    bool public tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private startBlock;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TaxUpdated(
        uint256 _buyTax,
        uint256 _sellTax,
        uint256 _whitelistBuyTax,
        uint256 _whitelistSellTax
    );

    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        _taxWallet = payable(msg.sender);
        _balances[msg.sender] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), msg.sender, _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 18;
    }

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

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

    function transfer(
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(msg.sender, 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(msg.sender, spender, amount);
        return true;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender] - amount);
        return true;
    }

    function _approve(address owner, address spender, uint256 amount) private {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

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

        // swap tokens for eth
        uint256 contractTokenBalance = balanceOf(address(this));
        if (
            !inSwap &&
            to == uniswapV2Pair &&
            swapEnabled &&
            contractTokenBalance > _taxSwapThreshold
        ) {
            swapTokensForEth(
                min(amount, min(contractTokenBalance, _maxTaxSwap))
            );
            uint256 contractETHBalance = address(this).balance;
            if (contractETHBalance > 0) {
                sendETHToFee(address(this).balance);
            }
        }

        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)] + taxAmount;
            emit Transfer(from, address(this), taxAmount);
        }

        _balances[from] = _balances[from] - amount;
        _balances[to] = _balances[to] + amount - taxAmount;
        emit Transfer(from, to, amount - taxAmount);
    }

    function _getTaxAmount(
        address from,
        address to,
        uint256 amount
    ) private view returns (uint256) {
        uint256 taxAmount = 0;
        if (
            from != owner() &&
            to != owner() &&
            !whitelist[to] &&
            !whitelist[from]
        ) {
            // Ordinary purchase
            if (
                from == uniswapV2Pair &&
                to != address(uniswapV2Router) &&
                !_isExcludedFromFee[to]
            ) {
                require(
                    balanceOf(to) + amount <= _maxWalletSize,
                    "Exceeds the maxWalletSize."
                );
                taxAmount = block.number > startBlock + 1
                    ? (amount * _buyTax) / 100
                    : (amount * 70) / 100;
            }

            // Ordinary sale
            if (to == uniswapV2Pair && from != address(this)) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                taxAmount = block.number > startBlock + 1
                    ? (amount * _sellTax) / 100
                    : (amount * 70) / 100;
            }
        } else if (whitelist[to] || whitelist[from]) {
            // White List purchase
            if (
                from == uniswapV2Pair &&
                to != address(uniswapV2Router) &&
                !_isExcludedFromFee[to]
            ) {
                require(
                    balanceOf(to) + amount <= _whitelistMaxAmount,
                    "Exceeds the _whitelistMaxAmount."
                );
                taxAmount = (amount * _whitelistBuyTax) / 100;
            }
            // White List Sale
            if (to == uniswapV2Pair && from != address(this)) {
                require(
                    amount <= _whitelistMaxAmount,
                    "Exceeds the _whitelistMaxAmount."
                );
                taxAmount = (amount * _whitelistSellTax) / 100;
            }
        }

        return taxAmount;
    }

    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        if (tokenAmount == 0) {
            return;
        }
        if (!tradingOpen) {
            return;
        }
        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
        );
    }

    // reduceTax
    function reduceTax(
        uint256 buyTax,
        uint256 sellTax,
        uint256 whitelistBuyTax,
        uint256 whitelistSellTax
    ) external onlyOwner {
        require(
            buyTax <= _buyTax &&
                sellTax <= _sellTax &&
                whitelistBuyTax <= _whitelistBuyTax &&
                whitelistSellTax <= _whitelistSellTax,
            "Invalid tax"
        );
        _buyTax = buyTax;
        _sellTax = sellTax;
        _whitelistBuyTax = whitelistBuyTax;
        _whitelistSellTax = whitelistSellTax;
        emit TaxUpdated(_buyTax, _sellTax, _whitelistBuyTax, _whitelistSellTax);
    }

    function removeLimits() external onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        _whitelistMaxAmount = _tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

    function openTrading() external onlyOwner {
        require(!tradingOpen, "trading is already open");

        _approve(address(this), address(uniswapV2Router), _tTotal);

        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(
            address(this),
            uniswapV2Router.WETH()
        );

        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)) - _teamShare,
            0,
            0,
            owner(),
            block.timestamp
        );

        swapEnabled = true;
        tradingOpen = true;
        startBlock = block.number;
    }

    function manualSwap() external {
        require(msg.sender == _taxWallet);
        uint256 tokenBalance = balanceOf(address(this));
        if (tokenBalance > 0) {
            swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            sendETHToFee(ethBalance);
        }
    }

    function addWhitelist(address[] calldata addresses) external onlyOwner {
        for (uint256 i = 0; i < addresses.length; i++) {
            whitelist[addresses[i]] = true;
        }
    }

    function removeWhitelist(address[] calldata addresses) external onlyOwner {
        for (uint256 i = 0; i < addresses.length; i++) {
            whitelist[addresses[i]] = false;
        }
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_buyTax","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_sellTax","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_whitelistBuyTax","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_whitelistSellTax","type":"uint256"}],"name":"TaxUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_buyTax","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":"_sellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_whitelistBuyTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_whitelistSellTax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"addWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyTax","type":"uint256"},{"internalType":"uint256","name":"sellTax","type":"uint256"},{"internalType":"uint256","name":"whitelistBuyTax","type":"uint256"},{"internalType":"uint256","name":"whitelistSellTax","type":"uint256"}],"name":"reduceTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"}],"name":"removeWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526019600555601e600655606460016b033b2e3c9fd0803ce80000006200002b919062000542565b6200003791906200050a565b600755606460016b033b2e3c9fd0803ce800000062000057919062000542565b6200006391906200050a565b600855606460016b033b2e3c9fd0803ce800000062000083919062000542565b6200008f91906200050a565b600955606460016b033b2e3c9fd0803ce8000000620000af919062000542565b620000bb91906200050a565b600a55606460056b033b2e3c9fd0803ce8000000620000db919062000542565b620000e791906200050a565b600b55600a600c55600f600d55606460016b033b2e3c9fd0803ce800000062000111919062000542565b6200011d91906200050a565b600f55737a250d5630b4cf539739df2c5dacb4c659f2488d601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601160146101000a81548160ff0219169083151502179055506000601160156101000a81548160ff0219169083151502179055506000601160166101000a81548160ff021916908315150217905550348015620001d357600080fd5b50336000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a333600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506b033b2e3c9fd0803ce8000000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016003600062000316620004b360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b033b2e3c9fd0803ce8000000604051620004a59190620004ed565b60405180910390a36200060b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620004e781620005a3565b82525050565b6000602082019050620005046000830184620004dc565b92915050565b60006200051782620005a3565b91506200052483620005a3565b925082620005375762000536620005dc565b5b828204905092915050565b60006200054f82620005a3565b91506200055c83620005a3565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620005985762000597620005ad565b5b828202905092915050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b612f80806200061b6000396000f3fe60806040526004361061016a5760003560e01c80637d1db4a5116100d1578063c9567bf91161008a578063dd62ed3e11610064578063dd62ed3e14610505578063edac985b14610542578063fe00e0df1461056b578063ffb54a991461059457610171565b8063c9567bf914610498578063ca9ec199146104af578063caa2dc83146104da57610171565b80637d1db4a5146103725780638da5cb5b1461039d5780638f9a55c0146103c857806395d89b41146103f35780639b19251a1461041e578063a9059cbb1461045b57610171565b806342a110951161012357806342a110951461029a57806350ae1c67146102c557806351bc3c85146102f057806370a0823114610307578063715018a614610344578063751039fc1461035b57610171565b806306fdde0314610176578063095ea7b3146101a157806318160ddd146101de578063232452161461020957806323b872dd14610232578063313ce5671461026f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105bf565b6040516101989190612a69565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612521565b6105fc565b6040516101d59190612a4e565b60405180910390f35b3480156101ea57600080fd5b506101f3610613565b6040516102009190612b8b565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b919061255d565b610627565b005b34801561023e57600080fd5b50610259600480360381019061025491906124d2565b610780565b6040516102669190612a4e565b60405180910390f35b34801561027b57600080fd5b5061028461082a565b6040516102919190612c45565b60405180910390f35b3480156102a657600080fd5b506102af610833565b6040516102bc9190612b8b565b60405180910390f35b3480156102d157600080fd5b506102da610839565b6040516102e79190612b8b565b60405180910390f35b3480156102fc57600080fd5b5061030561083f565b005b34801561031357600080fd5b5061032e60048036038101906103299190612444565b6108d5565b60405161033b9190612b8b565b60405180910390f35b34801561035057600080fd5b5061035961091e565b005b34801561036757600080fd5b50610370610a6a565b005b34801561037e57600080fd5b50610387610b76565b6040516103949190612b8b565b60405180910390f35b3480156103a957600080fd5b506103b2610b7c565b6040516103bf91906129a9565b60405180910390f35b3480156103d457600080fd5b506103dd610ba5565b6040516103ea9190612b8b565b60405180910390f35b3480156103ff57600080fd5b50610408610bab565b6040516104159190612a69565b60405180910390f35b34801561042a57600080fd5b5061044560048036038101906104409190612444565b610be8565b6040516104529190612a4e565b60405180910390f35b34801561046757600080fd5b50610482600480360381019061047d9190612521565b610c08565b60405161048f9190612a4e565b60405180910390f35b3480156104a457600080fd5b506104ad610c1f565b005b3480156104bb57600080fd5b506104c4611058565b6040516104d19190612b8b565b60405180910390f35b3480156104e657600080fd5b506104ef61105e565b6040516104fc9190612b8b565b60405180910390f35b34801561051157600080fd5b5061052c60048036038101906105279190612496565b611064565b6040516105399190612b8b565b60405180910390f35b34801561054e57600080fd5b506105696004803603810190610564919061255d565b6110eb565b005b34801561057757600080fd5b50610592600480360381019061058d91906125f1565b611244565b005b3480156105a057600080fd5b506105a96113a8565b6040516105b69190612a4e565b60405180910390f35b60606040518060400160405280600b81526020017f54726164696e6720626f74000000000000000000000000000000000000000000815250905090565b60006106093384846113bb565b6001905092915050565b60006b033b2e3c9fd0803ce8000000905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ac90612b0b565b60405180910390fd5b60005b8282905081101561077b576000600e6000858585818110610702577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906107179190612444565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061077390612e64565b9150506106b8565b505050565b600061078d8484846114a6565b61081f843384600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461081a9190612d96565b6113bb565b600190509392505050565b60006012905090565b60055481565b600d5481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461089957600080fd5b60006108a4306108d5565b905060008111156108b9576108b8816118db565b5b600047905060008111156108d1576108d081611bfd565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a390612b0b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aef90612b0b565b60405180910390fd5b6b033b2e3c9fd0803ce80000006007819055506b033b2e3c9fd0803ce80000006008819055506b033b2e3c9fd0803ce8000000600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6b033b2e3c9fd0803ce8000000604051610b6c9190612b8b565b60405180910390a1565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60085481565b60606040518060400160405280600481526020017f54424f5400000000000000000000000000000000000000000000000000000000815250905090565b600e6020528060005260406000206000915054906101000a900460ff1681565b6000610c153384846114a6565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca490612b0b565b60405180910390fd5b601160149054906101000a900460ff1615610cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf490612b6b565b60405180910390fd5b610d3630601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166b033b2e3c9fd0803ce80000006113bb565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d9e57600080fd5b505afa158015610db2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd6919061246d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610e5a57600080fd5b505afa158015610e6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e92919061246d565b6040518363ffffffff1660e01b8152600401610eaf9291906129c4565b602060405180830381600087803b158015610ec957600080fd5b505af1158015610edd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f01919061246d565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730600b54610f8d306108d5565b610f979190612d96565b600080610fa2610b7c565b426040518863ffffffff1660e01b8152600401610fc4969594939291906129ed565b6060604051808303818588803b158015610fdd57600080fd5b505af1158015610ff1573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061101691906125a2565b5050506001601160166101000a81548160ff0219169083151502179055506001601160146101000a81548160ff02191690831515021790555043601281905550565b60065481565b600c5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611179576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117090612b0b565b60405180910390fd5b60005b8282905081101561123f576001600e60008585858181106111c6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906111db9190612444565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061123790612e64565b91505061117c565b505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c990612b0b565b60405180910390fd5b60055484111580156112e657506006548311155b80156112f45750600c548211155b80156113025750600d548111155b611341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133890612aeb565b60405180910390fd5b836005819055508260068190555081600c8190555080600d819055507f42f773a26531834b9d9fb1891f7bf40fc29c7c0fa47165b80c9ac2c1ff1b80c3600554600654600c54600d5460405161139a9493929190612c00565b60405180910390a150505050565b601160149054906101000a900460ff1681565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114999190612b8b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150d90612a8b565b60405180910390fd5b60008111611559576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155090612b2b565b60405180910390fd5b6000611566848484611c69565b90506000611573306108d5565b9050601160159054906101000a900460ff161580156115df5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156115f75750601160169054906101000a900460ff165b8015611604575060095481115b15611640576116266116218461161c84600a5461238d565b61238d565b6118db565b6000479050600081111561163e5761163d47611bfd565b5b505b600082111561173d5781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116949190612cb5565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117349190612b8b565b60405180910390a35b82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117889190612d96565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508183600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118179190612cb5565b6118219190612d96565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84866118bf9190612d96565b6040516118cc9190612b8b565b60405180910390a35050505050565b6001601160156101000a81548160ff021916908315150217905550600081141561190457611bdf565b601160149054906101000a900460ff1661191d57611bdf565b6000600267ffffffffffffffff811115611960577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561198e5781602001602082028036833780820191505090505b50905030816000815181106119cc577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611a6e57600080fd5b505afa158015611a82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa6919061246d565b81600181518110611ae0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b4730601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113bb565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611bab959493929190612ba6565b600060405180830381600087803b158015611bc557600080fd5b505af1158015611bd9573d6000803e3d6000fd5b50505050505b6000601160156101000a81548160ff02191690831515021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c65573d6000803e3d6000fd5b5050565b60008060009050611c78610b7c565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015611ce65750611cb6610b7c565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611d3c5750600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d925750600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561206f57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015611e425750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611e985750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f465760085483611eaa866108d5565b611eb49190612cb5565b1115611ef5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eec90612b4b565b60405180910390fd5b6001601254611f049190612cb5565b4311611f28576064604684611f199190612d3c565b611f239190612d0b565b611f43565b606460055484611f389190612d3c565b611f429190612d0b565b5b90505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611fcf57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561206a57600754831115612019576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201090612aab565b60405180910390fd5b60016012546120289190612cb5565b431161204c57606460468461203d9190612d3c565b6120479190612d0b565b612067565b60646006548461205c9190612d3c565b6120669190612d0b565b5b90505b612382565b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121105750600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561238157601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156121c05750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156122165750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561229057600f5483612228866108d5565b6122329190612cb5565b1115612273576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226a90612acb565b60405180910390fd5b6064600c54846122839190612d3c565b61228d9190612d0b565b90505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561231957503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561238057600f54831115612363576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235a90612acb565b60405180910390fd5b6064600d54846123739190612d3c565b61237d9190612d0b565b90505b5b5b809150509392505050565b600081831161239c578261239e565b815b905092915050565b6000813590506123b581612f1c565b92915050565b6000815190506123ca81612f1c565b92915050565b60008083601f8401126123e257600080fd5b8235905067ffffffffffffffff8111156123fb57600080fd5b60208301915083602082028301111561241357600080fd5b9250929050565b60008135905061242981612f33565b92915050565b60008151905061243e81612f33565b92915050565b60006020828403121561245657600080fd5b6000612464848285016123a6565b91505092915050565b60006020828403121561247f57600080fd5b600061248d848285016123bb565b91505092915050565b600080604083850312156124a957600080fd5b60006124b7858286016123a6565b92505060206124c8858286016123a6565b9150509250929050565b6000806000606084860312156124e757600080fd5b60006124f5868287016123a6565b9350506020612506868287016123a6565b92505060406125178682870161241a565b9150509250925092565b6000806040838503121561253457600080fd5b6000612542858286016123a6565b92505060206125538582860161241a565b9150509250929050565b6000806020838503121561257057600080fd5b600083013567ffffffffffffffff81111561258a57600080fd5b612596858286016123d0565b92509250509250929050565b6000806000606084860312156125b757600080fd5b60006125c58682870161242f565b93505060206125d68682870161242f565b92505060406125e78682870161242f565b9150509250925092565b6000806000806080858703121561260757600080fd5b60006126158782880161241a565b94505060206126268782880161241a565b93505060406126378782880161241a565b92505060606126488782880161241a565b91505092959194509250565b6000612660838361266c565b60208301905092915050565b61267581612dca565b82525050565b61268481612dca565b82525050565b600061269582612c70565b61269f8185612c93565b93506126aa83612c60565b8060005b838110156126db5781516126c28882612654565b97506126cd83612c86565b9250506001810190506126ae565b5085935050505092915050565b6126f181612ddc565b82525050565b61270081612e1f565b82525050565b600061271182612c7b565b61271b8185612ca4565b935061272b818560208601612e31565b61273481612f0b565b840191505092915050565b600061274c602383612ca4565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006127b2601983612ca4565b91507f4578636565647320746865205f6d61785478416d6f756e742e000000000000006000830152602082019050919050565b60006127f2602083612ca4565b91507f4578636565647320746865205f77686974656c6973744d6178416d6f756e742e6000830152602082019050919050565b6000612832600b83612ca4565b91507f496e76616c6964207461780000000000000000000000000000000000000000006000830152602082019050919050565b6000612872602083612ca4565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006128b2602983612ca4565b91507f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008301527f7468616e207a65726f00000000000000000000000000000000000000000000006020830152604082019050919050565b6000612918601a83612ca4565b91507f4578636565647320746865206d617857616c6c657453697a652e0000000000006000830152602082019050919050565b6000612958601783612ca4565b91507f74726164696e6720697320616c7265616479206f70656e0000000000000000006000830152602082019050919050565b61299481612e08565b82525050565b6129a381612e12565b82525050565b60006020820190506129be600083018461267b565b92915050565b60006040820190506129d9600083018561267b565b6129e6602083018461267b565b9392505050565b600060c082019050612a02600083018961267b565b612a0f602083018861298b565b612a1c60408301876126f7565b612a2960608301866126f7565b612a36608083018561267b565b612a4360a083018461298b565b979650505050505050565b6000602082019050612a6360008301846126e8565b92915050565b60006020820190508181036000830152612a838184612706565b905092915050565b60006020820190508181036000830152612aa48161273f565b9050919050565b60006020820190508181036000830152612ac4816127a5565b9050919050565b60006020820190508181036000830152612ae4816127e5565b9050919050565b60006020820190508181036000830152612b0481612825565b9050919050565b60006020820190508181036000830152612b2481612865565b9050919050565b60006020820190508181036000830152612b44816128a5565b9050919050565b60006020820190508181036000830152612b648161290b565b9050919050565b60006020820190508181036000830152612b848161294b565b9050919050565b6000602082019050612ba0600083018461298b565b92915050565b600060a082019050612bbb600083018861298b565b612bc860208301876126f7565b8181036040830152612bda818661268a565b9050612be9606083018561267b565b612bf6608083018461298b565b9695505050505050565b6000608082019050612c15600083018761298b565b612c22602083018661298b565b612c2f604083018561298b565b612c3c606083018461298b565b95945050505050565b6000602082019050612c5a600083018461299a565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612cc082612e08565b9150612ccb83612e08565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612d0057612cff612ead565b5b828201905092915050565b6000612d1682612e08565b9150612d2183612e08565b925082612d3157612d30612edc565b5b828204905092915050565b6000612d4782612e08565b9150612d5283612e08565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612d8b57612d8a612ead565b5b828202905092915050565b6000612da182612e08565b9150612dac83612e08565b925082821015612dbf57612dbe612ead565b5b828203905092915050565b6000612dd582612de8565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612e2a82612e08565b9050919050565b60005b83811015612e4f578082015181840152602081019050612e34565b83811115612e5e576000848401525b50505050565b6000612e6f82612e08565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612ea257612ea1612ead565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b612f2581612dca565b8114612f3057600080fd5b50565b612f3c81612e08565b8114612f4757600080fd5b5056fea26469706673582212205cc75aa4789593b376a6443e276bb2e735f8025182878b2075212ad3f7acdbef64736f6c63430008000033

Deployed Bytecode

0x60806040526004361061016a5760003560e01c80637d1db4a5116100d1578063c9567bf91161008a578063dd62ed3e11610064578063dd62ed3e14610505578063edac985b14610542578063fe00e0df1461056b578063ffb54a991461059457610171565b8063c9567bf914610498578063ca9ec199146104af578063caa2dc83146104da57610171565b80637d1db4a5146103725780638da5cb5b1461039d5780638f9a55c0146103c857806395d89b41146103f35780639b19251a1461041e578063a9059cbb1461045b57610171565b806342a110951161012357806342a110951461029a57806350ae1c67146102c557806351bc3c85146102f057806370a0823114610307578063715018a614610344578063751039fc1461035b57610171565b806306fdde0314610176578063095ea7b3146101a157806318160ddd146101de578063232452161461020957806323b872dd14610232578063313ce5671461026f57610171565b3661017157005b600080fd5b34801561018257600080fd5b5061018b6105bf565b6040516101989190612a69565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c39190612521565b6105fc565b6040516101d59190612a4e565b60405180910390f35b3480156101ea57600080fd5b506101f3610613565b6040516102009190612b8b565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b919061255d565b610627565b005b34801561023e57600080fd5b50610259600480360381019061025491906124d2565b610780565b6040516102669190612a4e565b60405180910390f35b34801561027b57600080fd5b5061028461082a565b6040516102919190612c45565b60405180910390f35b3480156102a657600080fd5b506102af610833565b6040516102bc9190612b8b565b60405180910390f35b3480156102d157600080fd5b506102da610839565b6040516102e79190612b8b565b60405180910390f35b3480156102fc57600080fd5b5061030561083f565b005b34801561031357600080fd5b5061032e60048036038101906103299190612444565b6108d5565b60405161033b9190612b8b565b60405180910390f35b34801561035057600080fd5b5061035961091e565b005b34801561036757600080fd5b50610370610a6a565b005b34801561037e57600080fd5b50610387610b76565b6040516103949190612b8b565b60405180910390f35b3480156103a957600080fd5b506103b2610b7c565b6040516103bf91906129a9565b60405180910390f35b3480156103d457600080fd5b506103dd610ba5565b6040516103ea9190612b8b565b60405180910390f35b3480156103ff57600080fd5b50610408610bab565b6040516104159190612a69565b60405180910390f35b34801561042a57600080fd5b5061044560048036038101906104409190612444565b610be8565b6040516104529190612a4e565b60405180910390f35b34801561046757600080fd5b50610482600480360381019061047d9190612521565b610c08565b60405161048f9190612a4e565b60405180910390f35b3480156104a457600080fd5b506104ad610c1f565b005b3480156104bb57600080fd5b506104c4611058565b6040516104d19190612b8b565b60405180910390f35b3480156104e657600080fd5b506104ef61105e565b6040516104fc9190612b8b565b60405180910390f35b34801561051157600080fd5b5061052c60048036038101906105279190612496565b611064565b6040516105399190612b8b565b60405180910390f35b34801561054e57600080fd5b506105696004803603810190610564919061255d565b6110eb565b005b34801561057757600080fd5b50610592600480360381019061058d91906125f1565b611244565b005b3480156105a057600080fd5b506105a96113a8565b6040516105b69190612a4e565b60405180910390f35b60606040518060400160405280600b81526020017f54726164696e6720626f74000000000000000000000000000000000000000000815250905090565b60006106093384846113bb565b6001905092915050565b60006b033b2e3c9fd0803ce8000000905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106ac90612b0b565b60405180910390fd5b60005b8282905081101561077b576000600e6000858585818110610702577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906107179190612444565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061077390612e64565b9150506106b8565b505050565b600061078d8484846114a6565b61081f843384600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461081a9190612d96565b6113bb565b600190509392505050565b60006012905090565b60055481565b600d5481565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461089957600080fd5b60006108a4306108d5565b905060008111156108b9576108b8816118db565b5b600047905060008111156108d1576108d081611bfd565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109a390612b0b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aef90612b0b565b60405180910390fd5b6b033b2e3c9fd0803ce80000006007819055506b033b2e3c9fd0803ce80000006008819055506b033b2e3c9fd0803ce8000000600f819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6b033b2e3c9fd0803ce8000000604051610b6c9190612b8b565b60405180910390a1565b60075481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60085481565b60606040518060400160405280600481526020017f54424f5400000000000000000000000000000000000000000000000000000000815250905090565b600e6020528060005260406000206000915054906101000a900460ff1681565b6000610c153384846114a6565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cad576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca490612b0b565b60405180910390fd5b601160149054906101000a900460ff1615610cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf490612b6b565b60405180910390fd5b610d3630601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166b033b2e3c9fd0803ce80000006113bb565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d9e57600080fd5b505afa158015610db2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dd6919061246d565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610e5a57600080fd5b505afa158015610e6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e92919061246d565b6040518363ffffffff1660e01b8152600401610eaf9291906129c4565b602060405180830381600087803b158015610ec957600080fd5b505af1158015610edd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f01919061246d565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730600b54610f8d306108d5565b610f979190612d96565b600080610fa2610b7c565b426040518863ffffffff1660e01b8152600401610fc4969594939291906129ed565b6060604051808303818588803b158015610fdd57600080fd5b505af1158015610ff1573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061101691906125a2565b5050506001601160166101000a81548160ff0219169083151502179055506001601160146101000a81548160ff02191690831515021790555043601281905550565b60065481565b600c5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611179576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117090612b0b565b60405180910390fd5b60005b8282905081101561123f576001600e60008585858181106111c6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906111db9190612444565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061123790612e64565b91505061117c565b505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c990612b0b565b60405180910390fd5b60055484111580156112e657506006548311155b80156112f45750600c548211155b80156113025750600d548111155b611341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133890612aeb565b60405180910390fd5b836005819055508260068190555081600c8190555080600d819055507f42f773a26531834b9d9fb1891f7bf40fc29c7c0fa47165b80c9ac2c1ff1b80c3600554600654600c54600d5460405161139a9493929190612c00565b60405180910390a150505050565b601160149054906101000a900460ff1681565b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516114999190612b8b565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150d90612a8b565b60405180910390fd5b60008111611559576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155090612b2b565b60405180910390fd5b6000611566848484611c69565b90506000611573306108d5565b9050601160159054906101000a900460ff161580156115df5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156115f75750601160169054906101000a900460ff165b8015611604575060095481115b15611640576116266116218461161c84600a5461238d565b61238d565b6118db565b6000479050600081111561163e5761163d47611bfd565b5b505b600082111561173d5781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546116949190612cb5565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516117349190612b8b565b60405180910390a35b82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117889190612d96565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508183600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118179190612cb5565b6118219190612d96565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84866118bf9190612d96565b6040516118cc9190612b8b565b60405180910390a35050505050565b6001601160156101000a81548160ff021916908315150217905550600081141561190457611bdf565b601160149054906101000a900460ff1661191d57611bdf565b6000600267ffffffffffffffff811115611960577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561198e5781602001602082028036833780820191505090505b50905030816000815181106119cc577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611a6e57600080fd5b505afa158015611a82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aa6919061246d565b81600181518110611ae0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b4730601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846113bb565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611bab959493929190612ba6565b600060405180830381600087803b158015611bc557600080fd5b505af1158015611bd9573d6000803e3d6000fd5b50505050505b6000601160156101000a81548160ff02191690831515021790555050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c65573d6000803e3d6000fd5b5050565b60008060009050611c78610b7c565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015611ce65750611cb6610b7c565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611d3c5750600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d925750600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561206f57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16148015611e425750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b8015611e985750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f465760085483611eaa866108d5565b611eb49190612cb5565b1115611ef5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eec90612b4b565b60405180910390fd5b6001601254611f049190612cb5565b4311611f28576064604684611f199190612d3c565b611f239190612d0b565b611f43565b606460055484611f389190612d3c565b611f429190612d0b565b5b90505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611fcf57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561206a57600754831115612019576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161201090612aab565b60405180910390fd5b60016012546120289190612cb5565b431161204c57606460468461203d9190612d3c565b6120479190612d0b565b612067565b60646006548461205c9190612d3c565b6120669190612d0b565b5b90505b612382565b600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121105750600e60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561238157601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156121c05750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156122165750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561229057600f5483612228866108d5565b6122329190612cb5565b1115612273576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226a90612acb565b60405180910390fd5b6064600c54846122839190612d3c565b61228d9190612d0b565b90505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561231957503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b1561238057600f54831115612363576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161235a90612acb565b60405180910390fd5b6064600d54846123739190612d3c565b61237d9190612d0b565b90505b5b5b809150509392505050565b600081831161239c578261239e565b815b905092915050565b6000813590506123b581612f1c565b92915050565b6000815190506123ca81612f1c565b92915050565b60008083601f8401126123e257600080fd5b8235905067ffffffffffffffff8111156123fb57600080fd5b60208301915083602082028301111561241357600080fd5b9250929050565b60008135905061242981612f33565b92915050565b60008151905061243e81612f33565b92915050565b60006020828403121561245657600080fd5b6000612464848285016123a6565b91505092915050565b60006020828403121561247f57600080fd5b600061248d848285016123bb565b91505092915050565b600080604083850312156124a957600080fd5b60006124b7858286016123a6565b92505060206124c8858286016123a6565b9150509250929050565b6000806000606084860312156124e757600080fd5b60006124f5868287016123a6565b9350506020612506868287016123a6565b92505060406125178682870161241a565b9150509250925092565b6000806040838503121561253457600080fd5b6000612542858286016123a6565b92505060206125538582860161241a565b9150509250929050565b6000806020838503121561257057600080fd5b600083013567ffffffffffffffff81111561258a57600080fd5b612596858286016123d0565b92509250509250929050565b6000806000606084860312156125b757600080fd5b60006125c58682870161242f565b93505060206125d68682870161242f565b92505060406125e78682870161242f565b9150509250925092565b6000806000806080858703121561260757600080fd5b60006126158782880161241a565b94505060206126268782880161241a565b93505060406126378782880161241a565b92505060606126488782880161241a565b91505092959194509250565b6000612660838361266c565b60208301905092915050565b61267581612dca565b82525050565b61268481612dca565b82525050565b600061269582612c70565b61269f8185612c93565b93506126aa83612c60565b8060005b838110156126db5781516126c28882612654565b97506126cd83612c86565b9250506001810190506126ae565b5085935050505092915050565b6126f181612ddc565b82525050565b61270081612e1f565b82525050565b600061271182612c7b565b61271b8185612ca4565b935061272b818560208601612e31565b61273481612f0b565b840191505092915050565b600061274c602383612ca4565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006127b2601983612ca4565b91507f4578636565647320746865205f6d61785478416d6f756e742e000000000000006000830152602082019050919050565b60006127f2602083612ca4565b91507f4578636565647320746865205f77686974656c6973744d6178416d6f756e742e6000830152602082019050919050565b6000612832600b83612ca4565b91507f496e76616c6964207461780000000000000000000000000000000000000000006000830152602082019050919050565b6000612872602083612ca4565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006128b2602983612ca4565b91507f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008301527f7468616e207a65726f00000000000000000000000000000000000000000000006020830152604082019050919050565b6000612918601a83612ca4565b91507f4578636565647320746865206d617857616c6c657453697a652e0000000000006000830152602082019050919050565b6000612958601783612ca4565b91507f74726164696e6720697320616c7265616479206f70656e0000000000000000006000830152602082019050919050565b61299481612e08565b82525050565b6129a381612e12565b82525050565b60006020820190506129be600083018461267b565b92915050565b60006040820190506129d9600083018561267b565b6129e6602083018461267b565b9392505050565b600060c082019050612a02600083018961267b565b612a0f602083018861298b565b612a1c60408301876126f7565b612a2960608301866126f7565b612a36608083018561267b565b612a4360a083018461298b565b979650505050505050565b6000602082019050612a6360008301846126e8565b92915050565b60006020820190508181036000830152612a838184612706565b905092915050565b60006020820190508181036000830152612aa48161273f565b9050919050565b60006020820190508181036000830152612ac4816127a5565b9050919050565b60006020820190508181036000830152612ae4816127e5565b9050919050565b60006020820190508181036000830152612b0481612825565b9050919050565b60006020820190508181036000830152612b2481612865565b9050919050565b60006020820190508181036000830152612b44816128a5565b9050919050565b60006020820190508181036000830152612b648161290b565b9050919050565b60006020820190508181036000830152612b848161294b565b9050919050565b6000602082019050612ba0600083018461298b565b92915050565b600060a082019050612bbb600083018861298b565b612bc860208301876126f7565b8181036040830152612bda818661268a565b9050612be9606083018561267b565b612bf6608083018461298b565b9695505050505050565b6000608082019050612c15600083018761298b565b612c22602083018661298b565b612c2f604083018561298b565b612c3c606083018461298b565b95945050505050565b6000602082019050612c5a600083018461299a565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612cc082612e08565b9150612ccb83612e08565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612d0057612cff612ead565b5b828201905092915050565b6000612d1682612e08565b9150612d2183612e08565b925082612d3157612d30612edc565b5b828204905092915050565b6000612d4782612e08565b9150612d5283612e08565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612d8b57612d8a612ead565b5b828202905092915050565b6000612da182612e08565b9150612dac83612e08565b925082821015612dbf57612dbe612ead565b5b828203905092915050565b6000612dd582612de8565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612e2a82612e08565b9050919050565b60005b83811015612e4f578082015181840152602081019050612e34565b83811115612e5e576000848401525b50505050565b6000612e6f82612e08565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612ea257612ea1612ead565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b612f2581612dca565b8114612f3057600080fd5b50565b612f3c81612e08565b8114612f4757600080fd5b5056fea26469706673582212205cc75aa4789593b376a6443e276bb2e735f8025182878b2075212ad3f7acdbef64736f6c63430008000033

Deployed Bytecode Sourcemap

2485:10003:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4415:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5289:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4685:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12251:197;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5481:296;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4601:76;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2752:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3326:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11678:364;;;;;;;;;;;;;:::i;:::-;;4788:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1510:148;;;;;;;;;;;;;:::i;:::-;;10675:202;;;;;;;;;;;;;:::i;:::-;;2994:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1298:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3050:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4506:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3372:41;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4915:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10985:685;;;;;;;;;;;;;:::i;:::-;;2786:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3283:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5113:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12050:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10021:646;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3645:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4415:83;4452:13;4485:5;;;;;;;;;;;;;;;;;4478:12;;4415:83;:::o;5289:184::-;5389:4;5406:37;5415:10;5427:7;5436:6;5406:8;:37::i;:::-;5461:4;5454:11;;5289:184;;;;:::o;4685:95::-;4738:7;2971:16;4758:14;;4685:95;:::o;12251:197::-;1435:10;1425:20;;:6;;;;;;;;;;:20;;;1417:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;12341:9:::1;12336:105;12360:9;;:16;;12356:1;:20;12336:105;;;12424:5;12398:9;:23;12408:9;;12418:1;12408:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12398:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;12378:3;;;;;:::i;:::-;;;;12336:105;;;;12251:197:::0;;:::o;5481:296::-;5613:4;5630:36;5640:6;5648:9;5659:6;5630:9;:36::i;:::-;5677:70;5686:6;5694:10;5740:6;5706:11;:19;5718:6;5706:19;;;;;;;;;;;;;;;:31;5726:10;5706:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;5677:8;:70::i;:::-;5765:4;5758:11;;5481:296;;;;;:::o;4601:76::-;4642:5;4667:2;4660:9;;4601:76;:::o;2752:27::-;;;;:::o;3326:37::-;;;;:::o;11678:364::-;11742:10;;;;;;;;;;;11728:24;;:10;:24;;;11720:33;;;;;;11764:20;11787:24;11805:4;11787:9;:24::i;:::-;11764:47;;11841:1;11826:12;:16;11822:79;;;11859:30;11876:12;11859:16;:30::i;:::-;11822:79;11911:18;11932:21;11911:42;;11981:1;11968:10;:14;11964:71;;;11999:24;12012:10;11999:12;:24::i;:::-;11964:71;11678:364;;:::o;4788:119::-;4854:7;4881:9;:18;4891:7;4881:18;;;;;;;;;;;;;;;;4874:25;;4788:119;;;:::o;1510:148::-;1435:10;1425:20;;:6;;;;;;;;;;:20;;;1417:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;1617:1:::1;1580:40;;1601:6;::::0;::::1;;;;;;;;1580:40;;;;;;;;;;;;1648:1;1631:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1510:148::o:0;10675:202::-;1435:10;1425:20;;:6;;;;;;;;;;:20;;;1417:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;2971:16:::1;10729:12;:22;;;;2971:16;10762:14;:24;;;;2971:16;10797:19;:29;;;;10842:27;2971:16;10842:27;;;;;;:::i;:::-;;;;;;;;10675:202::o:0;2994:49::-;;;;:::o;1298:79::-;1336:7;1363:6;;;;;;;;;;;1356:13;;1298:79;:::o;3050:51::-;;;;:::o;4506:87::-;4545:13;4578:7;;;;;;;;;;;;;;;;;4571:14;;4506:87;:::o;3372:41::-;;;;;;;;;;;;;;;;;;;;;;:::o;4915:190::-;5018:4;5035:40;5045:10;5057:9;5068:6;5035:9;:40::i;:::-;5093:4;5086:11;;4915:190;;;;:::o;10985:685::-;1435:10;1425:20;;:6;;;;;;;;;;:20;;;1417:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;11047:11:::1;;;;;;;;;;;11046:12;11038:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;11099:58;11116:4;11131:15;;;;;;;;;;;2971:16;11099:8;:58::i;:::-;11204:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11186:55;;;11264:4;11284:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11186:131;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11170:13;;:147;;;;;;;;;;;;;;;;;;11330:15;;;;;;;;;;;:31;;;11369:21;11414:4;11461:10;;11434:24;11452:4;11434:9;:24::i;:::-;:37;;;;:::i;:::-;11486:1;11502::::0;11518:7:::1;:5;:7::i;:::-;11540:15;11330:236;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11593:4;11579:11;;:18;;;;;;;;;;;;;;;;;;11622:4;11608:11;;:18;;;;;;;;;;;;;;;;;;11650:12;11637:10;:25;;;;10985:685::o:0;2786:28::-;;;;:::o;3283:36::-;;;;:::o;5113:168::-;5219:7;5246:11;:18;5258:5;5246:18;;;;;;;;;;;;;;;:27;5265:7;5246:27;;;;;;;;;;;;;;;;5239:34;;5113:168;;;;:::o;12050:193::-;1435:10;1425:20;;:6;;;;;;;;;;:20;;;1417:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;12137:9:::1;12132:104;12156:9;;:16;;12152:1;:20;12132:104;;;12220:4;12194:9;:23;12204:9;;12214:1;12204:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12194:23;;;;;;;;;;;;;;;;:30;;;;;;;;;;;;;;;;;;12174:3;;;;;:::i;:::-;;;;12132:104;;;;12050:193:::0;;:::o;10021:646::-;1435:10;1425:20;;:6;;;;;;;;;;:20;;;1417:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;10229:7:::1;;10219:6;:17;;:57;;;;;10268:8;;10257:7;:19;;10219:57;:113;;;;;10316:16;;10297:15;:35;;10219:113;:171;;;;;10373:17;;10353:16;:37;;10219:171;10197:232;;;;;;;;;;;;:::i;:::-;;;;;;;;;10450:6;10440:7;:16;;;;10478:7;10467:8;:18;;;;10515:15;10496:16;:34;;;;10561:16;10541:17;:36;;;;10593:66;10604:7;;10613:8;;10623:16;;10641:17;;10593:66;;;;;;;;;:::i;:::-;;;;;;;;10021:646:::0;;;;:::o;3645:31::-;;;;;;;;;;;;;:::o;5785:177::-;5900:6;5870:11;:18;5882:5;5870:18;;;;;;;;;;;;;;;:27;5889:7;5870:27;;;;;;;;;;;;;;;:36;;;;5938:7;5922:32;;5931:5;5922:32;;;5947:6;5922:32;;;;;;:::i;:::-;;;;;;;;5785:177;;;:::o;5970:1213::-;6072:1;6058:16;;:2;:16;;;;6050:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6142:1;6133:6;:10;6125:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;6200:17;6220:31;6234:4;6240:2;6244:6;6220:13;:31::i;:::-;6200:51;;6296:28;6327:24;6345:4;6327:9;:24::i;:::-;6296:55;;6381:6;;;;;;;;;;;6380:7;:43;;;;;6410:13;;;;;;;;;;;6404:19;;:2;:19;;;6380:43;:71;;;;;6440:11;;;;;;;;;;;6380:71;:128;;;;;6491:17;;6468:20;:40;6380:128;6362:463;;;6535:101;6570:51;6574:6;6582:38;6586:20;6608:11;;6582:3;:38::i;:::-;6570:3;:51::i;:::-;6535:16;:101::i;:::-;6651:26;6680:21;6651:50;;6741:1;6720:18;:22;6716:98;;;6763:35;6776:21;6763:12;:35::i;:::-;6716:98;6362:463;;6853:1;6841:9;:13;6837:169;;;6925:9;6898;:24;6916:4;6898:24;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;6871:9;:24;6889:4;6871:24;;;;;;;;;;;;;;;:63;;;;6977:4;6954:40;;6963:4;6954:40;;;6984:9;6954:40;;;;;;:::i;:::-;;;;;;;;6837:169;7054:6;7036:9;:15;7046:4;7036:15;;;;;;;;;;;;;;;;:24;;;;:::i;:::-;7018:9;:15;7028:4;7018:15;;;;;;;;;;;;;;;:42;;;;7112:9;7103:6;7087:9;:13;7097:2;7087:13;;;;;;;;;;;;;;;;:22;;;;:::i;:::-;:34;;;;:::i;:::-;7071:9;:13;7081:2;7071:13;;;;;;;;;;;;;;;:50;;;;7152:2;7137:38;;7146:4;7137:38;;;7165:9;7156:6;:18;;;;:::i;:::-;7137:38;;;;;;:::i;:::-;;;;;;;;5970:1213;;;;;:::o;9386:609::-;4040:4;4031:6;;:13;;;;;;;;;;;;;;;;;;9483:1:::1;9468:11;:16;9464:55;;;9501:7;;9464:55;9534:11;;;;;;;;;;;9529:51;;9562:7;;9529:51;9590:21;9628:1;9614:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9590:40;;9659:4;9641;9646:1;9641:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;9685:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9675:4;9680:1;9675:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;9718:62;9735:4;9750:15;;;;;;;;;;;9768:11;9718:8;:62::i;:::-;9791:15;;;;;;;;;;;:66;;;9872:11;9898:1;9914:4;9941;9961:15;9791:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4055:1;;4076:5:::0;4067:6;;:14;;;;;;;;;;;;;;;;;;9386:609;:::o;10885:92::-;10942:10;;;;;;;;;;;:19;;:27;10962:6;10942:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10885:92;:::o;7191:2072::-;7312:7;7332:17;7352:1;7332:21;;7390:7;:5;:7::i;:::-;7382:15;;:4;:15;;;;:45;;;;;7420:7;:5;:7::i;:::-;7414:13;;:2;:13;;;;7382:45;:76;;;;;7445:9;:13;7455:2;7445:13;;;;;;;;;;;;;;;;;;;;;;;;;7444:14;7382:76;:109;;;;;7476:9;:15;7486:4;7476:15;;;;;;;;;;;;;;;;;;;;;;;;;7475:16;7382:109;7364:1863;;;7582:13;;;;;;;;;;;7574:21;;:4;:21;;;:72;;;;;7630:15;;;;;;;;;;;7616:30;;:2;:30;;;;7574:72;:116;;;;;7668:18;:22;7687:2;7668:22;;;;;;;;;;;;;;;;;;;;;;;;;7667:23;7574:116;7552:480;;;7781:14;;7771:6;7755:13;7765:2;7755:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;7725:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;7924:1;7911:10;;:14;;;;:::i;:::-;7896:12;:29;:120;;8013:3;8007:2;7998:6;:11;;;;:::i;:::-;7997:19;;;;:::i;:::-;7896:120;;;7970:3;7959:7;;7950:6;:16;;;;:::i;:::-;7949:24;;;;:::i;:::-;7896:120;7884:132;;7552:480;8088:13;;;;;;;;;;;8082:19;;:2;:19;;;:44;;;;;8121:4;8105:21;;:4;:21;;;;8082:44;8078:297;;;8165:12;;8155:6;:22;;8147:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8266:1;8253:10;;:14;;;;:::i;:::-;8238:12;:29;:121;;8356:3;8350:2;8341:6;:11;;;;:::i;:::-;8340:19;;;;:::i;:::-;8238:121;;;8313:3;8301:8;;8292:6;:17;;;;:::i;:::-;8291:25;;;;:::i;:::-;8238:121;8226:133;;8078:297;7364:1863;;;8396:9;:13;8406:2;8396:13;;;;;;;;;;;;;;;;;;;;;;;;;:32;;;;8413:9;:15;8423:4;8413:15;;;;;;;;;;;;;;;;;;;;;;;;;8396:32;8392:835;;;8511:13;;;;;;;;;;;8503:21;;:4;:21;;;:72;;;;;8559:15;;;;;;;;;;;8545:30;;:2;:30;;;;8503:72;:116;;;;;8597:18;:22;8616:2;8597:22;;;;;;;;;;;;;;;;;;;;;;;;;8596:23;8503:116;8481:404;;;8710:19;;8700:6;8684:13;8694:2;8684:9;:13::i;:::-;:22;;;;:::i;:::-;:45;;8654:151;;;;;;;;;;;;:::i;:::-;;;;;;;;;8866:3;8846:16;;8837:6;:25;;;;:::i;:::-;8836:33;;;;:::i;:::-;8824:45;;8481:404;8941:13;;;;;;;;;;;8935:19;;:2;:19;;;:44;;;;;8974:4;8958:21;;:4;:21;;;;8935:44;8931:285;;;9040:19;;9030:6;:29;;9000:135;;;;;;;;;;;;:::i;:::-;;;;;;;;;9197:3;9176:17;;9167:6;:26;;;;:::i;:::-;9166:34;;;;:::i;:::-;9154:46;;8931:285;8392:835;7364:1863;9246:9;9239:16;;;7191:2072;;;;;:::o;9271:107::-;9328:7;9360:1;9356;:5;9355:15;;9369:1;9355:15;;;9365:1;9355:15;9348:22;;9271:107;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;318:367::-;;;451:3;444:4;436:6;432:17;428:27;418:2;;469:1;466;459:12;418:2;505:6;492:20;482:30;;535:18;527:6;524:30;521:2;;;567:1;564;557:12;521:2;604:4;596:6;592:17;580:29;;658:3;650:4;642:6;638:17;628:8;624:32;621:41;618:2;;;675:1;672;665:12;618:2;408:277;;;;;:::o;691:139::-;;775:6;762:20;753:29;;791:33;818:5;791:33;:::i;:::-;743:87;;;;:::o;836:143::-;;924:6;918:13;909:22;;940:33;967:5;940:33;:::i;:::-;899:80;;;;:::o;985:262::-;;1093:2;1081:9;1072:7;1068:23;1064:32;1061:2;;;1109:1;1106;1099:12;1061:2;1152:1;1177:53;1222:7;1213:6;1202:9;1198:22;1177:53;:::i;:::-;1167:63;;1123:117;1051:196;;;;:::o;1253:284::-;;1372:2;1360:9;1351:7;1347:23;1343:32;1340:2;;;1388:1;1385;1378:12;1340:2;1431:1;1456:64;1512:7;1503:6;1492:9;1488:22;1456:64;:::i;:::-;1446:74;;1402:128;1330:207;;;;:::o;1543:407::-;;;1668:2;1656:9;1647:7;1643:23;1639:32;1636:2;;;1684:1;1681;1674:12;1636:2;1727:1;1752:53;1797:7;1788:6;1777:9;1773:22;1752:53;:::i;:::-;1742:63;;1698:117;1854:2;1880:53;1925:7;1916:6;1905:9;1901:22;1880:53;:::i;:::-;1870:63;;1825:118;1626:324;;;;;:::o;1956:552::-;;;;2098:2;2086:9;2077:7;2073:23;2069:32;2066:2;;;2114:1;2111;2104:12;2066:2;2157:1;2182:53;2227:7;2218:6;2207:9;2203:22;2182:53;:::i;:::-;2172:63;;2128:117;2284:2;2310:53;2355:7;2346:6;2335:9;2331:22;2310:53;:::i;:::-;2300:63;;2255:118;2412:2;2438:53;2483:7;2474:6;2463:9;2459:22;2438:53;:::i;:::-;2428:63;;2383:118;2056:452;;;;;:::o;2514:407::-;;;2639:2;2627:9;2618:7;2614:23;2610:32;2607:2;;;2655:1;2652;2645:12;2607:2;2698:1;2723:53;2768:7;2759:6;2748:9;2744:22;2723:53;:::i;:::-;2713:63;;2669:117;2825:2;2851:53;2896:7;2887:6;2876:9;2872:22;2851:53;:::i;:::-;2841:63;;2796:118;2597:324;;;;;:::o;2927:425::-;;;3070:2;3058:9;3049:7;3045:23;3041:32;3038:2;;;3086:1;3083;3076:12;3038:2;3157:1;3146:9;3142:17;3129:31;3187:18;3179:6;3176:30;3173:2;;;3219:1;3216;3209:12;3173:2;3255:80;3327:7;3318:6;3307:9;3303:22;3255:80;:::i;:::-;3237:98;;;;3100:245;3028:324;;;;;:::o;3358:596::-;;;;3511:2;3499:9;3490:7;3486:23;3482:32;3479:2;;;3527:1;3524;3517:12;3479:2;3570:1;3595:64;3651:7;3642:6;3631:9;3627:22;3595:64;:::i;:::-;3585:74;;3541:128;3708:2;3734:64;3790:7;3781:6;3770:9;3766:22;3734:64;:::i;:::-;3724:74;;3679:129;3847:2;3873:64;3929:7;3920:6;3909:9;3905:22;3873:64;:::i;:::-;3863:74;;3818:129;3469:485;;;;;:::o;3960:698::-;;;;;4119:3;4107:9;4098:7;4094:23;4090:33;4087:2;;;4136:1;4133;4126:12;4087:2;4179:1;4204:53;4249:7;4240:6;4229:9;4225:22;4204:53;:::i;:::-;4194:63;;4150:117;4306:2;4332:53;4377:7;4368:6;4357:9;4353:22;4332:53;:::i;:::-;4322:63;;4277:118;4434:2;4460:53;4505:7;4496:6;4485:9;4481:22;4460:53;:::i;:::-;4450:63;;4405:118;4562:2;4588:53;4633:7;4624:6;4613:9;4609:22;4588:53;:::i;:::-;4578:63;;4533:118;4077:581;;;;;;;:::o;4664:179::-;;4754:46;4796:3;4788:6;4754:46;:::i;:::-;4832:4;4827:3;4823:14;4809:28;;4744:99;;;;:::o;4849:108::-;4926:24;4944:5;4926:24;:::i;:::-;4921:3;4914:37;4904:53;;:::o;4963:118::-;5050:24;5068:5;5050:24;:::i;:::-;5045:3;5038:37;5028:53;;:::o;5117:732::-;;5265:54;5313:5;5265:54;:::i;:::-;5335:86;5414:6;5409:3;5335:86;:::i;:::-;5328:93;;5445:56;5495:5;5445:56;:::i;:::-;5524:7;5555:1;5540:284;5565:6;5562:1;5559:13;5540:284;;;5641:6;5635:13;5668:63;5727:3;5712:13;5668:63;:::i;:::-;5661:70;;5754:60;5807:6;5754:60;:::i;:::-;5744:70;;5600:224;5587:1;5584;5580:9;5575:14;;5540:284;;;5544:14;5840:3;5833:10;;5241:608;;;;;;;:::o;5855:109::-;5936:21;5951:5;5936:21;:::i;:::-;5931:3;5924:34;5914:50;;:::o;5970:147::-;6065:45;6104:5;6065:45;:::i;:::-;6060:3;6053:58;6043:74;;:::o;6123:364::-;;6239:39;6272:5;6239:39;:::i;:::-;6294:71;6358:6;6353:3;6294:71;:::i;:::-;6287:78;;6374:52;6419:6;6414:3;6407:4;6400:5;6396:16;6374:52;:::i;:::-;6451:29;6473:6;6451:29;:::i;:::-;6446:3;6442:39;6435:46;;6215:272;;;;;:::o;6493:367::-;;6656:67;6720:2;6715:3;6656:67;:::i;:::-;6649:74;;6753:34;6749:1;6744:3;6740:11;6733:55;6819:5;6814:2;6809:3;6805:12;6798:27;6851:2;6846:3;6842:12;6835:19;;6639:221;;;:::o;6866:323::-;;7029:67;7093:2;7088:3;7029:67;:::i;:::-;7022:74;;7126:27;7122:1;7117:3;7113:11;7106:48;7180:2;7175:3;7171:12;7164:19;;7012:177;;;:::o;7195:330::-;;7358:67;7422:2;7417:3;7358:67;:::i;:::-;7351:74;;7455:34;7451:1;7446:3;7442:11;7435:55;7516:2;7511:3;7507:12;7500:19;;7341:184;;;:::o;7531:309::-;;7694:67;7758:2;7753:3;7694:67;:::i;:::-;7687:74;;7791:13;7787:1;7782:3;7778:11;7771:34;7831:2;7826:3;7822:12;7815:19;;7677:163;;;:::o;7846:330::-;;8009:67;8073:2;8068:3;8009:67;:::i;:::-;8002:74;;8106:34;8102:1;8097:3;8093:11;8086:55;8167:2;8162:3;8158:12;8151:19;;7992:184;;;:::o;8182:373::-;;8345:67;8409:2;8404:3;8345:67;:::i;:::-;8338:74;;8442:34;8438:1;8433:3;8429:11;8422:55;8508:11;8503:2;8498:3;8494:12;8487:33;8546:2;8541:3;8537:12;8530:19;;8328:227;;;:::o;8561:324::-;;8724:67;8788:2;8783:3;8724:67;:::i;:::-;8717:74;;8821:28;8817:1;8812:3;8808:11;8801:49;8876:2;8871:3;8867:12;8860:19;;8707:178;;;:::o;8891:321::-;;9054:67;9118:2;9113:3;9054:67;:::i;:::-;9047:74;;9151:25;9147:1;9142:3;9138:11;9131:46;9203:2;9198:3;9194:12;9187:19;;9037:175;;;:::o;9218:118::-;9305:24;9323:5;9305:24;:::i;:::-;9300:3;9293:37;9283:53;;:::o;9342:112::-;9425:22;9441:5;9425:22;:::i;:::-;9420:3;9413:35;9403:51;;:::o;9460:222::-;;9591:2;9580:9;9576:18;9568:26;;9604:71;9672:1;9661:9;9657:17;9648:6;9604:71;:::i;:::-;9558:124;;;;:::o;9688:332::-;;9847:2;9836:9;9832:18;9824:26;;9860:71;9928:1;9917:9;9913:17;9904:6;9860:71;:::i;:::-;9941:72;10009:2;9998:9;9994:18;9985:6;9941:72;:::i;:::-;9814:206;;;;;:::o;10026:807::-;;10313:3;10302:9;10298:19;10290:27;;10327:71;10395:1;10384:9;10380:17;10371:6;10327:71;:::i;:::-;10408:72;10476:2;10465:9;10461:18;10452:6;10408:72;:::i;:::-;10490:80;10566:2;10555:9;10551:18;10542:6;10490:80;:::i;:::-;10580;10656:2;10645:9;10641:18;10632:6;10580:80;:::i;:::-;10670:73;10738:3;10727:9;10723:19;10714:6;10670:73;:::i;:::-;10753;10821:3;10810:9;10806:19;10797:6;10753:73;:::i;:::-;10280:553;;;;;;;;;:::o;10839:210::-;;10964:2;10953:9;10949:18;10941:26;;10977:65;11039:1;11028:9;11024:17;11015:6;10977:65;:::i;:::-;10931:118;;;;:::o;11055:313::-;;11206:2;11195:9;11191:18;11183:26;;11255:9;11249:4;11245:20;11241:1;11230:9;11226:17;11219:47;11283:78;11356:4;11347:6;11283:78;:::i;:::-;11275:86;;11173:195;;;;:::o;11374:419::-;;11578:2;11567:9;11563:18;11555:26;;11627:9;11621:4;11617:20;11613:1;11602:9;11598:17;11591:47;11655:131;11781:4;11655:131;:::i;:::-;11647:139;;11545:248;;;:::o;11799:419::-;;12003:2;11992:9;11988:18;11980:26;;12052:9;12046:4;12042:20;12038:1;12027:9;12023:17;12016:47;12080:131;12206:4;12080:131;:::i;:::-;12072:139;;11970:248;;;:::o;12224:419::-;;12428:2;12417:9;12413:18;12405:26;;12477:9;12471:4;12467:20;12463:1;12452:9;12448:17;12441:47;12505:131;12631:4;12505:131;:::i;:::-;12497:139;;12395:248;;;:::o;12649:419::-;;12853:2;12842:9;12838:18;12830:26;;12902:9;12896:4;12892:20;12888:1;12877:9;12873:17;12866:47;12930:131;13056:4;12930:131;:::i;:::-;12922:139;;12820:248;;;:::o;13074:419::-;;13278:2;13267:9;13263:18;13255:26;;13327:9;13321:4;13317:20;13313:1;13302:9;13298:17;13291:47;13355:131;13481:4;13355:131;:::i;:::-;13347:139;;13245:248;;;:::o;13499:419::-;;13703:2;13692:9;13688:18;13680:26;;13752:9;13746:4;13742:20;13738:1;13727:9;13723:17;13716:47;13780:131;13906:4;13780:131;:::i;:::-;13772:139;;13670:248;;;:::o;13924:419::-;;14128:2;14117:9;14113:18;14105:26;;14177:9;14171:4;14167:20;14163:1;14152:9;14148:17;14141:47;14205:131;14331:4;14205:131;:::i;:::-;14197:139;;14095:248;;;:::o;14349:419::-;;14553:2;14542:9;14538:18;14530:26;;14602:9;14596:4;14592:20;14588:1;14577:9;14573:17;14566:47;14630:131;14756:4;14630:131;:::i;:::-;14622:139;;14520:248;;;:::o;14774:222::-;;14905:2;14894:9;14890:18;14882:26;;14918:71;14986:1;14975:9;14971:17;14962:6;14918:71;:::i;:::-;14872:124;;;;:::o;15002:831::-;;15303:3;15292:9;15288:19;15280:27;;15317:71;15385:1;15374:9;15370:17;15361:6;15317:71;:::i;:::-;15398:80;15474:2;15463:9;15459:18;15450:6;15398:80;:::i;:::-;15525:9;15519:4;15515:20;15510:2;15499:9;15495:18;15488:48;15553:108;15656:4;15647:6;15553:108;:::i;:::-;15545:116;;15671:72;15739:2;15728:9;15724:18;15715:6;15671:72;:::i;:::-;15753:73;15821:3;15810:9;15806:19;15797:6;15753:73;:::i;:::-;15270:563;;;;;;;;:::o;15839:553::-;;16054:3;16043:9;16039:19;16031:27;;16068:71;16136:1;16125:9;16121:17;16112:6;16068:71;:::i;:::-;16149:72;16217:2;16206:9;16202:18;16193:6;16149:72;:::i;:::-;16231;16299:2;16288:9;16284:18;16275:6;16231:72;:::i;:::-;16313;16381:2;16370:9;16366:18;16357:6;16313:72;:::i;:::-;16021:371;;;;;;;:::o;16398:214::-;;16525:2;16514:9;16510:18;16502:26;;16538:67;16602:1;16591:9;16587:17;16578:6;16538:67;:::i;:::-;16492:120;;;;:::o;16618:132::-;;16708:3;16700:11;;16738:4;16733:3;16729:14;16721:22;;16690:60;;;:::o;16756:114::-;;16857:5;16851:12;16841:22;;16830:40;;;:::o;16876:99::-;;16962:5;16956:12;16946:22;;16935:40;;;:::o;16981:113::-;;17083:4;17078:3;17074:14;17066:22;;17056:38;;;:::o;17100:184::-;;17233:6;17228:3;17221:19;17273:4;17268:3;17264:14;17249:29;;17211:73;;;;:::o;17290:169::-;;17408:6;17403:3;17396:19;17448:4;17443:3;17439:14;17424:29;;17386:73;;;;:::o;17465:305::-;;17524:20;17542:1;17524:20;:::i;:::-;17519:25;;17558:20;17576:1;17558:20;:::i;:::-;17553:25;;17712:1;17644:66;17640:74;17637:1;17634:81;17631:2;;;17718:18;;:::i;:::-;17631:2;17762:1;17759;17755:9;17748:16;;17509:261;;;;:::o;17776:185::-;;17833:20;17851:1;17833:20;:::i;:::-;17828:25;;17867:20;17885:1;17867:20;:::i;:::-;17862:25;;17906:1;17896:2;;17911:18;;:::i;:::-;17896:2;17953:1;17950;17946:9;17941:14;;17818:143;;;;:::o;17967:348::-;;18030:20;18048:1;18030:20;:::i;:::-;18025:25;;18064:20;18082:1;18064:20;:::i;:::-;18059:25;;18252:1;18184:66;18180:74;18177:1;18174:81;18169:1;18162:9;18155:17;18151:105;18148:2;;;18259:18;;:::i;:::-;18148:2;18307:1;18304;18300:9;18289:20;;18015:300;;;;:::o;18321:191::-;;18381:20;18399:1;18381:20;:::i;:::-;18376:25;;18415:20;18433:1;18415:20;:::i;:::-;18410:25;;18454:1;18451;18448:8;18445:2;;;18459:18;;:::i;:::-;18445:2;18504:1;18501;18497:9;18489:17;;18366:146;;;;:::o;18518:96::-;;18584:24;18602:5;18584:24;:::i;:::-;18573:35;;18563:51;;;:::o;18620:90::-;;18697:5;18690:13;18683:21;18672:32;;18662:48;;;:::o;18716:126::-;;18793:42;18786:5;18782:54;18771:65;;18761:81;;;:::o;18848:77::-;;18914:5;18903:16;;18893:32;;;:::o;18931:86::-;;19006:4;18999:5;18995:16;18984:27;;18974:43;;;:::o;19023:121::-;;19114:24;19132:5;19114:24;:::i;:::-;19101:37;;19091:53;;;:::o;19150:307::-;19218:1;19228:113;19242:6;19239:1;19236:13;19228:113;;;19327:1;19322:3;19318:11;19312:18;19308:1;19303:3;19299:11;19292:39;19264:2;19261:1;19257:10;19252:15;;19228:113;;;19359:6;19356:1;19353:13;19350:2;;;19439:1;19430:6;19425:3;19421:16;19414:27;19350:2;19199:258;;;;:::o;19463:233::-;;19525:24;19543:5;19525:24;:::i;:::-;19516:33;;19571:66;19564:5;19561:77;19558:2;;;19641:18;;:::i;:::-;19558:2;19688:1;19681:5;19677:13;19670:20;;19506:190;;;:::o;19702:180::-;19750:77;19747:1;19740:88;19847:4;19844:1;19837:15;19871:4;19868:1;19861:15;19888:180;19936:77;19933:1;19926:88;20033:4;20030:1;20023:15;20057:4;20054:1;20047:15;20074:102;;20166:2;20162:7;20157:2;20150:5;20146:14;20142:28;20132:38;;20122:54;;;:::o;20182:122::-;20255:24;20273:5;20255:24;:::i;:::-;20248:5;20245:35;20235:2;;20294:1;20291;20284:12;20235:2;20225:79;:::o;20310:122::-;20383:24;20401:5;20383:24;:::i;:::-;20376:5;20373:35;20363:2;;20422:1;20419;20412:12;20363:2;20353:79;:::o

Swarm Source

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