ETH Price: $2,537.95 (-3.79%)

Token

Filter My DM (FDM)
 

Overview

Max Total Supply

350,000,000 FDM

Holders

37

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
2,496,141.858864558 FDM

Value
$0.00
0x8545b223f10a64282a3540cF571dF585e20AD89A
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:
FDMERC20

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-20
*/

/*

    X.com : https://x.com/filtereddms

    Website : https://filterdms.com/

    Telegram group : https://t.me/FilterMyDMs

    TG bot : http://t.me/filterdms_bot

*/
// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.18;
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}
contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
    function owner() public view returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}
contract FDMERC20 is Context, IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = "Filter My DM";
    string private constant _symbol = "FDM";
    uint8 private constant _decimals = 9;
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 350000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;  
    uint256 private _taxFeeOnBuy = 25;  
    uint256 private _redisFeeOnSell = 0;  
    uint256 private _taxFeeOnSell = 50;
 
    //Original Fee
    uint256 private _redisFee = 0;
    uint256 private _taxFee = _taxFeeOnSell;
 
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
 
    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap; 
    address payable public _developmentAddress;
    address payable public  _marketingAddress;
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
    mapping(address => bool) private _initiated;
 
    uint256 public _maxTxAmount = 5950000 * 10**9; 
    uint256 public _maxWalletSize = 5950000 * 10**9; 
    uint256 public _swapTokensAtAmount = 2625000 * 10**9;
    
    uint256 private launchBlock=0;
    uint256 private _blocksduration=5;
    uint256 private _delta=1700000000;
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
 
    constructor() {
 
        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());
        _developmentAddress = payable(0x4A10c5C24DF62b5911F981C148F9E356B0959f03);
        _marketingAddress = payable(0x5dA692704c06217fb379eb560650252Cec1dF82E);
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;
 
        emit Transfer(address(0), _msgSender(), _tTotal);
    }
 
    function name() public pure returns (string memory) {
        return _name;
    }
 
    function symbol() public pure returns (string memory) {
        return _symbol;
    }
 
    function decimals() public pure returns (uint8) {
        return _decimals;
    }
 
    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }
 
    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[account]);
    }
 
    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
 
    function allowance(address owner, address spender)
        public
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }
 
    function approve(address spender, uint256 amount)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, amount);
        return true;
    }
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }
 
    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }
 
    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;
 
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
 
        _redisFee = 0;
        _taxFee = 0;
    }
 
    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }
 
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
 
    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
 
        if (from != owner() && to != owner()) {
 
            //Trade start check
            if (!tradingOpen) {
                require((from == owner() || (_initiated[to]==true && from==uniswapV2Pair)), "TOKEN: This account cannot send tokens until trading is enabled");
            }

            if ( block.number < ( launchBlock + _blocksduration) && tx.gasprice > block.basefee){       
                require((tx.gasprice - block.basefee) < _delta, "TOKEN: REVERTED");
            }
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
 
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _swapTokensAtAmount)
            {
                contractTokenBalance = _swapTokensAtAmount;
            }
 
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        bool takeFee = true;
 
        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
 
            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
 
            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
 
        }
 
        _tokenTransfer(from, to, amount, takeFee);
    }
 
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 
    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount/2);
        _developmentAddress.transfer(amount/2);
    }
     function openTrading() public onlyOwner {
        tradingOpen = true;
        launchBlock=block.number;
    }
     function forceswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
 
    function manual_send() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
 
    function BlacklistWallets(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    function unBlacklistWallet(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }
 
    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }
 
    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }
 
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }
 
    receive() external payable {}
 
    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }
 
    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }
 
    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }
 
    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }
 
    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
 
    function _setTaxes(uint256 _buyTaxes, uint256 _sellTaxes) public onlyOwner {
        _taxFeeOnBuy = _buyTaxes;
        _taxFeeOnSell = _sellTaxes;
    }
    function _setSwapbackThreshold(uint256 _amount) public onlyOwner {
        _swapTokensAtAmount = _amount;
    }
    function _toggleSwapback(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
    function _excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }
    function changeMaxTx(uint256 maxTxAmount) public onlyOwner {
           _maxTxAmount = maxTxAmount;       
    }
    function changeMaxWL(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }
    function removeLimits() public onlyOwner {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }
    function ChangeTeamWallets(address _marketing,address _development) external  {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        _marketingAddress = payable(_marketing);
        _developmentAddress = payable(_development);
    }
    function WhitelistWallets(address[] calldata accounts, bool _status) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _initiated[accounts[i]] = _status;
        }
    }
    function changeBlocks(uint256 _duration) public  onlyOwner{
        _blocksduration=_duration;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"BlacklistWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketing","type":"address"},{"internalType":"address","name":"_development","type":"address"}],"name":"ChangeTeamWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"_status","type":"bool"}],"name":"WhitelistWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_developmentAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"_excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"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":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"_setSwapbackThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyTaxes","type":"uint256"},{"internalType":"uint256","name":"_sellTaxes","type":"uint256"}],"name":"_setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"_toggleSwapback","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":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_duration","type":"uint256"}],"name":"changeBlocks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"changeMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"changeMaxWL","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"forceswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manual_send","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":[],"name":"removeLimits","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":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unBlacklistWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526704db7325476300006000196200001c919062000720565b6000196200002b919062000787565b600655600060085560196009556000600a556032600b556000600c55600b54600d55600c54600e55600d54600f5560006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff0219169083151502179055506615237e5469e0006017556615237e5469e0006018556609536c708910006019556000601a556005601b55636553f100601c55348015620000ce57600080fd5b506000620000e1620006b660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506006546002600062000196620006b660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200027a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002a091906200082c565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000308573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200032e91906200082c565b6040518363ffffffff1660e01b81526004016200034d9291906200086f565b6020604051808303816000875af11580156200036d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200039391906200082c565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734a10c5c24df62b5911f981c148f9e356b0959f03601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550735da692704c06217fb379eb560650252cec1df82e601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600062000493620006be60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000640620006b660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6704db732547630000604051620006a79190620008ad565b60405180910390a350620008ca565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200072d82620006e7565b91506200073a83620006e7565b9250826200074d576200074c620006f1565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200079482620006e7565b9150620007a183620006e7565b9250828203905081811115620007bc57620007bb62000758565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007f482620007c7565b9050919050565b6200080681620007e7565b81146200081257600080fd5b50565b6000815190506200082681620007fb565b92915050565b600060208284031215620008455762000844620007c2565b5b6000620008558482850162000815565b91505092915050565b6200086981620007e7565b82525050565b60006040820190506200088660008301856200085e565b6200089560208301846200085e565b9392505050565b620008a781620006e7565b82525050565b6000602082019050620008c460008301846200089c565b92915050565b6144d980620008da6000396000f3fe6080604052600436106102135760003560e01c806370a0823111610118578063976251e6116100a0578063c9567bf91161006f578063c9567bf91461075c578063caac793414610773578063dd62ed3e1461079e578063f2fde38b146107db578063f7159d42146108045761021a565b8063976251e6146106a2578063a9059cbb146106cb578063aacc5f2314610708578063bfd792841461071f5761021a565b80637d1db4a5116100e75780637d1db4a5146105b95780637f2feddc146105e45780638da5cb5b146106215780638f9a55c01461064c57806395d89b41146106775761021a565b806370a0823114610525578063715018a614610562578063751039fc14610579578063778c6152146105905761021a565b80632d7ec1631161019b578063358c6e971161016a578063358c6e97146104545780633d6a9afe1461047d57806349bd5a5e146104a8578063522bed11146104d35780635c67d12d146104fc5761021a565b80632d7ec163146103be5780632f10cfb1146103d55780632fd689e3146103fe578063313ce567146104295761021a565b806318160ddd116101e257806318160ddd146102db57806322e0ee331461030657806323b872dd1461032f57806324e2c1821461036c5780632aea4fa1146103955761021a565b806306fdde031461021f578063095ea7b31461024a57806312036d18146102875780631694505e146102b05761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b5061023461082d565b60405161024191906132ed565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c91906133b7565b61086a565b60405161027e9190613412565b60405180910390f35b34801561029357600080fd5b506102ae60048036038101906102a9919061342d565b610888565b005b3480156102bc57600080fd5b506102c5610927565b6040516102d291906134b9565b60405180910390f35b3480156102e757600080fd5b506102f061094d565b6040516102fd91906134e3565b60405180910390f35b34801561031257600080fd5b5061032d6004803603810190610328919061342d565b61095d565b005b34801561033b57600080fd5b50610356600480360381019061035191906134fe565b6109fc565b6040516103639190613412565b60405180910390f35b34801561037857600080fd5b50610393600480360381019061038e9190613551565b610ad5565b005b3480156103a157600080fd5b506103bc60048036038101906103b79190613622565b610c1b565b005b3480156103ca57600080fd5b506103d3610d55565b005b3480156103e157600080fd5b506103fc60048036038101906103f79190613622565b610e26565b005b34801561040a57600080fd5b50610413610f60565b60405161042091906134e3565b60405180910390f35b34801561043557600080fd5b5061043e610f66565b60405161044b919061369e565b60405180910390f35b34801561046057600080fd5b5061047b600480360381019061047691906136b9565b610f6f565b005b34801561048957600080fd5b50610492611016565b60405161049f919061371a565b60405180910390f35b3480156104b457600080fd5b506104bd61103c565b6040516104ca9190613744565b60405180910390f35b3480156104df57600080fd5b506104fa60048036038101906104f5919061375f565b611062565b005b34801561050857600080fd5b50610523600480360381019061051e919061378c565b611152565b005b34801561053157600080fd5b5061054c6004803603810190610547919061375f565b611204565b60405161055991906134e3565b60405180910390f35b34801561056e57600080fd5b50610577611255565b005b34801561058557600080fd5b5061058e6113a8565b005b34801561059c57600080fd5b506105b760048036038101906105b2919061342d565b61145d565b005b3480156105c557600080fd5b506105ce6114fc565b6040516105db91906134e3565b60405180910390f35b3480156105f057600080fd5b5061060b6004803603810190610606919061375f565b611502565b60405161061891906134e3565b60405180910390f35b34801561062d57600080fd5b5061063661151a565b6040516106439190613744565b60405180910390f35b34801561065857600080fd5b50610661611543565b60405161066e91906134e3565b60405180910390f35b34801561068357600080fd5b5061068c611549565b60405161069991906132ed565b60405180910390f35b3480156106ae57600080fd5b506106c960048036038101906106c4919061342d565b611586565b005b3480156106d757600080fd5b506106f260048036038101906106ed91906133b7565b611625565b6040516106ff9190613412565b60405180910390f35b34801561071457600080fd5b5061071d611643565b005b34801561072b57600080fd5b506107466004803603810190610741919061375f565b61171c565b6040516107539190613412565b60405180910390f35b34801561076857600080fd5b5061077161173c565b005b34801561077f57600080fd5b506107886117f5565b604051610795919061371a565b60405180910390f35b3480156107aa57600080fd5b506107c560048036038101906107c09190613551565b61181b565b6040516107d291906134e3565b60405180910390f35b3480156107e757600080fd5b5061080260048036038101906107fd919061375f565b6118a2565b005b34801561081057600080fd5b5061082b600480360381019061082691906138f7565b611a63565b005b60606040518060400160405280600c81526020017f46696c746572204d7920444d0000000000000000000000000000000000000000815250905090565b600061087e610877611b8d565b8484611b95565b6001905092915050565b610890611b8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461091d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109149061398c565b60405180910390fd5b8060188190555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006704db732547630000905090565b610965611b8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e99061398c565b60405180910390fd5b8060198190555050565b6000610a09848484611d5e565b610aca84610a15611b8d565b610ac58560405180606001604052806028815260200161447c60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a7b611b8d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127079092919063ffffffff16565b611b95565b600190509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b16611b8d565b73ffffffffffffffffffffffffffffffffffffffff161480610b8c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b74611b8d565b73ffffffffffffffffffffffffffffffffffffffff16145b610b9557600080fd5b81601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b610c23611b8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca79061398c565b60405180910390fd5b60005b83839050811015610d4f578160166000868685818110610cd657610cd56139ac565b5b9050602002016020810190610ceb919061375f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d4790613a0a565b915050610cb3565b50505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d96611b8d565b73ffffffffffffffffffffffffffffffffffffffff161480610e0c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610df4611b8d565b73ffffffffffffffffffffffffffffffffffffffff16145b610e1557600080fd5b6000479050610e238161276b565b50565b610e2e611b8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb29061398c565b60405180910390fd5b60005b83839050811015610f5a578160056000868685818110610ee157610ee06139ac565b5b9050602002016020810190610ef6919061375f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f5290613a0a565b915050610ebe565b50505050565b60195481565b60006009905090565b610f77611b8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611004576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffb9061398c565b60405180910390fd5b8160098190555080600b819055505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61106a611b8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ee9061398c565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61115a611b8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111de9061398c565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b600061124e600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612858565b9050919050565b61125d611b8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e19061398c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6113b0611b8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461143d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114349061398c565b60405180910390fd5b6704db7325476300006017819055506704db732547630000601881905550565b611465611b8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e99061398c565b60405180910390fd5b8060178190555050565b60175481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60185481565b60606040518060400160405280600381526020017f46444d0000000000000000000000000000000000000000000000000000000000815250905090565b61158e611b8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461161b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116129061398c565b60405180910390fd5b80601b8190555050565b6000611639611632611b8d565b8484611d5e565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611684611b8d565b73ffffffffffffffffffffffffffffffffffffffff1614806116fa5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116e2611b8d565b73ffffffffffffffffffffffffffffffffffffffff16145b61170357600080fd5b600061170e30611204565b9050611719816128c6565b50565b60106020528060005260406000206000915054906101000a900460ff1681565b611744611b8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c89061398c565b60405180910390fd5b6001601560146101000a81548160ff02191690831515021790555043601a81905550565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6118aa611b8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192e9061398c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199d90613ac4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611a6b611b8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aef9061398c565b60405180910390fd5b60005b8151811015611b8957600160106000848481518110611b1d57611b1c6139ac565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611b8190613a0a565b915050611afb565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfb90613b56565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6a90613be8565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d5191906134e3565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611dcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc490613c7a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3390613d0c565b60405180910390fd5b60008111611e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7690613d9e565b60405180910390fd5b611e8761151a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ef55750611ec561151a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561240657601560149054906101000a900460ff1661203857611f1661151a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611ff8575060011515601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515148015611ff75750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b5b612037576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202e90613e30565b60405180910390fd5b5b601b54601a546120489190613e50565b431080156120555750483a115b156120aa57601c54483a6120699190613e84565b106120a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a090613f04565b60405180910390fd5b5b6017548111156120ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e690613f70565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121935750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6121d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c990614002565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461227f576018548161223484611204565b61223e9190613e50565b1061227e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227590614094565b60405180910390fd5b5b600061228a30611204565b90506000601954821015905060195482106122a55760195491505b8080156122bd575060158054906101000a900460ff16155b80156123175750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561232f5750601560169054906101000a900460ff165b80156123855750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123db5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612403576123e9826128c6565b60004790506000811115612401576124004761276b565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124ad5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806125605750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561255f5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561256e57600090506126f5565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156126195750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561263157600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156126dc5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156126f457600a54600c81905550600b54600d819055505b5b61270184848484612b3d565b50505050565b600083831115829061274f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274691906132ed565b60405180910390fd5b506000838561275e9190613e84565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6002836127b491906140e3565b9081150290604051600060405180830381858888f193505050501580156127df573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60028361282991906140e3565b9081150290604051600060405180830381858888f19350505050158015612854573d6000803e3d6000fd5b5050565b600060065482111561289f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289690614186565b60405180910390fd5b60006128a9612b6a565b90506128be8184612b9590919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156128fd576128fc6137b9565b5b60405190808252806020026020018201604052801561292b5781602001602082028036833780820191505090505b5090503081600081518110612943576129426139ac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129ea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a0e91906141bb565b81600181518110612a2257612a216139ac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612a8930601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b95565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612aed9594939291906142e1565b600060405180830381600087803b158015612b0757600080fd5b505af1158015612b1b573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b80612b4b57612b4a612bdf565b5b612b56848484612c1c565b80612b6457612b63612de7565b5b50505050565b6000806000612b77612dfb565b91509150612b8e8183612b9590919063ffffffff16565b9250505090565b6000612bd783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e5a565b905092915050565b6000600c54148015612bf357506000600d54145b612c1a57600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612c2e87612ebd565b955095509550955095509550612c8c86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f2590919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d2185600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6f90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d6d81612fcd565b612d77848361308a565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612dd491906134e3565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b6000806000600654905060006704db7325476300009050612e2f6704db732547630000600654612b9590919063ffffffff16565b821015612e4d576006546704db732547630000935093505050612e56565b81819350935050505b9091565b60008083118290612ea1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e9891906132ed565b60405180910390fd5b5060008385612eb091906140e3565b9050809150509392505050565b6000806000806000806000806000612eda8a600c54600d546130c4565b9250925092506000612eea612b6a565b90506000806000612efd8e87878761315a565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612f6783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612707565b905092915050565b6000808284612f7e9190613e50565b905083811015612fc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fba90614387565b60405180910390fd5b8091505092915050565b6000612fd7612b6a565b90506000612fee82846131e390919063ffffffff16565b905061304281600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6f90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61309f82600654612f2590919063ffffffff16565b6006819055506130ba81600754612f6f90919063ffffffff16565b6007819055505050565b6000806000806130f060646130e2888a6131e390919063ffffffff16565b612b9590919063ffffffff16565b9050600061311a606461310c888b6131e390919063ffffffff16565b612b9590919063ffffffff16565b9050600061314382613135858c612f2590919063ffffffff16565b612f2590919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061317385896131e390919063ffffffff16565b9050600061318a86896131e390919063ffffffff16565b905060006131a187896131e390919063ffffffff16565b905060006131ca826131bc8587612f2590919063ffffffff16565b612f2590919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083036131f55760009050613257565b6000828461320391906143a7565b905082848261321291906140e3565b14613252576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132499061445b565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561329757808201518184015260208101905061327c565b60008484015250505050565b6000601f19601f8301169050919050565b60006132bf8261325d565b6132c98185613268565b93506132d9818560208601613279565b6132e2816132a3565b840191505092915050565b6000602082019050818103600083015261330781846132b4565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061334e82613323565b9050919050565b61335e81613343565b811461336957600080fd5b50565b60008135905061337b81613355565b92915050565b6000819050919050565b61339481613381565b811461339f57600080fd5b50565b6000813590506133b18161338b565b92915050565b600080604083850312156133ce576133cd613319565b5b60006133dc8582860161336c565b92505060206133ed858286016133a2565b9150509250929050565b60008115159050919050565b61340c816133f7565b82525050565b60006020820190506134276000830184613403565b92915050565b60006020828403121561344357613442613319565b5b6000613451848285016133a2565b91505092915050565b6000819050919050565b600061347f61347a61347584613323565b61345a565b613323565b9050919050565b600061349182613464565b9050919050565b60006134a382613486565b9050919050565b6134b381613498565b82525050565b60006020820190506134ce60008301846134aa565b92915050565b6134dd81613381565b82525050565b60006020820190506134f860008301846134d4565b92915050565b60008060006060848603121561351757613516613319565b5b60006135258682870161336c565b93505060206135368682870161336c565b9250506040613547868287016133a2565b9150509250925092565b6000806040838503121561356857613567613319565b5b60006135768582860161336c565b92505060206135878582860161336c565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126135b6576135b5613591565b5b8235905067ffffffffffffffff8111156135d3576135d2613596565b5b6020830191508360208202830111156135ef576135ee61359b565b5b9250929050565b6135ff816133f7565b811461360a57600080fd5b50565b60008135905061361c816135f6565b92915050565b60008060006040848603121561363b5761363a613319565b5b600084013567ffffffffffffffff8111156136595761365861331e565b5b613665868287016135a0565b935093505060206136788682870161360d565b9150509250925092565b600060ff82169050919050565b61369881613682565b82525050565b60006020820190506136b3600083018461368f565b92915050565b600080604083850312156136d0576136cf613319565b5b60006136de858286016133a2565b92505060206136ef858286016133a2565b9150509250929050565b600061370482613323565b9050919050565b613714816136f9565b82525050565b600060208201905061372f600083018461370b565b92915050565b61373e81613343565b82525050565b60006020820190506137596000830184613735565b92915050565b60006020828403121561377557613774613319565b5b60006137838482850161336c565b91505092915050565b6000602082840312156137a2576137a1613319565b5b60006137b08482850161360d565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6137f1826132a3565b810181811067ffffffffffffffff821117156138105761380f6137b9565b5b80604052505050565b600061382361330f565b905061382f82826137e8565b919050565b600067ffffffffffffffff82111561384f5761384e6137b9565b5b602082029050602081019050919050565b600061387361386e84613834565b613819565b905080838252602082019050602084028301858111156138965761389561359b565b5b835b818110156138bf57806138ab888261336c565b845260208401935050602081019050613898565b5050509392505050565b600082601f8301126138de576138dd613591565b5b81356138ee848260208601613860565b91505092915050565b60006020828403121561390d5761390c613319565b5b600082013567ffffffffffffffff81111561392b5761392a61331e565b5b613937848285016138c9565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613976602083613268565b915061398182613940565b602082019050919050565b600060208201905081810360008301526139a581613969565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613a1582613381565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613a4757613a466139db565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613aae602683613268565b9150613ab982613a52565b604082019050919050565b60006020820190508181036000830152613add81613aa1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b40602483613268565b9150613b4b82613ae4565b604082019050919050565b60006020820190508181036000830152613b6f81613b33565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613bd2602283613268565b9150613bdd82613b76565b604082019050919050565b60006020820190508181036000830152613c0181613bc5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613c64602583613268565b9150613c6f82613c08565b604082019050919050565b60006020820190508181036000830152613c9381613c57565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613cf6602383613268565b9150613d0182613c9a565b604082019050919050565b60006020820190508181036000830152613d2581613ce9565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613d88602983613268565b9150613d9382613d2c565b604082019050919050565b60006020820190508181036000830152613db781613d7b565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613e1a603f83613268565b9150613e2582613dbe565b604082019050919050565b60006020820190508181036000830152613e4981613e0d565b9050919050565b6000613e5b82613381565b9150613e6683613381565b9250828201905080821115613e7e57613e7d6139db565b5b92915050565b6000613e8f82613381565b9150613e9a83613381565b9250828203905081811115613eb257613eb16139db565b5b92915050565b7f544f4b454e3a2052455645525445440000000000000000000000000000000000600082015250565b6000613eee600f83613268565b9150613ef982613eb8565b602082019050919050565b60006020820190508181036000830152613f1d81613ee1565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613f5a601c83613268565b9150613f6582613f24565b602082019050919050565b60006020820190508181036000830152613f8981613f4d565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613fec602383613268565b9150613ff782613f90565b604082019050919050565b6000602082019050818103600083015261401b81613fdf565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b600061407e602383613268565b915061408982614022565b604082019050919050565b600060208201905081810360008301526140ad81614071565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006140ee82613381565b91506140f983613381565b925082614109576141086140b4565b5b828204905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000614170602a83613268565b915061417b82614114565b604082019050919050565b6000602082019050818103600083015261419f81614163565b9050919050565b6000815190506141b581613355565b92915050565b6000602082840312156141d1576141d0613319565b5b60006141df848285016141a6565b91505092915050565b6000819050919050565b600061420d614208614203846141e8565b61345a565b613381565b9050919050565b61421d816141f2565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61425881613343565b82525050565b600061426a838361424f565b60208301905092915050565b6000602082019050919050565b600061428e82614223565b614298818561422e565b93506142a38361423f565b8060005b838110156142d45781516142bb888261425e565b97506142c683614276565b9250506001810190506142a7565b5085935050505092915050565b600060a0820190506142f660008301886134d4565b6143036020830187614214565b81810360408301526143158186614283565b90506143246060830185613735565b61433160808301846134d4565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614371601b83613268565b915061437c8261433b565b602082019050919050565b600060208201905081810360008301526143a081614364565b9050919050565b60006143b282613381565b91506143bd83613381565b92508282026143cb81613381565b915082820484148315176143e2576143e16139db565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614445602183613268565b9150614450826143e9565b604082019050919050565b6000602082019050818103600083015261447481614438565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220491045aa2876dc2eeecdc35ba1aa4a92fba8d741091e8b493ae1b9cba093bf0964736f6c63430008120033

