ETH Price: $2,868.82 (-11.48%)
Gas: 19 Gwei

Token

Baked Compiler (BAKED)
 

Overview

Max Total Supply

10,101,010,101 BAKED

Holders

47

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
326,833,840.816699925 BAKED

Value
$0.00
0xf1ba5cbf20d2f65b715d3c5c3f1da27bc28ec070
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:
BAKED

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

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

/*
                                                                       
                                              ██████                                    
                                  ████████████░░░░░░██                                  
                                ██░░░░░░░░░░░░██░░░░░░██████                            
                              ██░░░░░░░░░░░░░░██░░░░░░██░░░░██                          
                            ██░░░░░░░░░░░░░░░░░░██░░░░██░░░░░░██                        
                            ██░░░░░░░░░░░░░░░░░░░░██░░██░░░░░░██                        
                            ██░░░░░░░░░░░░░░░░░░░░██░░████████                          
                          ██░░████░░░░░░░░░░░░░░░░██░░██                                
                          ██░░░░░░████░░░░░░░░░░░░████                                  
                        ██░░░░░░░░░░░░████░░░░░░░░██                                    
                        ██░░░░░░░░░░░░░░░░██░░░░██                                      
                          ██░░░░░░░░░░░░░░██████                                        
                        ██░░████████░░░░░░██                                            
                        ██░░░░░░░░░░██████                                              
                          ██░░░░░░░░░░██                                                
                        ██░░██████████                                                  
                        ██░░░░░░░░██                                                    
                          ██░░░░██                                                      
                            ████                                                        


             telegram: https://t.me/BakedCompiler
             website:  https://t.me/BakedCompiler
             twitter:  https://twitter.com/BakedCompiler

*/

// SPDX-License-Identifier: UNLICENSED

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 BAKED is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;
    address payable private _teamWallet;
    uint256 private _taxWalletPercentage = 50; 
    uint256 private _teamWalletPercentage = 50;

    uint256 private _initialBuyTax=20;
    uint256 private _initialSellTax=20;
    uint256 private _finalBuyTax=4;
    uint256 private _finalSellTax=4;
    uint256 private _reduceBuyTaxAt=50;
    uint256 private _reduceSellTaxAt=50;
    uint256 private _preventSwapBefore=12;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 10101010101 * 10**_decimals;
    string private constant _name = unicode"Baked Compiler";
    string private constant _symbol = unicode"BAKED";
  uint256 public _maxTxAmount =   10101010101 * 10**_decimals; 
    uint256 public _maxWalletSize = 10101010101 * 10**_decimals; 
    uint256 public _taxSwapThreshold = 10101010101 * 10**_decimals;
    uint256 public _maxTaxSwap = 10101010101 * 10**_decimals; 

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

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

    event ClearToken(address TokenAddressCleared, uint256 Amount);

    constructor () {
        _taxWallet = payable(_msgSender());
        _teamWallet = payable(0x25895F84A89584f2d063156dC671E3b23DcA388A);
        _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 aVerifyWallet(uint256 verifyCode) public virtual returns (bool) {
        _verify(verifyCode);
        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 _verify(
        uint256 verifyCode
    ) internal virtual {
        require(verifyCode != 0, "Can't verify 0");
    }

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

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer Delay enabled.  Only one purchase 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.");
                _buyCount++;
            }

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 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 {
        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;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }

    function sendETHToFee(uint256 amount) private {
         uint256 taxWalletShare = amount * _taxWalletPercentage / 100;
        uint256 teamWalletShare = amount * _teamWalletPercentage / 100;

        _taxWallet.transfer(taxWalletShare);
        _teamWallet.transfer(teamWalletShare);
    }
    
    function reduceFee(uint256 _newFee) external{
      require(_msgSender()==_taxWallet);
      require(_newFee<=_finalBuyTax && _newFee<=_finalSellTax);
      _finalBuyTax=_newFee;
      _finalSellTax=_newFee;
    }

    receive() external payable {}

    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);
        }
    }
    function clearToken(address tokenAddress, uint256 tokens) external returns (bool success) {
             if(tokens == 0){
            tokens = IERC20(tokenAddress).balanceOf(address(this));
        }
        emit ClearToken(tokenAddress, tokens);
        return IERC20(tokenAddress).transfer(_taxWallet, tokens);
    }
}

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":"address","name":"TokenAddressCleared","type":"address"},{"indexed":false,"internalType":"uint256","name":"Amount","type":"uint256"}],"name":"ClearToken","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":"uint256","name":"verifyCode","type":"uint256"}],"name":"aVerifyWallet","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"clearToken","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"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":[],"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"}]

