ETH Price: $2,285.70 (+2.38%)

Token

Dethroned (DTHRND)
 

Overview

Max Total Supply

1,000,000 DTHRND

Holders

37

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
11,544.57467764 DTHRND

Value
$0.00
0xe33E35A8989962a7b2e443B659503F6AAFa15E19
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:
Dethroned

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-03
*/

/*
    https://t.me/dethroned_erc
    https://twitter.com/Dethroned_Erc
*/

//  SPDX-License-Identifier: UNLICENSED

pragma solidity 0.8.7;

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 Dethroned is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => bool) private _isBlacklisted;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1_000_000 * 10**8;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    uint256 private _initialTax;
    uint256 private _finalTax;
    uint256 private _reduceTaxCountdown;
    address payable private _feeAddrWallet;

    string private constant _name = "Dethroned";
    string private constant _symbol = "DTHRND";
    uint8 private constant _decimals = 8;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = 20_000 * 10**8;
    uint256 private _maxWalletSize = 20_000 * 10**8;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _feeAddrWallet = payable(_msgSender());
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet] = true;
        _initialTax=25;
        _finalTax=6;
        _reduceTaxCountdown=800;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

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

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

    function allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    function _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function updateIsBlacklisted(address account, bool state) external onlyOwner{
        _isBlacklisted[account] = state;
    }

    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");
        require(!_isBlacklisted[from] && !_isBlacklisted[to], "You are a bot");


        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            _feeAddr1 = 0;
            _feeAddr2 = (_reduceTaxCountdown==0)?_finalTax:_initialTax;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                if(_reduceTaxCountdown>0){_reduceTaxCountdown--;}
            }


            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>0 && _reduceTaxCountdown<770) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }else{
          _feeAddr1 = 0;
          _feeAddr2 = 0;
        }

        _tokenTransfer(from,to,amount);
    }

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }


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

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

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;

        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

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

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function manualswap() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }


    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

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

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"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":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052655af3107a40006000196200001a91906200046d565b60001962000029919062000428565b6009556000601260156101000a81548160ff0219169083151502179055506000601260166101000a81548160ff0219169083151502179055506000601260176101000a81548160ff0219169083151502179055506501d1a94a20006013556501d1a94a20006014553480156200009e57600080fd5b506000620000b1620003c960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200015f620003c960201b60201c565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060095460026000620001b6620003c960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600660006200020a620003d160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506019600d819055506006600e81905550610320600f8190555062000356620003c960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef655af3107a4000604051620003bb91906200040b565b60405180910390a362000503565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620004058162000463565b82525050565b6000602082019050620004226000830184620003fa565b92915050565b6000620004358262000463565b9150620004428362000463565b925082821015620004585762000457620004a5565b5b828203905092915050565b6000819050919050565b60006200047a8262000463565b9150620004878362000463565b9250826200049a5762000499620004d4565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b61323580620005136000396000f3fe6080604052600436106101025760003560e01c806370a082311161009557806395d89b411161006457806395d89b4114610308578063a9059cbb14610333578063c3c8cd8014610370578063c9567bf914610387578063dd62ed3e1461039e57610109565b806370a0823114610272578063715018a6146102af578063751039fc146102c65780638da5cb5b146102dd57610109565b8063313ce567116100d1578063313ce567146101de5780635932ead1146102095780635b24ea5e146102325780636fc3eaec1461025b57610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103db565b6040516101309190612921565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b919061247b565b610418565b60405161016d9190612906565b60405180910390f35b34801561018257600080fd5b5061018b610436565b6040516101989190612ae3565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c391906123e8565b610444565b6040516101d59190612906565b60405180910390f35b3480156101ea57600080fd5b506101f361051d565b6040516102009190612b58565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b91906124bb565b610526565b005b34801561023e57600080fd5b506102596004803603810190610254919061243b565b6105d8565b005b34801561026757600080fd5b506102706106c8565b005b34801561027e57600080fd5b506102996004803603810190610294919061234e565b61073a565b6040516102a69190612ae3565b60405180910390f35b3480156102bb57600080fd5b506102c461078b565b005b3480156102d257600080fd5b506102db6108de565b005b3480156102e957600080fd5b506102f261098f565b6040516102ff9190612838565b60405180910390f35b34801561031457600080fd5b5061031d6109b8565b60405161032a9190612921565b60405180910390f35b34801561033f57600080fd5b5061035a6004803603810190610355919061247b565b6109f5565b6040516103679190612906565b60405180910390f35b34801561037c57600080fd5b50610385610a13565b005b34801561039357600080fd5b5061039c610a8d565b005b3480156103aa57600080fd5b506103c560048036038101906103c091906123a8565b610fd7565b6040516103d29190612ae3565b60405180910390f35b60606040518060400160405280600981526020017f44657468726f6e65640000000000000000000000000000000000000000000000815250905090565b600061042c61042561105e565b8484611066565b6001905092915050565b6000655af3107a4000905090565b6000610451848484611231565b6105128461045d61105e565b61050d856040518060600160405280602881526020016131d860289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104c361105e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461185d9092919063ffffffff16565b611066565b600190509392505050565b60006008905090565b61052e61105e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b290612a03565b60405180910390fd5b80601260176101000a81548160ff02191690831515021790555050565b6105e061105e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461066d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066490612a03565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661070961105e565b73ffffffffffffffffffffffffffffffffffffffff161461072957600080fd5b6000479050610737816118c1565b50565b6000610784600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461192d565b9050919050565b61079361105e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610820576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081790612a03565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108e661105e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610973576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096a90612a03565b60405180910390fd5b655af3107a4000601381905550655af3107a4000601481905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f445448524e440000000000000000000000000000000000000000000000000000815250905090565b6000610a09610a0261105e565b8484611231565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a5461105e565b73ffffffffffffffffffffffffffffffffffffffff1614610a7457600080fd5b6000610a7f3061073a565b9050610a8a8161199b565b50565b610a9561105e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1990612a03565b60405180910390fd5b601260149054906101000a900460ff1615610b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6990612aa3565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bff30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16655af3107a4000611066565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610c4557600080fd5b505afa158015610c59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7d919061237b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610cdf57600080fd5b505afa158015610cf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d17919061237b565b6040518363ffffffff1660e01b8152600401610d34929190612853565b602060405180830381600087803b158015610d4e57600080fd5b505af1158015610d62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d86919061237b565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e0f3061073a565b600080610e1a61098f565b426040518863ffffffff1660e01b8152600401610e3c969594939291906128a5565b6060604051808303818588803b158015610e5557600080fd5b505af1158015610e69573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e8e9190612515565b5050506001601260166101000a81548160ff0219169083151502179055506001601260176101000a81548160ff0219169083151502179055506001601260146101000a81548160ff021916908315150217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f8192919061287c565b602060405180830381600087803b158015610f9b57600080fd5b505af1158015610faf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd391906124e8565b5050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156110d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cd90612a83565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611146576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113d906129a3565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112249190612ae3565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129890612a43565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130890612943565b60405180910390fd5b60008111611354576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134b90612a23565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156113f85750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142e90612ac3565b60405180910390fd5b61143f61098f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114ad575061147d61098f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561183c57600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115565750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61155f57600080fd5b6000600b819055506000600f541461157957600d5461157d565b600e545b600c81905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561162e5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116845750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561169c5750601260179054906101000a900460ff165b15611763576013548111156116e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116dd90612963565b60405180910390fd5b601454816116f38461073a565b6116fd9190612bc8565b111561173e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173590612a63565b60405180910390fd5b6000600f54111561176257600f600081548092919061175c90612d77565b91905055505b5b600061176e3061073a565b9050601260159054906101000a900460ff161580156117db5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156117f35750601260169054906101000a900460ff165b80156117ff5750600081115b801561180e5750610302600f54105b156118365761181c8161199b565b6000479050600081111561183457611833476118c1565b5b505b5061184d565b6000600b819055506000600c819055505b611858838383611c23565b505050565b60008383111582906118a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189c9190612921565b60405180910390fd5b50600083856118b49190612ca9565b9050809150509392505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611929573d6000803e3d6000fd5b5050565b6000600954821115611974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196b90612983565b60405180910390fd5b600061197e611c33565b90506119938184611c5e90919063ffffffff16565b915050919050565b6001601260156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156119d3576119d2612e2e565b5b604051908082528060200260200182016040528015611a015781602001602082028036833780820191505090505b5090503081600081518110611a1957611a18612dff565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611abb57600080fd5b505afa158015611acf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af3919061237b565b81600181518110611b0757611b06612dff565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b6e30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611066565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611bd2959493929190612afe565b600060405180830381600087803b158015611bec57600080fd5b505af1158015611c00573d6000803e3d6000fd5b50505050506000601260156101000a81548160ff02191690831515021790555050565b611c2e838383611ca8565b505050565b6000806000611c40611e73565b91509150611c578183611c5e90919063ffffffff16565b9250505090565b6000611ca083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ecc565b905092915050565b600080600080600080611cba87611f2f565b955095509550955095509550611d1886600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f9790919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dad85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe190919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611df98161203f565b611e0384836120fc565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611e609190612ae3565b60405180910390a3505050505050505050565b600080600060095490506000655af3107a40009050611ea3655af3107a4000600954611c5e90919063ffffffff16565b821015611ebf57600954655af3107a4000935093505050611ec8565b81819350935050505b9091565b60008083118290611f13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0a9190612921565b60405180910390fd5b5060008385611f229190612c1e565b9050809150509392505050565b6000806000806000806000806000611f4c8a600b54600c54612136565b9250925092506000611f5c611c33565b90506000806000611f6f8e8787876121cc565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611fd983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061185d565b905092915050565b6000808284611ff09190612bc8565b905083811015612035576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202c906129c3565b60405180910390fd5b8091505092915050565b6000612049611c33565b90506000612060828461225590919063ffffffff16565b90506120b481600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe190919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61211182600954611f9790919063ffffffff16565b60098190555061212c81600a54611fe190919063ffffffff16565b600a819055505050565b6000806000806121626064612154888a61225590919063ffffffff16565b611c5e90919063ffffffff16565b9050600061218c606461217e888b61225590919063ffffffff16565b611c5e90919063ffffffff16565b905060006121b5826121a7858c611f9790919063ffffffff16565b611f9790919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806121e5858961225590919063ffffffff16565b905060006121fc868961225590919063ffffffff16565b90506000612213878961225590919063ffffffff16565b9050600061223c8261222e8587611f9790919063ffffffff16565b611f9790919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561226857600090506122ca565b600082846122769190612c4f565b90508284826122859190612c1e565b146122c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122bc906129e3565b60405180910390fd5b809150505b92915050565b6000813590506122df81613192565b92915050565b6000815190506122f481613192565b92915050565b600081359050612309816131a9565b92915050565b60008151905061231e816131a9565b92915050565b600081359050612333816131c0565b92915050565b600081519050612348816131c0565b92915050565b60006020828403121561236457612363612e5d565b5b6000612372848285016122d0565b91505092915050565b60006020828403121561239157612390612e5d565b5b600061239f848285016122e5565b91505092915050565b600080604083850312156123bf576123be612e5d565b5b60006123cd858286016122d0565b92505060206123de858286016122d0565b9150509250929050565b60008060006060848603121561240157612400612e5d565b5b600061240f868287016122d0565b9350506020612420868287016122d0565b925050604061243186828701612324565b9150509250925092565b6000806040838503121561245257612451612e5d565b5b6000612460858286016122d0565b9250506020612471858286016122fa565b9150509250929050565b6000806040838503121561249257612491612e5d565b5b60006124a0858286016122d0565b92505060206124b185828601612324565b9150509250929050565b6000602082840312156124d1576124d0612e5d565b5b60006124df848285016122fa565b91505092915050565b6000602082840312156124fe576124fd612e5d565b5b600061250c8482850161230f565b91505092915050565b60008060006060848603121561252e5761252d612e5d565b5b600061253c86828701612339565b935050602061254d86828701612339565b925050604061255e86828701612339565b9150509250925092565b60006125748383612580565b60208301905092915050565b61258981612cdd565b82525050565b61259881612cdd565b82525050565b60006125a982612b83565b6125b38185612ba6565b93506125be83612b73565b8060005b838110156125ef5781516125d68882612568565b97506125e183612b99565b9250506001810190506125c2565b5085935050505092915050565b61260581612cef565b82525050565b61261481612d32565b82525050565b600061262582612b8e565b61262f8185612bb7565b935061263f818560208601612d44565b61264881612e62565b840191505092915050565b6000612660602383612bb7565b915061266b82612e73565b604082019050919050565b6000612683601983612bb7565b915061268e82612ec2565b602082019050919050565b60006126a6602a83612bb7565b91506126b182612eeb565b604082019050919050565b60006126c9602283612bb7565b91506126d482612f3a565b604082019050919050565b60006126ec601b83612bb7565b91506126f782612f89565b602082019050919050565b600061270f602183612bb7565b915061271a82612fb2565b604082019050919050565b6000612732602083612bb7565b915061273d82613001565b602082019050919050565b6000612755602983612bb7565b91506127608261302a565b604082019050919050565b6000612778602583612bb7565b915061278382613079565b604082019050919050565b600061279b601a83612bb7565b91506127a6826130c8565b602082019050919050565b60006127be602483612bb7565b91506127c9826130f1565b604082019050919050565b60006127e1601783612bb7565b91506127ec82613140565b602082019050919050565b6000612804600d83612bb7565b915061280f82613169565b602082019050919050565b61282381612d1b565b82525050565b61283281612d25565b82525050565b600060208201905061284d600083018461258f565b92915050565b6000604082019050612868600083018561258f565b612875602083018461258f565b9392505050565b6000604082019050612891600083018561258f565b61289e602083018461281a565b9392505050565b600060c0820190506128ba600083018961258f565b6128c7602083018861281a565b6128d4604083018761260b565b6128e1606083018661260b565b6128ee608083018561258f565b6128fb60a083018461281a565b979650505050505050565b600060208201905061291b60008301846125fc565b92915050565b6000602082019050818103600083015261293b818461261a565b905092915050565b6000602082019050818103600083015261295c81612653565b9050919050565b6000602082019050818103600083015261297c81612676565b9050919050565b6000602082019050818103600083015261299c81612699565b9050919050565b600060208201905081810360008301526129bc816126bc565b9050919050565b600060208201905081810360008301526129dc816126df565b9050919050565b600060208201905081810360008301526129fc81612702565b9050919050565b60006020820190508181036000830152612a1c81612725565b9050919050565b60006020820190508181036000830152612a3c81612748565b9050919050565b60006020820190508181036000830152612a5c8161276b565b9050919050565b60006020820190508181036000830152612a7c8161278e565b9050919050565b60006020820190508181036000830152612a9c816127b1565b9050919050565b60006020820190508181036000830152612abc816127d4565b9050919050565b60006020820190508181036000830152612adc816127f7565b9050919050565b6000602082019050612af8600083018461281a565b92915050565b600060a082019050612b13600083018861281a565b612b20602083018761260b565b8181036040830152612b32818661259e565b9050612b41606083018561258f565b612b4e608083018461281a565b9695505050505050565b6000602082019050612b6d6000830184612829565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612bd382612d1b565b9150612bde83612d1b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612c1357612c12612da1565b5b828201905092915050565b6000612c2982612d1b565b9150612c3483612d1b565b925082612c4457612c43612dd0565b5b828204905092915050565b6000612c5a82612d1b565b9150612c6583612d1b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c9e57612c9d612da1565b5b828202905092915050565b6000612cb482612d1b565b9150612cbf83612d1b565b925082821015612cd257612cd1612da1565b5b828203905092915050565b6000612ce882612cfb565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612d3d82612d1b565b9050919050565b60005b83811015612d62578082015181840152602081019050612d47565b83811115612d71576000848401525b50505050565b6000612d8282612d1b565b91506000821415612d9657612d95612da1565b5b600182039050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f596f7520617265206120626f7400000000000000000000000000000000000000600082015250565b61319b81612cdd565b81146131a657600080fd5b50565b6131b281612cef565b81146131bd57600080fd5b50565b6131c981612d1b565b81146131d457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d531c6da56fa8bccb8b83e99a3efc15fec86d52b6aa7c38a788fa041ce94dcdd64736f6c63430008070033

