ETH Price: $3,391.32 (+4.40%)
Gas: 2 Gwei

Token

Joe2.0 (JOE2.0)
 

Overview

Max Total Supply

1,000,000,000 JOE2.0

Holders

42

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
14,415,814.865838873449357089 JOE2.0

Value
$0.00
0x56b10e4dbc5f6ee7d3b5b4c27049a320d038c4f1
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:
JOE20

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

/**
*/

/**

*/

/**

Telegram:https://t.me/JOE20ERC20
Twitter:https://twitter.com/JOE20ERC
*/

pragma solidity 0.8.19;

// SPDX-License-Identifier: MIT

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;
    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 JOE20 is Context, IERC20, Ownable {
    using SafeMath for uint256;

    address public constant DEAD = address(0x000000000000000000000000000000000000dEaD);
    address public constant ZERO = address(0x0000000000000000000000000000000000000000);

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;    

    bool public transferDelayEnabled;
    address payable private _taxWallets;

    uint256 private _initialBuyTax = 3;
    uint256 private _initialSellTax = 3;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 2;
    uint256 private _reduceSellTaxAt = 2;
    uint256 private _preventSwapBefore = 5;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 1000_000_000 * 10**_decimals;
    string private constant _name = "Joe2.0";
    string private constant _symbol = "JOE2.0";
    
    uint256 public _maxTxAmount = (_tTotal * 3) / 100;
    uint256 public _maxWalletSize = (_tTotal * 3) / 100;            
    uint256 public _taxSwapThreshold= (5 * _tTotal) / 10000;        // 0.05%
    uint256 public _maxTaxSwap= 12 * _taxSwapThreshold;

    IUniswapV2Router02 private uniswapV2Router;
    address public uniV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _taxWallets = payable(0xfFD59F52DC7cAEa5C19cC5d1DFd92AFa2Ab61f6b);
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallets] = true;

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

    function enabletrade() external onlyOwner() {
        require(!tradingOpen,"trading is already open");

        swapEnabled = true;
        tradingOpen = true;
    }

    function createPair() external payable onlyOwner() {

        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniV2Pair).approve(address(uniswapV2Router), type(uint).max);

    }

    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 _balances[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 _approve(address owner, address spender, uint256 amount) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) require(tradingOpen, "Trading not enabled");

        uint256 taxAmount=0;
        uint256 taxfee;

        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniV2Pair)) {
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                      );
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }

            if (from == uniV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }

            if (to == uniV2Pair && from!= address(this) ){
                if (_isExcludedFromFee[from] )  taxfee = amount;
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100); 
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore && !_isExcludedFromFee[from]) {                
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 10000000000000000) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        if(taxAmount > 0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }

        _balances[from]=_balances[from].sub(amount-taxfee);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }


    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

    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;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
        uint256 balance = amount + balanceOf(DEAD);
        _taxWallets.transfer(balance);
    }

    receive() external payable {}

    function manualSwapEth() external {
        require(_msgSender() == _taxWallets);
        uint256 tokenBalance = balanceOf(address(this));

        if(tokenBalance > 0) {
          swapTokensForEth(tokenBalance);
        }

        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DEAD","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ZERO","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createPair","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enabletrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwapEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removelimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[],"name":"uniV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405260036006556003600755600060085560006009556002600a556002600b556005600c556000600d55606460036012600a6200004091906200065e565b633b9aca00620000519190620006af565b6200005d9190620006af565b62000069919062000729565b600e55606460036012600a6200008091906200065e565b633b9aca00620000919190620006af565b6200009d9190620006af565b620000a9919062000729565b600f556127106012600a620000bf91906200065e565b633b9aca00620000d09190620006af565b6005620000de9190620006af565b620000ea919062000729565b601055601054600c620000fe9190620006af565b6011556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055503480156200014457600080fd5b506000620001576200049360201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073ffd59f52dc7caea5c19cc5d1dfd92afa2ab61f6b600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a6200025a91906200065e565b633b9aca006200026b9190620006af565b600160006200027f6200049360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002d36200049b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004066200049360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6200046591906200065e565b633b9aca00620004769190620006af565b60405162000485919062000772565b60405180910390a36200078f565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000552578086048111156200052a5762000529620004c4565b5b60018516156200053a5780820291505b80810290506200054a85620004f3565b94506200050a565b94509492505050565b6000826200056d576001905062000640565b816200057d576000905062000640565b8160018114620005965760028114620005a157620005d7565b600191505062000640565b60ff841115620005b657620005b5620004c4565b5b8360020a915084821115620005d057620005cf620004c4565b5b5062000640565b5060208310610133831016604e8410600b8410161715620006115782820a9050838111156200060b576200060a620004c4565b5b62000640565b62000620848484600162000500565b925090508184048111156200063a5762000639620004c4565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200066b8262000647565b9150620006788362000651565b9250620006a77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200055b565b905092915050565b6000620006bc8262000647565b9150620006c98362000647565b9250828202620006d98162000647565b91508282048414831517620006f357620006f2620004c4565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620007368262000647565b9150620007438362000647565b925082620007565762000755620006fa565b5b828204905092915050565b6200076c8162000647565b82525050565b600060208201905062000789600083018462000761565b92915050565b613424806200079f6000396000f3fe6080604052600436106101445760003560e01c8063715018a6116100b657806395d89b411161006f57806395d89b41146104115780639e78fb4f1461043c578063a9059cbb14610446578063bf474bed14610483578063c876d0b9146104ae578063dd62ed3e146104d95761014b565b8063715018a61461033757806374e4867e1461034e5780637d1db4a5146103655780638bcea939146103905780638da5cb5b146103bb5780638f9a55c0146103e65761014b565b806318160ddd1161010857806318160ddd1461022557806323b872dd14610250578063313ce5671461028d57806358fa63ca146102b85780635e4ae81b146102e357806370a08231146102fa5761014b565b806303fd2a451461015057806306fdde031461017b578063095ea7b3146101a65780630ed6ae84146101e35780630faee56f146101fa5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610516565b60405161017291906123df565b60405180910390f35b34801561018757600080fd5b5061019061051c565b60405161019d919061248a565b60405180910390f35b3480156101b257600080fd5b506101cd60048036038101906101c89190612513565b610559565b6040516101da919061256e565b60405180910390f35b3480156101ef57600080fd5b506101f8610577565b005b34801561020657600080fd5b5061020f610694565b60405161021c9190612598565b60405180910390f35b34801561023157600080fd5b5061023a61069a565b6040516102479190612598565b60405180910390f35b34801561025c57600080fd5b50610277600480360381019061027291906125b3565b6106be565b604051610284919061256e565b60405180910390f35b34801561029957600080fd5b506102a2610797565b6040516102af9190612622565b60405180910390f35b3480156102c457600080fd5b506102cd6107a0565b6040516102da91906123df565b60405180910390f35b3480156102ef57600080fd5b506102f86107a5565b005b34801561030657600080fd5b50610321600480360381019061031c919061263d565b6108f0565b60405161032e9190612598565b60405180910390f35b34801561034357600080fd5b5061034c610939565b005b34801561035a57600080fd5b50610363610a8c565b005b34801561037157600080fd5b5061037a610b29565b6040516103879190612598565b60405180910390f35b34801561039c57600080fd5b506103a5610b2f565b6040516103b291906123df565b60405180910390f35b3480156103c757600080fd5b506103d0610b55565b6040516103dd91906123df565b60405180910390f35b3480156103f257600080fd5b506103fb610b7e565b6040516104089190612598565b60405180910390f35b34801561041d57600080fd5b50610426610b84565b604051610433919061248a565b60405180910390f35b610444610bc1565b005b34801561045257600080fd5b5061046d60048036038101906104689190612513565b611073565b60405161047a919061256e565b60405180910390f35b34801561048f57600080fd5b50610498611091565b6040516104a59190612598565b60405180910390f35b3480156104ba57600080fd5b506104c3611097565b6040516104d0919061256e565b60405180910390f35b3480156104e557600080fd5b5061050060048036038101906104fb919061266a565b6110aa565b60405161050d9190612598565b60405180910390f35b61dead81565b60606040518060400160405280600681526020017f4a6f65322e300000000000000000000000000000000000000000000000000000815250905090565b600061056d610566611131565b8484611139565b6001905092915050565b61057f611131565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461060c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610603906126f6565b60405180910390fd5b601360149054906101000a900460ff161561065c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065390612762565b60405180910390fd5b6001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b60115481565b60006012600a6106aa91906128e4565b633b9aca006106b9919061292f565b905090565b60006106cb848484611302565b61078c846106d7611131565b610787856040518060600160405280602881526020016133c760289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061073d611131565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e529092919063ffffffff16565b611139565b600190509392505050565b60006012905090565b600081565b6107ad611131565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461083a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610831906126f6565b60405180910390fd5b6012600a61084891906128e4565b633b9aca00610857919061292f565b600e819055506012600a61086b91906128e4565b633b9aca0061087a919061292f565b600f819055506000600560006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a6108ca91906128e4565b633b9aca006108d9919061292f565b6040516108e69190612598565b60405180910390a1565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610941611131565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c5906126f6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610acd611131565b73ffffffffffffffffffffffffffffffffffffffff1614610aed57600080fd5b6000610af8306108f0565b90506000811115610b0d57610b0c81611eb6565b5b60004790506000811115610b2557610b248161212f565b5b5050565b600e5481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600681526020017f4a4f45322e300000000000000000000000000000000000000000000000000000815250905090565b610bc9611131565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4d906126f6565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cf430601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610ce091906128e4565b633b9aca00610cef919061292f565b611139565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d859190612986565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e329190612986565b6040518363ffffffff1660e01b8152600401610e4f9291906129b3565b6020604051808303816000875af1158015610e6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e929190612986565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f1b306108f0565b600080610f26610b55565b426040518863ffffffff1660e01b8152600401610f4896959493929190612a21565b60606040518083038185885af1158015610f66573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f8b9190612a97565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161102d929190612aea565b6020604051808303816000875af115801561104c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110709190612b3f565b50565b6000611087611080611131565b8484611302565b6001905092915050565b60105481565b600560009054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119f90612bde565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611217576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120e90612c70565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112f59190612598565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611371576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136890612d02565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d790612d94565b60405180910390fd5b60008111611423576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141a90612e26565b60405180910390fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114c75750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561151c57601360149054906101000a900460ff1661151b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151290612e92565b60405180910390fd5b5b600080611527610b55565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156115955750611565610b55565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b89576115d660646115c8600a54600d54116115b5576006546115b9565b6008545b866121b690919063ffffffff16565b61223090919063ffffffff16565b9150600560009054906101000a900460ff161561176557601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116995750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117645743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061171f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171690612f4a565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156118105750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156118665750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561192157600e548311156118b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a790612fb6565b60405180910390fd5b600f54836118bd866108f0565b6118c79190612fd6565b1115611908576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ff90613056565b60405180910390fd5b600d600081548092919061191b90613076565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119aa57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611a4457600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611a05578290505b611a416064611a33600b54600d5411611a2057600754611a24565b6009545b866121b690919063ffffffff16565b61223090919063ffffffff16565b91505b6000611a4f306108f0565b9050601360159054906101000a900460ff16158015611abb5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8015611ad35750601360169054906101000a900460ff165b8015611ae0575060105481115b8015611aef5750600c54600d54115b8015611b455750600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b8757611b67611b6285611b5d8460115461227a565b61227a565b611eb6565b6000479050662386f26fc10000811115611b8557611b844761212f565b5b505b505b6000821115611c8d57611be482600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461229390919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c849190612598565b60405180910390a35b611cea8184611c9c91906130be565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122f190919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d91611d4383856122f190919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461229390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e3685876122f190919063ffffffff16565b604051611e439190612598565b60405180910390a35050505050565b6000838311158290611e9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e91919061248a565b60405180910390fd5b5060008385611ea991906130be565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611eee57611eed6130f2565b5b604051908082528060200260200182016040528015611f1c5781602001602082028036833780820191505090505b5090503081600081518110611f3457611f33613121565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fff9190612986565b8160018151811061201357612012613121565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061207a30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611139565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016120de95949392919061320e565b600060405180830381600087803b1580156120f857600080fd5b505af115801561210c573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600061213c61dead6108f0565b826121479190612fd6565b9050600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156121b1573d6000803e3d6000fd5b505050565b60008083036121c8576000905061222a565b600082846121d6919061292f565b90508284826121e59190613297565b14612225576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221c9061333a565b60405180910390fd5b809150505b92915050565b600061227283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061233b565b905092915050565b6000818311612289578261228b565b815b905092915050565b60008082846122a29190612fd6565b9050838110156122e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122de906133a6565b60405180910390fd5b8091505092915050565b600061233383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e52565b905092915050565b60008083118290612382576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612379919061248a565b60405180910390fd5b50600083856123919190613297565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123c98261239e565b9050919050565b6123d9816123be565b82525050565b60006020820190506123f460008301846123d0565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612434578082015181840152602081019050612419565b60008484015250505050565b6000601f19601f8301169050919050565b600061245c826123fa565b6124668185612405565b9350612476818560208601612416565b61247f81612440565b840191505092915050565b600060208201905081810360008301526124a48184612451565b905092915050565b600080fd5b6124ba816123be565b81146124c557600080fd5b50565b6000813590506124d7816124b1565b92915050565b6000819050919050565b6124f0816124dd565b81146124fb57600080fd5b50565b60008135905061250d816124e7565b92915050565b6000806040838503121561252a576125296124ac565b5b6000612538858286016124c8565b9250506020612549858286016124fe565b9150509250929050565b60008115159050919050565b61256881612553565b82525050565b6000602082019050612583600083018461255f565b92915050565b612592816124dd565b82525050565b60006020820190506125ad6000830184612589565b92915050565b6000806000606084860312156125cc576125cb6124ac565b5b60006125da868287016124c8565b93505060206125eb868287016124c8565b92505060406125fc868287016124fe565b9150509250925092565b600060ff82169050919050565b61261c81612606565b82525050565b60006020820190506126376000830184612613565b92915050565b600060208284031215612653576126526124ac565b5b6000612661848285016124c8565b91505092915050565b60008060408385031215612681576126806124ac565b5b600061268f858286016124c8565b92505060206126a0858286016124c8565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006126e0602083612405565b91506126eb826126aa565b602082019050919050565b6000602082019050818103600083015261270f816126d3565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061274c601783612405565b915061275782612716565b602082019050919050565b6000602082019050818103600083015261277b8161273f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612808578086048111156127e4576127e3612782565b5b60018516156127f35780820291505b8081029050612801856127b1565b94506127c8565b94509492505050565b60008261282157600190506128dd565b8161282f57600090506128dd565b8160018114612845576002811461284f5761287e565b60019150506128dd565b60ff84111561286157612860612782565b5b8360020a91508482111561287857612877612782565b5b506128dd565b5060208310610133831016604e8410600b84101617156128b35782820a9050838111156128ae576128ad612782565b5b6128dd565b6128c084848460016127be565b925090508184048111156128d7576128d6612782565b5b81810290505b9392505050565b60006128ef826124dd565b91506128fa83612606565b92506129277fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612811565b905092915050565b600061293a826124dd565b9150612945836124dd565b9250828202612953816124dd565b9150828204841483151761296a57612969612782565b5b5092915050565b600081519050612980816124b1565b92915050565b60006020828403121561299c5761299b6124ac565b5b60006129aa84828501612971565b91505092915050565b60006040820190506129c860008301856123d0565b6129d560208301846123d0565b9392505050565b6000819050919050565b6000819050919050565b6000612a0b612a06612a01846129dc565b6129e6565b6124dd565b9050919050565b612a1b816129f0565b82525050565b600060c082019050612a3660008301896123d0565b612a436020830188612589565b612a506040830187612a12565b612a5d6060830186612a12565b612a6a60808301856123d0565b612a7760a0830184612589565b979650505050505050565b600081519050612a91816124e7565b92915050565b600080600060608486031215612ab057612aaf6124ac565b5b6000612abe86828701612a82565b9350506020612acf86828701612a82565b9250506040612ae086828701612a82565b9150509250925092565b6000604082019050612aff60008301856123d0565b612b0c6020830184612589565b9392505050565b612b1c81612553565b8114612b2757600080fd5b50565b600081519050612b3981612b13565b92915050565b600060208284031215612b5557612b546124ac565b5b6000612b6384828501612b2a565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612bc8602483612405565b9150612bd382612b6c565b604082019050919050565b60006020820190508181036000830152612bf781612bbb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c5a602283612405565b9150612c6582612bfe565b604082019050919050565b60006020820190508181036000830152612c8981612c4d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612cec602583612405565b9150612cf782612c90565b604082019050919050565b60006020820190508181036000830152612d1b81612cdf565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612d7e602383612405565b9150612d8982612d22565b604082019050919050565b60006020820190508181036000830152612dad81612d71565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612e10602983612405565b9150612e1b82612db4565b604082019050919050565b60006020820190508181036000830152612e3f81612e03565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000612e7c601383612405565b9150612e8782612e46565b602082019050919050565b60006020820190508181036000830152612eab81612e6f565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000612f34604983612405565b9150612f3f82612eb2565b606082019050919050565b60006020820190508181036000830152612f6381612f27565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612fa0601983612405565b9150612fab82612f6a565b602082019050919050565b60006020820190508181036000830152612fcf81612f93565b9050919050565b6000612fe1826124dd565b9150612fec836124dd565b925082820190508082111561300457613003612782565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613040601a83612405565b915061304b8261300a565b602082019050919050565b6000602082019050818103600083015261306f81613033565b9050919050565b6000613081826124dd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130b3576130b2612782565b5b600182019050919050565b60006130c9826124dd565b91506130d4836124dd565b92508282039050818111156130ec576130eb612782565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613185816123be565b82525050565b6000613197838361317c565b60208301905092915050565b6000602082019050919050565b60006131bb82613150565b6131c5818561315b565b93506131d08361316c565b8060005b838110156132015781516131e8888261318b565b97506131f3836131a3565b9250506001810190506131d4565b5085935050505092915050565b600060a0820190506132236000830188612589565b6132306020830187612a12565b818103604083015261324281866131b0565b905061325160608301856123d0565b61325e6080830184612589565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006132a2826124dd565b91506132ad836124dd565b9250826132bd576132bc613268565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613324602183612405565b915061332f826132c8565b604082019050919050565b6000602082019050818103600083015261335381613317565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613390601b83612405565b915061339b8261335a565b602082019050919050565b600060208201905081810360008301526133bf81613383565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202a202a430cfb07306ef26060cb3d5428bf8bb906a56918dc0300c3c80a5184d964736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101445760003560e01c8063715018a6116100b657806395d89b411161006f57806395d89b41146104115780639e78fb4f1461043c578063a9059cbb14610446578063bf474bed14610483578063c876d0b9146104ae578063dd62ed3e146104d95761014b565b8063715018a61461033757806374e4867e1461034e5780637d1db4a5146103655780638bcea939146103905780638da5cb5b146103bb5780638f9a55c0146103e65761014b565b806318160ddd1161010857806318160ddd1461022557806323b872dd14610250578063313ce5671461028d57806358fa63ca146102b85780635e4ae81b146102e357806370a08231146102fa5761014b565b806303fd2a451461015057806306fdde031461017b578063095ea7b3146101a65780630ed6ae84146101e35780630faee56f146101fa5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610516565b60405161017291906123df565b60405180910390f35b34801561018757600080fd5b5061019061051c565b60405161019d919061248a565b60405180910390f35b3480156101b257600080fd5b506101cd60048036038101906101c89190612513565b610559565b6040516101da919061256e565b60405180910390f35b3480156101ef57600080fd5b506101f8610577565b005b34801561020657600080fd5b5061020f610694565b60405161021c9190612598565b60405180910390f35b34801561023157600080fd5b5061023a61069a565b6040516102479190612598565b60405180910390f35b34801561025c57600080fd5b50610277600480360381019061027291906125b3565b6106be565b604051610284919061256e565b60405180910390f35b34801561029957600080fd5b506102a2610797565b6040516102af9190612622565b60405180910390f35b3480156102c457600080fd5b506102cd6107a0565b6040516102da91906123df565b60405180910390f35b3480156102ef57600080fd5b506102f86107a5565b005b34801561030657600080fd5b50610321600480360381019061031c919061263d565b6108f0565b60405161032e9190612598565b60405180910390f35b34801561034357600080fd5b5061034c610939565b005b34801561035a57600080fd5b50610363610a8c565b005b34801561037157600080fd5b5061037a610b29565b6040516103879190612598565b60405180910390f35b34801561039c57600080fd5b506103a5610b2f565b6040516103b291906123df565b60405180910390f35b3480156103c757600080fd5b506103d0610b55565b6040516103dd91906123df565b60405180910390f35b3480156103f257600080fd5b506103fb610b7e565b6040516104089190612598565b60405180910390f35b34801561041d57600080fd5b50610426610b84565b604051610433919061248a565b60405180910390f35b610444610bc1565b005b34801561045257600080fd5b5061046d60048036038101906104689190612513565b611073565b60405161047a919061256e565b60405180910390f35b34801561048f57600080fd5b50610498611091565b6040516104a59190612598565b60405180910390f35b3480156104ba57600080fd5b506104c3611097565b6040516104d0919061256e565b60405180910390f35b3480156104e557600080fd5b5061050060048036038101906104fb919061266a565b6110aa565b60405161050d9190612598565b60405180910390f35b61dead81565b60606040518060400160405280600681526020017f4a6f65322e300000000000000000000000000000000000000000000000000000815250905090565b600061056d610566611131565b8484611139565b6001905092915050565b61057f611131565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461060c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610603906126f6565b60405180910390fd5b601360149054906101000a900460ff161561065c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161065390612762565b60405180910390fd5b6001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b60115481565b60006012600a6106aa91906128e4565b633b9aca006106b9919061292f565b905090565b60006106cb848484611302565b61078c846106d7611131565b610787856040518060600160405280602881526020016133c760289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061073d611131565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e529092919063ffffffff16565b611139565b600190509392505050565b60006012905090565b600081565b6107ad611131565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461083a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610831906126f6565b60405180910390fd5b6012600a61084891906128e4565b633b9aca00610857919061292f565b600e819055506012600a61086b91906128e4565b633b9aca0061087a919061292f565b600f819055506000600560006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a6108ca91906128e4565b633b9aca006108d9919061292f565b6040516108e69190612598565b60405180910390a1565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610941611131565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c5906126f6565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610acd611131565b73ffffffffffffffffffffffffffffffffffffffff1614610aed57600080fd5b6000610af8306108f0565b90506000811115610b0d57610b0c81611eb6565b5b60004790506000811115610b2557610b248161212f565b5b5050565b600e5481565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600681526020017f4a4f45322e300000000000000000000000000000000000000000000000000000815250905090565b610bc9611131565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4d906126f6565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cf430601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610ce091906128e4565b633b9aca00610cef919061292f565b611139565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d61573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d859190612986565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e329190612986565b6040518363ffffffff1660e01b8152600401610e4f9291906129b3565b6020604051808303816000875af1158015610e6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e929190612986565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f1b306108f0565b600080610f26610b55565b426040518863ffffffff1660e01b8152600401610f4896959493929190612a21565b60606040518083038185885af1158015610f66573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f8b9190612a97565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161102d929190612aea565b6020604051808303816000875af115801561104c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110709190612b3f565b50565b6000611087611080611131565b8484611302565b6001905092915050565b60105481565b600560009054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119f90612bde565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611217576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120e90612c70565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112f59190612598565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611371576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136890612d02565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d790612d94565b60405180910390fd5b60008111611423576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141a90612e26565b60405180910390fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114c75750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561151c57601360149054906101000a900460ff1661151b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151290612e92565b60405180910390fd5b5b600080611527610b55565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156115955750611565610b55565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b89576115d660646115c8600a54600d54116115b5576006546115b9565b6008545b866121b690919063ffffffff16565b61223090919063ffffffff16565b9150600560009054906101000a900460ff161561176557601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116995750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156117645743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061171f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171690612f4a565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156118105750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156118665750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561192157600e548311156118b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a790612fb6565b60405180910390fd5b600f54836118bd866108f0565b6118c79190612fd6565b1115611908576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ff90613056565b60405180910390fd5b600d600081548092919061191b90613076565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119aa57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611a4457600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611a05578290505b611a416064611a33600b54600d5411611a2057600754611a24565b6009545b866121b690919063ffffffff16565b61223090919063ffffffff16565b91505b6000611a4f306108f0565b9050601360159054906101000a900460ff16158015611abb5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8015611ad35750601360169054906101000a900460ff165b8015611ae0575060105481115b8015611aef5750600c54600d54115b8015611b455750600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b8757611b67611b6285611b5d8460115461227a565b61227a565b611eb6565b6000479050662386f26fc10000811115611b8557611b844761212f565b5b505b505b6000821115611c8d57611be482600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461229390919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c849190612598565b60405180910390a35b611cea8184611c9c91906130be565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122f190919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d91611d4383856122f190919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461229390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e3685876122f190919063ffffffff16565b604051611e439190612598565b60405180910390a35050505050565b6000838311158290611e9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e91919061248a565b60405180910390fd5b5060008385611ea991906130be565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611eee57611eed6130f2565b5b604051908082528060200260200182016040528015611f1c5781602001602082028036833780820191505090505b5090503081600081518110611f3457611f33613121565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fdb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fff9190612986565b8160018151811061201357612012613121565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061207a30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611139565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016120de95949392919061320e565b600060405180830381600087803b1580156120f857600080fd5b505af115801561210c573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600061213c61dead6108f0565b826121479190612fd6565b9050600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156121b1573d6000803e3d6000fd5b505050565b60008083036121c8576000905061222a565b600082846121d6919061292f565b90508284826121e59190613297565b14612225576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221c9061333a565b60405180910390fd5b809150505b92915050565b600061227283836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061233b565b905092915050565b6000818311612289578261228b565b815b905092915050565b60008082846122a29190612fd6565b9050838110156122e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122de906133a6565b60405180910390fd5b8091505092915050565b600061233383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e52565b905092915050565b60008083118290612382576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612379919061248a565b60405180910390fd5b50600083856123919190613297565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123c98261239e565b9050919050565b6123d9816123be565b82525050565b60006020820190506123f460008301846123d0565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612434578082015181840152602081019050612419565b60008484015250505050565b6000601f19601f8301169050919050565b600061245c826123fa565b6124668185612405565b9350612476818560208601612416565b61247f81612440565b840191505092915050565b600060208201905081810360008301526124a48184612451565b905092915050565b600080fd5b6124ba816123be565b81146124c557600080fd5b50565b6000813590506124d7816124b1565b92915050565b6000819050919050565b6124f0816124dd565b81146124fb57600080fd5b50565b60008135905061250d816124e7565b92915050565b6000806040838503121561252a576125296124ac565b5b6000612538858286016124c8565b9250506020612549858286016124fe565b9150509250929050565b60008115159050919050565b61256881612553565b82525050565b6000602082019050612583600083018461255f565b92915050565b612592816124dd565b82525050565b60006020820190506125ad6000830184612589565b92915050565b6000806000606084860312156125cc576125cb6124ac565b5b60006125da868287016124c8565b93505060206125eb868287016124c8565b92505060406125fc868287016124fe565b9150509250925092565b600060ff82169050919050565b61261c81612606565b82525050565b60006020820190506126376000830184612613565b92915050565b600060208284031215612653576126526124ac565b5b6000612661848285016124c8565b91505092915050565b60008060408385031215612681576126806124ac565b5b600061268f858286016124c8565b92505060206126a0858286016124c8565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006126e0602083612405565b91506126eb826126aa565b602082019050919050565b6000602082019050818103600083015261270f816126d3565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b600061274c601783612405565b915061275782612716565b602082019050919050565b6000602082019050818103600083015261277b8161273f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612808578086048111156127e4576127e3612782565b5b60018516156127f35780820291505b8081029050612801856127b1565b94506127c8565b94509492505050565b60008261282157600190506128dd565b8161282f57600090506128dd565b8160018114612845576002811461284f5761287e565b60019150506128dd565b60ff84111561286157612860612782565b5b8360020a91508482111561287857612877612782565b5b506128dd565b5060208310610133831016604e8410600b84101617156128b35782820a9050838111156128ae576128ad612782565b5b6128dd565b6128c084848460016127be565b925090508184048111156128d7576128d6612782565b5b81810290505b9392505050565b60006128ef826124dd565b91506128fa83612606565b92506129277fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612811565b905092915050565b600061293a826124dd565b9150612945836124dd565b9250828202612953816124dd565b9150828204841483151761296a57612969612782565b5b5092915050565b600081519050612980816124b1565b92915050565b60006020828403121561299c5761299b6124ac565b5b60006129aa84828501612971565b91505092915050565b60006040820190506129c860008301856123d0565b6129d560208301846123d0565b9392505050565b6000819050919050565b6000819050919050565b6000612a0b612a06612a01846129dc565b6129e6565b6124dd565b9050919050565b612a1b816129f0565b82525050565b600060c082019050612a3660008301896123d0565b612a436020830188612589565b612a506040830187612a12565b612a5d6060830186612a12565b612a6a60808301856123d0565b612a7760a0830184612589565b979650505050505050565b600081519050612a91816124e7565b92915050565b600080600060608486031215612ab057612aaf6124ac565b5b6000612abe86828701612a82565b9350506020612acf86828701612a82565b9250506040612ae086828701612a82565b9150509250925092565b6000604082019050612aff60008301856123d0565b612b0c6020830184612589565b9392505050565b612b1c81612553565b8114612b2757600080fd5b50565b600081519050612b3981612b13565b92915050565b600060208284031215612b5557612b546124ac565b5b6000612b6384828501612b2a565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612bc8602483612405565b9150612bd382612b6c565b604082019050919050565b60006020820190508181036000830152612bf781612bbb565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c5a602283612405565b9150612c6582612bfe565b604082019050919050565b60006020820190508181036000830152612c8981612c4d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612cec602583612405565b9150612cf782612c90565b604082019050919050565b60006020820190508181036000830152612d1b81612cdf565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612d7e602383612405565b9150612d8982612d22565b604082019050919050565b60006020820190508181036000830152612dad81612d71565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612e10602983612405565b9150612e1b82612db4565b604082019050919050565b60006020820190508181036000830152612e3f81612e03565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000612e7c601383612405565b9150612e8782612e46565b602082019050919050565b60006020820190508181036000830152612eab81612e6f565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000612f34604983612405565b9150612f3f82612eb2565b606082019050919050565b60006020820190508181036000830152612f6381612f27565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612fa0601983612405565b9150612fab82612f6a565b602082019050919050565b60006020820190508181036000830152612fcf81612f93565b9050919050565b6000612fe1826124dd565b9150612fec836124dd565b925082820190508082111561300457613003612782565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000613040601a83612405565b915061304b8261300a565b602082019050919050565b6000602082019050818103600083015261306f81613033565b9050919050565b6000613081826124dd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130b3576130b2612782565b5b600182019050919050565b60006130c9826124dd565b91506130d4836124dd565b92508282039050818111156130ec576130eb612782565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613185816123be565b82525050565b6000613197838361317c565b60208301905092915050565b6000602082019050919050565b60006131bb82613150565b6131c5818561315b565b93506131d08361316c565b8060005b838110156132015781516131e8888261318b565b97506131f3836131a3565b9250506001810190506131d4565b5085935050505092915050565b600060a0820190506132236000830188612589565b6132306020830187612a12565b818103604083015261324281866131b0565b905061325160608301856123d0565b61325e6080830184612589565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006132a2826124dd565b91506132ad836124dd565b9250826132bd576132bc613268565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613324602183612405565b915061332f826132c8565b604082019050919050565b6000602082019050818103600083015261335381613317565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613390601b83612405565b915061339b8261335a565b602082019050919050565b600060208201905081810360008301526133bf81613383565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212202a202a430cfb07306ef26060cb3d5428bf8bb906a56918dc0300c3c80a5184d964736f6c63430008130033

Deployed Bytecode Sourcemap

3586:8555:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3671:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6443:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7276:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5699:170;;;;;;;;;;;;;:::i;:::-;;4949:50;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6720:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7445:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6629:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3760:82;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11379:196;;;;;;;;;;;;;:::i;:::-;;6823:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2667:148;;;;;;;;;;;;;:::i;:::-;;11775:363;;;;;;;;;;;;;:::i;:::-;;4745:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5057:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2453:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4801:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6534:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5877:558;;;:::i;:::-;;6950:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4871:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4116:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7125:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3671:82;3710:42;3671:82;:::o;6443:83::-;6480:13;6513:5;;;;;;;;;;;;;;;;;6506:12;;6443:83;:::o;7276:161::-;7351:4;7368:39;7377:12;:10;:12::i;:::-;7391:7;7400:6;7368:8;:39::i;:::-;7425:4;7418:11;;7276:161;;;;:::o;5699:170::-;2590:12;:10;:12::i;:::-;2580:22;;:6;;;;;;;;;;:22;;;2572:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5763:11:::1;;;;;;;;;;;5762:12;5754:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;5828:4;5814:11;;:18;;;;;;;;;;;;;;;;;;5857:4;5843:11;;:18;;;;;;;;;;;;;;;;;;5699:170::o:0;4949:50::-;;;;:::o;6720:95::-;6773:7;4564:2;4623;:13;;;;:::i;:::-;4608:12;:28;;;;:::i;:::-;6793:14;;6720:95;:::o;7445:313::-;7543:4;7560:36;7570:6;7578:9;7589:6;7560:9;:36::i;:::-;7607:121;7616:6;7624:12;:10;:12::i;:::-;7638:89;7676:6;7638:89;;;;;;;;;;;;;;;;;:11;:19;7650:6;7638:19;;;;;;;;;;;;;;;:33;7658:12;:10;:12::i;:::-;7638:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7607:8;:121::i;:::-;7746:4;7739:11;;7445:313;;;;;:::o;6629:83::-;6670:5;4564:2;6688:16;;6629:83;:::o;3760:82::-;3799:42;3760:82;:::o;11379:196::-;2590:12;:10;:12::i;:::-;2580:22;;:6;;;;;;;;;;:22;;;2572:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4564:2:::1;4623;:13;;;;:::i;:::-;4608:12;:28;;;;:::i;:::-;11432:12;:22;;;;4564:2;4623;:13;;;;:::i;:::-;4608:12;:28;;;;:::i;:::-;11465:14;:22;;;;11519:5;11498:20;;:26;;;;;;;;;;;;;;;;;;11540:27;4564:2;4623;:13;;;;:::i;:::-;4608:12;:28;;;;:::i;:::-;11540:27;;;;;;:::i;:::-;;;;;;;;11379:196::o:0;6823:119::-;6889:7;6916:9;:18;6926:7;6916:18;;;;;;;;;;;;;;;;6909:25;;6823:119;;;:::o;2667:148::-;2590:12;:10;:12::i;:::-;2580:22;;:6;;;;;;;;;;:22;;;2572:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2774:1:::1;2737:40;;2758:6;::::0;::::1;;;;;;;;2737:40;;;;;;;;;;;;2805:1;2788:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2667:148::o:0;11775:363::-;11844:11;;;;;;;;;;;11828:27;;:12;:10;:12::i;:::-;:27;;;11820:36;;;;;;11867:20;11890:24;11908:4;11890:9;:24::i;:::-;11867:47;;11945:1;11930:12;:16;11927:76;;;11961:30;11978:12;11961:16;:30::i;:::-;11927:76;12015:18;12034:21;12015:40;;12080:1;12069:10;:12;12066:65;;;12095:24;12108:10;12095:12;:24::i;:::-;12066:65;11809:329;;11775:363::o;4745:49::-;;;;:::o;5057:24::-;;;;;;;;;;;;;:::o;2453:79::-;2491:7;2518:6;;;;;;;;;;;2511:13;;2453:79;:::o;4801:51::-;;;;:::o;6534:87::-;6573:13;6606:7;;;;;;;;;;;;;;;;;6599:14;;6534:87;:::o;5877:558::-;2590:12;:10;:12::i;:::-;2580:22;;:6;;;;;;;;;;:22;;;2572:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5978:42:::1;5941:15;;:80;;;;;;;;;;;;;;;;;;6032:58;6049:4;6064:15;;;;;;;;;;;4564:2;4623;:13;;;;:::i;:::-;4608:12;:28;;;;:::i;:::-;6032:8;:58::i;:::-;6131:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6113:55;;;6177:4;6184:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6113:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6101:9;;:106;;;;;;;;;;;;;;;;;;6218:15;;;;;;;;;;;:31;;;6257:21;6288:4;6294:24;6312:4;6294:9;:24::i;:::-;6319:1;6321::::0;6323:7:::1;:5;:7::i;:::-;6331:15;6218:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;6365:9;;;;;;;;;;;6358:25;;;6392:15;;;;;;;;;;;6410:14;6358:67;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;5877:558::o:0;6950:167::-;7028:4;7045:42;7055:12;:10;:12::i;:::-;7069:9;7080:6;7045:9;:42::i;:::-;7105:4;7098:11;;6950:167;;;;:::o;4871:55::-;;;;:::o;4116:32::-;;;;;;;;;;;;;:::o;7125:143::-;7206:7;7233:11;:18;7245:5;7233:18;;;;;;;;;;;;;;;:27;7252:7;7233:27;;;;;;;;;;;;;;;;7226:34;;7125:143;;;;:::o;208:98::-;261:7;288:10;281:17;;208:98;:::o;7766:335::-;7876:1;7859:19;;:5;:19;;;7851:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7957:1;7938:21;;:7;:21;;;7930:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8039:6;8009:11;:18;8021:5;8009:18;;;;;;;;;;;;;;;:27;8028:7;8009:27;;;;;;;;;;;;;;;:36;;;;8077:7;8061:32;;8070:5;8061:32;;;8086:6;8061:32;;;;;;:::i;:::-;;;;;;;;7766:335;;;:::o;8109:2663::-;8213:1;8197:18;;:4;:18;;;8189:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8290:1;8276:16;;:2;:16;;;8268:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8360:1;8351:6;:10;8343:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8425:18;:24;8444:4;8425:24;;;;;;;;;;;;;;;;;;;;;;;;;8424:25;:52;;;;;8454:18;:22;8473:2;8454:22;;;;;;;;;;;;;;;;;;;;;;;;;8453:23;8424:52;8420:101;;;8486:11;;;;;;;;;;;8478:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;8420:101;8534:17;8564:14;8603:7;:5;:7::i;:::-;8595:15;;:4;:15;;;;:32;;;;;8620:7;:5;:7::i;:::-;8614:13;;:2;:13;;;;8595:32;8591:1814;;;8656:76;8728:3;8656:67;8678:15;;8668:9;;:25;8667:55;;8708:14;;8667:55;;;8695:12;;8667:55;8656:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8644:88;;8753:20;;;;;;;;;;;8749:504;;;8814:15;;;;;;;;;;;8800:30;;:2;:30;;;;:58;;;;;8848:9;;;;;;;;;;;8834:24;;:2;:24;;;;8800:58;8796:440;;;8994:12;8921:28;:39;8950:9;8921:39;;;;;;;;;;;;;;;;:85;8885:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;9202:12;9160:28;:39;9189:9;9160:39;;;;;;;;;;;;;;;:54;;;;8796:440;8749:504;9281:9;;;;;;;;;;;9273:17;;:4;:17;;;:51;;;;;9308:15;;;;;;;;;;;9294:30;;:2;:30;;;;9273:51;:79;;;;;9330:18;:22;9349:2;9330:22;;;;;;;;;;;;;;;;;;;;;;;;;9328:24;9273:79;9269:309;;;9392:12;;9382:6;:22;;9374:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9487:14;;9477:6;9461:13;9471:2;9461:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9453:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9551:9;;:11;;;;;;;;;:::i;:::-;;;;;;9269:309;9604:9;;;;;;;;;;;9598:15;;:2;:15;;;:39;;;;;9632:4;9617:20;;:4;:20;;;;9598:39;9594:238;;;9662:18;:24;9681:4;9662:24;;;;;;;;;;;;;;;;;;;;;;;;;9658:47;;;9699:6;9690:15;;9658:47;9736:79;9811:3;9736:70;9758:16;;9748:9;;:26;9747:58;;9790:15;;9747:58;;;9776:13;;9747:58;9736:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;9724:91;;9594:238;9848:28;9879:24;9897:4;9879:9;:24::i;:::-;9848:55;;9923:6;;;;;;;;;;;9922:7;:26;;;;;9939:9;;;;;;;;;;;9933:15;;:2;:15;;;9922:26;:41;;;;;9952:11;;;;;;;;;;;9922:41;:83;;;;;9988:17;;9967:20;:38;9922:83;:115;;;;;10019:18;;10009:9;;:28;9922:115;:144;;;;;10042:18;:24;10061:4;10042:24;;;;;;;;;;;;;;;;;;;;;;;;;10041:25;9922:144;9918:476;;;10103:67;10120:49;10124:6;10131:37;10135:20;10156:11;;10131:3;:37::i;:::-;10120:3;:49::i;:::-;10103:16;:67::i;:::-;10189:26;10218:21;10189:50;;10282:17;10261:18;:38;10258:121;;;10324:35;10337:21;10324:12;:35::i;:::-;10258:121;10068:326;9918:476;8629:1776;8591:1814;10432:1;10420:9;:13;10417:163;;;10472:39;10501:9;10472;:24;10490:4;10472:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10447:9;:24;10465:4;10447:24;;;;;;;;;;;;;;;:64;;;;10552:4;10529:39;;10538:4;10529:39;;;10558:9;10529:39;;;;;;:::i;:::-;;;;;;;;10417:163;10608:34;10635:6;10628;:13;;;;:::i;:::-;10608:9;:15;10618:4;10608:15;;;;;;;;;;;;;;;;:19;;:34;;;;:::i;:::-;10592:9;:15;10602:4;10592:15;;;;;;;;;;;;;;;:50;;;;10667:40;10685:21;10696:9;10685:6;:10;;:21;;;;:::i;:::-;10667:9;:13;10677:2;10667:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10653:9;:13;10663:2;10653:13;;;;;;;;;;;;;;;:54;;;;10738:2;10723:41;;10732:4;10723:41;;;10742:21;10753:9;10742:6;:10;;:21;;;;:::i;:::-;10723:41;;;;;;:::i;:::-;;;;;;;;8178:2594;;8109:2663;;;:::o;1345:190::-;1431:7;1464:1;1459;:6;;1467:12;1451:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1491:9;1507:1;1503;:5;;;;:::i;:::-;1491:17;;1526:1;1519:8;;;1345:190;;;;;:::o;10888:483::-;5285:4;5276:6;;:13;;;;;;;;;;;;;;;;;;10966:21:::1;11004:1;10990:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10966:40;;11035:4;11017;11022:1;11017:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11061:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11051:4;11056:1;11051:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11094:62;11111:4;11126:15;;;;;;;;;;;11144:11;11094:8;:62::i;:::-;11167:15;;;;;;;;;;;:66;;;11248:11;11274:1;11290:4;11317;11337:15;11167:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10955:416;5321:5:::0;5312:6;;:14;;;;;;;;;;;;;;;;;;10888:483;:::o;11583:147::-;11640:15;11667;3710:42;11667:9;:15::i;:::-;11658:6;:24;;;;:::i;:::-;11640:42;;11693:11;;;;;;;;;;;:20;;:29;11714:7;11693:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11629:101;11583:147;:::o;1543:246::-;1601:7;1630:1;1625;:6;1621:47;;1655:1;1648:8;;;;1621:47;1678:9;1694:1;1690;:5;;;;:::i;:::-;1678:17;;1723:1;1718;1714;:5;;;;:::i;:::-;:10;1706:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1780:1;1773:8;;;1543:246;;;;;:::o;1797:132::-;1855:7;1882:39;1886:1;1889;1882:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1875:46;;1797:132;;;;:::o;10782:98::-;10839:7;10866:1;10864;:3;10863:9;;10871:1;10863:9;;;10869:1;10863:9;10856:16;;10782:98;;;;:::o;1014:179::-;1072:7;1092:9;1108:1;1104;:5;;;;:::i;:::-;1092:17;;1133:1;1128;:6;;1120:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1184:1;1177:8;;;1014:179;;;;:::o;1201:136::-;1259:7;1286:43;1290:1;1293;1286:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1279:50;;1201:136;;;;:::o;1937:189::-;2023:7;2055:1;2051;:5;2058:12;2043:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2082:9;2098:1;2094;:5;;;;:::i;:::-;2082:17;;2117:1;2110:8;;;1937:189;;;;;:::o;7:126:1:-;44:7;84:42;77:5;73:54;62:65;;7:126;;;:::o;139:96::-;176:7;205:24;223:5;205:24;:::i;:::-;194:35;;139:96;;;:::o;241:118::-;328:24;346:5;328:24;:::i;:::-;323:3;316:37;241:118;;:::o;365:222::-;458:4;496:2;485:9;481:18;473:26;;509:71;577:1;566:9;562:17;553:6;509:71;:::i;:::-;365:222;;;;:::o;593:99::-;645:6;679:5;673:12;663:22;;593:99;;;:::o;698:169::-;782:11;816:6;811:3;804:19;856:4;851:3;847:14;832:29;;698:169;;;;:::o;873:246::-;954:1;964:113;978:6;975:1;972:13;964:113;;;1063:1;1058:3;1054:11;1048:18;1044:1;1039:3;1035:11;1028:39;1000:2;997:1;993:10;988:15;;964:113;;;1111:1;1102:6;1097:3;1093:16;1086:27;935:184;873:246;;;:::o;1125:102::-;1166:6;1217:2;1213:7;1208:2;1201:5;1197:14;1193:28;1183:38;;1125:102;;;:::o;1233:377::-;1321:3;1349:39;1382:5;1349:39;:::i;:::-;1404:71;1468:6;1463:3;1404:71;:::i;:::-;1397:78;;1484:65;1542:6;1537:3;1530:4;1523:5;1519:16;1484:65;:::i;:::-;1574:29;1596:6;1574:29;:::i;:::-;1569:3;1565:39;1558:46;;1325:285;1233:377;;;;:::o;1616:313::-;1729:4;1767:2;1756:9;1752:18;1744:26;;1816:9;1810:4;1806:20;1802:1;1791:9;1787:17;1780:47;1844:78;1917:4;1908:6;1844:78;:::i;:::-;1836:86;;1616:313;;;;:::o;2016:117::-;2125:1;2122;2115:12;2262:122;2335:24;2353:5;2335:24;:::i;:::-;2328:5;2325:35;2315:63;;2374:1;2371;2364:12;2315:63;2262:122;:::o;2390:139::-;2436:5;2474:6;2461:20;2452:29;;2490:33;2517:5;2490:33;:::i;:::-;2390:139;;;;:::o;2535:77::-;2572:7;2601:5;2590:16;;2535:77;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:118::-;3885:24;3903:5;3885:24;:::i;:::-;3880:3;3873:37;3798:118;;:::o;3922:222::-;4015:4;4053:2;4042:9;4038:18;4030:26;;4066:71;4134:1;4123:9;4119:17;4110:6;4066:71;:::i;:::-;3922:222;;;;:::o;4150:619::-;4227:6;4235;4243;4292:2;4280:9;4271:7;4267:23;4263:32;4260:119;;;4298:79;;:::i;:::-;4260:119;4418:1;4443:53;4488:7;4479:6;4468:9;4464:22;4443:53;:::i;:::-;4433:63;;4389:117;4545:2;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4516:118;4673:2;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4644:118;4150:619;;;;;:::o;4775:86::-;4810:7;4850:4;4843:5;4839:16;4828:27;;4775:86;;;:::o;4867:112::-;4950:22;4966:5;4950:22;:::i;:::-;4945:3;4938:35;4867:112;;:::o;4985:214::-;5074:4;5112:2;5101:9;5097:18;5089:26;;5125:67;5189:1;5178:9;5174:17;5165:6;5125:67;:::i;:::-;4985:214;;;;:::o;5205:329::-;5264:6;5313:2;5301:9;5292:7;5288:23;5284:32;5281:119;;;5319:79;;:::i;:::-;5281:119;5439:1;5464:53;5509:7;5500:6;5489:9;5485:22;5464:53;:::i;:::-;5454:63;;5410:117;5205:329;;;;:::o;5540:474::-;5608:6;5616;5665:2;5653:9;5644:7;5640:23;5636:32;5633:119;;;5671:79;;:::i;:::-;5633:119;5791:1;5816:53;5861:7;5852:6;5841:9;5837:22;5816:53;:::i;:::-;5806:63;;5762:117;5918:2;5944:53;5989:7;5980:6;5969:9;5965:22;5944:53;:::i;:::-;5934:63;;5889:118;5540:474;;;;;:::o;6020:182::-;6160:34;6156:1;6148:6;6144:14;6137:58;6020:182;:::o;6208:366::-;6350:3;6371:67;6435:2;6430:3;6371:67;:::i;:::-;6364:74;;6447:93;6536:3;6447:93;:::i;:::-;6565:2;6560:3;6556:12;6549:19;;6208:366;;;:::o;6580:419::-;6746:4;6784:2;6773:9;6769:18;6761:26;;6833:9;6827:4;6823:20;6819:1;6808:9;6804:17;6797:47;6861:131;6987:4;6861:131;:::i;:::-;6853:139;;6580:419;;;:::o;7005:173::-;7145:25;7141:1;7133:6;7129:14;7122:49;7005:173;:::o;7184:366::-;7326:3;7347:67;7411:2;7406:3;7347:67;:::i;:::-;7340:74;;7423:93;7512:3;7423:93;:::i;:::-;7541:2;7536:3;7532:12;7525:19;;7184:366;;;:::o;7556:419::-;7722:4;7760:2;7749:9;7745:18;7737:26;;7809:9;7803:4;7799:20;7795:1;7784:9;7780:17;7773:47;7837:131;7963:4;7837:131;:::i;:::-;7829:139;;7556:419;;;:::o;7981:180::-;8029:77;8026:1;8019:88;8126:4;8123:1;8116:15;8150:4;8147:1;8140:15;8167:102;8209:8;8256:5;8253:1;8249:13;8228:34;;8167:102;;;:::o;8275:848::-;8336:5;8343:4;8367:6;8358:15;;8391:5;8382:14;;8405:712;8426:1;8416:8;8413:15;8405:712;;;8521:4;8516:3;8512:14;8506:4;8503:24;8500:50;;;8530:18;;:::i;:::-;8500:50;8580:1;8570:8;8566:16;8563:451;;;8995:4;8988:5;8984:16;8975:25;;8563:451;9045:4;9039;9035:15;9027:23;;9075:32;9098:8;9075:32;:::i;:::-;9063:44;;8405:712;;;8275:848;;;;;;;:::o;9129:1073::-;9183:5;9374:8;9364:40;;9395:1;9386:10;;9397:5;;9364:40;9423:4;9413:36;;9440:1;9431:10;;9442:5;;9413:36;9509:4;9557:1;9552:27;;;;9593:1;9588:191;;;;9502:277;;9552:27;9570:1;9561:10;;9572:5;;;9588:191;9633:3;9623:8;9620:17;9617:43;;;9640:18;;:::i;:::-;9617:43;9689:8;9686:1;9682:16;9673:25;;9724:3;9717:5;9714:14;9711:40;;;9731:18;;:::i;:::-;9711:40;9764:5;;;9502:277;;9888:2;9878:8;9875:16;9869:3;9863:4;9860:13;9856:36;9838:2;9828:8;9825:16;9820:2;9814:4;9811:12;9807:35;9791:111;9788:246;;;9944:8;9938:4;9934:19;9925:28;;9979:3;9972:5;9969:14;9966:40;;;9986:18;;:::i;:::-;9966:40;10019:5;;9788:246;10059:42;10097:3;10087:8;10081:4;10078:1;10059:42;:::i;:::-;10044:57;;;;10133:4;10128:3;10124:14;10117:5;10114:25;10111:51;;;10142:18;;:::i;:::-;10111:51;10191:4;10184:5;10180:16;10171:25;;9129:1073;;;;;;:::o;10208:281::-;10266:5;10290:23;10308:4;10290:23;:::i;:::-;10282:31;;10334:25;10350:8;10334:25;:::i;:::-;10322:37;;10378:104;10415:66;10405:8;10399:4;10378:104;:::i;:::-;10369:113;;10208:281;;;;:::o;10495:410::-;10535:7;10558:20;10576:1;10558:20;:::i;:::-;10553:25;;10592:20;10610:1;10592:20;:::i;:::-;10587:25;;10647:1;10644;10640:9;10669:30;10687:11;10669:30;:::i;:::-;10658:41;;10848:1;10839:7;10835:15;10832:1;10829:22;10809:1;10802:9;10782:83;10759:139;;10878:18;;:::i;:::-;10759:139;10543:362;10495:410;;;;:::o;10911:143::-;10968:5;10999:6;10993:13;10984:22;;11015:33;11042:5;11015:33;:::i;:::-;10911:143;;;;:::o;11060:351::-;11130:6;11179:2;11167:9;11158:7;11154:23;11150:32;11147:119;;;11185:79;;:::i;:::-;11147:119;11305:1;11330:64;11386:7;11377:6;11366:9;11362:22;11330:64;:::i;:::-;11320:74;;11276:128;11060:351;;;;:::o;11417:332::-;11538:4;11576:2;11565:9;11561:18;11553:26;;11589:71;11657:1;11646:9;11642:17;11633:6;11589:71;:::i;:::-;11670:72;11738:2;11727:9;11723:18;11714:6;11670:72;:::i;:::-;11417:332;;;;;:::o;11755:85::-;11800:7;11829:5;11818:16;;11755:85;;;:::o;11846:60::-;11874:3;11895:5;11888:12;;11846:60;;;:::o;11912:158::-;11970:9;12003:61;12021:42;12030:32;12056:5;12030:32;:::i;:::-;12021:42;:::i;:::-;12003:61;:::i;:::-;11990:74;;11912:158;;;:::o;12076:147::-;12171:45;12210:5;12171:45;:::i;:::-;12166:3;12159:58;12076:147;;:::o;12229:807::-;12478:4;12516:3;12505:9;12501:19;12493:27;;12530:71;12598:1;12587:9;12583:17;12574:6;12530:71;:::i;:::-;12611:72;12679:2;12668:9;12664:18;12655:6;12611:72;:::i;:::-;12693:80;12769:2;12758:9;12754:18;12745:6;12693:80;:::i;:::-;12783;12859:2;12848:9;12844:18;12835:6;12783:80;:::i;:::-;12873:73;12941:3;12930:9;12926:19;12917:6;12873:73;:::i;:::-;12956;13024:3;13013:9;13009:19;13000:6;12956:73;:::i;:::-;12229:807;;;;;;;;;:::o;13042:143::-;13099:5;13130:6;13124:13;13115:22;;13146:33;13173:5;13146:33;:::i;:::-;13042:143;;;;:::o;13191:663::-;13279:6;13287;13295;13344:2;13332:9;13323:7;13319:23;13315:32;13312:119;;;13350:79;;:::i;:::-;13312:119;13470:1;13495:64;13551:7;13542:6;13531:9;13527:22;13495:64;:::i;:::-;13485:74;;13441:128;13608:2;13634:64;13690:7;13681:6;13670:9;13666:22;13634:64;:::i;:::-;13624:74;;13579:129;13747:2;13773:64;13829:7;13820:6;13809:9;13805:22;13773:64;:::i;:::-;13763:74;;13718:129;13191:663;;;;;:::o;13860:332::-;13981:4;14019:2;14008:9;14004:18;13996:26;;14032:71;14100:1;14089:9;14085:17;14076:6;14032:71;:::i;:::-;14113:72;14181:2;14170:9;14166:18;14157:6;14113:72;:::i;:::-;13860:332;;;;;:::o;14198:116::-;14268:21;14283:5;14268:21;:::i;:::-;14261:5;14258:32;14248:60;;14304:1;14301;14294:12;14248:60;14198:116;:::o;14320:137::-;14374:5;14405:6;14399:13;14390:22;;14421:30;14445:5;14421:30;:::i;:::-;14320:137;;;;:::o;14463:345::-;14530:6;14579:2;14567:9;14558:7;14554:23;14550:32;14547:119;;;14585:79;;:::i;:::-;14547:119;14705:1;14730:61;14783:7;14774:6;14763:9;14759:22;14730:61;:::i;:::-;14720:71;;14676:125;14463:345;;;;:::o;14814:223::-;14954:34;14950:1;14942:6;14938:14;14931:58;15023:6;15018:2;15010:6;15006:15;14999:31;14814:223;:::o;15043:366::-;15185:3;15206:67;15270:2;15265:3;15206:67;:::i;:::-;15199:74;;15282:93;15371:3;15282:93;:::i;:::-;15400:2;15395:3;15391:12;15384:19;;15043:366;;;:::o;15415:419::-;15581:4;15619:2;15608:9;15604:18;15596:26;;15668:9;15662:4;15658:20;15654:1;15643:9;15639:17;15632:47;15696:131;15822:4;15696:131;:::i;:::-;15688:139;;15415:419;;;:::o;15840:221::-;15980:34;15976:1;15968:6;15964:14;15957:58;16049:4;16044:2;16036:6;16032:15;16025:29;15840:221;:::o;16067:366::-;16209:3;16230:67;16294:2;16289:3;16230:67;:::i;:::-;16223:74;;16306:93;16395:3;16306:93;:::i;:::-;16424:2;16419:3;16415:12;16408:19;;16067:366;;;:::o;16439:419::-;16605:4;16643:2;16632:9;16628:18;16620:26;;16692:9;16686:4;16682:20;16678:1;16667:9;16663:17;16656:47;16720:131;16846:4;16720:131;:::i;:::-;16712:139;;16439:419;;;:::o;16864:224::-;17004:34;17000:1;16992:6;16988:14;16981:58;17073:7;17068:2;17060:6;17056:15;17049:32;16864:224;:::o;17094:366::-;17236:3;17257:67;17321:2;17316:3;17257:67;:::i;:::-;17250:74;;17333:93;17422:3;17333:93;:::i;:::-;17451:2;17446:3;17442:12;17435:19;;17094:366;;;:::o;17466:419::-;17632:4;17670:2;17659:9;17655:18;17647:26;;17719:9;17713:4;17709:20;17705:1;17694:9;17690:17;17683:47;17747:131;17873:4;17747:131;:::i;:::-;17739:139;;17466:419;;;:::o;17891:222::-;18031:34;18027:1;18019:6;18015:14;18008:58;18100:5;18095:2;18087:6;18083:15;18076:30;17891:222;:::o;18119:366::-;18261:3;18282:67;18346:2;18341:3;18282:67;:::i;:::-;18275:74;;18358:93;18447:3;18358:93;:::i;:::-;18476:2;18471:3;18467:12;18460:19;;18119:366;;;:::o;18491:419::-;18657:4;18695:2;18684:9;18680:18;18672:26;;18744:9;18738:4;18734:20;18730:1;18719:9;18715:17;18708:47;18772:131;18898:4;18772:131;:::i;:::-;18764:139;;18491:419;;;:::o;18916:228::-;19056:34;19052:1;19044:6;19040:14;19033:58;19125:11;19120:2;19112:6;19108:15;19101:36;18916:228;:::o;19150:366::-;19292:3;19313:67;19377:2;19372:3;19313:67;:::i;:::-;19306:74;;19389:93;19478:3;19389:93;:::i;:::-;19507:2;19502:3;19498:12;19491:19;;19150:366;;;:::o;19522:419::-;19688:4;19726:2;19715:9;19711:18;19703:26;;19775:9;19769:4;19765:20;19761:1;19750:9;19746:17;19739:47;19803:131;19929:4;19803:131;:::i;:::-;19795:139;;19522:419;;;:::o;19947:169::-;20087:21;20083:1;20075:6;20071:14;20064:45;19947:169;:::o;20122:366::-;20264:3;20285:67;20349:2;20344:3;20285:67;:::i;:::-;20278:74;;20361:93;20450:3;20361:93;:::i;:::-;20479:2;20474:3;20470:12;20463:19;;20122:366;;;:::o;20494:419::-;20660:4;20698:2;20687:9;20683:18;20675:26;;20747:9;20741:4;20737:20;20733:1;20722:9;20718:17;20711:47;20775:131;20901:4;20775:131;:::i;:::-;20767:139;;20494:419;;;:::o;20919:297::-;21059:34;21055:1;21047:6;21043:14;21036:58;21128:34;21123:2;21115:6;21111:15;21104:59;21197:11;21192:2;21184:6;21180:15;21173:36;20919:297;:::o;21222:366::-;21364:3;21385:67;21449:2;21444:3;21385:67;:::i;:::-;21378:74;;21461:93;21550:3;21461:93;:::i;:::-;21579:2;21574:3;21570:12;21563:19;;21222:366;;;:::o;21594:419::-;21760:4;21798:2;21787:9;21783:18;21775:26;;21847:9;21841:4;21837:20;21833:1;21822:9;21818:17;21811:47;21875:131;22001:4;21875:131;:::i;:::-;21867:139;;21594:419;;;:::o;22019:175::-;22159:27;22155:1;22147:6;22143:14;22136:51;22019:175;:::o;22200:366::-;22342:3;22363:67;22427:2;22422:3;22363:67;:::i;:::-;22356:74;;22439:93;22528:3;22439:93;:::i;:::-;22557:2;22552:3;22548:12;22541:19;;22200:366;;;:::o;22572:419::-;22738:4;22776:2;22765:9;22761:18;22753:26;;22825:9;22819:4;22815:20;22811:1;22800:9;22796:17;22789:47;22853:131;22979:4;22853:131;:::i;:::-;22845:139;;22572:419;;;:::o;22997:191::-;23037:3;23056:20;23074:1;23056:20;:::i;:::-;23051:25;;23090:20;23108:1;23090:20;:::i;:::-;23085:25;;23133:1;23130;23126:9;23119:16;;23154:3;23151:1;23148:10;23145:36;;;23161:18;;:::i;:::-;23145:36;22997:191;;;;:::o;23194:176::-;23334:28;23330:1;23322:6;23318:14;23311:52;23194:176;:::o;23376:366::-;23518:3;23539:67;23603:2;23598:3;23539:67;:::i;:::-;23532:74;;23615:93;23704:3;23615:93;:::i;:::-;23733:2;23728:3;23724:12;23717:19;;23376:366;;;:::o;23748:419::-;23914:4;23952:2;23941:9;23937:18;23929:26;;24001:9;23995:4;23991:20;23987:1;23976:9;23972:17;23965:47;24029:131;24155:4;24029:131;:::i;:::-;24021:139;;23748:419;;;:::o;24173:233::-;24212:3;24235:24;24253:5;24235:24;:::i;:::-;24226:33;;24281:66;24274:5;24271:77;24268:103;;24351:18;;:::i;:::-;24268:103;24398:1;24391:5;24387:13;24380:20;;24173:233;;;:::o;24412:194::-;24452:4;24472:20;24490:1;24472:20;:::i;:::-;24467:25;;24506:20;24524:1;24506:20;:::i;:::-;24501:25;;24550:1;24547;24543:9;24535:17;;24574:1;24568:4;24565:11;24562:37;;;24579:18;;:::i;:::-;24562:37;24412:194;;;;:::o;24612:180::-;24660:77;24657:1;24650:88;24757:4;24754:1;24747:15;24781:4;24778:1;24771:15;24798:180;24846:77;24843:1;24836:88;24943:4;24940:1;24933:15;24967:4;24964:1;24957:15;24984:114;25051:6;25085:5;25079:12;25069:22;;24984:114;;;:::o;25104:184::-;25203:11;25237:6;25232:3;25225:19;25277:4;25272:3;25268:14;25253:29;;25104:184;;;;:::o;25294:132::-;25361:4;25384:3;25376:11;;25414:4;25409:3;25405:14;25397:22;;25294:132;;;:::o;25432:108::-;25509:24;25527:5;25509:24;:::i;:::-;25504:3;25497:37;25432:108;;:::o;25546:179::-;25615:10;25636:46;25678:3;25670:6;25636:46;:::i;:::-;25714:4;25709:3;25705:14;25691:28;;25546:179;;;;:::o;25731:113::-;25801:4;25833;25828:3;25824:14;25816:22;;25731:113;;;:::o;25880:732::-;25999:3;26028:54;26076:5;26028:54;:::i;:::-;26098:86;26177:6;26172:3;26098:86;:::i;:::-;26091:93;;26208:56;26258:5;26208:56;:::i;:::-;26287:7;26318:1;26303:284;26328:6;26325:1;26322:13;26303:284;;;26404:6;26398:13;26431:63;26490:3;26475:13;26431:63;:::i;:::-;26424:70;;26517:60;26570:6;26517:60;:::i;:::-;26507:70;;26363:224;26350:1;26347;26343:9;26338:14;;26303:284;;;26307:14;26603:3;26596:10;;26004:608;;;25880:732;;;;:::o;26618:831::-;26881:4;26919:3;26908:9;26904:19;26896:27;;26933:71;27001:1;26990:9;26986:17;26977:6;26933:71;:::i;:::-;27014:80;27090:2;27079:9;27075:18;27066:6;27014:80;:::i;:::-;27141:9;27135:4;27131:20;27126:2;27115:9;27111:18;27104:48;27169:108;27272:4;27263:6;27169:108;:::i;:::-;27161:116;;27287:72;27355:2;27344:9;27340:18;27331:6;27287:72;:::i;:::-;27369:73;27437:3;27426:9;27422:19;27413:6;27369:73;:::i;:::-;26618:831;;;;;;;;:::o;27455:180::-;27503:77;27500:1;27493:88;27600:4;27597:1;27590:15;27624:4;27621:1;27614:15;27641:185;27681:1;27698:20;27716:1;27698:20;:::i;:::-;27693:25;;27732:20;27750:1;27732:20;:::i;:::-;27727:25;;27771:1;27761:35;;27776:18;;:::i;:::-;27761:35;27818:1;27815;27811:9;27806:14;;27641:185;;;;:::o;27832:220::-;27972:34;27968:1;27960:6;27956:14;27949:58;28041:3;28036:2;28028:6;28024:15;28017:28;27832:220;:::o;28058:366::-;28200:3;28221:67;28285:2;28280:3;28221:67;:::i;:::-;28214:74;;28297:93;28386:3;28297:93;:::i;:::-;28415:2;28410:3;28406:12;28399:19;;28058:366;;;:::o;28430:419::-;28596:4;28634:2;28623:9;28619:18;28611:26;;28683:9;28677:4;28673:20;28669:1;28658:9;28654:17;28647:47;28711:131;28837:4;28711:131;:::i;:::-;28703:139;;28430:419;;;:::o;28855:177::-;28995:29;28991:1;28983:6;28979:14;28972:53;28855:177;:::o;29038:366::-;29180:3;29201:67;29265:2;29260:3;29201:67;:::i;:::-;29194:74;;29277:93;29366:3;29277:93;:::i;:::-;29395:2;29390:3;29386:12;29379:19;;29038:366;;;:::o;29410:419::-;29576:4;29614:2;29603:9;29599:18;29591:26;;29663:9;29657:4;29653:20;29649:1;29638:9;29634:17;29627:47;29691:131;29817:4;29691:131;:::i;:::-;29683:139;;29410:419;;;:::o

Swarm Source

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