ETH Price: $3,288.96 (+0.69%)

Token

Medi Token (Medi)
 

Overview

Max Total Supply

1,000,000,000,000,000,000 Medi

Holders

2

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
909,090,909,090,909,090.909090909 Medi

Value
$0.00
0x6af0b8c21f7ef76a5b76525560418334cbdb1b54
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:
Meditoken

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-11-24
*/

/**
 //SPDX-License-Identifier: UNLICENSED
 
Check us out on Telegram! TG: t.me/medi_token
twitter https://twitter.com/medi_token?s=21
webpage https://meditoken.org
*/

pragma solidity ^0.8.4;

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);
}

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;
    }

}

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);
    }

}  

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract Meditoken is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 10**18 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _feeCharity;
    uint256 private _feeReflection;
    uint256 private _feeDevMarketing;
    uint256 private _feeBurn;
    
    uint256 public _maxWalletSize = 10 * 10**15 * 10**9; //1.0
    address public burnAddress = 0x000000000000000000000000000000000000dEaD;
    address payable private charityWallet = payable(0x6c79496140848FaCa2721139bD7C7A4eBD9B2e4C);
    address payable private devMarketingWallet = payable(0x6c3116da9054aE64E89284aaC5248415E2f55ee4);
    
    string private constant _name = "Medi Token";
    string private constant _symbol = "Medi";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[devMarketingWallet] = true;
        _isExcludedFromFee[charityWallet] = 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 setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    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 _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");

        _feeReflection = 1;
        _feeBurn = 1;
        _feeCharity = 2;
        _feeDevMarketing = 6;

        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }

            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _feeReflection = 1;
                _feeBurn = 1;
                _feeCharity = 2;
                _feeDevMarketing = 6;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
		
        _tokenTransfer(from,to,amount);
    }

    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 {
        charityWallet.transfer(amount.mul(_feeCharity).div(_feeCharity + _feeDevMarketing));
        devMarketingWallet.transfer(amount.mul(_feeDevMarketing).div(_feeCharity + _feeDevMarketing));
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxTxAmount = _tTotal;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

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

    function _takeBurn(address sender, uint tBurn) private {
        uint256 currentRate =  _getRate();
        uint256 rBurn = tBurn.mul(currentRate);
        _rOwned[burnAddress] = _rOwned[burnAddress].add(rBurn);

        emit Transfer(sender, burnAddress, tBurn);
    }

    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) {
        uint256 amount = tAmount;
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam, uint256 tBurn) = _getTValues(amount, _feeReflection, _feeCharity + _feeDevMarketing, _feeBurn);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(amount, tFee, tTeam, tBurn, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam, tBurn);
    }

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

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 tBurn, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rBurn = tBurn.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam).sub(rBurn);
        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);
    }
}

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":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","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":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","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"},{"stateMutability":"payable","type":"receive"}]