Deployed Bytecode

0x6080604052600436106101025760003560e01c806370a082311161009557806395d89b411161006457806395d89b4114610308578063a9059cbb14610333578063c3c8cd8014610370578063c9567bf914610387578063dd62ed3e1461039e57610109565b806370a0823114610272578063715018a6146102af578063751039fc146102c65780638da5cb5b146102dd57610109565b8063313ce567116100d1578063313ce567146101de5780635932ead1146102095780635b24ea5e146102325780636fc3eaec1461025b57610109565b806306fdde031461010e578063095ea7b31461013957806318160ddd1461017657806323b872dd146101a157610109565b3661010957005b600080fd5b34801561011a57600080fd5b506101236103db565b6040516101309190612921565b60405180910390f35b34801561014557600080fd5b50610160600480360381019061015b919061247b565b610418565b60405161016d9190612906565b60405180910390f35b34801561018257600080fd5b5061018b610436565b6040516101989190612ae3565b60405180910390f35b3480156101ad57600080fd5b506101c860048036038101906101c391906123e8565b610444565b6040516101d59190612906565b60405180910390f35b3480156101ea57600080fd5b506101f361051d565b6040516102009190612b58565b60405180910390f35b34801561021557600080fd5b50610230600480360381019061022b91906124bb565b610526565b005b34801561023e57600080fd5b506102596004803603810190610254919061243b565b6105d8565b005b34801561026757600080fd5b506102706106c8565b005b34801561027e57600080fd5b506102996004803603810190610294919061234e565b61073a565b6040516102a69190612ae3565b60405180910390f35b3480156102bb57600080fd5b506102c461078b565b005b3480156102d257600080fd5b506102db6108de565b005b3480156102e957600080fd5b506102f261098f565b6040516102ff9190612838565b60405180910390f35b34801561031457600080fd5b5061031d6109b8565b60405161032a9190612921565b60405180910390f35b34801561033f57600080fd5b5061035a6004803603810190610355919061247b565b6109f5565b6040516103679190612906565b60405180910390f35b34801561037c57600080fd5b50610385610a13565b005b34801561039357600080fd5b5061039c610a8d565b005b3480156103aa57600080fd5b506103c560048036038101906103c091906123a8565b610fd7565b6040516103d29190612ae3565b60405180910390f35b60606040518060400160405280600981526020017f44657468726f6e65640000000000000000000000000000000000000000000000815250905090565b600061042c61042561105e565b8484611066565b6001905092915050565b6000655af3107a4000905090565b6000610451848484611231565b6105128461045d61105e565b61050d856040518060600160405280602881526020016131d860289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104c361105e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461185d9092919063ffffffff16565b611066565b600190509392505050565b60006008905090565b61052e61105e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105b290612a03565b60405180910390fd5b80601260176101000a81548160ff02191690831515021790555050565b6105e061105e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461066d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161066490612a03565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661070961105e565b73ffffffffffffffffffffffffffffffffffffffff161461072957600080fd5b6000479050610737816118c1565b50565b6000610784600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461192d565b9050919050565b61079361105e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610820576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081790612a03565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108e661105e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610973576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161096a90612a03565b60405180910390fd5b655af3107a4000601381905550655af3107a4000601481905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f445448524e440000000000000000000000000000000000000000000000000000815250905090565b6000610a09610a0261105e565b8484611231565b6001905092915050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610a5461105e565b73ffffffffffffffffffffffffffffffffffffffff1614610a7457600080fd5b6000610a7f3061073a565b9050610a8a8161199b565b50565b610a9561105e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1990612a03565b60405180910390fd5b601260149054906101000a900460ff1615610b72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6990612aa3565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610bff30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16655af3107a4000611066565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610c4557600080fd5b505afa158015610c59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7d919061237b565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610cdf57600080fd5b505afa158015610cf3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d17919061237b565b6040518363ffffffff1660e01b8152600401610d34929190612853565b602060405180830381600087803b158015610d4e57600080fd5b505af1158015610d62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d86919061237b565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e0f3061073a565b600080610e1a61098f565b426040518863ffffffff1660e01b8152600401610e3c969594939291906128a5565b6060604051808303818588803b158015610e5557600080fd5b505af1158015610e69573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610e8e9190612515565b5050506001601260166101000a81548160ff0219169083151502179055506001601260176101000a81548160ff0219169083151502179055506001601260146101000a81548160ff021916908315150217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f8192919061287c565b602060405180830381600087803b158015610f9b57600080fd5b505af1158015610faf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd391906124e8565b5050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156110d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cd90612a83565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611146576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113d906129a3565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112249190612ae3565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129890612a43565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130890612943565b60405180910390fd5b60008111611354576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134b90612a23565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156113f85750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142e90612ac3565b60405180910390fd5b61143f61098f565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156114ad575061147d61098f565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561183c57600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115565750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61155f57600080fd5b6000600b819055506000600f541461157957600d5461157d565b600e545b600c81905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561162e5750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156116845750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b801561169c5750601260179054906101000a900460ff165b15611763576013548111156116e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116dd90612963565b60405180910390fd5b601454816116f38461073a565b6116fd9190612bc8565b111561173e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173590612a63565b60405180910390fd5b6000600f54111561176257600f600081548092919061175c90612d77565b91905055505b5b600061176e3061073a565b9050601260159054906101000a900460ff161580156117db5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156117f35750601260169054906101000a900460ff165b80156117ff5750600081115b801561180e5750610302600f54105b156118365761181c8161199b565b6000479050600081111561183457611833476118c1565b5b505b5061184d565b6000600b819055506000600c819055505b611858838383611c23565b505050565b60008383111582906118a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161189c9190612921565b60405180910390fd5b50600083856118b49190612ca9565b9050809150509392505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611929573d6000803e3d6000fd5b5050565b6000600954821115611974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196b90612983565b60405180910390fd5b600061197e611c33565b90506119938184611c5e90919063ffffffff16565b915050919050565b6001601260156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff8111156119d3576119d2612e2e565b5b604051908082528060200260200182016040528015611a015781602001602082028036833780820191505090505b5090503081600081518110611a1957611a18612dff565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611abb57600080fd5b505afa158015611acf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af3919061237b565b81600181518110611b0757611b06612dff565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611b6e30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611066565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611bd2959493929190612afe565b600060405180830381600087803b158015611bec57600080fd5b505af1158015611c00573d6000803e3d6000fd5b50505050506000601260156101000a81548160ff02191690831515021790555050565b611c2e838383611ca8565b505050565b6000806000611c40611e73565b91509150611c578183611c5e90919063ffffffff16565b9250505090565b6000611ca083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ecc565b905092915050565b600080600080600080611cba87611f2f565b955095509550955095509550611d1886600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f9790919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611dad85600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe190919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611df98161203f565b611e0384836120fc565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611e609190612ae3565b60405180910390a3505050505050505050565b600080600060095490506000655af3107a40009050611ea3655af3107a4000600954611c5e90919063ffffffff16565b821015611ebf57600954655af3107a4000935093505050611ec8565b81819350935050505b9091565b60008083118290611f13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f0a9190612921565b60405180910390fd5b5060008385611f229190612c1e565b9050809150509392505050565b6000806000806000806000806000611f4c8a600b54600c54612136565b9250925092506000611f5c611c33565b90506000806000611f6f8e8787876121cc565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611fd983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061185d565b905092915050565b6000808284611ff09190612bc8565b905083811015612035576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161202c906129c3565b60405180910390fd5b8091505092915050565b6000612049611c33565b90506000612060828461225590919063ffffffff16565b90506120b481600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611fe190919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61211182600954611f9790919063ffffffff16565b60098190555061212c81600a54611fe190919063ffffffff16565b600a819055505050565b6000806000806121626064612154888a61225590919063ffffffff16565b611c5e90919063ffffffff16565b9050600061218c606461217e888b61225590919063ffffffff16565b611c5e90919063ffffffff16565b905060006121b5826121a7858c611f9790919063ffffffff16565b611f9790919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806121e5858961225590919063ffffffff16565b905060006121fc868961225590919063ffffffff16565b90506000612213878961225590919063ffffffff16565b9050600061223c8261222e8587611f9790919063ffffffff16565b611f9790919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561226857600090506122ca565b600082846122769190612c4f565b90508284826122859190612c1e565b146122c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122bc906129e3565b60405180910390fd5b809150505b92915050565b6000813590506122df81613192565b92915050565b6000815190506122f481613192565b92915050565b600081359050612309816131a9565b92915050565b60008151905061231e816131a9565b92915050565b600081359050612333816131c0565b92915050565b600081519050612348816131c0565b92915050565b60006020828403121561236457612363612e5d565b5b6000612372848285016122d0565b91505092915050565b60006020828403121561239157612390612e5d565b5b600061239f848285016122e5565b91505092915050565b600080604083850312156123bf576123be612e5d565b5b60006123cd858286016122d0565b92505060206123de858286016122d0565b9150509250929050565b60008060006060848603121561240157612400612e5d565b5b600061240f868287016122d0565b9350506020612420868287016122d0565b925050604061243186828701612324565b9150509250925092565b6000806040838503121561245257612451612e5d565b5b6000612460858286016122d0565b9250506020612471858286016122fa565b9150509250929050565b6000806040838503121561249257612491612e5d565b5b60006124a0858286016122d0565b92505060206124b185828601612324565b9150509250929050565b6000602082840312156124d1576124d0612e5d565b5b60006124df848285016122fa565b91505092915050565b6000602082840312156124fe576124fd612e5d565b5b600061250c8482850161230f565b91505092915050565b60008060006060848603121561252e5761252d612e5d565b5b600061253c86828701612339565b935050602061254d86828701612339565b925050604061255e86828701612339565b9150509250925092565b60006125748383612580565b60208301905092915050565b61258981612cdd565b82525050565b61259881612cdd565b82525050565b60006125a982612b83565b6125b38185612ba6565b93506125be83612b73565b8060005b838110156125ef5781516125d68882612568565b97506125e183612b99565b9250506001810190506125c2565b5085935050505092915050565b61260581612cef565b82525050565b61261481612d32565b82525050565b600061262582612b8e565b61262f8185612bb7565b935061263f818560208601612d44565b61264881612e62565b840191505092915050565b6000612660602383612bb7565b915061266b82612e73565b604082019050919050565b6000612683601983612bb7565b915061268e82612ec2565b602082019050919050565b60006126a6602a83612bb7565b91506126b182612eeb565b604082019050919050565b60006126c9602283612bb7565b91506126d482612f3a565b604082019050919050565b60006126ec601b83612bb7565b91506126f782612f89565b602082019050919050565b600061270f602183612bb7565b915061271a82612fb2565b604082019050919050565b6000612732602083612bb7565b915061273d82613001565b602082019050919050565b6000612755602983612bb7565b91506127608261302a565b604082019050919050565b6000612778602583612bb7565b915061278382613079565b604082019050919050565b600061279b601a83612bb7565b91506127a6826130c8565b602082019050919050565b60006127be602483612bb7565b91506127c9826130f1565b604082019050919050565b60006127e1601783612bb7565b91506127ec82613140565b602082019050919050565b6000612804600d83612bb7565b915061280f82613169565b602082019050919050565b61282381612d1b565b82525050565b61283281612d25565b82525050565b600060208201905061284d600083018461258f565b92915050565b6000604082019050612868600083018561258f565b612875602083018461258f565b9392505050565b6000604082019050612891600083018561258f565b61289e602083018461281a565b9392505050565b600060c0820190506128ba600083018961258f565b6128c7602083018861281a565b6128d4604083018761260b565b6128e1606083018661260b565b6128ee608083018561258f565b6128fb60a083018461281a565b979650505050505050565b600060208201905061291b60008301846125fc565b92915050565b6000602082019050818103600083015261293b818461261a565b905092915050565b6000602082019050818103600083015261295c81612653565b9050919050565b6000602082019050818103600083015261297c81612676565b9050919050565b6000602082019050818103600083015261299c81612699565b9050919050565b600060208201905081810360008301526129bc816126bc565b9050919050565b600060208201905081810360008301526129dc816126df565b9050919050565b600060208201905081810360008301526129fc81612702565b9050919050565b60006020820190508181036000830152612a1c81612725565b9050919050565b60006020820190508181036000830152612a3c81612748565b9050919050565b60006020820190508181036000830152612a5c8161276b565b9050919050565b60006020820190508181036000830152612a7c8161278e565b9050919050565b60006020820190508181036000830152612a9c816127b1565b9050919050565b60006020820190508181036000830152612abc816127d4565b9050919050565b60006020820190508181036000830152612adc816127f7565b9050919050565b6000602082019050612af8600083018461281a565b92915050565b600060a082019050612b13600083018861281a565b612b20602083018761260b565b8181036040830152612b32818661259e565b9050612b41606083018561258f565b612b4e608083018461281a565b9695505050505050565b6000602082019050612b6d6000830184612829565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612bd382612d1b565b9150612bde83612d1b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612c1357612c12612da1565b5b828201905092915050565b6000612c2982612d1b565b9150612c3483612d1b565b925082612c4457612c43612dd0565b5b828204905092915050565b6000612c5a82612d1b565b9150612c6583612d1b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612c9e57612c9d612da1565b5b828202905092915050565b6000612cb482612d1b565b9150612cbf83612d1b565b925082821015612cd257612cd1612da1565b5b828203905092915050565b6000612ce882612cfb565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612d3d82612d1b565b9050919050565b60005b83811015612d62578082015181840152602081019050612d47565b83811115612d71576000848401525b50505050565b6000612d8282612d1b565b91506000821415612d9657612d95612da1565b5b600182039050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f596f7520617265206120626f7400000000000000000000000000000000000000600082015250565b61319b81612cdd565b81146131a657600080fd5b50565b6131b281612cef565b81146131bd57600080fd5b50565b6131c981612d1b565b81146131d457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220d531c6da56fa8bccb8b83e99a3efc15fec86d52b6aa7c38a788fa041ce94dcdd64736f6c63430008070033

