ETH Price: $3,107.87 (-0.25%)

Token

ARLO (ARLO)
 

Overview

Max Total Supply

1,000,000,000 ARLO

Holders

75

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Filtered by Token Holder
sadinoel.eth
Balance
0.01759768 ARLO

Value
$0.00
0xfDc27a55425718097e61924c2A604b5f694e2B8B
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:
ARLO

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT
/**
https://arlobot.io
https://t.me/arlotgchan
https://twitter.com/arlotoken
**/
pragma solidity 0.8.20;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}

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

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

contract ARLO is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

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

    uint8 private constant _decimals = 8;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = "ARLO";
    string private constant _symbol = "ARLO";
    uint256 public _maxTxAmount =   1000000000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000000 * 10**_decimals;
    uint256 public _taxSwapThreshold=100000 * 10**_decimals;
    uint256 public _maxTaxSwap=10000000000 * 10**_decimals;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


            if (transferDelayEnabled) {
                if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                  require(_holderLastTransferTimestamp[tx.origin] < block.number,"Only one transfer per block allowed.");
                  _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

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


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

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

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


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

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

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        _finalBuyTax=2;
        _finalSellTax=2;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

        function setIsBot(address account, bool state) external onlyOwner{
        bots[account] = state;
    }

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

    function isBot(address a) public view returns (bool){
      return bots[a];
    }

        function reduceFee(uint256 _newFee) external{
      require(_msgSender()==_taxWallet);
      require(_newFee<6);
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
    }

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

    receive() external payable {}

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

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

    
    
    
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"setIsBot","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"},{"stateMutability":"payable","type":"receive"}]

