ETH Price: $3,359.40 (-0.68%)
Gas: 10 Gwei

Token

No Cap (NCAP)
 

Overview

Max Total Supply

100,000,000 NCAP

Holders

183

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
184,833.31711934 NCAP

Value
$0.00
0xe551d6eb69de620370b5f63c8da0f4e31a1c2e99
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:
NoCapERC20

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-09-08
*/

/*

███╗   ██╗ ██████╗      ██████╗ █████╗ ██████╗ 
████╗  ██║██╔═══██╗    ██╔════╝██╔══██╗██╔══██╗
██╔██╗ ██║██║   ██║    ██║     ███████║██████╔╝
██║╚██╗██║██║   ██║    ██║     ██╔══██║██╔═══╝ 
██║ ╚████║╚██████╔╝    ╚██████╗██║  ██║██║     
╚═╝  ╚═══╝ ╚═════╝      ╚═════╝╚═╝  ╚═╝╚═╝                                        

Website: https://nocap.cool
Telegram: https://t.me/NCAP_Portal
Twitter: https://twitter.com/NoCapERC20

 ██████╗ ███╗   ██╗ ██████╗     ███████╗██████╗ ███████╗██████╗ 
██╔═══██╗████╗  ██║██╔════╝     ██╔════╝██╔══██╗██╔════╝██╔══██╗
██║   ██║██╔██╗ ██║██║  ███╗    █████╗  ██████╔╝█████╗  ██████╔╝
██║   ██║██║╚██╗██║██║   ██║    ██╔══╝  ██╔══██╗██╔══╝  ██╔══██╗
╚██████╔╝██║ ╚████║╚██████╔╝    ██║     ██║  ██║██║     ██║  ██║
 ╚═════╝ ╚═╝  ╚═══╝ ╚═════╝     ╚═╝     ╚═╝  ╚═╝╚═╝     ╚═╝  ╚═╝
                                                                                     
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.21;

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 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);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
}

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 NoCapERC20 is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => bool) private cappinBots;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    bool public delayTransferEnabled = false;
    
    string private constant _name = unicode"No Cap";
    string private constant _symbol = unicode"NCAP";

    uint8 private constant _decimals = 8;
    uint256 private constant _totalSupply = 100000000 * 10**_decimals;
    uint256 public _maxTxAmount = 1000000 * 10**_decimals;
    uint256 public _maxWalletSize = 2000000 * 10**_decimals;
    uint256 public _taxSwapThreshold=  0 * 10**_decimals;
    uint256 public _maxTaxSwap = 987654 * 10**_decimals;

    uint256 private _beginningBuyTax=20;
    uint256 private _beginningSellTax=45;
    uint256 private _reduceBuyTaxAt=125;
    uint256 private _reduceSellTaxAt=250;
    uint256 private _finalBuyTax=2;
    uint256 private _finalSellTax=2;
    uint256 private _preventSwapBefore=100;
    uint256 private _buyCount=0;

    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _lastTrsTime;

    address payable private _noCapTrust;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private enabledSwap = false;


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

    constructor () {
        _noCapTrust = payable(_msgSender());
        _balances[_msgSender()] = _totalSupply;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_noCapTrust] = true;

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

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

    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 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");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            require(!cappinBots[from] && !cappinBots[to]);

            if (delayTransferEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                  require(_lastTrsTime[tx.origin] < block.number,"Transfers are limited to one per block.");
                  _lastTrsTime[tx.origin] = block.number;
                }
            }

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

            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_beginningBuyTax).div(100);
            if(to == uniswapV2Pair && from!= address(this) ){
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_beginningSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && enabledSwap && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    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);
        _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 {
        if(tokenAmount==0){return;}
        if(!tradingOpen){return;}
        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 = _totalSupply;
        _maxWalletSize=_totalSupply;
        delayTransferEnabled=false;
        emit MaxTxAmountUpdated(_totalSupply);
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _totalSupply);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        enabledSwap = true;
        tradingOpen = true;
    }

    function finalizeBuyTaxes() external {
      require(_msgSender()==_noCapTrust);
      _beginningBuyTax=_finalBuyTax;
    }

    function finalizeSellTaxes() external {
      require(_msgSender()==_noCapTrust);
      _beginningSellTax=_finalSellTax;
    }

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

    receive() external payable {}

    function isContract(address account) private view returns (bool) {
        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    function manualSwap() external {
        require(_msgSender()==_noCapTrust);
        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":"_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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"delayTransferEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"finalizeBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"finalizeSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f60045f6101000a81548160ff0219169083151502179055506008600a6200002d919062000605565b620f42406200003d919062000655565b6005556008600a62000050919062000605565b621e848062000060919062000655565b6006556008600a62000073919062000605565b5f62000080919062000655565b6007556008600a62000093919062000605565b620f1206620000a3919062000655565b6008556014600955602d600a55607d600b5560fa600c556002600d556002600e556064600f555f6010555f6015806101000a81548160ff0219169083151502179055505f601560166101000a81548160ff0219169083151502179055503480156200010c575f80fd5b505f6200011e6200044560201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001ca6200044560201b60201c565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600a62000219919062000605565b6305f5e1006200022a919062000655565b60025f6200023d6200044560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160115f6200028f6200044c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160115f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160115f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003b96200044560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a62000417919062000605565b6305f5e10062000428919062000655565b604051620004379190620006b0565b60405180910390a3620006cb565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620004fd57808604811115620004d557620004d462000473565b5b6001851615620004e55780820291505b8081029050620004f585620004a0565b9450620004b5565b94509492505050565b5f82620005175760019050620005e9565b8162000526575f9050620005e9565b81600181146200053f57600281146200054a5762000580565b6001915050620005e9565b60ff8411156200055f576200055e62000473565b5b8360020a91508482111562000579576200057862000473565b5b50620005e9565b5060208310610133831016604e8410600b8410161715620005ba5782820a905083811115620005b457620005b362000473565b5b620005e9565b620005c98484846001620004ac565b92509050818404811115620005e357620005e262000473565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200061182620005f0565b91506200061e83620005f9565b92506200064d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000506565b905092915050565b5f6200066182620005f0565b91506200066e83620005f0565b92508282026200067e81620005f0565b9150828204841483151762000698576200069762000473565b5b5092915050565b620006aa81620005f0565b82525050565b5f602082019050620006c55f8301846200069f565b92915050565b61314f80620006d95f395ff3fe60806040526004361061012d575f3560e01c806370a08231116100aa5780638f9a55c01161006e5780638f9a55c01461038057806395d89b41146103aa578063a9059cbb146103d4578063bf474bed14610410578063c9567bf91461043a578063dd62ed3e1461045057610134565b806370a08231146102c4578063715018a614610300578063751039fc146103165780637d1db4a51461032c5780638da5cb5b1461035657610134565b806323b872dd116100f157806323b872dd14610208578063313ce5671461024457806340a2a9211461026e57806351bc3c851461029857806353e87e54146102ae57610134565b806306fdde0314610138578063095ea7b3146101625780630faee56f1461019e57806318160ddd146101c85780631ad1fda5146101f257610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c61048c565b604051610159919061228d565b60405180910390f35b34801561016d575f80fd5b506101886004803603810190610183919061233e565b6104c9565b6040516101959190612396565b60405180910390f35b3480156101a9575f80fd5b506101b26104e6565b6040516101bf91906123be565b60405180910390f35b3480156101d3575f80fd5b506101dc6104ec565b6040516101e991906123be565b60405180910390f35b3480156101fd575f80fd5b5061020661050f565b005b348015610213575f80fd5b5061022e600480360381019061022991906123d7565b610579565b60405161023b9190612396565b60405180910390f35b34801561024f575f80fd5b5061025861064d565b6040516102659190612442565b60405180910390f35b348015610279575f80fd5b50610282610655565b60405161028f9190612396565b60405180910390f35b3480156102a3575f80fd5b506102ac610667565b005b3480156102b9575f80fd5b506102c26106fe565b005b3480156102cf575f80fd5b506102ea60048036038101906102e5919061245b565b610768565b6040516102f791906123be565b60405180910390f35b34801561030b575f80fd5b506103146107ae565b005b348015610321575f80fd5b5061032a6108fc565b005b348015610337575f80fd5b50610340610a44565b60405161034d91906123be565b60405180910390f35b348015610361575f80fd5b5061036a610a4a565b6040516103779190612495565b60405180910390f35b34801561038b575f80fd5b50610394610a71565b6040516103a191906123be565b60405180910390f35b3480156103b5575f80fd5b506103be610a77565b6040516103cb919061228d565b60405180910390f35b3480156103df575f80fd5b506103fa60048036038101906103f5919061233e565b610ab4565b6040516104079190612396565b60405180910390f35b34801561041b575f80fd5b50610424610ad1565b60405161043191906123be565b60405180910390f35b348015610445575f80fd5b5061044e610ad7565b005b34801561045b575f80fd5b50610476600480360381019061047191906124ae565b610ff9565b60405161048391906123be565b60405180910390f35b60606040518060400160405280600681526020017f4e6f204361700000000000000000000000000000000000000000000000000000815250905090565b5f6104dc6104d561107b565b8484611082565b6001905092915050565b60085481565b5f6008600a6104fb9190612648565b6305f5e10061050a9190612692565b905090565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661054f61107b565b73ffffffffffffffffffffffffffffffffffffffff161461056e575f80fd5b600d54600981905550565b5f610585848484611245565b6106428461059161107b565b61063d856040518060600160405280602881526020016130f26028913960035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105f461107b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cc29092919063ffffffff16565b611082565b600190509392505050565b5f6008905090565b60045f9054906101000a900460ff1681565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106a761107b565b73ffffffffffffffffffffffffffffffffffffffff16146106c6575f80fd5b5f6106d030610768565b90505f8111156106e4576106e381611d24565b5b5f4790505f8111156106fa576106f981611fab565b5b5050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661073e61107b565b73ffffffffffffffffffffffffffffffffffffffff161461075d575f80fd5b600e54600a81905550565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107b661107b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610842576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108399061271d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61090461107b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610990576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109879061271d565b60405180910390fd5b6008600a61099e9190612648565b6305f5e1006109ad9190612692565b6005819055506008600a6109c19190612648565b6305f5e1006109d09190612692565b6006819055505f60045f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610a1e9190612648565b6305f5e100610a2d9190612692565b604051610a3a91906123be565b60405180910390a1565b60055481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b60606040518060400160405280600481526020017f4e43415000000000000000000000000000000000000000000000000000000000815250905090565b5f610ac7610ac061107b565b8484611245565b6001905092915050565b60075481565b610adf61107b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b629061271d565b60405180910390fd5b601560149054906101000a900460ff1615610bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb290612785565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c573060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610c439190612648565b6305f5e100610c529190612692565b611082565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cc1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ce591906127b7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d6b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d8f91906127b7565b6040518363ffffffff1660e01b8152600401610dac9291906127e2565b6020604051808303815f875af1158015610dc8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dec91906127b7565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e7330610768565b5f80610e7d610a4a565b426040518863ffffffff1660e01b8152600401610e9f9695949392919061284b565b60606040518083038185885af1158015610ebb573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ee091906128be565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f8092919061290e565b6020604051808303815f875af1158015610f9c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fc0919061295f565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e7906129d4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361115e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115590612a62565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161123891906123be565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112aa90612af0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611321576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131890612b7e565b60405180910390fd5b5f8111611363576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135a90612c0c565b60405180910390fd5b5f61136c610a4a565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113da57506113aa610a4a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a125760015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561147d575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611485575f80fd5b60045f9054906101000a900460ff161561160b5760145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611543575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561160a574360125f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054106115c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115be90612c9a565b60405180910390fd5b4360125f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116b4575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611707575060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156117e057600554821115611751576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174890612d02565b60405180910390fd5b6006548261175e85610768565b6117689190612d20565b11156117a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a090612d9d565b60405180910390fd5b600f5460105410156117c8576117be83612013565b156117c7575f80fd5b5b60105f8154809291906117da90612dbb565b91905055505b61181c606461180e600b54601054116117fb576009546117ff565b600d545b8561202490919063ffffffff16565b61209b90919063ffffffff16565b905060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118a657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561192f576005548211156118f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e790612d02565b60405180910390fd5b61192c606461191e600c546010541161190b57600a5461190f565b600e545b8561202490919063ffffffff16565b61209b90919063ffffffff16565b90505b5f61193930610768565b905060158054906101000a900460ff161580156119a2575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156119ba5750601560169054906101000a900460ff165b80156119c7575060075481115b80156119d65750600f54601054115b15611a10576119f86119f3846119ee846008546120e4565b6120e4565b611d24565b5f4790505f811115611a0e57611a0d47611fab565b5b505b505b5f811115611b1157611a6a8160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120fc90919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b0891906123be565b60405180910390a35b611b618260025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461215990919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611c04611bb8828461215990919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120fc90919063ffffffff16565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ca7848661215990919063ffffffff16565b604051611cb491906123be565b60405180910390a350505050565b5f838311158290611d09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d00919061228d565b60405180910390fd5b505f8385611d179190612e02565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055505f810315611f8f57601560149054906101000a900460ff1615611f8f575f600267ffffffffffffffff811115611d7757611d76612e35565b5b604051908082528060200260200182016040528015611da55781602001602082028036833780820191505090505b50905030815f81518110611dbc57611dbb612e62565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e60573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e8491906127b7565b81600181518110611e9857611e97612e62565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611efe3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611082565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611f60959493929190612f46565b5f604051808303815f87803b158015611f77575f80fd5b505af1158015611f89573d5f803e3d5ffd5b50505050505b5f6015806101000a81548160ff02191690831515021790555050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561200f573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f808303612034575f9050612095565b5f82846120419190612692565b90508284826120509190612fcb565b14612090576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120879061306b565b60405180910390fd5b809150505b92915050565b5f6120dc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121a2565b905092915050565b5f8183116120f257826120f4565b815b905092915050565b5f80828461210a9190612d20565b90508381101561214f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612146906130d3565b60405180910390fd5b8091505092915050565b5f61219a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cc2565b905092915050565b5f80831182906121e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121df919061228d565b60405180910390fd5b505f83856121f69190612fcb565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561223a57808201518184015260208101905061221f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61225f82612203565b612269818561220d565b935061227981856020860161221d565b61228281612245565b840191505092915050565b5f6020820190508181035f8301526122a58184612255565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6122da826122b1565b9050919050565b6122ea816122d0565b81146122f4575f80fd5b50565b5f81359050612305816122e1565b92915050565b5f819050919050565b61231d8161230b565b8114612327575f80fd5b50565b5f8135905061233881612314565b92915050565b5f8060408385031215612354576123536122ad565b5b5f612361858286016122f7565b92505060206123728582860161232a565b9150509250929050565b5f8115159050919050565b6123908161237c565b82525050565b5f6020820190506123a95f830184612387565b92915050565b6123b88161230b565b82525050565b5f6020820190506123d15f8301846123af565b92915050565b5f805f606084860312156123ee576123ed6122ad565b5b5f6123fb868287016122f7565b935050602061240c868287016122f7565b925050604061241d8682870161232a565b9150509250925092565b5f60ff82169050919050565b61243c81612427565b82525050565b5f6020820190506124555f830184612433565b92915050565b5f602082840312156124705761246f6122ad565b5b5f61247d848285016122f7565b91505092915050565b61248f816122d0565b82525050565b5f6020820190506124a85f830184612486565b92915050565b5f80604083850312156124c4576124c36122ad565b5b5f6124d1858286016122f7565b92505060206124e2858286016122f7565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561256e5780860481111561254a576125496124ec565b5b60018516156125595780820291505b808102905061256785612519565b945061252e565b94509492505050565b5f826125865760019050612641565b81612593575f9050612641565b81600181146125a957600281146125b3576125e2565b6001915050612641565b60ff8411156125c5576125c46124ec565b5b8360020a9150848211156125dc576125db6124ec565b5b50612641565b5060208310610133831016604e8410600b84101617156126175782820a905083811115612612576126116124ec565b5b612641565b6126248484846001612525565b9250905081840481111561263b5761263a6124ec565b5b81810290505b9392505050565b5f6126528261230b565b915061265d83612427565b925061268a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612577565b905092915050565b5f61269c8261230b565b91506126a78361230b565b92508282026126b58161230b565b915082820484148315176126cc576126cb6124ec565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61270760208361220d565b9150612712826126d3565b602082019050919050565b5f6020820190508181035f830152612734816126fb565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61276f60178361220d565b915061277a8261273b565b602082019050919050565b5f6020820190508181035f83015261279c81612763565b9050919050565b5f815190506127b1816122e1565b92915050565b5f602082840312156127cc576127cb6122ad565b5b5f6127d9848285016127a3565b91505092915050565b5f6040820190506127f55f830185612486565b6128026020830184612486565b9392505050565b5f819050919050565b5f819050919050565b5f61283561283061282b84612809565b612812565b61230b565b9050919050565b6128458161281b565b82525050565b5f60c08201905061285e5f830189612486565b61286b60208301886123af565b612878604083018761283c565b612885606083018661283c565b6128926080830185612486565b61289f60a08301846123af565b979650505050505050565b5f815190506128b881612314565b92915050565b5f805f606084860312156128d5576128d46122ad565b5b5f6128e2868287016128aa565b93505060206128f3868287016128aa565b9250506040612904868287016128aa565b9150509250925092565b5f6040820190506129215f830185612486565b61292e60208301846123af565b9392505050565b61293e8161237c565b8114612948575f80fd5b50565b5f8151905061295981612935565b92915050565b5f60208284031215612974576129736122ad565b5b5f6129818482850161294b565b91505092915050565b7f45524332303a20617070726f76652066726f6d207a65726f20616464726573735f82015250565b5f6129be60208361220d565b91506129c98261298a565b602082019050919050565b5f6020820190508181035f8301526129eb816129b2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a4c60228361220d565b9150612a57826129f2565b604082019050919050565b5f6020820190508181035f830152612a7981612a40565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612ada60258361220d565b9150612ae582612a80565b604082019050919050565b5f6020820190508181035f830152612b0781612ace565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612b6860238361220d565b9150612b7382612b0e565b604082019050919050565b5f6020820190508181035f830152612b9581612b5c565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612bf660298361220d565b9150612c0182612b9c565b604082019050919050565b5f6020820190508181035f830152612c2381612bea565b9050919050565b7f5472616e736665727320617265206c696d6974656420746f206f6e65207065725f8201527f20626c6f636b2e00000000000000000000000000000000000000000000000000602082015250565b5f612c8460278361220d565b9150612c8f82612c2a565b604082019050919050565b5f6020820190508181035f830152612cb181612c78565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612cec60198361220d565b9150612cf782612cb8565b602082019050919050565b5f6020820190508181035f830152612d1981612ce0565b9050919050565b5f612d2a8261230b565b9150612d358361230b565b9250828201905080821115612d4d57612d4c6124ec565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612d87601a8361220d565b9150612d9282612d53565b602082019050919050565b5f6020820190508181035f830152612db481612d7b565b9050919050565b5f612dc58261230b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612df757612df66124ec565b5b600182019050919050565b5f612e0c8261230b565b9150612e178361230b565b9250828203905081811115612e2f57612e2e6124ec565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612ec1816122d0565b82525050565b5f612ed28383612eb8565b60208301905092915050565b5f602082019050919050565b5f612ef482612e8f565b612efe8185612e99565b9350612f0983612ea9565b805f5b83811015612f39578151612f208882612ec7565b9750612f2b83612ede565b925050600181019050612f0c565b5085935050505092915050565b5f60a082019050612f595f8301886123af565b612f66602083018761283c565b8181036040830152612f788186612eea565b9050612f876060830185612486565b612f9460808301846123af565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612fd58261230b565b9150612fe08361230b565b925082612ff057612fef612f9e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61305560218361220d565b915061306082612ffb565b604082019050919050565b5f6020820190508181035f83015261308281613049565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6130bd601b8361220d565b91506130c882613089565b602082019050919050565b5f6020820190508181035f8301526130ea816130b1565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220cb2c32e21372581171e09a56ff70092e62e26bce48e8e1ed5b49860faec1968c64736f6c63430008150033

Deployed Bytecode

0x60806040526004361061012d575f3560e01c806370a08231116100aa5780638f9a55c01161006e5780638f9a55c01461038057806395d89b41146103aa578063a9059cbb146103d4578063bf474bed14610410578063c9567bf91461043a578063dd62ed3e1461045057610134565b806370a08231146102c4578063715018a614610300578063751039fc146103165780637d1db4a51461032c5780638da5cb5b1461035657610134565b806323b872dd116100f157806323b872dd14610208578063313ce5671461024457806340a2a9211461026e57806351bc3c851461029857806353e87e54146102ae57610134565b806306fdde0314610138578063095ea7b3146101625780630faee56f1461019e57806318160ddd146101c85780631ad1fda5146101f257610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c61048c565b604051610159919061228d565b60405180910390f35b34801561016d575f80fd5b506101886004803603810190610183919061233e565b6104c9565b6040516101959190612396565b60405180910390f35b3480156101a9575f80fd5b506101b26104e6565b6040516101bf91906123be565b60405180910390f35b3480156101d3575f80fd5b506101dc6104ec565b6040516101e991906123be565b60405180910390f35b3480156101fd575f80fd5b5061020661050f565b005b348015610213575f80fd5b5061022e600480360381019061022991906123d7565b610579565b60405161023b9190612396565b60405180910390f35b34801561024f575f80fd5b5061025861064d565b6040516102659190612442565b60405180910390f35b348015610279575f80fd5b50610282610655565b60405161028f9190612396565b60405180910390f35b3480156102a3575f80fd5b506102ac610667565b005b3480156102b9575f80fd5b506102c26106fe565b005b3480156102cf575f80fd5b506102ea60048036038101906102e5919061245b565b610768565b6040516102f791906123be565b60405180910390f35b34801561030b575f80fd5b506103146107ae565b005b348015610321575f80fd5b5061032a6108fc565b005b348015610337575f80fd5b50610340610a44565b60405161034d91906123be565b60405180910390f35b348015610361575f80fd5b5061036a610a4a565b6040516103779190612495565b60405180910390f35b34801561038b575f80fd5b50610394610a71565b6040516103a191906123be565b60405180910390f35b3480156103b5575f80fd5b506103be610a77565b6040516103cb919061228d565b60405180910390f35b3480156103df575f80fd5b506103fa60048036038101906103f5919061233e565b610ab4565b6040516104079190612396565b60405180910390f35b34801561041b575f80fd5b50610424610ad1565b60405161043191906123be565b60405180910390f35b348015610445575f80fd5b5061044e610ad7565b005b34801561045b575f80fd5b50610476600480360381019061047191906124ae565b610ff9565b60405161048391906123be565b60405180910390f35b60606040518060400160405280600681526020017f4e6f204361700000000000000000000000000000000000000000000000000000815250905090565b5f6104dc6104d561107b565b8484611082565b6001905092915050565b60085481565b5f6008600a6104fb9190612648565b6305f5e10061050a9190612692565b905090565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661054f61107b565b73ffffffffffffffffffffffffffffffffffffffff161461056e575f80fd5b600d54600981905550565b5f610585848484611245565b6106428461059161107b565b61063d856040518060600160405280602881526020016130f26028913960035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105f461107b565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cc29092919063ffffffff16565b611082565b600190509392505050565b5f6008905090565b60045f9054906101000a900460ff1681565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106a761107b565b73ffffffffffffffffffffffffffffffffffffffff16146106c6575f80fd5b5f6106d030610768565b90505f8111156106e4576106e381611d24565b5b5f4790505f8111156106fa576106f981611fab565b5b5050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661073e61107b565b73ffffffffffffffffffffffffffffffffffffffff161461075d575f80fd5b600e54600a81905550565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6107b661107b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610842576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108399061271d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61090461107b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610990576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109879061271d565b60405180910390fd5b6008600a61099e9190612648565b6305f5e1006109ad9190612692565b6005819055506008600a6109c19190612648565b6305f5e1006109d09190612692565b6006819055505f60045f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610a1e9190612648565b6305f5e100610a2d9190612692565b604051610a3a91906123be565b60405180910390a1565b60055481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60065481565b60606040518060400160405280600481526020017f4e43415000000000000000000000000000000000000000000000000000000000815250905090565b5f610ac7610ac061107b565b8484611245565b6001905092915050565b60075481565b610adf61107b565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b629061271d565b60405180910390fd5b601560149054906101000a900460ff1615610bbb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb290612785565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610c573060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610c439190612648565b6305f5e100610c529190612692565b611082565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cc1573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ce591906127b7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d6b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d8f91906127b7565b6040518363ffffffff1660e01b8152600401610dac9291906127e2565b6020604051808303815f875af1158015610dc8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dec91906127b7565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610e7330610768565b5f80610e7d610a4a565b426040518863ffffffff1660e01b8152600401610e9f9695949392919061284b565b60606040518083038185885af1158015610ebb573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610ee091906128be565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f8092919061290e565b6020604051808303815f875af1158015610f9c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fc0919061295f565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff021916908315150217905550565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036110f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e7906129d4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361115e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115590612a62565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161123891906123be565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112aa90612af0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611321576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131890612b7e565b60405180910390fd5b5f8111611363576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135a90612c0c565b60405180910390fd5b5f61136c610a4a565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113da57506113aa610a4a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a125760015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615801561147d575060015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611485575f80fd5b60045f9054906101000a900460ff161561160b5760145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611543575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561160a574360125f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054106115c7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115be90612c9a565b60405180910390fd5b4360125f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116b4575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611707575060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156117e057600554821115611751576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174890612d02565b60405180910390fd5b6006548261175e85610768565b6117689190612d20565b11156117a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117a090612d9d565b60405180910390fd5b600f5460105410156117c8576117be83612013565b156117c7575f80fd5b5b60105f8154809291906117da90612dbb565b91905055505b61181c606461180e600b54601054116117fb576009546117ff565b600d545b8561202490919063ffffffff16565b61209b90919063ffffffff16565b905060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118a657503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561192f576005548211156118f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118e790612d02565b60405180910390fd5b61192c606461191e600c546010541161190b57600a5461190f565b600e545b8561202490919063ffffffff16565b61209b90919063ffffffff16565b90505b5f61193930610768565b905060158054906101000a900460ff161580156119a2575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156119ba5750601560169054906101000a900460ff165b80156119c7575060075481115b80156119d65750600f54601054115b15611a10576119f86119f3846119ee846008546120e4565b6120e4565b611d24565b5f4790505f811115611a0e57611a0d47611fab565b5b505b505b5f811115611b1157611a6a8160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120fc90919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b0891906123be565b60405180910390a35b611b618260025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461215990919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611c04611bb8828461215990919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120fc90919063ffffffff16565b60025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ca7848661215990919063ffffffff16565b604051611cb491906123be565b60405180910390a350505050565b5f838311158290611d09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d00919061228d565b60405180910390fd5b505f8385611d179190612e02565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055505f810315611f8f57601560149054906101000a900460ff1615611f8f575f600267ffffffffffffffff811115611d7757611d76612e35565b5b604051908082528060200260200182016040528015611da55781602001602082028036833780820191505090505b50905030815f81518110611dbc57611dbb612e62565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e60573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e8491906127b7565b81600181518110611e9857611e97612e62565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611efe3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611082565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611f60959493929190612f46565b5f604051808303815f87803b158015611f77575f80fd5b505af1158015611f89573d5f803e3d5ffd5b50505050505b5f6015806101000a81548160ff02191690831515021790555050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561200f573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f808303612034575f9050612095565b5f82846120419190612692565b90508284826120509190612fcb565b14612090576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120879061306b565b60405180910390fd5b809150505b92915050565b5f6120dc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506121a2565b905092915050565b5f8183116120f257826120f4565b815b905092915050565b5f80828461210a9190612d20565b90508381101561214f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612146906130d3565b60405180910390fd5b8091505092915050565b5f61219a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cc2565b905092915050565b5f80831182906121e8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121df919061228d565b60405180910390fd5b505f83856121f69190612fcb565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561223a57808201518184015260208101905061221f565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61225f82612203565b612269818561220d565b935061227981856020860161221d565b61228281612245565b840191505092915050565b5f6020820190508181035f8301526122a58184612255565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6122da826122b1565b9050919050565b6122ea816122d0565b81146122f4575f80fd5b50565b5f81359050612305816122e1565b92915050565b5f819050919050565b61231d8161230b565b8114612327575f80fd5b50565b5f8135905061233881612314565b92915050565b5f8060408385031215612354576123536122ad565b5b5f612361858286016122f7565b92505060206123728582860161232a565b9150509250929050565b5f8115159050919050565b6123908161237c565b82525050565b5f6020820190506123a95f830184612387565b92915050565b6123b88161230b565b82525050565b5f6020820190506123d15f8301846123af565b92915050565b5f805f606084860312156123ee576123ed6122ad565b5b5f6123fb868287016122f7565b935050602061240c868287016122f7565b925050604061241d8682870161232a565b9150509250925092565b5f60ff82169050919050565b61243c81612427565b82525050565b5f6020820190506124555f830184612433565b92915050565b5f602082840312156124705761246f6122ad565b5b5f61247d848285016122f7565b91505092915050565b61248f816122d0565b82525050565b5f6020820190506124a85f830184612486565b92915050565b5f80604083850312156124c4576124c36122ad565b5b5f6124d1858286016122f7565b92505060206124e2858286016122f7565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561256e5780860481111561254a576125496124ec565b5b60018516156125595780820291505b808102905061256785612519565b945061252e565b94509492505050565b5f826125865760019050612641565b81612593575f9050612641565b81600181146125a957600281146125b3576125e2565b6001915050612641565b60ff8411156125c5576125c46124ec565b5b8360020a9150848211156125dc576125db6124ec565b5b50612641565b5060208310610133831016604e8410600b84101617156126175782820a905083811115612612576126116124ec565b5b612641565b6126248484846001612525565b9250905081840481111561263b5761263a6124ec565b5b81810290505b9392505050565b5f6126528261230b565b915061265d83612427565b925061268a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612577565b905092915050565b5f61269c8261230b565b91506126a78361230b565b92508282026126b58161230b565b915082820484148315176126cc576126cb6124ec565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61270760208361220d565b9150612712826126d3565b602082019050919050565b5f6020820190508181035f830152612734816126fb565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61276f60178361220d565b915061277a8261273b565b602082019050919050565b5f6020820190508181035f83015261279c81612763565b9050919050565b5f815190506127b1816122e1565b92915050565b5f602082840312156127cc576127cb6122ad565b5b5f6127d9848285016127a3565b91505092915050565b5f6040820190506127f55f830185612486565b6128026020830184612486565b9392505050565b5f819050919050565b5f819050919050565b5f61283561283061282b84612809565b612812565b61230b565b9050919050565b6128458161281b565b82525050565b5f60c08201905061285e5f830189612486565b61286b60208301886123af565b612878604083018761283c565b612885606083018661283c565b6128926080830185612486565b61289f60a08301846123af565b979650505050505050565b5f815190506128b881612314565b92915050565b5f805f606084860312156128d5576128d46122ad565b5b5f6128e2868287016128aa565b93505060206128f3868287016128aa565b9250506040612904868287016128aa565b9150509250925092565b5f6040820190506129215f830185612486565b61292e60208301846123af565b9392505050565b61293e8161237c565b8114612948575f80fd5b50565b5f8151905061295981612935565b92915050565b5f60208284031215612974576129736122ad565b5b5f6129818482850161294b565b91505092915050565b7f45524332303a20617070726f76652066726f6d207a65726f20616464726573735f82015250565b5f6129be60208361220d565b91506129c98261298a565b602082019050919050565b5f6020820190508181035f8301526129eb816129b2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a4c60228361220d565b9150612a57826129f2565b604082019050919050565b5f6020820190508181035f830152612a7981612a40565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612ada60258361220d565b9150612ae582612a80565b604082019050919050565b5f6020820190508181035f830152612b0781612ace565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612b6860238361220d565b9150612b7382612b0e565b604082019050919050565b5f6020820190508181035f830152612b9581612b5c565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612bf660298361220d565b9150612c0182612b9c565b604082019050919050565b5f6020820190508181035f830152612c2381612bea565b9050919050565b7f5472616e736665727320617265206c696d6974656420746f206f6e65207065725f8201527f20626c6f636b2e00000000000000000000000000000000000000000000000000602082015250565b5f612c8460278361220d565b9150612c8f82612c2a565b604082019050919050565b5f6020820190508181035f830152612cb181612c78565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612cec60198361220d565b9150612cf782612cb8565b602082019050919050565b5f6020820190508181035f830152612d1981612ce0565b9050919050565b5f612d2a8261230b565b9150612d358361230b565b9250828201905080821115612d4d57612d4c6124ec565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612d87601a8361220d565b9150612d9282612d53565b602082019050919050565b5f6020820190508181035f830152612db481612d7b565b9050919050565b5f612dc58261230b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612df757612df66124ec565b5b600182019050919050565b5f612e0c8261230b565b9150612e178361230b565b9250828203905081811115612e2f57612e2e6124ec565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612ec1816122d0565b82525050565b5f612ed28383612eb8565b60208301905092915050565b5f602082019050919050565b5f612ef482612e8f565b612efe8185612e99565b9350612f0983612ea9565b805f5b83811015612f39578151612f208882612ec7565b9750612f2b83612ede565b925050600181019050612f0c565b5085935050505092915050565b5f60a082019050612f595f8301886123af565b612f66602083018761283c565b8181036040830152612f788186612eea565b9050612f876060830185612486565b612f9460808301846123af565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612fd58261230b565b9150612fe08361230b565b925082612ff057612fef612f9e565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f61305560218361220d565b915061306082612ffb565b604082019050919050565b5f6020820190508181035f83015261308281613049565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f6130bd601b8361220d565b91506130c882613089565b602082019050919050565b5f6020820190508181035f8301526130ea816130b1565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220cb2c32e21372581171e09a56ff70092e62e26bce48e8e1ed5b49860faec1968c64736f6c63430008150033

Deployed Bytecode Sourcemap

5413:8625:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7364:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8202:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6140:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7641:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13074:126;;;;;;;;;;;;;:::i;:::-;;8371:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7550:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5681:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13686:349;;;;;;;;;;;;;:::i;:::-;;13208:129;;;;;;;;;;;;;:::i;:::-;;7749:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4492:148;;;;;;;;;;;;;:::i;:::-;;12171:211;;;;;;;;;;;;;:::i;:::-;;5959:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4278:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6019:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7455:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7876:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6081:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12390:676;;;;;;;;;;;;;:::i;:::-;;8051:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7364:83;7401:13;7434:5;;;;;;;;;;;;;;;;;7427:12;;7364:83;:::o;8202:161::-;8277:4;8294:39;8303:12;:10;:12::i;:::-;8317:7;8326:6;8294:8;:39::i;:::-;8351:4;8344:11;;8202:161;;;;:::o;6140:51::-;;;;:::o;7641:100::-;7694:7;5879:1;5939:2;:13;;;;:::i;:::-;5927:9;:25;;;;:::i;:::-;7714:19;;7641:100;:::o;13074:126::-;13142:11;;;;;;;;;;;13128:25;;:12;:10;:12::i;:::-;:25;;;13120:34;;;;;;13180:12;;13163:16;:29;;;;13074:126::o;8371:313::-;8469:4;8486:36;8496:6;8504:9;8515:6;8486:9;:36::i;:::-;8533:121;8542:6;8550:12;:10;:12::i;:::-;8564:89;8602:6;8564:89;;;;;;;;;;;;;;;;;:11;:19;8576:6;8564:19;;;;;;;;;;;;;;;:33;8584:12;:10;:12::i;:::-;8564:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8533:8;:121::i;:::-;8672:4;8665:11;;8371:313;;;;;:::o;7550:83::-;7591:5;5879:1;7609:16;;7550:83;:::o;5681:40::-;;;;;;;;;;;;;:::o;13686:349::-;13750:11;;;;;;;;;;;13736:25;;:12;:10;:12::i;:::-;:25;;;13728:34;;;;;;13773:20;13794:24;13812:4;13794:9;:24::i;:::-;13773:45;;13845:1;13832:12;:14;13829:73;;;13860:30;13877:12;13860:16;:30::i;:::-;13829:73;13912:18;13931:21;13912:40;;13977:1;13966:10;:12;13963:65;;;13992:24;14005:10;13992:12;:24::i;:::-;13963:65;13717:318;;13686:349::o;13208:129::-;13277:11;;;;;;;;;;;13263:25;;:12;:10;:12::i;:::-;:25;;;13255:34;;;;;;13316:13;;13298:17;:31;;;;13208:129::o;7749:119::-;7815:7;7842:9;:18;7852:7;7842:18;;;;;;;;;;;;;;;;7835:25;;7749:119;;;:::o;4492:148::-;4415:12;:10;:12::i;:::-;4405:22;;:6;;;;;;;;;;:22;;;4397:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4599:1:::1;4562:40;;4583:6;::::0;::::1;;;;;;;;4562:40;;;;;;;;;;;;4630:1;4613:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;4492:148::o:0;12171:211::-;4415:12;:10;:12::i;:::-;4405:22;;:6;;;;;;;;;;:22;;;4397:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5879:1:::1;5939:2;:13;;;;:::i;:::-;5927:9;:25;;;;:::i;:::-;12224:12;:27;;;;5879:1;5939:2;:13;;;;:::i;:::-;5927:9;:25;;;;:::i;:::-;12262:14;:27;;;;12321:5;12300:20;;:26;;;;;;;;;;;;;;;;;;12342:32;5879:1;5939:2;:13;;;;:::i;:::-;5927:9;:25;;;;:::i;:::-;12342:32;;;;;;:::i;:::-;;;;;;;;12171:211::o:0;5959:53::-;;;;:::o;4278:79::-;4316:7;4343:6;;;;;;;;;;;4336:13;;4278:79;:::o;6019:55::-;;;;:::o;7455:87::-;7494:13;7527:7;;;;;;;;;;;;;;;;;7520:14;;7455:87;:::o;7876:167::-;7954:4;7971:42;7981:12;:10;:12::i;:::-;7995:9;8006:6;7971:9;:42::i;:::-;8031:4;8024:11;;7876:167;;;;:::o;6081:52::-;;;;:::o;12390:676::-;4415:12;:10;:12::i;:::-;4405:22;;:6;;;;;;;;;;:22;;;4397:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12454:11:::1;;;;;;;;;;;12453:12;12445:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;12540:42;12503:15;;:80;;;;;;;;;;;;;;;;;;12594:63;12611:4;12626:15;;;;;;;;;;;5879:1;5939:2;:13;;;;:::i;:::-;5927:9;:25;;;;:::i;:::-;12594:8;:63::i;:::-;12702:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12684:55;;;12748:4;12755:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12684:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12668:13;;:110;;;;;;;;;;;;;;;;;;12789:15;;;;;;;;;;;:31;;;12828:21;12859:4;12865:24;12883:4;12865:9;:24::i;:::-;12890:1;12892::::0;12894:7:::1;:5;:7::i;:::-;12902:15;12789:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12936:13;;;;;;;;;;;12929:29;;;12967:15;;;;;;;;;;;12985:14;12929:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13025:4;13011:11;;:18;;;;;;;;;;;;;;;;;;13054:4;13040:11;;:18;;;;;;;;;;;;;;;;;;12390:676::o:0;8051:143::-;8132:7;8159:11;:18;8171:5;8159:18;;;;;;;;;;;;;;;:27;8178:7;8159:27;;;;;;;;;;;;;;;;8152:34;;8051:143;;;;:::o;2033:98::-;2086:7;2113:10;2106:17;;2033:98;:::o;8692:331::-;8802:1;8785:19;;:5;:19;;;8777:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8879:1;8860:21;;:7;:21;;;8852:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8961:6;8931:11;:18;8943:5;8931:18;;;;;;;;;;;;;;;:27;8950:7;8931:27;;;;;;;;;;;;;;;:36;;;;8999:7;8983:32;;8992:5;8983:32;;;9008:6;8983:32;;;;;;:::i;:::-;;;;;;;;8692:331;;;:::o;9031:2463::-;9135:1;9119:18;;:4;:18;;;9111:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9212:1;9198:16;;:2;:16;;;9190:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9282:1;9273:6;:10;9265:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9340:17;9382:7;:5;:7::i;:::-;9374:15;;:4;:15;;;;:32;;;;;9399:7;:5;:7::i;:::-;9393:13;;:2;:13;;;;9374:32;9370:1768;;;9432:10;:16;9443:4;9432:16;;;;;;;;;;;;;;;;;;;;;;;;;9431:17;:36;;;;;9453:10;:14;9464:2;9453:14;;;;;;;;;;;;;;;;;;;;;;;;;9452:15;9431:36;9423:45;;;;;;9489:20;;;;;;;;;;;9485:317;;;9548:15;;;;;;;;;;;9534:30;;:2;:30;;;;:62;;;;;9582:13;;;;;;;;;;;9568:28;;:2;:28;;;;9534:62;9530:257;;;9653:12;9627;:23;9640:9;9627:23;;;;;;;;;;;;;;;;:38;9619:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;9755:12;9729;:23;9742:9;9729:23;;;;;;;;;;;;;;;:38;;;;9530:257;9485:317;9830:13;;;;;;;;;;;9822:21;;:4;:21;;;:55;;;;;9861:15;;;;;;;;;;;9847:30;;:2;:30;;;;9822:55;:83;;;;;9883:18;:22;9902:2;9883:22;;;;;;;;;;;;;;;;;;;;;;;;;9881:24;9822:83;9818:428;;;9945:12;;9935:6;:22;;9927:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;10040:14;;10030:6;10014:13;10024:2;10014:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;10006:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;10117:18;;10107:9;;:28;10104:97;;;10166:14;10177:2;10166:10;:14::i;:::-;10165:15;10157:24;;;;;;10104:97;10219:9;;:11;;;;;;;;;:::i;:::-;;;;;;9818:428;10274:78;10348:3;10274:69;10296:15;;10286:9;;:25;10285:57;;10326:16;;10285:57;;;10313:12;;10285:57;10274:6;:10;;:69;;;;:::i;:::-;:73;;:78;;;;:::i;:::-;10262:90;;10376:13;;;;;;;;;;;10370:19;;:2;:19;;;:43;;;;;10408:4;10393:20;;:4;:20;;;;10370:43;10367:255;;;10452:12;;10442:6;:22;;10434:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;10525:81;10602:3;10525:72;10547:16;;10537:9;;:26;10536:60;;10579:17;;10536:60;;;10565:13;;10536:60;10525:6;:10;;:72;;;;:::i;:::-;:76;;:81;;;;:::i;:::-;10513:93;;10367:255;10638:28;10669:24;10687:4;10669:9;:24::i;:::-;10638:55;;10713:6;;;;;;;;;;10712:7;:30;;;;;10729:13;;;;;;;;;;;10723:19;;:2;:19;;;10712:30;:45;;;;;10746:11;;;;;;;;;;;10712:45;:87;;;;;10782:17;;10761:20;:38;10712:87;:119;;;;;10813:18;;10803:9;;:28;10712:119;10708:419;;;10852:67;10869:49;10873:6;10880:37;10884:20;10905:11;;10880:3;:37::i;:::-;10869:3;:49::i;:::-;10852:16;:67::i;:::-;10938:26;10967:21;10938:50;;11031:1;11010:18;:22;11007:105;;;11057:35;11070:21;11057:12;:35::i;:::-;11007:105;10833:294;10708:419;9408:1730;9370:1768;11163:1;11153:9;:11;11150:161;;;11203:39;11232:9;11203;:24;11221:4;11203:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;11178:9;:24;11196:4;11178:24;;;;;;;;;;;;;;;:64;;;;11283:4;11260:39;;11269:4;11260:39;;;11289:9;11260:39;;;;;;:::i;:::-;;;;;;;;11150:161;11337:27;11357:6;11337:9;:15;11347:4;11337:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;11321:9;:15;11331:4;11321:15;;;;;;;;;;;;;;;:43;;;;11389:40;11407:21;11418:9;11407:6;:10;;:21;;;;:::i;:::-;11389:9;:13;11399:2;11389:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;11375:9;:13;11385:2;11375:13;;;;;;;;;;;;;;;:54;;;;11460:2;11445:41;;11454:4;11445:41;;;11464:21;11475:9;11464:6;:10;;:21;;;;:::i;:::-;11445:41;;;;;;:::i;:::-;;;;;;;;9100:2394;9031:2463;;;:::o;3170:190::-;3256:7;3289:1;3284;:6;;3292:12;3276:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3316:9;3332:1;3328;:5;;;;:::i;:::-;3316:17;;3351:1;3344:8;;;3170:190;;;;;:::o;11608:555::-;6970:4;6961:6;;:13;;;;;;;;;;;;;;;;;;11702:1:::1;11689:11;:14:::0;11686:27;11705:7:::1;11686:27;11727:11;;;;;;;;;;;11723:25:::0;11740:7:::1;11723:25;11758:21;11796:1;11782:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11758:40;;11827:4;11809;11814:1;11809:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11853:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11843:4;11848:1;11843:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11886:62;11903:4;11918:15;;;;;;;;;;;11936:11;11886:8;:62::i;:::-;11959:15;;;;;;;;;;;:66;;;12040:11;12066:1;12082:4;12109;12129:15;11959:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11675:488;6985:1;7006:5:::0;6997:6;;:14;;;;;;;;;;;;;;;;;;11608:555;:::o;13345:93::-;13402:11;;;;;;;;;;;:20;;:28;13423:6;13402:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13345:93;:::o;13483:195::-;13542:4;13559:12;13626:7;13614:20;13606:28;;13669:1;13662:4;:8;13655:15;;;13483:195;;;:::o;3368:246::-;3426:7;3455:1;3450;:6;3446:47;;3480:1;3473:8;;;;3446:47;3503:9;3519:1;3515;:5;;;;:::i;:::-;3503:17;;3548:1;3543;3539;:5;;;;:::i;:::-;:10;3531:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3605:1;3598:8;;;3368:246;;;;;:::o;3622:132::-;3680:7;3707:39;3711:1;3714;3707:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3700:46;;3622:132;;;;:::o;11502:98::-;11559:7;11586:1;11584;:3;11583:9;;11591:1;11583:9;;;11589:1;11583:9;11576:16;;11502:98;;;;:::o;2839:179::-;2897:7;2917:9;2933:1;2929;:5;;;;:::i;:::-;2917:17;;2958:1;2953;:6;;2945:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3009:1;3002:8;;;2839:179;;;;:::o;3026:136::-;3084:7;3111:43;3115:1;3118;3111:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3104:50;;3026:136;;;;:::o;3762:189::-;3848:7;3880:1;3876;:5;3883:12;3868:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3907:9;3923:1;3919;:5;;;;:::i;:::-;3907:17;;3942:1;3935:8;;;3762:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:118::-;5275:24;5293:5;5275:24;:::i;:::-;5270:3;5263:37;5188:118;;:::o;5312:222::-;5405:4;5443:2;5432:9;5428:18;5420:26;;5456:71;5524:1;5513:9;5509:17;5500:6;5456:71;:::i;:::-;5312:222;;;;:::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:180::-;6068:77;6065:1;6058:88;6165:4;6162:1;6155:15;6189:4;6186:1;6179:15;6206:102;6248:8;6295:5;6292:1;6288:13;6267:34;;6206:102;;;:::o;6314:848::-;6375:5;6382:4;6406:6;6397:15;;6430:5;6421:14;;6444:712;6465:1;6455:8;6452:15;6444:712;;;6560:4;6555:3;6551:14;6545:4;6542:24;6539:50;;;6569:18;;:::i;:::-;6539:50;6619:1;6609:8;6605:16;6602:451;;;7034:4;7027:5;7023:16;7014:25;;6602:451;7084:4;7078;7074:15;7066:23;;7114:32;7137:8;7114:32;:::i;:::-;7102:44;;6444:712;;;6314:848;;;;;;;:::o;7168:1073::-;7222:5;7413:8;7403:40;;7434:1;7425:10;;7436:5;;7403:40;7462:4;7452:36;;7479:1;7470:10;;7481:5;;7452:36;7548:4;7596:1;7591:27;;;;7632:1;7627:191;;;;7541:277;;7591:27;7609:1;7600:10;;7611:5;;;7627:191;7672:3;7662:8;7659:17;7656:43;;;7679:18;;:::i;:::-;7656:43;7728:8;7725:1;7721:16;7712:25;;7763:3;7756:5;7753:14;7750:40;;;7770:18;;:::i;:::-;7750:40;7803:5;;;7541:277;;7927:2;7917:8;7914:16;7908:3;7902:4;7899:13;7895:36;7877:2;7867:8;7864:16;7859:2;7853:4;7850:12;7846:35;7830:111;7827:246;;;7983:8;7977:4;7973:19;7964:28;;8018:3;8011:5;8008:14;8005:40;;;8025:18;;:::i;:::-;8005:40;8058:5;;7827:246;8098:42;8136:3;8126:8;8120:4;8117:1;8098:42;:::i;:::-;8083:57;;;;8172:4;8167:3;8163:14;8156:5;8153:25;8150:51;;;8181:18;;:::i;:::-;8150:51;8230:4;8223:5;8219:16;8210:25;;7168:1073;;;;;;:::o;8247:281::-;8305:5;8329:23;8347:4;8329:23;:::i;:::-;8321:31;;8373:25;8389:8;8373:25;:::i;:::-;8361:37;;8417:104;8454:66;8444:8;8438:4;8417:104;:::i;:::-;8408:113;;8247:281;;;;:::o;8534:410::-;8574:7;8597:20;8615:1;8597:20;:::i;:::-;8592:25;;8631:20;8649:1;8631:20;:::i;:::-;8626:25;;8686:1;8683;8679:9;8708:30;8726:11;8708:30;:::i;:::-;8697:41;;8887:1;8878:7;8874:15;8871:1;8868:22;8848:1;8841:9;8821:83;8798:139;;8917:18;;:::i;:::-;8798:139;8582:362;8534:410;;;;:::o;8950:182::-;9090:34;9086:1;9078:6;9074:14;9067:58;8950:182;:::o;9138:366::-;9280:3;9301:67;9365:2;9360:3;9301:67;:::i;:::-;9294:74;;9377:93;9466:3;9377:93;:::i;:::-;9495:2;9490:3;9486:12;9479:19;;9138:366;;;:::o;9510:419::-;9676:4;9714:2;9703:9;9699:18;9691:26;;9763:9;9757:4;9753:20;9749:1;9738:9;9734:17;9727:47;9791:131;9917:4;9791:131;:::i;:::-;9783:139;;9510:419;;;:::o;9935:173::-;10075:25;10071:1;10063:6;10059:14;10052:49;9935:173;:::o;10114:366::-;10256:3;10277:67;10341:2;10336:3;10277:67;:::i;:::-;10270:74;;10353:93;10442:3;10353:93;:::i;:::-;10471:2;10466:3;10462:12;10455:19;;10114:366;;;:::o;10486:419::-;10652:4;10690:2;10679:9;10675:18;10667:26;;10739:9;10733:4;10729:20;10725:1;10714:9;10710:17;10703:47;10767:131;10893:4;10767:131;:::i;:::-;10759:139;;10486:419;;;:::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:182::-;14954:34;14950:1;14942:6;14938:14;14931:58;14814:182;:::o;15002:366::-;15144:3;15165:67;15229:2;15224:3;15165:67;:::i;:::-;15158:74;;15241:93;15330:3;15241:93;:::i;:::-;15359:2;15354:3;15350:12;15343:19;;15002:366;;;:::o;15374:419::-;15540:4;15578:2;15567:9;15563:18;15555:26;;15627:9;15621:4;15617:20;15613:1;15602:9;15598:17;15591:47;15655:131;15781:4;15655:131;:::i;:::-;15647:139;;15374:419;;;:::o;15799:221::-;15939:34;15935:1;15927:6;15923:14;15916:58;16008:4;16003:2;15995:6;15991:15;15984:29;15799:221;:::o;16026:366::-;16168:3;16189:67;16253:2;16248:3;16189:67;:::i;:::-;16182:74;;16265:93;16354:3;16265:93;:::i;:::-;16383:2;16378:3;16374:12;16367:19;;16026:366;;;:::o;16398:419::-;16564:4;16602:2;16591:9;16587:18;16579:26;;16651:9;16645:4;16641:20;16637:1;16626:9;16622:17;16615:47;16679:131;16805:4;16679:131;:::i;:::-;16671:139;;16398:419;;;:::o;16823:224::-;16963:34;16959:1;16951:6;16947:14;16940:58;17032:7;17027:2;17019:6;17015:15;17008:32;16823:224;:::o;17053:366::-;17195:3;17216:67;17280:2;17275:3;17216:67;:::i;:::-;17209:74;;17292:93;17381:3;17292:93;:::i;:::-;17410:2;17405:3;17401:12;17394:19;;17053:366;;;:::o;17425:419::-;17591:4;17629:2;17618:9;17614:18;17606:26;;17678:9;17672:4;17668:20;17664:1;17653:9;17649:17;17642:47;17706:131;17832:4;17706:131;:::i;:::-;17698:139;;17425:419;;;:::o;17850:222::-;17990:34;17986:1;17978:6;17974:14;17967:58;18059:5;18054:2;18046:6;18042:15;18035:30;17850:222;:::o;18078:366::-;18220:3;18241:67;18305:2;18300:3;18241:67;:::i;:::-;18234:74;;18317:93;18406:3;18317:93;:::i;:::-;18435:2;18430:3;18426:12;18419:19;;18078:366;;;:::o;18450:419::-;18616:4;18654:2;18643:9;18639:18;18631:26;;18703:9;18697:4;18693:20;18689:1;18678:9;18674:17;18667:47;18731:131;18857:4;18731:131;:::i;:::-;18723:139;;18450:419;;;:::o;18875:228::-;19015:34;19011:1;19003:6;18999:14;18992:58;19084:11;19079:2;19071:6;19067:15;19060:36;18875:228;:::o;19109:366::-;19251:3;19272:67;19336:2;19331:3;19272:67;:::i;:::-;19265:74;;19348:93;19437:3;19348:93;:::i;:::-;19466:2;19461:3;19457:12;19450:19;;19109:366;;;:::o;19481:419::-;19647:4;19685:2;19674:9;19670:18;19662:26;;19734:9;19728:4;19724:20;19720:1;19709:9;19705:17;19698:47;19762:131;19888:4;19762:131;:::i;:::-;19754:139;;19481:419;;;:::o;19906:226::-;20046:34;20042:1;20034:6;20030:14;20023:58;20115:9;20110:2;20102:6;20098:15;20091:34;19906:226;:::o;20138:366::-;20280:3;20301:67;20365:2;20360:3;20301:67;:::i;:::-;20294:74;;20377:93;20466:3;20377:93;:::i;:::-;20495:2;20490:3;20486:12;20479:19;;20138:366;;;:::o;20510:419::-;20676:4;20714:2;20703:9;20699:18;20691:26;;20763:9;20757:4;20753:20;20749:1;20738:9;20734:17;20727:47;20791:131;20917:4;20791:131;:::i;:::-;20783:139;;20510:419;;;:::o;20935:175::-;21075:27;21071:1;21063:6;21059:14;21052:51;20935:175;:::o;21116:366::-;21258:3;21279:67;21343:2;21338:3;21279:67;:::i;:::-;21272:74;;21355:93;21444:3;21355:93;:::i;:::-;21473:2;21468:3;21464:12;21457:19;;21116:366;;;:::o;21488:419::-;21654:4;21692:2;21681:9;21677:18;21669:26;;21741:9;21735:4;21731:20;21727:1;21716:9;21712:17;21705:47;21769:131;21895:4;21769:131;:::i;:::-;21761:139;;21488:419;;;:::o;21913:191::-;21953:3;21972:20;21990:1;21972:20;:::i;:::-;21967:25;;22006:20;22024:1;22006:20;:::i;:::-;22001:25;;22049:1;22046;22042:9;22035:16;;22070:3;22067:1;22064:10;22061:36;;;22077:18;;:::i;:::-;22061:36;21913:191;;;;:::o;22110:176::-;22250:28;22246:1;22238:6;22234:14;22227:52;22110:176;:::o;22292:366::-;22434:3;22455:67;22519:2;22514:3;22455:67;:::i;:::-;22448:74;;22531:93;22620:3;22531:93;:::i;:::-;22649:2;22644:3;22640:12;22633:19;;22292:366;;;:::o;22664:419::-;22830:4;22868:2;22857:9;22853:18;22845:26;;22917:9;22911:4;22907:20;22903:1;22892:9;22888:17;22881:47;22945:131;23071:4;22945:131;:::i;:::-;22937:139;;22664:419;;;:::o;23089:233::-;23128:3;23151:24;23169:5;23151:24;:::i;:::-;23142:33;;23197:66;23190:5;23187:77;23184:103;;23267:18;;:::i;:::-;23184:103;23314:1;23307:5;23303:13;23296:20;;23089:233;;;:::o;23328:194::-;23368:4;23388:20;23406:1;23388:20;:::i;:::-;23383:25;;23422:20;23440:1;23422:20;:::i;:::-;23417:25;;23466:1;23463;23459:9;23451:17;;23490:1;23484:4;23481:11;23478:37;;;23495:18;;:::i;:::-;23478:37;23328:194;;;;:::o;23528:180::-;23576:77;23573:1;23566:88;23673:4;23670:1;23663:15;23697:4;23694:1;23687:15;23714:180;23762:77;23759:1;23752:88;23859:4;23856:1;23849:15;23883:4;23880:1;23873:15;23900:114;23967:6;24001:5;23995:12;23985:22;;23900:114;;;:::o;24020:184::-;24119:11;24153:6;24148:3;24141:19;24193:4;24188:3;24184:14;24169:29;;24020:184;;;;:::o;24210:132::-;24277:4;24300:3;24292:11;;24330:4;24325:3;24321:14;24313:22;;24210:132;;;:::o;24348:108::-;24425:24;24443:5;24425:24;:::i;:::-;24420:3;24413:37;24348:108;;:::o;24462:179::-;24531:10;24552:46;24594:3;24586:6;24552:46;:::i;:::-;24630:4;24625:3;24621:14;24607:28;;24462:179;;;;:::o;24647:113::-;24717:4;24749;24744:3;24740:14;24732:22;;24647:113;;;:::o;24796:732::-;24915:3;24944:54;24992:5;24944:54;:::i;:::-;25014:86;25093:6;25088:3;25014:86;:::i;:::-;25007:93;;25124:56;25174:5;25124:56;:::i;:::-;25203:7;25234:1;25219:284;25244:6;25241:1;25238:13;25219:284;;;25320:6;25314:13;25347:63;25406:3;25391:13;25347:63;:::i;:::-;25340:70;;25433:60;25486:6;25433:60;:::i;:::-;25423:70;;25279:224;25266:1;25263;25259:9;25254:14;;25219:284;;;25223:14;25519:3;25512:10;;24920:608;;;24796:732;;;;:::o;25534:831::-;25797:4;25835:3;25824:9;25820:19;25812:27;;25849:71;25917:1;25906:9;25902:17;25893:6;25849:71;:::i;:::-;25930:80;26006:2;25995:9;25991:18;25982:6;25930:80;:::i;:::-;26057:9;26051:4;26047:20;26042:2;26031:9;26027:18;26020:48;26085:108;26188:4;26179:6;26085:108;:::i;:::-;26077:116;;26203:72;26271:2;26260:9;26256:18;26247:6;26203:72;:::i;:::-;26285:73;26353:3;26342:9;26338:19;26329:6;26285:73;:::i;:::-;25534:831;;;;;;;;:::o;26371:180::-;26419:77;26416:1;26409:88;26516:4;26513:1;26506:15;26540:4;26537:1;26530:15;26557:185;26597:1;26614:20;26632:1;26614:20;:::i;:::-;26609:25;;26648:20;26666:1;26648:20;:::i;:::-;26643:25;;26687:1;26677:35;;26692:18;;:::i;:::-;26677:35;26734:1;26731;26727:9;26722:14;;26557:185;;;;:::o;26748:220::-;26888:34;26884:1;26876:6;26872:14;26865:58;26957:3;26952:2;26944:6;26940:15;26933:28;26748:220;:::o;26974:366::-;27116:3;27137:67;27201:2;27196:3;27137:67;:::i;:::-;27130:74;;27213:93;27302:3;27213:93;:::i;:::-;27331:2;27326:3;27322:12;27315:19;;26974:366;;;:::o;27346:419::-;27512:4;27550:2;27539:9;27535:18;27527:26;;27599:9;27593:4;27589:20;27585:1;27574:9;27570:17;27563:47;27627:131;27753:4;27627:131;:::i;:::-;27619:139;;27346:419;;;:::o;27771:177::-;27911:29;27907:1;27899:6;27895:14;27888:53;27771:177;:::o;27954:366::-;28096:3;28117:67;28181:2;28176:3;28117:67;:::i;:::-;28110:74;;28193:93;28282:3;28193:93;:::i;:::-;28311:2;28306:3;28302:12;28295:19;;27954:366;;;:::o;28326:419::-;28492:4;28530:2;28519:9;28515:18;28507:26;;28579:9;28573:4;28569:20;28565:1;28554:9;28550:17;28543:47;28607:131;28733:4;28607:131;:::i;:::-;28599:139;;28326:419;;;:::o

Swarm Source

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