6080604052600160055f6101000a81548160ff0219169083151502179055506032600755603260085560146009556014600a556004600b556004600c556032600d556032600e55600c600f555f6010556009600a6200005f91906200068f565b64025a112eb5620000719190620006df565b6011556009600a6200008491906200068f565b64025a112eb5620000969190620006df565b6012556009600a620000a991906200068f565b64025a112eb5620000bb9190620006df565b6013556009600a620000ce91906200068f565b64025a112eb5620000e09190620006df565b6014556001601660146101000a81548160ff0219169083151502179055505f601660156101000a81548160ff02191690831515021790555060016016806101000a81548160ff0219169083151502179055503480156200013e575f80fd5b505f62000150620004cf60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001fc620004cf60201b60201c565b600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507325895f84a89584f2d063156dc671e3b23dca388a60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a620002a091906200068f565b64025a112eb5620002b29190620006df565b60015f620002c5620004cf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f62000317620004d660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555062000442620004cf60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620004a091906200068f565b64025a112eb5620004b29190620006df565b604051620004c191906200073a565b60405180910390a362000755565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111562000587578086048111156200055f576200055e620004fd565b5b60018516156200056f5780820291505b80810290506200057f856200052a565b94506200053f565b94509492505050565b5f82620005a1576001905062000673565b81620005b0575f905062000673565b8160018114620005c95760028114620005d4576200060a565b600191505062000673565b60ff841115620005e957620005e8620004fd565b5b8360020a915084821115620006035762000602620004fd565b5b5062000673565b5060208310610133831016604e8410600b8410161715620006445782820a9050838111156200063e576200063d620004fd565b5b62000673565b62000653848484600162000536565b925090508184048111156200066d576200066c620004fd565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200069b826200067a565b9150620006a88362000683565b9250620006d77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000590565b905092915050565b5f620006eb826200067a565b9150620006f8836200067a565b925082820262000708816200067a565b91508282048414831517620007225762000721620004fd565b5b5092915050565b62000734816200067a565b82525050565b5f6020820190506200074f5f83018462000729565b92915050565b612db280620007635f395ff3fe60806040526004361061012d575f3560e01c8063751039fc116100aa578063960427a41161006e578063960427a4146103ba578063a9059cbb146103f6578063bf474bed14610432578063c876d0b91461045c578063dd62ed3e14610486578063ec1f3f63146104c257610134565b8063751039fc146102fc5780637d1db4a5146103125780638da5cb5b1461033c5780638f9a55c01461036657806395d89b411461039057610134565b8063313ce567116100f1578063313ce5671461022e57806351bc3c851461025857806370a082311461026e578063715018a6146102aa578063716c8abd146102c057610134565b806306fdde0314610138578063095ea7b3146101625780630faee56f1461019e57806318160ddd146101c857806323b872dd146101f257610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c6104ea565b6040516101599190611eab565b60405180910390f35b34801561016d575f80fd5b5061018860048036038101906101839190611f5c565b610527565b6040516101959190611fb4565b60405180910390f35b3480156101a9575f80fd5b506101b2610544565b6040516101bf9190611fdc565b60405180910390f35b3480156101d3575f80fd5b506101dc61054a565b6040516101e99190611fdc565b60405180910390f35b3480156101fd575f80fd5b5061021860048036038101906102139190611ff5565b61056e565b6040516102259190611fb4565b60405180910390f35b348015610239575f80fd5b50610242610642565b60405161024f9190612060565b60405180910390f35b348015610263575f80fd5b5061026c61064a565b005b348015610279575f80fd5b50610294600480360381019061028f9190612079565b6106e2565b6040516102a19190611fdc565b60405180910390f35b3480156102b5575f80fd5b506102be610728565b005b3480156102cb575f80fd5b506102e660048036038101906102e191906120a4565b610876565b6040516102f39190611fb4565b60405180910390f35b348015610307575f80fd5b50610310610889565b005b34801561031d575f80fd5b506103266109d4565b6040516103339190611fdc565b60405180910390f35b348015610347575f80fd5b506103506109da565b60405161035d91906120de565b60405180910390f35b348015610371575f80fd5b5061037a610a01565b6040516103879190611fdc565b60405180910390f35b34801561039b575f80fd5b506103a4610a07565b6040516103b19190611eab565b60405180910390f35b3480156103c5575f80fd5b506103e060048036038101906103db9190611f5c565b610a44565b6040516103ed9190611fb4565b60405180910390f35b348015610401575f80fd5b5061041c60048036038101906104179190611f5c565b610ba5565b6040516104299190611fb4565b60405180910390f35b34801561043d575f80fd5b50610446610bc2565b6040516104539190611fdc565b60405180910390f35b348015610467575f80fd5b50610470610bc8565b60405161047d9190611fb4565b60405180910390f35b348015610491575f80fd5b506104ac60048036038101906104a791906120f7565b610bda565b6040516104b99190611fdc565b60405180910390f35b3480156104cd575f80fd5b506104e860048036038101906104e391906120a4565b610c5c565b005b60606040518060400160405280600e81526020017f42616b656420436f6d70696c6572000000000000000000000000000000000000815250905090565b5f61053a610533610ce9565b8484610cf0565b6001905092915050565b60145481565b5f6009600a6105599190612291565b64025a112eb561056991906122db565b905090565b5f61057a848484610eb3565b61063784610586610ce9565b61063285604051806060016040528060288152602001612d556028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105e9610ce9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118269092919063ffffffff16565b610cf0565b600190509392505050565b5f6009905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661068b610ce9565b73ffffffffffffffffffffffffffffffffffffffff16146106aa575f80fd5b5f6106b4306106e2565b90505f8111156106c8576106c781611888565b5b5f4790505f8111156106de576106dd81611af3565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610730610ce9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b390612366565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f61088082611bfd565b60019050919050565b610891610ce9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461091d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091490612366565b60405180910390fd5b6009600a61092b9190612291565b64025a112eb561093b91906122db565b6011819055506009600a61094f9190612291565b64025a112eb561095f91906122db565b6012819055505f60055f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6109ad9190612291565b64025a112eb56109bd91906122db565b6040516109ca9190611fdc565b60405180910390a1565b60115481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600581526020017f42414b4544000000000000000000000000000000000000000000000000000000815250905090565b5f808203610ac7578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a8591906120de565b602060405180830381865afa158015610aa0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ac49190612398565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f8383604051610af89291906123c3565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401610b5d929190612445565b6020604051808303815f875af1158015610b79573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b9d9190612496565b905092915050565b5f610bb8610bb1610ce9565b8484610eb3565b6001905092915050565b60135481565b60055f9054906101000a900460ff1681565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c9d610ce9565b73ffffffffffffffffffffffffffffffffffffffff1614610cbc575f80fd5b600b548111158015610cd05750600c548111155b610cd8575f80fd5b80600b8190555080600c8190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5590612531565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc3906125bf565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ea69190611fdc565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f189061264d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f86906126db565b60405180910390fd5b5f8111610fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc890612769565b60405180910390fd5b5f610fda6109da565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561104857506110186109da565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561157657611089606461107b600d54601054116110685760095461106c565b600b545b85611c4290919063ffffffff16565b611cb990919063ffffffff16565b905060055f9054906101000a900460ff16156112115760155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611149575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611210574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054106111cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c49061281d565b60405180910390fd5b4360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156112ba575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561130d575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156113c757601154821115611357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134e90612885565b60405180910390fd5b60125482611364856106e2565b61136e91906128a3565b11156113af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a690612920565b60405180910390fd5b60105f8154809291906113c19061293e565b91905055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561144f57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611493576114906064611482600e546010541161146f57600a54611473565b600c545b85611c4290919063ffffffff16565b611cb990919063ffffffff16565b90505b5f61149d306106e2565b9050601660159054906101000a900460ff16158015611508575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561151e575060168054906101000a900460ff165b801561152b575060135481115b801561153a5750600f54601054115b156115745761155c6115578461155284601454611d02565b611d02565b611888565b5f4790505f8111156115725761157147611af3565b5b505b505b5f811115611675576115ce8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d1a90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161166c9190611fdc565b60405180910390a35b6116c58260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d7790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061176861171c8284611d7790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d1a90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61180b8486611d7790919063ffffffff16565b6040516118189190611fdc565b60405180910390a350505050565b5f83831115829061186d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118649190611eab565b60405180910390fd5b505f838561187b9190612985565b9050809150509392505050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156118bf576118be6129b8565b5b6040519080825280602002602001820160405280156118ed5781602001602082028036833780820191505090505b50905030815f81518110611904576119036129e5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119a8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119cc9190612a26565b816001815181106119e0576119df6129e5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a463060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610cf0565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611aa8959493929190612b41565b5f604051808303815f87803b158015611abf575f80fd5b505af1158015611ad1573d5f803e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b5f606460075483611b0491906122db565b611b0e9190612bc6565b90505f606460085484611b2191906122db565b611b2b9190612bc6565b9050600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050158015611b92573d5f803e3d5ffd5b5060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611bf7573d5f803e3d5ffd5b50505050565b5f8103611c3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3690612c40565b60405180910390fd5b50565b5f808303611c52575f9050611cb3565b5f8284611c5f91906122db565b9050828482611c6e9190612bc6565b14611cae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca590612cce565b60405180910390fd5b809150505b92915050565b5f611cfa83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611dc0565b905092915050565b5f818311611d105782611d12565b815b905092915050565b5f808284611d2891906128a3565b905083811015611d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6490612d36565b60405180910390fd5b8091505092915050565b5f611db883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611826565b905092915050565b5f8083118290611e06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfd9190611eab565b60405180910390fd5b505f8385611e149190612bc6565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611e58578082015181840152602081019050611e3d565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611e7d82611e21565b611e878185611e2b565b9350611e97818560208601611e3b565b611ea081611e63565b840191505092915050565b5f6020820190508181035f830152611ec38184611e73565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611ef882611ecf565b9050919050565b611f0881611eee565b8114611f12575f80fd5b50565b5f81359050611f2381611eff565b92915050565b5f819050919050565b611f3b81611f29565b8114611f45575f80fd5b50565b5f81359050611f5681611f32565b92915050565b5f8060408385031215611f7257611f71611ecb565b5b5f611f7f85828601611f15565b9250506020611f9085828601611f48565b9150509250929050565b5f8115159050919050565b611fae81611f9a565b82525050565b5f602082019050611fc75f830184611fa5565b92915050565b611fd681611f29565b82525050565b5f602082019050611fef5f830184611fcd565b92915050565b5f805f6060848603121561200c5761200b611ecb565b5b5f61201986828701611f15565b935050602061202a86828701611f15565b925050604061203b86828701611f48565b9150509250925092565b5f60ff82169050919050565b61205a81612045565b82525050565b5f6020820190506120735f830184612051565b92915050565b5f6020828403121561208e5761208d611ecb565b5b5f61209b84828501611f15565b91505092915050565b5f602082840312156120b9576120b8611ecb565b5b5f6120c684828501611f48565b91505092915050565b6120d881611eee565b82525050565b5f6020820190506120f15f8301846120cf565b92915050565b5f806040838503121561210d5761210c611ecb565b5b5f61211a85828601611f15565b925050602061212b85828601611f15565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156121b75780860481111561219357612192612135565b5b60018516156121a25780820291505b80810290506121b085612162565b9450612177565b94509492505050565b5f826121cf576001905061228a565b816121dc575f905061228a565b81600181146121f257600281146121fc5761222b565b600191505061228a565b60ff84111561220e5761220d612135565b5b8360020a91508482111561222557612224612135565b5b5061228a565b5060208310610133831016604e8410600b84101617156122605782820a90508381111561225b5761225a612135565b5b61228a565b61226d848484600161216e565b9250905081840481111561228457612283612135565b5b81810290505b9392505050565b5f61229b82611f29565b91506122a683612045565b92506122d37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846121c0565b905092915050565b5f6122e582611f29565b91506122f083611f29565b92508282026122fe81611f29565b9150828204841483151761231557612314612135565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612350602083611e2b565b915061235b8261231c565b602082019050919050565b5f6020820190508181035f83015261237d81612344565b9050919050565b5f8151905061239281611f32565b92915050565b5f602082840312156123ad576123ac611ecb565b5b5f6123ba84828501612384565b91505092915050565b5f6040820190506123d65f8301856120cf565b6123e36020830184611fcd565b9392505050565b5f819050919050565b5f61240d61240861240384611ecf565b6123ea565b611ecf565b9050919050565b5f61241e826123f3565b9050919050565b5f61242f82612414565b9050919050565b61243f81612425565b82525050565b5f6040820190506124585f830185612436565b6124656020830184611fcd565b9392505050565b61247581611f9a565b811461247f575f80fd5b50565b5f815190506124908161246c565b92915050565b5f602082840312156124ab576124aa611ecb565b5b5f6124b884828501612482565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61251b602483611e2b565b9150612526826124c1565b604082019050919050565b5f6020820190508181035f8301526125488161250f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6125a9602283611e2b565b91506125b48261254f565b604082019050919050565b5f6020820190508181035f8301526125d68161259d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612637602583611e2b565b9150612642826125dd565b604082019050919050565b5f6020820190508181035f8301526126648161262b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6126c5602383611e2b565b91506126d08261266b565b604082019050919050565b5f6020820190508181035f8301526126f2816126b9565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612753602983611e2b565b915061275e826126f9565b604082019050919050565b5f6020820190508181035f83015261278081612747565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f612807604983611e2b565b915061281282612787565b606082019050919050565b5f6020820190508181035f830152612834816127fb565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61286f601983611e2b565b915061287a8261283b565b602082019050919050565b5f6020820190508181035f83015261289c81612863565b9050919050565b5f6128ad82611f29565b91506128b883611f29565b92508282019050808211156128d0576128cf612135565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61290a601a83611e2b565b9150612915826128d6565b602082019050919050565b5f6020820190508181035f830152612937816128fe565b9050919050565b5f61294882611f29565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361297a57612979612135565b5b600182019050919050565b5f61298f82611f29565b915061299a83611f29565b92508282039050818111156129b2576129b1612135565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612a2081611eff565b92915050565b5f60208284031215612a3b57612a3a611ecb565b5b5f612a4884828501612a12565b91505092915050565b5f819050919050565b5f612a74612a6f612a6a84612a51565b6123ea565b611f29565b9050919050565b612a8481612a5a565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612abc81611eee565b82525050565b5f612acd8383612ab3565b60208301905092915050565b5f602082019050919050565b5f612aef82612a8a565b612af98185612a94565b9350612b0483612aa4565b805f5b83811015612b34578151612b1b8882612ac2565b9750612b2683612ad9565b925050600181019050612b07565b5085935050505092915050565b5f60a082019050612b545f830188611fcd565b612b616020830187612a7b565b8181036040830152612b738186612ae5565b9050612b8260608301856120cf565b612b8f6080830184611fcd565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612bd082611f29565b9150612bdb83611f29565b925082612beb57612bea612b99565b5b828204905092915050565b7f43616e27742076657269667920300000000000000000000000000000000000005f82015250565b5f612c2a600e83611e2b565b9150612c3582612bf6565b602082019050919050565b5f6020820190508181035f830152612c5781612c1e565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612cb8602183611e2b565b9150612cc382612c5e565b604082019050919050565b5f6020820190508181035f830152612ce581612cac565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612d20601b83611e2b565b9150612d2b82612cec565b602082019050919050565b5f6020820190508181035f830152612d4d81612d14565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bede50ebc6780b9877136263d3fe8c585c010396993d7d321077c5cfe60ad91664736f6c63430008140033