Deployed Bytecode Sourcemap

3598:10366:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5531:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6383:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5808:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6552:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5717:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6873:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7589:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12079:193;;;;;;;;;;;;;:::i;:::-;;5911:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2679:148;;;;;;;;;;;;;:::i;:::-;;9805:118;;;;;;;;;;;;;:::i;:::-;;2465:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5622:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6057:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11877:194;;;;;;;;;;;;;:::i;:::-;;10035:773;;;;;;;;;;;;;:::i;:::-;;6232:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5531:83;5568:13;5601:5;;;;;;;;;;;;;;;;;5594:12;;5531:83;:::o;6383:161::-;6458:4;6475:39;6484:12;:10;:12::i;:::-;6498:7;6507:6;6475:8;:39::i;:::-;6532:4;6525:11;;6383:161;;;;:::o;5808:95::-;5861:7;4155:17;5881:14;;5808:95;:::o;6552:313::-;6650:4;6667:36;6677:6;6685:9;6696:6;6667:9;:36::i;:::-;6714:121;6723:6;6731:12;:10;:12::i;:::-;6745:89;6783:6;6745:89;;;;;;;;;;;;;;;;;:11;:19;6757:6;6745:19;;;;;;;;;;;;;;;:33;6765:12;:10;:12::i;:::-;6745:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6714:8;:121::i;:::-;6853:4;6846:11;;6552:313;;;;;:::o;5717:83::-;5758:5;4623:1;5776:16;;5717:83;:::o;6873:103::-;2602:12;:10;:12::i;:::-;2592:22;;:6;;;;;;;;;;:22;;;2584:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6963:5:::1;6945:15;;:23;;;;;;;;;;;;;;;;;;6873:103:::0;:::o;7589:126::-;2602:12;:10;:12::i;:::-;2592:22;;:6;;;;;;;;;;:22;;;2584:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7702:5:::1;7676:14;:23;7691:7;7676:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;7589:126:::0;;:::o;12079:193::-;12145:14;;;;;;;;;;;12129:30;;:12;:10;:12::i;:::-;:30;;;12121:39;;;;;;12171:26;12200:21;12171:50;;12232:32;12245:18;12232:12;:32::i;:::-;12110:162;12079:193::o;5911:138::-;5977:7;6004:37;6024:7;:16;6032:7;6024:16;;;;;;;;;;;;;;;;6004:19;:37::i;:::-;5997:44;;5911:138;;;:::o;2679:148::-;2602:12;:10;:12::i;:::-;2592:22;;:6;;;;;;;;;;:22;;;2584:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2786:1:::1;2749:40;;2770:6;::::0;::::1;;;;;;;;2749:40;;;;;;;;;;;;2817:1;2800:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2679:148::o:0;9805:118::-;2602:12;:10;:12::i;:::-;2592:22;;:6;;;;;;;;;;:22;;;2584:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4155:17:::1;9858:12;:22;;;;4155:17;9891:14;:24;;;;9805:118::o:0;2465:79::-;2503:7;2530:6;;;;;;;;;;;2523:13;;2465:79;:::o;5622:87::-;5661:13;5694:7;;;;;;;;;;;;;;;;;5687:14;;5622:87;:::o;6057:167::-;6135:4;6152:42;6162:12;:10;:12::i;:::-;6176:9;6187:6;6152:9;:42::i;:::-;6212:4;6205:11;;6057:167;;;;:::o;11877:194::-;11943:14;;;;;;;;;;;11927:30;;:12;:10;:12::i;:::-;:30;;;11919:39;;;;;;11969:23;11995:24;12013:4;11995:9;:24::i;:::-;11969:50;;12030:33;12047:15;12030:16;:33::i;:::-;11908:163;11877:194::o;10035:773::-;2602:12;:10;:12::i;:::-;2592:22;;:6;;;;;;;;;;:22;;;2584:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10099:11:::1;;;;;;;;;;;10098:12;10090:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10148:35;10205:42;10148:100;;10277:16;10259:15;;:34;;;;;;;;;;;;;;;;;;10304:58;10321:4;10336:15;;;;;;;;;;;4155:17;10304:8;:58::i;:::-;10407:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10389:56;;;10454:4;10461:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10389:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10373:13;;:112;;;;;;;;;;;;;;;;;;10496:15;;;;;;;;;;;:31;;;10535:21;10566:4;10572:24;10590:4;10572:9;:24::i;:::-;10597:1;10599::::0;10601:7:::1;:5;:7::i;:::-;10609:15;10496:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10650:4;10636:11;;:18;;;;;;;;;;;;;;;;;;10683:4;10665:15;;:22;;;;;;;;;;;;;;;;;;10714:4;10700:11;;:18;;;;;;;;;;;;;;;;;;10736:13;;;;;;;;;;;10729:29;;;10767:15;;;;;;;;;;;10785:14;10729:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10079:729;10035:773::o:0;6232:143::-;6313:7;6340:11;:18;6352:5;6340:18;;;;;;;;;;;;;;;:27;6359:7;6340:27;;;;;;;;;;;;;;;;6333:34;;6232:143;;;;:::o;183:98::-;236:7;263:10;256:17;;183:98;:::o;7246:335::-;7356:1;7339:19;;:5;:19;;;;7331:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7437:1;7418:21;;:7;:21;;;;7410:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7519:6;7489:11;:18;7501:5;7489:18;;;;;;;;;;;;;;;:27;7508:7;7489:27;;;;;;;;;;;;;;;:36;;;;7557:7;7541:32;;7550:5;7541:32;;;7566:6;7541:32;;;;;;:::i;:::-;;;;;;;;7246:335;;;:::o;7723:1581::-;7827:1;7811:18;;:4;:18;;;;7803:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7904:1;7890:16;;:2;:16;;;;7882:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7974:1;7965:6;:10;7957:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8041:14;:20;8056:4;8041:20;;;;;;;;;;;;;;;;;;;;;;;;;8040:21;:44;;;;;8066:14;:18;8081:2;8066:18;;;;;;;;;;;;;;;;;;;;;;;;;8065:19;8040:44;8032:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;8129:7;:5;:7::i;:::-;8121:15;;:4;:15;;;;:32;;;;;8146:7;:5;:7::i;:::-;8140:13;;:2;:13;;;;8121:32;8117:1137;;;8179:4;:10;8184:4;8179:10;;;;;;;;;;;;;;;;;;;;;;;;;8178:11;:24;;;;;8194:4;:8;8199:2;8194:8;;;;;;;;;;;;;;;;;;;;;;;;;8193:9;8178:24;8170:33;;;;;;8230:1;8218:9;:13;;;;8280:1;8259:19;;:22;8258:46;;8293:11;;8258:46;;;8283:9;;8258:46;8246:9;:58;;;;8331:13;;;;;;;;;;;8323:21;;:4;:21;;;:55;;;;;8362:15;;;;;;;;;;;8348:30;;:2;:30;;;;8323:55;:83;;;;;8384:18;:22;8403:2;8384:22;;;;;;;;;;;;;;;;;;;;;;;;;8382:24;8323:83;:102;;;;;8410:15;;;;;;;;;;;8323:102;8319:397;;;8493:12;;8483:6;:22;;8475:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8588:14;;8578:6;8562:13;8572:2;8562:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8554:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8675:1;8655:19;;:21;8652:49;;;8678:19;;:21;;;;;;;;;:::i;:::-;;;;;;8652:49;8319:397;8734:28;8765:24;8783:4;8765:9;:24::i;:::-;8734:55;;8809:6;;;;;;;;;;;8808:7;:32;;;;;8827:13;;;;;;;;;;;8819:21;;:4;:21;;;;8808:32;:47;;;;;8844:11;;;;;;;;;;;8808:47;:73;;;;;8880:1;8859:20;:22;8808:73;:100;;;;;8905:3;8885:19;;:23;8808:100;8804:371;;;8929:38;8946:20;8929:16;:38::i;:::-;8986:26;9015:21;8986:50;;9079:1;9058:18;:22;9055:105;;;9105:35;9118:21;9105:12;:35::i;:::-;9055:105;8910:265;8804:371;8155:1031;8117:1137;;;9215:1;9203:9;:13;;;;9241:1;9229:9;:13;;;;8117:1137;9266:30;9281:4;9286:2;9289:6;9266:14;:30::i;:::-;7723:1581;;;:::o;1320:190::-;1406:7;1439:1;1434;:6;;1442:12;1426:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1466:9;1482:1;1478;:5;;;;:::i;:::-;1466:17;;1501:1;1494:8;;;1320:190;;;;;:::o;9931:96::-;9988:14;;;;;;;;;;;:23;;:31;10012:6;9988:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9931:96;:::o;6984:254::-;7051:7;7090;;7079;:18;;7071:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7155:19;7178:10;:8;:10::i;:::-;7155:33;;7206:24;7218:11;7206:7;:11;;:24;;;;:::i;:::-;7199:31;;;6984:254;;;:::o;9312:483::-;5062:4;5053:6;;:13;;;;;;;;;;;;;;;;;;9390:21:::1;9428:1;9414:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9390:40;;9459:4;9441;9446:1;9441:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9485:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9475:4;9480:1;9475:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9518:62;9535:4;9550:15;;;;;;;;;;;9568:11;9518:8;:62::i;:::-;9591:15;;;;;;;;;;;:66;;;9672:11;9698:1;9714:4;9741;9761:15;9591:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9379:416;5098:5:::0;5089:6;;:14;;;;;;;;;;;;;;;;;;9312:483;:::o;10816:146::-;10910:44;10928:6;10936:9;10947:6;10910:17;:44::i;:::-;10816:146;;;:::o;13534:163::-;13575:7;13596:15;13613;13632:19;:17;:19::i;:::-;13595:56;;;;13669:20;13681:7;13669;:11;;:20;;;;:::i;:::-;13662:27;;;;13534:163;:::o;1772:132::-;1830:7;1857:39;1861:1;1864;1857:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1850:46;;1772:132;;;;:::o;10970:487::-;11069:15;11086:23;11111:12;11125:23;11150:12;11164:13;11181:19;11192:7;11181:10;:19::i;:::-;11068:132;;;;;;;;;;;;11229:28;11249:7;11229;:15;11237:6;11229:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11211:7;:15;11219:6;11211:15;;;;;;;;;;;;;;;:46;;;;11289:39;11312:15;11289:7;:18;11297:9;11289:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11268:7;:18;11276:9;11268:18;;;;;;;;;;;;;;;:60;;;;11339:16;11349:5;11339:9;:16::i;:::-;11366:23;11378:4;11384;11366:11;:23::i;:::-;11422:9;11405:44;;11414:6;11405:44;;;11433:15;11405:44;;;;;;:::i;:::-;;;;;;;;11057:400;;;;;;10970:487;;;:::o;13705:256::-;13755:7;13764;13784:15;13802:7;;13784:25;;13820:15;4155:17;13820:25;;13870:20;4155:17;13870:7;;:11;;:20;;;;:::i;:::-;13860:7;:30;13856:61;;;13900:7;;4155:17;13892:25;;;;;;;;13856:61;13936:7;13945;13928:25;;;;;;13705:256;;;:::o;1912:189::-;1998:7;2030:1;2026;:5;2033:12;2018:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2057:9;2073:1;2069;:5;;;;:::i;:::-;2057:17;;2092:1;2085:8;;;1912:189;;;;;:::o;12282:471::-;12341:7;12350;12359;12368;12377;12386;12407:23;12432:12;12446:13;12463:42;12475:7;12484:9;;12495;;12463:11;:42::i;:::-;12406:99;;;;;;12516:19;12539:10;:8;:10::i;:::-;12516:33;;12561:15;12578:23;12603:12;12619:46;12631:7;12640:4;12646:5;12653:11;12619;:46::i;:::-;12560:105;;;;;;12684:7;12693:15;12710:4;12716:15;12733:4;12739:5;12676:69;;;;;;;;;;;;;;;;;;;12282:471;;;;;;;:::o;1176:136::-;1234:7;1261:43;1265:1;1268;1261:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1254:50;;1176:136;;;;:::o;989:179::-;1047:7;1067:9;1083:1;1079;:5;;;;:::i;:::-;1067:17;;1108:1;1103;:6;;1095:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1159:1;1152:8;;;989:179;;;;:::o;11465:212::-;11518:19;11541:10;:8;:10::i;:::-;11518:33;;11562:13;11578:22;11588:11;11578:5;:9;;:22;;;;:::i;:::-;11562:38;;11636:33;11663:5;11636:7;:22;11652:4;11636:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11611:7;:22;11627:4;11611:22;;;;;;;;;;;;;;;:58;;;;11507:170;;11465:212;:::o;11685:147::-;11763:17;11775:4;11763:7;;:11;;:17;;;;:::i;:::-;11753:7;:27;;;;11804:20;11819:4;11804:10;;:14;;:20;;;;:::i;:::-;11791:10;:33;;;;11685:147;;:::o;12761:351::-;12854:7;12863;12872;12892:12;12907:28;12931:3;12907:19;12919:6;12907:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12892:43;;12946:13;12962:29;12987:3;12962:20;12974:7;12962;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;12946:45;;13002:23;13028:28;13050:5;13028:17;13040:4;13028:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13002:54;;13075:15;13092:4;13098:5;13067:37;;;;;;;;;12761:351;;;;;;;:::o;13120:409::-;13230:7;13239;13248;13268:15;13286:24;13298:11;13286:7;:11;;:24;;;;:::i;:::-;13268:42;;13321:12;13336:21;13345:11;13336:4;:8;;:21;;;;:::i;:::-;13321:36;;13368:13;13384:22;13394:11;13384:5;:9;;:22;;;;:::i;:::-;13368:38;;13417:23;13443:28;13465:5;13443:17;13455:4;13443:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13417:54;;13490:7;13499:15;13516:4;13482:39;;;;;;;;;;13120:409;;;;;;;;:::o;1518:246::-;1576:7;1605:1;1600;:6;1596:47;;;1630:1;1623:8;;;;1596:47;1653:9;1669:1;1665;:5;;;;:::i;:::-;1653:17;;1698:1;1693;1689;:5;;;;:::i;:::-;:10;1681:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1755:1;1748:8;;;1518:246;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;301:133;;;;:::o;440:137::-;494:5;525:6;519:13;510:22;;541:30;565:5;541:30;:::i;:::-;440:137;;;;:::o;583:139::-;629:5;667:6;654:20;645:29;;683:33;710:5;683:33;:::i;:::-;583:139;;;;:::o;728:143::-;785:5;816:6;810:13;801:22;;832:33;859:5;832:33;:::i;:::-;728:143;;;;:::o;877:329::-;936:6;985:2;973:9;964:7;960:23;956:32;953:119;;;991:79;;:::i;:::-;953:119;1111:1;1136:53;1181:7;1172:6;1161:9;1157:22;1136:53;:::i;:::-;1126:63;;1082:117;877:329;;;;:::o;1212:351::-;1282:6;1331:2;1319:9;1310:7;1306:23;1302:32;1299:119;;;1337:79;;:::i;:::-;1299:119;1457:1;1482:64;1538:7;1529:6;1518:9;1514:22;1482:64;:::i;:::-;1472:74;;1428:128;1212:351;;;;:::o;1569:474::-;1637:6;1645;1694:2;1682:9;1673:7;1669:23;1665:32;1662:119;;;1700:79;;:::i;:::-;1662:119;1820:1;1845:53;1890:7;1881:6;1870:9;1866:22;1845:53;:::i;:::-;1835:63;;1791:117;1947:2;1973:53;2018:7;2009:6;1998:9;1994:22;1973:53;:::i;:::-;1963:63;;1918:118;1569:474;;;;;:::o;2049:619::-;2126:6;2134;2142;2191:2;2179:9;2170:7;2166:23;2162:32;2159:119;;;2197:79;;:::i;:::-;2159:119;2317:1;2342:53;2387:7;2378:6;2367:9;2363:22;2342:53;:::i;:::-;2332:63;;2288:117;2444:2;2470:53;2515:7;2506:6;2495:9;2491:22;2470:53;:::i;:::-;2460:63;;2415:118;2572:2;2598:53;2643:7;2634:6;2623:9;2619:22;2598:53;:::i;:::-;2588:63;;2543:118;2049:619;;;;;:::o;2674:468::-;2739:6;2747;2796:2;2784:9;2775:7;2771:23;2767:32;2764:119;;;2802:79;;:::i;:::-;2764:119;2922:1;2947:53;2992:7;2983:6;2972:9;2968:22;2947:53;:::i;:::-;2937:63;;2893:117;3049:2;3075:50;3117:7;3108:6;3097:9;3093:22;3075:50;:::i;:::-;3065:60;;3020:115;2674:468;;;;;:::o;3148:474::-;3216:6;3224;3273:2;3261:9;3252:7;3248:23;3244:32;3241:119;;;3279:79;;:::i;:::-;3241:119;3399:1;3424:53;3469:7;3460:6;3449:9;3445:22;3424:53;:::i;:::-;3414:63;;3370:117;3526:2;3552:53;3597:7;3588:6;3577:9;3573:22;3552:53;:::i;:::-;3542:63;;3497:118;3148:474;;;;;:::o;3628:323::-;3684:6;3733:2;3721:9;3712:7;3708:23;3704:32;3701:119;;;3739:79;;:::i;:::-;3701:119;3859:1;3884:50;3926:7;3917:6;3906:9;3902:22;3884:50;:::i;:::-;3874:60;;3830:114;3628:323;;;;:::o;3957:345::-;4024:6;4073:2;4061:9;4052:7;4048:23;4044:32;4041:119;;;4079:79;;:::i;:::-;4041:119;4199:1;4224:61;4277:7;4268:6;4257:9;4253:22;4224:61;:::i;:::-;4214:71;;4170:125;3957:345;;;;:::o;4308:663::-;4396:6;4404;4412;4461:2;4449:9;4440:7;4436:23;4432:32;4429:119;;;4467:79;;:::i;:::-;4429:119;4587:1;4612:64;4668:7;4659:6;4648:9;4644:22;4612:64;:::i;:::-;4602:74;;4558:128;4725:2;4751:64;4807:7;4798:6;4787:9;4783:22;4751:64;:::i;:::-;4741:74;;4696:129;4864:2;4890:64;4946:7;4937:6;4926:9;4922:22;4890:64;:::i;:::-;4880:74;;4835:129;4308:663;;;;;:::o;4977:179::-;5046:10;5067:46;5109:3;5101:6;5067:46;:::i;:::-;5145:4;5140:3;5136:14;5122:28;;4977:179;;;;:::o;5162:108::-;5239:24;5257:5;5239:24;:::i;:::-;5234:3;5227:37;5162:108;;:::o;5276:118::-;5363:24;5381:5;5363:24;:::i;:::-;5358:3;5351:37;5276:118;;:::o;5430:732::-;5549:3;5578:54;5626:5;5578:54;:::i;:::-;5648:86;5727:6;5722:3;5648:86;:::i;:::-;5641:93;;5758:56;5808:5;5758:56;:::i;:::-;5837:7;5868:1;5853:284;5878:6;5875:1;5872:13;5853:284;;;5954:6;5948:13;5981:63;6040:3;6025:13;5981:63;:::i;:::-;5974:70;;6067:60;6120:6;6067:60;:::i;:::-;6057:70;;5913:224;5900:1;5897;5893:9;5888:14;;5853:284;;;5857:14;6153:3;6146:10;;5554:608;;;5430:732;;;;:::o;6168:109::-;6249:21;6264:5;6249:21;:::i;:::-;6244:3;6237:34;6168:109;;:::o;6283:147::-;6378:45;6417:5;6378:45;:::i;:::-;6373:3;6366:58;6283:147;;:::o;6436:364::-;6524:3;6552:39;6585:5;6552:39;:::i;:::-;6607:71;6671:6;6666:3;6607:71;:::i;:::-;6600:78;;6687:52;6732:6;6727:3;6720:4;6713:5;6709:16;6687:52;:::i;:::-;6764:29;6786:6;6764:29;:::i;:::-;6759:3;6755:39;6748:46;;6528:272;6436:364;;;;:::o;6806:366::-;6948:3;6969:67;7033:2;7028:3;6969:67;:::i;:::-;6962:74;;7045:93;7134:3;7045:93;:::i;:::-;7163:2;7158:3;7154:12;7147:19;;6806:366;;;:::o;7178:::-;7320:3;7341:67;7405:2;7400:3;7341:67;:::i;:::-;7334:74;;7417:93;7506:3;7417:93;:::i;:::-;7535:2;7530:3;7526:12;7519:19;;7178:366;;;:::o;7550:::-;7692:3;7713:67;7777:2;7772:3;7713:67;:::i;:::-;7706:74;;7789:93;7878:3;7789:93;:::i;:::-;7907:2;7902:3;7898:12;7891:19;;7550:366;;;:::o;7922:::-;8064:3;8085:67;8149:2;8144:3;8085:67;:::i;:::-;8078:74;;8161:93;8250:3;8161:93;:::i;:::-;8279:2;8274:3;8270:12;8263:19;;7922:366;;;:::o;8294:::-;8436:3;8457:67;8521:2;8516:3;8457:67;:::i;:::-;8450:74;;8533:93;8622:3;8533:93;:::i;:::-;8651:2;8646:3;8642:12;8635:19;;8294:366;;;:::o;8666:::-;8808:3;8829:67;8893:2;8888:3;8829:67;:::i;:::-;8822:74;;8905:93;8994:3;8905:93;:::i;:::-;9023:2;9018:3;9014:12;9007:19;;8666:366;;;:::o;9038:::-;9180:3;9201:67;9265:2;9260:3;9201:67;:::i;:::-;9194:74;;9277:93;9366:3;9277:93;:::i;:::-;9395:2;9390:3;9386:12;9379:19;;9038:366;;;:::o;9410:::-;9552:3;9573:67;9637:2;9632:3;9573:67;:::i;:::-;9566:74;;9649:93;9738:3;9649:93;:::i;:::-;9767:2;9762:3;9758:12;9751:19;;9410:366;;;:::o;9782:::-;9924:3;9945:67;10009:2;10004:3;9945:67;:::i;:::-;9938:74;;10021:93;10110:3;10021:93;:::i;:::-;10139:2;10134:3;10130:12;10123:19;;9782:366;;;:::o;10154:::-;10296:3;10317:67;10381:2;10376:3;10317:67;:::i;:::-;10310:74;;10393:93;10482:3;10393:93;:::i;:::-;10511:2;10506:3;10502:12;10495:19;;10154:366;;;:::o;10526:::-;10668:3;10689:67;10753:2;10748:3;10689:67;:::i;:::-;10682:74;;10765:93;10854:3;10765:93;:::i;:::-;10883:2;10878:3;10874:12;10867:19;;10526:366;;;:::o;10898:::-;11040:3;11061:67;11125:2;11120:3;11061:67;:::i;:::-;11054:74;;11137:93;11226:3;11137:93;:::i;:::-;11255:2;11250:3;11246:12;11239:19;;10898:366;;;:::o;11270:::-;11412:3;11433:67;11497:2;11492:3;11433:67;:::i;:::-;11426:74;;11509:93;11598:3;11509:93;:::i;:::-;11627:2;11622:3;11618:12;11611:19;;11270:366;;;:::o;11642:118::-;11729:24;11747:5;11729:24;:::i;:::-;11724:3;11717:37;11642:118;;:::o;11766:112::-;11849:22;11865:5;11849:22;:::i;:::-;11844:3;11837:35;11766:112;;:::o;11884:222::-;11977:4;12015:2;12004:9;12000:18;11992:26;;12028:71;12096:1;12085:9;12081:17;12072:6;12028:71;:::i;:::-;11884:222;;;;:::o;12112:332::-;12233:4;12271:2;12260:9;12256:18;12248:26;;12284:71;12352:1;12341:9;12337:17;12328:6;12284:71;:::i;:::-;12365:72;12433:2;12422:9;12418:18;12409:6;12365:72;:::i;:::-;12112:332;;;;;:::o;12450:::-;12571:4;12609:2;12598:9;12594:18;12586:26;;12622:71;12690:1;12679:9;12675:17;12666:6;12622:71;:::i;:::-;12703:72;12771:2;12760:9;12756:18;12747:6;12703:72;:::i;:::-;12450:332;;;;;:::o;12788:807::-;13037:4;13075:3;13064:9;13060:19;13052:27;;13089:71;13157:1;13146:9;13142:17;13133:6;13089:71;:::i;:::-;13170:72;13238:2;13227:9;13223:18;13214:6;13170:72;:::i;:::-;13252:80;13328:2;13317:9;13313:18;13304:6;13252:80;:::i;:::-;13342;13418:2;13407:9;13403:18;13394:6;13342:80;:::i;:::-;13432:73;13500:3;13489:9;13485:19;13476:6;13432:73;:::i;:::-;13515;13583:3;13572:9;13568:19;13559:6;13515:73;:::i;:::-;12788:807;;;;;;;;;:::o;13601:210::-;13688:4;13726:2;13715:9;13711:18;13703:26;;13739:65;13801:1;13790:9;13786:17;13777:6;13739:65;:::i;:::-;13601:210;;;;:::o;13817:313::-;13930:4;13968:2;13957:9;13953:18;13945:26;;14017:9;14011:4;14007:20;14003:1;13992:9;13988:17;13981:47;14045:78;14118:4;14109:6;14045:78;:::i;:::-;14037:86;;13817:313;;;;:::o;14136:419::-;14302:4;14340:2;14329:9;14325:18;14317:26;;14389:9;14383:4;14379:20;14375:1;14364:9;14360:17;14353:47;14417:131;14543:4;14417:131;:::i;:::-;14409:139;;14136:419;;;:::o;14561:::-;14727:4;14765:2;14754:9;14750:18;14742:26;;14814:9;14808:4;14804:20;14800:1;14789:9;14785:17;14778:47;14842:131;14968:4;14842:131;:::i;:::-;14834:139;;14561:419;;;:::o;14986:::-;15152:4;15190:2;15179:9;15175:18;15167:26;;15239:9;15233:4;15229:20;15225:1;15214:9;15210:17;15203:47;15267:131;15393:4;15267:131;:::i;:::-;15259:139;;14986:419;;;:::o;15411:::-;15577:4;15615:2;15604:9;15600:18;15592:26;;15664:9;15658:4;15654:20;15650:1;15639:9;15635:17;15628:47;15692:131;15818:4;15692:131;:::i;:::-;15684:139;;15411:419;;;:::o;15836:::-;16002:4;16040:2;16029:9;16025:18;16017:26;;16089:9;16083:4;16079:20;16075:1;16064:9;16060:17;16053:47;16117:131;16243:4;16117:131;:::i;:::-;16109:139;;15836:419;;;:::o;16261:::-;16427:4;16465:2;16454:9;16450:18;16442:26;;16514:9;16508:4;16504:20;16500:1;16489:9;16485:17;16478:47;16542:131;16668:4;16542:131;:::i;:::-;16534:139;;16261:419;;;:::o;16686:::-;16852:4;16890:2;16879:9;16875:18;16867:26;;16939:9;16933:4;16929:20;16925:1;16914:9;16910:17;16903:47;16967:131;17093:4;16967:131;:::i;:::-;16959:139;;16686:419;;;:::o;17111:::-;17277:4;17315:2;17304:9;17300:18;17292:26;;17364:9;17358:4;17354:20;17350:1;17339:9;17335:17;17328:47;17392:131;17518:4;17392:131;:::i;:::-;17384:139;;17111:419;;;:::o;17536:::-;17702:4;17740:2;17729:9;17725:18;17717:26;;17789:9;17783:4;17779:20;17775:1;17764:9;17760:17;17753:47;17817:131;17943:4;17817:131;:::i;:::-;17809:139;;17536:419;;;:::o;17961:::-;18127:4;18165:2;18154:9;18150:18;18142:26;;18214:9;18208:4;18204:20;18200:1;18189:9;18185:17;18178:47;18242:131;18368:4;18242:131;:::i;:::-;18234:139;;17961:419;;;:::o;18386:::-;18552:4;18590:2;18579:9;18575:18;18567:26;;18639:9;18633:4;18629:20;18625:1;18614:9;18610:17;18603:47;18667:131;18793:4;18667:131;:::i;:::-;18659:139;;18386:419;;;:::o;18811:::-;18977:4;19015:2;19004:9;19000:18;18992:26;;19064:9;19058:4;19054:20;19050:1;19039:9;19035:17;19028:47;19092:131;19218:4;19092:131;:::i;:::-;19084:139;;18811:419;;;:::o;19236:::-;19402:4;19440:2;19429:9;19425:18;19417:26;;19489:9;19483:4;19479:20;19475:1;19464:9;19460:17;19453:47;19517:131;19643:4;19517:131;:::i;:::-;19509:139;;19236:419;;;:::o;19661:222::-;19754:4;19792:2;19781:9;19777:18;19769:26;;19805:71;19873:1;19862:9;19858:17;19849:6;19805:71;:::i;:::-;19661:222;;;;:::o;19889:831::-;20152:4;20190:3;20179:9;20175:19;20167:27;;20204:71;20272:1;20261:9;20257:17;20248:6;20204:71;:::i;:::-;20285:80;20361:2;20350:9;20346:18;20337:6;20285:80;:::i;:::-;20412:9;20406:4;20402:20;20397:2;20386:9;20382:18;20375:48;20440:108;20543:4;20534:6;20440:108;:::i;:::-;20432:116;;20558:72;20626:2;20615:9;20611:18;20602:6;20558:72;:::i;:::-;20640:73;20708:3;20697:9;20693:19;20684:6;20640:73;:::i;:::-;19889:831;;;;;;;;:::o;20726:214::-;20815:4;20853:2;20842:9;20838:18;20830:26;;20866:67;20930:1;20919:9;20915:17;20906:6;20866:67;:::i;:::-;20726:214;;;;:::o;21027:132::-;21094:4;21117:3;21109:11;;21147:4;21142:3;21138:14;21130:22;;21027:132;;;:::o;21165:114::-;21232:6;21266:5;21260:12;21250:22;;21165:114;;;:::o;21285:99::-;21337:6;21371:5;21365:12;21355:22;;21285:99;;;:::o;21390:113::-;21460:4;21492;21487:3;21483:14;21475:22;;21390:113;;;:::o;21509:184::-;21608:11;21642:6;21637:3;21630:19;21682:4;21677:3;21673:14;21658:29;;21509:184;;;;:::o;21699:169::-;21783:11;21817:6;21812:3;21805:19;21857:4;21852:3;21848:14;21833:29;;21699:169;;;;:::o;21874:305::-;21914:3;21933:20;21951:1;21933:20;:::i;:::-;21928:25;;21967:20;21985:1;21967:20;:::i;:::-;21962:25;;22121:1;22053:66;22049:74;22046:1;22043:81;22040:107;;;22127:18;;:::i;:::-;22040:107;22171:1;22168;22164:9;22157:16;;21874:305;;;;:::o;22185:185::-;22225:1;22242:20;22260:1;22242:20;:::i;:::-;22237:25;;22276:20;22294:1;22276:20;:::i;:::-;22271:25;;22315:1;22305:35;;22320:18;;:::i;:::-;22305:35;22362:1;22359;22355:9;22350:14;;22185:185;;;;:::o;22376:348::-;22416:7;22439:20;22457:1;22439:20;:::i;:::-;22434:25;;22473:20;22491:1;22473:20;:::i;:::-;22468:25;;22661:1;22593:66;22589:74;22586:1;22583:81;22578:1;22571:9;22564:17;22560:105;22557:131;;;22668:18;;:::i;:::-;22557:131;22716:1;22713;22709:9;22698:20;;22376:348;;;;:::o;22730:191::-;22770:4;22790:20;22808:1;22790:20;:::i;:::-;22785:25;;22824:20;22842:1;22824:20;:::i;:::-;22819:25;;22863:1;22860;22857:8;22854:34;;;22868:18;;:::i;:::-;22854:34;22913:1;22910;22906:9;22898:17;;22730:191;;;;:::o;22927:96::-;22964:7;22993:24;23011:5;22993:24;:::i;:::-;22982:35;;22927:96;;;:::o;23029:90::-;23063:7;23106:5;23099:13;23092:21;23081:32;;23029:90;;;:::o;23125:126::-;23162:7;23202:42;23195:5;23191:54;23180:65;;23125:126;;;:::o;23257:77::-;23294:7;23323:5;23312:16;;23257:77;;;:::o;23340:86::-;23375:7;23415:4;23408:5;23404:16;23393:27;;23340:86;;;:::o;23432:121::-;23490:9;23523:24;23541:5;23523:24;:::i;:::-;23510:37;;23432:121;;;:::o;23559:307::-;23627:1;23637:113;23651:6;23648:1;23645:13;23637:113;;;23736:1;23731:3;23727:11;23721:18;23717:1;23712:3;23708:11;23701:39;23673:2;23670:1;23666:10;23661:15;;23637:113;;;23768:6;23765:1;23762:13;23759:101;;;23848:1;23839:6;23834:3;23830:16;23823:27;23759:101;23608:258;23559:307;;;:::o;23872:171::-;23911:3;23934:24;23952:5;23934:24;:::i;:::-;23925:33;;23980:4;23973:5;23970:15;23967:41;;;23988:18;;:::i;:::-;23967:41;24035:1;24028:5;24024:13;24017:20;;23872:171;;;:::o;24049:180::-;24097:77;24094:1;24087:88;24194:4;24191:1;24184:15;24218:4;24215:1;24208:15;24235:180;24283:77;24280:1;24273:88;24380:4;24377:1;24370:15;24404:4;24401:1;24394:15;24421:180;24469:77;24466:1;24459:88;24566:4;24563:1;24556:15;24590:4;24587:1;24580:15;24607:180;24655:77;24652:1;24645:88;24752:4;24749:1;24742:15;24776:4;24773:1;24766:15;24916:117;25025:1;25022;25015:12;25039:102;25080:6;25131:2;25127:7;25122:2;25115:5;25111:14;25107:28;25097:38;;25039:102;;;:::o;25147:222::-;25287:34;25283:1;25275:6;25271:14;25264:58;25356:5;25351:2;25343:6;25339:15;25332:30;25147:222;:::o;25375:175::-;25515:27;25511:1;25503:6;25499:14;25492:51;25375:175;:::o;25556:229::-;25696:34;25692:1;25684:6;25680:14;25673:58;25765:12;25760:2;25752:6;25748:15;25741:37;25556:229;:::o;25791:221::-;25931:34;25927:1;25919:6;25915:14;25908:58;26000:4;25995:2;25987:6;25983:15;25976:29;25791:221;:::o;26018:177::-;26158:29;26154:1;26146:6;26142:14;26135:53;26018:177;:::o;26201:220::-;26341:34;26337:1;26329:6;26325:14;26318:58;26410:3;26405:2;26397:6;26393:15;26386:28;26201:220;:::o;26427:182::-;26567:34;26563:1;26555:6;26551:14;26544:58;26427:182;:::o;26615:228::-;26755:34;26751:1;26743:6;26739:14;26732:58;26824:11;26819:2;26811:6;26807:15;26800:36;26615:228;:::o;26849:224::-;26989:34;26985:1;26977:6;26973:14;26966:58;27058:7;27053:2;27045:6;27041:15;27034:32;26849:224;:::o;27079:176::-;27219:28;27215:1;27207:6;27203:14;27196:52;27079:176;:::o;27261:223::-;27401:34;27397:1;27389:6;27385:14;27378:58;27470:6;27465:2;27457:6;27453:15;27446:31;27261:223;:::o;27490:173::-;27630:25;27626:1;27618:6;27614:14;27607:49;27490:173;:::o;27669:163::-;27809:15;27805:1;27797:6;27793:14;27786:39;27669:163;:::o;27838:122::-;27911:24;27929:5;27911:24;:::i;:::-;27904:5;27901:35;27891:63;;27950:1;27947;27940:12;27891:63;27838:122;:::o;27966:116::-;28036:21;28051:5;28036:21;:::i;:::-;28029:5;28026:32;28016:60;;28072:1;28069;28062:12;28016:60;27966:116;:::o;28088:122::-;28161:24;28179:5;28161:24;:::i;:::-;28154:5;28151:35;28141:63;;28200:1;28197;28190:12;28141:63;28088:122;:::o

Swarm Source

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