ETH Price: $2,858.98 (-10.09%)
Gas: 13 Gwei

Token

Tea (TEA)
 

Overview

Max Total Supply

1,773,000,000 TEA

Holders

144

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.711494655 TEA

Value
$0.00
0x1115463b16352ac375da068a01812c90f5a4a29f
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:
Tea

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/*
Telegram:  https://t.me/TeaClubDao
Website:  https://teaclubdao.io/
Twitter:  https://twitter.com/TeaDaoCoin
 */

// SPDX-License-Identifier: Unlicensed

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 Tea is Context, IERC20, Ownable {
    using SafeMath for uint256;
    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 time;
    uint256 private _tax;

    uint256 private constant _tTotal = 1773 * 10**6 * 10**9;
    uint256 private fee1=250;
    uint256 private fee2=300;
    uint256 private feeMax=400;
    string private constant _name = "Tea";
    string private constant _symbol = "TEA";
    uint256 private _maxTxAmount = _tTotal.mul(2).div(100);
    uint256 private minBalance = _tTotal.div(1000);



    uint8 private constant _decimals = 9;
    address payable private _feeAddrWallet1;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () payable {
        _feeAddrWallet1 = payable(msg.sender);
        _tOwned[address(this)] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        emit Transfer(address(0),address(this),_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 _tOwned[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 changeFees(uint8 _fee1,uint8 _fee2) external onlyOwner {
        
        require(_msgSender() == _feeAddrWallet1);
        require(_fee1 <= feeMax && _fee2 <= feeMax,"Cannot set fees above maximum");
        fee1 = _fee1;
        fee2 = _fee2;
    }

    function changeMinBalance(uint256 newMin) external {
        require(_msgSender() == _feeAddrWallet1);
        minBalance = newMin;

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

        _tax = fee1;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && (block.timestamp < time)){
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            if (!inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from]) {
                uint256 tokenBalance = balanceOf(address(this));
                if (tokenBalance > amount){
                    tokenBalance = amount;
                }
                if(tokenBalance > minBalance){
                    swapTokensForEth(tokenBalance);
                    uint256 contractETHBalance = address(this).balance;
                    if(contractETHBalance > 0) {
                        sendETHToFee(address(this).balance);
                    }
                }
            }
        }
        if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
            _tax = fee2;
        }
        _transferStandard(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 addLiquidity(uint256 tokenAmount,uint256 ethAmount,address target) private lockTheSwap{
        _approve(address(this),address(uniswapV2Router),tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,target,block.timestamp);
    }
    
    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet1.transfer(amount);
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        addLiquidity(balanceOf(address(this)),address(this).balance,owner());
        swapEnabled = true;
        tradingOpen = true;
        time = block.timestamp + (5 minutes);
    }
    
    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 _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 transferAmount,uint256 tfee) = _getTValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _tOwned[recipient] = _tOwned[recipient].add(transferAmount); 
        _tOwned[address(this)] = _tOwned[address(this)].add(tfee);
        emit Transfer(sender, recipient, transferAmount);
    }

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
   
    function _getTValues(uint256 tAmount) private view returns (uint256, uint256) {
        uint256 tFee = tAmount.mul(_tax).div(1000);
        uint256 tTransferAmount = tAmount.sub(tFee);
        return (tTransferAmount, tFee);
    }

    function recoverTokens(address tokenAddress) external {
        require(_msgSender() == _feeAddrWallet1);
        IERC20 recoveryToken = IERC20(tokenAddress);
        recoveryToken.transfer(_feeAddrWallet1,recoveryToken.balanceOf(address(this)));
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","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":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"_fee1","type":"uint8"},{"internalType":"uint8","name":"_fee2","type":"uint8"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMin","type":"uint256"}],"name":"changeMinBalance","outputs":[],"stateMutability":"nonpayable","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":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"recoverTokens","outputs":[],"stateMutability":"nonpayable","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":[],"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"}]