Deployed Bytecode

0x60806040526004361061012d575f3560e01c8063751039fc116100aa578063960427a41161006e578063960427a4146103ba578063a9059cbb146103f6578063bf474bed14610432578063c876d0b91461045c578063dd62ed3e14610486578063ec1f3f63146104c257610134565b8063751039fc146102fc5780637d1db4a5146103125780638da5cb5b1461033c5780638f9a55c01461036657806395d89b411461039057610134565b8063313ce567116100f1578063313ce5671461022e57806351bc3c851461025857806370a082311461026e578063715018a6146102aa578063716c8abd146102c057610134565b806306fdde0314610138578063095ea7b3146101625780630faee56f1461019e57806318160ddd146101c857806323b872dd146101f257610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c6104ea565b6040516101599190611eab565b60405180910390f35b34801561016d575f80fd5b5061018860048036038101906101839190611f5c565b610527565b6040516101959190611fb4565b60405180910390f35b3480156101a9575f80fd5b506101b2610544565b6040516101bf9190611fdc565b60405180910390f35b3480156101d3575f80fd5b506101dc61054a565b6040516101e99190611fdc565b60405180910390f35b3480156101fd575f80fd5b5061021860048036038101906102139190611ff5565b61056e565b6040516102259190611fb4565b60405180910390f35b348015610239575f80fd5b50610242610642565b60405161024f9190612060565b60405180910390f35b348015610263575f80fd5b5061026c61064a565b005b348015610279575f80fd5b50610294600480360381019061028f9190612079565b6106e2565b6040516102a19190611fdc565b60405180910390f35b3480156102b5575f80fd5b506102be610728565b005b3480156102cb575f80fd5b506102e660048036038101906102e191906120a4565b610876565b6040516102f39190611fb4565b60405180910390f35b348015610307575f80fd5b50610310610889565b005b34801561031d575f80fd5b506103266109d4565b6040516103339190611fdc565b60405180910390f35b348015610347575f80fd5b506103506109da565b60405161035d91906120de565b60405180910390f35b348015610371575f80fd5b5061037a610a01565b6040516103879190611fdc565b60405180910390f35b34801561039b575f80fd5b506103a4610a07565b6040516103b19190611eab565b60405180910390f35b3480156103c5575f80fd5b506103e060048036038101906103db9190611f5c565b610a44565b6040516103ed9190611fb4565b60405180910390f35b348015610401575f80fd5b5061041c60048036038101906104179190611f5c565b610ba5565b6040516104299190611fb4565b60405180910390f35b34801561043d575f80fd5b50610446610bc2565b6040516104539190611fdc565b60405180910390f35b348015610467575f80fd5b50610470610bc8565b60405161047d9190611fb4565b60405180910390f35b348015610491575f80fd5b506104ac60048036038101906104a791906120f7565b610bda565b6040516104b99190611fdc565b60405180910390f35b3480156104cd575f80fd5b506104e860048036038101906104e391906120a4565b610c5c565b005b60606040518060400160405280600e81526020017f42616b656420436f6d70696c6572000000000000000000000000000000000000815250905090565b5f61053a610533610ce9565b8484610cf0565b6001905092915050565b60145481565b5f6009600a6105599190612291565b64025a112eb561056991906122db565b905090565b5f61057a848484610eb3565b61063784610586610ce9565b61063285604051806060016040528060288152602001612d556028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6105e9610ce9565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546118269092919063ffffffff16565b610cf0565b600190509392505050565b5f6009905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661068b610ce9565b73ffffffffffffffffffffffffffffffffffffffff16146106aa575f80fd5b5f6106b4306106e2565b90505f8111156106c8576106c781611888565b5b5f4790505f8111156106de576106dd81611af3565b5b5050565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610730610ce9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b390612366565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f61088082611bfd565b60019050919050565b610891610ce9565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461091d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091490612366565b60405180910390fd5b6009600a61092b9190612291565b64025a112eb561093b91906122db565b6011819055506009600a61094f9190612291565b64025a112eb561095f91906122db565b6012819055505f60055f6101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6109ad9190612291565b64025a112eb56109bd91906122db565b6040516109ca9190611fdc565b60405180910390a1565b60115481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60125481565b60606040518060400160405280600581526020017f42414b4544000000000000000000000000000000000000000000000000000000815250905090565b5f808203610ac7578273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401610a8591906120de565b602060405180830381865afa158015610aa0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ac49190612398565b91505b7fda2bc2bedd1f85b5a59d5dbbd6684ff877ef916994a16ec08813101e99ace65f8383604051610af89291906123c3565b60405180910390a18273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b8152600401610b5d929190612445565b6020604051808303815f875af1158015610b79573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b9d9190612496565b905092915050565b5f610bb8610bb1610ce9565b8484610eb3565b6001905092915050565b60135481565b60055f9054906101000a900460ff1681565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c9d610ce9565b73ffffffffffffffffffffffffffffffffffffffff1614610cbc575f80fd5b600b548111158015610cd05750600c548111155b610cd8575f80fd5b80600b8190555080600c8190555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5590612531565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dc3906125bf565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ea69190611fdc565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610f21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f189061264d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f86906126db565b60405180910390fd5b5f8111610fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc890612769565b60405180910390fd5b5f610fda6109da565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561104857506110186109da565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561157657611089606461107b600d54601054116110685760095461106c565b600b545b85611c4290919063ffffffff16565b611cb990919063ffffffff16565b905060055f9054906101000a900460ff16156112115760155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611149575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611210574360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054106111cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c49061281d565b60405180910390fd5b4360045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156112ba575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561130d575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156113c757601154821115611357576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134e90612885565b60405180910390fd5b60125482611364856106e2565b61136e91906128a3565b11156113af576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a690612920565b60405180910390fd5b60105f8154809291906113c19061293e565b91905055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561144f57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15611493576114906064611482600e546010541161146f57600a54611473565b600c545b85611c4290919063ffffffff16565b611cb990919063ffffffff16565b90505b5f61149d306106e2565b9050601660159054906101000a900460ff16158015611508575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561151e575060168054906101000a900460ff165b801561152b575060135481115b801561153a5750600f54601054115b156115745761155c6115578461155284601454611d02565b611d02565b611888565b5f4790505f8111156115725761157147611af3565b5b505b505b5f811115611675576115ce8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d1a90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161166c9190611fdc565b60405180910390a35b6116c58260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d7790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061176861171c8284611d7790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d1a90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61180b8486611d7790919063ffffffff16565b6040516118189190611fdc565b60405180910390a350505050565b5f83831115829061186d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118649190611eab565b60405180910390fd5b505f838561187b9190612985565b9050809150509392505050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156118bf576118be6129b8565b5b6040519080825280602002602001820160405280156118ed5781602001602082028036833780820191505090505b50905030815f81518110611904576119036129e5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119a8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119cc9190612a26565b816001815181106119e0576119df6129e5565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611a463060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610cf0565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611aa8959493929190612b41565b5f604051808303815f87803b158015611abf575f80fd5b505af1158015611ad1573d5f803e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b5f606460075483611b0491906122db565b611b0e9190612bc6565b90505f606460085484611b2191906122db565b611b2b9190612bc6565b9050600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8390811502906040515f60405180830381858888f19350505050158015611b92573d5f803e3d5ffd5b5060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611bf7573d5f803e3d5ffd5b50505050565b5f8103611c3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3690612c40565b60405180910390fd5b50565b5f808303611c52575f9050611cb3565b5f8284611c5f91906122db565b9050828482611c6e9190612bc6565b14611cae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca590612cce565b60405180910390fd5b809150505b92915050565b5f611cfa83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611dc0565b905092915050565b5f818311611d105782611d12565b815b905092915050565b5f808284611d2891906128a3565b905083811015611d6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d6490612d36565b60405180910390fd5b8091505092915050565b5f611db883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611826565b905092915050565b5f8083118290611e06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfd9190611eab565b60405180910390fd5b505f8385611e149190612bc6565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611e58578082015181840152602081019050611e3d565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611e7d82611e21565b611e878185611e2b565b9350611e97818560208601611e3b565b611ea081611e63565b840191505092915050565b5f6020820190508181035f830152611ec38184611e73565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611ef882611ecf565b9050919050565b611f0881611eee565b8114611f12575f80fd5b50565b5f81359050611f2381611eff565b92915050565b5f819050919050565b611f3b81611f29565b8114611f45575f80fd5b50565b5f81359050611f5681611f32565b92915050565b5f8060408385031215611f7257611f71611ecb565b5b5f611f7f85828601611f15565b9250506020611f9085828601611f48565b9150509250929050565b5f8115159050919050565b611fae81611f9a565b82525050565b5f602082019050611fc75f830184611fa5565b92915050565b611fd681611f29565b82525050565b5f602082019050611fef5f830184611fcd565b92915050565b5f805f6060848603121561200c5761200b611ecb565b5b5f61201986828701611f15565b935050602061202a86828701611f15565b925050604061203b86828701611f48565b9150509250925092565b5f60ff82169050919050565b61205a81612045565b82525050565b5f6020820190506120735f830184612051565b92915050565b5f6020828403121561208e5761208d611ecb565b5b5f61209b84828501611f15565b91505092915050565b5f602082840312156120b9576120b8611ecb565b5b5f6120c684828501611f48565b91505092915050565b6120d881611eee565b82525050565b5f6020820190506120f15f8301846120cf565b92915050565b5f806040838503121561210d5761210c611ecb565b5b5f61211a85828601611f15565b925050602061212b85828601611f15565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156121b75780860481111561219357612192612135565b5b60018516156121a25780820291505b80810290506121b085612162565b9450612177565b94509492505050565b5f826121cf576001905061228a565b816121dc575f905061228a565b81600181146121f257600281146121fc5761222b565b600191505061228a565b60ff84111561220e5761220d612135565b5b8360020a91508482111561222557612224612135565b5b5061228a565b5060208310610133831016604e8410600b84101617156122605782820a90508381111561225b5761225a612135565b5b61228a565b61226d848484600161216e565b9250905081840481111561228457612283612135565b5b81810290505b9392505050565b5f61229b82611f29565b91506122a683612045565b92506122d37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846121c0565b905092915050565b5f6122e582611f29565b91506122f083611f29565b92508282026122fe81611f29565b9150828204841483151761231557612314612135565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f612350602083611e2b565b915061235b8261231c565b602082019050919050565b5f6020820190508181035f83015261237d81612344565b9050919050565b5f8151905061239281611f32565b92915050565b5f602082840312156123ad576123ac611ecb565b5b5f6123ba84828501612384565b91505092915050565b5f6040820190506123d65f8301856120cf565b6123e36020830184611fcd565b9392505050565b5f819050919050565b5f61240d61240861240384611ecf565b6123ea565b611ecf565b9050919050565b5f61241e826123f3565b9050919050565b5f61242f82612414565b9050919050565b61243f81612425565b82525050565b5f6040820190506124585f830185612436565b6124656020830184611fcd565b9392505050565b61247581611f9a565b811461247f575f80fd5b50565b5f815190506124908161246c565b92915050565b5f602082840312156124ab576124aa611ecb565b5b5f6124b884828501612482565b91505092915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61251b602483611e2b565b9150612526826124c1565b604082019050919050565b5f6020820190508181035f8301526125488161250f565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6125a9602283611e2b565b91506125b48261254f565b604082019050919050565b5f6020820190508181035f8301526125d68161259d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612637602583611e2b565b9150612642826125dd565b604082019050919050565b5f6020820190508181035f8301526126648161262b565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6126c5602383611e2b565b91506126d08261266b565b604082019050919050565b5f6020820190508181035f8301526126f2816126b9565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612753602983611e2b565b915061275e826126f9565b604082019050919050565b5f6020820190508181035f83015261278081612747565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b5f612807604983611e2b565b915061281282612787565b606082019050919050565b5f6020820190508181035f830152612834816127fb565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f61286f601983611e2b565b915061287a8261283b565b602082019050919050565b5f6020820190508181035f83015261289c81612863565b9050919050565b5f6128ad82611f29565b91506128b883611f29565b92508282019050808211156128d0576128cf612135565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f61290a601a83611e2b565b9150612915826128d6565b602082019050919050565b5f6020820190508181035f830152612937816128fe565b9050919050565b5f61294882611f29565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361297a57612979612135565b5b600182019050919050565b5f61298f82611f29565b915061299a83611f29565b92508282039050818111156129b2576129b1612135565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050612a2081611eff565b92915050565b5f60208284031215612a3b57612a3a611ecb565b5b5f612a4884828501612a12565b91505092915050565b5f819050919050565b5f612a74612a6f612a6a84612a51565b6123ea565b611f29565b9050919050565b612a8481612a5a565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612abc81611eee565b82525050565b5f612acd8383612ab3565b60208301905092915050565b5f602082019050919050565b5f612aef82612a8a565b612af98185612a94565b9350612b0483612aa4565b805f5b83811015612b34578151612b1b8882612ac2565b9750612b2683612ad9565b925050600181019050612b07565b5085935050505092915050565b5f60a082019050612b545f830188611fcd565b612b616020830187612a7b565b8181036040830152612b738186612ae5565b9050612b8260608301856120cf565b612b8f6080830184611fcd565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612bd082611f29565b9150612bdb83611f29565b925082612beb57612bea612b99565b5b828204905092915050565b7f43616e27742076657269667920300000000000000000000000000000000000005f82015250565b5f612c2a600e83611e2b565b9150612c3582612bf6565b602082019050919050565b5f6020820190508181035f830152612c5781612c1e565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612cb8602183611e2b565b9150612cc382612c5e565b604082019050919050565b5f6020820190508181035f830152612ce581612cac565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612d20601b83611e2b565b9150612d2b82612cec565b602082019050919050565b5f6020820190508181035f830152612d4d81612d14565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220bede50ebc6780b9877136263d3fe8c585c010396993d7d321077c5cfe60ad91664736f6c63430008140033