Deployed Bytecode

0x6080604052600436106102135760003560e01c806370a0823111610118578063976251e6116100a0578063c9567bf91161006f578063c9567bf91461075c578063caac793414610773578063dd62ed3e1461079e578063f2fde38b146107db578063f7159d42146108045761021a565b8063976251e6146106a2578063a9059cbb146106cb578063aacc5f2314610708578063bfd792841461071f5761021a565b80637d1db4a5116100e75780637d1db4a5146105b95780637f2feddc146105e45780638da5cb5b146106215780638f9a55c01461064c57806395d89b41146106775761021a565b806370a0823114610525578063715018a614610562578063751039fc14610579578063778c6152146105905761021a565b80632d7ec1631161019b578063358c6e971161016a578063358c6e97146104545780633d6a9afe1461047d57806349bd5a5e146104a8578063522bed11146104d35780635c67d12d146104fc5761021a565b80632d7ec163146103be5780632f10cfb1146103d55780632fd689e3146103fe578063313ce567146104295761021a565b806318160ddd116101e257806318160ddd146102db57806322e0ee331461030657806323b872dd1461032f57806324e2c1821461036c5780632aea4fa1146103955761021a565b806306fdde031461021f578063095ea7b31461024a57806312036d18146102875780631694505e146102b05761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b5061023461082d565b60405161024191906132ed565b60405180910390f35b34801561025657600080fd5b50610271600480360381019061026c91906133b7565b61086a565b60405161027e9190613412565b60405180910390f35b34801561029357600080fd5b506102ae60048036038101906102a9919061342d565b610888565b005b3480156102bc57600080fd5b506102c5610927565b6040516102d291906134b9565b60405180910390f35b3480156102e757600080fd5b506102f061094d565b6040516102fd91906134e3565b60405180910390f35b34801561031257600080fd5b5061032d6004803603810190610328919061342d565b61095d565b005b34801561033b57600080fd5b50610356600480360381019061035191906134fe565b6109fc565b6040516103639190613412565b60405180910390f35b34801561037857600080fd5b50610393600480360381019061038e9190613551565b610ad5565b005b3480156103a157600080fd5b506103bc60048036038101906103b79190613622565b610c1b565b005b3480156103ca57600080fd5b506103d3610d55565b005b3480156103e157600080fd5b506103fc60048036038101906103f79190613622565b610e26565b005b34801561040a57600080fd5b50610413610f60565b60405161042091906134e3565b60405180910390f35b34801561043557600080fd5b5061043e610f66565b60405161044b919061369e565b60405180910390f35b34801561046057600080fd5b5061047b600480360381019061047691906136b9565b610f6f565b005b34801561048957600080fd5b50610492611016565b60405161049f919061371a565b60405180910390f35b3480156104b457600080fd5b506104bd61103c565b6040516104ca9190613744565b60405180910390f35b3480156104df57600080fd5b506104fa60048036038101906104f5919061375f565b611062565b005b34801561050857600080fd5b50610523600480360381019061051e919061378c565b611152565b005b34801561053157600080fd5b5061054c6004803603810190610547919061375f565b611204565b60405161055991906134e3565b60405180910390f35b34801561056e57600080fd5b50610577611255565b005b34801561058557600080fd5b5061058e6113a8565b005b34801561059c57600080fd5b506105b760048036038101906105b2919061342d565b61145d565b005b3480156105c557600080fd5b506105ce6114fc565b6040516105db91906134e3565b60405180910390f35b3480156105f057600080fd5b5061060b6004803603810190610606919061375f565b611502565b60405161061891906134e3565b60405180910390f35b34801561062d57600080fd5b5061063661151a565b6040516106439190613744565b60405180910390f35b34801561065857600080fd5b50610661611543565b60405161066e91906134e3565b60405180910390f35b34801561068357600080fd5b5061068c611549565b60405161069991906132ed565b60405180910390f35b3480156106ae57600080fd5b506106c960048036038101906106c4919061342d565b611586565b005b3480156106d757600080fd5b506106f260048036038101906106ed91906133b7565b611625565b6040516106ff9190613412565b60405180910390f35b34801561071457600080fd5b5061071d611643565b005b34801561072b57600080fd5b506107466004803603810190610741919061375f565b61171c565b6040516107539190613412565b60405180910390f35b34801561076857600080fd5b5061077161173c565b005b34801561077f57600080fd5b506107886117f5565b604051610795919061371a565b60405180910390f35b3480156107aa57600080fd5b506107c560048036038101906107c09190613551565b61181b565b6040516107d291906134e3565b60405180910390f35b3480156107e757600080fd5b5061080260048036038101906107fd919061375f565b6118a2565b005b34801561081057600080fd5b5061082b600480360381019061082691906138f7565b611a63565b005b60606040518060400160405280600c81526020017f46696c746572204d7920444d0000000000000000000000000000000000000000815250905090565b600061087e610877611b8d565b8484611b95565b6001905092915050565b610890611b8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461091d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109149061398c565b60405180910390fd5b8060188190555050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006704db732547630000905090565b610965611b8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e99061398c565b60405180910390fd5b8060198190555050565b6000610a09848484611d5e565b610aca84610a15611b8d565b610ac58560405180606001604052806028815260200161447c60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610a7b611b8d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546127079092919063ffffffff16565b611b95565b600190509392505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b16611b8d565b73ffffffffffffffffffffffffffffffffffffffff161480610b8c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b74611b8d565b73ffffffffffffffffffffffffffffffffffffffff16145b610b9557600080fd5b81601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b610c23611b8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca79061398c565b60405180910390fd5b60005b83839050811015610d4f578160166000868685818110610cd657610cd56139ac565b5b9050602002016020810190610ceb919061375f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d4790613a0a565b915050610cb3565b50505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d96611b8d565b73ffffffffffffffffffffffffffffffffffffffff161480610e0c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610df4611b8d565b73ffffffffffffffffffffffffffffffffffffffff16145b610e1557600080fd5b6000479050610e238161276b565b50565b610e2e611b8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ebb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb29061398c565b60405180910390fd5b60005b83839050811015610f5a578160056000868685818110610ee157610ee06139ac565b5b9050602002016020810190610ef6919061375f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610f5290613a0a565b915050610ebe565b50505050565b60195481565b60006009905090565b610f77611b8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611004576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ffb9061398c565b60405180910390fd5b8160098190555080600b819055505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61106a611b8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ee9061398c565b60405180910390fd5b6000601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b61115a611b8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111de9061398c565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b600061124e600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612858565b9050919050565b61125d611b8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112e19061398c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6113b0611b8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461143d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114349061398c565b60405180910390fd5b6704db7325476300006017819055506704db732547630000601881905550565b611465611b8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e99061398c565b60405180910390fd5b8060178190555050565b60175481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60185481565b60606040518060400160405280600381526020017f46444d0000000000000000000000000000000000000000000000000000000000815250905090565b61158e611b8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461161b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116129061398c565b60405180910390fd5b80601b8190555050565b6000611639611632611b8d565b8484611d5e565b6001905092915050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611684611b8d565b73ffffffffffffffffffffffffffffffffffffffff1614806116fa5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166116e2611b8d565b73ffffffffffffffffffffffffffffffffffffffff16145b61170357600080fd5b600061170e30611204565b9050611719816128c6565b50565b60106020528060005260406000206000915054906101000a900460ff1681565b611744611b8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146117d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c89061398c565b60405180910390fd5b6001601560146101000a81548160ff02191690831515021790555043601a81905550565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6118aa611b8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611937576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192e9061398c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036119a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199d90613ac4565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611a6b611b8d565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611af8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aef9061398c565b60405180910390fd5b60005b8151811015611b8957600160106000848481518110611b1d57611b1c6139ac565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611b8190613a0a565b915050611afb565b5050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611c04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfb90613b56565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6a90613be8565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611d5191906134e3565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611dcd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dc490613c7a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3390613d0c565b60405180910390fd5b60008111611e7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7690613d9e565b60405180910390fd5b611e8761151a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ef55750611ec561151a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561240657601560149054906101000a900460ff1661203857611f1661151a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480611ff8575060011515601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515148015611ff75750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b5b612037576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202e90613e30565b60405180910390fd5b5b601b54601a546120489190613e50565b431080156120555750483a115b156120aa57601c54483a6120699190613e84565b106120a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a090613f04565b60405180910390fd5b5b6017548111156120ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120e690613f70565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156121935750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6121d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c990614002565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461227f576018548161223484611204565b61223e9190613e50565b1061227e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227590614094565b60405180910390fd5b5b600061228a30611204565b90506000601954821015905060195482106122a55760195491505b8080156122bd575060158054906101000a900460ff16155b80156123175750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561232f5750601560169054906101000a900460ff165b80156123855750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156123db5750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612403576123e9826128c6565b60004790506000811115612401576124004761276b565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806124ad5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806125605750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561255f5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b1561256e57600090506126f5565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156126195750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561263157600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156126dc5750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156126f457600a54600c81905550600b54600d819055505b5b61270184848484612b3d565b50505050565b600083831115829061274f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161274691906132ed565b60405180910390fd5b506000838561275e9190613e84565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6002836127b491906140e3565b9081150290604051600060405180830381858888f193505050501580156127df573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60028361282991906140e3565b9081150290604051600060405180830381858888f19350505050158015612854573d6000803e3d6000fd5b5050565b600060065482111561289f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289690614186565b60405180910390fd5b60006128a9612b6a565b90506128be8184612b9590919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156128fd576128fc6137b9565b5b60405190808252806020026020018201604052801561292b5781602001602082028036833780820191505090505b5090503081600081518110612943576129426139ac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129ea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a0e91906141bb565b81600181518110612a2257612a216139ac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612a8930601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611b95565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612aed9594939291906142e1565b600060405180830381600087803b158015612b0757600080fd5b505af1158015612b1b573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b80612b4b57612b4a612bdf565b5b612b56848484612c1c565b80612b6457612b63612de7565b5b50505050565b6000806000612b77612dfb565b91509150612b8e8183612b9590919063ffffffff16565b9250505090565b6000612bd783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612e5a565b905092915050565b6000600c54148015612bf357506000600d54145b612c1a57600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b600080600080600080612c2e87612ebd565b955095509550955095509550612c8c86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f2590919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d2185600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6f90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612d6d81612fcd565b612d77848361308a565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051612dd491906134e3565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b6000806000600654905060006704db7325476300009050612e2f6704db732547630000600654612b9590919063ffffffff16565b821015612e4d576006546704db732547630000935093505050612e56565b81819350935050505b9091565b60008083118290612ea1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612e9891906132ed565b60405180910390fd5b5060008385612eb091906140e3565b9050809150509392505050565b6000806000806000806000806000612eda8a600c54600d546130c4565b9250925092506000612eea612b6a565b90506000806000612efd8e87878761315a565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612f6783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612707565b905092915050565b6000808284612f7e9190613e50565b905083811015612fc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612fba90614387565b60405180910390fd5b8091505092915050565b6000612fd7612b6a565b90506000612fee82846131e390919063ffffffff16565b905061304281600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612f6f90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61309f82600654612f2590919063ffffffff16565b6006819055506130ba81600754612f6f90919063ffffffff16565b6007819055505050565b6000806000806130f060646130e2888a6131e390919063ffffffff16565b612b9590919063ffffffff16565b9050600061311a606461310c888b6131e390919063ffffffff16565b612b9590919063ffffffff16565b9050600061314382613135858c612f2590919063ffffffff16565b612f2590919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061317385896131e390919063ffffffff16565b9050600061318a86896131e390919063ffffffff16565b905060006131a187896131e390919063ffffffff16565b905060006131ca826131bc8587612f2590919063ffffffff16565b612f2590919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083036131f55760009050613257565b6000828461320391906143a7565b905082848261321291906140e3565b14613252576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132499061445b565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561329757808201518184015260208101905061327c565b60008484015250505050565b6000601f19601f8301169050919050565b60006132bf8261325d565b6132c98185613268565b93506132d9818560208601613279565b6132e2816132a3565b840191505092915050565b6000602082019050818103600083015261330781846132b4565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061334e82613323565b9050919050565b61335e81613343565b811461336957600080fd5b50565b60008135905061337b81613355565b92915050565b6000819050919050565b61339481613381565b811461339f57600080fd5b50565b6000813590506133b18161338b565b92915050565b600080604083850312156133ce576133cd613319565b5b60006133dc8582860161336c565b92505060206133ed858286016133a2565b9150509250929050565b60008115159050919050565b61340c816133f7565b82525050565b60006020820190506134276000830184613403565b92915050565b60006020828403121561344357613442613319565b5b6000613451848285016133a2565b91505092915050565b6000819050919050565b600061347f61347a61347584613323565b61345a565b613323565b9050919050565b600061349182613464565b9050919050565b60006134a382613486565b9050919050565b6134b381613498565b82525050565b60006020820190506134ce60008301846134aa565b92915050565b6134dd81613381565b82525050565b60006020820190506134f860008301846134d4565b92915050565b60008060006060848603121561351757613516613319565b5b60006135258682870161336c565b93505060206135368682870161336c565b9250506040613547868287016133a2565b9150509250925092565b6000806040838503121561356857613567613319565b5b60006135768582860161336c565b92505060206135878582860161336c565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f8401126135b6576135b5613591565b5b8235905067ffffffffffffffff8111156135d3576135d2613596565b5b6020830191508360208202830111156135ef576135ee61359b565b5b9250929050565b6135ff816133f7565b811461360a57600080fd5b50565b60008135905061361c816135f6565b92915050565b60008060006040848603121561363b5761363a613319565b5b600084013567ffffffffffffffff8111156136595761365861331e565b5b613665868287016135a0565b935093505060206136788682870161360d565b9150509250925092565b600060ff82169050919050565b61369881613682565b82525050565b60006020820190506136b3600083018461368f565b92915050565b600080604083850312156136d0576136cf613319565b5b60006136de858286016133a2565b92505060206136ef858286016133a2565b9150509250929050565b600061370482613323565b9050919050565b613714816136f9565b82525050565b600060208201905061372f600083018461370b565b92915050565b61373e81613343565b82525050565b60006020820190506137596000830184613735565b92915050565b60006020828403121561377557613774613319565b5b60006137838482850161336c565b91505092915050565b6000602082840312156137a2576137a1613319565b5b60006137b08482850161360d565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6137f1826132a3565b810181811067ffffffffffffffff821117156138105761380f6137b9565b5b80604052505050565b600061382361330f565b905061382f82826137e8565b919050565b600067ffffffffffffffff82111561384f5761384e6137b9565b5b602082029050602081019050919050565b600061387361386e84613834565b613819565b905080838252602082019050602084028301858111156138965761389561359b565b5b835b818110156138bf57806138ab888261336c565b845260208401935050602081019050613898565b5050509392505050565b600082601f8301126138de576138dd613591565b5b81356138ee848260208601613860565b91505092915050565b60006020828403121561390d5761390c613319565b5b600082013567ffffffffffffffff81111561392b5761392a61331e565b5b613937848285016138c9565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613976602083613268565b915061398182613940565b602082019050919050565b600060208201905081810360008301526139a581613969565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613a1582613381565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613a4757613a466139db565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613aae602683613268565b9150613ab982613a52565b604082019050919050565b60006020820190508181036000830152613add81613aa1565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613b40602483613268565b9150613b4b82613ae4565b604082019050919050565b60006020820190508181036000830152613b6f81613b33565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613bd2602283613268565b9150613bdd82613b76565b604082019050919050565b60006020820190508181036000830152613c0181613bc5565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613c64602583613268565b9150613c6f82613c08565b604082019050919050565b60006020820190508181036000830152613c9381613c57565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613cf6602383613268565b9150613d0182613c9a565b604082019050919050565b60006020820190508181036000830152613d2581613ce9565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000613d88602983613268565b9150613d9382613d2c565b604082019050919050565b60006020820190508181036000830152613db781613d7b565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613e1a603f83613268565b9150613e2582613dbe565b604082019050919050565b60006020820190508181036000830152613e4981613e0d565b9050919050565b6000613e5b82613381565b9150613e6683613381565b9250828201905080821115613e7e57613e7d6139db565b5b92915050565b6000613e8f82613381565b9150613e9a83613381565b9250828203905081811115613eb257613eb16139db565b5b92915050565b7f544f4b454e3a2052455645525445440000000000000000000000000000000000600082015250565b6000613eee600f83613268565b9150613ef982613eb8565b602082019050919050565b60006020820190508181036000830152613f1d81613ee1565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b6000613f5a601c83613268565b9150613f6582613f24565b602082019050919050565b60006020820190508181036000830152613f8981613f4d565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b6000613fec602383613268565b9150613ff782613f90565b604082019050919050565b6000602082019050818103600083015261401b81613fdf565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b600061407e602383613268565b915061408982614022565b604082019050919050565b600060208201905081810360008301526140ad81614071565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006140ee82613381565b91506140f983613381565b925082614109576141086140b4565b5b828204905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000614170602a83613268565b915061417b82614114565b604082019050919050565b6000602082019050818103600083015261419f81614163565b9050919050565b6000815190506141b581613355565b92915050565b6000602082840312156141d1576141d0613319565b5b60006141df848285016141a6565b91505092915050565b6000819050919050565b600061420d614208614203846141e8565b61345a565b613381565b9050919050565b61421d816141f2565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61425881613343565b82525050565b600061426a838361424f565b60208301905092915050565b6000602082019050919050565b600061428e82614223565b614298818561422e565b93506142a38361423f565b8060005b838110156142d45781516142bb888261425e565b97506142c683614276565b9250506001810190506142a7565b5085935050505092915050565b600060a0820190506142f660008301886134d4565b6143036020830187614214565b81810360408301526143158186614283565b90506143246060830185613735565b61433160808301846134d4565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000614371601b83613268565b915061437c8261433b565b602082019050919050565b600060208201905081810360008301526143a081614364565b9050919050565b60006143b282613381565b91506143bd83613381565b92508282026143cb81613381565b915082820484148315176143e2576143e16139db565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000614445602183613268565b9150614450826143e9565b604082019050919050565b6000602082019050818103600083015261447481614438565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220491045aa2876dc2eeecdc35ba1aa4a92fba8d741091e8b493ae1b9cba093bf0964736f6c63430008120033