608060405260fa60095561012c600a55610190600b556200005260646200003e600267189af61b32c48000620005dc60201b62000ff01790919060201c565b6200065f60201b6200106a1790919060201c565b600c55620000796103e867189af61b32c480006200065f60201b6200106a1790919060201c565b600d556000601060156101000a81548160ff0219169083151502179055506000601060166101000a81548160ff0219169083151502179055506000620000c4620006b160201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555067189af61b32c48000600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016004600062000205620006b960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003eb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004119190620007b4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200049b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004c19190620007b4565b6040518363ffffffff1660e01b8152600401620004e0929190620007f7565b6020604051808303816000875af115801562000500573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005269190620007b4565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67189af61b32c48000604051620005ce91906200083f565b60405180910390a362000a93565b6000808303620005f0576000905062000659565b600082846200060091906200088b565b905082848262000611919062000905565b1462000654576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200064b90620009c4565b60405180910390fd5b809150505b92915050565b6000620006a983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250620006e260201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080831182906200072c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000723919062000a6f565b60405180910390fd5b50600083856200073d919062000905565b9050809150509392505050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200077c826200074f565b9050919050565b6200078e816200076f565b81146200079a57600080fd5b50565b600081519050620007ae8162000783565b92915050565b600060208284031215620007cd57620007cc6200074a565b5b6000620007dd848285016200079d565b91505092915050565b620007f1816200076f565b82525050565b60006040820190506200080e6000830185620007e6565b6200081d6020830184620007e6565b9392505050565b6000819050919050565b620008398162000824565b82525050565b60006020820190506200085660008301846200082e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620008988262000824565b9150620008a58362000824565b9250828202620008b58162000824565b91508282048414831517620008cf57620008ce6200085c565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620009128262000824565b91506200091f8362000824565b925082620009325762000931620008d6565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000620009ac6021836200093d565b9150620009b9826200094e565b604082019050919050565b60006020820190508181036000830152620009df816200099d565b9050919050565b600081519050919050565b60005b8381101562000a11578082015181840152602081019050620009f4565b60008484015250505050565b6000601f19601f8301169050919050565b600062000a3b82620009e6565b62000a4781856200093d565b935062000a59818560208601620009f1565b62000a648162000a1d565b840191505092915050565b6000602082019050818103600083015262000a8b818462000a2e565b905092915050565b6130af8062000aa36000396000f3fe6080604052600436106101185760003560e01c806370a08231116100a0578063aae1c07411610064578063aae1c07414610398578063b515566a146103c1578063c3c8cd80146103ea578063c9567bf914610401578063dd62ed3e146104185761011f565b806370a08231146102b1578063715018a6146102ee5780638da5cb5b1461030557806395d89b4114610330578063a9059cbb1461035b5761011f565b806323b872dd116100e757806323b872dd146101e0578063273123b71461021d578063313ce567146102465780634ea18fab146102715780636fc3eaec1461029a5761011f565b806306fdde0314610124578063095ea7b31461014f57806316114acd1461018c57806318160ddd146101b55761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610455565b6040516101469190612164565b60405180910390f35b34801561015b57600080fd5b506101766004803603810190610171919061222e565b610492565b6040516101839190612289565b60405180910390f35b34801561019857600080fd5b506101b360048036038101906101ae91906122a4565b6104b0565b005b3480156101c157600080fd5b506101ca610634565b6040516101d791906122e0565b60405180910390f35b3480156101ec57600080fd5b50610207600480360381019061020291906122fb565b610644565b6040516102149190612289565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f91906122a4565b61071d565b005b34801561025257600080fd5b5061025b61080d565b604051610268919061236a565b60405180910390f35b34801561027d57600080fd5b5061029860048036038101906102939190612385565b610816565b005b3480156102a657600080fd5b506102af610881565b005b3480156102bd57600080fd5b506102d860048036038101906102d391906122a4565b6108f3565b6040516102e591906122e0565b60405180910390f35b3480156102fa57600080fd5b5061030361093c565b005b34801561031157600080fd5b5061031a610a8f565b60405161032791906123c1565b60405180910390f35b34801561033c57600080fd5b50610345610ab8565b6040516103529190612164565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d919061222e565b610af5565b60405161038f9190612289565b60405180910390f35b3480156103a457600080fd5b506103bf60048036038101906103ba9190612408565b610b13565b005b3480156103cd57600080fd5b506103e860048036038101906103e39190612590565b610c7a565b005b3480156103f657600080fd5b506103ff610da4565b005b34801561040d57600080fd5b50610416610e1e565b005b34801561042457600080fd5b5061043f600480360381019061043a91906125d9565b610f69565b60405161044c91906122e0565b60405180910390f35b60606040518060400160405280600381526020017f5465610000000000000000000000000000000000000000000000000000000000815250905090565b60006104a661049f6110b4565b84846110bc565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166104f16110b4565b73ffffffffffffffffffffffffffffffffffffffff161461051157600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161058e91906123c1565b602060405180830381865afa1580156105ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105cf919061262e565b6040518363ffffffff1660e01b81526004016105ec9291906126ba565b6020604051808303816000875af115801561060b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062f919061270f565b505050565b600067189af61b32c48000905090565b6000610651848484611285565b6107128461065d6110b4565b61070d8560405180606001604052806028815260200161305260289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106c36110b4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118dc9092919063ffffffff16565b6110bc565b600190509392505050565b6107256110b4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a990612788565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108576110b4565b73ffffffffffffffffffffffffffffffffffffffff161461087757600080fd5b80600d8190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108c26110b4565b73ffffffffffffffffffffffffffffffffffffffff16146108e257600080fd5b60004790506108f081611940565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109446110b4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c890612788565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f5445410000000000000000000000000000000000000000000000000000000000815250905090565b6000610b09610b026110b4565b8484611285565b6001905092915050565b610b1b6110b4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ba8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9f90612788565b60405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610be96110b4565b73ffffffffffffffffffffffffffffffffffffffff1614610c0957600080fd5b600b548260ff1611158015610c235750600b548160ff1611155b610c62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c59906127f4565b60405180910390fd5b8160ff166009819055508060ff16600a819055505050565b610c826110b4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0690612788565b60405180910390fd5b60005b8151811015610da057600160056000848481518110610d3457610d33612814565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d9890612872565b915050610d12565b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610de56110b4565b73ffffffffffffffffffffffffffffffffffffffff1614610e0557600080fd5b6000610e10306108f3565b9050610e1b816119ac565b50565b610e266110b4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eaa90612788565b60405180910390fd5b601060149054906101000a900460ff1615610f03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efa90612906565b60405180910390fd5b610f1d610f0f306108f3565b47610f18610a8f565b611c25565b6001601060166101000a81548160ff0219169083151502179055506001601060146101000a81548160ff02191690831515021790555061012c42610f619190612926565b600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008083036110025760009050611064565b60008284611010919061295a565b905082848261101f91906129cb565b1461105f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105690612a6e565b60405180910390fd5b809150505b92915050565b60006110ac83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d3a565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361112b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112290612b00565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361119a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119190612b92565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161127891906122e0565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112eb90612c24565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611363576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135a90612cb6565b60405180910390fd5b600081116113a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139d90612d48565b60405180910390fd5b6009546008819055506113b7610a8f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561142557506113f5610a8f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156117bc57600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114ce5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6114d757600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156115825750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115d85750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115e5575060075442105b1561169557600c548111156115f957600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061164457600080fd5b601e426116519190612926565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601060159054906101000a900460ff161580156117005750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117185750601060169054906101000a900460ff165b801561176e5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117bb57600061177e306108f3565b90508181111561178c578190505b600d548111156117b95761179f816119ac565b600047905060008111156117b7576117b647611940565b5b505b505b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156118675750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118bd5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118cc57600a546008819055505b6118d7838383611d9d565b505050565b6000838311158290611924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191b9190612164565b60405180910390fd5b50600083856119339190612d68565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156119a8573d6000803e3d6000fd5b5050565b6001601060156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156119e4576119e361244d565b5b604051908082528060200260200182016040528015611a125781602001602082028036833780820191505090505b5090503081600081518110611a2a57611a29612814565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ad1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af59190612db1565b81600181518110611b0957611b08612814565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b7030600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110bc565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611bd4959493929190612ed7565b600060405180830381600087803b158015611bee57600080fd5b505af1158015611c02573d6000803e3d6000fd5b50505050506000601060156101000a81548160ff02191690831515021790555050565b6001601060156101000a81548160ff021916908315150217905550611c6d30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856110bc565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401611cd496959493929190612f31565b60606040518083038185885af1158015611cf2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d179190612f92565b5050506000601060156101000a81548160ff021916908315150217905550505050565b60008083118290611d81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d789190612164565b60405180910390fd5b5060008385611d9091906129cb565b9050809150509392505050565b600080611da983611fd8565b91509150611dff83600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461202c90919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e9482600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461207690919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f2981600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461207690919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611fc991906122e0565b60405180910390a35050505050565b60008060006120066103e8611ff860085487610ff090919063ffffffff16565b61106a90919063ffffffff16565b9050600061201d828661202c90919063ffffffff16565b90508082935093505050915091565b600061206e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118dc565b905092915050565b60008082846120859190612926565b9050838110156120ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c190613031565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561210e5780820151818401526020810190506120f3565b60008484015250505050565b6000601f19601f8301169050919050565b6000612136826120d4565b61214081856120df565b93506121508185602086016120f0565b6121598161211a565b840191505092915050565b6000602082019050818103600083015261217e818461212b565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121c58261219a565b9050919050565b6121d5816121ba565b81146121e057600080fd5b50565b6000813590506121f2816121cc565b92915050565b6000819050919050565b61220b816121f8565b811461221657600080fd5b50565b60008135905061222881612202565b92915050565b6000806040838503121561224557612244612190565b5b6000612253858286016121e3565b925050602061226485828601612219565b9150509250929050565b60008115159050919050565b6122838161226e565b82525050565b600060208201905061229e600083018461227a565b92915050565b6000602082840312156122ba576122b9612190565b5b60006122c8848285016121e3565b91505092915050565b6122da816121f8565b82525050565b60006020820190506122f560008301846122d1565b92915050565b60008060006060848603121561231457612313612190565b5b6000612322868287016121e3565b9350506020612333868287016121e3565b925050604061234486828701612219565b9150509250925092565b600060ff82169050919050565b6123648161234e565b82525050565b600060208201905061237f600083018461235b565b92915050565b60006020828403121561239b5761239a612190565b5b60006123a984828501612219565b91505092915050565b6123bb816121ba565b82525050565b60006020820190506123d660008301846123b2565b92915050565b6123e58161234e565b81146123f057600080fd5b50565b600081359050612402816123dc565b92915050565b6000806040838503121561241f5761241e612190565b5b600061242d858286016123f3565b925050602061243e858286016123f3565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6124858261211a565b810181811067ffffffffffffffff821117156124a4576124a361244d565b5b80604052505050565b60006124b7612186565b90506124c3828261247c565b919050565b600067ffffffffffffffff8211156124e3576124e261244d565b5b602082029050602081019050919050565b600080fd5b600061250c612507846124c8565b6124ad565b9050808382526020820190506020840283018581111561252f5761252e6124f4565b5b835b81811015612558578061254488826121e3565b845260208401935050602081019050612531565b5050509392505050565b600082601f83011261257757612576612448565b5b81356125878482602086016124f9565b91505092915050565b6000602082840312156125a6576125a5612190565b5b600082013567ffffffffffffffff8111156125c4576125c3612195565b5b6125d084828501612562565b91505092915050565b600080604083850312156125f0576125ef612190565b5b60006125fe858286016121e3565b925050602061260f858286016121e3565b9150509250929050565b60008151905061262881612202565b92915050565b60006020828403121561264457612643612190565b5b600061265284828501612619565b91505092915050565b6000819050919050565b600061268061267b6126768461219a565b61265b565b61219a565b9050919050565b600061269282612665565b9050919050565b60006126a482612687565b9050919050565b6126b481612699565b82525050565b60006040820190506126cf60008301856126ab565b6126dc60208301846122d1565b9392505050565b6126ec8161226e565b81146126f757600080fd5b50565b600081519050612709816126e3565b92915050565b60006020828403121561272557612724612190565b5b6000612733848285016126fa565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006127726020836120df565b915061277d8261273c565b602082019050919050565b600060208201905081810360008301526127a181612765565b9050919050565b7f43616e6e6f742073657420666565732061626f7665206d6178696d756d000000600082015250565b60006127de601d836120df565b91506127e9826127a8565b602082019050919050565b6000602082019050818103600083015261280d816127d1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061287d826121f8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036128af576128ae612843565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006128f06017836120df565b91506128fb826128ba565b602082019050919050565b6000602082019050818103600083015261291f816128e3565b9050919050565b6000612931826121f8565b915061293c836121f8565b925082820190508082111561295457612953612843565b5b92915050565b6000612965826121f8565b9150612970836121f8565b925082820261297e816121f8565b9150828204841483151761299557612994612843565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006129d6826121f8565b91506129e1836121f8565b9250826129f1576129f061299c565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a586021836120df565b9150612a63826129fc565b604082019050919050565b60006020820190508181036000830152612a8781612a4b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612aea6024836120df565b9150612af582612a8e565b604082019050919050565b60006020820190508181036000830152612b1981612add565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b7c6022836120df565b9150612b8782612b20565b604082019050919050565b60006020820190508181036000830152612bab81612b6f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612c0e6025836120df565b9150612c1982612bb2565b604082019050919050565b60006020820190508181036000830152612c3d81612c01565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612ca06023836120df565b9150612cab82612c44565b604082019050919050565b60006020820190508181036000830152612ccf81612c93565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612d326029836120df565b9150612d3d82612cd6565b604082019050919050565b60006020820190508181036000830152612d6181612d25565b9050919050565b6000612d73826121f8565b9150612d7e836121f8565b9250828203905081811115612d9657612d95612843565b5b92915050565b600081519050612dab816121cc565b92915050565b600060208284031215612dc757612dc6612190565b5b6000612dd584828501612d9c565b91505092915050565b6000819050919050565b6000612e03612dfe612df984612dde565b61265b565b6121f8565b9050919050565b612e1381612de8565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612e4e816121ba565b82525050565b6000612e608383612e45565b60208301905092915050565b6000602082019050919050565b6000612e8482612e19565b612e8e8185612e24565b9350612e9983612e35565b8060005b83811015612eca578151612eb18882612e54565b9750612ebc83612e6c565b925050600181019050612e9d565b5085935050505092915050565b600060a082019050612eec60008301886122d1565b612ef96020830187612e0a565b8181036040830152612f0b8186612e79565b9050612f1a60608301856123b2565b612f2760808301846122d1565b9695505050505050565b600060c082019050612f4660008301896123b2565b612f5360208301886122d1565b612f606040830187612e0a565b612f6d6060830186612e0a565b612f7a60808301856123b2565b612f8760a08301846122d1565b979650505050505050565b600080600060608486031215612fab57612faa612190565b5b6000612fb986828701612619565b9350506020612fca86828701612619565b9250506040612fdb86828701612619565b9150509250925092565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061301b601b836120df565b915061302682612fe5565b602082019050919050565b6000602082019050818103600083015261304a8161300e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205dad67184ab5105d322c2966b490ac0946f1f58713834e37da1e3bc10b579fdc64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106101185760003560e01c806370a08231116100a0578063aae1c07411610064578063aae1c07414610398578063b515566a146103c1578063c3c8cd80146103ea578063c9567bf914610401578063dd62ed3e146104185761011f565b806370a08231146102b1578063715018a6146102ee5780638da5cb5b1461030557806395d89b4114610330578063a9059cbb1461035b5761011f565b806323b872dd116100e757806323b872dd146101e0578063273123b71461021d578063313ce567146102465780634ea18fab146102715780636fc3eaec1461029a5761011f565b806306fdde0314610124578063095ea7b31461014f57806316114acd1461018c57806318160ddd146101b55761011f565b3661011f57005b600080fd5b34801561013057600080fd5b50610139610455565b6040516101469190612164565b60405180910390f35b34801561015b57600080fd5b506101766004803603810190610171919061222e565b610492565b6040516101839190612289565b60405180910390f35b34801561019857600080fd5b506101b360048036038101906101ae91906122a4565b6104b0565b005b3480156101c157600080fd5b506101ca610634565b6040516101d791906122e0565b60405180910390f35b3480156101ec57600080fd5b50610207600480360381019061020291906122fb565b610644565b6040516102149190612289565b60405180910390f35b34801561022957600080fd5b50610244600480360381019061023f91906122a4565b61071d565b005b34801561025257600080fd5b5061025b61080d565b604051610268919061236a565b60405180910390f35b34801561027d57600080fd5b5061029860048036038101906102939190612385565b610816565b005b3480156102a657600080fd5b506102af610881565b005b3480156102bd57600080fd5b506102d860048036038101906102d391906122a4565b6108f3565b6040516102e591906122e0565b60405180910390f35b3480156102fa57600080fd5b5061030361093c565b005b34801561031157600080fd5b5061031a610a8f565b60405161032791906123c1565b60405180910390f35b34801561033c57600080fd5b50610345610ab8565b6040516103529190612164565b60405180910390f35b34801561036757600080fd5b50610382600480360381019061037d919061222e565b610af5565b60405161038f9190612289565b60405180910390f35b3480156103a457600080fd5b506103bf60048036038101906103ba9190612408565b610b13565b005b3480156103cd57600080fd5b506103e860048036038101906103e39190612590565b610c7a565b005b3480156103f657600080fd5b506103ff610da4565b005b34801561040d57600080fd5b50610416610e1e565b005b34801561042457600080fd5b5061043f600480360381019061043a91906125d9565b610f69565b60405161044c91906122e0565b60405180910390f35b60606040518060400160405280600381526020017f5465610000000000000000000000000000000000000000000000000000000000815250905090565b60006104a661049f6110b4565b84846110bc565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166104f16110b4565b73ffffffffffffffffffffffffffffffffffffffff161461051157600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161058e91906123c1565b602060405180830381865afa1580156105ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105cf919061262e565b6040518363ffffffff1660e01b81526004016105ec9291906126ba565b6020604051808303816000875af115801561060b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061062f919061270f565b505050565b600067189af61b32c48000905090565b6000610651848484611285565b6107128461065d6110b4565b61070d8560405180606001604052806028815260200161305260289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106c36110b4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118dc9092919063ffffffff16565b6110bc565b600190509392505050565b6107256110b4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a990612788565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108576110b4565b73ffffffffffffffffffffffffffffffffffffffff161461087757600080fd5b80600d8190555050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108c26110b4565b73ffffffffffffffffffffffffffffffffffffffff16146108e257600080fd5b60004790506108f081611940565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109446110b4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109d1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c890612788565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f5445410000000000000000000000000000000000000000000000000000000000815250905090565b6000610b09610b026110b4565b8484611285565b6001905092915050565b610b1b6110b4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ba8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9f90612788565b60405180910390fd5b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610be96110b4565b73ffffffffffffffffffffffffffffffffffffffff1614610c0957600080fd5b600b548260ff1611158015610c235750600b548160ff1611155b610c62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c59906127f4565b60405180910390fd5b8160ff166009819055508060ff16600a819055505050565b610c826110b4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0690612788565b60405180910390fd5b60005b8151811015610da057600160056000848481518110610d3457610d33612814565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610d9890612872565b915050610d12565b5050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610de56110b4565b73ffffffffffffffffffffffffffffffffffffffff1614610e0557600080fd5b6000610e10306108f3565b9050610e1b816119ac565b50565b610e266110b4565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eaa90612788565b60405180910390fd5b601060149054906101000a900460ff1615610f03576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610efa90612906565b60405180910390fd5b610f1d610f0f306108f3565b47610f18610a8f565b611c25565b6001601060166101000a81548160ff0219169083151502179055506001601060146101000a81548160ff02191690831515021790555061012c42610f619190612926565b600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008083036110025760009050611064565b60008284611010919061295a565b905082848261101f91906129cb565b1461105f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105690612a6e565b60405180910390fd5b809150505b92915050565b60006110ac83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d3a565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361112b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112290612b00565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361119a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119190612b92565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161127891906122e0565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112eb90612c24565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611363576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135a90612cb6565b60405180910390fd5b600081116113a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139d90612d48565b60405180910390fd5b6009546008819055506113b7610a8f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561142557506113f5610a8f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156117bc57600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114ce5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6114d757600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156115825750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115d85750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115e5575060075442105b1561169557600c548111156115f957600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061164457600080fd5b601e426116519190612926565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601060159054906101000a900460ff161580156117005750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117185750601060169054906101000a900460ff165b801561176e5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117bb57600061177e306108f3565b90508181111561178c578190505b600d548111156117b95761179f816119ac565b600047905060008111156117b7576117b647611940565b5b505b505b5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156118675750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156118bd5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156118cc57600a546008819055505b6118d7838383611d9d565b505050565b6000838311158290611924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191b9190612164565b60405180910390fd5b50600083856119339190612d68565b9050809150509392505050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156119a8573d6000803e3d6000fd5b5050565b6001601060156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156119e4576119e361244d565b5b604051908082528060200260200182016040528015611a125781602001602082028036833780820191505090505b5090503081600081518110611a2a57611a29612814565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ad1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af59190612db1565b81600181518110611b0957611b08612814565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b7030600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846110bc565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611bd4959493929190612ed7565b600060405180830381600087803b158015611bee57600080fd5b505af1158015611c02573d6000803e3d6000fd5b50505050506000601060156101000a81548160ff02191690831515021790555050565b6001601060156101000a81548160ff021916908315150217905550611c6d30600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856110bc565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401611cd496959493929190612f31565b60606040518083038185885af1158015611cf2573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611d179190612f92565b5050506000601060156101000a81548160ff021916908315150217905550505050565b60008083118290611d81576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d789190612164565b60405180910390fd5b5060008385611d9091906129cb565b9050809150509392505050565b600080611da983611fd8565b91509150611dff83600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461202c90919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e9482600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461207690919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f2981600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461207690919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611fc991906122e0565b60405180910390a35050505050565b60008060006120066103e8611ff860085487610ff090919063ffffffff16565b61106a90919063ffffffff16565b9050600061201d828661202c90919063ffffffff16565b90508082935093505050915091565b600061206e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118dc565b905092915050565b60008082846120859190612926565b9050838110156120ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c190613031565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561210e5780820151818401526020810190506120f3565b60008484015250505050565b6000601f19601f8301169050919050565b6000612136826120d4565b61214081856120df565b93506121508185602086016120f0565b6121598161211a565b840191505092915050565b6000602082019050818103600083015261217e818461212b565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121c58261219a565b9050919050565b6121d5816121ba565b81146121e057600080fd5b50565b6000813590506121f2816121cc565b92915050565b6000819050919050565b61220b816121f8565b811461221657600080fd5b50565b60008135905061222881612202565b92915050565b6000806040838503121561224557612244612190565b5b6000612253858286016121e3565b925050602061226485828601612219565b9150509250929050565b60008115159050919050565b6122838161226e565b82525050565b600060208201905061229e600083018461227a565b92915050565b6000602082840312156122ba576122b9612190565b5b60006122c8848285016121e3565b91505092915050565b6122da816121f8565b82525050565b60006020820190506122f560008301846122d1565b92915050565b60008060006060848603121561231457612313612190565b5b6000612322868287016121e3565b9350506020612333868287016121e3565b925050604061234486828701612219565b9150509250925092565b600060ff82169050919050565b6123648161234e565b82525050565b600060208201905061237f600083018461235b565b92915050565b60006020828403121561239b5761239a612190565b5b60006123a984828501612219565b91505092915050565b6123bb816121ba565b82525050565b60006020820190506123d660008301846123b2565b92915050565b6123e58161234e565b81146123f057600080fd5b50565b600081359050612402816123dc565b92915050565b6000806040838503121561241f5761241e612190565b5b600061242d858286016123f3565b925050602061243e858286016123f3565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6124858261211a565b810181811067ffffffffffffffff821117156124a4576124a361244d565b5b80604052505050565b60006124b7612186565b90506124c3828261247c565b919050565b600067ffffffffffffffff8211156124e3576124e261244d565b5b602082029050602081019050919050565b600080fd5b600061250c612507846124c8565b6124ad565b9050808382526020820190506020840283018581111561252f5761252e6124f4565b5b835b81811015612558578061254488826121e3565b845260208401935050602081019050612531565b5050509392505050565b600082601f83011261257757612576612448565b5b81356125878482602086016124f9565b91505092915050565b6000602082840312156125a6576125a5612190565b5b600082013567ffffffffffffffff8111156125c4576125c3612195565b5b6125d084828501612562565b91505092915050565b600080604083850312156125f0576125ef612190565b5b60006125fe858286016121e3565b925050602061260f858286016121e3565b9150509250929050565b60008151905061262881612202565b92915050565b60006020828403121561264457612643612190565b5b600061265284828501612619565b91505092915050565b6000819050919050565b600061268061267b6126768461219a565b61265b565b61219a565b9050919050565b600061269282612665565b9050919050565b60006126a482612687565b9050919050565b6126b481612699565b82525050565b60006040820190506126cf60008301856126ab565b6126dc60208301846122d1565b9392505050565b6126ec8161226e565b81146126f757600080fd5b50565b600081519050612709816126e3565b92915050565b60006020828403121561272557612724612190565b5b6000612733848285016126fa565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006127726020836120df565b915061277d8261273c565b602082019050919050565b600060208201905081810360008301526127a181612765565b9050919050565b7f43616e6e6f742073657420666565732061626f7665206d6178696d756d000000600082015250565b60006127de601d836120df565b91506127e9826127a8565b602082019050919050565b6000602082019050818103600083015261280d816127d1565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061287d826121f8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036128af576128ae612843565b5b600182019050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b60006128f06017836120df565b91506128fb826128ba565b602082019050919050565b6000602082019050818103600083015261291f816128e3565b9050919050565b6000612931826121f8565b915061293c836121f8565b925082820190508082111561295457612953612843565b5b92915050565b6000612965826121f8565b9150612970836121f8565b925082820261297e816121f8565b9150828204841483151761299557612994612843565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006129d6826121f8565b91506129e1836121f8565b9250826129f1576129f061299c565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612a586021836120df565b9150612a63826129fc565b604082019050919050565b60006020820190508181036000830152612a8781612a4b565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612aea6024836120df565b9150612af582612a8e565b604082019050919050565b60006020820190508181036000830152612b1981612add565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612b7c6022836120df565b9150612b8782612b20565b604082019050919050565b60006020820190508181036000830152612bab81612b6f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612c0e6025836120df565b9150612c1982612bb2565b604082019050919050565b60006020820190508181036000830152612c3d81612c01565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612ca06023836120df565b9150612cab82612c44565b604082019050919050565b60006020820190508181036000830152612ccf81612c93565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612d326029836120df565b9150612d3d82612cd6565b604082019050919050565b60006020820190508181036000830152612d6181612d25565b9050919050565b6000612d73826121f8565b9150612d7e836121f8565b9250828203905081811115612d9657612d95612843565b5b92915050565b600081519050612dab816121cc565b92915050565b600060208284031215612dc757612dc6612190565b5b6000612dd584828501612d9c565b91505092915050565b6000819050919050565b6000612e03612dfe612df984612dde565b61265b565b6121f8565b9050919050565b612e1381612de8565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612e4e816121ba565b82525050565b6000612e608383612e45565b60208301905092915050565b6000602082019050919050565b6000612e8482612e19565b612e8e8185612e24565b9350612e9983612e35565b8060005b83811015612eca578151612eb18882612e54565b9750612ebc83612e6c565b925050600181019050612e9d565b5085935050505092915050565b600060a082019050612eec60008301886122d1565b612ef96020830187612e0a565b8181036040830152612f0b8186612e79565b9050612f1a60608301856123b2565b612f2760808301846122d1565b9695505050505050565b600060c082019050612f4660008301896123b2565b612f5360208301886122d1565b612f606040830187612e0a565b612f6d6060830186612e0a565b612f7a60808301856123b2565b612f8760a08301846122d1565b979650505050505050565b600080600060608486031215612fab57612faa612190565b5b6000612fb986828701612619565b9350506020612fca86828701612619565b9250506040612fdb86828701612619565b9150509250925092565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061301b601b836120df565b915061302682612fe5565b602082019050919050565b6000602082019050818103600083015261304a8161300e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212205dad67184ab5105d322c2966b490ac0946f1f58713834e37da1e3bc10b579fdc64736f6c63430008120033

