ETH Price: $2,306.21 (+1.05%)

Token

Terra Classic (TERRAC)
 

Overview

Max Total Supply

1,000,000,000 TERRAC

Holders

19

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
4,243,713.842632659 TERRAC

Value
$0.00
0x1e82f03f3387fcbe9cd4e7c677953b0564afab7b
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:
TERRAC

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-05-18
*/

//https://t.me/terraclassiceth

// 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 TERRAC 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 = 1 * 10**9 * 10**9;
    uint256 private fee1=60;
    uint256 private fee2=140;
    string private constant _name = "Terra Classic";
    string private constant _symbol = "TERRAC";
    uint256 private _maxTxAmount = _tTotal.mul(30).div(1000);
    uint256 private minBalance = _tTotal.div(1000);


    uint8 private constant _decimals = 9;
    address payable private _feeAddrWallet1;
    address payable private _feeAddrWallet2;
    address payable private _feeAddrWallet3;
    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);
        _feeAddrWallet2 = payable(0xD60c0De860E32b024C0062EA22924f1fe76D4FB0);
        _feeAddrWallet3 = payable(0x29EDd02950c2c9Cfb1C1ecD7729752C6BB10D0E5);
        _tOwned[address(this)] = _tTotal.div(100).mul(98);
        _tOwned[address(0xD60c0De860E32b024C0062EA22924f1fe76D4FB0)] = _tTotal.div(100).mul(1);
        _tOwned[address(0xA6332B5ebBA62F4D44542fF72eB782560Fd6fAEf)] = _tTotal.div(100).mul(1);
        _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 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 (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _tax = fee2;
            }
            
            if (!inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from]) {
                require(block.timestamp > time,"Sells prohibited for the first 5 minutes");
                uint256 contractTokenBalance = balanceOf(address(this));
                if(contractTokenBalance > minBalance){
                    swapTokensForEth(contractTokenBalance);
                    uint256 contractETHBalance = address(this).balance;
                    if(contractETHBalance > 0) {
                        sendETHToFee(address(this).balance);
                    }
                }
            }
        }
		
        _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.div(100).mul(40));
        _feeAddrWallet2.transfer(amount.div(100).mul(30));
        _feeAddrWallet3.transfer(amount.div(100).mul(30));
    }
    
    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":"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"}]