60806040526b033b2e3c9fd0803ce800000060001962000020919062000582565b6000196200002f91906200053d565b6008556a084595161401484a000000600e5561dead600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736c79496140848faca2721139bd7c7a4ebd9b2e4c601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550736c3116da9054ae64e89284aac5248415e2f55ee4601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055506000601360176101000a81548160ff0219169083151502179055506b033b2e3c9fd0803ce80000006014553480156200019c57600080fd5b506000620001af620004de60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506008546002600062000264620004de60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160056000620002b8620004e660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000465620004de60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b033b2e3c9fd0803ce8000000604051620004d0919062000520565b60405180910390a362000618565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6200051a8162000578565b82525050565b60006020820190506200053760008301846200050f565b92915050565b60006200054a8262000578565b9150620005578362000578565b9250828210156200056d576200056c620005ba565b5b828203905092915050565b6000819050919050565b60006200058f8262000578565b91506200059c8362000578565b925082620005af57620005ae620005e9565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6136ca80620006286000396000f3fe6080604052600436106101025760003560e01c806370d5ae051161009557806395d89b411161006457806395d89b4114610330578063a9059cbb1461035b578063b515566a14610398578063c9567bf9146103c1578063dd62ed3e146103d857610109565b806370d5ae0514610298578063715018a6146102c35780638da5cb5b146102da5780638f9a55c01461030557610109565b8063273123b7116100d1578063273123b7146101de578063313ce567146102075780635932ead11461023257806370a082311461025b57610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b50610123610415565b6040516101309190612db5565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b9190612924565b610452565b60405161016d9190612d9a565b60405180910390f35b34801561018257600080fd5b5061018b610470565b6040516101989190612f37565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c391906128d5565b610484565b6040516101d59190612d9a565b60405180910390f35b3480156101ea57600080fd5b5061020560048036038101906102009190612847565b61055d565b005b34801561021357600080fd5b5061021c61064d565b6040516102299190612fac565b60405180910390f35b34801561023e57600080fd5b50610259600480360381019061025491906129a1565b610656565b005b34801561026757600080fd5b50610282600480360381019061027d9190612847565b610708565b60405161028f9190612f37565b60405180910390f35b3480156102a457600080fd5b506102ad610759565b6040516102ba9190612ccc565b60405180910390f35b3480156102cf57600080fd5b506102d861077f565b005b3480156102e657600080fd5b506102ef6108d2565b6040516102fc9190612ccc565b60405180910390f35b34801561031157600080fd5b5061031a6108fb565b6040516103279190612f37565b60405180910390f35b34801561033c57600080fd5b50610345610901565b6040516103529190612db5565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d9190612924565b61093e565b60405161038f9190612d9a565b60405180910390f35b3480156103a457600080fd5b506103bf60048036038101906103ba9190612960565b61095c565b005b3480156103cd57600080fd5b506103d6610aac565b005b3480156103e457600080fd5b506103ff60048036038101906103fa9190612899565b61100f565b60405161040c9190612f37565b60405180910390f35b60606040518060400160405280600a81526020017f4d65646920546f6b656e00000000000000000000000000000000000000000000815250905090565b600061046661045f611096565b848461109e565b6001905092915050565b60006b033b2e3c9fd0803ce8000000905090565b6000610491848484611269565b6105528461049d611096565b61054d8560405180606001604052806028815260200161366d60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610503611096565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461193b9092919063ffffffff16565b61109e565b600190509392505050565b610565611096565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e990612e77565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b61065e611096565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e290612e77565b60405180910390fd5b80601360176101000a81548160ff02191690831515021790555050565b6000610752600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461199f565b9050919050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610787611096565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080b90612e77565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e5481565b60606040518060400160405280600481526020017f4d65646900000000000000000000000000000000000000000000000000000000815250905090565b600061095261094b611096565b8484611269565b6001905092915050565b610964611096565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e890612e77565b60405180910390fd5b60005b8151811015610aa857600160066000848481518110610a3c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610aa09061324d565b9150506109f4565b5050565b610ab4611096565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3890612e77565b60405180910390fd5b601360149054906101000a900460ff1615610b91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8890612f17565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c2430601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166b033b2e3c9fd0803ce800000061109e565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610c6a57600080fd5b505afa158015610c7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca29190612870565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610d0457600080fd5b505afa158015610d18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3c9190612870565b6040518363ffffffff1660e01b8152600401610d59929190612ce7565b602060405180830381600087803b158015610d7357600080fd5b505af1158015610d87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dab9190612870565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e3430610708565b600080610e3f6108d2565b426040518863ffffffff1660e01b8152600401610e6196959493929190612d39565b6060604051808303818588803b158015610e7a57600080fd5b505af1158015610e8e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610eb391906129f3565b5050506001601360166101000a81548160ff0219169083151502179055506001601360176101000a81548160ff0219169083151502179055506b033b2e3c9fd0803ce80000006014819055506001601360146101000a81548160ff021916908315150217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610fb9929190612d10565b602060405180830381600087803b158015610fd357600080fd5b505af1158015610fe7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100b91906129ca565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561110e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110590612ef7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561117e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117590612e17565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161125c9190612f37565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d090612eb7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611349576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134090612dd7565b60405180910390fd5b6000811161138c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138390612e97565b60405180910390fd5b6001600b819055506001600d819055506002600a819055506006600c819055506113b46108d2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561142257506113f26108d2565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561192b57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114cb5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6114d457600080fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561157f5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115d55750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115ed5750601360179054906101000a900460ff165b1561169d5760145481111561160157600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061164c57600080fd5b601e42611659919061306d565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461174a57600e54816116ff84610708565b611709919061306d565b10611749576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174090612ed7565b60405180910390fd5b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156117f55750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561184b5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611871576001600b819055506001600d819055506002600a819055506006600c819055505b600061187c30610708565b9050601360159054906101000a900460ff161580156118e95750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156119015750601360169054906101000a900460ff165b156119295761190f81611a0d565b600047905060008111156119275761192647611d07565b5b505b505b611936838383611e46565b505050565b6000838311158290611983576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197a9190612db5565b60405180910390fd5b5060008385611992919061314e565b9050809150509392505050565b60006008548211156119e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dd90612df7565b60405180910390fd5b60006119f0611e56565b9050611a058184611e8190919063ffffffff16565b915050919050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611a6b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611a995781602001602082028036833780820191505090505b5090503081600081518110611ad7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611b7957600080fd5b505afa158015611b8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb19190612870565b81600181518110611beb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c5230601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461109e565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611cb6959493929190612f52565b600060405180830381600087803b158015611cd057600080fd5b505af1158015611ce4573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d79600c54600a54611d56919061306d565b611d6b600a5486611ecb90919063ffffffff16565b611e8190919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611da4573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611e17600c54600a54611df4919061306d565b611e09600c5486611ecb90919063ffffffff16565b611e8190919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611e42573d6000803e3d6000fd5b5050565b611e51838383611f46565b505050565b6000806000611e63612120565b91509150611e7a8183611e8190919063ffffffff16565b9250505090565b6000611ec383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061218b565b905092915050565b600080831415611ede5760009050611f40565b60008284611eec91906130f4565b9050828482611efb91906130c3565b14611f3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3290612e57565b60405180910390fd5b809150505b92915050565b6000806000806000806000611f5a886121ee565b9650965096509650965096509650611fba87600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461227790919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061204f86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122c190919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061209b8261231f565b6120a58a826123dc565b6120af8584612565565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161210c9190612f37565b60405180910390a350505050505050505050565b6000806000600854905060006b033b2e3c9fd0803ce8000000905061215c6b033b2e3c9fd0803ce8000000600854611e8190919063ffffffff16565b82101561217e576008546b033b2e3c9fd0803ce8000000935093505050612187565b81819350935050505b9091565b600080831182906121d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c99190612db5565b60405180910390fd5b50600083856121e191906130c3565b9050809150509392505050565b60008060008060008060008088905060008060008061222285600b54600c54600a5461221a919061306d565b600d5461259f565b93509350935093506000612234611e56565b90506000806000612248898888888861267f565b9250925092508282828a8a8a8a9f509f509f509f509f509f509f50505050505050505050919395979092949650565b60006122b983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061193b565b905092915050565b60008082846122d0919061306d565b905083811015612315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230c90612e37565b60405180910390fd5b8091505092915050565b6000612329611e56565b905060006123408284611ecb90919063ffffffff16565b905061239481600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122c190919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b60006123e6611e56565b905060006123fd8284611ecb90919063ffffffff16565b90506124738160026000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122c190919063ffffffff16565b60026000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516125579190612f37565b60405180910390a350505050565b61257a8260085461227790919063ffffffff16565b600881905550612595816009546122c190919063ffffffff16565b6009819055505050565b600080600080600088905060006125d260646125c48b85611ecb90919063ffffffff16565b611e8190919063ffffffff16565b905060006125fc60646125ee8b86611ecb90919063ffffffff16565b611e8190919063ffffffff16565b9050600061262660646126188b87611ecb90919063ffffffff16565b611e8190919063ffffffff16565b905060006126618261265385612645888a61227790919063ffffffff16565b61227790919063ffffffff16565b61227790919063ffffffff16565b90508084848498509850985098505050505050945094509450949050565b600080600080612698858a611ecb90919063ffffffff16565b905060006126af868a611ecb90919063ffffffff16565b905060006126c6878a611ecb90919063ffffffff16565b905060006126dd888a611ecb90919063ffffffff16565b905060006127188261270a856126fc888a61227790919063ffffffff16565b61227790919063ffffffff16565b61227790919063ffffffff16565b90508481859750975097505050505050955095509592505050565b600061274661274184612fec565b612fc7565b9050808382526020820190508285602086028201111561276557600080fd5b60005b85811015612795578161277b888261279f565b845260208401935060208301925050600181019050612768565b5050509392505050565b6000813590506127ae81613627565b92915050565b6000815190506127c381613627565b92915050565b600082601f8301126127da57600080fd5b81356127ea848260208601612733565b91505092915050565b6000813590506128028161363e565b92915050565b6000815190506128178161363e565b92915050565b60008135905061282c81613655565b92915050565b60008151905061284181613655565b92915050565b60006020828403121561285957600080fd5b60006128678482850161279f565b91505092915050565b60006020828403121561288257600080fd5b6000612890848285016127b4565b91505092915050565b600080604083850312156128ac57600080fd5b60006128ba8582860161279f565b92505060206128cb8582860161279f565b9150509250929050565b6000806000606084860312156128ea57600080fd5b60006128f88682870161279f565b93505060206129098682870161279f565b925050604061291a8682870161281d565b9150509250925092565b6000806040838503121561293757600080fd5b60006129458582860161279f565b92505060206129568582860161281d565b9150509250929050565b60006020828403121561297257600080fd5b600082013567ffffffffffffffff81111561298c57600080fd5b612998848285016127c9565b91505092915050565b6000602082840312156129b357600080fd5b60006129c1848285016127f3565b91505092915050565b6000602082840312156129dc57600080fd5b60006129ea84828501612808565b91505092915050565b600080600060608486031215612a0857600080fd5b6000612a1686828701612832565b9350506020612a2786828701612832565b9250506040612a3886828701612832565b9150509250925092565b6000612a4e8383612a5a565b60208301905092915050565b612a6381613182565b82525050565b612a7281613182565b82525050565b6000612a8382613028565b612a8d818561304b565b9350612a9883613018565b8060005b83811015612ac9578151612ab08882612a42565b9750612abb8361303e565b925050600181019050612a9c565b5085935050505092915050565b612adf81613194565b82525050565b612aee816131d7565b82525050565b6000612aff82613033565b612b09818561305c565b9350612b198185602086016131e9565b612b2281613323565b840191505092915050565b6000612b3a60238361305c565b9150612b4582613334565b604082019050919050565b6000612b5d602a8361305c565b9150612b6882613383565b604082019050919050565b6000612b8060228361305c565b9150612b8b826133d2565b604082019050919050565b6000612ba3601b8361305c565b9150612bae82613421565b602082019050919050565b6000612bc660218361305c565b9150612bd18261344a565b604082019050919050565b6000612be960208361305c565b9150612bf482613499565b602082019050919050565b6000612c0c60298361305c565b9150612c17826134c2565b604082019050919050565b6000612c2f60258361305c565b9150612c3a82613511565b604082019050919050565b6000612c5260238361305c565b9150612c5d82613560565b604082019050919050565b6000612c7560248361305c565b9150612c80826135af565b604082019050919050565b6000612c9860178361305c565b9150612ca3826135fe565b602082019050919050565b612cb7816131c0565b82525050565b612cc6816131ca565b82525050565b6000602082019050612ce16000830184612a69565b92915050565b6000604082019050612cfc6000830185612a69565b612d096020830184612a69565b9392505050565b6000604082019050612d256000830185612a69565b612d326020830184612cae565b9392505050565b600060c082019050612d4e6000830189612a69565b612d5b6020830188612cae565b612d686040830187612ae5565b612d756060830186612ae5565b612d826080830185612a69565b612d8f60a0830184612cae565b979650505050505050565b6000602082019050612daf6000830184612ad6565b92915050565b60006020820190508181036000830152612dcf8184612af4565b905092915050565b60006020820190508181036000830152612df081612b2d565b9050919050565b60006020820190508181036000830152612e1081612b50565b9050919050565b60006020820190508181036000830152612e3081612b73565b9050919050565b60006020820190508181036000830152612e5081612b96565b9050919050565b60006020820190508181036000830152612e7081612bb9565b9050919050565b60006020820190508181036000830152612e9081612bdc565b9050919050565b60006020820190508181036000830152612eb081612bff565b9050919050565b60006020820190508181036000830152612ed081612c22565b9050919050565b60006020820190508181036000830152612ef081612c45565b9050919050565b60006020820190508181036000830152612f1081612c68565b9050919050565b60006020820190508181036000830152612f3081612c8b565b9050919050565b6000602082019050612f4c6000830184612cae565b92915050565b600060a082019050612f676000830188612cae565b612f746020830187612ae5565b8181036040830152612f868186612a78565b9050612f956060830185612a69565b612fa26080830184612cae565b9695505050505050565b6000602082019050612fc16000830184612cbd565b92915050565b6000612fd1612fe2565b9050612fdd828261321c565b919050565b6000604051905090565b600067ffffffffffffffff821115613007576130066132f4565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613078826131c0565b9150613083836131c0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130b8576130b7613296565b5b828201905092915050565b60006130ce826131c0565b91506130d9836131c0565b9250826130e9576130e86132c5565b5b828204905092915050565b60006130ff826131c0565b915061310a836131c0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561314357613142613296565b5b828202905092915050565b6000613159826131c0565b9150613164836131c0565b92508282101561317757613176613296565b5b828203905092915050565b600061318d826131a0565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006131e2826131c0565b9050919050565b60005b838110156132075780820151818401526020810190506131ec565b83811115613216576000848401525b50505050565b61322582613323565b810181811067ffffffffffffffff82111715613244576132436132f4565b5b80604052505050565b6000613258826131c0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561328b5761328a613296565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b61363081613182565b811461363b57600080fd5b50565b61364781613194565b811461365257600080fd5b50565b61365e816131c0565b811461366957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b20a3708c14c86eb43097c846161247a18695f02dd71acd8a99a68048115802f64736f6c63430008040033