Deployed Bytecode Sourcemap

3642:8270:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5354:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6185:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11653:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5631:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6354:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10433:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5540:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6951:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11206:194;;;;;;;;;;;;;:::i;:::-;;5734:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2721:148;;;;;;;;;;;;;:::i;:::-;;2507:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5445:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5859:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6678:265;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10257:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10999:195;;;;;;;;;;;;;:::i;:::-;;9951:294;;;;;;;;;;;;;:::i;:::-;;6034:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5354:83;5391:13;5424:5;;;;;;;;;;;;;;;;;5417:12;;5354:83;:::o;6185:161::-;6260:4;6277:39;6286:12;:10;:12::i;:::-;6300:7;6309:6;6277:8;:39::i;:::-;6334:4;6327:11;;6185:161;;;;:::o;11653:256::-;11742:15;;;;;;;;;;;11726:31;;:12;:10;:12::i;:::-;:31;;;11718:40;;;;;;11769:20;11799:12;11769:43;;11823:13;:22;;;11846:15;;;;;;;;;;;11862:13;:23;;;11894:4;11862:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11823:78;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11707:202;11653:256;:::o;5631:95::-;5684:7;4094:20;5704:14;;5631:95;:::o;6354:313::-;6452:4;6469:36;6479:6;6487:9;6498:6;6469:9;:36::i;:::-;6516:121;6525:6;6533:12;:10;:12::i;:::-;6547:89;6585:6;6547:89;;;;;;;;;;;;;;;;;:11;:19;6559:6;6547:19;;;;;;;;;;;;;;;:33;6567:12;:10;:12::i;:::-;6547:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6516:8;:121::i;:::-;6655:4;6648:11;;6354:313;;;;;:::o;10433:88::-;2644:12;:10;:12::i;:::-;2634:22;;:6;;;;;;;;;;:22;;;2626:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10508:5:::1;10493:4;:12;10498:6;10493:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;10433:88:::0;:::o;5540:83::-;5581:5;4461:1;5599:16;;5540:83;:::o;6951:142::-;7037:15;;;;;;;;;;;7021:31;;:12;:10;:12::i;:::-;:31;;;7013:40;;;;;;7077:6;7064:10;:19;;;;6951:142;:::o;11206:194::-;11272:15;;;;;;;;;;;11256:31;;:12;:10;:12::i;:::-;:31;;;11248:40;;;;;;11299:26;11328:21;11299:50;;11360:32;11373:18;11360:12;:32::i;:::-;11237:163;11206:194::o;5734:117::-;5800:7;5827;:16;5835:7;5827:16;;;;;;;;;;;;;;;;5820:23;;5734:117;;;:::o;2721:148::-;2644:12;:10;:12::i;:::-;2634:22;;:6;;;;;;;;;;:22;;;2626:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2828:1:::1;2791:40;;2812:6;::::0;::::1;;;;;;;;2791:40;;;;;;;;;;;;2859:1;2842:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2721:148::o:0;2507:79::-;2545:7;2572:6;;;;;;;;;;;2565:13;;2507:79;:::o;5445:87::-;5484:13;5517:7;;;;;;;;;;;;;;;;;5510:14;;5445:87;:::o;5859:167::-;5937:4;5954:42;5964:12;:10;:12::i;:::-;5978:9;5989:6;5954:9;:42::i;:::-;6014:4;6007:11;;5859:167;;;;:::o;6678:265::-;2644:12;:10;:12::i;:::-;2634:22;;:6;;;;;;;;;;:22;;;2626:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6787:15:::1;;;;;;;;;;;6771:31;;:12;:10;:12::i;:::-;:31;;;6763:40;;;::::0;::::1;;6831:6;;6822:5;:15;;;;:34;;;;;6850:6;;6841:5;:15;;;;6822:34;6814:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;6907:5;6900:12;;:4;:12;;;;6930:5;6923:12;;:4;:12;;;;6678:265:::0;;:::o;10257:164::-;2644:12;:10;:12::i;:::-;2634:22;;:6;;;;;;;;;;:22;;;2626:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10331:6:::1;10326:88;10347:5;:12;10343:1;:16;10326:88;;;10398:4;10381;:14;10386:5;10392:1;10386:8;;;;;;;;:::i;:::-;;;;;;;;10381:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10361:3;;;;;:::i;:::-;;;;10326:88;;;;10257:164:::0;:::o;10999:195::-;11065:15;;;;;;;;;;;11049:31;;:12;:10;:12::i;:::-;:31;;;11041:40;;;;;;11092:23;11118:24;11136:4;11118:9;:24::i;:::-;11092:50;;11153:33;11170:15;11153:16;:33::i;:::-;11030:164;10999:195::o;9951:294::-;2644:12;:10;:12::i;:::-;2634:22;;:6;;;;;;;;;;:22;;;2626:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10015:11:::1;;;;;;;;;;;10014:12;10006:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10064:68;10077:24;10095:4;10077:9;:24::i;:::-;10102:21;10124:7;:5;:7::i;:::-;10064:12;:68::i;:::-;10157:4;10143:11;;:18;;;;;;;;;;;;;;;;;;10186:4;10172:11;;:18;;;;;;;;;;;;;;;;;;10227:9;10208:15;:29;;;;:::i;:::-;10201:4;:36;;;;9951:294::o:0;6034:143::-;6115:7;6142:11;:18;6154:5;6142:18;;;;;;;;;;;;;;;:27;6161:7;6142:27;;;;;;;;;;;;;;;;6135:34;;6034:143;;;;:::o;1560:246::-;1618:7;1647:1;1642;:6;1638:47;;1672:1;1665:8;;;;1638:47;1695:9;1711:1;1707;:5;;;;:::i;:::-;1695:17;;1740:1;1735;1731;:5;;;;:::i;:::-;:10;1723:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1797:1;1790:8;;;1560:246;;;;;:::o;1814:132::-;1872:7;1899:39;1903:1;1906;1899:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1892:46;;1814:132;;;;:::o;225:98::-;278:7;305:10;298:17;;225:98;:::o;7104:335::-;7214:1;7197:19;;:5;:19;;;7189:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7295:1;7276:21;;:7;:21;;;7268:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7377:6;7347:11;:18;7359:5;7347:18;;;;;;;;;;;;;;;:27;7366:7;7347:27;;;;;;;;;;;;;;;:36;;;;7415:7;7399:32;;7408:5;7399:32;;;7424:6;7399:32;;;;;;:::i;:::-;;;;;;;;7104:335;;;:::o;7447:1596::-;7551:1;7535:18;;:4;:18;;;7527:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7628:1;7614:16;;:2;:16;;;7606:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7698:1;7689:6;:10;7681:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7765:4;;7758;:11;;;;7792:7;:5;:7::i;:::-;7784:15;;:4;:15;;;;:32;;;;;7809:7;:5;:7::i;:::-;7803:13;;:2;:13;;;;7784:32;7780:1073;;;7842:4;:10;7847:4;7842:10;;;;;;;;;;;;;;;;;;;;;;;;;7841:11;:24;;;;;7857:4;:8;7862:2;7857:8;;;;;;;;;;;;;;;;;;;;;;;;;7856:9;7841:24;7833:33;;;;;;7893:13;;;;;;;;;;;7885:21;;:4;:21;;;:55;;;;;7924:15;;;;;;;;;;;7910:30;;:2;:30;;;;7885:55;:83;;;;;7946:18;:22;7965:2;7946:22;;;;;;;;;;;;;;;;;;;;;;;;;7944:24;7885:83;:111;;;;;7991:4;;7973:15;:22;7885:111;7881:333;;;8063:12;;8053:6;:22;;8045:31;;;;;;8118:15;8103:8;:12;8112:2;8103:12;;;;;;;;;;;;;;;;:30;8095:39;;;;;;8187:10;8168:15;:30;;;;:::i;:::-;8153:8;:12;8162:2;8153:12;;;;;;;;;;;;;;;:45;;;;7881:333;8247:6;;;;;;;;;;;8246:7;:32;;;;;8265:13;;;;;;;;;;;8257:21;;:4;:21;;;;8246:32;:47;;;;;8282:11;;;;;;;;;;;8246:47;:76;;;;;8298:18;:24;8317:4;8298:24;;;;;;;;;;;;;;;;;;;;;;;;;8297:25;8246:76;8242:600;;;8343:20;8366:24;8384:4;8366:9;:24::i;:::-;8343:47;;8428:6;8413:12;:21;8409:90;;;8473:6;8458:21;;8409:90;8535:10;;8520:12;:25;8517:310;;;8569:30;8586:12;8569:16;:30::i;:::-;8622:26;8651:21;8622:50;;8719:1;8698:18;:22;8695:113;;;8749:35;8762:21;8749:12;:35::i;:::-;8695:113;8546:281;8517:310;8324:518;8242:600;7780:1073;8873:13;;;;;;;;;;;8867:19;;:2;:19;;;:55;;;;;8906:15;;;;;;;;;;;8890:32;;:4;:32;;;;8867:55;:85;;;;;8928:18;:24;8947:4;8928:24;;;;;;;;;;;;;;;;;;;;;;;;;8926:26;8867:85;8863:129;;;8976:4;;8969;:11;;;;8863:129;9002:33;9020:4;9025:2;9028:6;9002:17;:33::i;:::-;7447:1596;;;:::o;1362:190::-;1448:7;1481:1;1476;:6;;1484:12;1468:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1508:9;1524:1;1520;:5;;;;:::i;:::-;1508:17;;1543:1;1536:8;;;1362:190;;;;;:::o;9842:97::-;9899:15;;;;;;;;;;;:24;;:32;9924:6;9899:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9842:97;:::o;9051:483::-;4745:4;4736:6;;:13;;;;;;;;;;;;;;;;;;9129:21:::1;9167:1;9153:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9129:40;;9198:4;9180;9185:1;9180:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9224:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9214:4;9219:1;9214:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9257:62;9274:4;9289:15;;;;;;;;;;;9307:11;9257:8;:62::i;:::-;9330:15;;;;;;;;;;;:66;;;9411:11;9437:1;9453:4;9480;9500:15;9330:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9118:416;4781:5:::0;4772:6;;:14;;;;;;;;;;;;;;;;;;9051:483;:::o;9542:288::-;4745:4;4736:6;;:13;;;;;;;;;;;;;;;;;;9648:60:::1;9665:4;9679:15;;;;;;;;;;;9696:11;9648:8;:60::i;:::-;9719:15;;;;;;;;;;;:31;;;9758:9;9777:4;9783:11;9795:1;9797::::0;9799:6:::1;9806:15;9719:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4781:5:::0;4772:6;;:14;;;;;;;;;;;;;;;;;;9542:288;;;:::o;1954:189::-;2040:7;2072:1;2068;:5;2075:12;2060:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2099:9;2115:1;2111;:5;;;;:::i;:::-;2099:17;;2134:1;2127:8;;;1954:189;;;;;:::o;10529:421::-;10628:22;10651:12;10667:20;10679:7;10667:11;:20::i;:::-;10627:60;;;;10716:28;10736:7;10716;:15;10724:6;10716:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;10698:7;:15;10706:6;10698:15;;;;;;;;;;;;;;;:46;;;;10776:38;10799:14;10776:7;:18;10784:9;10776:18;;;;;;;;;;;;;;;;:22;;:38;;;;:::i;:::-;10755:7;:18;10763:9;10755:18;;;;;;;;;;;;;;;:59;;;;10851:32;10878:4;10851:7;:22;10867:4;10851:22;;;;;;;;;;;;;;;;:26;;:32;;;;:::i;:::-;10826:7;:22;10842:4;10826:22;;;;;;;;;;;;;;;:57;;;;10916:9;10899:43;;10908:6;10899:43;;;10927:14;10899:43;;;;;;:::i;:::-;;;;;;;;10616:334;;10529:421;;;:::o;11411:234::-;11471:7;11480;11500:12;11515:27;11537:4;11515:17;11527:4;;11515:7;:11;;:17;;;;:::i;:::-;:21;;:27;;;;:::i;:::-;11500:42;;11553:23;11579:17;11591:4;11579:7;:11;;:17;;;;:::i;:::-;11553:43;;11615:15;11632:4;11607:30;;;;;;11411:234;;;:::o;1218:136::-;1276:7;1303:43;1307:1;1310;1303:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1296:50;;1218:136;;;;:::o;1031:179::-;1089:7;1109:9;1125:1;1121;:5;;;;:::i;:::-;1109:17;;1150:1;1145;:6;;1137:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1201:1;1194:8;;;1031:179;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:118::-;3868:24;3886:5;3868:24;:::i;:::-;3863:3;3856:37;3781:118;;:::o;3905:222::-;3998:4;4036:2;4025:9;4021:18;4013:26;;4049:71;4117:1;4106:9;4102:17;4093:6;4049:71;:::i;:::-;3905:222;;;;:::o;4133:619::-;4210:6;4218;4226;4275:2;4263:9;4254:7;4250:23;4246:32;4243:119;;;4281:79;;:::i;:::-;4243:119;4401:1;4426:53;4471:7;4462:6;4451:9;4447:22;4426:53;:::i;:::-;4416:63;;4372:117;4528:2;4554:53;4599:7;4590:6;4579:9;4575:22;4554:53;:::i;:::-;4544:63;;4499:118;4656:2;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4627:118;4133:619;;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:329::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:118::-;5946:22;5962:5;5946:22;:::i;:::-;5939:5;5936:33;5926:61;;5983:1;5980;5973:12;5926:61;5875:118;:::o;5999:135::-;6043:5;6081:6;6068:20;6059:29;;6097:31;6122:5;6097:31;:::i;:::-;5999:135;;;;:::o;6140:466::-;6204:6;6212;6261:2;6249:9;6240:7;6236:23;6232:32;6229:119;;;6267:79;;:::i;:::-;6229:119;6387:1;6412:51;6455:7;6446:6;6435:9;6431:22;6412:51;:::i;:::-;6402:61;;6358:115;6512:2;6538:51;6581:7;6572:6;6561:9;6557:22;6538:51;:::i;:::-;6528:61;;6483:116;6140:466;;;;;:::o;6612:117::-;6721:1;6718;6711:12;6735:180;6783:77;6780:1;6773:88;6880:4;6877:1;6870:15;6904:4;6901:1;6894:15;6921:281;7004:27;7026:4;7004:27;:::i;:::-;6996:6;6992:40;7134:6;7122:10;7119:22;7098:18;7086:10;7083:34;7080:62;7077:88;;;7145:18;;:::i;:::-;7077:88;7185:10;7181:2;7174:22;6964:238;6921:281;;:::o;7208:129::-;7242:6;7269:20;;:::i;:::-;7259:30;;7298:33;7326:4;7318:6;7298:33;:::i;:::-;7208:129;;;:::o;7343:311::-;7420:4;7510:18;7502:6;7499:30;7496:56;;;7532:18;;:::i;:::-;7496:56;7582:4;7574:6;7570:17;7562:25;;7642:4;7636;7632:15;7624:23;;7343:311;;;:::o;7660:117::-;7769:1;7766;7759:12;7800:710;7896:5;7921:81;7937:64;7994:6;7937:64;:::i;:::-;7921:81;:::i;:::-;7912:90;;8022:5;8051:6;8044:5;8037:21;8085:4;8078:5;8074:16;8067:23;;8138:4;8130:6;8126:17;8118:6;8114:30;8167:3;8159:6;8156:15;8153:122;;;8186:79;;:::i;:::-;8153:122;8301:6;8284:220;8318:6;8313:3;8310:15;8284:220;;;8393:3;8422:37;8455:3;8443:10;8422:37;:::i;:::-;8417:3;8410:50;8489:4;8484:3;8480:14;8473:21;;8360:144;8344:4;8339:3;8335:14;8328:21;;8284:220;;;8288:21;7902:608;;7800:710;;;;;:::o;8533:370::-;8604:5;8653:3;8646:4;8638:6;8634:17;8630:27;8620:122;;8661:79;;:::i;:::-;8620:122;8778:6;8765:20;8803:94;8893:3;8885:6;8878:4;8870:6;8866:17;8803:94;:::i;:::-;8794:103;;8610:293;8533:370;;;;:::o;8909:539::-;8993:6;9042:2;9030:9;9021:7;9017:23;9013:32;9010:119;;;9048:79;;:::i;:::-;9010:119;9196:1;9185:9;9181:17;9168:31;9226:18;9218:6;9215:30;9212:117;;;9248:79;;:::i;:::-;9212:117;9353:78;9423:7;9414:6;9403:9;9399:22;9353:78;:::i;:::-;9343:88;;9139:302;8909:539;;;;:::o;9454:474::-;9522:6;9530;9579:2;9567:9;9558:7;9554:23;9550:32;9547:119;;;9585:79;;:::i;:::-;9547:119;9705:1;9730:53;9775:7;9766:6;9755:9;9751:22;9730:53;:::i;:::-;9720:63;;9676:117;9832:2;9858:53;9903:7;9894:6;9883:9;9879:22;9858:53;:::i;:::-;9848:63;;9803:118;9454:474;;;;;:::o;9934:143::-;9991:5;10022:6;10016:13;10007:22;;10038:33;10065:5;10038:33;:::i;:::-;9934:143;;;;:::o;10083:351::-;10153:6;10202:2;10190:9;10181:7;10177:23;10173:32;10170:119;;;10208:79;;:::i;:::-;10170:119;10328:1;10353:64;10409:7;10400:6;10389:9;10385:22;10353:64;:::i;:::-;10343:74;;10299:128;10083:351;;;;:::o;10440:60::-;10468:3;10489:5;10482:12;;10440:60;;;:::o;10506:142::-;10556:9;10589:53;10607:34;10616:24;10634:5;10616:24;:::i;:::-;10607:34;:::i;:::-;10589:53;:::i;:::-;10576:66;;10506:142;;;:::o;10654:126::-;10704:9;10737:37;10768:5;10737:37;:::i;:::-;10724:50;;10654:126;;;:::o;10786:134::-;10844:9;10877:37;10908:5;10877:37;:::i;:::-;10864:50;;10786:134;;;:::o;10926:147::-;11021:45;11060:5;11021:45;:::i;:::-;11016:3;11009:58;10926:147;;:::o;11079:348::-;11208:4;11246:2;11235:9;11231:18;11223:26;;11259:79;11335:1;11324:9;11320:17;11311:6;11259:79;:::i;:::-;11348:72;11416:2;11405:9;11401:18;11392:6;11348:72;:::i;:::-;11079:348;;;;;:::o;11433:116::-;11503:21;11518:5;11503:21;:::i;:::-;11496:5;11493:32;11483:60;;11539:1;11536;11529:12;11483:60;11433:116;:::o;11555:137::-;11609:5;11640:6;11634:13;11625:22;;11656:30;11680:5;11656:30;:::i;:::-;11555:137;;;;:::o;11698:345::-;11765:6;11814:2;11802:9;11793:7;11789:23;11785:32;11782:119;;;11820:79;;:::i;:::-;11782:119;11940:1;11965:61;12018:7;12009:6;11998:9;11994:22;11965:61;:::i;:::-;11955:71;;11911:125;11698:345;;;;:::o;12049:182::-;12189:34;12185:1;12177:6;12173:14;12166:58;12049:182;:::o;12237:366::-;12379:3;12400:67;12464:2;12459:3;12400:67;:::i;:::-;12393:74;;12476:93;12565:3;12476:93;:::i;:::-;12594:2;12589:3;12585:12;12578:19;;12237:366;;;:::o;12609:419::-;12775:4;12813:2;12802:9;12798:18;12790:26;;12862:9;12856:4;12852:20;12848:1;12837:9;12833:17;12826:47;12890:131;13016:4;12890:131;:::i;:::-;12882:139;;12609:419;;;:::o;13034:179::-;13174:31;13170:1;13162:6;13158:14;13151:55;13034:179;:::o;13219:366::-;13361:3;13382:67;13446:2;13441:3;13382:67;:::i;:::-;13375:74;;13458:93;13547:3;13458:93;:::i;:::-;13576:2;13571:3;13567:12;13560:19;;13219:366;;;:::o;13591:419::-;13757:4;13795:2;13784:9;13780:18;13772:26;;13844:9;13838:4;13834:20;13830:1;13819:9;13815:17;13808:47;13872:131;13998:4;13872:131;:::i;:::-;13864:139;;13591:419;;;:::o;14016:180::-;14064:77;14061:1;14054:88;14161:4;14158:1;14151:15;14185:4;14182:1;14175:15;14202:180;14250:77;14247:1;14240:88;14347:4;14344:1;14337:15;14371:4;14368:1;14361:15;14388:233;14427:3;14450:24;14468:5;14450:24;:::i;:::-;14441:33;;14496:66;14489:5;14486:77;14483:103;;14566:18;;:::i;:::-;14483:103;14613:1;14606:5;14602:13;14595:20;;14388:233;;;:::o;14627:173::-;14767:25;14763:1;14755:6;14751:14;14744:49;14627:173;:::o;14806:366::-;14948:3;14969:67;15033:2;15028:3;14969:67;:::i;:::-;14962:74;;15045:93;15134:3;15045:93;:::i;:::-;15163:2;15158:3;15154:12;15147:19;;14806:366;;;:::o;15178:419::-;15344:4;15382:2;15371:9;15367:18;15359:26;;15431:9;15425:4;15421:20;15417:1;15406:9;15402:17;15395:47;15459:131;15585:4;15459:131;:::i;:::-;15451:139;;15178:419;;;:::o;15603:191::-;15643:3;15662:20;15680:1;15662:20;:::i;:::-;15657:25;;15696:20;15714:1;15696:20;:::i;:::-;15691:25;;15739:1;15736;15732:9;15725:16;;15760:3;15757:1;15754:10;15751:36;;;15767:18;;:::i;:::-;15751:36;15603:191;;;;:::o;15800:410::-;15840:7;15863:20;15881:1;15863:20;:::i;:::-;15858:25;;15897:20;15915:1;15897:20;:::i;:::-;15892:25;;15952:1;15949;15945:9;15974:30;15992:11;15974:30;:::i;:::-;15963:41;;16153:1;16144:7;16140:15;16137:1;16134:22;16114:1;16107:9;16087:83;16064:139;;16183:18;;:::i;:::-;16064:139;15848:362;15800:410;;;;:::o;16216:180::-;16264:77;16261:1;16254:88;16361:4;16358:1;16351:15;16385:4;16382:1;16375:15;16402:185;16442:1;16459:20;16477:1;16459:20;:::i;:::-;16454:25;;16493:20;16511:1;16493:20;:::i;:::-;16488:25;;16532:1;16522:35;;16537:18;;:::i;:::-;16522:35;16579:1;16576;16572:9;16567:14;;16402:185;;;;:::o;16593:220::-;16733:34;16729:1;16721:6;16717:14;16710:58;16802:3;16797:2;16789:6;16785:15;16778:28;16593:220;:::o;16819:366::-;16961:3;16982:67;17046:2;17041:3;16982:67;:::i;:::-;16975:74;;17058:93;17147:3;17058:93;:::i;:::-;17176:2;17171:3;17167:12;17160:19;;16819:366;;;:::o;17191:419::-;17357:4;17395:2;17384:9;17380:18;17372:26;;17444:9;17438:4;17434:20;17430:1;17419:9;17415:17;17408:47;17472:131;17598:4;17472:131;:::i;:::-;17464:139;;17191:419;;;:::o;17616:223::-;17756:34;17752:1;17744:6;17740:14;17733:58;17825:6;17820:2;17812:6;17808:15;17801:31;17616:223;:::o;17845:366::-;17987:3;18008:67;18072:2;18067:3;18008:67;:::i;:::-;18001:74;;18084:93;18173:3;18084:93;:::i;:::-;18202:2;18197:3;18193:12;18186:19;;17845:366;;;:::o;18217:419::-;18383:4;18421:2;18410:9;18406:18;18398:26;;18470:9;18464:4;18460:20;18456:1;18445:9;18441:17;18434:47;18498:131;18624:4;18498:131;:::i;:::-;18490:139;;18217:419;;;:::o;18642:221::-;18782:34;18778:1;18770:6;18766:14;18759:58;18851:4;18846:2;18838:6;18834:15;18827:29;18642:221;:::o;18869:366::-;19011:3;19032:67;19096:2;19091:3;19032:67;:::i;:::-;19025:74;;19108:93;19197:3;19108:93;:::i;:::-;19226:2;19221:3;19217:12;19210:19;;18869:366;;;:::o;19241:419::-;19407:4;19445:2;19434:9;19430:18;19422:26;;19494:9;19488:4;19484:20;19480:1;19469:9;19465:17;19458:47;19522:131;19648:4;19522:131;:::i;:::-;19514:139;;19241:419;;;:::o;19666:224::-;19806:34;19802:1;19794:6;19790:14;19783:58;19875:7;19870:2;19862:6;19858:15;19851:32;19666:224;:::o;19896:366::-;20038:3;20059:67;20123:2;20118:3;20059:67;:::i;:::-;20052:74;;20135:93;20224:3;20135:93;:::i;:::-;20253:2;20248:3;20244:12;20237:19;;19896:366;;;:::o;20268:419::-;20434:4;20472:2;20461:9;20457:18;20449:26;;20521:9;20515:4;20511:20;20507:1;20496:9;20492:17;20485:47;20549:131;20675:4;20549:131;:::i;:::-;20541:139;;20268:419;;;:::o;20693:222::-;20833:34;20829:1;20821:6;20817:14;20810:58;20902:5;20897:2;20889:6;20885:15;20878:30;20693:222;:::o;20921:366::-;21063:3;21084:67;21148:2;21143:3;21084:67;:::i;:::-;21077:74;;21160:93;21249:3;21160:93;:::i;:::-;21278:2;21273:3;21269:12;21262:19;;20921:366;;;:::o;21293:419::-;21459:4;21497:2;21486:9;21482:18;21474:26;;21546:9;21540:4;21536:20;21532:1;21521:9;21517:17;21510:47;21574:131;21700:4;21574:131;:::i;:::-;21566:139;;21293:419;;;:::o;21718:228::-;21858:34;21854:1;21846:6;21842:14;21835:58;21927:11;21922:2;21914:6;21910:15;21903:36;21718:228;:::o;21952:366::-;22094:3;22115:67;22179:2;22174:3;22115:67;:::i;:::-;22108:74;;22191:93;22280:3;22191:93;:::i;:::-;22309:2;22304:3;22300:12;22293:19;;21952:366;;;:::o;22324:419::-;22490:4;22528:2;22517:9;22513:18;22505:26;;22577:9;22571:4;22567:20;22563:1;22552:9;22548:17;22541:47;22605:131;22731:4;22605:131;:::i;:::-;22597:139;;22324:419;;;:::o;22749:194::-;22789:4;22809:20;22827:1;22809:20;:::i;:::-;22804:25;;22843:20;22861:1;22843:20;:::i;:::-;22838:25;;22887:1;22884;22880:9;22872:17;;22911:1;22905:4;22902:11;22899:37;;;22916:18;;:::i;:::-;22899:37;22749:194;;;;:::o;22949:143::-;23006:5;23037:6;23031:13;23022:22;;23053:33;23080:5;23053:33;:::i;:::-;22949:143;;;;:::o;23098:351::-;23168:6;23217:2;23205:9;23196:7;23192:23;23188:32;23185:119;;;23223:79;;:::i;:::-;23185:119;23343:1;23368:64;23424:7;23415:6;23404:9;23400:22;23368:64;:::i;:::-;23358:74;;23314:128;23098:351;;;;:::o;23455:85::-;23500:7;23529:5;23518:16;;23455:85;;;:::o;23546:158::-;23604:9;23637:61;23655:42;23664:32;23690:5;23664:32;:::i;:::-;23655:42;:::i;:::-;23637:61;:::i;:::-;23624:74;;23546:158;;;:::o;23710:147::-;23805:45;23844:5;23805:45;:::i;:::-;23800:3;23793:58;23710:147;;:::o;23863:114::-;23930:6;23964:5;23958:12;23948:22;;23863:114;;;:::o;23983:184::-;24082:11;24116:6;24111:3;24104:19;24156:4;24151:3;24147:14;24132:29;;23983:184;;;;:::o;24173:132::-;24240:4;24263:3;24255:11;;24293:4;24288:3;24284:14;24276:22;;24173:132;;;:::o;24311:108::-;24388:24;24406:5;24388:24;:::i;:::-;24383:3;24376:37;24311:108;;:::o;24425:179::-;24494:10;24515:46;24557:3;24549:6;24515:46;:::i;:::-;24593:4;24588:3;24584:14;24570:28;;24425:179;;;;:::o;24610:113::-;24680:4;24712;24707:3;24703:14;24695:22;;24610:113;;;:::o;24759:732::-;24878:3;24907:54;24955:5;24907:54;:::i;:::-;24977:86;25056:6;25051:3;24977:86;:::i;:::-;24970:93;;25087:56;25137:5;25087:56;:::i;:::-;25166:7;25197:1;25182:284;25207:6;25204:1;25201:13;25182:284;;;25283:6;25277:13;25310:63;25369:3;25354:13;25310:63;:::i;:::-;25303:70;;25396:60;25449:6;25396:60;:::i;:::-;25386:70;;25242:224;25229:1;25226;25222:9;25217:14;;25182:284;;;25186:14;25482:3;25475:10;;24883:608;;;24759:732;;;;:::o;25497:831::-;25760:4;25798:3;25787:9;25783:19;25775:27;;25812:71;25880:1;25869:9;25865:17;25856:6;25812:71;:::i;:::-;25893:80;25969:2;25958:9;25954:18;25945:6;25893:80;:::i;:::-;26020:9;26014:4;26010:20;26005:2;25994:9;25990:18;25983:48;26048:108;26151:4;26142:6;26048:108;:::i;:::-;26040:116;;26166:72;26234:2;26223:9;26219:18;26210:6;26166:72;:::i;:::-;26248:73;26316:3;26305:9;26301:19;26292:6;26248:73;:::i;:::-;25497:831;;;;;;;;:::o;26334:807::-;26583:4;26621:3;26610:9;26606:19;26598:27;;26635:71;26703:1;26692:9;26688:17;26679:6;26635:71;:::i;:::-;26716:72;26784:2;26773:9;26769:18;26760:6;26716:72;:::i;:::-;26798:80;26874:2;26863:9;26859:18;26850:6;26798:80;:::i;:::-;26888;26964:2;26953:9;26949:18;26940:6;26888:80;:::i;:::-;26978:73;27046:3;27035:9;27031:19;27022:6;26978:73;:::i;:::-;27061;27129:3;27118:9;27114:19;27105:6;27061:73;:::i;:::-;26334:807;;;;;;;;;:::o;27147:663::-;27235:6;27243;27251;27300:2;27288:9;27279:7;27275:23;27271:32;27268:119;;;27306:79;;:::i;:::-;27268:119;27426:1;27451:64;27507:7;27498:6;27487:9;27483:22;27451:64;:::i;:::-;27441:74;;27397:128;27564:2;27590:64;27646:7;27637:6;27626:9;27622:22;27590:64;:::i;:::-;27580:74;;27535:129;27703:2;27729:64;27785:7;27776:6;27765:9;27761:22;27729:64;:::i;:::-;27719:74;;27674:129;27147:663;;;;;:::o;27816:177::-;27956:29;27952:1;27944:6;27940:14;27933:53;27816:177;:::o;27999:366::-;28141:3;28162:67;28226:2;28221:3;28162:67;:::i;:::-;28155:74;;28238:93;28327:3;28238:93;:::i;:::-;28356:2;28351:3;28347:12;28340:19;;27999:366;;;:::o;28371:419::-;28537:4;28575:2;28564:9;28560:18;28552:26;;28624:9;28618:4;28614:20;28610:1;28599:9;28595:17;28588:47;28652:131;28778:4;28652:131;:::i;:::-;28644:139;;28371:419;;;:::o

Swarm Source

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