Deployed Bytecode Sourcemap

4200:14546:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6917:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7849:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17899:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5427:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7197:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17307:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8051:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18138:282;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18426:209;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13206:236;;;;;;;;;;;;;:::i;:::-;;17538:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5777:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7105:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17146:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5327:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5475:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13633:99;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17426:106;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7301:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1712:148;;;;;;;;;;;;;:::i;:::-;;18015:117;;;;;;;;;;;;;:::i;:::-;;17779:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5669:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5276:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1502:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5722:47;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7009:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18641:102;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7448:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12962:235;;;;;;;;;;;;;:::i;:::-;;5238:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12843:112;;;;;;;;;;;;;:::i;:::-;;5376:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7656:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1869:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13451:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6917:83;6954:13;6987:5;;;;;;;;;;;;;;;;;6980:12;;6917:83;:::o;7849:193::-;7951:4;7973:39;7982:12;:10;:12::i;:::-;7996:7;8005:6;7973:8;:39::i;:::-;8030:4;8023:11;;7849:193;;;;:::o;17899:110::-;1637:12;:10;:12::i;:::-;1627:22;;:6;;;;;;;;;;:22;;;1619:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17988:13:::1;17971:14;:30;;;;17899:110:::0;:::o;5427:41::-;;;;;;;;;;;;;:::o;7197:95::-;7250:7;4744:17;7270:14;;7197:95;:::o;17307:113::-;1637:12;:10;:12::i;:::-;1627:22;;:6;;;;;;;;;;:22;;;1619:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17405:7:::1;17383:19;:29;;;;17307:113:::0;:::o;8051:446::-;8183:4;8200:36;8210:6;8218:9;8229:6;8200:9;:36::i;:::-;8247:220;8270:6;8291:12;:10;:12::i;:::-;8318:138;8374:6;8318:138;;;;;;;;;;;;;;;;;:11;:19;8330:6;8318:19;;;;;;;;;;;;;;;:33;8338:12;:10;:12::i;:::-;8318:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8247:8;:220::i;:::-;8485:4;8478:11;;8051:446;;;;;:::o;18138:282::-;18251:19;;;;;;;;;;;18235:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;18290:17;;;;;;;;;;;18274:33;;:12;:10;:12::i;:::-;:33;;;18235:72;18227:81;;;;;;18347:10;18319:17;;:39;;;;;;;;;;;;;;;;;;18399:12;18369:19;;:43;;;;;;;;;;;;;;;;;;18138:282;;:::o;18426:209::-;1637:12;:10;:12::i;:::-;1627:22;;:6;;;;;;;;;;:22;;;1619:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18527:9:::1;18523:105;18546:8;;:15;;18542:1;:19;18523:105;;;18609:7;18583:10;:23;18594:8;;18603:1;18594:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18583:23;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;18563:3;;;;;:::i;:::-;;;;18523:105;;;;18426:209:::0;;;:::o;13206:236::-;13273:19;;;;;;;;;;;13257:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;13312:17;;;;;;;;;;;13296:33;;:12;:10;:12::i;:::-;:33;;;13257:72;13249:81;;;;;;13341:26;13370:21;13341:50;;13402:32;13415:18;13402:12;:32::i;:::-;13238:204;13206:236::o;17538:235::-;1637:12;:10;:12::i;:::-;1627:22;;:6;;;;;;;;;;:22;;;1619:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17656:9:::1;17652:114;17675:8;;:15;;17671:1;:19;17652:114;;;17746:8;17712:18;:31;17731:8;;17740:1;17731:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17712:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17692:3;;;;;:::i;:::-;;;;17652:114;;;;17538:235:::0;;;:::o;5777:52::-;;;;:::o;7105:83::-;7146:5;4420:1;7164:16;;7105:83;:::o;17146:155::-;1637:12;:10;:12::i;:::-;1627:22;;:6;;;;;;;;;;:22;;;1619:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17247:9:::1;17232:12;:24;;;;17283:10;17267:13;:26;;;;17146:155:::0;;:::o;5327:42::-;;;;;;;;;;;;;:::o;5475:28::-;;;;;;;;;;;;;:::o;13633:99::-;1637:12;:10;:12::i;:::-;1627:22;;:6;;;;;;;;;;:22;;;1619:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13719:5:::1;13704:4;:12;13709:6;13704:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13633:99:::0;:::o;17426:106::-;1637:12;:10;:12::i;:::-;1627:22;;:6;;;;;;;;;;:22;;;1619:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17512:12:::1;17498:11;;:26;;;;;;;;;;;;;;;;;;17426:106:::0;:::o;7301:138::-;7367:7;7394:37;7414:7;:16;7422:7;7414:16;;;;;;;;;;;;;;;;7394:19;:37::i;:::-;7387:44;;7301:138;;;:::o;1712:148::-;1637:12;:10;:12::i;:::-;1627:22;;:6;;;;;;;;;;:22;;;1619:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1819:1:::1;1782:40;;1803:6;::::0;::::1;;;;;;;;1782:40;;;;;;;;;;;;1850:1;1833:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1712:148::o:0;18015:117::-;1637:12;:10;:12::i;:::-;1627:22;;:6;;;;;;;;;;:22;;;1619:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4744:17:::1;18067:12;:22;;;;4744:17;18100:14;:24;;;;18015:117::o:0;17779:114::-;1637:12;:10;:12::i;:::-;1627:22;;:6;;;;;;;;;;:22;;;1619:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17867:11:::1;17852:12;:26;;;;17779:114:::0;:::o;5669:45::-;;;;:::o;5276:43::-;;;;;;;;;;;;;;;;;:::o;1502:79::-;1540:7;1567:6;;;;;;;;;;;1560:13;;1502:79;:::o;5722:47::-;;;;:::o;7009:87::-;7048:13;7081:7;;;;;;;;;;;;;;;;;7074:14;;7009:87;:::o;18641:102::-;1637:12;:10;:12::i;:::-;1627:22;;:6;;;;;;;;;;:22;;;1619:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18726:9:::1;18710:15;:25;;;;18641:102:::0;:::o;7448:199::-;7553:4;7575:42;7585:12;:10;:12::i;:::-;7599:9;7610:6;7575:9;:42::i;:::-;7635:4;7628:11;;7448:199;;;;:::o;12962:235::-;13027:19;;;;;;;;;;;13011:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;13066:17;;;;;;;;;;;13050:33;;:12;:10;:12::i;:::-;:33;;;13011:72;13003:81;;;;;;13095:23;13121:24;13139:4;13121:9;:24::i;:::-;13095:50;;13156:33;13173:15;13156:16;:33::i;:::-;12992:205;12962:235::o;5238:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12843:112::-;1637:12;:10;:12::i;:::-;1627:22;;:6;;;;;;;;;;:22;;;1619:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12908:4:::1;12894:11;;:18;;;;;;;;;;;;;;;;;;12935:12;12923:11;:24;;;;12843:112::o:0;5376:41::-;;;;;;;;;;;;;:::o;7656:184::-;7773:7;7805:11;:18;7817:5;7805:18;;;;;;;;;;;;;;;:27;7824:7;7805:27;;;;;;;;;;;;;;;;7798:34;;7656:184;;;;:::o;1869:244::-;1637:12;:10;:12::i;:::-;1627:22;;:6;;;;;;;;;;:22;;;1619:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1978:1:::1;1958:22;;:8;:22;;::::0;1950:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2068:8;2039:38;;2060:6;::::0;::::1;;;;;;;;2039:38;;;;;;;;;;;;2097:8;2088:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1869:244:::0;:::o;13451:176::-;1637:12;:10;:12::i;:::-;1627:22;;:6;;;;;;;;;;:22;;;1619:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13534:9:::1;13529:91;13553:5;:12;13549:1;:16;13529:91;;;13604:4;13587;:14;13592:5;13598:1;13592:8;;;;;;;;:::i;:::-;;;;;;;;13587:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13567:3;;;;;:::i;:::-;;;;13529:91;;;;13451:176:::0;:::o;281:98::-;334:7;361:10;354:17;;281:98;:::o;9194:369::-;9338:1;9321:19;;:5;:19;;;9313:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9419:1;9400:21;;:7;:21;;;9392:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9501:6;9471:11;:18;9483:5;9471:18;;;;;;;;;;;;;;;:27;9490:7;9471:27;;;;;;;;;;;;;;;:36;;;;9539:7;9523:32;;9532:5;9523:32;;;9548:6;9523:32;;;;;;:::i;:::-;;;;;;;;9194:369;;;:::o;9572:2613::-;9710:1;9694:18;;:4;:18;;;9686:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9787:1;9773:16;;:2;:16;;;9765:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9857:1;9848:6;:10;9840:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9930:7;:5;:7::i;:::-;9922:15;;:4;:15;;;;:32;;;;;9947:7;:5;:7::i;:::-;9941:13;;:2;:13;;;;9922:32;9918:1535;;;10012:11;;;;;;;;;;;10007:195;;10061:7;:5;:7::i;:::-;10053:15;;:4;:15;;;:64;;;;10089:4;10073:20;;:10;:14;10084:2;10073:14;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;:43;;;;;10103:13;;;;;;;;;;;10097:19;;:4;:19;;;10073:43;10053:64;10044:142;;;;;;;;;;;;:::i;:::-;;;;;;;;;10007:195;10254:15;;10240:11;;:29;;;;:::i;:::-;10223:12;:47;:78;;;;;10288:13;10274:11;:27;10223:78;10218:192;;;10368:6;;10351:13;10337:11;:27;;;;:::i;:::-;10336:38;10328:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;10218:192;10442:12;;10432:6;:22;;10424:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10511:4;:10;10516:4;10511:10;;;;;;;;;;;;;;;;;;;;;;;;;10510:11;:24;;;;;10526:4;:8;10531:2;10526:8;;;;;;;;;;;;;;;;;;;;;;;;;10525:9;10510:24;10502:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10601:13;;;;;;;;;;;10595:19;;:2;:19;;;10592:146;;10668:14;;10659:6;10643:13;10653:2;10643:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10635:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10592:146;10755:28;10786:24;10804:4;10786:9;:24::i;:::-;10755:55;;10825:12;10864:19;;10840:20;:43;;10825:58;;10928:19;;10904:20;:43;10901:138;;11004:19;;10981:42;;10901:138;11060:7;:18;;;;;11072:6;;;;;;;;;;11071:7;11060:18;:43;;;;;11090:13;;;;;;;;;;;11082:21;;:4;:21;;;;11060:43;:58;;;;;11107:11;;;;;;;;;;;11060:58;:87;;;;;11123:18;:24;11142:4;11123:24;;;;;;;;;;;;;;;;;;;;;;;;;11122:25;11060:87;:114;;;;;11152:18;:22;11171:2;11152:22;;;;;;;;;;;;;;;;;;;;;;;;;11151:23;11060:114;11056:386;;;11195:38;11212:20;11195:16;:38::i;:::-;11252:26;11281:21;11252:50;;11346:1;11325:18;:22;11321:106;;;11372:35;11385:21;11372:12;:35::i;:::-;11321:106;11176:266;11056:386;9956:1497;;9918:1535;11466:12;11481:4;11466:19;;11531:18;:24;11550:4;11531:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11559:18;:22;11578:2;11559:22;;;;;;;;;;;;;;;;;;;;;;;;;11531:50;11530:102;;;;11595:13;;;;;;;;;;;11587:21;;:4;:21;;;;:44;;;;;11618:13;;;;;;;;;;;11612:19;;:2;:19;;;;11587:44;11530:102;11526:597;;;11659:5;11649:15;;11526:597;;;11743:13;;;;;;;;;;;11735:21;;:4;:21;;;:55;;;;;11774:15;;;;;;;;;;;11760:30;;:2;:30;;;;11735:55;11732:162;;;11823:14;;11811:9;:26;;;;11866:12;;11856:7;:22;;;;11732:162;11954:13;;;;;;;;;;;11948:19;;:2;:19;;;:55;;;;;11987:15;;;;;;;;;;;11971:32;;:4;:32;;;;11948:55;11944:165;;;12036:15;;12024:9;:27;;;;12080:13;;12070:7;:23;;;;11944:165;11526:597;12136:41;12151:4;12157:2;12161:6;12169:7;12136:14;:41::i;:::-;9675:2510;9572:2613;;;:::o;2469:224::-;2589:7;2622:1;2617;:6;;2625:12;2609:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2649:9;2665:1;2661;:5;;;;:::i;:::-;2649:17;;2684:1;2677:8;;;2469:224;;;;;:::o;12686:150::-;12743:17;;;;;;;;;;;:26;;:36;12777:1;12770:6;:8;;;;:::i;:::-;12743:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12790:19;;;;;;;;;;;:28;;:38;12826:1;12819:6;:8;;;;:::i;:::-;12790:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12686:150;:::o;8506:323::-;8601:7;8659;;8648;:18;;8626:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8747:19;8769:10;:8;:10::i;:::-;8747:32;;8797:24;8809:11;8797:7;:11;;:24;;;;:::i;:::-;8790:31;;;8506:323;;;:::o;12194:483::-;6052:4;6043:6;;:13;;;;;;;;;;;;;;;;;;12272:21:::1;12310:1;12296:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12272:40;;12341:4;12323;12328:1;12323:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12367:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12357:4;12362:1;12357:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12400:62;12417:4;12432:15;;;;;;;;;;;12450:11;12400:8;:62::i;:::-;12473:15;;;;;;;;;;;:66;;;12554:11;12580:1;12596:4;12623;12643:15;12473:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12261:416;6088:5:::0;6079:6;;:14;;;;;;;;;;;;;;;;;;12194:483;:::o;13738:282::-;13894:7;13889:28;;13903:14;:12;:14::i;:::-;13889:28;13928:44;13946:6;13954:9;13965:6;13928:17;:44::i;:::-;13988:7;13983:29;;13997:15;:13;:15::i;:::-;13983:29;13738:282;;;;:::o;16707:164::-;16749:7;16770:15;16787;16806:19;:17;:19::i;:::-;16769:56;;;;16843:20;16855:7;16843;:11;;:20;;;;:::i;:::-;16836:27;;;;16707:164;:::o;2951:132::-;3009:7;3036:39;3040:1;3043;3036:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3029:46;;2951:132;;;;:::o;8838:221::-;8898:1;8885:9;;:14;:30;;;;;8914:1;8903:7;;:12;8885:30;8917:7;8881:43;8957:9;;8937:17;:29;;;;8995:7;;8977:15;:25;;;;9028:1;9016:9;:13;;;;9050:1;9040:7;:11;;;;8838:221;:::o;14029:610::-;14176:15;14206:23;14244:12;14271:23;14309:12;14336:13;14363:19;14374:7;14363:10;:19::i;:::-;14161:221;;;;;;;;;;;;14411:28;14431:7;14411;:15;14419:6;14411:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14393:7;:15;14401:6;14393:15;;;;;;;;;;;;;;;:46;;;;14471:39;14494:15;14471:7;:18;14479:9;14471:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14450:7;:18;14458:9;14450:18;;;;;;;;;;;;;;;:60;;;;14521:16;14531:5;14521:9;:16::i;:::-;14548:23;14560:4;14566;14548:11;:23::i;:::-;14604:9;14587:44;;14596:6;14587:44;;;14615:15;14587:44;;;;;;:::i;:::-;;;;;;;;14150:489;;;;;;14029:610;;;:::o;9068:117::-;9124:17;;9112:9;:29;;;;9162:15;;9152:7;:25;;;;9068:117::o;16880:257::-;16931:7;16940;16960:15;16978:7;;16960:25;;16996:15;4744:17;16996:25;;17046:20;4744:17;17046:7;;:11;;:20;;;;:::i;:::-;17036:7;:30;17032:61;;;17076:7;;4744:17;17068:25;;;;;;;;17032:61;17112:7;17121;17104:25;;;;;;16880:257;;;:::o;3089:223::-;3209:7;3241:1;3237;:5;3244:12;3229:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3268:9;3284:1;3280;:5;;;;:::i;:::-;3268:17;;3303:1;3296:8;;;3089:223;;;;;:::o;15062:615::-;15162:7;15184;15206;15228;15250;15272;15308:23;15333:12;15347:13;15377:40;15389:7;15398:9;;15409:7;;15377:11;:40::i;:::-;15307:110;;;;;;15428:19;15450:10;:8;:10::i;:::-;15428:32;;15472:15;15489:23;15514:12;15543:46;15555:7;15564:4;15570:5;15577:11;15543;:46::i;:::-;15471:118;;;;;;15608:7;15617:15;15634:4;15640:15;15657:4;15663:5;15600:69;;;;;;;;;;;;;;;;;;;15062:615;;;;;;;:::o;2327:136::-;2385:7;2412:43;2416:1;2419;2412:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2405:50;;2327:136;;;;:::o;2142:179::-;2200:7;2220:9;2236:1;2232;:5;;;;:::i;:::-;2220:17;;2261:1;2256;:6;;2248:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2312:1;2305:8;;;2142:179;;;;:::o;14648:211::-;14701:19;14723:10;:8;:10::i;:::-;14701:32;;14744:13;14760:22;14770:11;14760:5;:9;;:22;;;;:::i;:::-;14744:38;;14818:33;14845:5;14818:7;:22;14834:4;14818:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14793:7;:22;14809:4;14793:22;;;;;;;;;;;;;;;:58;;;;14690:169;;14648:211;:::o;14868:147::-;14946:17;14958:4;14946:7;;:11;;:17;;;;:::i;:::-;14936:7;:27;;;;14987:20;15002:4;14987:10;;:14;;:20;;;;:::i;:::-;14974:10;:33;;;;14868:147;;:::o;15686:469::-;15855:7;15877;15899;15934:12;15949:30;15975:3;15949:21;15961:8;15949:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15934:45;;15990:13;16006:28;16030:3;16006:19;16018:6;16006:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15990:44;;16045:23;16071:28;16093:5;16071:17;16083:4;16071:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16045:54;;16118:15;16135:4;16141:5;16110:37;;;;;;;;;15686:469;;;;;;;:::o;16164:534::-;16358:7;16380;16402;16437:15;16455:24;16467:11;16455:7;:11;;:24;;;;:::i;:::-;16437:42;;16490:12;16505:21;16514:11;16505:4;:8;;:21;;;;:::i;:::-;16490:36;;16537:13;16553:22;16563:11;16553:5;:9;;:22;;;;:::i;:::-;16537:38;;16586:23;16612:28;16634:5;16612:17;16624:4;16612:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16586:54;;16659:7;16668:15;16685:4;16651:39;;;;;;;;;;16164:534;;;;;;;;:::o;2699:246::-;2757:7;2786:1;2781;:6;2777:47;;2811:1;2804:8;;;;2777:47;2834:9;2850:1;2846;:5;;;;:::i;:::-;2834:17;;2879:1;2874;2870;:5;;;;:::i;:::-;:10;2862:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2936:1;2929:8;;;2699:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:60::-;3809:3;3830:5;3823:12;;3781:60;;;:::o;3847:142::-;3897:9;3930:53;3948:34;3957:24;3975:5;3957:24;:::i;:::-;3948:34;:::i;:::-;3930:53;:::i;:::-;3917:66;;3847:142;;;:::o;3995:126::-;4045:9;4078:37;4109:5;4078:37;:::i;:::-;4065:50;;3995:126;;;:::o;4127:152::-;4203:9;4236:37;4267:5;4236:37;:::i;:::-;4223:50;;4127:152;;;:::o;4285:183::-;4398:63;4455:5;4398:63;:::i;:::-;4393:3;4386:76;4285:183;;:::o;4474:274::-;4593:4;4631:2;4620:9;4616:18;4608:26;;4644:97;4738:1;4727:9;4723:17;4714:6;4644:97;:::i;:::-;4474:274;;;;:::o;4754:118::-;4841:24;4859:5;4841:24;:::i;:::-;4836:3;4829:37;4754:118;;:::o;4878:222::-;4971:4;5009:2;4998:9;4994:18;4986:26;;5022:71;5090:1;5079:9;5075:17;5066:6;5022:71;:::i;:::-;4878:222;;;;:::o;5106:619::-;5183:6;5191;5199;5248:2;5236:9;5227:7;5223:23;5219:32;5216:119;;;5254:79;;:::i;:::-;5216:119;5374:1;5399:53;5444:7;5435:6;5424:9;5420:22;5399:53;:::i;:::-;5389:63;;5345:117;5501:2;5527:53;5572:7;5563:6;5552:9;5548:22;5527:53;:::i;:::-;5517:63;;5472:118;5629:2;5655:53;5700:7;5691:6;5680:9;5676:22;5655:53;:::i;:::-;5645:63;;5600:118;5106:619;;;;;:::o;5731:474::-;5799:6;5807;5856:2;5844:9;5835:7;5831:23;5827:32;5824:119;;;5862:79;;:::i;:::-;5824:119;5982:1;6007:53;6052:7;6043:6;6032:9;6028:22;6007:53;:::i;:::-;5997:63;;5953:117;6109:2;6135:53;6180:7;6171:6;6160:9;6156:22;6135:53;:::i;:::-;6125:63;;6080:118;5731:474;;;;;:::o;6211:117::-;6320:1;6317;6310:12;6334:117;6443:1;6440;6433:12;6457:117;6566:1;6563;6556:12;6597:568;6670:8;6680:6;6730:3;6723:4;6715:6;6711:17;6707:27;6697:122;;6738:79;;:::i;:::-;6697:122;6851:6;6838:20;6828:30;;6881:18;6873:6;6870:30;6867:117;;;6903:79;;:::i;:::-;6867:117;7017:4;7009:6;7005:17;6993:29;;7071:3;7063:4;7055:6;7051:17;7041:8;7037:32;7034:41;7031:128;;;7078:79;;:::i;:::-;7031:128;6597:568;;;;;:::o;7171:116::-;7241:21;7256:5;7241:21;:::i;:::-;7234:5;7231:32;7221:60;;7277:1;7274;7267:12;7221:60;7171:116;:::o;7293:133::-;7336:5;7374:6;7361:20;7352:29;;7390:30;7414:5;7390:30;:::i;:::-;7293:133;;;;:::o;7432:698::-;7524:6;7532;7540;7589:2;7577:9;7568:7;7564:23;7560:32;7557:119;;;7595:79;;:::i;:::-;7557:119;7743:1;7732:9;7728:17;7715:31;7773:18;7765:6;7762:30;7759:117;;;7795:79;;:::i;:::-;7759:117;7908:80;7980:7;7971:6;7960:9;7956:22;7908:80;:::i;:::-;7890:98;;;;7686:312;8037:2;8063:50;8105:7;8096:6;8085:9;8081:22;8063:50;:::i;:::-;8053:60;;8008:115;7432:698;;;;;:::o;8136:86::-;8171:7;8211:4;8204:5;8200:16;8189:27;;8136:86;;;:::o;8228:112::-;8311:22;8327:5;8311:22;:::i;:::-;8306:3;8299:35;8228:112;;:::o;8346:214::-;8435:4;8473:2;8462:9;8458:18;8450:26;;8486:67;8550:1;8539:9;8535:17;8526:6;8486:67;:::i;:::-;8346:214;;;;:::o;8566:474::-;8634:6;8642;8691:2;8679:9;8670:7;8666:23;8662:32;8659:119;;;8697:79;;:::i;:::-;8659:119;8817:1;8842:53;8887:7;8878:6;8867:9;8863:22;8842:53;:::i;:::-;8832:63;;8788:117;8944:2;8970:53;9015:7;9006:6;8995:9;8991:22;8970:53;:::i;:::-;8960:63;;8915:118;8566:474;;;;;:::o;9046:104::-;9091:7;9120:24;9138:5;9120:24;:::i;:::-;9109:35;;9046:104;;;:::o;9156:142::-;9259:32;9285:5;9259:32;:::i;:::-;9254:3;9247:45;9156:142;;:::o;9304:254::-;9413:4;9451:2;9440:9;9436:18;9428:26;;9464:87;9548:1;9537:9;9533:17;9524:6;9464:87;:::i;:::-;9304:254;;;;:::o;9564:118::-;9651:24;9669:5;9651:24;:::i;:::-;9646:3;9639:37;9564:118;;:::o;9688:222::-;9781:4;9819:2;9808:9;9804:18;9796:26;;9832:71;9900:1;9889:9;9885:17;9876:6;9832:71;:::i;:::-;9688:222;;;;:::o;9916:329::-;9975:6;10024:2;10012:9;10003:7;9999:23;9995:32;9992:119;;;10030:79;;:::i;:::-;9992:119;10150:1;10175:53;10220:7;10211:6;10200:9;10196:22;10175:53;:::i;:::-;10165:63;;10121:117;9916:329;;;;:::o;10251:323::-;10307:6;10356:2;10344:9;10335:7;10331:23;10327:32;10324:119;;;10362:79;;:::i;:::-;10324:119;10482:1;10507:50;10549:7;10540:6;10529:9;10525:22;10507:50;:::i;:::-;10497:60;;10453:114;10251:323;;;;:::o;10580:180::-;10628:77;10625:1;10618:88;10725:4;10722:1;10715:15;10749:4;10746:1;10739:15;10766:281;10849:27;10871:4;10849:27;:::i;:::-;10841:6;10837:40;10979:6;10967:10;10964:22;10943:18;10931:10;10928:34;10925:62;10922:88;;;10990:18;;:::i;:::-;10922:88;11030:10;11026:2;11019:22;10809:238;10766:281;;:::o;11053:129::-;11087:6;11114:20;;:::i;:::-;11104:30;;11143:33;11171:4;11163:6;11143:33;:::i;:::-;11053:129;;;:::o;11188:311::-;11265:4;11355:18;11347:6;11344:30;11341:56;;;11377:18;;:::i;:::-;11341:56;11427:4;11419:6;11415:17;11407:25;;11487:4;11481;11477:15;11469:23;;11188:311;;;:::o;11522:710::-;11618:5;11643:81;11659:64;11716:6;11659:64;:::i;:::-;11643:81;:::i;:::-;11634:90;;11744:5;11773:6;11766:5;11759:21;11807:4;11800:5;11796:16;11789:23;;11860:4;11852:6;11848:17;11840:6;11836:30;11889:3;11881:6;11878:15;11875:122;;;11908:79;;:::i;:::-;11875:122;12023:6;12006:220;12040:6;12035:3;12032:15;12006:220;;;12115:3;12144:37;12177:3;12165:10;12144:37;:::i;:::-;12139:3;12132:50;12211:4;12206:3;12202:14;12195:21;;12082:144;12066:4;12061:3;12057:14;12050:21;;12006:220;;;12010:21;11624:608;;11522:710;;;;;:::o;12255:370::-;12326:5;12375:3;12368:4;12360:6;12356:17;12352:27;12342:122;;12383:79;;:::i;:::-;12342:122;12500:6;12487:20;12525:94;12615:3;12607:6;12600:4;12592:6;12588:17;12525:94;:::i;:::-;12516:103;;12332:293;12255:370;;;;:::o;12631:539::-;12715:6;12764:2;12752:9;12743:7;12739:23;12735:32;12732:119;;;12770:79;;:::i;:::-;12732:119;12918:1;12907:9;12903:17;12890:31;12948:18;12940:6;12937:30;12934:117;;;12970:79;;:::i;:::-;12934:117;13075:78;13145:7;13136:6;13125:9;13121:22;13075:78;:::i;:::-;13065:88;;12861:302;12631:539;;;;:::o;13176:182::-;13316:34;13312:1;13304:6;13300:14;13293:58;13176:182;:::o;13364:366::-;13506:3;13527:67;13591:2;13586:3;13527:67;:::i;:::-;13520:74;;13603:93;13692:3;13603:93;:::i;:::-;13721:2;13716:3;13712:12;13705:19;;13364:366;;;:::o;13736:419::-;13902:4;13940:2;13929:9;13925:18;13917:26;;13989:9;13983:4;13979:20;13975:1;13964:9;13960:17;13953:47;14017:131;14143:4;14017:131;:::i;:::-;14009:139;;13736:419;;;:::o;14161:180::-;14209:77;14206:1;14199:88;14306:4;14303:1;14296:15;14330:4;14327:1;14320:15;14347:180;14395:77;14392:1;14385:88;14492:4;14489:1;14482:15;14516:4;14513:1;14506:15;14533:233;14572:3;14595:24;14613:5;14595:24;:::i;:::-;14586:33;;14641:66;14634:5;14631:77;14628:103;;14711:18;;:::i;:::-;14628:103;14758:1;14751:5;14747:13;14740:20;;14533:233;;;:::o;14772:225::-;14912:34;14908:1;14900:6;14896:14;14889:58;14981:8;14976:2;14968:6;14964:15;14957:33;14772:225;:::o;15003:366::-;15145:3;15166:67;15230:2;15225:3;15166:67;:::i;:::-;15159:74;;15242:93;15331:3;15242:93;:::i;:::-;15360:2;15355:3;15351:12;15344:19;;15003:366;;;:::o;15375:419::-;15541:4;15579:2;15568:9;15564:18;15556:26;;15628:9;15622:4;15618:20;15614:1;15603:9;15599:17;15592:47;15656:131;15782:4;15656:131;:::i;:::-;15648:139;;15375:419;;;:::o;15800:223::-;15940:34;15936:1;15928:6;15924:14;15917:58;16009:6;16004:2;15996:6;15992:15;15985:31;15800:223;:::o;16029:366::-;16171:3;16192:67;16256:2;16251:3;16192:67;:::i;:::-;16185:74;;16268:93;16357:3;16268:93;:::i;:::-;16386:2;16381:3;16377:12;16370:19;;16029:366;;;:::o;16401:419::-;16567:4;16605:2;16594:9;16590:18;16582:26;;16654:9;16648:4;16644:20;16640:1;16629:9;16625:17;16618:47;16682:131;16808:4;16682:131;:::i;:::-;16674:139;;16401:419;;;:::o;16826:221::-;16966:34;16962:1;16954:6;16950:14;16943:58;17035:4;17030:2;17022:6;17018:15;17011:29;16826:221;:::o;17053:366::-;17195:3;17216:67;17280:2;17275:3;17216:67;:::i;:::-;17209:74;;17292:93;17381:3;17292:93;:::i;:::-;17410:2;17405:3;17401:12;17394:19;;17053:366;;;:::o;17425:419::-;17591:4;17629:2;17618:9;17614:18;17606:26;;17678:9;17672:4;17668:20;17664:1;17653:9;17649:17;17642:47;17706:131;17832:4;17706:131;:::i;:::-;17698:139;;17425:419;;;:::o;17850:224::-;17990:34;17986:1;17978:6;17974:14;17967:58;18059:7;18054:2;18046:6;18042:15;18035:32;17850:224;:::o;18080:366::-;18222:3;18243:67;18307:2;18302:3;18243:67;:::i;:::-;18236:74;;18319:93;18408:3;18319:93;:::i;:::-;18437:2;18432:3;18428:12;18421:19;;18080:366;;;:::o;18452:419::-;18618:4;18656:2;18645:9;18641:18;18633:26;;18705:9;18699:4;18695:20;18691:1;18680:9;18676:17;18669:47;18733:131;18859:4;18733:131;:::i;:::-;18725:139;;18452:419;;;:::o;18877:222::-;19017:34;19013:1;19005:6;19001:14;18994:58;19086:5;19081:2;19073:6;19069:15;19062:30;18877:222;:::o;19105:366::-;19247:3;19268:67;19332:2;19327:3;19268:67;:::i;:::-;19261:74;;19344:93;19433:3;19344:93;:::i;:::-;19462:2;19457:3;19453:12;19446:19;;19105:366;;;:::o;19477:419::-;19643:4;19681:2;19670:9;19666:18;19658:26;;19730:9;19724:4;19720:20;19716:1;19705:9;19701:17;19694:47;19758:131;19884:4;19758:131;:::i;:::-;19750:139;;19477:419;;;:::o;19902:228::-;20042:34;20038:1;20030:6;20026:14;20019:58;20111:11;20106:2;20098:6;20094:15;20087:36;19902:228;:::o;20136:366::-;20278:3;20299:67;20363:2;20358:3;20299:67;:::i;:::-;20292:74;;20375:93;20464:3;20375:93;:::i;:::-;20493:2;20488:3;20484:12;20477:19;;20136:366;;;:::o;20508:419::-;20674:4;20712:2;20701:9;20697:18;20689:26;;20761:9;20755:4;20751:20;20747:1;20736:9;20732:17;20725:47;20789:131;20915:4;20789:131;:::i;:::-;20781:139;;20508:419;;;:::o;20933:250::-;21073:34;21069:1;21061:6;21057:14;21050:58;21142:33;21137:2;21129:6;21125:15;21118:58;20933:250;:::o;21189:366::-;21331:3;21352:67;21416:2;21411:3;21352:67;:::i;:::-;21345:74;;21428:93;21517:3;21428:93;:::i;:::-;21546:2;21541:3;21537:12;21530:19;;21189:366;;;:::o;21561:419::-;21727:4;21765:2;21754:9;21750:18;21742:26;;21814:9;21808:4;21804:20;21800:1;21789:9;21785:17;21778:47;21842:131;21968:4;21842:131;:::i;:::-;21834:139;;21561:419;;;:::o;21986:191::-;22026:3;22045:20;22063:1;22045:20;:::i;:::-;22040:25;;22079:20;22097:1;22079:20;:::i;:::-;22074:25;;22122:1;22119;22115:9;22108:16;;22143:3;22140:1;22137:10;22134:36;;;22150:18;;:::i;:::-;22134:36;21986:191;;;;:::o;22183:194::-;22223:4;22243:20;22261:1;22243:20;:::i;:::-;22238:25;;22277:20;22295:1;22277:20;:::i;:::-;22272:25;;22321:1;22318;22314:9;22306:17;;22345:1;22339:4;22336:11;22333:37;;;22350:18;;:::i;:::-;22333:37;22183:194;;;;:::o;22383:165::-;22523:17;22519:1;22511:6;22507:14;22500:41;22383:165;:::o;22554:366::-;22696:3;22717:67;22781:2;22776:3;22717:67;:::i;:::-;22710:74;;22793:93;22882:3;22793:93;:::i;:::-;22911:2;22906:3;22902:12;22895:19;;22554:366;;;:::o;22926:419::-;23092:4;23130:2;23119:9;23115:18;23107:26;;23179:9;23173:4;23169:20;23165:1;23154:9;23150:17;23143:47;23207:131;23333:4;23207:131;:::i;:::-;23199:139;;22926:419;;;:::o;23351:178::-;23491:30;23487:1;23479:6;23475:14;23468:54;23351:178;:::o;23535:366::-;23677:3;23698:67;23762:2;23757:3;23698:67;:::i;:::-;23691:74;;23774:93;23863:3;23774:93;:::i;:::-;23892:2;23887:3;23883:12;23876:19;;23535:366;;;:::o;23907:419::-;24073:4;24111:2;24100:9;24096:18;24088:26;;24160:9;24154:4;24150:20;24146:1;24135:9;24131:17;24124:47;24188:131;24314:4;24188:131;:::i;:::-;24180:139;;23907:419;;;:::o;24332:222::-;24472:34;24468:1;24460:6;24456:14;24449:58;24541:5;24536:2;24528:6;24524:15;24517:30;24332:222;:::o;24560:366::-;24702:3;24723:67;24787:2;24782:3;24723:67;:::i;:::-;24716:74;;24799:93;24888:3;24799:93;:::i;:::-;24917:2;24912:3;24908:12;24901:19;;24560:366;;;:::o;24932:419::-;25098:4;25136:2;25125:9;25121:18;25113:26;;25185:9;25179:4;25175:20;25171:1;25160:9;25156:17;25149:47;25213:131;25339:4;25213:131;:::i;:::-;25205:139;;24932:419;;;:::o;25357:222::-;25497:34;25493:1;25485:6;25481:14;25474:58;25566:5;25561:2;25553:6;25549:15;25542:30;25357:222;:::o;25585:366::-;25727:3;25748:67;25812:2;25807:3;25748:67;:::i;:::-;25741:74;;25824:93;25913:3;25824:93;:::i;:::-;25942:2;25937:3;25933:12;25926:19;;25585:366;;;:::o;25957:419::-;26123:4;26161:2;26150:9;26146:18;26138:26;;26210:9;26204:4;26200:20;26196:1;26185:9;26181:17;26174:47;26238:131;26364:4;26238:131;:::i;:::-;26230:139;;25957:419;;;:::o;26382:180::-;26430:77;26427:1;26420:88;26527:4;26524:1;26517:15;26551:4;26548:1;26541:15;26568:185;26608:1;26625:20;26643:1;26625:20;:::i;:::-;26620:25;;26659:20;26677:1;26659:20;:::i;:::-;26654:25;;26698:1;26688:35;;26703:18;;:::i;:::-;26688:35;26745:1;26742;26738:9;26733:14;;26568:185;;;;:::o;26759:229::-;26899:34;26895:1;26887:6;26883:14;26876:58;26968:12;26963:2;26955:6;26951:15;26944:37;26759:229;:::o;26994:366::-;27136:3;27157:67;27221:2;27216:3;27157:67;:::i;:::-;27150:74;;27233:93;27322:3;27233:93;:::i;:::-;27351:2;27346:3;27342:12;27335:19;;26994:366;;;:::o;27366:419::-;27532:4;27570:2;27559:9;27555:18;27547:26;;27619:9;27613:4;27609:20;27605:1;27594:9;27590:17;27583:47;27647:131;27773:4;27647:131;:::i;:::-;27639:139;;27366:419;;;:::o;27791:143::-;27848:5;27879:6;27873:13;27864:22;;27895:33;27922:5;27895:33;:::i;:::-;27791:143;;;;:::o;27940:351::-;28010:6;28059:2;28047:9;28038:7;28034:23;28030:32;28027:119;;;28065:79;;:::i;:::-;28027:119;28185:1;28210:64;28266:7;28257:6;28246:9;28242:22;28210:64;:::i;:::-;28200:74;;28156:128;27940:351;;;;:::o;28297:85::-;28342:7;28371:5;28360:16;;28297:85;;;:::o;28388:158::-;28446:9;28479:61;28497:42;28506:32;28532:5;28506:32;:::i;:::-;28497:42;:::i;:::-;28479:61;:::i;:::-;28466:74;;28388:158;;;:::o;28552:147::-;28647:45;28686:5;28647:45;:::i;:::-;28642:3;28635:58;28552:147;;:::o;28705:114::-;28772:6;28806:5;28800:12;28790:22;;28705:114;;;:::o;28825:184::-;28924:11;28958:6;28953:3;28946:19;28998:4;28993:3;28989:14;28974:29;;28825:184;;;;:::o;29015:132::-;29082:4;29105:3;29097:11;;29135:4;29130:3;29126:14;29118:22;;29015:132;;;:::o;29153:108::-;29230:24;29248:5;29230:24;:::i;:::-;29225:3;29218:37;29153:108;;:::o;29267:179::-;29336:10;29357:46;29399:3;29391:6;29357:46;:::i;:::-;29435:4;29430:3;29426:14;29412:28;;29267:179;;;;:::o;29452:113::-;29522:4;29554;29549:3;29545:14;29537:22;;29452:113;;;:::o;29601:732::-;29720:3;29749:54;29797:5;29749:54;:::i;:::-;29819:86;29898:6;29893:3;29819:86;:::i;:::-;29812:93;;29929:56;29979:5;29929:56;:::i;:::-;30008:7;30039:1;30024:284;30049:6;30046:1;30043:13;30024:284;;;30125:6;30119:13;30152:63;30211:3;30196:13;30152:63;:::i;:::-;30145:70;;30238:60;30291:6;30238:60;:::i;:::-;30228:70;;30084:224;30071:1;30068;30064:9;30059:14;;30024:284;;;30028:14;30324:3;30317:10;;29725:608;;;29601:732;;;;:::o;30339:831::-;30602:4;30640:3;30629:9;30625:19;30617:27;;30654:71;30722:1;30711:9;30707:17;30698:6;30654:71;:::i;:::-;30735:80;30811:2;30800:9;30796:18;30787:6;30735:80;:::i;:::-;30862:9;30856:4;30852:20;30847:2;30836:9;30832:18;30825:48;30890:108;30993:4;30984:6;30890:108;:::i;:::-;30882:116;;31008:72;31076:2;31065:9;31061:18;31052:6;31008:72;:::i;:::-;31090:73;31158:3;31147:9;31143:19;31134:6;31090:73;:::i;:::-;30339:831;;;;;;;;:::o;31176:177::-;31316:29;31312:1;31304:6;31300:14;31293:53;31176:177;:::o;31359:366::-;31501:3;31522:67;31586:2;31581:3;31522:67;:::i;:::-;31515:74;;31598:93;31687:3;31598:93;:::i;:::-;31716:2;31711:3;31707:12;31700:19;;31359:366;;;:::o;31731:419::-;31897:4;31935:2;31924:9;31920:18;31912:26;;31984:9;31978:4;31974:20;31970:1;31959:9;31955:17;31948:47;32012:131;32138:4;32012:131;:::i;:::-;32004:139;;31731:419;;;:::o;32156:410::-;32196:7;32219:20;32237:1;32219:20;:::i;:::-;32214:25;;32253:20;32271:1;32253:20;:::i;:::-;32248:25;;32308:1;32305;32301:9;32330:30;32348:11;32330:30;:::i;:::-;32319:41;;32509:1;32500:7;32496:15;32493:1;32490:22;32470:1;32463:9;32443:83;32420:139;;32539:18;;:::i;:::-;32420:139;32204:362;32156:410;;;;:::o;32572:220::-;32712:34;32708:1;32700:6;32696:14;32689:58;32781:3;32776:2;32768:6;32764:15;32757:28;32572:220;:::o;32798:366::-;32940:3;32961:67;33025:2;33020:3;32961:67;:::i;:::-;32954:74;;33037:93;33126:3;33037:93;:::i;:::-;33155:2;33150:3;33146:12;33139:19;;32798:366;;;:::o;33170:419::-;33336:4;33374:2;33363:9;33359:18;33351:26;;33423:9;33417:4;33413:20;33409:1;33398:9;33394:17;33387:47;33451:131;33577:4;33451:131;:::i;:::-;33443:139;;33170:419;;;:::o

Swarm Source

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