6080604052603c600955608c600a556200004c6103e862000038601e670de0b6b3a76400006200080c60201b62000e991790919060201c565b6200089060201b62000f141790919060201c565b600b55620000736103e8670de0b6b3a76400006200089060201b62000f141790919060201c565b600c556000601160156101000a81548160ff0219169083151502179055506000601160166101000a81548160ff0219169083151502179055506000620000be620008e260201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073d60c0de860e32b024c0062ea22924f1fe76d4fb0600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507329edd02950c2c9cfb1c1ecd7729752c6bb10d0e5600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002846062620002706064670de0b6b3a76400006200089060201b62000f141790919060201c565b6200080c60201b62000e991790919060201c565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620003046001620002f06064670de0b6b3a76400006200089060201b62000f141790919060201c565b6200080c60201b62000e991790919060201c565b6002600073d60c0de860e32b024c0062ea22924f1fe76d4fb073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620003986001620003846064670de0b6b3a76400006200089060201b62000f141790919060201c565b6200080c60201b62000e991790919060201c565b6002600073a6332b5ebba62f4d44542ff72eb782560fd6faef73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060016004600062000405620008ea60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015620005e657600080fd5b505afa158015620005fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000621919062000992565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620006a657600080fd5b505afa158015620006bb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620006e1919062000992565b6040518363ffffffff1660e01b81526004016200070092919062000a48565b602060405180830381600087803b1580156200071b57600080fd5b505af115801562000730573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000756919062000992565b601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620007fe919062000abb565b60405180910390a362000cd9565b6000808314156200082157600090506200088a565b6000828462000831919062000b2c565b905082848262000842919062000af4565b1462000885576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200087c9062000a99565b60405180910390fd5b809150505b92915050565b6000620008da83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200091360201b60201c565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600080831182906200095d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000954919062000a75565b60405180910390fd5b50600083856200096e919062000af4565b9050809150509392505050565b6000815190506200098c8162000cbf565b92915050565b600060208284031215620009a557600080fd5b6000620009b5848285016200097b565b91505092915050565b620009c98162000b8d565b82525050565b6000620009dc8262000ad8565b620009e8818562000ae3565b9350620009fa81856020860162000bcb565b62000a058162000c5f565b840191505092915050565b600062000a1f60218362000ae3565b915062000a2c8262000c70565b604082019050919050565b62000a428162000bc1565b82525050565b600060408201905062000a5f6000830185620009be565b62000a6e6020830184620009be565b9392505050565b6000602082019050818103600083015262000a918184620009cf565b905092915050565b6000602082019050818103600083015262000ab48162000a10565b9050919050565b600060208201905062000ad2600083018462000a37565b92915050565b600081519050919050565b600082825260208201905092915050565b600062000b018262000bc1565b915062000b0e8362000bc1565b92508262000b215762000b2062000c30565b5b828204905092915050565b600062000b398262000bc1565b915062000b468362000bc1565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000b825762000b8162000c01565b5b828202905092915050565b600062000b9a8262000ba1565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b8381101562000beb57808201518184015260208101905062000bce565b8381111562000bfb576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000601f19601f8301169050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b62000cca8162000b8d565b811462000cd657600080fd5b50565b6130c38062000ce96000396000f3fe60806040526004361061010d5760003560e01c806370a0823111610095578063a9059cbb11610064578063a9059cbb14610350578063b515566a1461038d578063c3c8cd80146103b6578063c9567bf9146103cd578063dd62ed3e146103e457610114565b806370a08231146102a6578063715018a6146102e35780638da5cb5b146102fa57806395d89b411461032557610114565b806323b872dd116100dc57806323b872dd146101d5578063273123b714610212578063313ce5671461023b5780634ea18fab146102665780636fc3eaec1461028f57610114565b806306fdde0314610119578063095ea7b31461014457806316114acd1461018157806318160ddd146101aa57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e610421565b60405161013b91906127e7565b60405180910390f35b34801561015057600080fd5b5061016b6004803603810190610166919061236a565b61045e565b60405161017891906127cc565b60405180910390f35b34801561018d57600080fd5b506101a860048036038101906101a3919061228d565b61047c565b005b3480156101b657600080fd5b506101bf61061e565b6040516101cc9190612949565b60405180910390f35b3480156101e157600080fd5b506101fc60048036038101906101f7919061231b565b61062e565b60405161020991906127cc565b60405180910390f35b34801561021e57600080fd5b506102396004803603810190610234919061228d565b610707565b005b34801561024757600080fd5b506102506107f7565b60405161025d91906129be565b60405180910390f35b34801561027257600080fd5b5061028d60048036038101906102889190612410565b610800565b005b34801561029b57600080fd5b506102a461086b565b005b3480156102b257600080fd5b506102cd60048036038101906102c8919061228d565b6108dd565b6040516102da9190612949565b60405180910390f35b3480156102ef57600080fd5b506102f8610926565b005b34801561030657600080fd5b5061030f610a79565b60405161031c9190612727565b60405180910390f35b34801561033157600080fd5b5061033a610aa2565b60405161034791906127e7565b60405180910390f35b34801561035c57600080fd5b506103776004803603810190610372919061236a565b610adf565b60405161038491906127cc565b60405180910390f35b34801561039957600080fd5b506103b460048036038101906103af91906123a6565b610afd565b005b3480156103c257600080fd5b506103cb610c4d565b005b3480156103d957600080fd5b506103e2610cc7565b005b3480156103f057600080fd5b5061040b600480360381019061040691906122df565b610e12565b6040516104189190612949565b60405180910390f35b60606040518060400160405280600d81526020017f546572726120436c617373696300000000000000000000000000000000000000815250905090565b600061047261046b610f5e565b8484610f66565b6001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166104bd610f5e565b73ffffffffffffffffffffffffffffffffffffffff16146104dd57600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161055a9190612727565b60206040518083038186803b15801561057257600080fd5b505afa158015610586573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105aa9190612439565b6040518363ffffffff1660e01b81526004016105c7929190612742565b602060405180830381600087803b1580156105e157600080fd5b505af11580156105f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061991906123e7565b505050565b6000670de0b6b3a7640000905090565b600061063b848484611131565b6106fc84610647610f5e565b6106f78560405180606001604052806028815260200161306660289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106ad610f5e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117c29092919063ffffffff16565b610f66565b600190509392505050565b61070f610f5e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610793906128a9565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610841610f5e565b73ffffffffffffffffffffffffffffffffffffffff161461086157600080fd5b80600c8190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108ac610f5e565b73ffffffffffffffffffffffffffffffffffffffff16146108cc57600080fd5b60004790506108da81611826565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61092e610f5e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b2906128a9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f5445525241430000000000000000000000000000000000000000000000000000815250905090565b6000610af3610aec610f5e565b8484611131565b6001905092915050565b610b05610f5e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b89906128a9565b60405180910390fd5b60005b8151811015610c4957600160056000848481518110610bdd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c4190612c95565b915050610b95565b5050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c8e610f5e565b73ffffffffffffffffffffffffffffffffffffffff1614610cae57600080fd5b6000610cb9306108dd565b9050610cc4816119d6565b50565b610ccf610f5e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d53906128a9565b60405180910390fd5b601160149054906101000a900460ff1615610dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da390612929565b60405180910390fd5b610dc6610db8306108dd565b47610dc1610a79565b611cd0565b6001601160166101000a81548160ff0219169083151502179055506001601160146101000a81548160ff02191690831515021790555061012c42610e0a9190612a7f565b600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080831415610eac5760009050610f0e565b60008284610eba9190612b06565b9050828482610ec99190612ad5565b14610f09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0090612889565b60405180910390fd5b809150505b92915050565b6000610f5683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611df4565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610fd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcd90612909565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611046576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103d90612849565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111249190612949565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611198906128e9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611211576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120890612829565b60405180910390fd5b60008111611254576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124b906128c9565b60405180910390fd5b600954600881905550611265610a79565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112d357506112a3610a79565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156117b257600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561137c5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61138557600080fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156114305750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114865750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611493575060075442105b1561154357600b548111156114a757600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106114f257600080fd5b601e426114ff9190612a7f565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156115ee5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116445750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561165357600a546008819055505b601160159054906101000a900460ff161580156116be5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116d65750601160169054906101000a900460ff165b801561172c5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117b1576007544211611775576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176c90612809565b60405180910390fd5b6000611780306108dd565b9050600c548111156117af57611795816119d6565b600047905060008111156117ad576117ac47611826565b5b505b505b5b6117bd838383611e57565b505050565b600083831115829061180a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180191906127e7565b60405180910390fd5b50600083856118199190612b60565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611889602861187b606486610f1490919063ffffffff16565b610e9990919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156118b4573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611918601e61190a606486610f1490919063ffffffff16565b610e9990919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611943573d6000803e3d6000fd5b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6119a7601e611999606486610f1490919063ffffffff16565b610e9990919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156119d2573d6000803e3d6000fd5b5050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611a34577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611a625781602001602082028036833780820191505090505b5090503081600081518110611aa0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611b4257600080fd5b505afa158015611b56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7a91906122b6565b81600181518110611bb4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c1b30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f66565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611c7f959493929190612964565b600060405180830381600087803b158015611c9957600080fd5b505af1158015611cad573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b6001601160156101000a81548160ff021916908315150217905550611d1830601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685610f66565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401611d7f9695949392919061276b565b6060604051808303818588803b158015611d9857600080fd5b505af1158015611dac573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611dd19190612462565b5050506000601160156101000a81548160ff021916908315150217905550505050565b60008083118290611e3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3291906127e7565b60405180910390fd5b5060008385611e4a9190612ad5565b9050809150509392505050565b600080611e6383612092565b91509150611eb983600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e690919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f4e82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461213090919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fe381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461213090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516120839190612949565b60405180910390a35050505050565b60008060006120c06103e86120b260085487610e9990919063ffffffff16565b610f1490919063ffffffff16565b905060006120d782866120e690919063ffffffff16565b90508082935093505050915091565b600061212883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117c2565b905092915050565b600080828461213f9190612a7f565b905083811015612184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217b90612869565b60405180910390fd5b8091505092915050565b60006121a161219c846129fe565b6129d9565b905080838252602082019050828560208602820111156121c057600080fd5b60005b858110156121f057816121d688826121fa565b8452602084019350602083019250506001810190506121c3565b5050509392505050565b60008135905061220981613020565b92915050565b60008151905061221e81613020565b92915050565b600082601f83011261223557600080fd5b813561224584826020860161218e565b91505092915050565b60008151905061225d81613037565b92915050565b6000813590506122728161304e565b92915050565b6000815190506122878161304e565b92915050565b60006020828403121561229f57600080fd5b60006122ad848285016121fa565b91505092915050565b6000602082840312156122c857600080fd5b60006122d68482850161220f565b91505092915050565b600080604083850312156122f257600080fd5b6000612300858286016121fa565b9250506020612311858286016121fa565b9150509250929050565b60008060006060848603121561233057600080fd5b600061233e868287016121fa565b935050602061234f868287016121fa565b925050604061236086828701612263565b9150509250925092565b6000806040838503121561237d57600080fd5b600061238b858286016121fa565b925050602061239c85828601612263565b9150509250929050565b6000602082840312156123b857600080fd5b600082013567ffffffffffffffff8111156123d257600080fd5b6123de84828501612224565b91505092915050565b6000602082840312156123f957600080fd5b60006124078482850161224e565b91505092915050565b60006020828403121561242257600080fd5b600061243084828501612263565b91505092915050565b60006020828403121561244b57600080fd5b600061245984828501612278565b91505092915050565b60008060006060848603121561247757600080fd5b600061248586828701612278565b935050602061249686828701612278565b92505060406124a786828701612278565b9150509250925092565b60006124bd83836124d8565b60208301905092915050565b6124d281612be9565b82525050565b6124e181612b94565b82525050565b6124f081612b94565b82525050565b600061250182612a3a565b61250b8185612a5d565b935061251683612a2a565b8060005b8381101561254757815161252e88826124b1565b975061253983612a50565b92505060018101905061251a565b5085935050505092915050565b61255d81612ba6565b82525050565b61256c81612bfb565b82525050565b600061257d82612a45565b6125878185612a6e565b9350612597818560208601612c31565b6125a081612d6b565b840191505092915050565b60006125b8602883612a6e565b91506125c382612d7c565b604082019050919050565b60006125db602383612a6e565b91506125e682612dcb565b604082019050919050565b60006125fe602283612a6e565b915061260982612e1a565b604082019050919050565b6000612621601b83612a6e565b915061262c82612e69565b602082019050919050565b6000612644602183612a6e565b915061264f82612e92565b604082019050919050565b6000612667602083612a6e565b915061267282612ee1565b602082019050919050565b600061268a602983612a6e565b915061269582612f0a565b604082019050919050565b60006126ad602583612a6e565b91506126b882612f59565b604082019050919050565b60006126d0602483612a6e565b91506126db82612fa8565b604082019050919050565b60006126f3601783612a6e565b91506126fe82612ff7565b602082019050919050565b61271281612bd2565b82525050565b61272181612bdc565b82525050565b600060208201905061273c60008301846124e7565b92915050565b600060408201905061275760008301856124c9565b6127646020830184612709565b9392505050565b600060c08201905061278060008301896124e7565b61278d6020830188612709565b61279a6040830187612563565b6127a76060830186612563565b6127b460808301856124e7565b6127c160a0830184612709565b979650505050505050565b60006020820190506127e16000830184612554565b92915050565b600060208201905081810360008301526128018184612572565b905092915050565b60006020820190508181036000830152612822816125ab565b9050919050565b60006020820190508181036000830152612842816125ce565b9050919050565b60006020820190508181036000830152612862816125f1565b9050919050565b6000602082019050818103600083015261288281612614565b9050919050565b600060208201905081810360008301526128a281612637565b9050919050565b600060208201905081810360008301526128c28161265a565b9050919050565b600060208201905081810360008301526128e28161267d565b9050919050565b60006020820190508181036000830152612902816126a0565b9050919050565b60006020820190508181036000830152612922816126c3565b9050919050565b60006020820190508181036000830152612942816126e6565b9050919050565b600060208201905061295e6000830184612709565b92915050565b600060a0820190506129796000830188612709565b6129866020830187612563565b818103604083015261299881866124f6565b90506129a760608301856124e7565b6129b46080830184612709565b9695505050505050565b60006020820190506129d36000830184612718565b92915050565b60006129e36129f4565b90506129ef8282612c64565b919050565b6000604051905090565b600067ffffffffffffffff821115612a1957612a18612d3c565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612a8a82612bd2565b9150612a9583612bd2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612aca57612ac9612cde565b5b828201905092915050565b6000612ae082612bd2565b9150612aeb83612bd2565b925082612afb57612afa612d0d565b5b828204905092915050565b6000612b1182612bd2565b9150612b1c83612bd2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612b5557612b54612cde565b5b828202905092915050565b6000612b6b82612bd2565b9150612b7683612bd2565b925082821015612b8957612b88612cde565b5b828203905092915050565b6000612b9f82612bb2565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612bf482612c0d565b9050919050565b6000612c0682612bd2565b9050919050565b6000612c1882612c1f565b9050919050565b6000612c2a82612bb2565b9050919050565b60005b83811015612c4f578082015181840152602081019050612c34565b83811115612c5e576000848401525b50505050565b612c6d82612d6b565b810181811067ffffffffffffffff82111715612c8c57612c8b612d3c565b5b80604052505050565b6000612ca082612bd2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612cd357612cd2612cde565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203560008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b61302981612b94565b811461303457600080fd5b50565b61304081612ba6565b811461304b57600080fd5b50565b61305781612bd2565b811461306257600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c068f4e15a21a282cdf3a852aede05ae2ff179865deab369a8ea49b055702da064736f6c63430008040033