Deployed Bytecode

0x6080604052600436106101025760003560e01c806370d5ae051161009557806395d89b411161006457806395d89b4114610330578063a9059cbb1461035b578063b515566a14610398578063c9567bf9146103c1578063dd62ed3e146103d857610109565b806370d5ae0514610298578063715018a6146102c35780638da5cb5b146102da5780638f9a55c01461030557610109565b8063273123b7116100d1578063273123b7146101de578063313ce567146102075780635932ead11461023257806370a082311461025b57610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b50610123610415565b6040516101309190612db5565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b9190612924565b610452565b60405161016d9190612d9a565b60405180910390f35b34801561018257600080fd5b5061018b610470565b6040516101989190612f37565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c391906128d5565b610484565b6040516101d59190612d9a565b60405180910390f35b3480156101ea57600080fd5b5061020560048036038101906102009190612847565b61055d565b005b34801561021357600080fd5b5061021c61064d565b6040516102299190612fac565b60405180910390f35b34801561023e57600080fd5b50610259600480360381019061025491906129a1565b610656565b005b34801561026757600080fd5b50610282600480360381019061027d9190612847565b610708565b60405161028f9190612f37565b60405180910390f35b3480156102a457600080fd5b506102ad610759565b6040516102ba9190612ccc565b60405180910390f35b3480156102cf57600080fd5b506102d861077f565b005b3480156102e657600080fd5b506102ef6108d2565b6040516102fc9190612ccc565b60405180910390f35b34801561031157600080fd5b5061031a6108fb565b6040516103279190612f37565b60405180910390f35b34801561033c57600080fd5b50610345610901565b6040516103529190612db5565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d9190612924565b61093e565b60405161038f9190612d9a565b60405180910390f35b3480156103a457600080fd5b506103bf60048036038101906103ba9190612960565b61095c565b005b3480156103cd57600080fd5b506103d6610aac565b005b3480156103e457600080fd5b506103ff60048036038101906103fa9190612899565b61100f565b60405161040c9190612f37565b60405180910390f35b60606040518060400160405280600a81526020017f4d65646920546f6b656e00000000000000000000000000000000000000000000815250905090565b600061046661045f611096565b848461109e565b6001905092915050565b60006b033b2e3c9fd0803ce8000000905090565b6000610491848484611269565b6105528461049d611096565b61054d8560405180606001604052806028815260200161366d60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610503611096565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461193b9092919063ffffffff16565b61109e565b600190509392505050565b610565611096565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e990612e77565b60405180910390fd5b6000600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b61065e611096565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106e290612e77565b60405180910390fd5b80601360176101000a81548160ff02191690831515021790555050565b6000610752600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461199f565b9050919050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610787611096565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610814576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080b90612e77565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e5481565b60606040518060400160405280600481526020017f4d65646900000000000000000000000000000000000000000000000000000000815250905090565b600061095261094b611096565b8484611269565b6001905092915050565b610964611096565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e890612e77565b60405180910390fd5b60005b8151811015610aa857600160066000848481518110610a3c577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610aa09061324d565b9150506109f4565b5050565b610ab4611096565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3890612e77565b60405180910390fd5b601360149054906101000a900460ff1615610b91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8890612f17565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c2430601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166b033b2e3c9fd0803ce800000061109e565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610c6a57600080fd5b505afa158015610c7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ca29190612870565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610d0457600080fd5b505afa158015610d18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3c9190612870565b6040518363ffffffff1660e01b8152600401610d59929190612ce7565b602060405180830381600087803b158015610d7357600080fd5b505af1158015610d87573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610dab9190612870565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e3430610708565b600080610e3f6108d2565b426040518863ffffffff1660e01b8152600401610e6196959493929190612d39565b6060604051808303818588803b158015610e7a57600080fd5b505af1158015610e8e573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610eb391906129f3565b5050506001601360166101000a81548160ff0219169083151502179055506001601360176101000a81548160ff0219169083151502179055506b033b2e3c9fd0803ce80000006014819055506001601360146101000a81548160ff021916908315150217905550601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610fb9929190612d10565b602060405180830381600087803b158015610fd357600080fd5b505af1158015610fe7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100b91906129ca565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561110e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161110590612ef7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561117e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117590612e17565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161125c9190612f37565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112d9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d090612eb7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611349576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134090612dd7565b60405180910390fd5b6000811161138c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161138390612e97565b60405180910390fd5b6001600b819055506001600d819055506002600a819055506006600c819055506113b46108d2565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561142257506113f26108d2565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561192b57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114cb5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6114d457600080fd5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561157f5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115d55750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115ed5750601360179054906101000a900460ff165b1561169d5760145481111561160157600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061164c57600080fd5b601e42611659919061306d565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461174a57600e54816116ff84610708565b611709919061306d565b10611749576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174090612ed7565b60405180910390fd5b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156117f55750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561184b5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611871576001600b819055506001600d819055506002600a819055506006600c819055505b600061187c30610708565b9050601360159054906101000a900460ff161580156118e95750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156119015750601360169054906101000a900460ff165b156119295761190f81611a0d565b600047905060008111156119275761192647611d07565b5b505b505b611936838383611e46565b505050565b6000838311158290611983576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197a9190612db5565b60405180910390fd5b5060008385611992919061314e565b9050809150509392505050565b60006008548211156119e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dd90612df7565b60405180910390fd5b60006119f0611e56565b9050611a058184611e8190919063ffffffff16565b915050919050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611a6b577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611a995781602001602082028036833780820191505090505b5090503081600081518110611ad7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611b7957600080fd5b505afa158015611b8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bb19190612870565b81600181518110611beb577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c5230601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461109e565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611cb6959493929190612f52565b600060405180830381600087803b158015611cd057600080fd5b505af1158015611ce4573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611d79600c54600a54611d56919061306d565b611d6b600a5486611ecb90919063ffffffff16565b611e8190919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611da4573d6000803e3d6000fd5b50601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611e17600c54600a54611df4919061306d565b611e09600c5486611ecb90919063ffffffff16565b611e8190919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611e42573d6000803e3d6000fd5b5050565b611e51838383611f46565b505050565b6000806000611e63612120565b91509150611e7a8183611e8190919063ffffffff16565b9250505090565b6000611ec383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061218b565b905092915050565b600080831415611ede5760009050611f40565b60008284611eec91906130f4565b9050828482611efb91906130c3565b14611f3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f3290612e57565b60405180910390fd5b809150505b92915050565b6000806000806000806000611f5a886121ee565b9650965096509650965096509650611fba87600260008d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461227790919063ffffffff16565b600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061204f86600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122c190919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061209b8261231f565b6120a58a826123dc565b6120af8584612565565b8873ffffffffffffffffffffffffffffffffffffffff168a73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161210c9190612f37565b60405180910390a350505050505050505050565b6000806000600854905060006b033b2e3c9fd0803ce8000000905061215c6b033b2e3c9fd0803ce8000000600854611e8190919063ffffffff16565b82101561217e576008546b033b2e3c9fd0803ce8000000935093505050612187565b81819350935050505b9091565b600080831182906121d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121c99190612db5565b60405180910390fd5b50600083856121e191906130c3565b9050809150509392505050565b60008060008060008060008088905060008060008061222285600b54600c54600a5461221a919061306d565b600d5461259f565b93509350935093506000612234611e56565b90506000806000612248898888888861267f565b9250925092508282828a8a8a8a9f509f509f509f509f509f509f50505050505050505050919395979092949650565b60006122b983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061193b565b905092915050565b60008082846122d0919061306d565b905083811015612315576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161230c90612e37565b60405180910390fd5b8091505092915050565b6000612329611e56565b905060006123408284611ecb90919063ffffffff16565b905061239481600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122c190919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b60006123e6611e56565b905060006123fd8284611ecb90919063ffffffff16565b90506124738160026000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122c190919063ffffffff16565b60026000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516125579190612f37565b60405180910390a350505050565b61257a8260085461227790919063ffffffff16565b600881905550612595816009546122c190919063ffffffff16565b6009819055505050565b600080600080600088905060006125d260646125c48b85611ecb90919063ffffffff16565b611e8190919063ffffffff16565b905060006125fc60646125ee8b86611ecb90919063ffffffff16565b611e8190919063ffffffff16565b9050600061262660646126188b87611ecb90919063ffffffff16565b611e8190919063ffffffff16565b905060006126618261265385612645888a61227790919063ffffffff16565b61227790919063ffffffff16565b61227790919063ffffffff16565b90508084848498509850985098505050505050945094509450949050565b600080600080612698858a611ecb90919063ffffffff16565b905060006126af868a611ecb90919063ffffffff16565b905060006126c6878a611ecb90919063ffffffff16565b905060006126dd888a611ecb90919063ffffffff16565b905060006127188261270a856126fc888a61227790919063ffffffff16565b61227790919063ffffffff16565b61227790919063ffffffff16565b90508481859750975097505050505050955095509592505050565b600061274661274184612fec565b612fc7565b9050808382526020820190508285602086028201111561276557600080fd5b60005b85811015612795578161277b888261279f565b845260208401935060208301925050600181019050612768565b5050509392505050565b6000813590506127ae81613627565b92915050565b6000815190506127c381613627565b92915050565b600082601f8301126127da57600080fd5b81356127ea848260208601612733565b91505092915050565b6000813590506128028161363e565b92915050565b6000815190506128178161363e565b92915050565b60008135905061282c81613655565b92915050565b60008151905061284181613655565b92915050565b60006020828403121561285957600080fd5b60006128678482850161279f565b91505092915050565b60006020828403121561288257600080fd5b6000612890848285016127b4565b91505092915050565b600080604083850312156128ac57600080fd5b60006128ba8582860161279f565b92505060206128cb8582860161279f565b9150509250929050565b6000806000606084860312156128ea57600080fd5b60006128f88682870161279f565b93505060206129098682870161279f565b925050604061291a8682870161281d565b9150509250925092565b6000806040838503121561293757600080fd5b60006129458582860161279f565b92505060206129568582860161281d565b9150509250929050565b60006020828403121561297257600080fd5b600082013567ffffffffffffffff81111561298c57600080fd5b612998848285016127c9565b91505092915050565b6000602082840312156129b357600080fd5b60006129c1848285016127f3565b91505092915050565b6000602082840312156129dc57600080fd5b60006129ea84828501612808565b91505092915050565b600080600060608486031215612a0857600080fd5b6000612a1686828701612832565b9350506020612a2786828701612832565b9250506040612a3886828701612832565b9150509250925092565b6000612a4e8383612a5a565b60208301905092915050565b612a6381613182565b82525050565b612a7281613182565b82525050565b6000612a8382613028565b612a8d818561304b565b9350612a9883613018565b8060005b83811015612ac9578151612ab08882612a42565b9750612abb8361303e565b925050600181019050612a9c565b5085935050505092915050565b612adf81613194565b82525050565b612aee816131d7565b82525050565b6000612aff82613033565b612b09818561305c565b9350612b198185602086016131e9565b612b2281613323565b840191505092915050565b6000612b3a60238361305c565b9150612b4582613334565b604082019050919050565b6000612b5d602a8361305c565b9150612b6882613383565b604082019050919050565b6000612b8060228361305c565b9150612b8b826133d2565b604082019050919050565b6000612ba3601b8361305c565b9150612bae82613421565b602082019050919050565b6000612bc660218361305c565b9150612bd18261344a565b604082019050919050565b6000612be960208361305c565b9150612bf482613499565b602082019050919050565b6000612c0c60298361305c565b9150612c17826134c2565b604082019050919050565b6000612c2f60258361305c565b9150612c3a82613511565b604082019050919050565b6000612c5260238361305c565b9150612c5d82613560565b604082019050919050565b6000612c7560248361305c565b9150612c80826135af565b604082019050919050565b6000612c9860178361305c565b9150612ca3826135fe565b602082019050919050565b612cb7816131c0565b82525050565b612cc6816131ca565b82525050565b6000602082019050612ce16000830184612a69565b92915050565b6000604082019050612cfc6000830185612a69565b612d096020830184612a69565b9392505050565b6000604082019050612d256000830185612a69565b612d326020830184612cae565b9392505050565b600060c082019050612d4e6000830189612a69565b612d5b6020830188612cae565b612d686040830187612ae5565b612d756060830186612ae5565b612d826080830185612a69565b612d8f60a0830184612cae565b979650505050505050565b6000602082019050612daf6000830184612ad6565b92915050565b60006020820190508181036000830152612dcf8184612af4565b905092915050565b60006020820190508181036000830152612df081612b2d565b9050919050565b60006020820190508181036000830152612e1081612b50565b9050919050565b60006020820190508181036000830152612e3081612b73565b9050919050565b60006020820190508181036000830152612e5081612b96565b9050919050565b60006020820190508181036000830152612e7081612bb9565b9050919050565b60006020820190508181036000830152612e9081612bdc565b9050919050565b60006020820190508181036000830152612eb081612bff565b9050919050565b60006020820190508181036000830152612ed081612c22565b9050919050565b60006020820190508181036000830152612ef081612c45565b9050919050565b60006020820190508181036000830152612f1081612c68565b9050919050565b60006020820190508181036000830152612f3081612c8b565b9050919050565b6000602082019050612f4c6000830184612cae565b92915050565b600060a082019050612f676000830188612cae565b612f746020830187612ae5565b8181036040830152612f868186612a78565b9050612f956060830185612a69565b612fa26080830184612cae565b9695505050505050565b6000602082019050612fc16000830184612cbd565b92915050565b6000612fd1612fe2565b9050612fdd828261321c565b919050565b6000604051905090565b600067ffffffffffffffff821115613007576130066132f4565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613078826131c0565b9150613083836131c0565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156130b8576130b7613296565b5b828201905092915050565b60006130ce826131c0565b91506130d9836131c0565b9250826130e9576130e86132c5565b5b828204905092915050565b60006130ff826131c0565b915061310a836131c0565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561314357613142613296565b5b828202905092915050565b6000613159826131c0565b9150613164836131c0565b92508282101561317757613176613296565b5b828203905092915050565b600061318d826131a0565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60006131e2826131c0565b9050919050565b60005b838110156132075780820151818401526020810190506131ec565b83811115613216576000848401525b50505050565b61322582613323565b810181811067ffffffffffffffff82111715613244576132436132f4565b5b80604052505050565b6000613258826131c0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561328b5761328a613296565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b61363081613182565b811461363b57600080fd5b50565b61364781613194565b811461365257600080fd5b50565b61365e816131c0565b811461366957600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b20a3708c14c86eb43097c846161247a18695f02dd71acd8a99a68048115802f64736f6c63430008040033