6080604052600160065f6101000a81548160ff02191690831515021790555060196007556019600855600f600955600f600a556014600b556014600c556028600d555f600e556008600a62000055919062000610565b633b9aca0062000066919062000660565b600f556008600a62000079919062000610565b6301312d006200008a919062000660565b6010556008600a6200009d919062000610565b620186a0620000ad919062000660565b6011556008600a620000c0919062000610565b6402540be400620000d2919062000660565b6012555f601460156101000a81548160ff0219169083151502179055505f601460166101000a81548160ff02191690831515021790555034801562000115575f80fd5b505f620001276200045060201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001d36200045060201b60201c565b600660016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506008600a62000223919062000610565b633b9aca0062000234919062000660565b60015f620002476200045060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f620002996200045760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620003c46200045060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a62000422919062000610565b633b9aca0062000433919062000660565b604051620004429190620006bb565b60405180910390a3620006d6565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200050857808604811115620004e057620004df6200047e565b5b6001851615620004f05780820291505b80810290506200050085620004ab565b9450620004c0565b94509492505050565b5f82620005225760019050620005f4565b8162000531575f9050620005f4565b81600181146200054a576002811462000555576200058b565b6001915050620005f4565b60ff8411156200056a57620005696200047e565b5b8360020a9150848211156200058457620005836200047e565b5b50620005f4565b5060208310610133831016604e8410600b8410161715620005c55782820a905083811115620005bf57620005be6200047e565b5b620005f4565b620005d48484846001620004b7565b92509050818404811115620005ee57620005ed6200047e565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200061c82620005fb565b9150620006298362000604565b9250620006587fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000511565b905092915050565b5f6200066c82620005fb565b91506200067983620005fb565b92508282026200068981620005fb565b91508282048414831517620006a357620006a26200047e565b5b5092915050565b620006b581620005fb565b82525050565b5f602082019050620006d05f830184620006aa565b92915050565b6132af80620006e45f395ff3fe608060405260043610610138575f3560e01c8063751039fc116100aa578063a9059cbb1161006e578063a9059cbb146103ed578063bf474bed14610429578063c876d0b914610453578063c9567bf91461047d578063dd62ed3e14610493578063ec1f3f63146104cf5761013f565b8063751039fc1461032f5780637d1db4a5146103455780638da5cb5b1461036f5780638f9a55c01461039957806395d89b41146103c35761013f565b806323b872dd116100fc57806323b872dd14610225578063313ce567146102615780633bbac5791461028b57806351bc3c85146102c757806370a08231146102dd578063715018a6146103195761013f565b806303c0f5d41461014357806306fdde031461016b578063095ea7b3146101955780630faee56f146101d157806318160ddd146101fb5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b5061016960048036038101906101649190612353565b6104f7565b005b348015610176575f80fd5b5061017f6105e3565b60405161018c919061241b565b60405180910390f35b3480156101a0575f80fd5b506101bb60048036038101906101b6919061246e565b610620565b6040516101c891906124bb565b60405180910390f35b3480156101dc575f80fd5b506101e561063d565b6040516101f291906124e3565b60405180910390f35b348015610206575f80fd5b5061020f610643565b60405161021c91906124e3565b60405180910390f35b348015610230575f80fd5b5061024b600480360381019061024691906124fc565b610666565b60405161025891906124bb565b60405180910390f35b34801561026c575f80fd5b5061027561073a565b6040516102829190612567565b60405180910390f35b348015610296575f80fd5b506102b160048036038101906102ac9190612580565b610742565b6040516102be91906124bb565b60405180910390f35b3480156102d2575f80fd5b506102db610794565b005b3480156102e8575f80fd5b5061030360048036038101906102fe9190612580565b61082c565b60405161031091906124e3565b60405180910390f35b348015610324575f80fd5b5061032d610872565b005b34801561033a575f80fd5b506103436109c0565b005b348015610350575f80fd5b50610359610b18565b60405161036691906124e3565b60405180910390f35b34801561037a575f80fd5b50610383610b1e565b60405161039091906125ba565b60405180910390f35b3480156103a4575f80fd5b506103ad610b45565b6040516103ba91906124e3565b60405180910390f35b3480156103ce575f80fd5b506103d7610b4b565b6040516103e4919061241b565b60405180910390f35b3480156103f8575f80fd5b50610413600480360381019061040e919061246e565b610b88565b60405161042091906124bb565b60405180910390f35b348015610434575f80fd5b5061043d610ba5565b60405161044a91906124e3565b60405180910390f35b34801561045e575f80fd5b50610467610bab565b60405161047491906124bb565b60405180910390f35b348015610488575f80fd5b50610491610bbd565b005b34801561049e575f80fd5b506104b960048036038101906104b491906125d3565b6110dc565b6040516104c691906124e3565b60405180910390f35b3480156104da575f80fd5b506104f560048036038101906104f09190612611565b61115e565b005b6104ff6111db565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461058b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058290612686565b60405180910390fd5b8060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60606040518060400160405280600481526020017f41524c4f00000000000000000000000000000000000000000000000000000000815250905090565b5f61063361062c6111db565b84846111e2565b6001905092915050565b60125481565b5f6008600a6106529190612800565b633b9aca00610661919061284a565b905090565b5f6106728484846113a5565b61072f8461067e6111db565b61072a856040518060600160405280602881526020016132526028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106e16111db565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d7e9092919063ffffffff16565b6111e2565b600190509392505050565b5f6008905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107d56111db565b73ffffffffffffffffffffffffffffffffffffffff16146107f4575f80fd5b5f6107fe3061082c565b90505f8111156108125761081181611de0565b5b5f4790505f8111156108285761082781612067565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61087a6111db565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fd90612686565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109c86111db565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4b90612686565b60405180910390fd5b6008600a610a629190612800565b633b9aca00610a71919061284a565b600f819055506008600a610a859190612800565b633b9aca00610a94919061284a565b60108190555060026009819055506002600a819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610af29190612800565b633b9aca00610b01919061284a565b604051610b0e91906124e3565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600481526020017f41524c4f00000000000000000000000000000000000000000000000000000000815250905090565b5f610b9b610b946111db565b84846113a5565b6001905092915050565b60115481565b60065f9054906101000a900460ff1681565b610bc56111db565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4890612686565b60405180910390fd5b60148054906101000a900460ff1615610c9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c96906128d5565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d3b3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610d279190612800565b633b9aca00610d36919061284a565b6111e2565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610da5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dc99190612907565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e4f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e739190612907565b6040518363ffffffff1660e01b8152600401610e90929190612932565b6020604051808303815f875af1158015610eac573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ed09190612907565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f573061082c565b5f80610f61610b1e565b426040518863ffffffff1660e01b8152600401610f839695949392919061299b565b60606040518083038185885af1158015610f9f573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fc49190612a0e565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611064929190612a5e565b6020604051808303815f875af1158015611080573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110a49190612a99565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661119f6111db565b73ffffffffffffffffffffffffffffffffffffffff16146111be575f80fd5b600681106111ca575f80fd5b8060098190555080600a8190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611250576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124790612b34565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b590612bc2565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161139891906124e3565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611413576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140a90612c50565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147890612cde565b60405180910390fd5b5f81116114c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ba90612d6c565b60405180910390fd5b5f6114cc610b1e565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561153a575061150a610b1e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ace5760065f9054906101000a900460ff16156116c55760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115fd575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156116c4574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611681576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167890612dfa565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561176e575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117c1575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561189a57600f5482111561180b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180290612e62565b60405180910390fd5b601054826118188561082c565b6118229190612e80565b1115611863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185a90612efd565b60405180910390fd5b600d54600e54101561188257611878836120d0565b15611881575f80fd5b5b600e5f81548092919061189490612f1b565b91905055505b6118d660646118c8600b54600e54116118b5576007546118b9565b6009545b856120e190919063ffffffff16565b61215890919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561196057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119e957600f548211156119aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a190612e62565b60405180910390fd5b6119e660646119d8600c54600e54116119c5576008546119c9565b600a545b856120e190919063ffffffff16565b61215890919063ffffffff16565b90505b5f6119f33061082c565b9050601460159054906101000a900460ff16158015611a5e575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a765750601460169054906101000a900460ff165b8015611a83575060115481115b8015611a925750600d54600e54115b15611acc57611ab4611aaf84611aaa846012546121a1565b6121a1565b611de0565b5f4790505f811115611aca57611ac947612067565b5b505b505b5f811115611bcd57611b268160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121b990919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bc491906124e3565b60405180910390a35b611c1d8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461221690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611cc0611c74828461221690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121b990919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d63848661221690919063ffffffff16565b604051611d7091906124e3565b60405180910390a350505050565b5f838311158290611dc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbc919061241b565b60405180910390fd5b505f8385611dd39190612f62565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f81031561204a5760148054906101000a900460ff161561204a575f600267ffffffffffffffff811115611e3257611e31612f95565b5b604051908082528060200260200182016040528015611e605781602001602082028036833780820191505090505b50905030815f81518110611e7757611e76612fc2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f3f9190612907565b81600181518110611f5357611f52612fc2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611fb93060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111e2565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161201b9594939291906130a6565b5f604051808303815f87803b158015612032575f80fd5b505af1158015612044573d5f803e3d5ffd5b50505050505b5f601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156120cc573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f8083036120f1575f9050612152565b5f82846120fe919061284a565b905082848261210d919061312b565b1461214d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612144906131cb565b60405180910390fd5b809150505b92915050565b5f61219983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061225f565b905092915050565b5f8183116121af57826121b1565b815b905092915050565b5f8082846121c79190612e80565b90508381101561220c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220390613233565b60405180910390fd5b8091505092915050565b5f61225783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d7e565b905092915050565b5f80831182906122a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229c919061241b565b60405180910390fd5b505f83856122b3919061312b565b9050809150509392505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6122ed826122c4565b9050919050565b6122fd816122e3565b8114612307575f80fd5b50565b5f81359050612318816122f4565b92915050565b5f8115159050919050565b6123328161231e565b811461233c575f80fd5b50565b5f8135905061234d81612329565b92915050565b5f8060408385031215612369576123686122c0565b5b5f6123768582860161230a565b92505060206123878582860161233f565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156123c85780820151818401526020810190506123ad565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6123ed82612391565b6123f7818561239b565b93506124078185602086016123ab565b612410816123d3565b840191505092915050565b5f6020820190508181035f83015261243381846123e3565b905092915050565b5f819050919050565b61244d8161243b565b8114612457575f80fd5b50565b5f8135905061246881612444565b92915050565b5f8060408385031215612484576124836122c0565b5b5f6124918582860161230a565b92505060206124a28582860161245a565b9150509250929050565b6124b58161231e565b82525050565b5f6020820190506124ce5f8301846124ac565b92915050565b6124dd8161243b565b82525050565b5f6020820190506124f65f8301846124d4565b92915050565b5f805f60608486031215612513576125126122c0565b5b5f6125208682870161230a565b93505060206125318682870161230a565b92505060406125428682870161245a565b9150509250925092565b5f60ff82169050919050565b6125618161254c565b82525050565b5f60208201905061257a5f830184612558565b92915050565b5f60208284031215612595576125946122c0565b5b5f6125a28482850161230a565b91505092915050565b6125b4816122e3565b82525050565b5f6020820190506125cd5f8301846125ab565b92915050565b5f80604083850312156125e9576125e86122c0565b5b5f6125f68582860161230a565b92505060206126078582860161230a565b9150509250929050565b5f60208284031215612626576126256122c0565b5b5f6126338482850161245a565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61267060208361239b565b915061267b8261263c565b602082019050919050565b5f6020820190508181035f83015261269d81612664565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561272657808604811115612702576127016126a4565b5b60018516156127115780820291505b808102905061271f856126d1565b94506126e6565b94509492505050565b5f8261273e57600190506127f9565b8161274b575f90506127f9565b8160018114612761576002811461276b5761279a565b60019150506127f9565b60ff84111561277d5761277c6126a4565b5b8360020a915084821115612794576127936126a4565b5b506127f9565b5060208310610133831016604e8410600b84101617156127cf5782820a9050838111156127ca576127c96126a4565b5b6127f9565b6127dc84848460016126dd565b925090508184048111156127f3576127f26126a4565b5b81810290505b9392505050565b5f61280a8261243b565b91506128158361254c565b92506128427fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461272f565b905092915050565b5f6128548261243b565b915061285f8361243b565b925082820261286d8161243b565b91508282048414831517612884576128836126a4565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6128bf60178361239b565b91506128ca8261288b565b602082019050919050565b5f6020820190508181035f8301526128ec816128b3565b9050919050565b5f81519050612901816122f4565b92915050565b5f6020828403121561291c5761291b6122c0565b5b5f612929848285016128f3565b91505092915050565b5f6040820190506129455f8301856125ab565b61295260208301846125ab565b9392505050565b5f819050919050565b5f819050919050565b5f61298561298061297b84612959565b612962565b61243b565b9050919050565b6129958161296b565b82525050565b5f60c0820190506129ae5f8301896125ab565b6129bb60208301886124d4565b6129c8604083018761298c565b6129d5606083018661298c565b6129e260808301856125ab565b6129ef60a08301846124d4565b979650505050505050565b5f81519050612a0881612444565b92915050565b5f805f60608486031215612a2557612a246122c0565b5b5f612a32868287016129fa565b9350506020612a43868287016129fa565b9250506040612a54868287016129fa565b9150509250925092565b5f604082019050612a715f8301856125ab565b612a7e60208301846124d4565b9392505050565b5f81519050612a9381612329565b92915050565b5f60208284031215612aae57612aad6122c0565b5b5f612abb84828501612a85565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612b1e60248361239b565b9150612b2982612ac4565b604082019050919050565b5f6020820190508181035f830152612b4b81612b12565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612bac60228361239b565b9150612bb782612b52565b604082019050919050565b5f6020820190508181035f830152612bd981612ba0565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612c3a60258361239b565b9150612c4582612be0565b604082019050919050565b5f6020820190508181035f830152612c6781612c2e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612cc860238361239b565b9150612cd382612c6e565b604082019050919050565b5f6020820190508181035f830152612cf581612cbc565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612d5660298361239b565b9150612d6182612cfc565b604082019050919050565b5f6020820190508181035f830152612d8381612d4a565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f612de460248361239b565b9150612def82612d8a565b604082019050919050565b5f6020820190508181035f830152612e1181612dd8565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612e4c60198361239b565b9150612e5782612e18565b602082019050919050565b5f6020820190508181035f830152612e7981612e40565b9050919050565b5f612e8a8261243b565b9150612e958361243b565b9250828201905080821115612ead57612eac6126a4565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612ee7601a8361239b565b9150612ef282612eb3565b602082019050919050565b5f6020820190508181035f830152612f1481612edb565b9050919050565b5f612f258261243b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f5757612f566126a4565b5b600182019050919050565b5f612f6c8261243b565b9150612f778361243b565b9250828203905081811115612f8f57612f8e6126a4565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613021816122e3565b82525050565b5f6130328383613018565b60208301905092915050565b5f602082019050919050565b5f61305482612fef565b61305e8185612ff9565b935061306983613009565b805f5b838110156130995781516130808882613027565b975061308b8361303e565b92505060018101905061306c565b5085935050505092915050565b5f60a0820190506130b95f8301886124d4565b6130c6602083018761298c565b81810360408301526130d8818661304a565b90506130e760608301856125ab565b6130f460808301846124d4565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6131358261243b565b91506131408361243b565b9250826131505761314f6130fe565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6131b560218361239b565b91506131c08261315b565b604082019050919050565b5f6020820190508181035f8301526131e2816131a9565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61321d601b8361239b565b9150613228826131e9565b602082019050919050565b5f6020820190508181035f83015261324a81613211565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f2947fcf804991d7b0a6646d149e28190ce24bf735fec7dde953572569575abd64736f6c63430008140033

Deployed Bytecode

