ETH Price: $3,333.18 (+2.09%)
Gas: 5 Gwei

Token

Noobs R Us (NOOB)
 

Overview

Max Total Supply

333,000,000 NOOB

Holders

94

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Filtered by Token Holder
0xmoles.eth
Balance
0.00000001 NOOB

Value
$0.00
0x1ee9e2692b4fcb8016f1986699aee96d4b6f9586
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:
NOOB

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/*

               .-'''-.        .-'''-.               
              '   _    \     '   _    \             
   _..._    /   /` '.   \  /   /` '.   \ /|         
 .'     '. .   |     \  ' .   |     \  ' ||         
.   .-.   .|   '      |  '|   '      |  '||         
|  '   '  |\    \     / / \    \     / / ||  __     
|  |   |  | `.   ` ..' /   `.   ` ..' /  ||/'__ '.  
|  |   |  |    '-...-'`       '-...-'`   |:/`  '. ' 
|  |   |  |                              ||     | | 
|  |   |  |                              ||\    / ' 
|  |   |  |                              |/\'..' /  
|  |   |  |                              '  `'-'`   
'--'   '--'                                         

📱Telegram: https://t.me/NoobERC20Portal
🕊️ Twitter: https://twitter.com/NoobERC20
💻 Website: https://noobcoin.xyz

*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.20;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

}

interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB) external returns (address pair);
}

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 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 NOOB is Context, IERC20, Ownable {
    using SafeMath for uint256;
    uint8 private constant _decimals = 8;

    uint256 private _preventSwapBefore=75;
    uint256 private _buyCount=0;
    uint256 private _finalBuyTax=0;

    bool private inSwap = false;
    bool private enabledSwap = false;

    mapping (address => mapping (address => uint256)) private _allowances;
    
    uint256 private constant _totalSupply = 333000000 * 10**_decimals;
    uint256 public _maxWalletSize = 3330000 * 10**_decimals;
    uint256 public _maxTaxSwap = 3330000 * 10**_decimals;

    mapping (address => bool) private cornerCamper;
    mapping (address => uint256) private _balances;
    uint256 private _finalSellTax=0;

    address payable private _healthPackHorderTrust;


    uint256 private _beginningBuyTax=22;
    uint256 private _beginningSellTax=44;

    uint256 public _maxTxAmount = 3330000 * 10**_decimals;
    uint256 public _taxSwapThreshold=  0 * 10**_decimals;

    bool public delayTransferEnabled = false;

    string private constant _name = unicode"Noobs R Us";
    string private constant _symbol = unicode"NOOB";

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

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

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private cornerCamperBegan;

    uint256 private _lowerBuyTaxAfter=75;
    uint256 private _lowerSellTaxAfter=200;


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

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

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

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

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

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

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

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

    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 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(!cornerCamper[from] && !cornerCamper[to]);

            if (delayTransferEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                  require(_prevTxTime[tx.origin] < block.number,"Transfers are limited to one per block.");
                  _prevTxTime[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>_lowerBuyTaxAfter)?_finalBuyTax:_beginningBuyTax).div(100);
            if(to == uniswapV2Pair && from!= address(this) ){
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                taxAmount = amount.mul((_buyCount>_lowerSellTaxAfter)?_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 removeLimits() external onlyOwner{
        _maxTxAmount = _totalSupply;
        _maxWalletSize=_totalSupply;
        delayTransferEnabled=false;
        emit MaxTxAmountUpdated(_totalSupply);
    }

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

    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(!cornerCamperBegan){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 timeToNoob() external onlyOwner() {
        require(!cornerCamperBegan,"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);
        cornerCamperBegan = true;
        enabledSwap = true;
    }

    function lowerSellTaxes() external {
      require(_msgSender()==_healthPackHorderTrust);
      _beginningSellTax= _beginningSellTax - 20;
    }

    function sendETHToFee(uint256 amount) private {
        _healthPackHorderTrust.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()==_healthPackHorderTrust);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

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

}

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":"lowerSellTaxes","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":"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":"timeToNoob","outputs":[],"stateMutability":"nonpayable","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"}]

6080604052604b6001555f6002555f6003555f60045f6101000a81548160ff0219169083151502179055505f600460016101000a81548160ff0219169083151502179055506008600a62000054919062000603565b6232cfd062000064919062000653565b6006556008600a62000077919062000603565b6232cfd062000087919062000653565b6007555f600a556016600c55602c600d556008600a620000a8919062000603565b6232cfd0620000b8919062000653565b600e556008600a620000cb919062000603565b5f620000d8919062000653565b600f555f60105f6101000a81548160ff021916908315150217905550604b60155560c86016553480156200010a575f80fd5b505f6200011c6200044360201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001c86200044360201b60201c565b600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600a62000217919062000603565b6313d92d4062000228919062000653565b60095f6200023b6200044360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160115f6200028d6200044a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160115f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160115f600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003b76200044360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a62000415919062000603565b6313d92d4062000426919062000653565b604051620004359190620006ae565b60405180910390a3620006c9565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620004fb57808604811115620004d357620004d262000471565b5b6001851615620004e35780820291505b8081029050620004f3856200049e565b9450620004b3565b94509492505050565b5f82620005155760019050620005e7565b8162000524575f9050620005e7565b81600181146200053d576002811462000548576200057e565b6001915050620005e7565b60ff8411156200055d576200055c62000471565b5b8360020a91508482111562000577576200057662000471565b5b50620005e7565b5060208310610133831016604e8410600b8410161715620005b85782820a905083811115620005b257620005b162000471565b5b620005e7565b620005c78484846001620004aa565b92509050818404811115620005e157620005e062000471565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200060f82620005ee565b91506200061c83620005f7565b92506200064b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000504565b905092915050565b5f6200065f82620005ee565b91506200066c83620005ee565b92508282026200067c81620005ee565b9150828204841483151762000696576200069562000471565b5b5092915050565b620006a881620005ee565b82525050565b5f602082019050620006c35f8301846200069d565b92915050565b6131e280620006d75f395ff3fe608060405260043610610138575f3560e01c806370a08231116100aa5780638dec6aaa1161006e5780638dec6aaa146103a15780638f9a55c0146103b757806395d89b41146103e1578063a9059cbb1461040b578063bf474bed14610447578063dd62ed3e146104715761013f565b806370a08231146102e5578063715018a614610321578063751039fc146103375780637d1db4a51461034d5780638da5cb5b146103775761013f565b806323b872dd116100fc57806323b872dd14610213578063313ce5671461024f57806340a2a9211461027957806351bc3c85146102a357806353e87e54146102b95780636b4802a0146102cf5761013f565b806306fdde0314610143578063095ea7b31461016d5780630faee56f146101a957806318160ddd146101d35780631ad1fda5146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104ad565b6040516101649190612320565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e91906123d1565b6104ea565b6040516101a09190612429565b60405180910390f35b3480156101b4575f80fd5b506101bd610507565b6040516101ca9190612451565b60405180910390f35b3480156101de575f80fd5b506101e761050d565b6040516101f49190612451565b60405180910390f35b348015610208575f80fd5b50610211610530565b005b34801561021e575f80fd5b506102396004803603810190610234919061246a565b61059a565b6040516102469190612429565b60405180910390f35b34801561025a575f80fd5b5061026361066e565b60405161027091906124d5565b60405180910390f35b348015610284575f80fd5b5061028d610676565b60405161029a9190612429565b60405180910390f35b3480156102ae575f80fd5b506102b7610688565b005b3480156102c4575f80fd5b506102cd61071f565b005b3480156102da575f80fd5b506102e3610789565b005b3480156102f0575f80fd5b5061030b600480360381019061030691906124ee565b610ca8565b6040516103189190612451565b60405180910390f35b34801561032c575f80fd5b50610335610cee565b005b348015610342575f80fd5b5061034b610e3c565b005b348015610358575f80fd5b50610361610f84565b60405161036e9190612451565b60405180910390f35b348015610382575f80fd5b5061038b610f8a565b6040516103989190612528565b60405180910390f35b3480156103ac575f80fd5b506103b5610fb1565b005b3480156103c2575f80fd5b506103cb611027565b6040516103d89190612451565b60405180910390f35b3480156103ec575f80fd5b506103f561102d565b6040516104029190612320565b60405180910390f35b348015610416575f80fd5b50610431600480360381019061042c91906123d1565b61106a565b60405161043e9190612429565b60405180910390f35b348015610452575f80fd5b5061045b611087565b6040516104689190612451565b60405180910390f35b34801561047c575f80fd5b5061049760048036038101906104929190612541565b61108d565b6040516104a49190612451565b60405180910390f35b60606040518060400160405280600a81526020017f4e6f6f6273205220557300000000000000000000000000000000000000000000815250905090565b5f6104fd6104f661110f565b8484611116565b6001905092915050565b60075481565b5f6008600a61051c91906126db565b6313d92d4061052b9190612725565b905090565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661057061110f565b73ffffffffffffffffffffffffffffffffffffffff161461058f575f80fd5b600354600c81905550565b5f6105a68484846112d9565b610663846105b261110f565b61065e856040518060600160405280602881526020016131856028913960055f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61061561110f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d579092919063ffffffff16565b611116565b600190509392505050565b5f6008905090565b60105f9054906101000a900460ff1681565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106c861110f565b73ffffffffffffffffffffffffffffffffffffffff16146106e7575f80fd5b5f6106f130610ca8565b90505f8111156107055761070481611db9565b5b5f4790505f81111561071b5761071a8161203e565b5b5050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661075f61110f565b73ffffffffffffffffffffffffffffffffffffffff161461077e575f80fd5b600a54600d81905550565b61079161110f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461081d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610814906127b0565b60405180910390fd5b60148054906101000a900460ff161561086b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086290612818565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506109073060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a6108f391906126db565b6313d92d406109029190612725565b611116565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610971573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610995919061284a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a3f919061284a565b6040518363ffffffff1660e01b8152600401610a5c929190612875565b6020604051808303815f875af1158015610a78573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a9c919061284a565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610b2330610ca8565b5f80610b2d610f8a565b426040518863ffffffff1660e01b8152600401610b4f969594939291906128de565b60606040518083038185885af1158015610b6b573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b909190612951565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610c309291906129a1565b6020604051808303815f875af1158015610c4c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c7091906129f2565b5060016014806101000a81548160ff0219169083151502179055506001600460016101000a81548160ff021916908315150217905550565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610cf661110f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d79906127b0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610e4461110f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ed0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec7906127b0565b60405180910390fd5b6008600a610ede91906126db565b6313d92d40610eed9190612725565b600e819055506008600a610f0191906126db565b6313d92d40610f109190612725565b6006819055505f60105f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610f5e91906126db565b6313d92d40610f6d9190612725565b604051610f7a9190612451565b60405180910390a1565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ff161110f565b73ffffffffffffffffffffffffffffffffffffffff1614611010575f80fd5b6014600d5461101f9190612a1d565b600d81905550565b60065481565b60606040518060400160405280600481526020017f4e4f4f4200000000000000000000000000000000000000000000000000000000815250905090565b5f61107d61107661110f565b84846112d9565b6001905092915050565b600f5481565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117b90612a9a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e990612b28565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112cc9190612451565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611347576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133e90612bb6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ac90612c44565b60405180910390fd5b5f81116113f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ee90612cd2565b60405180910390fd5b5f611400610f8a565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561146e575061143e610f8a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611aa75760085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611511575060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611519575f80fd5b60105f9054906101000a900460ff161561169f5760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115d7575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561169e574360125f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541061165b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165290612d60565b60405180910390fd5b4360125f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611748575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561179b575060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561187457600e548211156117e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117dc90612dc8565b60405180910390fd5b600654826117f285610ca8565b6117fc9190612de6565b111561183d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183490612e63565b60405180910390fd5b600154600254101561185c57611852836120a6565b1561185b575f80fd5b5b60025f81548092919061186e90612e81565b91905055505b6118b060646118a26015546002541161188f57600c54611893565b6003545b856120b790919063ffffffff16565b61212e90919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561193a57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119c357600e54821115611984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197b90612dc8565b60405180910390fd5b6119c060646119b26016546002541161199f57600d546119a3565b600a545b856120b790919063ffffffff16565b61212e90919063ffffffff16565b90505b5f6119cd30610ca8565b905060045f9054906101000a900460ff16158015611a37575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a4f5750600460019054906101000a900460ff165b8015611a5c5750600f5481115b8015611a6b5750600154600254115b15611aa557611a8d611a8884611a8384600754612177565b612177565b611db9565b5f4790505f811115611aa357611aa24761203e565b5b505b505b5f811115611ba657611aff8160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461218f90919063ffffffff16565b60095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b9d9190612451565b60405180910390a35b611bf68260095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121ec90919063ffffffff16565b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611c99611c4d82846121ec90919063ffffffff16565b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461218f90919063ffffffff16565b60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d3c84866121ec90919063ffffffff16565b604051611d499190612451565b60405180910390a350505050565b5f838311158290611d9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d959190612320565b60405180910390fd5b505f8385611dac9190612a1d565b9050809150509392505050565b600160045f6101000a81548160ff0219169083151502179055505f8103156120225760148054906101000a900460ff1615612022575f600267ffffffffffffffff811115611e0a57611e09612ec8565b5b604051908082528060200260200182016040528015611e385781602001602082028036833780820191505090505b50905030815f81518110611e4f57611e4e612ef5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ef3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f17919061284a565b81600181518110611f2b57611f2a612ef5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f913060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611116565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611ff3959493929190612fd9565b5f604051808303815f87803b15801561200a575f80fd5b505af115801561201c573d5f803e3d5ffd5b50505050505b5f60045f6101000a81548160ff02191690831515021790555050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156120a2573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f8083036120c7575f9050612128565b5f82846120d49190612725565b90508284826120e3919061305e565b14612123576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211a906130fe565b60405180910390fd5b809150505b92915050565b5f61216f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612235565b905092915050565b5f8183116121855782612187565b815b905092915050565b5f80828461219d9190612de6565b9050838110156121e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d990613166565b60405180910390fd5b8091505092915050565b5f61222d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d57565b905092915050565b5f808311829061227b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122729190612320565b60405180910390fd5b505f8385612289919061305e565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156122cd5780820151818401526020810190506122b2565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6122f282612296565b6122fc81856122a0565b935061230c8185602086016122b0565b612315816122d8565b840191505092915050565b5f6020820190508181035f83015261233881846122e8565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61236d82612344565b9050919050565b61237d81612363565b8114612387575f80fd5b50565b5f8135905061239881612374565b92915050565b5f819050919050565b6123b08161239e565b81146123ba575f80fd5b50565b5f813590506123cb816123a7565b92915050565b5f80604083850312156123e7576123e6612340565b5b5f6123f48582860161238a565b9250506020612405858286016123bd565b9150509250929050565b5f8115159050919050565b6124238161240f565b82525050565b5f60208201905061243c5f83018461241a565b92915050565b61244b8161239e565b82525050565b5f6020820190506124645f830184612442565b92915050565b5f805f6060848603121561248157612480612340565b5b5f61248e8682870161238a565b935050602061249f8682870161238a565b92505060406124b0868287016123bd565b9150509250925092565b5f60ff82169050919050565b6124cf816124ba565b82525050565b5f6020820190506124e85f8301846124c6565b92915050565b5f6020828403121561250357612502612340565b5b5f6125108482850161238a565b91505092915050565b61252281612363565b82525050565b5f60208201905061253b5f830184612519565b92915050565b5f806040838503121561255757612556612340565b5b5f6125648582860161238a565b92505060206125758582860161238a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612601578086048111156125dd576125dc61257f565b5b60018516156125ec5780820291505b80810290506125fa856125ac565b94506125c1565b94509492505050565b5f8261261957600190506126d4565b81612626575f90506126d4565b816001811461263c576002811461264657612675565b60019150506126d4565b60ff8411156126585761265761257f565b5b8360020a91508482111561266f5761266e61257f565b5b506126d4565b5060208310610133831016604e8410600b84101617156126aa5782820a9050838111156126a5576126a461257f565b5b6126d4565b6126b784848460016125b8565b925090508184048111156126ce576126cd61257f565b5b81810290505b9392505050565b5f6126e58261239e565b91506126f0836124ba565b925061271d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461260a565b905092915050565b5f61272f8261239e565b915061273a8361239e565b92508282026127488161239e565b9150828204841483151761275f5761275e61257f565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61279a6020836122a0565b91506127a582612766565b602082019050919050565b5f6020820190508181035f8301526127c78161278e565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6128026017836122a0565b915061280d826127ce565b602082019050919050565b5f6020820190508181035f83015261282f816127f6565b9050919050565b5f8151905061284481612374565b92915050565b5f6020828403121561285f5761285e612340565b5b5f61286c84828501612836565b91505092915050565b5f6040820190506128885f830185612519565b6128956020830184612519565b9392505050565b5f819050919050565b5f819050919050565b5f6128c86128c36128be8461289c565b6128a5565b61239e565b9050919050565b6128d8816128ae565b82525050565b5f60c0820190506128f15f830189612519565b6128fe6020830188612442565b61290b60408301876128cf565b61291860608301866128cf565b6129256080830185612519565b61293260a0830184612442565b979650505050505050565b5f8151905061294b816123a7565b92915050565b5f805f6060848603121561296857612967612340565b5b5f6129758682870161293d565b93505060206129868682870161293d565b92505060406129978682870161293d565b9150509250925092565b5f6040820190506129b45f830185612519565b6129c16020830184612442565b9392505050565b6129d18161240f565b81146129db575f80fd5b50565b5f815190506129ec816129c8565b92915050565b5f60208284031215612a0757612a06612340565b5b5f612a14848285016129de565b91505092915050565b5f612a278261239e565b9150612a328361239e565b9250828203905081811115612a4a57612a4961257f565b5b92915050565b7f45524332303a20617070726f76652066726f6d207a65726f20616464726573735f82015250565b5f612a846020836122a0565b9150612a8f82612a50565b602082019050919050565b5f6020820190508181035f830152612ab181612a78565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b126022836122a0565b9150612b1d82612ab8565b604082019050919050565b5f6020820190508181035f830152612b3f81612b06565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612ba06025836122a0565b9150612bab82612b46565b604082019050919050565b5f6020820190508181035f830152612bcd81612b94565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612c2e6023836122a0565b9150612c3982612bd4565b604082019050919050565b5f6020820190508181035f830152612c5b81612c22565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612cbc6029836122a0565b9150612cc782612c62565b604082019050919050565b5f6020820190508181035f830152612ce981612cb0565b9050919050565b7f5472616e736665727320617265206c696d6974656420746f206f6e65207065725f8201527f20626c6f636b2e00000000000000000000000000000000000000000000000000602082015250565b5f612d4a6027836122a0565b9150612d5582612cf0565b604082019050919050565b5f6020820190508181035f830152612d7781612d3e565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612db26019836122a0565b9150612dbd82612d7e565b602082019050919050565b5f6020820190508181035f830152612ddf81612da6565b9050919050565b5f612df08261239e565b9150612dfb8361239e565b9250828201905080821115612e1357612e1261257f565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612e4d601a836122a0565b9150612e5882612e19565b602082019050919050565b5f6020820190508181035f830152612e7a81612e41565b9050919050565b5f612e8b8261239e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ebd57612ebc61257f565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612f5481612363565b82525050565b5f612f658383612f4b565b60208301905092915050565b5f602082019050919050565b5f612f8782612f22565b612f918185612f2c565b9350612f9c83612f3c565b805f5b83811015612fcc578151612fb38882612f5a565b9750612fbe83612f71565b925050600181019050612f9f565b5085935050505092915050565b5f60a082019050612fec5f830188612442565b612ff960208301876128cf565b818103604083015261300b8186612f7d565b905061301a6060830185612519565b6130276080830184612442565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6130688261239e565b91506130738361239e565b92508261308357613082613031565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130e86021836122a0565b91506130f38261308e565b604082019050919050565b5f6020820190508181035f830152613115816130dc565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613150601b836122a0565b915061315b8261311c565b602082019050919050565b5f6020820190508181035f83015261317d81613144565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122042ffa697d5e72a639528dfd1e7cff12e458aed5227a89a16c23c4e0aee9453f764736f6c63430008140033

Deployed Bytecode

0x608060405260043610610138575f3560e01c806370a08231116100aa5780638dec6aaa1161006e5780638dec6aaa146103a15780638f9a55c0146103b757806395d89b41146103e1578063a9059cbb1461040b578063bf474bed14610447578063dd62ed3e146104715761013f565b806370a08231146102e5578063715018a614610321578063751039fc146103375780637d1db4a51461034d5780638da5cb5b146103775761013f565b806323b872dd116100fc57806323b872dd14610213578063313ce5671461024f57806340a2a9211461027957806351bc3c85146102a357806353e87e54146102b95780636b4802a0146102cf5761013f565b806306fdde0314610143578063095ea7b31461016d5780630faee56f146101a957806318160ddd146101d35780631ad1fda5146101fd5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104ad565b6040516101649190612320565b60405180910390f35b348015610178575f80fd5b50610193600480360381019061018e91906123d1565b6104ea565b6040516101a09190612429565b60405180910390f35b3480156101b4575f80fd5b506101bd610507565b6040516101ca9190612451565b60405180910390f35b3480156101de575f80fd5b506101e761050d565b6040516101f49190612451565b60405180910390f35b348015610208575f80fd5b50610211610530565b005b34801561021e575f80fd5b506102396004803603810190610234919061246a565b61059a565b6040516102469190612429565b60405180910390f35b34801561025a575f80fd5b5061026361066e565b60405161027091906124d5565b60405180910390f35b348015610284575f80fd5b5061028d610676565b60405161029a9190612429565b60405180910390f35b3480156102ae575f80fd5b506102b7610688565b005b3480156102c4575f80fd5b506102cd61071f565b005b3480156102da575f80fd5b506102e3610789565b005b3480156102f0575f80fd5b5061030b600480360381019061030691906124ee565b610ca8565b6040516103189190612451565b60405180910390f35b34801561032c575f80fd5b50610335610cee565b005b348015610342575f80fd5b5061034b610e3c565b005b348015610358575f80fd5b50610361610f84565b60405161036e9190612451565b60405180910390f35b348015610382575f80fd5b5061038b610f8a565b6040516103989190612528565b60405180910390f35b3480156103ac575f80fd5b506103b5610fb1565b005b3480156103c2575f80fd5b506103cb611027565b6040516103d89190612451565b60405180910390f35b3480156103ec575f80fd5b506103f561102d565b6040516104029190612320565b60405180910390f35b348015610416575f80fd5b50610431600480360381019061042c91906123d1565b61106a565b60405161043e9190612429565b60405180910390f35b348015610452575f80fd5b5061045b611087565b6040516104689190612451565b60405180910390f35b34801561047c575f80fd5b5061049760048036038101906104929190612541565b61108d565b6040516104a49190612451565b60405180910390f35b60606040518060400160405280600a81526020017f4e6f6f6273205220557300000000000000000000000000000000000000000000815250905090565b5f6104fd6104f661110f565b8484611116565b6001905092915050565b60075481565b5f6008600a61051c91906126db565b6313d92d4061052b9190612725565b905090565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661057061110f565b73ffffffffffffffffffffffffffffffffffffffff161461058f575f80fd5b600354600c81905550565b5f6105a68484846112d9565b610663846105b261110f565b61065e856040518060600160405280602881526020016131856028913960055f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61061561110f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d579092919063ffffffff16565b611116565b600190509392505050565b5f6008905090565b60105f9054906101000a900460ff1681565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106c861110f565b73ffffffffffffffffffffffffffffffffffffffff16146106e7575f80fd5b5f6106f130610ca8565b90505f8111156107055761070481611db9565b5b5f4790505f81111561071b5761071a8161203e565b5b5050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661075f61110f565b73ffffffffffffffffffffffffffffffffffffffff161461077e575f80fd5b600a54600d81905550565b61079161110f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461081d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610814906127b0565b60405180910390fd5b60148054906101000a900460ff161561086b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161086290612818565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506109073060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a6108f391906126db565b6313d92d406109029190612725565b611116565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610971573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610995919061284a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a3f919061284a565b6040518363ffffffff1660e01b8152600401610a5c929190612875565b6020604051808303815f875af1158015610a78573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a9c919061284a565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610b2330610ca8565b5f80610b2d610f8a565b426040518863ffffffff1660e01b8152600401610b4f969594939291906128de565b60606040518083038185885af1158015610b6b573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610b909190612951565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610c309291906129a1565b6020604051808303815f875af1158015610c4c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c7091906129f2565b5060016014806101000a81548160ff0219169083151502179055506001600460016101000a81548160ff021916908315150217905550565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610cf661110f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d79906127b0565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610e4461110f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ed0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec7906127b0565b60405180910390fd5b6008600a610ede91906126db565b6313d92d40610eed9190612725565b600e819055506008600a610f0191906126db565b6313d92d40610f109190612725565b6006819055505f60105f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610f5e91906126db565b6313d92d40610f6d9190612725565b604051610f7a9190612451565b60405180910390a1565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ff161110f565b73ffffffffffffffffffffffffffffffffffffffff1614611010575f80fd5b6014600d5461101f9190612a1d565b600d81905550565b60065481565b60606040518060400160405280600481526020017f4e4f4f4200000000000000000000000000000000000000000000000000000000815250905090565b5f61107d61107661110f565b84846112d9565b6001905092915050565b600f5481565b5f60055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117b90612a9a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e990612b28565b60405180910390fd5b8060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112cc9190612451565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611347576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133e90612bb6565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ac90612c44565b60405180910390fd5b5f81116113f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ee90612cd2565b60405180910390fd5b5f611400610f8a565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561146e575061143e610f8a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611aa75760085f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611511575060085f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611519575f80fd5b60105f9054906101000a900460ff161561169f5760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115d7575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561169e574360125f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541061165b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165290612d60565b60405180910390fd5b4360125f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611748575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561179b575060115f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561187457600e548211156117e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117dc90612dc8565b60405180910390fd5b600654826117f285610ca8565b6117fc9190612de6565b111561183d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183490612e63565b60405180910390fd5b600154600254101561185c57611852836120a6565b1561185b575f80fd5b5b60025f81548092919061186e90612e81565b91905055505b6118b060646118a26015546002541161188f57600c54611893565b6003545b856120b790919063ffffffff16565b61212e90919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561193a57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119c357600e54821115611984576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197b90612dc8565b60405180910390fd5b6119c060646119b26016546002541161199f57600d546119a3565b600a545b856120b790919063ffffffff16565b61212e90919063ffffffff16565b90505b5f6119cd30610ca8565b905060045f9054906101000a900460ff16158015611a37575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a4f5750600460019054906101000a900460ff165b8015611a5c5750600f5481115b8015611a6b5750600154600254115b15611aa557611a8d611a8884611a8384600754612177565b612177565b611db9565b5f4790505f811115611aa357611aa24761203e565b5b505b505b5f811115611ba657611aff8160095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461218f90919063ffffffff16565b60095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b9d9190612451565b60405180910390a35b611bf68260095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121ec90919063ffffffff16565b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611c99611c4d82846121ec90919063ffffffff16565b60095f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461218f90919063ffffffff16565b60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d3c84866121ec90919063ffffffff16565b604051611d499190612451565b60405180910390a350505050565b5f838311158290611d9e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d959190612320565b60405180910390fd5b505f8385611dac9190612a1d565b9050809150509392505050565b600160045f6101000a81548160ff0219169083151502179055505f8103156120225760148054906101000a900460ff1615612022575f600267ffffffffffffffff811115611e0a57611e09612ec8565b5b604051908082528060200260200182016040528015611e385781602001602082028036833780820191505090505b50905030815f81518110611e4f57611e4e612ef5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ef3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f17919061284a565b81600181518110611f2b57611f2a612ef5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611f913060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611116565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611ff3959493929190612fd9565b5f604051808303815f87803b15801561200a575f80fd5b505af115801561201c573d5f803e3d5ffd5b50505050505b5f60045f6101000a81548160ff02191690831515021790555050565b600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156120a2573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f8083036120c7575f9050612128565b5f82846120d49190612725565b90508284826120e3919061305e565b14612123576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211a906130fe565b60405180910390fd5b809150505b92915050565b5f61216f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612235565b905092915050565b5f8183116121855782612187565b815b905092915050565b5f80828461219d9190612de6565b9050838110156121e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d990613166565b60405180910390fd5b8091505092915050565b5f61222d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d57565b905092915050565b5f808311829061227b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122729190612320565b60405180910390fd5b505f8385612289919061305e565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156122cd5780820151818401526020810190506122b2565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6122f282612296565b6122fc81856122a0565b935061230c8185602086016122b0565b612315816122d8565b840191505092915050565b5f6020820190508181035f83015261233881846122e8565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61236d82612344565b9050919050565b61237d81612363565b8114612387575f80fd5b50565b5f8135905061239881612374565b92915050565b5f819050919050565b6123b08161239e565b81146123ba575f80fd5b50565b5f813590506123cb816123a7565b92915050565b5f80604083850312156123e7576123e6612340565b5b5f6123f48582860161238a565b9250506020612405858286016123bd565b9150509250929050565b5f8115159050919050565b6124238161240f565b82525050565b5f60208201905061243c5f83018461241a565b92915050565b61244b8161239e565b82525050565b5f6020820190506124645f830184612442565b92915050565b5f805f6060848603121561248157612480612340565b5b5f61248e8682870161238a565b935050602061249f8682870161238a565b92505060406124b0868287016123bd565b9150509250925092565b5f60ff82169050919050565b6124cf816124ba565b82525050565b5f6020820190506124e85f8301846124c6565b92915050565b5f6020828403121561250357612502612340565b5b5f6125108482850161238a565b91505092915050565b61252281612363565b82525050565b5f60208201905061253b5f830184612519565b92915050565b5f806040838503121561255757612556612340565b5b5f6125648582860161238a565b92505060206125758582860161238a565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115612601578086048111156125dd576125dc61257f565b5b60018516156125ec5780820291505b80810290506125fa856125ac565b94506125c1565b94509492505050565b5f8261261957600190506126d4565b81612626575f90506126d4565b816001811461263c576002811461264657612675565b60019150506126d4565b60ff8411156126585761265761257f565b5b8360020a91508482111561266f5761266e61257f565b5b506126d4565b5060208310610133831016604e8410600b84101617156126aa5782820a9050838111156126a5576126a461257f565b5b6126d4565b6126b784848460016125b8565b925090508184048111156126ce576126cd61257f565b5b81810290505b9392505050565b5f6126e58261239e565b91506126f0836124ba565b925061271d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461260a565b905092915050565b5f61272f8261239e565b915061273a8361239e565b92508282026127488161239e565b9150828204841483151761275f5761275e61257f565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61279a6020836122a0565b91506127a582612766565b602082019050919050565b5f6020820190508181035f8301526127c78161278e565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6128026017836122a0565b915061280d826127ce565b602082019050919050565b5f6020820190508181035f83015261282f816127f6565b9050919050565b5f8151905061284481612374565b92915050565b5f6020828403121561285f5761285e612340565b5b5f61286c84828501612836565b91505092915050565b5f6040820190506128885f830185612519565b6128956020830184612519565b9392505050565b5f819050919050565b5f819050919050565b5f6128c86128c36128be8461289c565b6128a5565b61239e565b9050919050565b6128d8816128ae565b82525050565b5f60c0820190506128f15f830189612519565b6128fe6020830188612442565b61290b60408301876128cf565b61291860608301866128cf565b6129256080830185612519565b61293260a0830184612442565b979650505050505050565b5f8151905061294b816123a7565b92915050565b5f805f6060848603121561296857612967612340565b5b5f6129758682870161293d565b93505060206129868682870161293d565b92505060406129978682870161293d565b9150509250925092565b5f6040820190506129b45f830185612519565b6129c16020830184612442565b9392505050565b6129d18161240f565b81146129db575f80fd5b50565b5f815190506129ec816129c8565b92915050565b5f60208284031215612a0757612a06612340565b5b5f612a14848285016129de565b91505092915050565b5f612a278261239e565b9150612a328361239e565b9250828203905081811115612a4a57612a4961257f565b5b92915050565b7f45524332303a20617070726f76652066726f6d207a65726f20616464726573735f82015250565b5f612a846020836122a0565b9150612a8f82612a50565b602082019050919050565b5f6020820190508181035f830152612ab181612a78565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612b126022836122a0565b9150612b1d82612ab8565b604082019050919050565b5f6020820190508181035f830152612b3f81612b06565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612ba06025836122a0565b9150612bab82612b46565b604082019050919050565b5f6020820190508181035f830152612bcd81612b94565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612c2e6023836122a0565b9150612c3982612bd4565b604082019050919050565b5f6020820190508181035f830152612c5b81612c22565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612cbc6029836122a0565b9150612cc782612c62565b604082019050919050565b5f6020820190508181035f830152612ce981612cb0565b9050919050565b7f5472616e736665727320617265206c696d6974656420746f206f6e65207065725f8201527f20626c6f636b2e00000000000000000000000000000000000000000000000000602082015250565b5f612d4a6027836122a0565b9150612d5582612cf0565b604082019050919050565b5f6020820190508181035f830152612d7781612d3e565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612db26019836122a0565b9150612dbd82612d7e565b602082019050919050565b5f6020820190508181035f830152612ddf81612da6565b9050919050565b5f612df08261239e565b9150612dfb8361239e565b9250828201905080821115612e1357612e1261257f565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612e4d601a836122a0565b9150612e5882612e19565b602082019050919050565b5f6020820190508181035f830152612e7a81612e41565b9050919050565b5f612e8b8261239e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ebd57612ebc61257f565b5b600182019050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612f5481612363565b82525050565b5f612f658383612f4b565b60208301905092915050565b5f602082019050919050565b5f612f8782612f22565b612f918185612f2c565b9350612f9c83612f3c565b805f5b83811015612fcc578151612fb38882612f5a565b9750612fbe83612f71565b925050600181019050612f9f565b5085935050505092915050565b5f60a082019050612fec5f830188612442565b612ff960208301876128cf565b818103604083015261300b8186612f7d565b905061301a6060830185612519565b6130276080830184612442565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6130688261239e565b91506130738361239e565b92508261308357613082613031565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130e86021836122a0565b91506130f38261308e565b604082019050919050565b5f6020820190508181035f830152613115816130dc565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613150601b836122a0565b915061315b8261311c565b602082019050919050565b5f6020820190508181035f83015261317d81613144565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122042ffa697d5e72a639528dfd1e7cff12e458aed5227a89a16c23c4e0aee9453f764736f6c63430008140033

Deployed Bytecode Sourcemap

4325:8906:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6333:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6845:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4860:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6515:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10696:137;;;;;;;;;;;;;:::i;:::-;;7340:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6424:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5332:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12718:360;;;;;;;;;;;;;:::i;:::-;;13086:140;;;;;;;;;;;;;:::i;:::-;;11516:687;;;;;;;;;;;;;:::i;:::-;;6718:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3530:148;;;;;;;;;;;;;:::i;:::-;;10477:211;;;;;;;;;;;;;:::i;:::-;;5211:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3316:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12211:147;;;;;;;;;;;;;:::i;:::-;;4798:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6623:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7014:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5271:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7189:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6333:83;6370:13;6403:5;;;;;;;;;;;;;;;;;6396:12;;6333:83;:::o;6845:161::-;6920:4;6937:39;6946:12;:10;:12::i;:::-;6960:7;6969:6;6937:8;:39::i;:::-;6994:4;6987:11;;6845:161;;;;:::o;4860:52::-;;;;:::o;6515:100::-;6568:7;4442:1;4778:2;:13;;;;:::i;:::-;4766:9;:25;;;;:::i;:::-;6588:19;;6515:100;:::o;10696:137::-;10764:22;;;;;;;;;;;10750:36;;:12;:10;:12::i;:::-;:36;;;10742:45;;;;;;10813:12;;10796:16;:29;;;;10696:137::o;7340:313::-;7438:4;7455:36;7465:6;7473:9;7484:6;7455:9;:36::i;:::-;7502:121;7511:6;7519:12;:10;:12::i;:::-;7533:89;7571:6;7533:89;;;;;;;;;;;;;;;;;:11;:19;7545:6;7533:19;;;;;;;;;;;;;;;:33;7553:12;:10;:12::i;:::-;7533:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7502:8;:121::i;:::-;7641:4;7634:11;;7340:313;;;;;:::o;6424:83::-;6465:5;4442:1;6483:16;;6424:83;:::o;5332:40::-;;;;;;;;;;;;;:::o;12718:360::-;12782:22;;;;;;;;;;;12768:36;;:12;:10;:12::i;:::-;:36;;;12760:45;;;;;;12816:20;12837:24;12855:4;12837:9;:24::i;:::-;12816:45;;12888:1;12875:12;:14;12872:73;;;12903:30;12920:12;12903:16;:30::i;:::-;12872:73;12955:18;12974:21;12955:40;;13020:1;13009:10;:12;13006:65;;;13035:24;13048:10;13035:12;:24::i;:::-;13006:65;12749:329;;12718:360::o;13086:140::-;13155:22;;;;;;;;;;;13141:36;;:12;:10;:12::i;:::-;:36;;;13133:45;;;;;;13205:13;;13187:17;:31;;;;13086:140::o;11516:687::-;3453:12;:10;:12::i;:::-;3443:22;;:6;;;;;;;;;;:22;;;3435:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11579:17:::1;::::0;::::1;;;;;;;;11578:18;11570:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;11671:42;11634:15;;:80;;;;;;;;;;;;;;;;;;11725:63;11742:4;11757:15;;;;;;;;;;;4442:1;4778:2;:13;;;;:::i;:::-;4766:9;:25;;;;:::i;:::-;11725:8;:63::i;:::-;11833:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11815:55;;;11879:4;11886:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11815:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11799:13;;:110;;;;;;;;;;;;;;;;;;11920:15;;;;;;;;;;;:31;;;11959:21;11990:4;11996:24;12014:4;11996:9;:24::i;:::-;12021:1;12023::::0;12025:7:::1;:5;:7::i;:::-;12033:15;11920:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12067:13;;;;;;;;;;;12060:29;;;12098:15;;;;;;;;;;;12116:14;12060:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12162:4;12142:17;::::0;:24:::1;;;;;;;;;;;;;;;;;;12191:4;12177:11;;:18;;;;;;;;;;;;;;;;;;11516:687::o:0;6718:119::-;6784:7;6811:9;:18;6821:7;6811:18;;;;;;;;;;;;;;;;6804:25;;6718:119;;;:::o;3530:148::-;3453:12;:10;:12::i;:::-;3443:22;;:6;;;;;;;;;;:22;;;3435:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3637:1:::1;3600:40;;3621:6;::::0;::::1;;;;;;;;3600:40;;;;;;;;;;;;3668:1;3651:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3530:148::o:0;10477:211::-;3453:12;:10;:12::i;:::-;3443:22;;:6;;;;;;;;;;:22;;;3435:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4442:1:::1;4778:2;:13;;;;:::i;:::-;4766:9;:25;;;;:::i;:::-;10530:12;:27;;;;4442:1;4778:2;:13;;;;:::i;:::-;4766:9;:25;;;;:::i;:::-;10568:14;:27;;;;10627:5;10606:20;;:26;;;;;;;;;;;;;;;;;;10648:32;4442:1;4778:2;:13;;;;:::i;:::-;4766:9;:25;;;;:::i;:::-;10648:32;;;;;;:::i;:::-;;;;;;;;10477:211::o:0;5211:53::-;;;;:::o;3316:79::-;3354:7;3381:6;;;;;;;;;;;3374:13;;3316:79;:::o;12211:147::-;12277:22;;;;;;;;;;;12263:36;;:12;:10;:12::i;:::-;:36;;;12255:45;;;;;;12348:2;12328:17;;:22;;;;:::i;:::-;12309:17;:41;;;;12211:147::o;4798:55::-;;;;:::o;6623:87::-;6662:13;6695:7;;;;;;;;;;;;;;;;;6688:14;;6623:87;:::o;7014:167::-;7092:4;7109:42;7119:12;:10;:12::i;:::-;7133:9;7144:6;7109:9;:42::i;:::-;7169:4;7162:11;;7014:167;;;;:::o;5271:52::-;;;;:::o;7189:143::-;7270:7;7297:11;:18;7309:5;7297:18;;;;;;;;;;;;;;;:27;7316:7;7297:27;;;;;;;;;;;;;;;;7290:34;;7189:143;;;;:::o;941:98::-;994:7;1021:10;1014:17;;941:98;:::o;7661:331::-;7771:1;7754:19;;:5;:19;;;7746:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7848:1;7829:21;;:7;:21;;;7821:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7930:6;7900:11;:18;7912:5;7900:18;;;;;;;;;;;;;;;:27;7919:7;7900:27;;;;;;;;;;;;;;;:36;;;;7968:7;7952:32;;7961:5;7952:32;;;7977:6;7952:32;;;;;;:::i;:::-;;;;;;;;7661:331;;;:::o;8000:2469::-;8104:1;8088:18;;:4;:18;;;8080:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8181:1;8167:16;;:2;:16;;;8159:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8251:1;8242:6;:10;8234:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8309:17;8351:7;:5;:7::i;:::-;8343:15;;:4;:15;;;;:32;;;;;8368:7;:5;:7::i;:::-;8362:13;;:2;:13;;;;8343:32;8339:1774;;;8401:12;:18;8414:4;8401:18;;;;;;;;;;;;;;;;;;;;;;;;;8400:19;:40;;;;;8424:12;:16;8437:2;8424:16;;;;;;;;;;;;;;;;;;;;;;;;;8423:17;8400:40;8392:49;;;;;;8462:20;;;;;;;;;;;8458:315;;;8521:15;;;;;;;;;;;8507:30;;:2;:30;;;;:62;;;;;8555:13;;;;;;;;;;;8541:28;;:2;:28;;;;8507:62;8503:255;;;8625:12;8600:11;:22;8612:9;8600:22;;;;;;;;;;;;;;;;:37;8592:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;8726:12;8701:11;:22;8713:9;8701:22;;;;;;;;;;;;;;;:37;;;;8503:255;8458:315;8801:13;;;;;;;;;;;8793:21;;:4;:21;;;:55;;;;;8832:15;;;;;;;;;;;8818:30;;:2;:30;;;;8793:55;:83;;;;;8854:18;:22;8873:2;8854:22;;;;;;;;;;;;;;;;;;;;;;;;;8852:24;8793:83;8789:428;;;8916:12;;8906:6;:22;;8898:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9011:14;;9001:6;8985:13;8995:2;8985:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8977:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9088:18;;9078:9;;:28;9075:97;;;9137:14;9148:2;9137:10;:14::i;:::-;9136:15;9128:24;;;;;;9075:97;9190:9;;:11;;;;;;;;;:::i;:::-;;;;;;8789:428;9245:80;9321:3;9245:71;9267:17;;9257:9;;:27;9256:59;;9299:16;;9256:59;;;9286:12;;9256:59;9245:6;:10;;:71;;;;:::i;:::-;:75;;:80;;;;:::i;:::-;9233:92;;9349:13;;;;;;;;;;;9343:19;;:2;:19;;;:43;;;;;9381:4;9366:20;;:4;:20;;;;9343:43;9340:257;;;9425:12;;9415:6;:22;;9407:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9498:83;9577:3;9498:74;9520:18;;9510:9;;:28;9509:62;;9554:17;;9509:62;;;9540:13;;9509:62;9498:6;:10;;:74;;;;:::i;:::-;:78;;:83;;;;:::i;:::-;9486:95;;9340:257;9613:28;9644:24;9662:4;9644:9;:24::i;:::-;9613:55;;9688:6;;;;;;;;;;;9687:7;:30;;;;;9704:13;;;;;;;;;;;9698:19;;:2;:19;;;9687:30;:45;;;;;9721:11;;;;;;;;;;;9687:45;:87;;;;;9757:17;;9736:20;:38;9687:87;:119;;;;;9788:18;;9778:9;;:28;9687:119;9683:419;;;9827:67;9844:49;9848:6;9855:37;9859:20;9880:11;;9855:3;:37::i;:::-;9844:3;:49::i;:::-;9827:16;:67::i;:::-;9913:26;9942:21;9913:50;;10006:1;9985:18;:22;9982:105;;;10032:35;10045:21;10032:12;:35::i;:::-;9982:105;9808:294;9683:419;8377:1736;8339:1774;10138:1;10128:9;:11;10125:161;;;10178:39;10207:9;10178;:24;10196:4;10178:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10153:9;:24;10171:4;10153:24;;;;;;;;;;;;;;;:64;;;;10258:4;10235:39;;10244:4;10235:39;;;10264:9;10235:39;;;;;;:::i;:::-;;;;;;;;10125:161;10312:27;10332:6;10312:9;:15;10322:4;10312:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10296:9;:15;10306:4;10296:15;;;;;;;;;;;;;;;:43;;;;10364:40;10382:21;10393:9;10382:6;:10;;:21;;;;:::i;:::-;10364:9;:13;10374:2;10364:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10350:9;:13;10360:2;10350:13;;;;;;;;;;;;;;;:54;;;;10435:2;10420:41;;10429:4;10420:41;;;10439:21;10450:9;10439:6;:10;;:21;;;;:::i;:::-;10420:41;;;;;;:::i;:::-;;;;;;;;8069:2400;8000:2469;;;:::o;2082:190::-;2168:7;2201:1;2196;:6;;2204:12;2188:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2228:9;2244:1;2240;:5;;;;:::i;:::-;2228:17;;2263:1;2256:8;;;2082:190;;;;;:::o;10947:561::-;5586:4;5577:6;;:13;;;;;;;;;;;;;;;;;;11041:1:::1;11028:11;:14:::0;11025:27;11044:7:::1;11025:27;11066:17;::::0;::::1;;;;;;;;11062:31:::0;11085:7:::1;11062:31;11103:21;11141:1;11127:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11103:40;;11172:4;11154;11159:1;11154:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11198:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11188:4;11193:1;11188:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11231:62;11248:4;11263:15;;;;;;;;;;;11281:11;11231:8;:62::i;:::-;11304:15;;;;;;;;;;;:66;;;11385:11;11411:1;11427:4;11454;11474:15;11304:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11014:494;5601:1;5622:5:::0;5613:6;;:14;;;;;;;;;;;;;;;;;;10947:561;:::o;12366:104::-;12423:22;;;;;;;;;;;:31;;:39;12455:6;12423:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12366:104;:::o;12515:195::-;12574:4;12591:12;12658:7;12646:20;12638:28;;12701:1;12694:4;:8;12687:15;;;12515:195;;;:::o;2280:246::-;2338:7;2367:1;2362;:6;2358:47;;2392:1;2385:8;;;;2358:47;2415:9;2431:1;2427;:5;;;;:::i;:::-;2415:17;;2460:1;2455;2451;:5;;;;:::i;:::-;:10;2443:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2517:1;2510:8;;;2280:246;;;;;:::o;2534:132::-;2592:7;2619:39;2623:1;2626;2619:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2612:46;;2534:132;;;;:::o;10841:98::-;10898:7;10925:1;10923;:3;10922:9;;10930:1;10922:9;;;10928:1;10922:9;10915:16;;10841:98;;;;:::o;1895:179::-;1953:7;1973:9;1989:1;1985;:5;;;;:::i;:::-;1973:17;;2014:1;2009;:6;;2001:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2065:1;2058:8;;;1895:179;;;;:::o;1751:136::-;1809:7;1836:43;1840:1;1843;1836:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1829:50;;1751:136;;;;:::o;2674:189::-;2760:7;2792:1;2788;:5;2795:12;2780:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2819:9;2835:1;2831;:5;;;;:::i;:::-;2819:17;;2854:1;2847:8;;;2674: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:194::-;14854:4;14874:20;14892:1;14874:20;:::i;:::-;14869:25;;14908:20;14926:1;14908:20;:::i;:::-;14903:25;;14952:1;14949;14945:9;14937:17;;14976:1;14970:4;14967:11;14964:37;;;14981:18;;:::i;:::-;14964:37;14814:194;;;;:::o;15014:182::-;15154:34;15150:1;15142:6;15138:14;15131:58;15014:182;:::o;15202:366::-;15344:3;15365:67;15429:2;15424:3;15365:67;:::i;:::-;15358:74;;15441:93;15530:3;15441:93;:::i;:::-;15559:2;15554:3;15550:12;15543:19;;15202:366;;;:::o;15574:419::-;15740:4;15778:2;15767:9;15763:18;15755:26;;15827:9;15821:4;15817:20;15813:1;15802:9;15798:17;15791:47;15855:131;15981:4;15855:131;:::i;:::-;15847:139;;15574:419;;;:::o;15999:221::-;16139:34;16135:1;16127:6;16123:14;16116:58;16208:4;16203:2;16195:6;16191:15;16184:29;15999:221;:::o;16226:366::-;16368:3;16389:67;16453:2;16448:3;16389:67;:::i;:::-;16382:74;;16465:93;16554:3;16465:93;:::i;:::-;16583:2;16578:3;16574:12;16567:19;;16226:366;;;:::o;16598:419::-;16764:4;16802:2;16791:9;16787:18;16779:26;;16851:9;16845:4;16841:20;16837:1;16826:9;16822:17;16815:47;16879:131;17005:4;16879:131;:::i;:::-;16871:139;;16598:419;;;:::o;17023:224::-;17163:34;17159:1;17151:6;17147:14;17140:58;17232:7;17227:2;17219:6;17215:15;17208:32;17023:224;:::o;17253:366::-;17395:3;17416:67;17480:2;17475:3;17416:67;:::i;:::-;17409:74;;17492:93;17581:3;17492:93;:::i;:::-;17610:2;17605:3;17601:12;17594:19;;17253:366;;;:::o;17625:419::-;17791:4;17829:2;17818:9;17814:18;17806:26;;17878:9;17872:4;17868:20;17864:1;17853:9;17849:17;17842:47;17906:131;18032:4;17906:131;:::i;:::-;17898:139;;17625:419;;;:::o;18050:222::-;18190:34;18186:1;18178:6;18174:14;18167:58;18259:5;18254:2;18246:6;18242:15;18235:30;18050:222;:::o;18278:366::-;18420:3;18441:67;18505:2;18500:3;18441:67;:::i;:::-;18434:74;;18517:93;18606:3;18517:93;:::i;:::-;18635:2;18630:3;18626:12;18619:19;;18278:366;;;:::o;18650:419::-;18816:4;18854:2;18843:9;18839:18;18831:26;;18903:9;18897:4;18893:20;18889:1;18878:9;18874:17;18867:47;18931:131;19057:4;18931:131;:::i;:::-;18923:139;;18650:419;;;:::o;19075:228::-;19215:34;19211:1;19203:6;19199:14;19192:58;19284:11;19279:2;19271:6;19267:15;19260:36;19075:228;:::o;19309:366::-;19451:3;19472:67;19536:2;19531:3;19472:67;:::i;:::-;19465:74;;19548:93;19637:3;19548:93;:::i;:::-;19666:2;19661:3;19657:12;19650:19;;19309:366;;;:::o;19681:419::-;19847:4;19885:2;19874:9;19870:18;19862:26;;19934:9;19928:4;19924:20;19920:1;19909:9;19905:17;19898:47;19962:131;20088:4;19962:131;:::i;:::-;19954:139;;19681:419;;;:::o;20106:226::-;20246:34;20242:1;20234:6;20230:14;20223:58;20315:9;20310:2;20302:6;20298:15;20291:34;20106:226;:::o;20338:366::-;20480:3;20501:67;20565:2;20560:3;20501:67;:::i;:::-;20494:74;;20577:93;20666:3;20577:93;:::i;:::-;20695:2;20690:3;20686:12;20679:19;;20338:366;;;:::o;20710:419::-;20876:4;20914:2;20903:9;20899:18;20891:26;;20963:9;20957:4;20953:20;20949:1;20938:9;20934:17;20927:47;20991:131;21117:4;20991:131;:::i;:::-;20983:139;;20710:419;;;:::o;21135:175::-;21275:27;21271:1;21263:6;21259:14;21252:51;21135:175;:::o;21316:366::-;21458:3;21479:67;21543:2;21538:3;21479:67;:::i;:::-;21472:74;;21555:93;21644:3;21555:93;:::i;:::-;21673:2;21668:3;21664:12;21657:19;;21316:366;;;:::o;21688:419::-;21854:4;21892:2;21881:9;21877:18;21869:26;;21941:9;21935:4;21931:20;21927:1;21916:9;21912:17;21905:47;21969:131;22095:4;21969:131;:::i;:::-;21961:139;;21688:419;;;:::o;22113:191::-;22153:3;22172:20;22190:1;22172:20;:::i;:::-;22167:25;;22206:20;22224:1;22206:20;:::i;:::-;22201:25;;22249:1;22246;22242:9;22235:16;;22270:3;22267:1;22264:10;22261:36;;;22277:18;;:::i;:::-;22261:36;22113:191;;;;:::o;22310:176::-;22450:28;22446:1;22438:6;22434:14;22427:52;22310:176;:::o;22492:366::-;22634:3;22655:67;22719:2;22714:3;22655:67;:::i;:::-;22648:74;;22731:93;22820:3;22731:93;:::i;:::-;22849:2;22844:3;22840:12;22833:19;;22492:366;;;:::o;22864:419::-;23030:4;23068:2;23057:9;23053:18;23045:26;;23117:9;23111:4;23107:20;23103:1;23092:9;23088:17;23081:47;23145:131;23271:4;23145:131;:::i;:::-;23137:139;;22864:419;;;:::o;23289:233::-;23328:3;23351:24;23369:5;23351:24;:::i;:::-;23342:33;;23397:66;23390:5;23387:77;23384:103;;23467:18;;:::i;:::-;23384:103;23514:1;23507:5;23503:13;23496:20;;23289:233;;;:::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://42ffa697d5e72a639528dfd1e7cff12e458aed5227a89a16c23c4e0aee9453f7
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.