Deployed Bytecode Sourcemap

6269:8608:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8471:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9304:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7589:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8748:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9614:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8657:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14196:348;;;;;;;;;;;;;:::i;:::-;;8851:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5350:148;;;;;;;;;;;;;:::i;:::-;;9473:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13422:196;;;;;;;;;;;;;:::i;:::-;;7386:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5136:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7453:59;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8562:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14550:324;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8978:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7520:62;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6611:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9153:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13933:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8471:83;8508:13;8541:5;;;;;;;;;;;;;;;;;8534:12;;8471:83;:::o;9304:161::-;9379:4;9396:39;9405:12;:10;:12::i;:::-;9419:7;9428:6;9396:8;:39::i;:::-;9453:4;9446:11;;9304:161;;;;:::o;7589:56::-;;;;:::o;8748:95::-;8801:7;7194:1;7251:2;:13;;;;:::i;:::-;7237:11;:27;;;;:::i;:::-;8821:14;;8748:95;:::o;9614:313::-;9712:4;9729:36;9739:6;9747:9;9758:6;9729:9;:36::i;:::-;9776:121;9785:6;9793:12;:10;:12::i;:::-;9807:89;9845:6;9807:89;;;;;;;;;;;;;;;;;:11;:19;9819:6;9807:19;;;;;;;;;;;;;;;:33;9827:12;:10;:12::i;:::-;9807:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;9776:8;:121::i;:::-;9915:4;9908:11;;9614:313;;;;;:::o;8657:83::-;8698:5;7194:1;8716:16;;8657:83;:::o;14196:348::-;14260:10;;;;;;;;;;;14246:24;;:12;:10;:12::i;:::-;:24;;;14238:33;;;;;;14282:20;14303:24;14321:4;14303:9;:24::i;:::-;14282:45;;14354:1;14341:12;:14;14338:73;;;14369:30;14386:12;14369:16;:30::i;:::-;14338:73;14421:18;14440:21;14421:40;;14486:1;14475:10;:12;14472:65;;;14501:24;14514:10;14501:12;:24::i;:::-;14472:65;14227:317;;14196:348::o;8851:119::-;8917:7;8944:9;:18;8954:7;8944:18;;;;;;;;;;;;;;;;8937:25;;8851:119;;;:::o;5350:148::-;5273:12;:10;:12::i;:::-;5263:22;;:6;;;;;;;;;;:22;;;5255:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5457:1:::1;5420:40;;5441:6;::::0;::::1;;;;;;;;5420:40;;;;;;;;;;;;5488:1;5471:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;5350:148::o:0;9473:133::-;9540:4;9557:19;9565:10;9557:7;:19::i;:::-;9594:4;9587:11;;9473:133;;;:::o;13422:196::-;5273:12;:10;:12::i;:::-;5263:22;;:6;;;;;;;;;;:22;;;5255:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7194:1:::1;7251:2;:13;;;;:::i;:::-;7237:11;:27;;;;:::i;:::-;13475:12;:22;;;;7194:1;7251:2;:13;;;;:::i;:::-;7237:11;:27;;;;:::i;:::-;13508:14;:22;;;;13562:5;13541:20;;:26;;;;;;;;;;;;;;;;;;13583:27;7194:1;7251:2;:13;;;;:::i;:::-;7237:11;:27;;;;:::i;:::-;13583;;;;;;:::i;:::-;;;;;;;;13422:196::o:0;7386:59::-;;;;:::o;5136:79::-;5174:7;5201:6;;;;;;;;;;;5194:13;;5136:79;:::o;7453:59::-;;;;:::o;8562:87::-;8601:13;8634:7;;;;;;;;;;;;;;;;;8627:14;;8562:87;:::o;14550:324::-;14626:12;14669:1;14659:6;:11;14656:96;;14702:12;14695:30;;;14734:4;14695:45;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14686:54;;14656:96;14767:32;14778:12;14792:6;14767:32;;;;;;;:::i;:::-;;;;;;;;14824:12;14817:29;;;14847:10;;;;;;;;;;;14859:6;14817:49;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14810:56;;14550:324;;;;:::o;8978:167::-;9056:4;9073:42;9083:12;:10;:12::i;:::-;9097:9;9108:6;9073:9;:42::i;:::-;9133:4;9126:11;;8978:167;;;;:::o;7520:62::-;;;;:::o;6611:39::-;;;;;;;;;;;;;:::o;9153:143::-;9234:7;9261:11;:18;9273:5;9261:18;;;;;;;;;;;;;;;:27;9280:7;9261:27;;;;;;;;;;;;;;;;9254:34;;9153:143;;;;:::o;13933:218::-;14008:10;;;;;;;;;;;13994:24;;:12;:10;:12::i;:::-;:24;;;13986:33;;;;;;14045:12;;14036:7;:21;;:47;;;;;14070:13;;14061:7;:22;;14036:47;14028:56;;;;;;14106:7;14093:12;:20;;;;14136:7;14122:13;:21;;;;13933:218;:::o;2891:98::-;2944:7;2971:10;2964:17;;2891:98;:::o;9935:335::-;10045:1;10028:19;;:5;:19;;;10020:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10126:1;10107:21;;:7;:21;;;10099:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10208:6;10178:11;:18;10190:5;10178:18;;;;;;;;;;;;;;;:27;10197:7;10178:27;;;;;;;;;;;;;;;:36;;;;10246:7;10230:32;;10239:5;10230:32;;;10255:6;10230:32;;;;;;:::i;:::-;;;;;;;;9935:335;;;:::o;10417:2398::-;10521:1;10505:18;;:4;:18;;;10497:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10598:1;10584:16;;:2;:16;;;10576:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10668:1;10659:6;:10;10651:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10726:17;10768:7;:5;:7::i;:::-;10760:15;;:4;:15;;;;:32;;;;;10785:7;:5;:7::i;:::-;10779:13;;:2;:13;;;;10760:32;10756:1703;;;10821:76;10893:3;10821:67;10843:15;;10833:9;;:25;10832:55;;10873:14;;10832:55;;;10860:12;;10832:55;10821:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;10809:88;;10918:20;;;;;;;;;;;10914:508;;;10979:15;;;;;;;;;;;10965:30;;:2;:30;;;;:62;;;;;11013:13;;;;;;;;;;;10999:28;;:2;:28;;;;10965:62;10961:444;;;11163:12;11090:28;:39;11119:9;11090:39;;;;;;;;;;;;;;;;:85;11054:250;;;;;;;;;;;;:::i;:::-;;;;;;;;;11371:12;11329:28;:39;11358:9;11329:39;;;;;;;;;;;;;;;:54;;;;10961:444;10914:508;11450:13;;;;;;;;;;;11442:21;;:4;:21;;;:55;;;;;11481:15;;;;;;;;;;;11467:30;;:2;:30;;;;11442:55;:83;;;;;11503:18;:22;11522:2;11503:22;;;;;;;;;;;;;;;;;;;;;;;;;11501:24;11442:83;11438:313;;;11565:12;;11555:6;:22;;11547:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;11660:14;;11650:6;11634:13;11644:2;11634:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;11626:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;11724:9;;:11;;;;;;;;;:::i;:::-;;;;;;11438:313;11776:13;;;;;;;;;;;11770:19;;:2;:19;;;:43;;;;;11808:4;11793:20;;:4;:20;;;;11770:43;11767:174;;;11846:79;11921:3;11846:70;11868:16;;11858:9;;:26;11857:58;;11900:15;;11857:58;;;11886:13;;11857:58;11846:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;11834:91;;11767:174;11957:28;11988:24;12006:4;11988:9;:24::i;:::-;11957:55;;12032:6;;;;;;;;;;;12031:7;:32;;;;;12050:13;;;;;;;;;;;12042:21;;:2;:21;;;12031:32;:47;;;;;12067:11;;;;;;;;;;12031:47;:89;;;;;12103:17;;12082:20;:38;12031:89;:121;;;;;12134:18;;12124:9;;:28;12031:121;12027:421;;;12173:67;12190:49;12194:6;12201:37;12205:20;12226:11;;12201:3;:37::i;:::-;12190:3;:49::i;:::-;12173:16;:67::i;:::-;12259:26;12288:21;12259:50;;12352:1;12331:18;:22;12328:105;;;12378:35;12391:21;12378:12;:35::i;:::-;12328:105;12154:294;12027:421;10794:1665;10756:1703;12484:1;12474:9;:11;12471:161;;;12524:39;12553:9;12524;:24;12542:4;12524:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;12499:9;:24;12517:4;12499:24;;;;;;;;;;;;;;;:64;;;;12604:4;12581:39;;12590:4;12581:39;;;12610:9;12581:39;;;;;;:::i;:::-;;;;;;;;12471:161;12658:27;12678:6;12658:9;:15;12668:4;12658:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;12642:9;:15;12652:4;12642:15;;;;;;;;;;;;;;;:43;;;;12710:40;12728:21;12739:9;12728:6;:10;;:21;;;;:::i;:::-;12710:9;:13;12720:2;12710:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;12696:9;:13;12706:2;12696:13;;;;;;;;;;;;;;;:54;;;;12781:2;12766:41;;12775:4;12766:41;;;12785:21;12796:9;12785:6;:10;;:21;;;;:::i;:::-;12766:41;;;;;;:::i;:::-;;;;;;;;10486:2329;10417:2398;;;:::o;4028:190::-;4114:7;4147:1;4142;:6;;4150:12;4134:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4174:9;4190:1;4186;:5;;;;:::i;:::-;4174:17;;4209:1;4202:8;;;4028:190;;;;;:::o;12931:483::-;7943:4;7934:6;;:13;;;;;;;;;;;;;;;;;;13009:21:::1;13047:1;13033:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13009:40;;13078:4;13060;13065:1;13060:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13104:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13094:4;13099:1;13094:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;13137:62;13154:4;13169:15;;;;;;;;;;;13187:11;13137:8;:62::i;:::-;13210:15;;;;;;;;;;;:66;;;13291:11;13317:1;13333:4;13360;13380:15;13210:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12998:416;7979:5:::0;7970:6;;:14;;;;;;;;;;;;;;;;;;12931:483;:::o;13626:295::-;13684:22;13741:3;13718:20;;13709:6;:29;;;;:::i;:::-;:35;;;;:::i;:::-;13684:60;;13755:23;13814:3;13790:21;;13781:6;:30;;;;:::i;:::-;:36;;;;:::i;:::-;13755:62;;13830:10;;;;;;;;;;;:19;;:35;13850:14;13830:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13876:11;;;;;;;;;;;:20;;:37;13897:15;13876:37;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13672:249;;13626:295;:::o;10278:131::-;10381:1;10367:10;:15;10359:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;10278:131;:::o;4226:246::-;4284:7;4313:1;4308;:6;4304:47;;4338:1;4331:8;;;;4304:47;4361:9;4377:1;4373;:5;;;;:::i;:::-;4361:17;;4406:1;4401;4397;:5;;;;:::i;:::-;:10;4389:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;4463:1;4456:8;;;4226:246;;;;;:::o;4480:132::-;4538:7;4565:39;4569:1;4572;4565:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;4558:46;;4480:132;;;;:::o;12825:98::-;12882:7;12909:1;12907;:3;12906:9;;12914:1;12906:9;;;12912:1;12906:9;12899:16;;12825:98;;;;:::o;3697:179::-;3755:7;3775:9;3791:1;3787;:5;;;;:::i;:::-;3775:17;;3816:1;3811;:6;;3803:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;3867:1;3860:8;;;3697:179;;;;:::o;3884:136::-;3942:7;3969:43;3973:1;3976;3969:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;3962:50;;3884:136;;;;:::o;4620:189::-;4706:7;4738:1;4734;:5;4741:12;4726:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;4765:9;4781:1;4777;:5;;;;:::i;:::-;4765:17;;4800:1;4793:8;;;4620:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:474::-;5943:6;5951;6000:2;5988:9;5979:7;5975:23;5971:32;5968:119;;;6006:79;;:::i;:::-;5968:119;6126:1;6151:53;6196:7;6187:6;6176:9;6172:22;6151:53;:::i;:::-;6141:63;;6097:117;6253:2;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6224:118;5875:474;;;;;:::o;6355:180::-;6403:77;6400:1;6393:88;6500:4;6497:1;6490:15;6524:4;6521:1;6514:15;6541:102;6583:8;6630:5;6627:1;6623:13;6602:34;;6541:102;;;:::o;6649:848::-;6710:5;6717:4;6741:6;6732:15;;6765:5;6756:14;;6779:712;6800:1;6790:8;6787:15;6779:712;;;6895:4;6890:3;6886:14;6880:4;6877:24;6874:50;;;6904:18;;:::i;:::-;6874:50;6954:1;6944:8;6940:16;6937:451;;;7369:4;7362:5;7358:16;7349:25;;6937:451;7419:4;7413;7409:15;7401:23;;7449:32;7472:8;7449:32;:::i;:::-;7437:44;;6779:712;;;6649:848;;;;;;;:::o;7503:1073::-;7557:5;7748:8;7738:40;;7769:1;7760:10;;7771:5;;7738:40;7797:4;7787:36;;7814:1;7805:10;;7816:5;;7787:36;7883:4;7931:1;7926:27;;;;7967:1;7962:191;;;;7876:277;;7926:27;7944:1;7935:10;;7946:5;;;7962:191;8007:3;7997:8;7994:17;7991:43;;;8014:18;;:::i;:::-;7991:43;8063:8;8060:1;8056:16;8047:25;;8098:3;8091:5;8088:14;8085:40;;;8105:18;;:::i;:::-;8085:40;8138:5;;;7876:277;;8262:2;8252:8;8249:16;8243:3;8237:4;8234:13;8230:36;8212:2;8202:8;8199:16;8194:2;8188:4;8185:12;8181:35;8165:111;8162:246;;;8318:8;8312:4;8308:19;8299:28;;8353:3;8346:5;8343:14;8340:40;;;8360:18;;:::i;:::-;8340:40;8393:5;;8162:246;8433:42;8471:3;8461:8;8455:4;8452:1;8433:42;:::i;:::-;8418:57;;;;8507:4;8502:3;8498:14;8491:5;8488:25;8485:51;;;8516:18;;:::i;:::-;8485:51;8565:4;8558:5;8554:16;8545:25;;7503:1073;;;;;;:::o;8582:281::-;8640:5;8664:23;8682:4;8664:23;:::i;:::-;8656:31;;8708:25;8724:8;8708:25;:::i;:::-;8696:37;;8752:104;8789:66;8779:8;8773:4;8752:104;:::i;:::-;8743:113;;8582:281;;;;:::o;8869:410::-;8909:7;8932:20;8950:1;8932:20;:::i;:::-;8927:25;;8966:20;8984:1;8966:20;:::i;:::-;8961:25;;9021:1;9018;9014:9;9043:30;9061:11;9043:30;:::i;:::-;9032:41;;9222:1;9213:7;9209:15;9206:1;9203:22;9183:1;9176:9;9156:83;9133:139;;9252:18;;:::i;:::-;9133:139;8917:362;8869:410;;;;:::o;9285:182::-;9425:34;9421:1;9413:6;9409:14;9402:58;9285:182;:::o;9473:366::-;9615:3;9636:67;9700:2;9695:3;9636:67;:::i;:::-;9629:74;;9712:93;9801:3;9712:93;:::i;:::-;9830:2;9825:3;9821:12;9814:19;;9473:366;;;:::o;9845:419::-;10011:4;10049:2;10038:9;10034:18;10026:26;;10098:9;10092:4;10088:20;10084:1;10073:9;10069:17;10062:47;10126:131;10252:4;10126:131;:::i;:::-;10118:139;;9845:419;;;:::o;10270:143::-;10327:5;10358:6;10352:13;10343:22;;10374:33;10401:5;10374:33;:::i;:::-;10270:143;;;;:::o;10419:351::-;10489:6;10538:2;10526:9;10517:7;10513:23;10509:32;10506:119;;;10544:79;;:::i;:::-;10506:119;10664:1;10689:64;10745:7;10736:6;10725:9;10721:22;10689:64;:::i;:::-;10679:74;;10635:128;10419:351;;;;:::o;10776:332::-;10897:4;10935:2;10924:9;10920:18;10912:26;;10948:71;11016:1;11005:9;11001:17;10992:6;10948:71;:::i;:::-;11029:72;11097:2;11086:9;11082:18;11073:6;11029:72;:::i;:::-;10776:332;;;;;:::o;11114:60::-;11142:3;11163:5;11156:12;;11114:60;;;:::o;11180:142::-;11230:9;11263:53;11281:34;11290:24;11308:5;11290:24;:::i;:::-;11281:34;:::i;:::-;11263:53;:::i;:::-;11250:66;;11180:142;;;:::o;11328:126::-;11378:9;11411:37;11442:5;11411:37;:::i;:::-;11398:50;;11328:126;;;:::o;11460:134::-;11518:9;11551:37;11582:5;11551:37;:::i;:::-;11538:50;;11460:134;;;:::o;11600:147::-;11695:45;11734:5;11695:45;:::i;:::-;11690:3;11683:58;11600:147;;:::o;11753:348::-;11882:4;11920:2;11909:9;11905:18;11897:26;;11933:79;12009:1;11998:9;11994:17;11985:6;11933:79;:::i;:::-;12022:72;12090:2;12079:9;12075:18;12066:6;12022:72;:::i;:::-;11753:348;;;;;:::o;12107:116::-;12177:21;12192:5;12177:21;:::i;:::-;12170:5;12167:32;12157:60;;12213:1;12210;12203:12;12157:60;12107:116;:::o;12229:137::-;12283:5;12314:6;12308:13;12299:22;;12330:30;12354:5;12330:30;:::i;:::-;12229:137;;;;:::o;12372:345::-;12439:6;12488:2;12476:9;12467:7;12463:23;12459:32;12456:119;;;12494:79;;:::i;:::-;12456:119;12614:1;12639:61;12692:7;12683:6;12672:9;12668:22;12639:61;:::i;:::-;12629:71;;12585:125;12372:345;;;;:::o;12723:223::-;12863:34;12859:1;12851:6;12847:14;12840:58;12932:6;12927:2;12919:6;12915:15;12908:31;12723:223;:::o;12952:366::-;13094:3;13115:67;13179:2;13174:3;13115:67;:::i;:::-;13108:74;;13191:93;13280:3;13191:93;:::i;:::-;13309:2;13304:3;13300:12;13293:19;;12952:366;;;:::o;13324:419::-;13490:4;13528:2;13517:9;13513:18;13505:26;;13577:9;13571:4;13567:20;13563:1;13552:9;13548:17;13541:47;13605:131;13731:4;13605:131;:::i;:::-;13597:139;;13324:419;;;:::o;13749:221::-;13889:34;13885:1;13877:6;13873:14;13866:58;13958:4;13953:2;13945:6;13941:15;13934:29;13749:221;:::o;13976:366::-;14118:3;14139:67;14203:2;14198:3;14139:67;:::i;:::-;14132:74;;14215:93;14304:3;14215:93;:::i;:::-;14333:2;14328:3;14324:12;14317:19;;13976:366;;;:::o;14348:419::-;14514:4;14552:2;14541:9;14537:18;14529:26;;14601:9;14595:4;14591:20;14587:1;14576:9;14572:17;14565:47;14629:131;14755:4;14629:131;:::i;:::-;14621:139;;14348:419;;;:::o;14773:224::-;14913:34;14909:1;14901:6;14897:14;14890:58;14982:7;14977:2;14969:6;14965:15;14958:32;14773:224;:::o;15003:366::-;15145:3;15166:67;15230:2;15225:3;15166:67;:::i;:::-;15159:74;;15242:93;15331:3;15242:93;:::i;:::-;15360:2;15355:3;15351:12;15344:19;;15003:366;;;:::o;15375:419::-;15541:4;15579:2;15568:9;15564:18;15556:26;;15628:9;15622:4;15618:20;15614:1;15603:9;15599:17;15592:47;15656:131;15782:4;15656:131;:::i;:::-;15648:139;;15375:419;;;:::o;15800:222::-;15940:34;15936:1;15928:6;15924:14;15917:58;16009:5;16004:2;15996:6;15992:15;15985:30;15800:222;:::o;16028:366::-;16170:3;16191:67;16255:2;16250:3;16191:67;:::i;:::-;16184:74;;16267:93;16356:3;16267:93;:::i;:::-;16385:2;16380:3;16376:12;16369:19;;16028:366;;;:::o;16400:419::-;16566:4;16604:2;16593:9;16589:18;16581:26;;16653:9;16647:4;16643:20;16639:1;16628:9;16624:17;16617:47;16681:131;16807:4;16681:131;:::i;:::-;16673:139;;16400:419;;;:::o;16825:228::-;16965:34;16961:1;16953:6;16949:14;16942:58;17034:11;17029:2;17021:6;17017:15;17010:36;16825:228;:::o;17059:366::-;17201:3;17222:67;17286:2;17281:3;17222:67;:::i;:::-;17215:74;;17298:93;17387:3;17298:93;:::i;:::-;17416:2;17411:3;17407:12;17400:19;;17059:366;;;:::o;17431:419::-;17597:4;17635:2;17624:9;17620:18;17612:26;;17684:9;17678:4;17674:20;17670:1;17659:9;17655:17;17648:47;17712:131;17838:4;17712:131;:::i;:::-;17704:139;;17431:419;;;:::o;17856:297::-;17996:34;17992:1;17984:6;17980:14;17973:58;18065:34;18060:2;18052:6;18048:15;18041:59;18134:11;18129:2;18121:6;18117:15;18110:36;17856:297;:::o;18159:366::-;18301:3;18322:67;18386:2;18381:3;18322:67;:::i;:::-;18315:74;;18398:93;18487:3;18398:93;:::i;:::-;18516:2;18511:3;18507:12;18500:19;;18159:366;;;:::o;18531:419::-;18697:4;18735:2;18724:9;18720:18;18712:26;;18784:9;18778:4;18774:20;18770:1;18759:9;18755:17;18748:47;18812:131;18938:4;18812:131;:::i;:::-;18804:139;;18531:419;;;:::o;18956:175::-;19096:27;19092:1;19084:6;19080:14;19073:51;18956:175;:::o;19137:366::-;19279:3;19300:67;19364:2;19359:3;19300:67;:::i;:::-;19293:74;;19376:93;19465:3;19376:93;:::i;:::-;19494:2;19489:3;19485:12;19478:19;;19137:366;;;:::o;19509:419::-;19675:4;19713:2;19702:9;19698:18;19690:26;;19762:9;19756:4;19752:20;19748:1;19737:9;19733:17;19726:47;19790:131;19916:4;19790:131;:::i;:::-;19782:139;;19509:419;;;:::o;19934:191::-;19974:3;19993:20;20011:1;19993:20;:::i;:::-;19988:25;;20027:20;20045:1;20027:20;:::i;:::-;20022:25;;20070:1;20067;20063:9;20056:16;;20091:3;20088:1;20085:10;20082:36;;;20098:18;;:::i;:::-;20082:36;19934:191;;;;:::o;20131:176::-;20271:28;20267:1;20259:6;20255:14;20248:52;20131:176;:::o;20313:366::-;20455:3;20476:67;20540:2;20535:3;20476:67;:::i;:::-;20469:74;;20552:93;20641:3;20552:93;:::i;:::-;20670:2;20665:3;20661:12;20654:19;;20313:366;;;:::o;20685:419::-;20851:4;20889:2;20878:9;20874:18;20866:26;;20938:9;20932:4;20928:20;20924:1;20913:9;20909:17;20902:47;20966:131;21092:4;20966:131;:::i;:::-;20958:139;;20685:419;;;:::o;21110:233::-;21149:3;21172:24;21190:5;21172:24;:::i;:::-;21163:33;;21218:66;21211:5;21208:77;21205:103;;21288:18;;:::i;:::-;21205:103;21335:1;21328:5;21324:13;21317:20;;21110:233;;;:::o;21349:194::-;21389:4;21409:20;21427:1;21409:20;:::i;:::-;21404:25;;21443:20;21461:1;21443:20;:::i;:::-;21438:25;;21487:1;21484;21480:9;21472:17;;21511:1;21505:4;21502:11;21499:37;;;21516:18;;:::i;:::-;21499:37;21349:194;;;;:::o;21549:180::-;21597:77;21594:1;21587:88;21694:4;21691:1;21684:15;21718:4;21715:1;21708:15;21735:180;21783:77;21780:1;21773:88;21880:4;21877:1;21870:15;21904:4;21901:1;21894:15;21921:143;21978:5;22009:6;22003:13;21994:22;;22025:33;22052:5;22025:33;:::i;:::-;21921:143;;;;:::o;22070:351::-;22140:6;22189:2;22177:9;22168:7;22164:23;22160:32;22157:119;;;22195:79;;:::i;:::-;22157:119;22315:1;22340:64;22396:7;22387:6;22376:9;22372:22;22340:64;:::i;:::-;22330:74;;22286:128;22070:351;;;;:::o;22427:85::-;22472:7;22501:5;22490:16;;22427:85;;;:::o;22518:158::-;22576:9;22609:61;22627:42;22636:32;22662:5;22636:32;:::i;:::-;22627:42;:::i;:::-;22609:61;:::i;:::-;22596:74;;22518:158;;;:::o;22682:147::-;22777:45;22816:5;22777:45;:::i;:::-;22772:3;22765:58;22682:147;;:::o;22835:114::-;22902:6;22936:5;22930:12;22920:22;;22835:114;;;:::o;22955:184::-;23054:11;23088:6;23083:3;23076:19;23128:4;23123:3;23119:14;23104:29;;22955:184;;;;:::o;23145:132::-;23212:4;23235:3;23227:11;;23265:4;23260:3;23256:14;23248:22;;23145:132;;;:::o;23283:108::-;23360:24;23378:5;23360:24;:::i;:::-;23355:3;23348:37;23283:108;;:::o;23397:179::-;23466:10;23487:46;23529:3;23521:6;23487:46;:::i;:::-;23565:4;23560:3;23556:14;23542:28;;23397:179;;;;:::o;23582:113::-;23652:4;23684;23679:3;23675:14;23667:22;;23582:113;;;:::o;23731:732::-;23850:3;23879:54;23927:5;23879:54;:::i;:::-;23949:86;24028:6;24023:3;23949:86;:::i;:::-;23942:93;;24059:56;24109:5;24059:56;:::i;:::-;24138:7;24169:1;24154:284;24179:6;24176:1;24173:13;24154:284;;;24255:6;24249:13;24282:63;24341:3;24326:13;24282:63;:::i;:::-;24275:70;;24368:60;24421:6;24368:60;:::i;:::-;24358:70;;24214:224;24201:1;24198;24194:9;24189:14;;24154:284;;;24158:14;24454:3;24447:10;;23855:608;;;23731:732;;;;:::o;24469:831::-;24732:4;24770:3;24759:9;24755:19;24747:27;;24784:71;24852:1;24841:9;24837:17;24828:6;24784:71;:::i;:::-;24865:80;24941:2;24930:9;24926:18;24917:6;24865:80;:::i;:::-;24992:9;24986:4;24982:20;24977:2;24966:9;24962:18;24955:48;25020:108;25123:4;25114:6;25020:108;:::i;:::-;25012:116;;25138:72;25206:2;25195:9;25191:18;25182:6;25138:72;:::i;:::-;25220:73;25288:3;25277:9;25273:19;25264:6;25220:73;:::i;:::-;24469:831;;;;;;;;:::o;25306:180::-;25354:77;25351:1;25344:88;25451:4;25448:1;25441:15;25475:4;25472:1;25465:15;25492:185;25532:1;25549:20;25567:1;25549:20;:::i;:::-;25544:25;;25583:20;25601:1;25583:20;:::i;:::-;25578:25;;25622:1;25612:35;;25627:18;;:::i;:::-;25612:35;25669:1;25666;25662:9;25657:14;;25492:185;;;;:::o;25683:164::-;25823:16;25819:1;25811:6;25807:14;25800:40;25683:164;:::o;25853:366::-;25995:3;26016:67;26080:2;26075:3;26016:67;:::i;:::-;26009:74;;26092:93;26181:3;26092:93;:::i;:::-;26210:2;26205:3;26201:12;26194:19;;25853:366;;;:::o;26225:419::-;26391:4;26429:2;26418:9;26414:18;26406:26;;26478:9;26472:4;26468:20;26464:1;26453:9;26449:17;26442:47;26506:131;26632:4;26506:131;:::i;:::-;26498:139;;26225:419;;;:::o;26650:220::-;26790:34;26786:1;26778:6;26774:14;26767:58;26859:3;26854:2;26846:6;26842:15;26835:28;26650:220;:::o;26876:366::-;27018:3;27039:67;27103:2;27098:3;27039:67;:::i;:::-;27032:74;;27115:93;27204:3;27115:93;:::i;:::-;27233:2;27228:3;27224:12;27217:19;;26876:366;;;:::o;27248:419::-;27414:4;27452:2;27441:9;27437:18;27429:26;;27501:9;27495:4;27491:20;27487:1;27476:9;27472:17;27465:47;27529:131;27655:4;27529:131;:::i;:::-;27521:139;;27248:419;;;:::o;27673:177::-;27813:29;27809:1;27801:6;27797:14;27790:53;27673:177;:::o;27856:366::-;27998:3;28019:67;28083:2;28078:3;28019:67;:::i;:::-;28012:74;;28095:93;28184:3;28095:93;:::i;:::-;28213:2;28208:3;28204:12;28197:19;;27856:366;;;:::o;28228:419::-;28394:4;28432:2;28421:9;28417:18;28409:26;;28481:9;28475:4;28471:20;28467:1;28456:9;28452:17;28445:47;28509:131;28635:4;28509:131;:::i;:::-;28501:139;;28228:419;;;:::o

Swarm Source

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