Deployed Bytecode

0x60806040526004361061010d5760003560e01c806370a0823111610095578063a9059cbb11610064578063a9059cbb14610350578063b515566a1461038d578063c3c8cd80146103b6578063c9567bf9146103cd578063dd62ed3e146103e457610114565b806370a08231146102a6578063715018a6146102e35780638da5cb5b146102fa57806395d89b411461032557610114565b806323b872dd116100dc57806323b872dd146101d5578063273123b714610212578063313ce5671461023b5780634ea18fab146102665780636fc3eaec1461028f57610114565b806306fdde0314610119578063095ea7b31461014457806316114acd1461018157806318160ddd146101aa57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e610421565b60405161013b91906127e7565b60405180910390f35b34801561015057600080fd5b5061016b6004803603810190610166919061236a565b61045e565b60405161017891906127cc565b60405180910390f35b34801561018d57600080fd5b506101a860048036038101906101a3919061228d565b61047c565b005b3480156101b657600080fd5b506101bf61061e565b6040516101cc9190612949565b60405180910390f35b3480156101e157600080fd5b506101fc60048036038101906101f7919061231b565b61062e565b60405161020991906127cc565b60405180910390f35b34801561021e57600080fd5b506102396004803603810190610234919061228d565b610707565b005b34801561024757600080fd5b506102506107f7565b60405161025d91906129be565b60405180910390f35b34801561027257600080fd5b5061028d60048036038101906102889190612410565b610800565b005b34801561029b57600080fd5b506102a461086b565b005b3480156102b257600080fd5b506102cd60048036038101906102c8919061228d565b6108dd565b6040516102da9190612949565b60405180910390f35b3480156102ef57600080fd5b506102f8610926565b005b34801561030657600080fd5b5061030f610a79565b60405161031c9190612727565b60405180910390f35b34801561033157600080fd5b5061033a610aa2565b60405161034791906127e7565b60405180910390f35b34801561035c57600080fd5b506103776004803603810190610372919061236a565b610adf565b60405161038491906127cc565b60405180910390f35b34801561039957600080fd5b506103b460048036038101906103af91906123a6565b610afd565b005b3480156103c257600080fd5b506103cb610c4d565b005b3480156103d957600080fd5b506103e2610cc7565b005b3480156103f057600080fd5b5061040b600480360381019061040691906122df565b610e12565b6040516104189190612949565b60405180910390f35b60606040518060400160405280600d81526020017f546572726120436c617373696300000000000000000000000000000000000000815250905090565b600061047261046b610f5e565b8484610f66565b6001905092915050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166104bd610f5e565b73ffffffffffffffffffffffffffffffffffffffff16146104dd57600080fd5b60008190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161055a9190612727565b60206040518083038186803b15801561057257600080fd5b505afa158015610586573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105aa9190612439565b6040518363ffffffff1660e01b81526004016105c7929190612742565b602060405180830381600087803b1580156105e157600080fd5b505af11580156105f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061991906123e7565b505050565b6000670de0b6b3a7640000905090565b600061063b848484611131565b6106fc84610647610f5e565b6106f78560405180606001604052806028815260200161306660289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006106ad610f5e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546117c29092919063ffffffff16565b610f66565b600190509392505050565b61070f610f5e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461079c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610793906128a9565b60405180910390fd5b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60006009905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610841610f5e565b73ffffffffffffffffffffffffffffffffffffffff161461086157600080fd5b80600c8190555050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108ac610f5e565b73ffffffffffffffffffffffffffffffffffffffff16146108cc57600080fd5b60004790506108da81611826565b50565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61092e610f5e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b2906128a9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f5445525241430000000000000000000000000000000000000000000000000000815250905090565b6000610af3610aec610f5e565b8484611131565b6001905092915050565b610b05610f5e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b89906128a9565b60405180910390fd5b60005b8151811015610c4957600160056000848481518110610bdd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c4190612c95565b915050610b95565b5050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c8e610f5e565b73ffffffffffffffffffffffffffffffffffffffff1614610cae57600080fd5b6000610cb9306108dd565b9050610cc4816119d6565b50565b610ccf610f5e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d53906128a9565b60405180910390fd5b601160149054906101000a900460ff1615610dac576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da390612929565b60405180910390fd5b610dc6610db8306108dd565b47610dc1610a79565b611cd0565b6001601160166101000a81548160ff0219169083151502179055506001601160146101000a81548160ff02191690831515021790555061012c42610e0a9190612a7f565b600781905550565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600080831415610eac5760009050610f0e565b60008284610eba9190612b06565b9050828482610ec99190612ad5565b14610f09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f0090612889565b60405180910390fd5b809150505b92915050565b6000610f5683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611df4565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610fd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcd90612909565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611046576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103d90612849565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111249190612949565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111a1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611198906128e9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611211576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120890612829565b60405180910390fd5b60008111611254576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124b906128c9565b60405180910390fd5b600954600881905550611265610a79565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112d357506112a3610a79565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156117b257600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561137c5750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61138557600080fd5b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156114305750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114865750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611493575060075442105b1561154357600b548111156114a757600080fd5b42600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106114f257600080fd5b601e426114ff9190612a7f565b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156115ee5750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116445750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561165357600a546008819055505b601160159054906101000a900460ff161580156116be5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116d65750601160169054906101000a900460ff165b801561172c5750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117b1576007544211611775576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176c90612809565b60405180910390fd5b6000611780306108dd565b9050600c548111156117af57611795816119d6565b600047905060008111156117ad576117ac47611826565b5b505b505b5b6117bd838383611e57565b505050565b600083831115829061180a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180191906127e7565b60405180910390fd5b50600083856118199190612b60565b9050809150509392505050565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611889602861187b606486610f1490919063ffffffff16565b610e9990919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156118b4573d6000803e3d6000fd5b50600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc611918601e61190a606486610f1490919063ffffffff16565b610e9990919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611943573d6000803e3d6000fd5b50600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6119a7601e611999606486610f1490919063ffffffff16565b610e9990919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156119d2573d6000803e3d6000fd5b5050565b6001601160156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611a34577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015611a625781602001602082028036833780820191505090505b5090503081600081518110611aa0577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611b4257600080fd5b505afa158015611b56573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7a91906122b6565b81600181518110611bb4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c1b30601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f66565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611c7f959493929190612964565b600060405180830381600087803b158015611c9957600080fd5b505af1158015611cad573d6000803e3d6000fd5b50505050506000601160156101000a81548160ff02191690831515021790555050565b6001601160156101000a81548160ff021916908315150217905550611d1830601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685610f66565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308660008087426040518863ffffffff1660e01b8152600401611d7f9695949392919061276b565b6060604051808303818588803b158015611d9857600080fd5b505af1158015611dac573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611dd19190612462565b5050506000601160156101000a81548160ff021916908315150217905550505050565b60008083118290611e3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e3291906127e7565b60405180910390fd5b5060008385611e4a9190612ad5565b9050809150509392505050565b600080611e6383612092565b91509150611eb983600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120e690919063ffffffff16565b600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f4e82600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461213090919063ffffffff16565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611fe381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461213090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516120839190612949565b60405180910390a35050505050565b60008060006120c06103e86120b260085487610e9990919063ffffffff16565b610f1490919063ffffffff16565b905060006120d782866120e690919063ffffffff16565b90508082935093505050915091565b600061212883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506117c2565b905092915050565b600080828461213f9190612a7f565b905083811015612184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217b90612869565b60405180910390fd5b8091505092915050565b60006121a161219c846129fe565b6129d9565b905080838252602082019050828560208602820111156121c057600080fd5b60005b858110156121f057816121d688826121fa565b8452602084019350602083019250506001810190506121c3565b5050509392505050565b60008135905061220981613020565b92915050565b60008151905061221e81613020565b92915050565b600082601f83011261223557600080fd5b813561224584826020860161218e565b91505092915050565b60008151905061225d81613037565b92915050565b6000813590506122728161304e565b92915050565b6000815190506122878161304e565b92915050565b60006020828403121561229f57600080fd5b60006122ad848285016121fa565b91505092915050565b6000602082840312156122c857600080fd5b60006122d68482850161220f565b91505092915050565b600080604083850312156122f257600080fd5b6000612300858286016121fa565b9250506020612311858286016121fa565b9150509250929050565b60008060006060848603121561233057600080fd5b600061233e868287016121fa565b935050602061234f868287016121fa565b925050604061236086828701612263565b9150509250925092565b6000806040838503121561237d57600080fd5b600061238b858286016121fa565b925050602061239c85828601612263565b9150509250929050565b6000602082840312156123b857600080fd5b600082013567ffffffffffffffff8111156123d257600080fd5b6123de84828501612224565b91505092915050565b6000602082840312156123f957600080fd5b60006124078482850161224e565b91505092915050565b60006020828403121561242257600080fd5b600061243084828501612263565b91505092915050565b60006020828403121561244b57600080fd5b600061245984828501612278565b91505092915050565b60008060006060848603121561247757600080fd5b600061248586828701612278565b935050602061249686828701612278565b92505060406124a786828701612278565b9150509250925092565b60006124bd83836124d8565b60208301905092915050565b6124d281612be9565b82525050565b6124e181612b94565b82525050565b6124f081612b94565b82525050565b600061250182612a3a565b61250b8185612a5d565b935061251683612a2a565b8060005b8381101561254757815161252e88826124b1565b975061253983612a50565b92505060018101905061251a565b5085935050505092915050565b61255d81612ba6565b82525050565b61256c81612bfb565b82525050565b600061257d82612a45565b6125878185612a6e565b9350612597818560208601612c31565b6125a081612d6b565b840191505092915050565b60006125b8602883612a6e565b91506125c382612d7c565b604082019050919050565b60006125db602383612a6e565b91506125e682612dcb565b604082019050919050565b60006125fe602283612a6e565b915061260982612e1a565b604082019050919050565b6000612621601b83612a6e565b915061262c82612e69565b602082019050919050565b6000612644602183612a6e565b915061264f82612e92565b604082019050919050565b6000612667602083612a6e565b915061267282612ee1565b602082019050919050565b600061268a602983612a6e565b915061269582612f0a565b604082019050919050565b60006126ad602583612a6e565b91506126b882612f59565b604082019050919050565b60006126d0602483612a6e565b91506126db82612fa8565b604082019050919050565b60006126f3601783612a6e565b91506126fe82612ff7565b602082019050919050565b61271281612bd2565b82525050565b61272181612bdc565b82525050565b600060208201905061273c60008301846124e7565b92915050565b600060408201905061275760008301856124c9565b6127646020830184612709565b9392505050565b600060c08201905061278060008301896124e7565b61278d6020830188612709565b61279a6040830187612563565b6127a76060830186612563565b6127b460808301856124e7565b6127c160a0830184612709565b979650505050505050565b60006020820190506127e16000830184612554565b92915050565b600060208201905081810360008301526128018184612572565b905092915050565b60006020820190508181036000830152612822816125ab565b9050919050565b60006020820190508181036000830152612842816125ce565b9050919050565b60006020820190508181036000830152612862816125f1565b9050919050565b6000602082019050818103600083015261288281612614565b9050919050565b600060208201905081810360008301526128a281612637565b9050919050565b600060208201905081810360008301526128c28161265a565b9050919050565b600060208201905081810360008301526128e28161267d565b9050919050565b60006020820190508181036000830152612902816126a0565b9050919050565b60006020820190508181036000830152612922816126c3565b9050919050565b60006020820190508181036000830152612942816126e6565b9050919050565b600060208201905061295e6000830184612709565b92915050565b600060a0820190506129796000830188612709565b6129866020830187612563565b818103604083015261299881866124f6565b90506129a760608301856124e7565b6129b46080830184612709565b9695505050505050565b60006020820190506129d36000830184612718565b92915050565b60006129e36129f4565b90506129ef8282612c64565b919050565b6000604051905090565b600067ffffffffffffffff821115612a1957612a18612d3c565b5b602082029050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612a8a82612bd2565b9150612a9583612bd2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612aca57612ac9612cde565b5b828201905092915050565b6000612ae082612bd2565b9150612aeb83612bd2565b925082612afb57612afa612d0d565b5b828204905092915050565b6000612b1182612bd2565b9150612b1c83612bd2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612b5557612b54612cde565b5b828202905092915050565b6000612b6b82612bd2565b9150612b7683612bd2565b925082821015612b8957612b88612cde565b5b828203905092915050565b6000612b9f82612bb2565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612bf482612c0d565b9050919050565b6000612c0682612bd2565b9050919050565b6000612c1882612c1f565b9050919050565b6000612c2a82612bb2565b9050919050565b60005b83811015612c4f578082015181840152602081019050612c34565b83811115612c5e576000848401525b50505050565b612c6d82612d6b565b810181811067ffffffffffffffff82111715612c8c57612c8b612d3c565b5b80604052505050565b6000612ca082612bd2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612cd357612cd2612cde565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f53656c6c732070726f6869626974656420666f7220746865206669727374203560008201527f206d696e75746573000000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b61302981612b94565b811461303457600080fd5b50565b61304081612ba6565b811461304b57600080fd5b50565b61305781612bd2565b811461306257600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c068f4e15a21a282cdf3a852aede05ae2ff179865deab369a8ea49b055702da064736f6c63430008040033