0x608060405260043610610138575f3560e01c8063751039fc116100aa578063a9059cbb1161006e578063a9059cbb146103ed578063bf474bed14610429578063c876d0b914610453578063c9567bf91461047d578063dd62ed3e14610493578063ec1f3f63146104cf5761013f565b8063751039fc1461032f5780637d1db4a5146103455780638da5cb5b1461036f5780638f9a55c01461039957806395d89b41146103c35761013f565b806323b872dd116100fc57806323b872dd14610225578063313ce567146102615780633bbac5791461028b57806351bc3c85146102c757806370a08231146102dd578063715018a6146103195761013f565b806303c0f5d41461014357806306fdde031461016b578063095ea7b3146101955780630faee56f146101d157806318160ddd146101fb5761013f565b3661013f57005b5f80fd5b34801561014e575f80fd5b5061016960048036038101906101649190612353565b6104f7565b005b348015610176575f80fd5b5061017f6105e3565b60405161018c919061241b565b60405180910390f35b3480156101a0575f80fd5b506101bb60048036038101906101b6919061246e565b610620565b6040516101c891906124bb565b60405180910390f35b3480156101dc575f80fd5b506101e561063d565b6040516101f291906124e3565b60405180910390f35b348015610206575f80fd5b5061020f610643565b60405161021c91906124e3565b60405180910390f35b348015610230575f80fd5b5061024b600480360381019061024691906124fc565b610666565b60405161025891906124bb565b60405180910390f35b34801561026c575f80fd5b5061027561073a565b6040516102829190612567565b60405180910390f35b348015610296575f80fd5b506102b160048036038101906102ac9190612580565b610742565b6040516102be91906124bb565b60405180910390f35b3480156102d2575f80fd5b506102db610794565b005b3480156102e8575f80fd5b5061030360048036038101906102fe9190612580565b61082c565b60405161031091906124e3565b60405180910390f35b348015610324575f80fd5b5061032d610872565b005b34801561033a575f80fd5b506103436109c0565b005b348015610350575f80fd5b50610359610b18565b60405161036691906124e3565b60405180910390f35b34801561037a575f80fd5b50610383610b1e565b60405161039091906125ba565b60405180910390f35b3480156103a4575f80fd5b506103ad610b45565b6040516103ba91906124e3565b60405180910390f35b3480156103ce575f80fd5b506103d7610b4b565b6040516103e4919061241b565b60405180910390f35b3480156103f8575f80fd5b50610413600480360381019061040e919061246e565b610b88565b60405161042091906124bb565b60405180910390f35b348015610434575f80fd5b5061043d610ba5565b60405161044a91906124e3565b60405180910390f35b34801561045e575f80fd5b50610467610bab565b60405161047491906124bb565b60405180910390f35b348015610488575f80fd5b50610491610bbd565b005b34801561049e575f80fd5b506104b960048036038101906104b491906125d3565b6110dc565b6040516104c691906124e3565b60405180910390f35b3480156104da575f80fd5b506104f560048036038101906104f09190612611565b61115e565b005b6104ff6111db565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461058b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058290612686565b60405180910390fd5b8060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b60606040518060400160405280600481526020017f41524c4f00000000000000000000000000000000000000000000000000000000815250905090565b5f61063361062c6111db565b84846111e2565b6001905092915050565b60125481565b5f6008600a6106529190612800565b633b9aca00610661919061284a565b905090565b5f6106728484846113a5565b61072f8461067e6111db565b61072a856040518060600160405280602881526020016132526028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6106e16111db565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d7e9092919063ffffffff16565b6111e2565b600190509392505050565b5f6008905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107d56111db565b73ffffffffffffffffffffffffffffffffffffffff16146107f4575f80fd5b5f6107fe3061082c565b90505f8111156108125761081181611de0565b5b5f4790505f8111156108285761082781612067565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b61087a6111db565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610906576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108fd90612686565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109c86111db565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4b90612686565b60405180910390fd5b6008600a610a629190612800565b633b9aca00610a71919061284a565b600f819055506008600a610a859190612800565b633b9aca00610a94919061284a565b60108190555060026009819055506002600a819055505f60065f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a610af29190612800565b633b9aca00610b01919061284a565b604051610b0e91906124e3565b60405180910390a1565b600f5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60105481565b60606040518060400160405280600481526020017f41524c4f00000000000000000000000000000000000000000000000000000000815250905090565b5f610b9b610b946111db565b84846113a5565b6001905092915050565b60115481565b60065f9054906101000a900460ff1681565b610bc56111db565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4890612686565b60405180910390fd5b60148054906101000a900460ff1615610c9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c96906128d5565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610d3b3060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166008600a610d279190612800565b633b9aca00610d36919061284a565b6111e2565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610da5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dc99190612907565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e4f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e739190612907565b6040518363ffffffff1660e01b8152600401610e90929190612932565b6020604051808303815f875af1158015610eac573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ed09190612907565b60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610f573061082c565b5f80610f61610b1e565b426040518863ffffffff1660e01b8152600401610f839695949392919061299b565b60606040518083038185885af1158015610f9f573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610fc49190612a0e565b50505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401611064929190612a5e565b6020604051808303815f875af1158015611080573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110a49190612a99565b506001601460166101000a81548160ff02191690831515021790555060016014806101000a81548160ff021916908315150217905550565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661119f6111db565b73ffffffffffffffffffffffffffffffffffffffff16146111be575f80fd5b600681106111ca575f80fd5b8060098190555080600a8190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611250576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124790612b34565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036112be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b590612bc2565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161139891906124e3565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611413576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161140a90612c50565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147890612cde565b60405180910390fd5b5f81116114c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114ba90612d6c565b60405180910390fd5b5f6114cc610b1e565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561153a575061150a610b1e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611ace5760065f9054906101000a900460ff16156116c55760135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156115fd575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156116c4574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611681576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161167890612dfa565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614801561176e575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117c1575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561189a57600f5482111561180b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180290612e62565b60405180910390fd5b601054826118188561082c565b6118229190612e80565b1115611863576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185a90612efd565b60405180910390fd5b600d54600e54101561188257611878836120d0565b15611881575f80fd5b5b600e5f81548092919061189490612f1b565b91905055505b6118d660646118c8600b54600e54116118b5576007546118b9565b6009545b856120e190919063ffffffff16565b61215890919063ffffffff16565b905060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561196057503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156119e957600f548211156119aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a190612e62565b60405180910390fd5b6119e660646119d8600c54600e54116119c5576008546119c9565b600a545b856120e190919063ffffffff16565b61215890919063ffffffff16565b90505b5f6119f33061082c565b9050601460159054906101000a900460ff16158015611a5e575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015611a765750601460169054906101000a900460ff165b8015611a83575060115481115b8015611a925750600d54600e54115b15611acc57611ab4611aaf84611aaa846012546121a1565b6121a1565b611de0565b5f4790505f811115611aca57611ac947612067565b5b505b505b5f811115611bcd57611b268160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121b990919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bc491906124e3565b60405180910390a35b611c1d8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461221690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611cc0611c74828461221690919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546121b990919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611d63848661221690919063ffffffff16565b604051611d7091906124e3565b60405180910390a350505050565b5f838311158290611dc5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbc919061241b565b60405180910390fd5b505f8385611dd39190612f62565b9050809150509392505050565b6001601460156101000a81548160ff0219169083151502179055505f81031561204a5760148054906101000a900460ff161561204a575f600267ffffffffffffffff811115611e3257611e31612f95565b5b604051908082528060200260200182016040528015611e605781602001602082028036833780820191505090505b50905030815f81518110611e7757611e76612fc2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f3f9190612907565b81600181518110611f5357611f52612fc2565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611fb93060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111e2565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161201b9594939291906130a6565b5f604051808303815f87803b158015612032575f80fd5b505af1158015612044573d5f803e3d5ffd5b50505050505b5f601460156101000a81548160ff02191690831515021790555050565b600660019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156120cc573d5f803e3d5ffd5b5050565b5f80823b90505f8111915050919050565b5f8083036120f1575f9050612152565b5f82846120fe919061284a565b905082848261210d919061312b565b1461214d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612144906131cb565b60405180910390fd5b809150505b92915050565b5f61219983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061225f565b905092915050565b5f8183116121af57826121b1565b815b905092915050565b5f8082846121c79190612e80565b90508381101561220c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220390613233565b60405180910390fd5b8091505092915050565b5f61225783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611d7e565b905092915050565b5f80831182906122a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229c919061241b565b60405180910390fd5b505f83856122b3919061312b565b9050809150509392505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6122ed826122c4565b9050919050565b6122fd816122e3565b8114612307575f80fd5b50565b5f81359050612318816122f4565b92915050565b5f8115159050919050565b6123328161231e565b811461233c575f80fd5b50565b5f8135905061234d81612329565b92915050565b5f8060408385031215612369576123686122c0565b5b5f6123768582860161230a565b92505060206123878582860161233f565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156123c85780820151818401526020810190506123ad565b5f8484015250505050565b5f601f19601f8301169050919050565b5f6123ed82612391565b6123f7818561239b565b93506124078185602086016123ab565b612410816123d3565b840191505092915050565b5f6020820190508181035f83015261243381846123e3565b905092915050565b5f819050919050565b61244d8161243b565b8114612457575f80fd5b50565b5f8135905061246881612444565b92915050565b5f8060408385031215612484576124836122c0565b5b5f6124918582860161230a565b92505060206124a28582860161245a565b9150509250929050565b6124b58161231e565b82525050565b5f6020820190506124ce5f8301846124ac565b92915050565b6124dd8161243b565b82525050565b5f6020820190506124f65f8301846124d4565b92915050565b5f805f60608486031215612513576125126122c0565b5b5f6125208682870161230a565b93505060206125318682870161230a565b92505060406125428682870161245a565b9150509250925092565b5f60ff82169050919050565b6125618161254c565b82525050565b5f60208201905061257a5f830184612558565b92915050565b5f60208284031215612595576125946122c0565b5b5f6125a28482850161230a565b91505092915050565b6125b4816122e3565b82525050565b5f6020820190506125cd5f8301846125ab565b92915050565b5f80604083850312156125e9576125e86122c0565b5b5f6125f68582860161230a565b92505060206126078582860161230a565b9150509250929050565b5f60208284031215612626576126256122c0565b5b5f6126338482850161245a565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61267060208361239b565b915061267b8261263c565b602082019050919050565b5f6020820190508181035f83015261269d81612664565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561272657808604811115612702576127016126a4565b5b60018516156127115780820291505b808102905061271f856126d1565b94506126e6565b94509492505050565b5f8261273e57600190506127f9565b8161274b575f90506127f9565b8160018114612761576002811461276b5761279a565b60019150506127f9565b60ff84111561277d5761277c6126a4565b5b8360020a915084821115612794576127936126a4565b5b506127f9565b5060208310610133831016604e8410600b84101617156127cf5782820a9050838111156127ca576127c96126a4565b5b6127f9565b6127dc84848460016126dd565b925090508184048111156127f3576127f26126a4565b5b81810290505b9392505050565b5f61280a8261243b565b91506128158361254c565b92506128427fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461272f565b905092915050565b5f6128548261243b565b915061285f8361243b565b925082820261286d8161243b565b91508282048414831517612884576128836126a4565b5b5092915050565b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6128bf60178361239b565b91506128ca8261288b565b602082019050919050565b5f6020820190508181035f8301526128ec816128b3565b9050919050565b5f81519050612901816122f4565b92915050565b5f6020828403121561291c5761291b6122c0565b5b5f612929848285016128f3565b91505092915050565b5f6040820190506129455f8301856125ab565b61295260208301846125ab565b9392505050565b5f819050919050565b5f819050919050565b5f61298561298061297b84612959565b612962565b61243b565b9050919050565b6129958161296b565b82525050565b5f60c0820190506129ae5f8301896125ab565b6129bb60208301886124d4565b6129c8604083018761298c565b6129d5606083018661298c565b6129e260808301856125ab565b6129ef60a08301846124d4565b979650505050505050565b5f81519050612a0881612444565b92915050565b5f805f60608486031215612a2557612a246122c0565b5b5f612a32868287016129fa565b9350506020612a43868287016129fa565b9250506040612a54868287016129fa565b9150509250925092565b5f604082019050612a715f8301856125ab565b612a7e60208301846124d4565b9392505050565b5f81519050612a9381612329565b92915050565b5f60208284031215612aae57612aad6122c0565b5b5f612abb84828501612a85565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612b1e60248361239b565b9150612b2982612ac4565b604082019050919050565b5f6020820190508181035f830152612b4b81612b12565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612bac60228361239b565b9150612bb782612b52565b604082019050919050565b5f6020820190508181035f830152612bd981612ba0565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612c3a60258361239b565b9150612c4582612be0565b604082019050919050565b5f6020820190508181035f830152612c6781612c2e565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612cc860238361239b565b9150612cd382612c6e565b604082019050919050565b5f6020820190508181035f830152612cf581612cbc565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612d5660298361239b565b9150612d6182612cfc565b604082019050919050565b5f6020820190508181035f830152612d8381612d4a565b9050919050565b7f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f5f8201527f7765642e00000000000000000000000000000000000000000000000000000000602082015250565b5f612de460248361239b565b9150612def82612d8a565b604082019050919050565b5f6020820190508181035f830152612e1181612dd8565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612e4c60198361239b565b9150612e5782612e18565b602082019050919050565b5f6020820190508181035f830152612e7981612e40565b9050919050565b5f612e8a8261243b565b9150612e958361243b565b9250828201905080821115612ead57612eac6126a4565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612ee7601a8361239b565b9150612ef282612eb3565b602082019050919050565b5f6020820190508181035f830152612f1481612edb565b9050919050565b5f612f258261243b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612f5757612f566126a4565b5b600182019050919050565b5f612f6c8261243b565b9150612f778361243b565b9250828203905081811115612f8f57612f8e6126a4565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613021816122e3565b82525050565b5f6130328383613018565b60208301905092915050565b5f602082019050919050565b5f61305482612fef565b61305e8185612ff9565b935061306983613009565b805f5b838110156130995781516130808882613027565b975061308b8361303e565b92505060018101905061306c565b5085935050505092915050565b5f60a0820190506130b95f8301886124d4565b6130c6602083018761298c565b81810360408301526130d8818661304a565b90506130e760608301856125ab565b6130f460808301846124d4565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6131358261243b565b91506131408361243b565b9250826131505761314f6130fe565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6131b560218361239b565b91506131c08261315b565b604082019050919050565b5f6020820190508181035f8301526131e2816131a9565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f61321d601b8361239b565b9150613228826131e9565b602082019050919050565b5f6020820190508181035f83015261324a81613211565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220f2947fcf804991d7b0a6646d149e28190ce24bf735fec7dde953572569575abd64736f6c63430008140033

