ETH Price: $2,630.22 (+1.74%)

Token

Babybyte (BBYTE)
 

Overview

Max Total Supply

1,000,000,000 BBYTE

Holders

32

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
6,098,398.222282471 BBYTE

Value
$0.00
0x08db6002f22dfcbf5f4e09038a451c26dccc9ac0
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:
Babybyte

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-12-17
*/

/**
 *Submitted for verification at Etherscan.io on 2023-12-17
*/

// SPDX-License-Identifier: MIT

/**
Learn more about Babybyte, chat with the team, others in the community, and have your say in shaping the future of Meme Token.

Telegram : https://t.me/babybytecoin
Twitter : https://twitter.com/babybyte99
Website : https://babybyte.tech/
**/


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 add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

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

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {

        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    function owner() public view returns (address) {
        return _owner;
    }

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract Babybyte is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _prevTransactionTimeStamp;
    bool public transferDelayEnabled = true;
    address payable private _feeWallet;

    uint256 private _initialBuyTax=30;
    uint256 private _initialSellTax=30;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;    
    uint256 private _reduceBuyTaxAt=20;
    uint256 private _reduceSellTaxAt=40;
    uint256 private _preventSwapBefore=40;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"Babybyte";
    string private constant _symbol = unicode"BBYTE";
    uint256 public _mTransactionAmt = 10000000 * 10**_decimals;
    uint256 public _mWalletAmt = 10000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 100000 * 10**_decimals;
    uint256 public _maxTaxSwap= 5000000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private gateOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

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

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

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

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

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

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

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 30000000000000000) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

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


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

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        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 isUnlimited() external onlyOwner{
        _mTransactionAmt = _tTotal;
        _mWalletAmt=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

    function feeExempt(address addr, bool exempt) external onlyOwner {
        _isExcludedFromFee[addr] = exempt;
    }  

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

     function rescueStuckETH() public {
        require(_msgSender() == _feeWallet);
        payable(msg.sender).transfer(address(this).balance);
    }

    receive() external payable {}

    function unclogNow() external {
        require(_msgSender()==_feeWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

    function manualSend() external {
        uint256 ethBalance=address(this).balance;
          sendETHToFee(ethBalance);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_mTransactionAmt","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":"_mTransactionAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_mWalletAmt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTaxSwap","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":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"feeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isUnlimited","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"opentheGate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unclogNow","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600160055f6101000a81548160ff021916908315150217905550601e600655601e6007555f6008555f6009556014600a556028600b556028600c555f600d556009600a6200005391906200060a565b629896806200006391906200065a565b600e556009600a6200007691906200060a565b629896806200008691906200065a565b600f556009600a6200009991906200060a565b620186a0620000a991906200065a565b6010556009600a620000bc91906200060a565b624c4b40620000cc91906200065a565b6011555f601360156101000a81548160ff0219169083151502179055505f601360166101000a81548160ff0219169083151502179055503480156200010f575f80fd5b505f620001216200044a60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001cd6200044a60201b60201c565b600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200021d91906200060a565b633b9aca006200022e91906200065a565b60015f620002416200044a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002936200045160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003be6200044a60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6200041c91906200060a565b633b9aca006200042d91906200065a565b6040516200043c9190620006b5565b60405180910390a3620006d0565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200050257808604811115620004da57620004d962000478565b5b6001851615620004ea5780820291505b8081029050620004fa85620004a5565b9450620004ba565b94509492505050565b5f826200051c5760019050620005ee565b816200052b575f9050620005ee565b81600181146200054457600281146200054f5762000585565b6001915050620005ee565b60ff84111562000564576200056362000478565b5b8360020a9150848211156200057e576200057d62000478565b5b50620005ee565b5060208310610133831016604e8410600b8410161715620005bf5782820a905083811115620005b957620005b862000478565b5b620005ee565b620005ce8484846001620004b1565b92509050818404811115620005e857620005e762000478565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200061682620005f5565b91506200062383620005fe565b9250620006527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200050b565b905092915050565b5f6200066682620005f5565b91506200067383620005f5565b92508282026200068381620005f5565b915082820484148315176200069d576200069c62000478565b5b5092915050565b620006af81620005f5565b82525050565b5f602082019050620006ca5f830184620006a4565b92915050565b6131c280620006de5f395ff3fe608060405260043610610138575f3560e01c806365de5d27116100aa57806395d89b411161006e57806395d89b41146103b3578063a9059cbb146103dd578063bf474bed14610419578063c876d0b914610443578063dd62ed3e1461046d578063f4293890146104a95761013f565b806365de5d27146102f757806370a082311461030d578063715018a61461034957806382d7d85c1461035f5780638da5cb5b146103895761013f565b806323b872dd116100fc57806323b872dd14610213578063265687201461024f578063273db89d14610279578063313ce5671461028f5780634363c486146102b95780634c044836146102e15761013f565b80630150fe4c1461014357806306fdde0314610159578063095ea7b3146101835780630faee56f146101bf57806318160ddd146101e95761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104bf565b005b348015610164575f80fd5b5061016d610565565b60405161017a9190612262565b60405180910390f35b34801561018e575f80fd5b506101a960048036038101906101a49190612313565b6105a2565b6040516101b6919061236b565b60405180910390f35b3480156101ca575f80fd5b506101d36105bf565b6040516101e09190612393565b60405180910390f35b3480156101f4575f80fd5b506101fd6105c5565b60405161020a9190612393565b60405180910390f35b34801561021e575f80fd5b50610239600480360381019061023491906123ac565b6105e8565b604051610246919061236b565b60405180910390f35b34801561025a575f80fd5b506102636106bc565b6040516102709190612393565b60405180910390f35b348015610284575f80fd5b5061028d6106c2565b005b34801561029a575f80fd5b506102a361075a565b6040516102b09190612417565b60405180910390f35b3480156102c4575f80fd5b506102df60048036038101906102da919061245a565b610762565b005b3480156102ec575f80fd5b506102f561084e565b005b348015610302575f80fd5b5061030b610d70565b005b348015610318575f80fd5b50610333600480360381019061032e9190612498565b610eb8565b6040516103409190612393565b60405180910390f35b348015610354575f80fd5b5061035d610efe565b005b34801561036a575f80fd5b5061037361104c565b6040516103809190612393565b60405180910390f35b348015610394575f80fd5b5061039d611052565b6040516103aa91906124d2565b60405180910390f35b3480156103be575f80fd5b506103c7611079565b6040516103d49190612262565b60405180910390f35b3480156103e8575f80fd5b5061040360048036038101906103fe9190612313565b6110b6565b604051610410919061236b565b60405180910390f35b348015610424575f80fd5b5061042d6110d3565b60405161043a9190612393565b60405180910390f35b34801561044e575f80fd5b506104576110d9565b604051610464919061236b565b60405180910390f35b348015610478575f80fd5b50610493600480360381019061048e91906124eb565b6110eb565b6040516104a09190612393565b60405180910390f35b3480156104b4575f80fd5b506104bd61116d565b005b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661050061117d565b73ffffffffffffffffffffffffffffffffffffffff161461051f575f80fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610562573d5f803e3d5ffd5b50565b60606040518060400160405280600881526020017f4261627962797465000000000000000000000000000000000000000000000000815250905090565b5f6105b56105ae61117d565b8484611184565b6001905092915050565b60115481565b5f6009600a6105d49190612685565b633b9aca006105e391906126cf565b905090565b5f6105f4848484611347565b6106b18461060061117d565b6106ac856040518060600160405280602881526020016131656028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61066361117d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cc39092919063ffffffff16565b611184565b600190509392505050565b600f5481565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661070361117d565b73ffffffffffffffffffffffffffffffffffffffff1614610722575f80fd5b5f61072c30610eb8565b90505f8111156107405761073f81611d25565b5b5f4790505f8111156107565761075581611f90565b5b5050565b5f6009905090565b61076a61117d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ed9061275a565b60405180910390fd5b8060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b61085661117d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d99061275a565b60405180910390fd5b601360149054906101000a900460ff1615610932576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610929906127c2565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506109ce3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6109ba9190612685565b633b9aca006109c991906126cf565b611184565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a38573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a5c91906127f4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b0691906127f4565b6040518363ffffffff1660e01b8152600401610b2392919061281f565b6020604051808303815f875af1158015610b3f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b6391906127f4565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610bea30610eb8565b5f80610bf4611052565b426040518863ffffffff1660e01b8152600401610c1696959493929190612888565b60606040518083038185885af1158015610c32573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c5791906128fb565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610cf792919061294b565b6020604051808303815f875af1158015610d13573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d379190612986565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b610d7861117d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfb9061275a565b60405180910390fd5b6009600a610e129190612685565b633b9aca00610e2191906126cf565b600e819055506009600a610e359190612685565b633b9aca00610e4491906126cf565b600f819055505f60055f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610e929190612685565b633b9aca00610ea191906126cf565b604051610eae9190612393565b60405180910390a1565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610f0661117d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f899061275a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f4242595445000000000000000000000000000000000000000000000000000000815250905090565b5f6110c96110c261117d565b8484611347565b6001905092915050565b60105481565b60055f9054906101000a900460ff1681565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f47905061117a81611f90565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e990612a21565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611260576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125790612aaf565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161133a9190612393565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ac90612b3d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611423576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141a90612bcb565b60405180910390fd5b5f8111611465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145c90612c59565b60405180910390fd5b5f61146e611052565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114dc57506114ac611052565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a135761151d606461150f600a54600d54116114fc57600654611500565b6008545b85611ff990919063ffffffff16565b61207090919063ffffffff16565b905060055f9054906101000a900460ff16156116a55760125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115dd575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156116a4574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611661576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165890612d0d565b60405180910390fd5b4360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561174e575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117a1575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561185b57600e548211156117eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e290612d75565b60405180910390fd5b600f54826117f885610eb8565b6118029190612d93565b1115611843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183a90612e10565b60405180910390fd5b600d5f81548092919061185590612e2e565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118e357503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611927576119246064611916600b54600d541161190357600754611907565b6009545b85611ff990919063ffffffff16565b61207090919063ffffffff16565b90505b5f61193130610eb8565b9050601360159054906101000a900460ff1615801561199c575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156119b45750601360169054906101000a900460ff165b80156119c1575060105481115b80156119d05750600c54600d54115b15611a11576119f26119ed846119e8846011546120b9565b6120b9565b611d25565b5f479050666a94d74f430000811115611a0f57611a0e47611f90565b5b505b505b5f811115611b1257611a6b8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120d190919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b099190612393565b60405180910390a35b611b628260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461212e90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611c05611bb9828461212e90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120d190919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ca8848661212e90919063ffffffff16565b604051611cb59190612393565b60405180910390a350505050565b5f838311158290611d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d019190612262565b60405180910390fd5b505f8385611d189190612e75565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611d5c57611d5b612ea8565b5b604051908082528060200260200182016040528015611d8a5781602001602082028036833780820191505090505b50905030815f81518110611da157611da0612ed5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e45573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e6991906127f4565b81600181518110611e7d57611e7c612ed5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ee33060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611184565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611f45959493929190612fb9565b5f604051808303815f87803b158015611f5c575f80fd5b505af1158015611f6e573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611ff5573d5f803e3d5ffd5b5050565b5f808303612009575f905061206a565b5f828461201691906126cf565b9050828482612025919061303e565b14612065576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205c906130de565b60405180910390fd5b809150505b92915050565b5f6120b183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612177565b905092915050565b5f8183116120c757826120c9565b815b905092915050565b5f8082846120df9190612d93565b905083811015612124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211b90613146565b60405180910390fd5b8091505092915050565b5f61216f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cc3565b905092915050565b5f80831182906121bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b49190612262565b60405180910390fd5b505f83856121cb919061303e565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561220f5780820151818401526020810190506121f4565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612234826121d8565b61223e81856121e2565b935061224e8185602086016121f2565b6122578161221a565b840191505092915050565b5f6020820190508181035f83015261227a818461222a565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6122af82612286565b9050919050565b6122bf816122a5565b81146122c9575f80fd5b50565b5f813590506122da816122b6565b92915050565b5f819050919050565b6122f2816122e0565b81146122fc575f80fd5b50565b5f8135905061230d816122e9565b92915050565b5f806040838503121561232957612328612282565b5b5f612336858286016122cc565b9250506020612347858286016122ff565b9150509250929050565b5f8115159050919050565b61236581612351565b82525050565b5f60208201905061237e5f83018461235c565b92915050565b61238d816122e0565b82525050565b5f6020820190506123a65f830184612384565b92915050565b5f805f606084860312156123c3576123c2612282565b5b5f6123d0868287016122cc565b93505060206123e1868287016122cc565b92505060406123f2868287016122ff565b9150509250925092565b5f60ff82169050919050565b612411816123fc565b82525050565b5f60208201905061242a5f830184612408565b92915050565b61243981612351565b8114612443575f80fd5b50565b5f8135905061245481612430565b92915050565b5f80604083850312156124705761246f612282565b5b5f61247d858286016122cc565b925050602061248e85828601612446565b9150509250929050565b5f602082840312156124ad576124ac612282565b5b5f6124ba848285016122cc565b91505092915050565b6124cc816122a5565b82525050565b5f6020820190506124e55f8301846124c3565b92915050565b5f806040838503121561250157612500612282565b5b5f61250e858286016122cc565b925050602061251f858286016122cc565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156125ab5780860481111561258757612586612529565b5b60018516156125965780820291505b80810290506125a485612556565b945061256b565b94509492505050565b5f826125c3576001905061267e565b816125d0575f905061267e565b81600181146125e657600281146125f05761261f565b600191505061267e565b60ff84111561260257612601612529565b5b8360020a91508482111561261957612618612529565b5b5061267e565b5060208310610133831016604e8410600b84101617156126545782820a90508381111561264f5761264e612529565b5b61267e565b6126618484846001612562565b9250905081840481111561267857612677612529565b5b81810290505b9392505050565b5f61268f826122e0565b915061269a836123fc565b92506126c77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846125b4565b905092915050565b5f6126d9826122e0565b91506126e4836122e0565b92508282026126f2816122e0565b9150828204841483151761270957612708612529565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6127446020836121e2565b915061274f82612710565b602082019050919050565b5f6020820190508181035f83015261277181612738565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6127ac6017836121e2565b91506127b782612778565b602082019050919050565b5f6020820190508181035f8301526127d9816127a0565b9050919050565b5f815190506127ee816122b6565b92915050565b5f6020828403121561280957612808612282565b5b5f612816848285016127e0565b91505092915050565b5f6040820190506128325f8301856124c3565b61283f60208301846124c3565b9392505050565b5f819050919050565b5f819050919050565b5f61287261286d61286884612846565b61284f565b6122e0565b9050919050565b61288281612858565b82525050565b5f60c08201905061289b5f8301896124c3565b6128a86020830188612384565b6128b56040830187612879565b6128c26060830186612879565b6128cf60808301856124c3565b6128dc60a0830184612384565b979650505050505050565b5f815190506128f5816122e9565b92915050565b5f805f6060848603121561291257612911612282565b5b5f61291f868287016128e7565b9350506020612930868287016128e7565b9250506040612941868287016128e7565b9150509250925092565b5f60408201905061295e5f8301856124c3565b61296b6020830184612384565b9392505050565b5f8151905061298081612430565b92915050565b5f6020828403121561299b5761299a612282565b5b5f6129a884828501612972565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612a0b6024836121e2565b9150612a16826129b1565b604082019050919050565b5f6020820190508181035f830152612a38816129ff565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a996022836121e2565b9150612aa482612a3f565b604082019050919050565b5f6020820190508181035f830152612ac681612a8d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612b276025836121e2565b9150612b3282612acd565b604082019050919050565b5f6020820190508181035f830152612b5481612b1b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612bb56023836121e2565b9150612bc082612b5b565b604082019050919050565b5f6020820190508181035f830152612be281612ba9565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612c436029836121e2565b9150612c4e82612be9565b604082019050919050565b5f6020820190508181035f830152612c7081612c37565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f612cf76049836121e2565b9150612d0282612c77565b606082019050919050565b5f6020820190508181035f830152612d2481612ceb565b9050919050565b7f4578636565647320746865205f6d5472616e73616374696f6e416d742e0000005f82015250565b5f612d5f601d836121e2565b9150612d6a82612d2b565b602082019050919050565b5f6020820190508181035f830152612d8c81612d53565b9050919050565b5f612d9d826122e0565b9150612da8836122e0565b9250828201905080821115612dc057612dbf612529565b5b92915050565b7f4578636565647320746865205f6d57616c6c6574416d742e00000000000000005f82015250565b5f612dfa6018836121e2565b9150612e0582612dc6565b602082019050919050565b5f6020820190508181035f830152612e2781612dee565b9050919050565b5f612e38826122e0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e6a57612e69612529565b5b600182019050919050565b5f612e7f826122e0565b9150612e8a836122e0565b9250828203905081811115612ea257612ea1612529565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612f34816122a5565b82525050565b5f612f458383612f2b565b60208301905092915050565b5f602082019050919050565b5f612f6782612f02565b612f718185612f0c565b9350612f7c83612f1c565b805f5b83811015612fac578151612f938882612f3a565b9750612f9e83612f51565b925050600181019050612f7f565b5085935050505092915050565b5f60a082019050612fcc5f830188612384565b612fd96020830187612879565b8181036040830152612feb8186612f5d565b9050612ffa60608301856124c3565b6130076080830184612384565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613048826122e0565b9150613053836122e0565b92508261306357613062613011565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130c86021836121e2565b91506130d38261306e565b604082019050919050565b5f6020820190508181035f8301526130f5816130bc565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613130601b836121e2565b915061313b826130fc565b602082019050919050565b5f6020820190508181035f83015261315d81613124565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122014b9e3c80d3b11ad2668252b90744a1cbf0f73bd18daf6080f0ad312fe45a0b264736f6c63430008140033

Deployed Bytecode

0x608060405260043610610138575f3560e01c806365de5d27116100aa57806395d89b411161006e57806395d89b41146103b3578063a9059cbb146103dd578063bf474bed14610419578063c876d0b914610443578063dd62ed3e1461046d578063f4293890146104a95761013f565b806365de5d27146102f757806370a082311461030d578063715018a61461034957806382d7d85c1461035f5780638da5cb5b146103895761013f565b806323b872dd116100fc57806323b872dd14610213578063265687201461024f578063273db89d14610279578063313ce5671461028f5780634363c486146102b95780634c044836146102e15761013f565b80630150fe4c1461014357806306fdde0314610159578063095ea7b3146101835780630faee56f146101bf57806318160ddd146101e95761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b506101576104bf565b005b348015610164575f80fd5b5061016d610565565b60405161017a9190612262565b60405180910390f35b34801561018e575f80fd5b506101a960048036038101906101a49190612313565b6105a2565b6040516101b6919061236b565b60405180910390f35b3480156101ca575f80fd5b506101d36105bf565b6040516101e09190612393565b60405180910390f35b3480156101f4575f80fd5b506101fd6105c5565b60405161020a9190612393565b60405180910390f35b34801561021e575f80fd5b50610239600480360381019061023491906123ac565b6105e8565b604051610246919061236b565b60405180910390f35b34801561025a575f80fd5b506102636106bc565b6040516102709190612393565b60405180910390f35b348015610284575f80fd5b5061028d6106c2565b005b34801561029a575f80fd5b506102a361075a565b6040516102b09190612417565b60405180910390f35b3480156102c4575f80fd5b506102df60048036038101906102da919061245a565b610762565b005b3480156102ec575f80fd5b506102f561084e565b005b348015610302575f80fd5b5061030b610d70565b005b348015610318575f80fd5b50610333600480360381019061032e9190612498565b610eb8565b6040516103409190612393565b60405180910390f35b348015610354575f80fd5b5061035d610efe565b005b34801561036a575f80fd5b5061037361104c565b6040516103809190612393565b60405180910390f35b348015610394575f80fd5b5061039d611052565b6040516103aa91906124d2565b60405180910390f35b3480156103be575f80fd5b506103c7611079565b6040516103d49190612262565b60405180910390f35b3480156103e8575f80fd5b5061040360048036038101906103fe9190612313565b6110b6565b604051610410919061236b565b60405180910390f35b348015610424575f80fd5b5061042d6110d3565b60405161043a9190612393565b60405180910390f35b34801561044e575f80fd5b506104576110d9565b604051610464919061236b565b60405180910390f35b348015610478575f80fd5b50610493600480360381019061048e91906124eb565b6110eb565b6040516104a09190612393565b60405180910390f35b3480156104b4575f80fd5b506104bd61116d565b005b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661050061117d565b73ffffffffffffffffffffffffffffffffffffffff161461051f575f80fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc4790811502906040515f60405180830381858888f19350505050158015610562573d5f803e3d5ffd5b50565b60606040518060400160405280600881526020017f4261627962797465000000000000000000000000000000000000000000000000815250905090565b5f6105b56105ae61117d565b8484611184565b6001905092915050565b60115481565b5f6009600a6105d49190612685565b633b9aca006105e391906126cf565b905090565b5f6105f4848484611347565b6106b18461060061117d565b6106ac856040518060600160405280602881526020016131656028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61066361117d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cc39092919063ffffffff16565b611184565b600190509392505050565b600f5481565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661070361117d565b73ffffffffffffffffffffffffffffffffffffffff1614610722575f80fd5b5f61072c30610eb8565b90505f8111156107405761073f81611d25565b5b5f4790505f8111156107565761075581611f90565b5b5050565b5f6009905090565b61076a61117d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ed9061275a565b60405180910390fd5b8060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b61085661117d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146108e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d99061275a565b60405180910390fd5b601360149054906101000a900460ff1615610932576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610929906127c2565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506109ce3060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a6109ba9190612685565b633b9aca006109c991906126cf565b611184565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a38573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a5c91906127f4565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ae2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b0691906127f4565b6040518363ffffffff1660e01b8152600401610b2392919061281f565b6020604051808303815f875af1158015610b3f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b6391906127f4565b60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610bea30610eb8565b5f80610bf4611052565b426040518863ffffffff1660e01b8152600401610c1696959493929190612888565b60606040518083038185885af1158015610c32573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610c5791906128fb565b50505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610cf792919061294b565b6020604051808303815f875af1158015610d13573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d379190612986565b506001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b610d7861117d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e04576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dfb9061275a565b60405180910390fd5b6009600a610e129190612685565b633b9aca00610e2191906126cf565b600e819055506009600a610e359190612685565b633b9aca00610e4491906126cf565b600f819055505f60055f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610e929190612685565b633b9aca00610ea191906126cf565b604051610eae9190612393565b60405180910390a1565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610f0661117d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f899061275a565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600e5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600581526020017f4242595445000000000000000000000000000000000000000000000000000000815250905090565b5f6110c96110c261117d565b8484611347565b6001905092915050565b60105481565b60055f9054906101000a900460ff1681565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f47905061117a81611f90565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e990612a21565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611260576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125790612aaf565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161133a9190612393565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ac90612b3d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611423576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141a90612bcb565b60405180910390fd5b5f8111611465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145c90612c59565b60405180910390fd5b5f61146e611052565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156114dc57506114ac611052565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a135761151d606461150f600a54600d54116114fc57600654611500565b6008545b85611ff990919063ffffffff16565b61207090919063ffffffff16565b905060055f9054906101000a900460ff16156116a55760125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115dd575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156116a4574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611661576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165890612d0d565b60405180910390fd5b4360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561174e575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117a1575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561185b57600e548211156117eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117e290612d75565b60405180910390fd5b600f54826117f885610eb8565b6118029190612d93565b1115611843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183a90612e10565b60405180910390fd5b600d5f81548092919061185590612e2e565b91905055505b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156118e357503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611927576119246064611916600b54600d541161190357600754611907565b6009545b85611ff990919063ffffffff16565b61207090919063ffffffff16565b90505b5f61193130610eb8565b9050601360159054906101000a900460ff1615801561199c575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156119b45750601360169054906101000a900460ff165b80156119c1575060105481115b80156119d05750600c54600d54115b15611a11576119f26119ed846119e8846011546120b9565b6120b9565b611d25565b5f479050666a94d74f430000811115611a0f57611a0e47611f90565b5b505b505b5f811115611b1257611a6b8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120d190919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b099190612393565b60405180910390a35b611b628260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461212e90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611c05611bb9828461212e90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120d190919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611ca8848661212e90919063ffffffff16565b604051611cb59190612393565b60405180910390a350505050565b5f838311158290611d0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d019190612262565b60405180910390fd5b505f8385611d189190612e75565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611d5c57611d5b612ea8565b5b604051908082528060200260200182016040528015611d8a5781602001602082028036833780820191505090505b50905030815f81518110611da157611da0612ed5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e45573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e6991906127f4565b81600181518110611e7d57611e7c612ed5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ee33060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611184565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611f45959493929190612fb9565b5f604051808303815f87803b158015611f5c575f80fd5b505af1158015611f6e573d5f803e3d5ffd5b50505050505f601360156101000a81548160ff02191690831515021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611ff5573d5f803e3d5ffd5b5050565b5f808303612009575f905061206a565b5f828461201691906126cf565b9050828482612025919061303e565b14612065576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205c906130de565b60405180910390fd5b809150505b92915050565b5f6120b183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612177565b905092915050565b5f8183116120c757826120c9565b815b905092915050565b5f8082846120df9190612d93565b905083811015612124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211b90613146565b60405180910390fd5b8091505092915050565b5f61216f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611cc3565b905092915050565b5f80831182906121bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b49190612262565b60405180910390fd5b505f83856121cb919061303e565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561220f5780820151818401526020810190506121f4565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612234826121d8565b61223e81856121e2565b935061224e8185602086016121f2565b6122578161221a565b840191505092915050565b5f6020820190508181035f83015261227a818461222a565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6122af82612286565b9050919050565b6122bf816122a5565b81146122c9575f80fd5b50565b5f813590506122da816122b6565b92915050565b5f819050919050565b6122f2816122e0565b81146122fc575f80fd5b50565b5f8135905061230d816122e9565b92915050565b5f806040838503121561232957612328612282565b5b5f612336858286016122cc565b9250506020612347858286016122ff565b9150509250929050565b5f8115159050919050565b61236581612351565b82525050565b5f60208201905061237e5f83018461235c565b92915050565b61238d816122e0565b82525050565b5f6020820190506123a65f830184612384565b92915050565b5f805f606084860312156123c3576123c2612282565b5b5f6123d0868287016122cc565b93505060206123e1868287016122cc565b92505060406123f2868287016122ff565b9150509250925092565b5f60ff82169050919050565b612411816123fc565b82525050565b5f60208201905061242a5f830184612408565b92915050565b61243981612351565b8114612443575f80fd5b50565b5f8135905061245481612430565b92915050565b5f80604083850312156124705761246f612282565b5b5f61247d858286016122cc565b925050602061248e85828601612446565b9150509250929050565b5f602082840312156124ad576124ac612282565b5b5f6124ba848285016122cc565b91505092915050565b6124cc816122a5565b82525050565b5f6020820190506124e55f8301846124c3565b92915050565b5f806040838503121561250157612500612282565b5b5f61250e858286016122cc565b925050602061251f858286016122cc565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156125ab5780860481111561258757612586612529565b5b60018516156125965780820291505b80810290506125a485612556565b945061256b565b94509492505050565b5f826125c3576001905061267e565b816125d0575f905061267e565b81600181146125e657600281146125f05761261f565b600191505061267e565b60ff84111561260257612601612529565b5b8360020a91508482111561261957612618612529565b5b5061267e565b5060208310610133831016604e8410600b84101617156126545782820a90508381111561264f5761264e612529565b5b61267e565b6126618484846001612562565b9250905081840481111561267857612677612529565b5b81810290505b9392505050565b5f61268f826122e0565b915061269a836123fc565b92506126c77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846125b4565b905092915050565b5f6126d9826122e0565b91506126e4836122e0565b92508282026126f2816122e0565b9150828204841483151761270957612708612529565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6127446020836121e2565b915061274f82612710565b602082019050919050565b5f6020820190508181035f83015261277181612738565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6127ac6017836121e2565b91506127b782612778565b602082019050919050565b5f6020820190508181035f8301526127d9816127a0565b9050919050565b5f815190506127ee816122b6565b92915050565b5f6020828403121561280957612808612282565b5b5f612816848285016127e0565b91505092915050565b5f6040820190506128325f8301856124c3565b61283f60208301846124c3565b9392505050565b5f819050919050565b5f819050919050565b5f61287261286d61286884612846565b61284f565b6122e0565b9050919050565b61288281612858565b82525050565b5f60c08201905061289b5f8301896124c3565b6128a86020830188612384565b6128b56040830187612879565b6128c26060830186612879565b6128cf60808301856124c3565b6128dc60a0830184612384565b979650505050505050565b5f815190506128f5816122e9565b92915050565b5f805f6060848603121561291257612911612282565b5b5f61291f868287016128e7565b9350506020612930868287016128e7565b9250506040612941868287016128e7565b9150509250925092565b5f60408201905061295e5f8301856124c3565b61296b6020830184612384565b9392505050565b5f8151905061298081612430565b92915050565b5f6020828403121561299b5761299a612282565b5b5f6129a884828501612972565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612a0b6024836121e2565b9150612a16826129b1565b604082019050919050565b5f6020820190508181035f830152612a38816129ff565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612a996022836121e2565b9150612aa482612a3f565b604082019050919050565b5f6020820190508181035f830152612ac681612a8d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612b276025836121e2565b9150612b3282612acd565b604082019050919050565b5f6020820190508181035f830152612b5481612b1b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612bb56023836121e2565b9150612bc082612b5b565b604082019050919050565b5f6020820190508181035f830152612be281612ba9565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612c436029836121e2565b9150612c4e82612be9565b604082019050919050565b5f6020820190508181035f830152612c7081612c37565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f612cf76049836121e2565b9150612d0282612c77565b606082019050919050565b5f6020820190508181035f830152612d2481612ceb565b9050919050565b7f4578636565647320746865205f6d5472616e73616374696f6e416d742e0000005f82015250565b5f612d5f601d836121e2565b9150612d6a82612d2b565b602082019050919050565b5f6020820190508181035f830152612d8c81612d53565b9050919050565b5f612d9d826122e0565b9150612da8836122e0565b9250828201905080821115612dc057612dbf612529565b5b92915050565b7f4578636565647320746865205f6d57616c6c6574416d742e00000000000000005f82015250565b5f612dfa6018836121e2565b9150612e0582612dc6565b602082019050919050565b5f6020820190508181035f830152612e2781612dee565b9050919050565b5f612e38826122e0565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612e6a57612e69612529565b5b600182019050919050565b5f612e7f826122e0565b9150612e8a836122e0565b9250828203905081811115612ea257612ea1612529565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612f34816122a5565b82525050565b5f612f458383612f2b565b60208301905092915050565b5f602082019050919050565b5f612f6782612f02565b612f718185612f0c565b9350612f7c83612f1c565b805f5b83811015612fac578151612f938882612f3a565b9750612f9e83612f51565b925050600181019050612f7f565b5085935050505092915050565b5f60a082019050612fcc5f830188612384565b612fd96020830187612879565b8181036040830152612feb8186612f5d565b9050612ffa60608301856124c3565b6130076080830184612384565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613048826122e0565b9150613053836122e0565b92508261306357613062613011565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130c86021836121e2565b91506130d38261306e565b604082019050919050565b5f6020820190508181035f8301526130f5816130bc565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613130601b836121e2565b915061313b826130fc565b602082019050919050565b5f6020820190508181035f83015261315d81613124565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122014b9e3c80d3b11ad2668252b90744a1cbf0f73bd18daf6080f0ad312fe45a0b264736f6c63430008140033

Deployed Bytecode Sourcemap

3804:8357:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11482:149;;;;;;;;;;;;;:::i;:::-;;5693:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6526:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4968:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5970:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6695:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4845:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11676:347;;;;;;;;;;;;;:::i;:::-;;5879:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10681:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10808:665;;;;;;;;;;;;;:::i;:::-;;10377:196;;;;;;;;;;;;;:::i;:::-;;6073:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2885:148;;;;;;;;;;;;;:::i;:::-;;4780:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2671:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5784:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6200:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4905:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4146:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6375:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12031:127;;;;;;;;;;;;;:::i;:::-;;11482:149;11550:10;;;;;;;;;;;11534:26;;:12;:10;:12::i;:::-;:26;;;11526:35;;;;;;11580:10;11572:28;;:51;11601:21;11572:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11482:149::o;5693:83::-;5730:13;5763:5;;;;;;;;;;;;;;;;;5756:12;;5693:83;:::o;6526:161::-;6601:4;6618:39;6627:12;:10;:12::i;:::-;6641:7;6650:6;6618:8;:39::i;:::-;6675:4;6668:11;;6526:161;;;;:::o;4968:51::-;;;;:::o;5970:95::-;6023:7;4593:1;4649:2;:13;;;;:::i;:::-;4636:10;:26;;;;:::i;:::-;6043:14;;5970:95;:::o;6695:313::-;6793:4;6810:36;6820:6;6828:9;6839:6;6810:9;:36::i;:::-;6857:121;6866:6;6874:12;:10;:12::i;:::-;6888:89;6926:6;6888:89;;;;;;;;;;;;;;;;;:11;:19;6900:6;6888:19;;;;;;;;;;;;;;;:33;6908:12;:10;:12::i;:::-;6888:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6857:8;:121::i;:::-;6996:4;6989:11;;6695:313;;;;;:::o;4845:53::-;;;;:::o;11676:347::-;11739:10;;;;;;;;;;;11725:24;;:12;:10;:12::i;:::-;:24;;;11717:33;;;;;;11761:20;11782:24;11800:4;11782:9;:24::i;:::-;11761:45;;11833:1;11820:12;:14;11817:73;;;11848:30;11865:12;11848:16;:30::i;:::-;11817:73;11900:18;11919:21;11900:40;;11965:1;11954:10;:12;11951:65;;;11980:24;11993:10;11980:12;:24::i;:::-;11951:65;11706:317;;11676:347::o;5879:83::-;5920:5;4593:1;5938:16;;5879:83;:::o;10681:117::-;2808:12;:10;:12::i;:::-;2798:22;;:6;;;;;;;;;;:22;;;2790:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10784:6:::1;10757:18;:24;10776:4;10757:24;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;10681:117:::0;;:::o;10808:665::-;2808:12;:10;:12::i;:::-;2798:22;;:6;;;;;;;;;;:22;;;2790:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10872:8:::1;;;;;;;;;;;10871:9;10863:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;10955:42;10918:15;;:80;;;;;;;;;;;;;;;;;;11009:58;11026:4;11041:15;;;;;;;;;;;4593:1;4649:2;:13;;;;:::i;:::-;4636:10;:26;;;;:::i;:::-;11009:8;:58::i;:::-;11112:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11094:55;;;11158:4;11165:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11094:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11078:13;;:110;;;;;;;;;;;;;;;;;;11199:15;;;;;;;;;;;:31;;;11238:21;11269:4;11275:24;11293:4;11275:9;:24::i;:::-;11300:1;11302::::0;11304:7:::1;:5;:7::i;:::-;11312:15;11199:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11346:13;;;;;;;;;;;11339:29;;;11377:15;;;;;;;;;;;11395:14;11339:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11435:4;11421:11;;:18;;;;;;;;;;;;;;;;;;11461:4;11450:8;;:15;;;;;;;;;;;;;;;;;;10808:665::o:0;10377:196::-;2808:12;:10;:12::i;:::-;2798:22;;:6;;;;;;;;;;:22;;;2790:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4593:1:::1;4649:2;:13;;;;:::i;:::-;4636:10;:26;;;;:::i;:::-;10429:16;:26;;;;4593:1;4649:2;:13;;;;:::i;:::-;4636:10;:26;;;;:::i;:::-;10466:11;:19;;;;10517:5;10496:20;;:26;;;;;;;;;;;;;;;;;;10538:27;4593:1;4649:2;:13;;;;:::i;:::-;4636:10;:26;;;;:::i;:::-;10538:27;;;;;;:::i;:::-;;;;;;;;10377:196::o:0;6073:119::-;6139:7;6166:9;:18;6176:7;6166:18;;;;;;;;;;;;;;;;6159:25;;6073:119;;;:::o;2885:148::-;2808:12;:10;:12::i;:::-;2798:22;;:6;;;;;;;;;;:22;;;2790:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2992:1:::1;2955:40;;2976:6;::::0;::::1;;;;;;;;2955:40;;;;;;;;;;;;3023:1;3006:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2885:148::o:0;4780:58::-;;;;:::o;2671:79::-;2709:7;2736:6;;;;;;;;;;;2729:13;;2671:79;:::o;5784:87::-;5823:13;5856:7;;;;;;;;;;;;;;;;;5849:14;;5784:87;:::o;6200:167::-;6278:4;6295:42;6305:12;:10;:12::i;:::-;6319:9;6330:6;6295:9;:42::i;:::-;6355:4;6348:11;;6200:167;;;;:::o;4905:56::-;;;;:::o;4146:39::-;;;;;;;;;;;;;:::o;6375:143::-;6456:7;6483:11;:18;6495:5;6483:18;;;;;;;;;;;;;;;:27;6502:7;6483:27;;;;;;;;;;;;;;;;6476:34;;6375:143;;;;:::o;12031:127::-;12073:18;12092:21;12073:40;;12126:24;12139:10;12126:12;:24::i;:::-;12062:96;12031:127::o;424:98::-;477:7;504:10;497:17;;424:98;:::o;7016:335::-;7126:1;7109:19;;:5;:19;;;7101:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7207:1;7188:21;;:7;:21;;;7180:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7289:6;7259:11;:18;7271:5;7259:18;;;;;;;;;;;;;;;:27;7278:7;7259:27;;;;;;;;;;;;;;;:36;;;;7327:7;7311:32;;7320:5;7311:32;;;7336:6;7311:32;;;;;;:::i;:::-;;;;;;;;7016:335;;;:::o;7359:2411::-;7463:1;7447:18;;:4;:18;;;7439:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7540:1;7526:16;;:2;:16;;;7518:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7610:1;7601:6;:10;7593:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7668:17;7710:7;:5;:7::i;:::-;7702:15;;:4;:15;;;;:32;;;;;7727:7;:5;:7::i;:::-;7721:13;;:2;:13;;;;7702:32;7698:1716;;;7763:76;7835:3;7763:67;7785:15;;7775:9;;:25;7774:55;;7815:14;;7774:55;;;7802:12;;7774:55;7763:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;7751:88;;7860:20;;;;;;;;;;;7856:502;;;7921:15;;;;;;;;;;;7907:30;;:2;:30;;;;:62;;;;;7955:13;;;;;;;;;;;7941:28;;:2;:28;;;;7907:62;7903:438;;;8102:12;8032:25;:36;8058:9;8032:36;;;;;;;;;;;;;;;;:82;7996:247;;;;;;;;;;;;:::i;:::-;;;;;;;;;8307:12;8268:25;:36;8294:9;8268:36;;;;;;;;;;;;;;;:51;;;;7903:438;7856:502;8386:13;;;;;;;;;;;8378:21;;:4;:21;;;:55;;;;;8417:15;;;;;;;;;;;8403:30;;:2;:30;;;;8378:55;:83;;;;;8439:18;:22;8458:2;8439:22;;;;;;;;;;;;;;;;;;;;;;;;;8437:24;8378:83;8374:316;;;8501:16;;8491:6;:26;;8483:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8604:11;;8594:6;8578:13;8588:2;8578:9;:13::i;:::-;:22;;;;:::i;:::-;:37;;8570:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;8663:9;;:11;;;;;;;;;:::i;:::-;;;;;;8374:316;8715:13;;;;;;;;;;;8709:19;;:2;:19;;;:43;;;;;8747:4;8732:20;;:4;:20;;;;8709:43;8706:174;;;8785:79;8860:3;8785:70;8807:16;;8797:9;;:26;8796:58;;8839:15;;8796:58;;;8825:13;;8796:58;8785:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8773:91;;8706:174;8896:28;8927:24;8945:4;8927:9;:24::i;:::-;8896:55;;8971:6;;;;;;;;;;;8970:7;:32;;;;;8989:13;;;;;;;;;;;8981:21;;:2;:21;;;8970:32;:47;;;;;9006:11;;;;;;;;;;;8970:47;:89;;;;;9042:17;;9021:20;:38;8970:89;:121;;;;;9073:18;;9063:9;;:28;8970:121;8966:437;;;9112:67;9129:49;9133:6;9140:37;9144:20;9165:11;;9140:3;:37::i;:::-;9129:3;:49::i;:::-;9112:16;:67::i;:::-;9198:26;9227:21;9198:50;;9291:17;9270:18;:38;9267:121;;;9333:35;9346:21;9333:12;:35::i;:::-;9267:121;9093:310;8966:437;7736:1678;7698:1716;9439:1;9429:9;:11;9426:161;;;9479:39;9508:9;9479;:24;9497:4;9479:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9454:9;:24;9472:4;9454:24;;;;;;;;;;;;;;;:64;;;;9559:4;9536:39;;9545:4;9536:39;;;9565:9;9536:39;;;;;;:::i;:::-;;;;;;;;9426:161;9613:27;9633:6;9613:9;:15;9623:4;9613:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9597:9;:15;9607:4;9597:15;;;;;;;;;;;;;;;:43;;;;9665:40;9683:21;9694:9;9683:6;:10;;:21;;;;:::i;:::-;9665:9;:13;9675:2;9665:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9651:9;:13;9661:2;9651:13;;;;;;;;;;;;;;;:54;;;;9736:2;9721:41;;9730:4;9721:41;;;9740:21;9751:9;9740:6;:10;;:21;;;;:::i;:::-;9721:41;;;;;;:::i;:::-;;;;;;;;7428:2342;7359:2411;;;:::o;1561:190::-;1647:7;1680:1;1675;:6;;1683:12;1667:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1707:9;1723:1;1719;:5;;;;:::i;:::-;1707:17;;1742:1;1735:8;;;1561:190;;;;;:::o;9886:483::-;5311:4;5302:6;;:13;;;;;;;;;;;;;;;;;;9964:21:::1;10002:1;9988:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9964:40;;10033:4;10015;10020:1;10015:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10059:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10049:4;10054:1;10049:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10092:62;10109:4;10124:15;;;;;;;;;;;10142:11;10092:8;:62::i;:::-;10165:15;;;;;;;;;;;:66;;;10246:11;10272:1;10288:4;10315;10335:15;10165:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9953:416;5347:5:::0;5338:6;;:14;;;;;;;;;;;;;;;;;;9886:483;:::o;10581:92::-;10638:10;;;;;;;;;;;:19;;:27;10658:6;10638:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10581:92;:::o;1759:246::-;1817:7;1846:1;1841;:6;1837:47;;1871:1;1864:8;;;;1837:47;1894:9;1910:1;1906;:5;;;;:::i;:::-;1894:17;;1939:1;1934;1930;:5;;;;:::i;:::-;:10;1922:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1996:1;1989:8;;;1759:246;;;;;:::o;2013:132::-;2071:7;2098:39;2102:1;2105;2098:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2091:46;;2013:132;;;;:::o;9780:98::-;9837:7;9864:1;9862;:3;9861:9;;9869:1;9861:9;;;9867:1;9861:9;9854:16;;9780:98;;;;:::o;1230:179::-;1288:7;1308:9;1324:1;1320;:5;;;;:::i;:::-;1308:17;;1349:1;1344;:6;;1336:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1400:1;1393:8;;;1230:179;;;;:::o;1417:136::-;1475:7;1502:43;1506:1;1509;1502:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1495:50;;1417:136;;;;:::o;2153:189::-;2239:7;2271:1;2267;:5;2274:12;2259:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2298:9;2314:1;2310;:5;;;;:::i;:::-;2298:17;;2333:1;2326:8;;;2153: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:116::-;4923:21;4938:5;4923:21;:::i;:::-;4916:5;4913:32;4903:60;;4959:1;4956;4949:12;4903:60;4853:116;:::o;4975:133::-;5018:5;5056:6;5043:20;5034:29;;5072:30;5096:5;5072:30;:::i;:::-;4975:133;;;;:::o;5114:468::-;5179:6;5187;5236:2;5224:9;5215:7;5211:23;5207:32;5204:119;;;5242:79;;:::i;:::-;5204:119;5362:1;5387:53;5432:7;5423:6;5412:9;5408:22;5387:53;:::i;:::-;5377:63;;5333:117;5489:2;5515:50;5557:7;5548:6;5537:9;5533:22;5515:50;:::i;:::-;5505:60;;5460:115;5114:468;;;;;:::o;5588:329::-;5647:6;5696:2;5684:9;5675:7;5671:23;5667:32;5664:119;;;5702:79;;:::i;:::-;5664:119;5822:1;5847:53;5892:7;5883:6;5872:9;5868:22;5847:53;:::i;:::-;5837:63;;5793:117;5588:329;;;;:::o;5923:118::-;6010:24;6028:5;6010:24;:::i;:::-;6005:3;5998:37;5923:118;;:::o;6047:222::-;6140:4;6178:2;6167:9;6163:18;6155:26;;6191:71;6259:1;6248:9;6244:17;6235:6;6191:71;:::i;:::-;6047:222;;;;:::o;6275:474::-;6343:6;6351;6400:2;6388:9;6379:7;6375:23;6371:32;6368:119;;;6406:79;;:::i;:::-;6368:119;6526:1;6551:53;6596:7;6587:6;6576:9;6572:22;6551:53;:::i;:::-;6541:63;;6497:117;6653:2;6679:53;6724:7;6715:6;6704:9;6700:22;6679:53;:::i;:::-;6669:63;;6624:118;6275:474;;;;;:::o;6755:180::-;6803:77;6800:1;6793:88;6900:4;6897:1;6890:15;6924:4;6921:1;6914:15;6941:102;6983:8;7030:5;7027:1;7023:13;7002:34;;6941:102;;;:::o;7049:848::-;7110:5;7117:4;7141:6;7132:15;;7165:5;7156:14;;7179:712;7200:1;7190:8;7187:15;7179:712;;;7295:4;7290:3;7286:14;7280:4;7277:24;7274:50;;;7304:18;;:::i;:::-;7274:50;7354:1;7344:8;7340:16;7337:451;;;7769:4;7762:5;7758:16;7749:25;;7337:451;7819:4;7813;7809:15;7801:23;;7849:32;7872:8;7849:32;:::i;:::-;7837:44;;7179:712;;;7049:848;;;;;;;:::o;7903:1073::-;7957:5;8148:8;8138:40;;8169:1;8160:10;;8171:5;;8138:40;8197:4;8187:36;;8214:1;8205:10;;8216:5;;8187:36;8283:4;8331:1;8326:27;;;;8367:1;8362:191;;;;8276:277;;8326:27;8344:1;8335:10;;8346:5;;;8362:191;8407:3;8397:8;8394:17;8391:43;;;8414:18;;:::i;:::-;8391:43;8463:8;8460:1;8456:16;8447:25;;8498:3;8491:5;8488:14;8485:40;;;8505:18;;:::i;:::-;8485:40;8538:5;;;8276:277;;8662:2;8652:8;8649:16;8643:3;8637:4;8634:13;8630:36;8612:2;8602:8;8599:16;8594:2;8588:4;8585:12;8581:35;8565:111;8562:246;;;8718:8;8712:4;8708:19;8699:28;;8753:3;8746:5;8743:14;8740:40;;;8760:18;;:::i;:::-;8740:40;8793:5;;8562:246;8833:42;8871:3;8861:8;8855:4;8852:1;8833:42;:::i;:::-;8818:57;;;;8907:4;8902:3;8898:14;8891:5;8888:25;8885:51;;;8916:18;;:::i;:::-;8885:51;8965:4;8958:5;8954:16;8945:25;;7903:1073;;;;;;:::o;8982:281::-;9040:5;9064:23;9082:4;9064:23;:::i;:::-;9056:31;;9108:25;9124:8;9108:25;:::i;:::-;9096:37;;9152:104;9189:66;9179:8;9173:4;9152:104;:::i;:::-;9143:113;;8982:281;;;;:::o;9269:410::-;9309:7;9332:20;9350:1;9332:20;:::i;:::-;9327:25;;9366:20;9384:1;9366:20;:::i;:::-;9361:25;;9421:1;9418;9414:9;9443:30;9461:11;9443:30;:::i;:::-;9432:41;;9622:1;9613:7;9609:15;9606:1;9603:22;9583:1;9576:9;9556:83;9533:139;;9652:18;;:::i;:::-;9533:139;9317:362;9269:410;;;;:::o;9685:182::-;9825:34;9821:1;9813:6;9809:14;9802:58;9685:182;:::o;9873:366::-;10015:3;10036:67;10100:2;10095:3;10036:67;:::i;:::-;10029:74;;10112:93;10201:3;10112:93;:::i;:::-;10230:2;10225:3;10221:12;10214:19;;9873:366;;;:::o;10245:419::-;10411:4;10449:2;10438:9;10434:18;10426:26;;10498:9;10492:4;10488:20;10484:1;10473:9;10469:17;10462:47;10526:131;10652:4;10526:131;:::i;:::-;10518:139;;10245:419;;;:::o;10670:173::-;10810:25;10806:1;10798:6;10794:14;10787:49;10670:173;:::o;10849:366::-;10991:3;11012:67;11076:2;11071:3;11012:67;:::i;:::-;11005:74;;11088:93;11177:3;11088:93;:::i;:::-;11206:2;11201:3;11197:12;11190:19;;10849:366;;;:::o;11221:419::-;11387:4;11425:2;11414:9;11410:18;11402:26;;11474:9;11468:4;11464:20;11460:1;11449:9;11445:17;11438:47;11502:131;11628:4;11502:131;:::i;:::-;11494:139;;11221:419;;;:::o;11646:143::-;11703:5;11734:6;11728:13;11719:22;;11750:33;11777:5;11750:33;:::i;:::-;11646:143;;;;:::o;11795:351::-;11865:6;11914:2;11902:9;11893:7;11889:23;11885:32;11882:119;;;11920:79;;:::i;:::-;11882:119;12040:1;12065:64;12121:7;12112:6;12101:9;12097:22;12065:64;:::i;:::-;12055:74;;12011:128;11795:351;;;;:::o;12152:332::-;12273:4;12311:2;12300:9;12296:18;12288:26;;12324:71;12392:1;12381:9;12377:17;12368:6;12324:71;:::i;:::-;12405:72;12473:2;12462:9;12458:18;12449:6;12405:72;:::i;:::-;12152:332;;;;;:::o;12490:85::-;12535:7;12564:5;12553:16;;12490:85;;;:::o;12581:60::-;12609:3;12630:5;12623:12;;12581:60;;;:::o;12647:158::-;12705:9;12738:61;12756:42;12765:32;12791:5;12765:32;:::i;:::-;12756:42;:::i;:::-;12738:61;:::i;:::-;12725:74;;12647:158;;;:::o;12811:147::-;12906:45;12945:5;12906:45;:::i;:::-;12901:3;12894:58;12811:147;;:::o;12964:807::-;13213:4;13251:3;13240:9;13236:19;13228:27;;13265:71;13333:1;13322:9;13318:17;13309:6;13265:71;:::i;:::-;13346:72;13414:2;13403:9;13399:18;13390:6;13346:72;:::i;:::-;13428:80;13504:2;13493:9;13489:18;13480:6;13428:80;:::i;:::-;13518;13594:2;13583:9;13579:18;13570:6;13518:80;:::i;:::-;13608:73;13676:3;13665:9;13661:19;13652:6;13608:73;:::i;:::-;13691;13759:3;13748:9;13744:19;13735:6;13691:73;:::i;:::-;12964:807;;;;;;;;;:::o;13777:143::-;13834:5;13865:6;13859:13;13850:22;;13881:33;13908:5;13881:33;:::i;:::-;13777:143;;;;:::o;13926:663::-;14014:6;14022;14030;14079:2;14067:9;14058:7;14054:23;14050:32;14047:119;;;14085:79;;:::i;:::-;14047:119;14205:1;14230:64;14286:7;14277:6;14266:9;14262:22;14230:64;:::i;:::-;14220:74;;14176:128;14343:2;14369:64;14425:7;14416:6;14405:9;14401:22;14369:64;:::i;:::-;14359:74;;14314:129;14482:2;14508:64;14564:7;14555:6;14544:9;14540:22;14508:64;:::i;:::-;14498:74;;14453:129;13926:663;;;;;:::o;14595:332::-;14716:4;14754:2;14743:9;14739:18;14731:26;;14767:71;14835:1;14824:9;14820:17;14811:6;14767:71;:::i;:::-;14848:72;14916:2;14905:9;14901:18;14892:6;14848:72;:::i;:::-;14595:332;;;;;:::o;14933:137::-;14987:5;15018:6;15012:13;15003:22;;15034:30;15058:5;15034:30;:::i;:::-;14933:137;;;;:::o;15076:345::-;15143:6;15192:2;15180:9;15171:7;15167:23;15163:32;15160:119;;;15198:79;;:::i;:::-;15160:119;15318:1;15343:61;15396:7;15387:6;15376:9;15372:22;15343:61;:::i;:::-;15333:71;;15289:125;15076:345;;;;:::o;15427:223::-;15567:34;15563:1;15555:6;15551:14;15544:58;15636:6;15631:2;15623:6;15619:15;15612:31;15427:223;:::o;15656:366::-;15798:3;15819:67;15883:2;15878:3;15819:67;:::i;:::-;15812:74;;15895:93;15984:3;15895:93;:::i;:::-;16013:2;16008:3;16004:12;15997:19;;15656:366;;;:::o;16028:419::-;16194:4;16232:2;16221:9;16217:18;16209:26;;16281:9;16275:4;16271:20;16267:1;16256:9;16252:17;16245:47;16309:131;16435:4;16309:131;:::i;:::-;16301:139;;16028:419;;;:::o;16453:221::-;16593:34;16589:1;16581:6;16577:14;16570:58;16662:4;16657:2;16649:6;16645:15;16638:29;16453:221;:::o;16680:366::-;16822:3;16843:67;16907:2;16902:3;16843:67;:::i;:::-;16836:74;;16919:93;17008:3;16919:93;:::i;:::-;17037:2;17032:3;17028:12;17021:19;;16680:366;;;:::o;17052:419::-;17218:4;17256:2;17245:9;17241:18;17233:26;;17305:9;17299:4;17295:20;17291:1;17280:9;17276:17;17269:47;17333:131;17459:4;17333:131;:::i;:::-;17325:139;;17052:419;;;:::o;17477:224::-;17617:34;17613:1;17605:6;17601:14;17594:58;17686:7;17681:2;17673:6;17669:15;17662:32;17477:224;:::o;17707:366::-;17849:3;17870:67;17934:2;17929:3;17870:67;:::i;:::-;17863:74;;17946:93;18035:3;17946:93;:::i;:::-;18064:2;18059:3;18055:12;18048:19;;17707:366;;;:::o;18079:419::-;18245:4;18283:2;18272:9;18268:18;18260:26;;18332:9;18326:4;18322:20;18318:1;18307:9;18303:17;18296:47;18360:131;18486:4;18360:131;:::i;:::-;18352:139;;18079:419;;;:::o;18504:222::-;18644:34;18640:1;18632:6;18628:14;18621:58;18713:5;18708:2;18700:6;18696:15;18689:30;18504:222;:::o;18732:366::-;18874:3;18895:67;18959:2;18954:3;18895:67;:::i;:::-;18888:74;;18971:93;19060:3;18971:93;:::i;:::-;19089:2;19084:3;19080:12;19073:19;;18732:366;;;:::o;19104:419::-;19270:4;19308:2;19297:9;19293:18;19285:26;;19357:9;19351:4;19347:20;19343:1;19332:9;19328:17;19321:47;19385:131;19511:4;19385:131;:::i;:::-;19377:139;;19104:419;;;:::o;19529:228::-;19669:34;19665:1;19657:6;19653:14;19646:58;19738:11;19733:2;19725:6;19721:15;19714:36;19529:228;:::o;19763:366::-;19905:3;19926:67;19990:2;19985:3;19926:67;:::i;:::-;19919:74;;20002:93;20091:3;20002:93;:::i;:::-;20120:2;20115:3;20111:12;20104:19;;19763:366;;;:::o;20135:419::-;20301:4;20339:2;20328:9;20324:18;20316:26;;20388:9;20382:4;20378:20;20374:1;20363:9;20359:17;20352:47;20416:131;20542:4;20416:131;:::i;:::-;20408:139;;20135:419;;;:::o;20560:297::-;20700:34;20696:1;20688:6;20684:14;20677:58;20769:34;20764:2;20756:6;20752:15;20745:59;20838:11;20833:2;20825:6;20821:15;20814:36;20560:297;:::o;20863:366::-;21005:3;21026:67;21090:2;21085:3;21026:67;:::i;:::-;21019:74;;21102:93;21191:3;21102:93;:::i;:::-;21220:2;21215:3;21211:12;21204:19;;20863:366;;;:::o;21235:419::-;21401:4;21439:2;21428:9;21424:18;21416:26;;21488:9;21482:4;21478:20;21474:1;21463:9;21459:17;21452:47;21516:131;21642:4;21516:131;:::i;:::-;21508:139;;21235:419;;;:::o;21660:179::-;21800:31;21796:1;21788:6;21784:14;21777:55;21660:179;:::o;21845:366::-;21987:3;22008:67;22072:2;22067:3;22008:67;:::i;:::-;22001:74;;22084:93;22173:3;22084:93;:::i;:::-;22202:2;22197:3;22193:12;22186:19;;21845:366;;;:::o;22217:419::-;22383:4;22421:2;22410:9;22406:18;22398:26;;22470:9;22464:4;22460:20;22456:1;22445:9;22441:17;22434:47;22498:131;22624:4;22498:131;:::i;:::-;22490:139;;22217:419;;;:::o;22642:191::-;22682:3;22701:20;22719:1;22701:20;:::i;:::-;22696:25;;22735:20;22753:1;22735:20;:::i;:::-;22730:25;;22778:1;22775;22771:9;22764:16;;22799:3;22796:1;22793:10;22790:36;;;22806:18;;:::i;:::-;22790:36;22642:191;;;;:::o;22839:174::-;22979:26;22975:1;22967:6;22963:14;22956:50;22839:174;:::o;23019:366::-;23161:3;23182:67;23246:2;23241:3;23182:67;:::i;:::-;23175:74;;23258:93;23347:3;23258:93;:::i;:::-;23376:2;23371:3;23367:12;23360:19;;23019:366;;;:::o;23391:419::-;23557:4;23595:2;23584:9;23580:18;23572:26;;23644:9;23638:4;23634:20;23630:1;23619:9;23615:17;23608:47;23672:131;23798:4;23672:131;:::i;:::-;23664:139;;23391:419;;;:::o;23816:233::-;23855:3;23878:24;23896:5;23878:24;:::i;:::-;23869:33;;23924:66;23917:5;23914:77;23911:103;;23994:18;;:::i;:::-;23911:103;24041:1;24034:5;24030:13;24023:20;;23816:233;;;:::o;24055:194::-;24095:4;24115:20;24133:1;24115:20;:::i;:::-;24110:25;;24149:20;24167:1;24149:20;:::i;:::-;24144:25;;24193:1;24190;24186:9;24178:17;;24217:1;24211:4;24208:11;24205:37;;;24222:18;;:::i;:::-;24205:37;24055:194;;;;:::o;24255:180::-;24303:77;24300:1;24293:88;24400:4;24397:1;24390:15;24424:4;24421:1;24414:15;24441:180;24489:77;24486:1;24479:88;24586:4;24583:1;24576:15;24610:4;24607:1;24600:15;24627:114;24694:6;24728:5;24722:12;24712:22;;24627:114;;;:::o;24747:184::-;24846:11;24880:6;24875:3;24868:19;24920:4;24915:3;24911:14;24896:29;;24747:184;;;;:::o;24937:132::-;25004:4;25027:3;25019:11;;25057:4;25052:3;25048:14;25040:22;;24937:132;;;:::o;25075:108::-;25152:24;25170:5;25152:24;:::i;:::-;25147:3;25140:37;25075:108;;:::o;25189:179::-;25258:10;25279:46;25321:3;25313:6;25279:46;:::i;:::-;25357:4;25352:3;25348:14;25334:28;;25189:179;;;;:::o;25374:113::-;25444:4;25476;25471:3;25467:14;25459:22;;25374:113;;;:::o;25523:732::-;25642:3;25671:54;25719:5;25671:54;:::i;:::-;25741:86;25820:6;25815:3;25741:86;:::i;:::-;25734:93;;25851:56;25901:5;25851:56;:::i;:::-;25930:7;25961:1;25946:284;25971:6;25968:1;25965:13;25946:284;;;26047:6;26041:13;26074:63;26133:3;26118:13;26074:63;:::i;:::-;26067:70;;26160:60;26213:6;26160:60;:::i;:::-;26150:70;;26006:224;25993:1;25990;25986:9;25981:14;;25946:284;;;25950:14;26246:3;26239:10;;25647:608;;;25523:732;;;;:::o;26261:831::-;26524:4;26562:3;26551:9;26547:19;26539:27;;26576:71;26644:1;26633:9;26629:17;26620:6;26576:71;:::i;:::-;26657:80;26733:2;26722:9;26718:18;26709:6;26657:80;:::i;:::-;26784:9;26778:4;26774:20;26769:2;26758:9;26754:18;26747:48;26812:108;26915:4;26906:6;26812:108;:::i;:::-;26804:116;;26930:72;26998:2;26987:9;26983:18;26974:6;26930:72;:::i;:::-;27012:73;27080:3;27069:9;27065:19;27056:6;27012:73;:::i;:::-;26261:831;;;;;;;;:::o;27098:180::-;27146:77;27143:1;27136:88;27243:4;27240:1;27233:15;27267:4;27264:1;27257:15;27284:185;27324:1;27341:20;27359:1;27341:20;:::i;:::-;27336:25;;27375:20;27393:1;27375:20;:::i;:::-;27370:25;;27414:1;27404:35;;27419:18;;:::i;:::-;27404:35;27461:1;27458;27454:9;27449:14;;27284:185;;;;:::o;27475:220::-;27615:34;27611:1;27603:6;27599:14;27592:58;27684:3;27679:2;27671:6;27667:15;27660:28;27475:220;:::o;27701:366::-;27843:3;27864:67;27928:2;27923:3;27864:67;:::i;:::-;27857:74;;27940:93;28029:3;27940:93;:::i;:::-;28058:2;28053:3;28049:12;28042:19;;27701:366;;;:::o;28073:419::-;28239:4;28277:2;28266:9;28262:18;28254:26;;28326:9;28320:4;28316:20;28312:1;28301:9;28297:17;28290:47;28354:131;28480:4;28354:131;:::i;:::-;28346:139;;28073:419;;;:::o;28498:177::-;28638:29;28634:1;28626:6;28622:14;28615:53;28498:177;:::o;28681:366::-;28823:3;28844:67;28908:2;28903:3;28844:67;:::i;:::-;28837:74;;28920:93;29009:3;28920:93;:::i;:::-;29038:2;29033:3;29029:12;29022:19;;28681:366;;;:::o;29053:419::-;29219:4;29257:2;29246:9;29242:18;29234:26;;29306:9;29300:4;29296:20;29292:1;29281:9;29277:17;29270:47;29334:131;29460:4;29334:131;:::i;:::-;29326:139;;29053:419;;;:::o

Swarm Source

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