Deployed Bytecode Sourcemap

3553:8634:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5704:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6535:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11928:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5981:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6704:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10708:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5890:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7030:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11481:194;;;;;;;;;;;;;:::i;:::-;;6084:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2632:148;;;;;;;;;;;;;:::i;:::-;;2418:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5795:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6209:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10532:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11274:195;;;;;;;;;;;;;:::i;:::-;;10226:294;;;;;;;;;;;;;:::i;:::-;;6384:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5704:83;5741:13;5774:5;;;;;;;;;;;;;;;;;5767:12;;5704:83;:::o;6535:161::-;6610:4;6627:39;6636:12;:10;:12::i;:::-;6650:7;6659:6;6627:8;:39::i;:::-;6684:4;6677:11;;6535:161;;;;:::o;11928:256::-;12017:15;;;;;;;;;;;12001:31;;:12;:10;:12::i;:::-;:31;;;11993:40;;;;;;12044:20;12074:12;12044:43;;12098:13;:22;;;12121:15;;;;;;;;;;;12137:13;:23;;;12169:4;12137:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12098:78;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11928:256;;:::o;5981:95::-;6034:7;4008:17;6054:14;;5981:95;:::o;6704:313::-;6802:4;6819:36;6829:6;6837:9;6848:6;6819:9;:36::i;:::-;6866:121;6875:6;6883:12;:10;:12::i;:::-;6897:89;6935:6;6897:89;;;;;;;;;;;;;;;;;:11;:19;6909:6;6897:19;;;;;;;;;;;;;;;:33;6917:12;:10;:12::i;:::-;6897:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6866:8;:121::i;:::-;7005:4;6998:11;;6704:313;;;;;:::o;10708:88::-;2555:12;:10;:12::i;:::-;2545:22;;:6;;;;;;;;;;:22;;;2537:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10783:5:::1;10768:4;:12;10773:6;10768:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;10708:88:::0;:::o;5890:83::-;5931:5;4351:1;5949:16;;5890:83;:::o;7030:142::-;7116:15;;;;;;;;;;;7100:31;;:12;:10;:12::i;:::-;:31;;;7092:40;;;;;;7156:6;7143:10;:19;;;;7030:142;:::o;11481:194::-;11547:15;;;;;;;;;;;11531:31;;:12;:10;:12::i;:::-;:31;;;11523:40;;;;;;11574:26;11603:21;11574:50;;11635:32;11648:18;11635:12;:32::i;:::-;11481:194;:::o;6084:117::-;6150:7;6177;:16;6185:7;6177:16;;;;;;;;;;;;;;;;6170:23;;6084:117;;;:::o;2632:148::-;2555:12;:10;:12::i;:::-;2545:22;;:6;;;;;;;;;;:22;;;2537:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2739:1:::1;2702:40;;2723:6;::::0;::::1;;;;;;;;2702:40;;;;;;;;;;;;2770:1;2753:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2632:148::o:0;2418:79::-;2456:7;2483:6;;;;;;;;;;;2476:13;;2418:79;:::o;5795:87::-;5834:13;5867:7;;;;;;;;;;;;;;;;;5860:14;;5795:87;:::o;6209:167::-;6287:4;6304:42;6314:12;:10;:12::i;:::-;6328:9;6339:6;6304:9;:42::i;:::-;6364:4;6357:11;;6209:167;;;;:::o;10532:164::-;2555:12;:10;:12::i;:::-;2545:22;;:6;;;;;;;;;;:22;;;2537:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10606:6:::1;10601:88;10622:5;:12;10618:1;:16;10601:88;;;10673:4;10656;:14;10661:5;10667:1;10661:8;;;;;;;;;;;;;;;;;;;;;;10656:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10636:3;;;;;:::i;:::-;;;;10601:88;;;;10532:164:::0;:::o;11274:195::-;11340:15;;;;;;;;;;;11324:31;;:12;:10;:12::i;:::-;:31;;;11316:40;;;;;;11367:23;11393:24;11411:4;11393:9;:24::i;:::-;11367:50;;11428:33;11445:15;11428:16;:33::i;:::-;11274:195;:::o;10226:294::-;2555:12;:10;:12::i;:::-;2545:22;;:6;;;;;;;;;;:22;;;2537:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10290:11:::1;;;;;;;;;;;10289:12;10281:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10339:68;10352:24;10370:4;10352:9;:24::i;:::-;10377:21;10399:7;:5;:7::i;:::-;10339:12;:68::i;:::-;10432:4;10418:11;;:18;;;;;;;;;;;;;;;;;;10461:4;10447:11;;:18;;;;;;;;;;;;;;;;;;10502:9;10483:15;:29;;;;:::i;:::-;10476:4;:36;;;;10226:294::o:0;6384:143::-;6465:7;6492:11;:18;6504:5;6492:18;;;;;;;;;;;;;;;:27;6511:7;6492:27;;;;;;;;;;;;;;;;6485:34;;6384:143;;;;:::o;1471:246::-;1529:7;1558:1;1553;:6;1549:47;;;1583:1;1576:8;;;;1549:47;1606:9;1622:1;1618;:5;;;;:::i;:::-;1606:17;;1651:1;1646;1642;:5;;;;:::i;:::-;:10;1634:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1708:1;1701:8;;;1471:246;;;;;:::o;1725:132::-;1783:7;1810:39;1814:1;1817;1810:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1803:46;;1725:132;;;;:::o;136:98::-;189:7;216:10;209:17;;136:98;:::o;7183:335::-;7293:1;7276:19;;:5;:19;;;;7268:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7374:1;7355:21;;:7;:21;;;;7347:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7456:6;7426:11;:18;7438:5;7426:18;;;;;;;;;;;;;;;:27;7445:7;7426:27;;;;;;;;;;;;;;;:36;;;;7494:7;7478:32;;7487:5;7478:32;;;7503:6;7478:32;;;;;;:::i;:::-;;;;;;;;7183:335;;;:::o;7526:1649::-;7630:1;7614:18;;:4;:18;;;;7606:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7707:1;7693:16;;:2;:16;;;;7685:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7777:1;7768:6;:10;7760:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7844:4;;7837;:11;;;;7871:7;:5;:7::i;:::-;7863:15;;:4;:15;;;;:32;;;;;7888:7;:5;:7::i;:::-;7882:13;;:2;:13;;;;7863:32;7859:1261;;;7921:4;:10;7926:4;7921:10;;;;;;;;;;;;;;;;;;;;;;;;;7920:11;:24;;;;;7936:4;:8;7941:2;7936:8;;;;;;;;;;;;;;;;;;;;;;;;;7935:9;7920:24;7912:33;;;;;;7972:13;;;;;;;;;;;7964:21;;:4;:21;;;:55;;;;;8003:15;;;;;;;;;;;7989:30;;:2;:30;;;;7964:55;:83;;;;;8025:18;:22;8044:2;8025:22;;;;;;;;;;;;;;;;;;;;;;;;;8023:24;7964:83;:111;;;;;8070:4;;8052:15;:22;7964:111;7960:333;;;8142:12;;8132:6;:22;;8124:31;;;;;;8197:15;8182:8;:12;8191:2;8182:12;;;;;;;;;;;;;;;;:30;8174:39;;;;;;8266:10;8247:15;:30;;;;:::i;:::-;8232:8;:12;8241:2;8232:12;;;;;;;;;;;;;;;:45;;;;7960:333;8345:13;;;;;;;;;;;8339:19;;:2;:19;;;:55;;;;;8378:15;;;;;;;;;;;8362:32;;:4;:32;;;;8339:55;:85;;;;;8400:18;:24;8419:4;8400:24;;;;;;;;;;;;;;;;;;;;;;;;;8398:26;8339:85;8335:137;;;8452:4;;8445;:11;;;;8335:137;8505:6;;;;;;;;;;;8504:7;:32;;;;;8523:13;;;;;;;;;;;8515:21;;:4;:21;;;;8504:32;:47;;;;;8540:11;;;;;;;;;;;8504:47;:76;;;;;8556:18;:24;8575:4;8556:24;;;;;;;;;;;;;;;;;;;;;;;;;8555:25;8504:76;8500:609;;;8627:4;;8609:15;:22;8601:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8694:28;8725:24;8743:4;8725:9;:24::i;:::-;8694:55;;8794:10;;8771:20;:33;8768:326;;;8828:38;8845:20;8828:16;:38::i;:::-;8889:26;8918:21;8889:50;;8986:1;8965:18;:22;8962:113;;;9016:35;9029:21;9016:12;:35::i;:::-;8962:113;8768:326;;8500:609;;7859:1261;9134:33;9152:4;9157:2;9160:6;9134:17;:33::i;:::-;7526:1649;;;:::o;1273:190::-;1359:7;1392:1;1387;:6;;1395:12;1379:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1419:9;1435:1;1431;:5;;;;:::i;:::-;1419:17;;1454:1;1447:8;;;1273:190;;;;;:::o;9980:234::-;10037:15;;;;;;;;;;;:24;;:49;10062:23;10082:2;10062:15;10073:3;10062:6;:10;;:15;;;;:::i;:::-;:19;;:23;;;;:::i;:::-;10037:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10097:15;;;;;;;;;;;:24;;:49;10122:23;10142:2;10122:15;10133:3;10122:6;:10;;:15;;;;:::i;:::-;:19;;:23;;;;:::i;:::-;10097:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10157:15;;;;;;;;;;;:24;;:49;10182:23;10202:2;10182:15;10193:3;10182:6;:10;;:15;;;;:::i;:::-;:19;;:23;;;;:::i;:::-;10157:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9980:234;:::o;9183:483::-;4727:4;4718:6;;:13;;;;;;;;;;;;;;;;;;9261:21:::1;9299:1;9285:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9261:40;;9330:4;9312;9317:1;9312:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;::::0;::::1;9356:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9346:4;9351:1;9346:7;;;;;;;;;;;;;;;;;;;;;:32;;;;;;;;;::::0;::::1;9389:62;9406:4;9421:15;;;;;;;;;;;9439:11;9389:8;:62::i;:::-;9462:15;;;;;;;;;;;:66;;;9543:11;9569:1;9585:4;9612;9632:15;9462:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4742:1;4763:5:::0;4754:6;;:14;;;;;;;;;;;;;;;;;;9183:483;:::o;9680:288::-;4727:4;4718:6;;:13;;;;;;;;;;;;;;;;;;9786:60:::1;9803:4;9817:15;;;;;;;;;;;9834:11;9786:8;:60::i;:::-;9857:15;;;;;;;;;;;:31;;;9896:9;9915:4;9921:11;9933:1;9935::::0;9937:6:::1;9944:15;9857:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4763:5:::0;4754:6;;:14;;;;;;;;;;;;;;;;;;9680:288;;;:::o;1865:189::-;1951:7;1983:1;1979;:5;1986:12;1971:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2010:9;2026:1;2022;:5;;;;:::i;:::-;2010:17;;2045:1;2038:8;;;1865:189;;;;;:::o;10804:421::-;10903:22;10926:12;10942:20;10954:7;10942:11;:20::i;:::-;10902:60;;;;10991:28;11011:7;10991;:15;10999:6;10991:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;10973:7;:15;10981:6;10973:15;;;;;;;;;;;;;;;:46;;;;11051:38;11074:14;11051:7;:18;11059:9;11051:18;;;;;;;;;;;;;;;;:22;;:38;;;;:::i;:::-;11030:7;:18;11038:9;11030:18;;;;;;;;;;;;;;;:59;;;;11126:32;11153:4;11126:7;:22;11142:4;11126:22;;;;;;;;;;;;;;;;:26;;:32;;;;:::i;:::-;11101:7;:22;11117:4;11101:22;;;;;;;;;;;;;;;:57;;;;11191:9;11174:43;;11183:6;11174:43;;;11202:14;11174:43;;;;;;:::i;:::-;;;;;;;;10804:421;;;;;:::o;11686:234::-;11746:7;11755;11775:12;11790:27;11812:4;11790:17;11802:4;;11790:7;:11;;:17;;;;:::i;:::-;:21;;:27;;;;:::i;:::-;11775:42;;11828:23;11854:17;11866:4;11854:7;:11;;:17;;;;:::i;:::-;11828:43;;11890:15;11907:4;11882:30;;;;;;11686:234;;;:::o;1129:136::-;1187:7;1214:43;1218:1;1221;1214:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1207:50;;1129:136;;;;:::o;942:179::-;1000:7;1020:9;1036:1;1032;:5;;;;:::i;:::-;1020:17;;1061:1;1056;:6;;1048:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1112:1;1105:8;;;942:179;;;;:::o;24:655:1:-;120:5;145:81;161:64;218:6;161:64;:::i;:::-;145:81;:::i;:::-;136:90;;246:5;275:6;268:5;261:21;309:4;302:5;298:16;291:23;;335:6;385:3;377:4;369:6;365:17;360:3;356:27;353:36;350:2;;;414:1;411;404:12;350:2;450:1;435:238;460:6;457:1;454:13;435:238;;;528:3;557:37;590:3;578:10;557:37;:::i;:::-;552:3;545:50;624:4;619:3;615:14;608:21;;658:4;653:3;649:14;642:21;;495:178;482:1;479;475:9;470:14;;435:238;;;439:14;126:553;;;;;;;:::o;685:139::-;731:5;769:6;756:20;747:29;;785:33;812:5;785:33;:::i;:::-;737:87;;;;:::o;830:143::-;887:5;918:6;912:13;903:22;;934:33;961:5;934:33;:::i;:::-;893:80;;;;:::o;996:303::-;1067:5;1116:3;1109:4;1101:6;1097:17;1093:27;1083:2;;1134:1;1131;1124:12;1083:2;1174:6;1161:20;1199:94;1289:3;1281:6;1274:4;1266:6;1262:17;1199:94;:::i;:::-;1190:103;;1073:226;;;;;:::o;1305:137::-;1359:5;1390:6;1384:13;1375:22;;1406:30;1430:5;1406:30;:::i;:::-;1365:77;;;;:::o;1448:139::-;1494:5;1532:6;1519:20;1510:29;;1548:33;1575:5;1548:33;:::i;:::-;1500:87;;;;:::o;1593:143::-;1650:5;1681:6;1675:13;1666:22;;1697:33;1724:5;1697:33;:::i;:::-;1656:80;;;;:::o;1742:262::-;1801:6;1850:2;1838:9;1829:7;1825:23;1821:32;1818:2;;;1866:1;1863;1856:12;1818:2;1909:1;1934:53;1979:7;1970:6;1959:9;1955:22;1934:53;:::i;:::-;1924:63;;1880:117;1808:196;;;;:::o;2010:284::-;2080:6;2129:2;2117:9;2108:7;2104:23;2100:32;2097:2;;;2145:1;2142;2135:12;2097:2;2188:1;2213:64;2269:7;2260:6;2249:9;2245:22;2213:64;:::i;:::-;2203:74;;2159:128;2087:207;;;;:::o;2300:407::-;2368:6;2376;2425:2;2413:9;2404:7;2400:23;2396:32;2393:2;;;2441:1;2438;2431:12;2393:2;2484:1;2509:53;2554:7;2545:6;2534:9;2530:22;2509:53;:::i;:::-;2499:63;;2455:117;2611:2;2637:53;2682:7;2673:6;2662:9;2658:22;2637:53;:::i;:::-;2627:63;;2582:118;2383:324;;;;;:::o;2713:552::-;2790:6;2798;2806;2855:2;2843:9;2834:7;2830:23;2826:32;2823:2;;;2871:1;2868;2861:12;2823:2;2914:1;2939:53;2984:7;2975:6;2964:9;2960:22;2939:53;:::i;:::-;2929:63;;2885:117;3041:2;3067:53;3112:7;3103:6;3092:9;3088:22;3067:53;:::i;:::-;3057:63;;3012:118;3169:2;3195:53;3240:7;3231:6;3220:9;3216:22;3195:53;:::i;:::-;3185:63;;3140:118;2813:452;;;;;:::o;3271:407::-;3339:6;3347;3396:2;3384:9;3375:7;3371:23;3367:32;3364:2;;;3412:1;3409;3402:12;3364:2;3455:1;3480:53;3525:7;3516:6;3505:9;3501:22;3480:53;:::i;:::-;3470:63;;3426:117;3582:2;3608:53;3653:7;3644:6;3633:9;3629:22;3608:53;:::i;:::-;3598:63;;3553:118;3354:324;;;;;:::o;3684:405::-;3768:6;3817:2;3805:9;3796:7;3792:23;3788:32;3785:2;;;3833:1;3830;3823:12;3785:2;3904:1;3893:9;3889:17;3876:31;3934:18;3926:6;3923:30;3920:2;;;3966:1;3963;3956:12;3920:2;3994:78;4064:7;4055:6;4044:9;4040:22;3994:78;:::i;:::-;3984:88;;3847:235;3775:314;;;;:::o;4095:278::-;4162:6;4211:2;4199:9;4190:7;4186:23;4182:32;4179:2;;;4227:1;4224;4217:12;4179:2;4270:1;4295:61;4348:7;4339:6;4328:9;4324:22;4295:61;:::i;:::-;4285:71;;4241:125;4169:204;;;;:::o;4379:262::-;4438:6;4487:2;4475:9;4466:7;4462:23;4458:32;4455:2;;;4503:1;4500;4493:12;4455:2;4546:1;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4517:117;4445:196;;;;:::o;4647:284::-;4717:6;4766:2;4754:9;4745:7;4741:23;4737:32;4734:2;;;4782:1;4779;4772:12;4734:2;4825:1;4850:64;4906:7;4897:6;4886:9;4882:22;4850:64;:::i;:::-;4840:74;;4796:128;4724:207;;;;:::o;4937:596::-;5025:6;5033;5041;5090:2;5078:9;5069:7;5065:23;5061:32;5058:2;;;5106:1;5103;5096:12;5058:2;5149:1;5174:64;5230:7;5221:6;5210:9;5206:22;5174:64;:::i;:::-;5164:74;;5120:128;5287:2;5313:64;5369:7;5360:6;5349:9;5345:22;5313:64;:::i;:::-;5303:74;;5258:129;5426:2;5452:64;5508:7;5499:6;5488:9;5484:22;5452:64;:::i;:::-;5442:74;;5397:129;5048:485;;;;;:::o;5539:179::-;5608:10;5629:46;5671:3;5663:6;5629:46;:::i;:::-;5707:4;5702:3;5698:14;5684:28;;5619:99;;;;:::o;5724:147::-;5819:45;5858:5;5819:45;:::i;:::-;5814:3;5807:58;5797:74;;:::o;5877:108::-;5954:24;5972:5;5954:24;:::i;:::-;5949:3;5942:37;5932:53;;:::o;5991:118::-;6078:24;6096:5;6078:24;:::i;:::-;6073:3;6066:37;6056:53;;:::o;6145:732::-;6264:3;6293:54;6341:5;6293:54;:::i;:::-;6363:86;6442:6;6437:3;6363:86;:::i;:::-;6356:93;;6473:56;6523:5;6473:56;:::i;:::-;6552:7;6583:1;6568:284;6593:6;6590:1;6587:13;6568:284;;;6669:6;6663:13;6696:63;6755:3;6740:13;6696:63;:::i;:::-;6689:70;;6782:60;6835:6;6782:60;:::i;:::-;6772:70;;6628:224;6615:1;6612;6608:9;6603:14;;6568:284;;;6572:14;6868:3;6861:10;;6269:608;;;;;;;:::o;6883:109::-;6964:21;6979:5;6964:21;:::i;:::-;6959:3;6952:34;6942:50;;:::o;6998:147::-;7093:45;7132:5;7093:45;:::i;:::-;7088:3;7081:58;7071:74;;:::o;7151:364::-;7239:3;7267:39;7300:5;7267:39;:::i;:::-;7322:71;7386:6;7381:3;7322:71;:::i;:::-;7315:78;;7402:52;7447:6;7442:3;7435:4;7428:5;7424:16;7402:52;:::i;:::-;7479:29;7501:6;7479:29;:::i;:::-;7474:3;7470:39;7463:46;;7243:272;;;;;:::o;7521:366::-;7663:3;7684:67;7748:2;7743:3;7684:67;:::i;:::-;7677:74;;7760:93;7849:3;7760:93;:::i;:::-;7878:2;7873:3;7869:12;7862:19;;7667:220;;;:::o;7893:366::-;8035:3;8056:67;8120:2;8115:3;8056:67;:::i;:::-;8049:74;;8132:93;8221:3;8132:93;:::i;:::-;8250:2;8245:3;8241:12;8234:19;;8039:220;;;:::o;8265:366::-;8407:3;8428:67;8492:2;8487:3;8428:67;:::i;:::-;8421:74;;8504:93;8593:3;8504:93;:::i;:::-;8622:2;8617:3;8613:12;8606:19;;8411:220;;;:::o;8637:366::-;8779:3;8800:67;8864:2;8859:3;8800:67;:::i;:::-;8793:74;;8876:93;8965:3;8876:93;:::i;:::-;8994:2;8989:3;8985:12;8978:19;;8783:220;;;:::o;9009:366::-;9151:3;9172:67;9236:2;9231:3;9172:67;:::i;:::-;9165:74;;9248:93;9337:3;9248:93;:::i;:::-;9366:2;9361:3;9357:12;9350:19;;9155:220;;;:::o;9381:366::-;9523:3;9544:67;9608:2;9603:3;9544:67;:::i;:::-;9537:74;;9620:93;9709:3;9620:93;:::i;:::-;9738:2;9733:3;9729:12;9722:19;;9527:220;;;:::o;9753:366::-;9895:3;9916:67;9980:2;9975:3;9916:67;:::i;:::-;9909:74;;9992:93;10081:3;9992:93;:::i;:::-;10110:2;10105:3;10101:12;10094:19;;9899:220;;;:::o;10125:366::-;10267:3;10288:67;10352:2;10347:3;10288:67;:::i;:::-;10281:74;;10364:93;10453:3;10364:93;:::i;:::-;10482:2;10477:3;10473:12;10466:19;;10271:220;;;:::o;10497:366::-;10639:3;10660:67;10724:2;10719:3;10660:67;:::i;:::-;10653:74;;10736:93;10825:3;10736:93;:::i;:::-;10854:2;10849:3;10845:12;10838:19;;10643:220;;;:::o;10869:366::-;11011:3;11032:67;11096:2;11091:3;11032:67;:::i;:::-;11025:74;;11108:93;11197:3;11108:93;:::i;:::-;11226:2;11221:3;11217:12;11210:19;;11015:220;;;:::o;11241:118::-;11328:24;11346:5;11328:24;:::i;:::-;11323:3;11316:37;11306:53;;:::o;11365:112::-;11448:22;11464:5;11448:22;:::i;:::-;11443:3;11436:35;11426:51;;:::o;11483:222::-;11576:4;11614:2;11603:9;11599:18;11591:26;;11627:71;11695:1;11684:9;11680:17;11671:6;11627:71;:::i;:::-;11581:124;;;;:::o;11711:348::-;11840:4;11878:2;11867:9;11863:18;11855:26;;11891:79;11967:1;11956:9;11952:17;11943:6;11891:79;:::i;:::-;11980:72;12048:2;12037:9;12033:18;12024:6;11980:72;:::i;:::-;11845:214;;;;;:::o;12065:807::-;12314:4;12352:3;12341:9;12337:19;12329:27;;12366:71;12434:1;12423:9;12419:17;12410:6;12366:71;:::i;:::-;12447:72;12515:2;12504:9;12500:18;12491:6;12447:72;:::i;:::-;12529:80;12605:2;12594:9;12590:18;12581:6;12529:80;:::i;:::-;12619;12695:2;12684:9;12680:18;12671:6;12619:80;:::i;:::-;12709:73;12777:3;12766:9;12762:19;12753:6;12709:73;:::i;:::-;12792;12860:3;12849:9;12845:19;12836:6;12792:73;:::i;:::-;12319:553;;;;;;;;;:::o;12878:210::-;12965:4;13003:2;12992:9;12988:18;12980:26;;13016:65;13078:1;13067:9;13063:17;13054:6;13016:65;:::i;:::-;12970:118;;;;:::o;13094:313::-;13207:4;13245:2;13234:9;13230:18;13222:26;;13294:9;13288:4;13284:20;13280:1;13269:9;13265:17;13258:47;13322:78;13395:4;13386:6;13322:78;:::i;:::-;13314:86;;13212:195;;;;:::o;13413:419::-;13579:4;13617:2;13606:9;13602:18;13594:26;;13666:9;13660:4;13656:20;13652:1;13641:9;13637:17;13630:47;13694:131;13820:4;13694:131;:::i;:::-;13686:139;;13584:248;;;:::o;13838:419::-;14004:4;14042:2;14031:9;14027:18;14019:26;;14091:9;14085:4;14081:20;14077:1;14066:9;14062:17;14055:47;14119:131;14245:4;14119:131;:::i;:::-;14111:139;;14009:248;;;:::o;14263:419::-;14429:4;14467:2;14456:9;14452:18;14444:26;;14516:9;14510:4;14506:20;14502:1;14491:9;14487:17;14480:47;14544:131;14670:4;14544:131;:::i;:::-;14536:139;;14434:248;;;:::o;14688:419::-;14854:4;14892:2;14881:9;14877:18;14869:26;;14941:9;14935:4;14931:20;14927:1;14916:9;14912:17;14905:47;14969:131;15095:4;14969:131;:::i;:::-;14961:139;;14859:248;;;:::o;15113:419::-;15279:4;15317:2;15306:9;15302:18;15294:26;;15366:9;15360:4;15356:20;15352:1;15341:9;15337:17;15330:47;15394:131;15520:4;15394:131;:::i;:::-;15386:139;;15284:248;;;:::o;15538:419::-;15704:4;15742:2;15731:9;15727:18;15719:26;;15791:9;15785:4;15781:20;15777:1;15766:9;15762:17;15755:47;15819:131;15945:4;15819:131;:::i;:::-;15811:139;;15709:248;;;:::o;15963:419::-;16129:4;16167:2;16156:9;16152:18;16144:26;;16216:9;16210:4;16206:20;16202:1;16191:9;16187:17;16180:47;16244:131;16370:4;16244:131;:::i;:::-;16236:139;;16134:248;;;:::o;16388:419::-;16554:4;16592:2;16581:9;16577:18;16569:26;;16641:9;16635:4;16631:20;16627:1;16616:9;16612:17;16605:47;16669:131;16795:4;16669:131;:::i;:::-;16661:139;;16559:248;;;:::o;16813:419::-;16979:4;17017:2;17006:9;17002:18;16994:26;;17066:9;17060:4;17056:20;17052:1;17041:9;17037:17;17030:47;17094:131;17220:4;17094:131;:::i;:::-;17086:139;;16984:248;;;:::o;17238:419::-;17404:4;17442:2;17431:9;17427:18;17419:26;;17491:9;17485:4;17481:20;17477:1;17466:9;17462:17;17455:47;17519:131;17645:4;17519:131;:::i;:::-;17511:139;;17409:248;;;:::o;17663:222::-;17756:4;17794:2;17783:9;17779:18;17771:26;;17807:71;17875:1;17864:9;17860:17;17851:6;17807:71;:::i;:::-;17761:124;;;;:::o;17891:831::-;18154:4;18192:3;18181:9;18177:19;18169:27;;18206:71;18274:1;18263:9;18259:17;18250:6;18206:71;:::i;:::-;18287:80;18363:2;18352:9;18348:18;18339:6;18287:80;:::i;:::-;18414:9;18408:4;18404:20;18399:2;18388:9;18384:18;18377:48;18442:108;18545:4;18536:6;18442:108;:::i;:::-;18434:116;;18560:72;18628:2;18617:9;18613:18;18604:6;18560:72;:::i;:::-;18642:73;18710:3;18699:9;18695:19;18686:6;18642:73;:::i;:::-;18159:563;;;;;;;;:::o;18728:214::-;18817:4;18855:2;18844:9;18840:18;18832:26;;18868:67;18932:1;18921:9;18917:17;18908:6;18868:67;:::i;:::-;18822:120;;;;:::o;18948:129::-;18982:6;19009:20;;:::i;:::-;18999:30;;19038:33;19066:4;19058:6;19038:33;:::i;:::-;18989:88;;;:::o;19083:75::-;19116:6;19149:2;19143:9;19133:19;;19123:35;:::o;19164:311::-;19241:4;19331:18;19323:6;19320:30;19317:2;;;19353:18;;:::i;:::-;19317:2;19403:4;19395:6;19391:17;19383:25;;19463:4;19457;19453:15;19445:23;;19246:229;;;:::o;19481:132::-;19548:4;19571:3;19563:11;;19601:4;19596:3;19592:14;19584:22;;19553:60;;;:::o;19619:114::-;19686:6;19720:5;19714:12;19704:22;;19693:40;;;:::o;19739:99::-;19791:6;19825:5;19819:12;19809:22;;19798:40;;;:::o;19844:113::-;19914:4;19946;19941:3;19937:14;19929:22;;19919:38;;;:::o;19963:184::-;20062:11;20096:6;20091:3;20084:19;20136:4;20131:3;20127:14;20112:29;;20074:73;;;;:::o;20153:169::-;20237:11;20271:6;20266:3;20259:19;20311:4;20306:3;20302:14;20287:29;;20249:73;;;;:::o;20328:305::-;20368:3;20387:20;20405:1;20387:20;:::i;:::-;20382:25;;20421:20;20439:1;20421:20;:::i;:::-;20416:25;;20575:1;20507:66;20503:74;20500:1;20497:81;20494:2;;;20581:18;;:::i;:::-;20494:2;20625:1;20622;20618:9;20611:16;;20372:261;;;;:::o;20639:185::-;20679:1;20696:20;20714:1;20696:20;:::i;:::-;20691:25;;20730:20;20748:1;20730:20;:::i;:::-;20725:25;;20769:1;20759:2;;20774:18;;:::i;:::-;20759:2;20816:1;20813;20809:9;20804:14;;20681:143;;;;:::o;20830:348::-;20870:7;20893:20;20911:1;20893:20;:::i;:::-;20888:25;;20927:20;20945:1;20927:20;:::i;:::-;20922:25;;21115:1;21047:66;21043:74;21040:1;21037:81;21032:1;21025:9;21018:17;21014:105;21011:2;;;21122:18;;:::i;:::-;21011:2;21170:1;21167;21163:9;21152:20;;20878:300;;;;:::o;21184:191::-;21224:4;21244:20;21262:1;21244:20;:::i;:::-;21239:25;;21278:20;21296:1;21278:20;:::i;:::-;21273:25;;21317:1;21314;21311:8;21308:2;;;21322:18;;:::i;:::-;21308:2;21367:1;21364;21360:9;21352:17;;21229:146;;;;:::o;21381:96::-;21418:7;21447:24;21465:5;21447:24;:::i;:::-;21436:35;;21426:51;;;:::o;21483:90::-;21517:7;21560:5;21553:13;21546:21;21535:32;;21525:48;;;:::o;21579:126::-;21616:7;21656:42;21649:5;21645:54;21634:65;;21624:81;;;:::o;21711:77::-;21748:7;21777:5;21766:16;;21756:32;;;:::o;21794:86::-;21829:7;21869:4;21862:5;21858:16;21847:27;;21837:43;;;:::o;21886:134::-;21944:9;21977:37;22008:5;21977:37;:::i;:::-;21964:50;;21954:66;;;:::o;22026:121::-;22084:9;22117:24;22135:5;22117:24;:::i;:::-;22104:37;;22094:53;;;:::o;22153:126::-;22203:9;22236:37;22267:5;22236:37;:::i;:::-;22223:50;;22213:66;;;:::o;22285:113::-;22335:9;22368:24;22386:5;22368:24;:::i;:::-;22355:37;;22345:53;;;:::o;22404:307::-;22472:1;22482:113;22496:6;22493:1;22490:13;22482:113;;;22581:1;22576:3;22572:11;22566:18;22562:1;22557:3;22553:11;22546:39;22518:2;22515:1;22511:10;22506:15;;22482:113;;;22613:6;22610:1;22607:13;22604:2;;;22693:1;22684:6;22679:3;22675:16;22668:27;22604:2;22453:258;;;;:::o;22717:281::-;22800:27;22822:4;22800:27;:::i;:::-;22792:6;22788:40;22930:6;22918:10;22915:22;22894:18;22882:10;22879:34;22876:62;22873:2;;;22941:18;;:::i;:::-;22873:2;22981:10;22977:2;22970:22;22760:238;;;:::o;23004:233::-;23043:3;23066:24;23084:5;23066:24;:::i;:::-;23057:33;;23112:66;23105:5;23102:77;23099:2;;;23182:18;;:::i;:::-;23099:2;23229:1;23222:5;23218:13;23211:20;;23047:190;;;:::o;23243:180::-;23291:77;23288:1;23281:88;23388:4;23385:1;23378:15;23412:4;23409:1;23402:15;23429:180;23477:77;23474:1;23467:88;23574:4;23571:1;23564:15;23598:4;23595:1;23588:15;23615:180;23663:77;23660:1;23653:88;23760:4;23757:1;23750:15;23784:4;23781:1;23774:15;23801:102;23842:6;23893:2;23889:7;23884:2;23877:5;23873:14;23869:28;23859:38;;23849:54;;;:::o;23909:227::-;24049:34;24045:1;24037:6;24033:14;24026:58;24118:10;24113:2;24105:6;24101:15;24094:35;24015:121;:::o;24142:222::-;24282:34;24278:1;24270:6;24266:14;24259:58;24351:5;24346:2;24338:6;24334:15;24327:30;24248:116;:::o;24370:221::-;24510:34;24506:1;24498:6;24494:14;24487:58;24579:4;24574:2;24566:6;24562:15;24555:29;24476:115;:::o;24597:177::-;24737:29;24733:1;24725:6;24721:14;24714:53;24703:71;:::o;24780:220::-;24920:34;24916:1;24908:6;24904:14;24897:58;24989:3;24984:2;24976:6;24972:15;24965:28;24886:114;:::o;25006:182::-;25146:34;25142:1;25134:6;25130:14;25123:58;25112:76;:::o;25194:228::-;25334:34;25330:1;25322:6;25318:14;25311:58;25403:11;25398:2;25390:6;25386:15;25379:36;25300:122;:::o;25428:224::-;25568:34;25564:1;25556:6;25552:14;25545:58;25637:7;25632:2;25624:6;25620:15;25613:32;25534:118;:::o;25658:223::-;25798:34;25794:1;25786:6;25782:14;25775:58;25867:6;25862:2;25854:6;25850:15;25843:31;25764:117;:::o;25887:173::-;26027:25;26023:1;26015:6;26011:14;26004:49;25993:67;:::o;26066:122::-;26139:24;26157:5;26139:24;:::i;:::-;26132:5;26129:35;26119:2;;26178:1;26175;26168:12;26119:2;26109:79;:::o;26194:116::-;26264:21;26279:5;26264:21;:::i;:::-;26257:5;26254:32;26244:2;;26300:1;26297;26290:12;26244:2;26234:76;:::o;26316:122::-;26389:24;26407:5;26389:24;:::i;:::-;26382:5;26379:35;26369:2;;26428:1;26425;26418:12;26369:2;26359:79;:::o

Swarm Source

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