Deployed Bytecode Sourcemap

3557:8749:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10520:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5477:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6310:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4750:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5754:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6479:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5663:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10733;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11935:348;;;;;;;;;;;;;:::i;:::-;;5857:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2638:148;;;;;;;;;;;;;:::i;:::-;;10261:247;;;;;;;;;;;;;:::i;:::-;;4560:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2424:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4625:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5568:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5984:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4688:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3943:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11016:671;;;;;;;;;;;;;:::i;:::-;;6159:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10828:180;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10520:105;2561:12;:10;:12::i;:::-;2551:22;;:6;;;;;;;;;;:22;;;2543:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10612:5:::1;10596:4;:13;10601:7;10596:13;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10520:105:::0;;:::o;5477:83::-;5514:13;5547:5;;;;;;;;;;;;;;;;;5540:12;;5477:83;:::o;6310:161::-;6385:4;6402:39;6411:12;:10;:12::i;:::-;6425:7;6434:6;6402:8;:39::i;:::-;6459:4;6452:11;;6310:161;;;;:::o;4750:54::-;;;;:::o;5754:95::-;5807:7;4392:1;4448:2;:13;;;;:::i;:::-;4435:10;:26;;;;:::i;:::-;5827:14;;5754:95;:::o;6479:313::-;6577:4;6594:36;6604:6;6612:9;6623:6;6594:9;:36::i;:::-;6641:121;6650:6;6658:12;:10;:12::i;:::-;6672:89;6710:6;6672:89;;;;;;;;;;;;;;;;;:11;:19;6684:6;6672:19;;;;;;;;;;;;;;;:33;6692:12;:10;:12::i;:::-;6672:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6641:8;:121::i;:::-;6780:4;6773:11;;6479:313;;;;;:::o;5663:83::-;5704:5;4392:1;5722:16;;5663:83;:::o;10733:::-;10780:4;10801;:7;10806:1;10801:7;;;;;;;;;;;;;;;;;;;;;;;;;10794:14;;10733:83;;;:::o;11935:348::-;11999:10;;;;;;;;;;;11985:24;;:12;:10;:12::i;:::-;:24;;;11977:33;;;;;;12021:20;12042:24;12060:4;12042:9;:24::i;:::-;12021:45;;12093:1;12080:12;:14;12077:73;;;12108:30;12125:12;12108:16;:30::i;:::-;12077:73;12160:18;12179:21;12160:40;;12225:1;12214:10;:12;12211:65;;;12240:24;12253:10;12240:12;:24::i;:::-;12211:65;11966:317;;11935:348::o;5857:119::-;5923:7;5950:9;:18;5960:7;5950:18;;;;;;;;;;;;;;;;5943:25;;5857:119;;;:::o;2638:148::-;2561:12;:10;:12::i;:::-;2551:22;;:6;;;;;;;;;;:22;;;2543:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2745:1:::1;2708:40;;2729:6;::::0;::::1;;;;;;;;2708:40;;;;;;;;;;;;2776:1;2759:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2638:148::o:0;10261:247::-;2561:12;:10;:12::i;:::-;2551:22;;:6;;;;;;;;;;:22;;;2543:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4392:1:::1;4448:2;:13;;;;:::i;:::-;4435:10;:26;;;;:::i;:::-;10314:12;:22;;;;4392:1;4448:2;:13;;;;:::i;:::-;4435:10;:26;;;;:::i;:::-;10347:14;:22;;;;10393:1;10380:12;:14;;;;10419:1;10405:13;:15;;;;10452:5;10431:20;;:26;;;;;;;;;;;;;;;;;;10473:27;4392:1;4448:2;:13;;;;:::i;:::-;4435:10;:26;;;;:::i;:::-;10473:27;;;;;;:::i;:::-;;;;;;;;10261:247::o:0;4560:58::-;;;;:::o;2424:79::-;2462:7;2489:6;;;;;;;;;;;2482:13;;2424:79;:::o;4625:56::-;;;;:::o;5568:87::-;5607:13;5640:7;;;;;;;;;;;;;;;;;5633:14;;5568:87;:::o;5984:167::-;6062:4;6079:42;6089:12;:10;:12::i;:::-;6103:9;6114:6;6079:9;:42::i;:::-;6139:4;6132:11;;5984:167;;;;:::o;4688:55::-;;;;:::o;3943:39::-;;;;;;;;;;;;;:::o;11016:671::-;2561:12;:10;:12::i;:::-;2551:22;;:6;;;;;;;;;;:22;;;2543:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11080:11:::1;::::0;::::1;;;;;;;;11079:12;11071:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;11166:42;11129:15;;:80;;;;;;;;;;;;;;;;;;11220:58;11237:4;11252:15;;;;;;;;;;;4392:1;4448:2;:13;;;;:::i;:::-;4435:10;:26;;;;:::i;:::-;11220:8;:58::i;:::-;11323:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11305:55;;;11369:4;11376:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11305:94;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11289:13;;:110;;;;;;;;;;;;;;;;;;11410:15;;;;;;;;;;;:31;;;11449:21;11480:4;11486:24;11504:4;11486:9;:24::i;:::-;11511:1;11513::::0;11515:7:::1;:5;:7::i;:::-;11523:15;11410:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11557:13;;;;;;;;;;;11550:29;;;11588:15;;;;;;;;;;;11606:14;11550:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11646:4;11632:11;;:18;;;;;;;;;;;;;;;;;;11675:4;11661:11;::::0;:18:::1;;;;;;;;;;;;;;;;;;11016:671::o:0;6159:143::-;6240:7;6267:11;:18;6279:5;6267:18;;;;;;;;;;;;;;;:27;6286:7;6267:27;;;;;;;;;;;;;;;;6260:34;;6159:143;;;;:::o;10828:180::-;10903:10;;;;;;;;;;;10889:24;;:12;:10;:12::i;:::-;:24;;;10881:33;;;;;;10939:1;10931:7;:9;10923:18;;;;;;10963:7;10950:12;:20;;;;10993:7;10979:13;:21;;;;10828:180;:::o;179:98::-;232:7;259:10;252:17;;179:98;:::o;6800:335::-;6910:1;6893:19;;:5;:19;;;6885:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6991:1;6972:21;;:7;:21;;;6964:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7073:6;7043:11;:18;7055:5;7043:18;;;;;;;;;;;;;;;:27;7062:7;7043:27;;;;;;;;;;;;;;;:36;;;;7111:7;7095:32;;7104:5;7095:32;;;7120:6;7095:32;;;;;;:::i;:::-;;;;;;;;6800:335;;;:::o;7143:2439::-;7247:1;7231:18;;:4;:18;;;7223:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7324:1;7310:16;;:2;:16;;;7302:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7394:1;7385:6;:10;7377:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7452:17;7495:7;:5;:7::i;:::-;7487:15;;:4;:15;;;;:32;;;;;7512:7;:5;:7::i;:::-;7506:13;;:2;:13;;;;7487:32;7483:1743;;;7550:20;;;;;;;;;;;7546:346;;;7609:15;;;;;;;;;;;7595:30;;:2;:30;;;;:62;;;;;7643:13;;;;;;;;;;;7629:28;;:2;:28;;;;7595:62;7591:286;;;7730:12;7688:28;:39;7717:9;7688:39;;;;;;;;;;;;;;;;:54;7680:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;7845:12;7803:28;:39;7832:9;7803:39;;;;;;;;;;;;;;;:54;;;;7591:286;7546:346;7920:13;;;;;;;;;;;7912:21;;:4;:21;;;:55;;;;;7951:15;;;;;;;;;;;7937:30;;:2;:30;;;;7912:55;:83;;;;;7973:18;:22;7992:2;7973:22;;;;;;;;;;;;;;;;;;;;;;;;;7971:24;7912:83;7908:428;;;8035:12;;8025:6;:22;;8017:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8130:14;;8120:6;8104:13;8114:2;8104:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8096:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8207:18;;8197:9;;:28;8194:97;;;8256:14;8267:2;8256:10;:14::i;:::-;8255:15;8247:24;;;;;;8194:97;8309:9;;:11;;;;;;;;;:::i;:::-;;;;;;7908:428;8366:76;8438:3;8366:67;8388:15;;8378:9;;:25;8377:55;;8418:14;;8377:55;;;8405:12;;8377:55;8366:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8354:88;;8466:13;;;;;;;;;;;8460:19;;:2;:19;;;:43;;;;;8498:4;8483:20;;:4;:20;;;;8460:43;8457:253;;;8542:12;;8532:6;:22;;8524:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8615:79;8690:3;8615:70;8637:16;;8627:9;;:26;8626:58;;8669:15;;8626:58;;;8655:13;;8626:58;8615:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;8603:91;;8457:253;8726:28;8757:24;8775:4;8757:9;:24::i;:::-;8726:55;;8801:6;;;;;;;;;;;8800:7;:30;;;;;8817:13;;;;;;;;;;;8811:19;;:2;:19;;;8800:30;:45;;;;;8834:11;;;;;;;;;;;8800:45;:87;;;;;8870:17;;8849:20;:38;8800:87;:119;;;;;8901:18;;8891:9;;:28;8800:119;8796:419;;;8940:67;8957:49;8961:6;8968:37;8972:20;8993:11;;8968:3;:37::i;:::-;8957:3;:49::i;:::-;8940:16;:67::i;:::-;9026:26;9055:21;9026:50;;9119:1;9098:18;:22;9095:105;;;9145:35;9158:21;9145:12;:35::i;:::-;9095:105;8921:294;8796:419;7521:1705;7483:1743;9251:1;9241:9;:11;9238:161;;;9291:39;9320:9;9291;:24;9309:4;9291:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9266:9;:24;9284:4;9266:24;;;;;;;;;;;;;;;:64;;;;9371:4;9348:39;;9357:4;9348:39;;;9377:9;9348:39;;;;;;:::i;:::-;;;;;;;;9238:161;9425:27;9445:6;9425:9;:15;9435:4;9425:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9409:9;:15;9419:4;9409:15;;;;;;;;;;;;;;;:43;;;;9477:40;9495:21;9506:9;9495:6;:10;;:21;;;;:::i;:::-;9477:9;:13;9487:2;9477:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9463:9;:13;9473:2;9463:13;;;;;;;;;;;;;;;:54;;;;9548:2;9533:41;;9542:4;9533:41;;;9552:21;9563:9;9552:6;:10;;:21;;;;:::i;:::-;9533:41;;;;;;:::i;:::-;;;;;;;;7212:2370;7143:2439;;;:::o;1316:190::-;1402:7;1435:1;1430;:6;;1438:12;1422:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1462:9;1478:1;1474;:5;;;;:::i;:::-;1462:17;;1497:1;1490:8;;;1316:190;;;;;:::o;9698:555::-;5095:4;5086:6;;:13;;;;;;;;;;;;;;;;;;9792:1:::1;9779:11;:14:::0;9776:27;9795:7:::1;9776:27;9817:11;::::0;::::1;;;;;;;;9813:25:::0;9830:7:::1;9813:25;9848:21;9886:1;9872:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9848:40;;9917:4;9899;9904:1;9899:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9943:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9933:4;9938:1;9933:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9976:62;9993:4;10008:15;;;;;;;;;;;10026:11;9976:8;:62::i;:::-;10049:15;;;;;;;;;;;:66;;;10130:11;10156:1;10172:4;10199;10219:15;10049:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9765:488;5110:1;5131:5:::0;5122:6;;:14;;;;;;;;;;;;;;;;;;9698:555;:::o;10633:92::-;10690:10;;;;;;;;;;;:19;;:27;10710:6;10690:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10633:92;:::o;11732:195::-;11791:4;11808:12;11875:7;11863:20;11855:28;;11918:1;11911:4;:8;11904:15;;;11732:195;;;:::o;1514:246::-;1572:7;1601:1;1596;:6;1592:47;;1626:1;1619:8;;;;1592:47;1649:9;1665:1;1661;:5;;;;:::i;:::-;1649:17;;1694:1;1689;1685;:5;;;;:::i;:::-;:10;1677:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1751:1;1744:8;;;1514:246;;;;;:::o;1768:132::-;1826:7;1853:39;1857:1;1860;1853:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1846:46;;1768:132;;;;:::o;9592:98::-;9649:7;9676:1;9674;:3;9673:9;;9681:1;9673:9;;;9679:1;9673:9;9666:16;;9592:98;;;;:::o;985:179::-;1043:7;1063:9;1079:1;1075;:5;;;;:::i;:::-;1063:17;;1104:1;1099;:6;;1091:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1155:1;1148:8;;;985:179;;;;:::o;1172:136::-;1230:7;1257:43;1261:1;1264;1257:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1250:50;;1172:136;;;;:::o;1908:189::-;1994:7;2026:1;2022;:5;2029:12;2014:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2053:9;2069:1;2065;:5;;;;:::i;:::-;2053:17;;2088:1;2081:8;;;1908:189;;;;;:::o;88:117:1:-;197:1;194;187:12;334:126;371:7;411:42;404:5;400:54;389:65;;334:126;;;:::o;466:96::-;503:7;532:24;550:5;532:24;:::i;:::-;521:35;;466:96;;;:::o;568:122::-;641:24;659:5;641:24;:::i;:::-;634:5;631:35;621:63;;680:1;677;670:12;621:63;568:122;:::o;696:139::-;742:5;780:6;767:20;758:29;;796:33;823:5;796:33;:::i;:::-;696:139;;;;:::o;841:90::-;875:7;918:5;911:13;904:21;893:32;;841:90;;;:::o;937:116::-;1007:21;1022:5;1007:21;:::i;:::-;1000:5;997:32;987:60;;1043:1;1040;1033:12;987:60;937:116;:::o;1059:133::-;1102:5;1140:6;1127:20;1118:29;;1156:30;1180:5;1156:30;:::i;:::-;1059:133;;;;:::o;1198:468::-;1263:6;1271;1320:2;1308:9;1299:7;1295:23;1291:32;1288:119;;;1326:79;;:::i;:::-;1288:119;1446:1;1471:53;1516:7;1507:6;1496:9;1492:22;1471:53;:::i;:::-;1461:63;;1417:117;1573:2;1599:50;1641:7;1632:6;1621:9;1617:22;1599:50;:::i;:::-;1589:60;;1544:115;1198:468;;;;;:::o;1672:99::-;1724:6;1758:5;1752:12;1742:22;;1672:99;;;:::o;1777:169::-;1861:11;1895:6;1890:3;1883:19;1935:4;1930:3;1926:14;1911:29;;1777:169;;;;:::o;1952:246::-;2033:1;2043:113;2057:6;2054:1;2051:13;2043:113;;;2142:1;2137:3;2133:11;2127:18;2123:1;2118:3;2114:11;2107:39;2079:2;2076:1;2072:10;2067:15;;2043:113;;;2190:1;2181:6;2176:3;2172:16;2165:27;2014:184;1952:246;;;:::o;2204:102::-;2245:6;2296:2;2292:7;2287:2;2280:5;2276:14;2272:28;2262:38;;2204:102;;;:::o;2312:377::-;2400:3;2428:39;2461:5;2428:39;:::i;:::-;2483:71;2547:6;2542:3;2483:71;:::i;:::-;2476:78;;2563:65;2621:6;2616:3;2609:4;2602:5;2598:16;2563:65;:::i;:::-;2653:29;2675:6;2653:29;:::i;:::-;2648:3;2644:39;2637:46;;2404:285;2312:377;;;;:::o;2695:313::-;2808:4;2846:2;2835:9;2831:18;2823:26;;2895:9;2889:4;2885:20;2881:1;2870:9;2866:17;2859:47;2923:78;2996:4;2987:6;2923:78;:::i;:::-;2915:86;;2695:313;;;;:::o;3014:77::-;3051:7;3080:5;3069:16;;3014:77;;;:::o;3097:122::-;3170:24;3188:5;3170:24;:::i;:::-;3163:5;3160:35;3150:63;;3209:1;3206;3199:12;3150:63;3097:122;:::o;3225:139::-;3271:5;3309:6;3296:20;3287:29;;3325:33;3352:5;3325:33;:::i;:::-;3225:139;;;;:::o;3370:474::-;3438:6;3446;3495:2;3483:9;3474:7;3470:23;3466:32;3463:119;;;3501:79;;:::i;:::-;3463:119;3621:1;3646:53;3691:7;3682:6;3671:9;3667:22;3646:53;:::i;:::-;3636:63;;3592:117;3748:2;3774:53;3819:7;3810:6;3799:9;3795:22;3774:53;:::i;:::-;3764:63;;3719:118;3370:474;;;;;:::o;3850:109::-;3931:21;3946:5;3931:21;:::i;:::-;3926:3;3919:34;3850:109;;:::o;3965:210::-;4052:4;4090:2;4079:9;4075:18;4067:26;;4103:65;4165:1;4154:9;4150:17;4141:6;4103:65;:::i;:::-;3965:210;;;;:::o;4181:118::-;4268:24;4286:5;4268:24;:::i;:::-;4263:3;4256:37;4181:118;;:::o;4305:222::-;4398:4;4436:2;4425:9;4421:18;4413:26;;4449:71;4517:1;4506:9;4502:17;4493:6;4449:71;:::i;:::-;4305:222;;;;:::o;4533:619::-;4610:6;4618;4626;4675:2;4663:9;4654:7;4650:23;4646:32;4643:119;;;4681:79;;:::i;:::-;4643:119;4801:1;4826:53;4871:7;4862:6;4851:9;4847:22;4826:53;:::i;:::-;4816:63;;4772:117;4928:2;4954:53;4999:7;4990:6;4979:9;4975:22;4954:53;:::i;:::-;4944:63;;4899:118;5056:2;5082:53;5127:7;5118:6;5107:9;5103:22;5082:53;:::i;:::-;5072:63;;5027:118;4533:619;;;;;:::o;5158:86::-;5193:7;5233:4;5226:5;5222:16;5211:27;;5158:86;;;:::o;5250:112::-;5333:22;5349:5;5333:22;:::i;:::-;5328:3;5321:35;5250:112;;:::o;5368:214::-;5457:4;5495:2;5484:9;5480:18;5472:26;;5508:67;5572:1;5561:9;5557:17;5548:6;5508:67;:::i;:::-;5368:214;;;;:::o;5588:329::-;5647:6;5696:2;5684:9;5675:7;5671:23;5667:32;5664:119;;;5702:79;;:::i;:::-;5664:119;5822:1;5847:53;5892:7;5883:6;5872:9;5868:22;5847:53;:::i;:::-;5837:63;;5793:117;5588:329;;;;:::o;5923:118::-;6010:24;6028:5;6010:24;:::i;:::-;6005:3;5998:37;5923:118;;:::o;6047:222::-;6140:4;6178:2;6167:9;6163:18;6155:26;;6191:71;6259:1;6248:9;6244:17;6235:6;6191:71;:::i;:::-;6047:222;;;;:::o;6275:474::-;6343:6;6351;6400:2;6388:9;6379:7;6375:23;6371:32;6368:119;;;6406:79;;:::i;:::-;6368:119;6526:1;6551:53;6596:7;6587:6;6576:9;6572:22;6551:53;:::i;:::-;6541:63;;6497:117;6653:2;6679:53;6724:7;6715:6;6704:9;6700:22;6679:53;:::i;:::-;6669:63;;6624:118;6275:474;;;;;:::o;6755:329::-;6814:6;6863:2;6851:9;6842:7;6838:23;6834:32;6831:119;;;6869:79;;:::i;:::-;6831:119;6989:1;7014:53;7059:7;7050:6;7039:9;7035:22;7014:53;:::i;:::-;7004:63;;6960:117;6755:329;;;;:::o;7090:182::-;7230:34;7226:1;7218:6;7214:14;7207:58;7090:182;:::o;7278:366::-;7420:3;7441:67;7505:2;7500:3;7441:67;:::i;:::-;7434:74;;7517:93;7606:3;7517:93;:::i;:::-;7635:2;7630:3;7626:12;7619:19;;7278:366;;;:::o;7650:419::-;7816:4;7854:2;7843:9;7839:18;7831:26;;7903:9;7897:4;7893:20;7889:1;7878:9;7874:17;7867:47;7931:131;8057:4;7931:131;:::i;:::-;7923:139;;7650:419;;;:::o;8075:180::-;8123:77;8120:1;8113:88;8220:4;8217:1;8210:15;8244:4;8241:1;8234:15;8261:102;8303:8;8350:5;8347:1;8343:13;8322:34;;8261:102;;;:::o;8369:848::-;8430:5;8437:4;8461:6;8452:15;;8485:5;8476:14;;8499:712;8520:1;8510:8;8507:15;8499:712;;;8615:4;8610:3;8606:14;8600:4;8597:24;8594:50;;;8624:18;;:::i;:::-;8594:50;8674:1;8664:8;8660:16;8657:451;;;9089:4;9082:5;9078:16;9069:25;;8657:451;9139:4;9133;9129:15;9121:23;;9169:32;9192:8;9169:32;:::i;:::-;9157:44;;8499:712;;;8369:848;;;;;;;:::o;9223:1073::-;9277:5;9468:8;9458:40;;9489:1;9480:10;;9491:5;;9458:40;9517:4;9507:36;;9534:1;9525:10;;9536:5;;9507:36;9603:4;9651:1;9646:27;;;;9687:1;9682:191;;;;9596:277;;9646:27;9664:1;9655:10;;9666:5;;;9682:191;9727:3;9717:8;9714:17;9711:43;;;9734:18;;:::i;:::-;9711:43;9783:8;9780:1;9776:16;9767:25;;9818:3;9811:5;9808:14;9805:40;;;9825:18;;:::i;:::-;9805:40;9858:5;;;9596:277;;9982:2;9972:8;9969:16;9963:3;9957:4;9954:13;9950:36;9932:2;9922:8;9919:16;9914:2;9908:4;9905:12;9901:35;9885:111;9882:246;;;10038:8;10032:4;10028:19;10019:28;;10073:3;10066:5;10063:14;10060:40;;;10080:18;;:::i;:::-;10060:40;10113:5;;9882:246;10153:42;10191:3;10181:8;10175:4;10172:1;10153:42;:::i;:::-;10138:57;;;;10227:4;10222:3;10218:14;10211:5;10208:25;10205:51;;;10236:18;;:::i;:::-;10205:51;10285:4;10278:5;10274:16;10265:25;;9223:1073;;;;;;:::o;10302:281::-;10360:5;10384:23;10402:4;10384:23;:::i;:::-;10376:31;;10428:25;10444:8;10428:25;:::i;:::-;10416:37;;10472:104;10509:66;10499:8;10493:4;10472:104;:::i;:::-;10463:113;;10302:281;;;;:::o;10589:410::-;10629:7;10652:20;10670:1;10652:20;:::i;:::-;10647:25;;10686:20;10704:1;10686:20;:::i;:::-;10681:25;;10741:1;10738;10734:9;10763:30;10781:11;10763:30;:::i;:::-;10752:41;;10942:1;10933:7;10929:15;10926:1;10923:22;10903:1;10896:9;10876:83;10853:139;;10972:18;;:::i;:::-;10853:139;10637:362;10589:410;;;;:::o;11005:173::-;11145:25;11141:1;11133:6;11129:14;11122:49;11005:173;:::o;11184:366::-;11326:3;11347:67;11411:2;11406:3;11347:67;:::i;:::-;11340:74;;11423:93;11512:3;11423:93;:::i;:::-;11541:2;11536:3;11532:12;11525:19;;11184:366;;;:::o;11556:419::-;11722:4;11760:2;11749:9;11745:18;11737:26;;11809:9;11803:4;11799:20;11795:1;11784:9;11780:17;11773:47;11837:131;11963:4;11837:131;:::i;:::-;11829:139;;11556:419;;;:::o;11981:143::-;12038:5;12069:6;12063:13;12054:22;;12085:33;12112:5;12085:33;:::i;:::-;11981:143;;;;:::o;12130:351::-;12200:6;12249:2;12237:9;12228:7;12224:23;12220:32;12217:119;;;12255:79;;:::i;:::-;12217:119;12375:1;12400:64;12456:7;12447:6;12436:9;12432:22;12400:64;:::i;:::-;12390:74;;12346:128;12130:351;;;;:::o;12487:332::-;12608:4;12646:2;12635:9;12631:18;12623:26;;12659:71;12727:1;12716:9;12712:17;12703:6;12659:71;:::i;:::-;12740:72;12808:2;12797:9;12793:18;12784:6;12740:72;:::i;:::-;12487:332;;;;;:::o;12825:85::-;12870:7;12899:5;12888:16;;12825:85;;;:::o;12916:60::-;12944:3;12965:5;12958:12;;12916:60;;;:::o;12982:158::-;13040:9;13073:61;13091:42;13100:32;13126:5;13100:32;:::i;:::-;13091:42;:::i;:::-;13073:61;:::i;:::-;13060:74;;12982:158;;;:::o;13146:147::-;13241:45;13280:5;13241:45;:::i;:::-;13236:3;13229:58;13146:147;;:::o;13299:807::-;13548:4;13586:3;13575:9;13571:19;13563:27;;13600:71;13668:1;13657:9;13653:17;13644:6;13600:71;:::i;:::-;13681:72;13749:2;13738:9;13734:18;13725:6;13681:72;:::i;:::-;13763:80;13839:2;13828:9;13824:18;13815:6;13763:80;:::i;:::-;13853;13929:2;13918:9;13914:18;13905:6;13853:80;:::i;:::-;13943:73;14011:3;14000:9;13996:19;13987:6;13943:73;:::i;:::-;14026;14094:3;14083:9;14079:19;14070:6;14026:73;:::i;:::-;13299:807;;;;;;;;;:::o;14112:143::-;14169:5;14200:6;14194:13;14185:22;;14216:33;14243:5;14216:33;:::i;:::-;14112:143;;;;:::o;14261:663::-;14349:6;14357;14365;14414:2;14402:9;14393:7;14389:23;14385:32;14382:119;;;14420:79;;:::i;:::-;14382:119;14540:1;14565:64;14621:7;14612:6;14601:9;14597:22;14565:64;:::i;:::-;14555:74;;14511:128;14678:2;14704:64;14760:7;14751:6;14740:9;14736:22;14704:64;:::i;:::-;14694:74;;14649:129;14817:2;14843:64;14899:7;14890:6;14879:9;14875:22;14843:64;:::i;:::-;14833:74;;14788:129;14261:663;;;;;:::o;14930:332::-;15051:4;15089:2;15078:9;15074:18;15066:26;;15102:71;15170:1;15159:9;15155:17;15146:6;15102:71;:::i;:::-;15183:72;15251:2;15240:9;15236:18;15227:6;15183:72;:::i;:::-;14930:332;;;;;:::o;15268:137::-;15322:5;15353:6;15347:13;15338:22;;15369:30;15393:5;15369:30;:::i;:::-;15268:137;;;;:::o;15411:345::-;15478:6;15527:2;15515:9;15506:7;15502:23;15498:32;15495:119;;;15533:79;;:::i;:::-;15495:119;15653:1;15678:61;15731:7;15722:6;15711:9;15707:22;15678:61;:::i;:::-;15668:71;;15624:125;15411:345;;;;:::o;15762:223::-;15902:34;15898:1;15890:6;15886:14;15879:58;15971:6;15966:2;15958:6;15954:15;15947:31;15762:223;:::o;15991:366::-;16133:3;16154:67;16218:2;16213:3;16154:67;:::i;:::-;16147:74;;16230:93;16319:3;16230:93;:::i;:::-;16348:2;16343:3;16339:12;16332:19;;15991:366;;;:::o;16363:419::-;16529:4;16567:2;16556:9;16552:18;16544:26;;16616:9;16610:4;16606:20;16602:1;16591:9;16587:17;16580:47;16644:131;16770:4;16644:131;:::i;:::-;16636:139;;16363:419;;;:::o;16788:221::-;16928:34;16924:1;16916:6;16912:14;16905:58;16997:4;16992:2;16984:6;16980:15;16973:29;16788:221;:::o;17015:366::-;17157:3;17178:67;17242:2;17237:3;17178:67;:::i;:::-;17171:74;;17254:93;17343:3;17254:93;:::i;:::-;17372:2;17367:3;17363:12;17356:19;;17015:366;;;:::o;17387:419::-;17553:4;17591:2;17580:9;17576:18;17568:26;;17640:9;17634:4;17630:20;17626:1;17615:9;17611:17;17604:47;17668:131;17794:4;17668:131;:::i;:::-;17660:139;;17387:419;;;:::o;17812:224::-;17952:34;17948:1;17940:6;17936:14;17929:58;18021:7;18016:2;18008:6;18004:15;17997:32;17812:224;:::o;18042:366::-;18184:3;18205:67;18269:2;18264:3;18205:67;:::i;:::-;18198:74;;18281:93;18370:3;18281:93;:::i;:::-;18399:2;18394:3;18390:12;18383:19;;18042:366;;;:::o;18414:419::-;18580:4;18618:2;18607:9;18603:18;18595:26;;18667:9;18661:4;18657:20;18653:1;18642:9;18638:17;18631:47;18695:131;18821:4;18695:131;:::i;:::-;18687:139;;18414:419;;;:::o;18839:222::-;18979:34;18975:1;18967:6;18963:14;18956:58;19048:5;19043:2;19035:6;19031:15;19024:30;18839:222;:::o;19067:366::-;19209:3;19230:67;19294:2;19289:3;19230:67;:::i;:::-;19223:74;;19306:93;19395:3;19306:93;:::i;:::-;19424:2;19419:3;19415:12;19408:19;;19067:366;;;:::o;19439:419::-;19605:4;19643:2;19632:9;19628:18;19620:26;;19692:9;19686:4;19682:20;19678:1;19667:9;19663:17;19656:47;19720:131;19846:4;19720:131;:::i;:::-;19712:139;;19439:419;;;:::o;19864:228::-;20004:34;20000:1;19992:6;19988:14;19981:58;20073:11;20068:2;20060:6;20056:15;20049:36;19864:228;:::o;20098:366::-;20240:3;20261:67;20325:2;20320:3;20261:67;:::i;:::-;20254:74;;20337:93;20426:3;20337:93;:::i;:::-;20455:2;20450:3;20446:12;20439:19;;20098:366;;;:::o;20470:419::-;20636:4;20674:2;20663:9;20659:18;20651:26;;20723:9;20717:4;20713:20;20709:1;20698:9;20694:17;20687:47;20751:131;20877:4;20751:131;:::i;:::-;20743:139;;20470:419;;;:::o;20895:223::-;21035:34;21031:1;21023:6;21019:14;21012:58;21104:6;21099:2;21091:6;21087:15;21080:31;20895:223;:::o;21124:366::-;21266:3;21287:67;21351:2;21346:3;21287:67;:::i;:::-;21280:74;;21363:93;21452:3;21363:93;:::i;:::-;21481:2;21476:3;21472:12;21465:19;;21124:366;;;:::o;21496:419::-;21662:4;21700:2;21689:9;21685:18;21677:26;;21749:9;21743:4;21739:20;21735:1;21724:9;21720:17;21713:47;21777:131;21903:4;21777:131;:::i;:::-;21769:139;;21496:419;;;:::o;21921:175::-;22061:27;22057:1;22049:6;22045:14;22038:51;21921:175;:::o;22102:366::-;22244:3;22265:67;22329:2;22324:3;22265:67;:::i;:::-;22258:74;;22341:93;22430:3;22341:93;:::i;:::-;22459:2;22454:3;22450:12;22443:19;;22102:366;;;:::o;22474:419::-;22640:4;22678:2;22667:9;22663:18;22655:26;;22727:9;22721:4;22717:20;22713:1;22702:9;22698:17;22691:47;22755:131;22881:4;22755:131;:::i;:::-;22747:139;;22474:419;;;:::o;22899:191::-;22939:3;22958:20;22976:1;22958:20;:::i;:::-;22953:25;;22992:20;23010:1;22992:20;:::i;:::-;22987:25;;23035:1;23032;23028:9;23021:16;;23056:3;23053:1;23050:10;23047:36;;;23063:18;;:::i;:::-;23047:36;22899:191;;;;:::o;23096:176::-;23236:28;23232:1;23224:6;23220:14;23213:52;23096:176;:::o;23278:366::-;23420:3;23441:67;23505:2;23500:3;23441:67;:::i;:::-;23434:74;;23517:93;23606:3;23517:93;:::i;:::-;23635:2;23630:3;23626:12;23619:19;;23278:366;;;:::o;23650:419::-;23816:4;23854:2;23843:9;23839:18;23831:26;;23903:9;23897:4;23893:20;23889:1;23878:9;23874:17;23867:47;23931:131;24057:4;23931:131;:::i;:::-;23923:139;;23650:419;;;:::o;24075:233::-;24114:3;24137:24;24155:5;24137:24;:::i;:::-;24128:33;;24183:66;24176:5;24173:77;24170:103;;24253:18;;:::i;:::-;24170:103;24300:1;24293:5;24289:13;24282:20;;24075:233;;;:::o;24314:194::-;24354:4;24374:20;24392:1;24374:20;:::i;:::-;24369:25;;24408:20;24426:1;24408:20;:::i;:::-;24403:25;;24452:1;24449;24445:9;24437:17;;24476:1;24470:4;24467:11;24464:37;;;24481:18;;:::i;:::-;24464:37;24314:194;;;;:::o;24514:180::-;24562:77;24559:1;24552:88;24659:4;24656:1;24649:15;24683:4;24680:1;24673:15;24700:180;24748:77;24745:1;24738:88;24845:4;24842:1;24835:15;24869:4;24866:1;24859:15;24886:114;24953:6;24987:5;24981:12;24971:22;;24886:114;;;:::o;25006:184::-;25105:11;25139:6;25134:3;25127:19;25179:4;25174:3;25170:14;25155:29;;25006:184;;;;:::o;25196:132::-;25263:4;25286:3;25278:11;;25316:4;25311:3;25307:14;25299:22;;25196:132;;;:::o;25334:108::-;25411:24;25429:5;25411:24;:::i;:::-;25406:3;25399:37;25334:108;;:::o;25448:179::-;25517:10;25538:46;25580:3;25572:6;25538:46;:::i;:::-;25616:4;25611:3;25607:14;25593:28;;25448:179;;;;:::o;25633:113::-;25703:4;25735;25730:3;25726:14;25718:22;;25633:113;;;:::o;25782:732::-;25901:3;25930:54;25978:5;25930:54;:::i;:::-;26000:86;26079:6;26074:3;26000:86;:::i;:::-;25993:93;;26110:56;26160:5;26110:56;:::i;:::-;26189:7;26220:1;26205:284;26230:6;26227:1;26224:13;26205:284;;;26306:6;26300:13;26333:63;26392:3;26377:13;26333:63;:::i;:::-;26326:70;;26419:60;26472:6;26419:60;:::i;:::-;26409:70;;26265:224;26252:1;26249;26245:9;26240:14;;26205:284;;;26209:14;26505:3;26498:10;;25906:608;;;25782:732;;;;:::o;26520:831::-;26783:4;26821:3;26810:9;26806:19;26798:27;;26835:71;26903:1;26892:9;26888:17;26879:6;26835:71;:::i;:::-;26916:80;26992:2;26981:9;26977:18;26968:6;26916:80;:::i;:::-;27043:9;27037:4;27033:20;27028:2;27017:9;27013:18;27006:48;27071:108;27174:4;27165:6;27071:108;:::i;:::-;27063:116;;27189:72;27257:2;27246:9;27242:18;27233:6;27189:72;:::i;:::-;27271:73;27339:3;27328:9;27324:19;27315:6;27271:73;:::i;:::-;26520:831;;;;;;;;:::o;27357:180::-;27405:77;27402:1;27395:88;27502:4;27499:1;27492:15;27526:4;27523:1;27516:15;27543:185;27583:1;27600:20;27618:1;27600:20;:::i;:::-;27595:25;;27634:20;27652:1;27634:20;:::i;:::-;27629:25;;27673:1;27663:35;;27678:18;;:::i;:::-;27663:35;27720:1;27717;27713:9;27708:14;;27543:185;;;;:::o;27734:220::-;27874:34;27870:1;27862:6;27858:14;27851:58;27943:3;27938:2;27930:6;27926:15;27919:28;27734:220;:::o;27960:366::-;28102:3;28123:67;28187:2;28182:3;28123:67;:::i;:::-;28116:74;;28199:93;28288:3;28199:93;:::i;:::-;28317:2;28312:3;28308:12;28301:19;;27960:366;;;:::o;28332:419::-;28498:4;28536:2;28525:9;28521:18;28513:26;;28585:9;28579:4;28575:20;28571:1;28560:9;28556:17;28549:47;28613:131;28739:4;28613:131;:::i;:::-;28605:139;;28332:419;;;:::o;28757:177::-;28897:29;28893:1;28885:6;28881:14;28874:53;28757:177;:::o;28940:366::-;29082:3;29103:67;29167:2;29162:3;29103:67;:::i;:::-;29096:74;;29179:93;29268:3;29179:93;:::i;:::-;29297:2;29292:3;29288:12;29281:19;;28940:366;;;:::o;29312:419::-;29478:4;29516:2;29505:9;29501:18;29493:26;;29565:9;29559:4;29555:20;29551:1;29540:9;29536:17;29529:47;29593:131;29719:4;29593:131;:::i;:::-;29585:139;;29312:419;;;:::o

Swarm Source

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