Deployed Bytecode Sourcemap

3654:11091:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5675:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6527:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5952:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6696:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11249:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5861:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7017:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6055:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4483:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2733:148;;;;;;;;;;;;;:::i;:::-;;2519:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4419:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5766:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6201:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11073:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10257:804;;;;;;;;;;;;;:::i;:::-;;6376:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5675:83;5712:13;5745:5;;;;;;;;;;;;;;;;;5738:12;;5675:83;:::o;6527:161::-;6602:4;6619:39;6628:12;:10;:12::i;:::-;6642:7;6651:6;6619:8;:39::i;:::-;6676:4;6669:11;;6527:161;;;;:::o;5952:95::-;6005:7;4156:14;6025;;5952:95;:::o;6696:313::-;6794:4;6811:36;6821:6;6829:9;6840:6;6811:9;:36::i;:::-;6858:121;6867:6;6875:12;:10;:12::i;:::-;6889:89;6927:6;6889:89;;;;;;;;;;;;;;;;;:11;:19;6901:6;6889:19;;;;;;;;;;;;;;;:33;6909:12;:10;:12::i;:::-;6889:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6858:8;:121::i;:::-;6997:4;6990:11;;6696:313;;;;;:::o;11249:88::-;2656:12;:10;:12::i;:::-;2646:22;;:6;;;;;;;;;;:22;;;2638:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11324:5:::1;11309:4;:12;11314:6;11309:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;11249:88:::0;:::o;5861:83::-;5902:5;4901:1;5920:16;;5861:83;:::o;7017:103::-;2656:12;:10;:12::i;:::-;2646:22;;:6;;;;;;;;;;:22;;;2638:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7107:5:::1;7089:15;;:23;;;;;;;;;;;;;;;;;;7017:103:::0;:::o;6055:138::-;6121:7;6148:37;6168:7;:16;6176:7;6168:16;;;;;;;;;;;;;;;;6148:19;:37::i;:::-;6141:44;;6055:138;;;:::o;4483:71::-;;;;;;;;;;;;;:::o;2733:148::-;2656:12;:10;:12::i;:::-;2646:22;;:6;;;;;;;;;;:22;;;2638:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2840:1:::1;2803:40;;2824:6;::::0;::::1;;;;;;;;2803:40;;;;;;;;;;;;2871:1;2854:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2733:148::o:0;2519:79::-;2557:7;2584:6;;;;;;;;;;;2577:13;;2519:79;:::o;4419:51::-;;;;:::o;5766:87::-;5805:13;5838:7;;;;;;;;;;;;;;;;;5831:14;;5766:87;:::o;6201:167::-;6279:4;6296:42;6306:12;:10;:12::i;:::-;6320:9;6331:6;6296:9;:42::i;:::-;6356:4;6349:11;;6201:167;;;;:::o;11073:164::-;2656:12;:10;:12::i;:::-;2646:22;;:6;;;;;;;;;;:22;;;2638:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11147:6:::1;11142:88;11163:5;:12;11159:1;:16;11142:88;;;11214:4;11197;:14;11202:5;11208:1;11202:8;;;;;;;;;;;;;;;;;;;;;;11197:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;11177:3;;;;;:::i;:::-;;;;11142:88;;;;11073:164:::0;:::o;10257:804::-;2656:12;:10;:12::i;:::-;2646:22;;:6;;;;;;;;;;:22;;;2638:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10321:11:::1;;;;;;;;;;;10320:12;10312:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10370:35;10427:42;10370:100;;10499:16;10481:15;;:34;;;;;;;;;;;;;;;;;;10526:58;10543:4;10558:15;;;;;;;;;;;4156:14;10526:8;:58::i;:::-;10629:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10611:56;;;10676:4;10683:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10611:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10595:13;;:112;;;;;;;;;;;;;;;;;;10718:15;;;;;;;;;;;:31;;;10757:21;10788:4;10794:24;10812:4;10794:9;:24::i;:::-;10819:1;10821::::0;10823:7:::1;:5;:7::i;:::-;10831:15;10718:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10872:4;10858:11;;:18;;;;;;;;;;;;;;;;;;10905:4;10887:15;;:22;;;;;;;;;;;;;;;;;;4156:14;10920:12;:22;;;;10967:4;10953:11;;:18;;;;;;;;;;;;;;;;;;10989:13;;;;;;;;;;;10982:29;;;11020:15;;;;;;;;;;;11038:14;10982:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;2716:1;10257:804::o:0;6376:143::-;6457:7;6484:11;:18;6496:5;6484:18;;;;;;;;;;;;;;;:27;6503:7;6484:27;;;;;;;;;;;;;;;;6477:34;;6376:143;;;;:::o;237:98::-;290:7;317:10;310:17;;237:98;:::o;7390:335::-;7500:1;7483:19;;:5;:19;;;;7475:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7581:1;7562:21;;:7;:21;;;;7554:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7663:6;7633:11;:18;7645:5;7633:18;;;;;;;;;;;;;;;:27;7652:7;7633:27;;;;;;;;;;;;;;;:36;;;;7701:7;7685:32;;7694:5;7685:32;;;7710:6;7685:32;;;;;;:::i;:::-;;;;;;;;7390:335;;;:::o;7733:1753::-;7837:1;7821:18;;:4;:18;;;;7813:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7914:1;7900:16;;:2;:16;;;;7892:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7984:1;7975:6;:10;7967:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8061:1;8044:14;:18;;;;8084:1;8073:8;:12;;;;8110:1;8096:11;:15;;;;8141:1;8122:16;:20;;;;8167:7;:5;:7::i;:::-;8159:15;;:4;:15;;;;:32;;;;;8184:7;:5;:7::i;:::-;8178:13;;:2;:13;;;;8159:32;8155:1279;;;8217:4;:10;8222:4;8217:10;;;;;;;;;;;;;;;;;;;;;;;;;8216:11;:24;;;;;8232:4;:8;8237:2;8232:8;;;;;;;;;;;;;;;;;;;;;;;;;8231:9;8216:24;8208:33;;;;;;8268:13;;;;;;;;;;;8260:21;;:4;:21;;;:55;;;;;8299:15;;;;;;;;;;;8285:30;;:2;:30;;;;8260:55;:83;;;;;8321:18;:22;8340:2;8321:22;;;;;;;;;;;;;;;;;;;;;;;;;8319:24;8260:83;:102;;;;;8347:15;;;;;;;;;;;8260:102;8256:325;;;8430:12;;8420:6;:22;;8412:31;;;;;;8485:15;8470:8;:12;8479:2;8470:12;;;;;;;;;;;;;;;;:30;8462:39;;;;;;8554:10;8535:15;:30;;;;:::i;:::-;8520:8;:12;8529:2;8520:12;;;;;;;;;;;;;;;:45;;;;8256:325;8618:13;;;;;;;;;;;8612:19;;:2;:19;;;8609:146;;8685:14;;8676:6;8660:13;8670:2;8660:9;:13::i;:::-;:22;;;;:::i;:::-;:39;8652:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;8609:146;8781:13;;;;;;;;;;;8775:19;;:2;:19;;;:55;;;;;8814:15;;;;;;;;;;;8798:32;;:4;:32;;;;8775:55;:85;;;;;8836:18;:24;8855:4;8836:24;;;;;;;;;;;;;;;;;;;;;;;;;8834:26;8775:85;8771:248;;;8898:1;8881:14;:18;;;;8929:1;8918:8;:12;;;;8963:1;8949:11;:15;;;;9002:1;8983:16;:20;;;;8771:248;9035:28;9066:24;9084:4;9066:9;:24::i;:::-;9035:55;;9110:6;;;;;;;;;;;9109:7;:32;;;;;9128:13;;;;;;;;;;;9120:21;;:4;:21;;;;9109:32;:47;;;;;9145:11;;;;;;;;;;;9109:47;9105:318;;;9177:38;9194:20;9177:16;:38::i;:::-;9234:26;9263:21;9234:50;;9327:1;9306:18;:22;9303:105;;;9353:35;9366:21;9353:12;:35::i;:::-;9303:105;9105:318;;8155:1279;;9448:30;9463:4;9468:2;9471:6;9448:14;:30::i;:::-;7733:1753;;;:::o;1374:190::-;1460:7;1493:1;1488;:6;;1496:12;1480:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1520:9;1536:1;1532;:5;;;;:::i;:::-;1520:17;;1555:1;1548:8;;;1374:190;;;;;:::o;7128:254::-;7195:7;7234;;7223;:18;;7215:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7299:19;7322:10;:8;:10::i;:::-;7299:33;;7350:24;7362:11;7350:7;:11;;:24;;;;:::i;:::-;7343:31;;;7128:254;;;:::o;9494:483::-;5283:4;5274:6;;:13;;;;;;;;;;;;;;;;;;9572:21:::1;9610:1;9596:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9572:40;;9641:4;9623;9628:1;9623:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;9667:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9657:4;9662:1;9657:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;9700:62;9717:4;9732:15;;;;;;;;;;;9750:11;9700:8;:62::i;:::-;9773:15;;;;;;;;;;;:66;;;9854:11;9880:1;9896:4;9923;9943:15;9773:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5298:1;5319:5:::0;5310:6;;:14;;;;;;;;;;;;;;;;;;9494:483;:::o;9993:252::-;10050:13;;;;;;;;;;;:22;;:83;10073:59;10115:16;;10101:11;;:30;;;;:::i;:::-;10073:23;10084:11;;10073:6;:10;;:23;;;;:::i;:::-;:27;;:59;;;;:::i;:::-;10050:83;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10144:18;;;;;;;;;;;:27;;:93;10172:64;10219:16;;10205:11;;:30;;;;:::i;:::-;10172:28;10183:16;;10172:6;:10;;:28;;;;:::i;:::-;:32;;:64;;;;:::i;:::-;10144:93;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9993:252;:::o;11353:146::-;11447:44;11465:6;11473:9;11484:6;11447:17;:44::i;:::-;11353:146;;;:::o;14309:163::-;14350:7;14371:15;14388;14407:19;:17;:19::i;:::-;14370:56;;;;14444:20;14456:7;14444;:11;;:20;;;;:::i;:::-;14437:27;;;;14309:163;:::o;1826:132::-;1884:7;1911:39;1915:1;1918;1911:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1904:46;;1826:132;;;;:::o;1572:246::-;1630:7;1659:1;1654;:6;1650:47;;;1684:1;1677:8;;;;1650:47;1707:9;1723:1;1719;:5;;;;:::i;:::-;1707:17;;1752:1;1747;1743;:5;;;;:::i;:::-;:10;1735:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1809:1;1802:8;;;1572:246;;;;;:::o;11507:538::-;11606:15;11623:23;11648:12;11662:23;11687:12;11701:13;11716;11733:19;11744:7;11733:10;:19::i;:::-;11605:147;;;;;;;;;;;;;;11781:28;11801:7;11781;:15;11789:6;11781:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11763:7;:15;11771:6;11763:15;;;;;;;;;;;;;;;:46;;;;11841:39;11864:15;11841:7;:18;11849:9;11841:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11820:7;:18;11828:9;11820:18;;;;;;;;;;;;;;;:60;;;;11892:16;11902:5;11892:9;:16::i;:::-;11919:24;11929:6;11937:5;11919:9;:24::i;:::-;11954:23;11966:4;11972;11954:11;:23::i;:::-;12010:9;11993:44;;12002:6;11993:44;;;12021:15;11993:44;;;;;;:::i;:::-;;;;;;;;11507:538;;;;;;;;;;:::o;14480:262::-;14530:7;14539;14559:15;14577:7;;14559:25;;14595:15;4156:14;14595:25;;14651:20;4156:14;14651:7;;:11;;:20;;;;:::i;:::-;14641:7;:30;14637:61;;;14681:7;;4156:14;14673:25;;;;;;;;14637:61;14717:7;14726;14709:25;;;;;;14480:262;;;:::o;1966:189::-;2052:7;2084:1;2080;:5;2087:12;2072:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2111:9;2127:1;2123;:5;;;;:::i;:::-;2111:17;;2146:1;2139:8;;;1966:189;;;;;:::o;12744:578::-;12803:7;12812;12821;12830;12839;12848;12857;12877:14;12894:7;12877:24;;12913:23;12938:12;12952:13;12967;12984:77;12996:6;13004:14;;13034:16;;13020:11;;:30;;;;:::i;:::-;13052:8;;12984:11;:77::i;:::-;12912:149;;;;;;;;13072:19;13095:10;:8;:10::i;:::-;13072:33;;13117:15;13134:23;13159:12;13175:52;13187:6;13195:4;13201:5;13208;13215:11;13175;:52::i;:::-;13116:111;;;;;;13246:7;13255:15;13272:4;13278:15;13295:4;13301:5;13308;13238:76;;;;;;;;;;;;;;;;;;;;;;;12744:578;;;;;;;;;:::o;1230:136::-;1288:7;1315:43;1319:1;1322;1315:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1308:50;;1230:136;;;;:::o;1043:179::-;1101:7;1121:9;1137:1;1133;:5;;;;:::i;:::-;1121:17;;1162:1;1157;:6;;1149:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1213:1;1206:8;;;1043:179;;;;:::o;12336:212::-;12389:19;12412:10;:8;:10::i;:::-;12389:33;;12433:13;12449:22;12459:11;12449:5;:9;;:22;;;;:::i;:::-;12433:38;;12507:33;12534:5;12507:7;:22;12523:4;12507:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;12482:7;:22;12498:4;12482:22;;;;;;;;;;;;;;;:58;;;;12336:212;;;:::o;12053:275::-;12119:19;12142:10;:8;:10::i;:::-;12119:33;;12163:13;12179:22;12189:11;12179:5;:9;;:22;;;;:::i;:::-;12163:38;;12235:31;12260:5;12235:7;:20;12243:11;;;;;;;;;;;12235:20;;;;;;;;;;;;;;;;:24;;:31;;;;:::i;:::-;12212:7;:20;12220:11;;;;;;;;;;;12212:20;;;;;;;;;;;;;;;:54;;;;12301:11;;;;;;;;;;;12284:36;;12293:6;12284:36;;;12314:5;12284:36;;;;;;:::i;:::-;;;;;;;;12053:275;;;;:::o;12556:147::-;12634:17;12646:4;12634:7;;:11;;:17;;;;:::i;:::-;12624:7;:27;;;;12675:20;12690:4;12675:10;;:14;;:20;;;;:::i;:::-;12662:10;:33;;;;12556:147;;:::o;13330:482::-;13440:7;13449;13458;13467;13487:14;13504:7;13487:24;;13522:12;13537:27;13560:3;13537:18;13548:6;13537;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;13522:42;;13575:13;13591:28;13615:3;13591:19;13602:7;13591:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;13575:44;;13630:13;13646:28;13670:3;13646:19;13657:7;13646:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;13630:44;;13685:23;13711:38;13743:5;13711:27;13732:5;13711:16;13722:4;13711:6;:10;;:16;;;;:::i;:::-;:20;;:27;;;;:::i;:::-;:31;;:38;;;;:::i;:::-;13685:64;;13768:15;13785:4;13791:5;13798;13760:44;;;;;;;;;;;;;13330:482;;;;;;;;;:::o;13820:484::-;13945:7;13954;13963;13983:15;14001:24;14013:11;14001:7;:11;;:24;;;;:::i;:::-;13983:42;;14036:12;14051:21;14060:11;14051:4;:8;;:21;;;;:::i;:::-;14036:36;;14083:13;14099:22;14109:11;14099:5;:9;;:22;;;;:::i;:::-;14083:38;;14132:13;14148:22;14158:11;14148:5;:9;;:22;;;;:::i;:::-;14132:38;;14181:23;14207:39;14240:5;14207:28;14229:5;14207:17;14219:4;14207:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;:32;;:39;;;;:::i;:::-;14181:65;;14265:7;14274:15;14291:4;14257:39;;;;;;;;;;;13820:484;;;;;;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;996:303::-;1067:5;1116:3;1109:4;1101:6;1097:17;1093:27;1083:2;;1134:1;1131;1124:12;1083:2;1174:6;1161:20;1199:94;1289:3;1281:6;1274:4;1266:6;1262:17;1199:94;:::i;:::-;1190:103;;1073:226;;;;;:::o;1305:133::-;1348:5;1386:6;1373:20;1364:29;;1402:30;1426:5;1402:30;:::i;:::-;1354:84;;;;:::o;1444:137::-;1498:5;1529:6;1523:13;1514:22;;1545:30;1569:5;1545:30;:::i;:::-;1504:77;;;;:::o;1587:139::-;1633:5;1671:6;1658:20;1649:29;;1687:33;1714:5;1687:33;:::i;:::-;1639:87;;;;:::o;1732:143::-;1789:5;1820:6;1814:13;1805:22;;1836:33;1863:5;1836:33;:::i;:::-;1795:80;;;;:::o;1881:262::-;1940:6;1989:2;1977:9;1968:7;1964:23;1960:32;1957:2;;;2005:1;2002;1995:12;1957:2;2048:1;2073:53;2118:7;2109:6;2098:9;2094:22;2073:53;:::i;:::-;2063:63;;2019:117;1947:196;;;;:::o;2149:284::-;2219:6;2268:2;2256:9;2247:7;2243:23;2239:32;2236:2;;;2284:1;2281;2274:12;2236:2;2327:1;2352:64;2408:7;2399:6;2388:9;2384:22;2352:64;:::i;:::-;2342:74;;2298:128;2226:207;;;;:::o;2439:407::-;2507:6;2515;2564:2;2552:9;2543:7;2539:23;2535:32;2532:2;;;2580:1;2577;2570:12;2532:2;2623:1;2648:53;2693:7;2684:6;2673:9;2669:22;2648:53;:::i;:::-;2638:63;;2594:117;2750:2;2776:53;2821:7;2812:6;2801:9;2797:22;2776:53;:::i;:::-;2766:63;;2721:118;2522:324;;;;;:::o;2852:552::-;2929:6;2937;2945;2994:2;2982:9;2973:7;2969:23;2965:32;2962:2;;;3010:1;3007;3000:12;2962:2;3053:1;3078:53;3123:7;3114:6;3103:9;3099:22;3078:53;:::i;:::-;3068:63;;3024:117;3180:2;3206:53;3251:7;3242:6;3231:9;3227:22;3206:53;:::i;:::-;3196:63;;3151:118;3308:2;3334:53;3379:7;3370:6;3359:9;3355:22;3334:53;:::i;:::-;3324:63;;3279:118;2952:452;;;;;:::o;3410:407::-;3478:6;3486;3535:2;3523:9;3514:7;3510:23;3506:32;3503:2;;;3551:1;3548;3541:12;3503:2;3594:1;3619:53;3664:7;3655:6;3644:9;3640:22;3619:53;:::i;:::-;3609:63;;3565:117;3721:2;3747:53;3792:7;3783:6;3772:9;3768:22;3747:53;:::i;:::-;3737:63;;3692:118;3493:324;;;;;:::o;3823:405::-;3907:6;3956:2;3944:9;3935:7;3931:23;3927:32;3924:2;;;3972:1;3969;3962:12;3924:2;4043:1;4032:9;4028:17;4015:31;4073:18;4065:6;4062:30;4059:2;;;4105:1;4102;4095:12;4059:2;4133:78;4203:7;4194:6;4183:9;4179:22;4133:78;:::i;:::-;4123:88;;3986:235;3914:314;;;;:::o;4234:256::-;4290:6;4339:2;4327:9;4318:7;4314:23;4310:32;4307:2;;;4355:1;4352;4345:12;4307:2;4398:1;4423:50;4465:7;4456:6;4445:9;4441:22;4423:50;:::i;:::-;4413:60;;4369:114;4297:193;;;;:::o;4496:278::-;4563:6;4612:2;4600:9;4591:7;4587:23;4583:32;4580:2;;;4628:1;4625;4618:12;4580:2;4671:1;4696:61;4749:7;4740:6;4729:9;4725:22;4696:61;:::i;:::-;4686:71;;4642:125;4570:204;;;;:::o;4780:596::-;4868:6;4876;4884;4933:2;4921:9;4912:7;4908:23;4904:32;4901:2;;;4949:1;4946;4939:12;4901:2;4992:1;5017:64;5073:7;5064:6;5053:9;5049:22;5017:64;:::i;:::-;5007:74;;4963:128;5130:2;5156:64;5212:7;5203:6;5192:9;5188:22;5156:64;:::i;:::-;5146:74;;5101:129;5269:2;5295:64;5351:7;5342:6;5331:9;5327:22;5295:64;:::i;:::-;5285:74;;5240:129;4891:485;;;;;:::o;5382:179::-;5451:10;5472:46;5514:3;5506:6;5472:46;:::i;:::-;5550:4;5545:3;5541:14;5527:28;;5462:99;;;;:::o;5567:108::-;5644:24;5662:5;5644:24;:::i;:::-;5639:3;5632:37;5622:53;;:::o;5681:118::-;5768:24;5786:5;5768:24;:::i;:::-;5763:3;5756:37;5746:53;;:::o;5835:732::-;5954:3;5983:54;6031:5;5983:54;:::i;:::-;6053:86;6132:6;6127:3;6053:86;:::i;:::-;6046:93;;6163:56;6213:5;6163:56;:::i;:::-;6242:7;6273:1;6258:284;6283:6;6280:1;6277:13;6258:284;;;6359:6;6353:13;6386:63;6445:3;6430:13;6386:63;:::i;:::-;6379:70;;6472:60;6525:6;6472:60;:::i;:::-;6462:70;;6318:224;6305:1;6302;6298:9;6293:14;;6258:284;;;6262:14;6558:3;6551:10;;5959:608;;;;;;;:::o;6573:109::-;6654:21;6669:5;6654:21;:::i;:::-;6649:3;6642:34;6632:50;;:::o;6688:147::-;6783:45;6822:5;6783:45;:::i;:::-;6778:3;6771:58;6761:74;;:::o;6841:364::-;6929:3;6957:39;6990:5;6957:39;:::i;:::-;7012:71;7076:6;7071:3;7012:71;:::i;:::-;7005:78;;7092:52;7137:6;7132:3;7125:4;7118:5;7114:16;7092:52;:::i;:::-;7169:29;7191:6;7169:29;:::i;:::-;7164:3;7160:39;7153:46;;6933:272;;;;;:::o;7211:366::-;7353:3;7374:67;7438:2;7433:3;7374:67;:::i;:::-;7367:74;;7450:93;7539:3;7450:93;:::i;:::-;7568:2;7563:3;7559:12;7552:19;;7357:220;;;:::o;7583:366::-;7725:3;7746:67;7810:2;7805:3;7746:67;:::i;:::-;7739:74;;7822:93;7911:3;7822:93;:::i;:::-;7940:2;7935:3;7931:12;7924:19;;7729:220;;;:::o;7955:366::-;8097:3;8118:67;8182:2;8177:3;8118:67;:::i;:::-;8111:74;;8194:93;8283:3;8194:93;:::i;:::-;8312:2;8307:3;8303:12;8296:19;;8101:220;;;:::o;8327:366::-;8469:3;8490:67;8554:2;8549:3;8490:67;:::i;:::-;8483:74;;8566:93;8655:3;8566:93;:::i;:::-;8684:2;8679:3;8675:12;8668:19;;8473:220;;;:::o;8699:366::-;8841:3;8862:67;8926:2;8921:3;8862:67;:::i;:::-;8855:74;;8938:93;9027:3;8938:93;:::i;:::-;9056:2;9051:3;9047:12;9040:19;;8845:220;;;:::o;9071:366::-;9213:3;9234:67;9298:2;9293:3;9234:67;:::i;:::-;9227:74;;9310:93;9399:3;9310:93;:::i;:::-;9428:2;9423:3;9419:12;9412:19;;9217:220;;;:::o;9443:366::-;9585:3;9606:67;9670:2;9665:3;9606:67;:::i;:::-;9599:74;;9682:93;9771:3;9682:93;:::i;:::-;9800:2;9795:3;9791:12;9784:19;;9589:220;;;:::o;9815:366::-;9957:3;9978:67;10042:2;10037:3;9978:67;:::i;:::-;9971:74;;10054:93;10143:3;10054:93;:::i;:::-;10172:2;10167:3;10163:12;10156:19;;9961:220;;;:::o;10187:366::-;10329:3;10350:67;10414:2;10409:3;10350:67;:::i;:::-;10343:74;;10426:93;10515:3;10426:93;:::i;:::-;10544:2;10539:3;10535:12;10528:19;;10333:220;;;:::o;10559:366::-;10701:3;10722:67;10786:2;10781:3;10722:67;:::i;:::-;10715:74;;10798:93;10887:3;10798:93;:::i;:::-;10916:2;10911:3;10907:12;10900:19;;10705:220;;;:::o;10931:366::-;11073:3;11094:67;11158:2;11153:3;11094:67;:::i;:::-;11087:74;;11170:93;11259:3;11170:93;:::i;:::-;11288:2;11283:3;11279:12;11272:19;;11077:220;;;:::o;11303:118::-;11390:24;11408:5;11390:24;:::i;:::-;11385:3;11378:37;11368:53;;:::o;11427:112::-;11510:22;11526:5;11510:22;:::i;:::-;11505:3;11498:35;11488:51;;:::o;11545:222::-;11638:4;11676:2;11665:9;11661:18;11653:26;;11689:71;11757:1;11746:9;11742:17;11733:6;11689:71;:::i;:::-;11643:124;;;;:::o;11773:332::-;11894:4;11932:2;11921:9;11917:18;11909:26;;11945:71;12013:1;12002:9;11998:17;11989:6;11945:71;:::i;:::-;12026:72;12094:2;12083:9;12079:18;12070:6;12026:72;:::i;:::-;11899:206;;;;;:::o;12111:332::-;12232:4;12270:2;12259:9;12255:18;12247:26;;12283:71;12351:1;12340:9;12336:17;12327:6;12283:71;:::i;:::-;12364:72;12432:2;12421:9;12417:18;12408:6;12364:72;:::i;:::-;12237:206;;;;;:::o;12449:807::-;12698:4;12736:3;12725:9;12721:19;12713:27;;12750:71;12818:1;12807:9;12803:17;12794:6;12750:71;:::i;:::-;12831:72;12899:2;12888:9;12884:18;12875:6;12831:72;:::i;:::-;12913:80;12989:2;12978:9;12974:18;12965:6;12913:80;:::i;:::-;13003;13079:2;13068:9;13064:18;13055:6;13003:80;:::i;:::-;13093:73;13161:3;13150:9;13146:19;13137:6;13093:73;:::i;:::-;13176;13244:3;13233:9;13229:19;13220:6;13176:73;:::i;:::-;12703:553;;;;;;;;;:::o;13262:210::-;13349:4;13387:2;13376:9;13372:18;13364:26;;13400:65;13462:1;13451:9;13447:17;13438:6;13400:65;:::i;:::-;13354:118;;;;:::o;13478:313::-;13591:4;13629:2;13618:9;13614:18;13606:26;;13678:9;13672:4;13668:20;13664:1;13653:9;13649:17;13642:47;13706:78;13779:4;13770:6;13706:78;:::i;:::-;13698:86;;13596:195;;;;:::o;13797:419::-;13963:4;14001:2;13990:9;13986:18;13978:26;;14050:9;14044:4;14040:20;14036:1;14025:9;14021:17;14014:47;14078:131;14204:4;14078:131;:::i;:::-;14070:139;;13968:248;;;:::o;14222:419::-;14388:4;14426:2;14415:9;14411:18;14403:26;;14475:9;14469:4;14465:20;14461:1;14450:9;14446:17;14439:47;14503:131;14629:4;14503:131;:::i;:::-;14495:139;;14393:248;;;:::o;14647:419::-;14813:4;14851:2;14840:9;14836:18;14828:26;;14900:9;14894:4;14890:20;14886:1;14875:9;14871:17;14864:47;14928:131;15054:4;14928:131;:::i;:::-;14920:139;;14818:248;;;:::o;15072:419::-;15238:4;15276:2;15265:9;15261:18;15253:26;;15325:9;15319:4;15315:20;15311:1;15300:9;15296:17;15289:47;15353:131;15479:4;15353:131;:::i;:::-;15345:139;;15243:248;;;:::o;15497:419::-;15663:4;15701:2;15690:9;15686:18;15678:26;;15750:9;15744:4;15740:20;15736:1;15725:9;15721:17;15714:47;15778:131;15904:4;15778:131;:::i;:::-;15770:139;;15668:248;;;:::o;15922:419::-;16088:4;16126:2;16115:9;16111:18;16103:26;;16175:9;16169:4;16165:20;16161:1;16150:9;16146:17;16139:47;16203:131;16329:4;16203:131;:::i;:::-;16195:139;;16093:248;;;:::o;16347:419::-;16513:4;16551:2;16540:9;16536:18;16528:26;;16600:9;16594:4;16590:20;16586:1;16575:9;16571:17;16564:47;16628:131;16754:4;16628:131;:::i;:::-;16620:139;;16518:248;;;:::o;16772:419::-;16938:4;16976:2;16965:9;16961:18;16953:26;;17025:9;17019:4;17015:20;17011:1;17000:9;16996:17;16989:47;17053:131;17179:4;17053:131;:::i;:::-;17045:139;;16943:248;;;:::o;17197:419::-;17363:4;17401:2;17390:9;17386:18;17378:26;;17450:9;17444:4;17440:20;17436:1;17425:9;17421:17;17414:47;17478:131;17604:4;17478:131;:::i;:::-;17470:139;;17368:248;;;:::o;17622:419::-;17788:4;17826:2;17815:9;17811:18;17803:26;;17875:9;17869:4;17865:20;17861:1;17850:9;17846:17;17839:47;17903:131;18029:4;17903:131;:::i;:::-;17895:139;;17793:248;;;:::o;18047:419::-;18213:4;18251:2;18240:9;18236:18;18228:26;;18300:9;18294:4;18290:20;18286:1;18275:9;18271:17;18264:47;18328:131;18454:4;18328:131;:::i;:::-;18320:139;;18218:248;;;:::o;18472:222::-;18565:4;18603:2;18592:9;18588:18;18580:26;;18616:71;18684:1;18673:9;18669:17;18660:6;18616:71;:::i;:::-;18570:124;;;;:::o;18700:831::-;18963:4;19001:3;18990:9;18986:19;18978:27;;19015:71;19083:1;19072:9;19068:17;19059:6;19015:71;:::i;:::-;19096:80;19172:2;19161:9;19157:18;19148:6;19096:80;:::i;:::-;19223:9;19217:4;19213:20;19208:2;19197:9;19193:18;19186:48;19251:108;19354:4;19345:6;19251:108;:::i;:::-;19243:116;;19369:72;19437:2;19426:9;19422:18;19413:6;19369:72;:::i;:::-;19451:73;19519:3;19508:9;19504:19;19495:6;19451:73;:::i;:::-;18968:563;;;;;;;;:::o;19537:214::-;19626:4;19664:2;19653:9;19649:18;19641:26;;19677:67;19741:1;19730:9;19726:17;19717:6;19677:67;:::i;:::-;19631:120;;;;:::o;19757:129::-;19791:6;19818:20;;:::i;:::-;19808:30;;19847:33;19875:4;19867:6;19847:33;:::i;:::-;19798:88;;;:::o;19892:75::-;19925:6;19958:2;19952:9;19942:19;;19932:35;:::o;19973:311::-;20050:4;20140:18;20132:6;20129:30;20126:2;;;20162:18;;:::i;:::-;20126:2;20212:4;20204:6;20200:17;20192:25;;20272:4;20266;20262:15;20254:23;;20055:229;;;:::o;20290:132::-;20357:4;20380:3;20372:11;;20410:4;20405:3;20401:14;20393:22;;20362:60;;;:::o;20428:114::-;20495:6;20529:5;20523:12;20513:22;;20502:40;;;:::o;20548:99::-;20600:6;20634:5;20628:12;20618:22;;20607:40;;;:::o;20653:113::-;20723:4;20755;20750:3;20746:14;20738:22;;20728:38;;;:::o;20772:184::-;20871:11;20905:6;20900:3;20893:19;20945:4;20940:3;20936:14;20921:29;;20883:73;;;;:::o;20962:169::-;21046:11;21080:6;21075:3;21068:19;21120:4;21115:3;21111:14;21096:29;;21058:73;;;;:::o;21137:305::-;21177:3;21196:20;21214:1;21196:20;:::i;:::-;21191:25;;21230:20;21248:1;21230:20;:::i;:::-;21225:25;;21384:1;21316:66;21312:74;21309:1;21306:81;21303:2;;;21390:18;;:::i;:::-;21303:2;21434:1;21431;21427:9;21420:16;;21181:261;;;;:::o;21448:185::-;21488:1;21505:20;21523:1;21505:20;:::i;:::-;21500:25;;21539:20;21557:1;21539:20;:::i;:::-;21534:25;;21578:1;21568:2;;21583:18;;:::i;:::-;21568:2;21625:1;21622;21618:9;21613:14;;21490:143;;;;:::o;21639:348::-;21679:7;21702:20;21720:1;21702:20;:::i;:::-;21697:25;;21736:20;21754:1;21736:20;:::i;:::-;21731:25;;21924:1;21856:66;21852:74;21849:1;21846:81;21841:1;21834:9;21827:17;21823:105;21820:2;;;21931:18;;:::i;:::-;21820:2;21979:1;21976;21972:9;21961:20;;21687:300;;;;:::o;21993:191::-;22033:4;22053:20;22071:1;22053:20;:::i;:::-;22048:25;;22087:20;22105:1;22087:20;:::i;:::-;22082:25;;22126:1;22123;22120:8;22117:2;;;22131:18;;:::i;:::-;22117:2;22176:1;22173;22169:9;22161:17;;22038:146;;;;:::o;22190:96::-;22227:7;22256:24;22274:5;22256:24;:::i;:::-;22245:35;;22235:51;;;:::o;22292:90::-;22326:7;22369:5;22362:13;22355:21;22344:32;;22334:48;;;:::o;22388:126::-;22425:7;22465:42;22458:5;22454:54;22443:65;;22433:81;;;:::o;22520:77::-;22557:7;22586:5;22575:16;;22565:32;;;:::o;22603:86::-;22638:7;22678:4;22671:5;22667:16;22656:27;;22646:43;;;:::o;22695:121::-;22753:9;22786:24;22804:5;22786:24;:::i;:::-;22773:37;;22763:53;;;:::o;22822:307::-;22890:1;22900:113;22914:6;22911:1;22908:13;22900:113;;;22999:1;22994:3;22990:11;22984:18;22980:1;22975:3;22971:11;22964:39;22936:2;22933:1;22929:10;22924:15;;22900:113;;;23031:6;23028:1;23025:13;23022:2;;;23111:1;23102:6;23097:3;23093:16;23086:27;23022:2;22871:258;;;;:::o;23135:281::-;23218:27;23240:4;23218:27;:::i;:::-;23210:6;23206:40;23348:6;23336:10;23333:22;23312:18;23300:10;23297:34;23294:62;23291:2;;;23359:18;;:::i;:::-;23291:2;23399:10;23395:2;23388:22;23178:238;;;:::o;23422:233::-;23461:3;23484:24;23502:5;23484:24;:::i;:::-;23475:33;;23530:66;23523:5;23520:77;23517:2;;;23600:18;;:::i;:::-;23517:2;23647:1;23640:5;23636:13;23629:20;;23465:190;;;:::o;23661:180::-;23709:77;23706:1;23699:88;23806:4;23803:1;23796:15;23830:4;23827:1;23820:15;23847:180;23895:77;23892:1;23885:88;23992:4;23989:1;23982:15;24016:4;24013:1;24006:15;24033:180;24081:77;24078:1;24071:88;24178:4;24175:1;24168:15;24202:4;24199:1;24192:15;24219:102;24260:6;24311:2;24307:7;24302:2;24295:5;24291:14;24287:28;24277:38;;24267:54;;;:::o;24327:222::-;24467:34;24463:1;24455:6;24451:14;24444:58;24536:5;24531:2;24523:6;24519:15;24512:30;24433:116;:::o;24555:229::-;24695:34;24691:1;24683:6;24679:14;24672:58;24764:12;24759:2;24751:6;24747:15;24740:37;24661:123;:::o;24790:221::-;24930:34;24926:1;24918:6;24914:14;24907:58;24999:4;24994:2;24986:6;24982:15;24975:29;24896:115;:::o;25017:177::-;25157:29;25153:1;25145:6;25141:14;25134:53;25123:71;:::o;25200:220::-;25340:34;25336:1;25328:6;25324:14;25317:58;25409:3;25404:2;25396:6;25392:15;25385:28;25306:114;:::o;25426:182::-;25566:34;25562:1;25554:6;25550:14;25543:58;25532:76;:::o;25614:228::-;25754:34;25750:1;25742:6;25738:14;25731:58;25823:11;25818:2;25810:6;25806:15;25799:36;25720:122;:::o;25848:224::-;25988:34;25984:1;25976:6;25972:14;25965:58;26057:7;26052:2;26044:6;26040:15;26033:32;25954:118;:::o;26078:222::-;26218:34;26214:1;26206:6;26202:14;26195:58;26287:5;26282:2;26274:6;26270:15;26263:30;26184:116;:::o;26306:223::-;26446:34;26442:1;26434:6;26430:14;26423:58;26515:6;26510:2;26502:6;26498:15;26491:31;26412:117;:::o;26535:173::-;26675:25;26671:1;26663:6;26659:14;26652:49;26641:67;:::o;26714:122::-;26787:24;26805:5;26787:24;:::i;:::-;26780:5;26777:35;26767:2;;26826:1;26823;26816:12;26767:2;26757:79;:::o;26842:116::-;26912:21;26927:5;26912:21;:::i;:::-;26905:5;26902:32;26892:2;;26948:1;26945;26938:12;26892:2;26882:76;:::o;26964:122::-;27037:24;27055:5;27037:24;:::i;:::-;27030:5;27027:35;27017:2;;27076:1;27073;27066:12;27017:2;27007:79;:::o

Swarm Source

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