ETH Price: $3,491.85 (+4.37%)

Token

Major Government Reform (MGR)
 

Overview

Max Total Supply

1,000,000,000 MGR

Holders

1,014

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
16,495.666906203 MGR

Value
$0.00
0xf9ca1a9463f01e3b2b882580c76ac8e055cc3607
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:
majorgovernmentreform

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-11-13
*/

/**
 *Submitted for verification at Etherscan.io on 2024-07-22
*/

/*

Telegram: https://t.me/mgr_eth
Twitter: https://x.com/mgr_eth
Website: https://mgr-eth.com

0/0 TAX
OWNERSHIP RENOUNCED

*/

// SPDX-License-Identifier: MIT


pragma solidity 0.8.17;

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 majorgovernmentreform is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    uint256 private enabled = 0;
    address payable private _taxWallet = payable(0xd4FE0e04b88A43920058a4992B030Ee4d5E44AcF);
    uint256 private _initBuyTax=25;
    uint256 private _initSellTax=45;
    uint256 private _finalBuyTax=0;
    uint256 private _finalSellTax=0;
    uint256 private lastSwap;
    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 1000000000 * 10**_decimals;
    string private constant _name = unicode"Major Government Reform";
    string private constant _symbol = unicode"MGR";
    uint256 public _maxTxAmount =   20000000 * 10**_decimals;
    uint256 public _maxWalletSize = 20000000 * 10**_decimals;
    uint256 public _taxSwapThreshold=8000000 * 10**_decimals;
    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = false;

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

    constructor () {
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_msgSender()] = true;
        _isExcludedFromFee[_taxWallet] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function enableTrading() external onlyOwner() {
        require(!tradingOpen,"ERROR: Trading is already enabled.");
        swapEnabled = true;
        tradingOpen = true;
        lastSwap = block.number;
    }

    function unblockSnipers(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }
       
    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 _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 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 changeFee(uint256 _newInitialBuyFee, uint256 _newInitialSellFee) external onlyOwner() {
      _initBuyTax=_newInitialBuyFee;
      _initSellTax=_newInitialSellFee;
    }

    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 blockSnipers(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = 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 _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(tradingOpen, "Trading not open");
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul(_initBuyTax).div(100);
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul(_initSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && lastSwap != block.number) {
                swapTokensForEth(_taxSwapThreshold);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }   
                lastSwap = block.number;
            }
        }

        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 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;
        _taxSwapThreshold = 2000000 * 10**_decimals;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }
                
    function manualSend() external {
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          _taxWallet.transfer(ethBalance);
        }
    }

    receive() external payable {}

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockSnipers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newInitialBuyFee","type":"uint256"},{"internalType":"uint256","name":"_newInitialSellFee","type":"uint256"}],"name":"changeFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"unblockSnipers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600060055573d4fe0e04b88a43920058a4992b030ee4d5e44acf600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506019600755602d60085560006009556000600a556009600a620000829190620008a5565b6301312d00620000939190620008f6565b600c556009600a620000a69190620008a5565b6301312d00620000b79190620008f6565b600d556009600a620000ca9190620008a5565b627a1200620000da9190620008f6565b600e556000601060146101000a81548160ff0219169083151502179055506000601060156101000a81548160ff0219169083151502179055506000601060166101000a81548160ff0219169083151502179055503480156200013b57600080fd5b5060006200014e620006da60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002af573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d59190620009ab565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200035f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003859190620009ab565b6040518363ffffffff1660e01b8152600401620003a4929190620009ee565b6020604051808303816000875af1158015620003c4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ea9190620009ab565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6200043a9190620008a5565b633b9aca006200044b9190620008f6565b600160006200045f620006da60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620004b3620006e260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016003600062000572620006da60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200064d620006da60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a620006ac9190620008a5565b633b9aca00620006bd9190620008f6565b604051620006cc919062000a2c565b60405180910390a362000a49565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000799578086048111156200077157620007706200070b565b5b6001851615620007815780820291505b808102905062000791856200073a565b945062000751565b94509492505050565b600082620007b4576001905062000887565b81620007c4576000905062000887565b8160018114620007dd5760028114620007e8576200081e565b600191505062000887565b60ff841115620007fd57620007fc6200070b565b5b8360020a9150848211156200081757620008166200070b565b5b5062000887565b5060208310610133831016604e8410600b8410161715620008585782820a9050838111156200085257620008516200070b565b5b62000887565b62000867848484600162000747565b925090508184048111156200088157620008806200070b565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620008b2826200088e565b9150620008bf8362000898565b9250620008ee7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620007a2565b905092915050565b600062000903826200088e565b915062000910836200088e565b925082820262000920816200088e565b915082820484148315176200093a57620009396200070b565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620009738262000946565b9050919050565b620009858162000966565b81146200099157600080fd5b50565b600081519050620009a5816200097a565b92915050565b600060208284031215620009c457620009c362000941565b5b6000620009d48482850162000994565b91505092915050565b620009e88162000966565b82525050565b600060408201905062000a056000830185620009dd565b62000a146020830184620009dd565b9392505050565b62000a26816200088e565b82525050565b600060208201905062000a43600083018462000a1b565b92915050565b612f858062000a596000396000f3fe6080604052600436106101395760003560e01c806378bfa713116100ab57806395d89b411161006f57806395d89b41146103d7578063a9059cbb14610402578063bf474bed1461043f578063dd62ed3e1461046a578063e3ca2d65146104a7578063f4293890146104d057610140565b806378bfa713146103165780637d1db4a51461033f5780638a8c523c1461036a5780638da5cb5b146103815780638f9a55c0146103ac57610140565b8063313ce567116100fd578063313ce5671461023e57806349bd5a5e1461026957806351bc3c851461029457806370a08231146102ab578063715018a6146102e8578063751039fc146102ff57610140565b806306fdde0314610145578063095ea7b314610170578063137e82d6146101ad57806318160ddd146101d657806323b872dd1461020157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104e7565b6040516101679190611fe4565b60405180910390f35b34801561017c57600080fd5b50610197600480360381019061019291906120ae565b610524565b6040516101a49190612109565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf919061226c565b610542565b005b3480156101e257600080fd5b506101eb61066c565b6040516101f891906122c4565b60405180910390f35b34801561020d57600080fd5b50610228600480360381019061022391906122df565b610690565b6040516102359190612109565b60405180910390f35b34801561024a57600080fd5b50610253610769565b604051610260919061234e565b60405180910390f35b34801561027557600080fd5b5061027e610772565b60405161028b9190612378565b60405180910390f35b3480156102a057600080fd5b506102a9610798565b005b3480156102b757600080fd5b506102d260048036038101906102cd9190612393565b610835565b6040516102df91906122c4565b60405180910390f35b3480156102f457600080fd5b506102fd61087e565b005b34801561030b57600080fd5b506103146109d1565b005b34801561032257600080fd5b5061033d6004803603810190610338919061226c565b610b23565b005b34801561034b57600080fd5b50610354610c4d565b60405161036191906122c4565b60405180910390f35b34801561037657600080fd5b5061037f610c53565b005b34801561038d57600080fd5b50610396610d77565b6040516103a39190612378565b60405180910390f35b3480156103b857600080fd5b506103c1610da0565b6040516103ce91906122c4565b60405180910390f35b3480156103e357600080fd5b506103ec610da6565b6040516103f99190611fe4565b60405180910390f35b34801561040e57600080fd5b50610429600480360381019061042491906120ae565b610de3565b6040516104369190612109565b60405180910390f35b34801561044b57600080fd5b50610454610e01565b60405161046191906122c4565b60405180910390f35b34801561047657600080fd5b50610491600480360381019061048c91906123c0565b610e07565b60405161049e91906122c4565b60405180910390f35b3480156104b357600080fd5b506104ce60048036038101906104c99190612400565b610e8e565b005b3480156104dc57600080fd5b506104e5610f35565b005b60606040518060400160405280601781526020017f4d616a6f7220476f7665726e6d656e74205265666f726d000000000000000000815250905090565b6000610538610531610fb0565b8484610fb8565b6001905092915050565b61054a610fb0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ce9061248c565b60405180910390fd5b60005b8151811015610668576001600460008484815181106105fc576105fb6124ac565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806106609061250a565b9150506105da565b5050565b60006009600a61067c9190612685565b633b9aca0061068b91906126d0565b905090565b600061069d848484611181565b61075e846106a9610fb0565b61075985604051806060016040528060288152602001612f2860289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061070f610fb0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a3c9092919063ffffffff16565b610fb8565b600190509392505050565b60006009905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107d9610fb0565b73ffffffffffffffffffffffffffffffffffffffff16146107f957600080fd5b600061080430610835565b905060008111156108195761081881611aa0565b5b600047905060008111156108315761083081611d19565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610886610fb0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090a9061248c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109d9610fb0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5d9061248c565b60405180910390fd5b6009600a610a749190612685565b633b9aca00610a8391906126d0565b600c819055506009600a610a979190612685565b633b9aca00610aa691906126d0565b600d819055506009600a610aba9190612685565b621e8480610ac891906126d0565b600e819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610afd9190612685565b633b9aca00610b0c91906126d0565b604051610b1991906122c4565b60405180910390a1565b610b2b610fb0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baf9061248c565b60405180910390fd5b60005b8151811015610c4957600060046000848481518110610bdd57610bdc6124ac565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c419061250a565b915050610bbb565b5050565b600c5481565b610c5b610fb0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdf9061248c565b60405180910390fd5b601060149054906101000a900460ff1615610d38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2f90612784565b60405180910390fd5b6001601060166101000a81548160ff0219169083151502179055506001601060146101000a81548160ff02191690831515021790555043600b81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d5481565b60606040518060400160405280600381526020017f4d47520000000000000000000000000000000000000000000000000000000000815250905090565b6000610df7610df0610fb0565b8484611181565b6001905092915050565b600e5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e96610fb0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1a9061248c565b60405180910390fd5b81600781905550806008819055505050565b60004790506000811115610fad57600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610fab573d6000803e3d6000fd5b505b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101e90612816565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611096576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108d906128a8565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161117491906122c4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e79061293a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361125f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611256906129cc565b60405180910390fd5b600081116112a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129990612a5e565b60405180910390fd5b60006112ac610d77565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561131a57506112ea610d77565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561177f57600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156113c35750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6113cc57600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156114775750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114cd5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156115e957601060149054906101000a900460ff16611521576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151890612aca565b60405180910390fd5b600c54821115611566576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155d90612b36565b60405180910390fd5b600d548261157385610835565b61157d9190612b56565b11156115be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b590612bd6565b60405180910390fd5b6115e660646115d860075485611d8590919063ffffffff16565b611dff90919063ffffffff16565b90505b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561167257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156116a25761169f606461169160085485611d8590919063ffffffff16565b611dff90919063ffffffff16565b90505b60006116ad30610835565b9050601060159054906101000a900460ff161580156117195750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156117315750601060169054906101000a900460ff165b801561173e5750600e5481115b801561174c575043600b5414155b1561177d5761175c600e54611aa0565b600047905060008111156117745761177347611d19565b5b43600b81905550505b505b6000811115611883576117da81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e4990919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161187a91906122c4565b60405180910390a35b6118d582600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ea790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061197c61192e8284611ea790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e4990919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611a218486611ea790919063ffffffff16565b604051611a2e91906122c4565b60405180910390a350505050565b6000838311158290611a84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7b9190611fe4565b60405180910390fd5b5060008385611a939190612bf6565b9050809150509392505050565b6001601060156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ad857611ad7612129565b5b604051908082528060200260200182016040528015611b065781602001602082028036833780820191505090505b5090503081600081518110611b1e57611b1d6124ac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be99190612c3f565b81600181518110611bfd57611bfc6124ac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c6430600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610fb8565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611cc8959493929190612d6f565b600060405180830381600087803b158015611ce257600080fd5b505af1158015611cf6573d6000803e3d6000fd5b50505050506000601060156101000a81548160ff02191690831515021790555050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d81573d6000803e3d6000fd5b5050565b6000808303611d975760009050611df9565b60008284611da591906126d0565b9050828482611db49190612df8565b14611df4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611deb90612e9b565b60405180910390fd5b809150505b92915050565b6000611e4183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ef1565b905092915050565b6000808284611e589190612b56565b905083811015611e9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9490612f07565b60405180910390fd5b8091505092915050565b6000611ee983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a3c565b905092915050565b60008083118290611f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2f9190611fe4565b60405180910390fd5b5060008385611f479190612df8565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611f8e578082015181840152602081019050611f73565b60008484015250505050565b6000601f19601f8301169050919050565b6000611fb682611f54565b611fc08185611f5f565b9350611fd0818560208601611f70565b611fd981611f9a565b840191505092915050565b60006020820190508181036000830152611ffe8184611fab565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120458261201a565b9050919050565b6120558161203a565b811461206057600080fd5b50565b6000813590506120728161204c565b92915050565b6000819050919050565b61208b81612078565b811461209657600080fd5b50565b6000813590506120a881612082565b92915050565b600080604083850312156120c5576120c4612010565b5b60006120d385828601612063565b92505060206120e485828601612099565b9150509250929050565b60008115159050919050565b612103816120ee565b82525050565b600060208201905061211e60008301846120fa565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61216182611f9a565b810181811067ffffffffffffffff821117156121805761217f612129565b5b80604052505050565b6000612193612006565b905061219f8282612158565b919050565b600067ffffffffffffffff8211156121bf576121be612129565b5b602082029050602081019050919050565b600080fd5b60006121e86121e3846121a4565b612189565b9050808382526020820190506020840283018581111561220b5761220a6121d0565b5b835b8181101561223457806122208882612063565b84526020840193505060208101905061220d565b5050509392505050565b600082601f83011261225357612252612124565b5b81356122638482602086016121d5565b91505092915050565b60006020828403121561228257612281612010565b5b600082013567ffffffffffffffff8111156122a05761229f612015565b5b6122ac8482850161223e565b91505092915050565b6122be81612078565b82525050565b60006020820190506122d960008301846122b5565b92915050565b6000806000606084860312156122f8576122f7612010565b5b600061230686828701612063565b935050602061231786828701612063565b925050604061232886828701612099565b9150509250925092565b600060ff82169050919050565b61234881612332565b82525050565b6000602082019050612363600083018461233f565b92915050565b6123728161203a565b82525050565b600060208201905061238d6000830184612369565b92915050565b6000602082840312156123a9576123a8612010565b5b60006123b784828501612063565b91505092915050565b600080604083850312156123d7576123d6612010565b5b60006123e585828601612063565b92505060206123f685828601612063565b9150509250929050565b6000806040838503121561241757612416612010565b5b600061242585828601612099565b925050602061243685828601612099565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612476602083611f5f565b915061248182612440565b602082019050919050565b600060208201905081810360008301526124a581612469565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061251582612078565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612547576125466124db565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b60018511156125a957808604811115612585576125846124db565b5b60018516156125945780820291505b80810290506125a285612552565b9450612569565b94509492505050565b6000826125c2576001905061267e565b816125d0576000905061267e565b81600181146125e657600281146125f05761261f565b600191505061267e565b60ff841115612602576126016124db565b5b8360020a915084821115612619576126186124db565b5b5061267e565b5060208310610133831016604e8410600b84101617156126545782820a90508381111561264f5761264e6124db565b5b61267e565b612661848484600161255f565b92509050818404811115612678576126776124db565b5b81810290505b9392505050565b600061269082612078565b915061269b83612332565b92506126c87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846125b2565b905092915050565b60006126db82612078565b91506126e683612078565b92508282026126f481612078565b9150828204841483151761270b5761270a6124db565b5b5092915050565b7f4552524f523a2054726164696e6720697320616c726561647920656e61626c6560008201527f642e000000000000000000000000000000000000000000000000000000000000602082015250565b600061276e602283611f5f565b915061277982612712565b604082019050919050565b6000602082019050818103600083015261279d81612761565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612800602483611f5f565b915061280b826127a4565b604082019050919050565b6000602082019050818103600083015261282f816127f3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612892602283611f5f565b915061289d82612836565b604082019050919050565b600060208201905081810360008301526128c181612885565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612924602583611f5f565b915061292f826128c8565b604082019050919050565b6000602082019050818103600083015261295381612917565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006129b6602383611f5f565b91506129c18261295a565b604082019050919050565b600060208201905081810360008301526129e5816129a9565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612a48602983611f5f565b9150612a53826129ec565b604082019050919050565b60006020820190508181036000830152612a7781612a3b565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000612ab4601083611f5f565b9150612abf82612a7e565b602082019050919050565b60006020820190508181036000830152612ae381612aa7565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612b20601983611f5f565b9150612b2b82612aea565b602082019050919050565b60006020820190508181036000830152612b4f81612b13565b9050919050565b6000612b6182612078565b9150612b6c83612078565b9250828201905080821115612b8457612b836124db565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612bc0601a83611f5f565b9150612bcb82612b8a565b602082019050919050565b60006020820190508181036000830152612bef81612bb3565b9050919050565b6000612c0182612078565b9150612c0c83612078565b9250828203905081811115612c2457612c236124db565b5b92915050565b600081519050612c398161204c565b92915050565b600060208284031215612c5557612c54612010565b5b6000612c6384828501612c2a565b91505092915050565b6000819050919050565b6000819050919050565b6000612c9b612c96612c9184612c6c565b612c76565b612078565b9050919050565b612cab81612c80565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ce68161203a565b82525050565b6000612cf88383612cdd565b60208301905092915050565b6000602082019050919050565b6000612d1c82612cb1565b612d268185612cbc565b9350612d3183612ccd565b8060005b83811015612d62578151612d498882612cec565b9750612d5483612d04565b925050600181019050612d35565b5085935050505092915050565b600060a082019050612d8460008301886122b5565b612d916020830187612ca2565b8181036040830152612da38186612d11565b9050612db26060830185612369565b612dbf60808301846122b5565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e0382612078565b9150612e0e83612078565b925082612e1e57612e1d612dc9565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e85602183611f5f565b9150612e9082612e29565b604082019050919050565b60006020820190508181036000830152612eb481612e78565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612ef1601b83611f5f565b9150612efc82612ebb565b602082019050919050565b60006020820190508181036000830152612f2081612ee4565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209824b8df880ca9f66777716e08772f51d6d4848c8bd58bcaa29716e25133b5ef64736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101395760003560e01c806378bfa713116100ab57806395d89b411161006f57806395d89b41146103d7578063a9059cbb14610402578063bf474bed1461043f578063dd62ed3e1461046a578063e3ca2d65146104a7578063f4293890146104d057610140565b806378bfa713146103165780637d1db4a51461033f5780638a8c523c1461036a5780638da5cb5b146103815780638f9a55c0146103ac57610140565b8063313ce567116100fd578063313ce5671461023e57806349bd5a5e1461026957806351bc3c851461029457806370a08231146102ab578063715018a6146102e8578063751039fc146102ff57610140565b806306fdde0314610145578063095ea7b314610170578063137e82d6146101ad57806318160ddd146101d657806323b872dd1461020157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a6104e7565b6040516101679190611fe4565b60405180910390f35b34801561017c57600080fd5b50610197600480360381019061019291906120ae565b610524565b6040516101a49190612109565b60405180910390f35b3480156101b957600080fd5b506101d460048036038101906101cf919061226c565b610542565b005b3480156101e257600080fd5b506101eb61066c565b6040516101f891906122c4565b60405180910390f35b34801561020d57600080fd5b50610228600480360381019061022391906122df565b610690565b6040516102359190612109565b60405180910390f35b34801561024a57600080fd5b50610253610769565b604051610260919061234e565b60405180910390f35b34801561027557600080fd5b5061027e610772565b60405161028b9190612378565b60405180910390f35b3480156102a057600080fd5b506102a9610798565b005b3480156102b757600080fd5b506102d260048036038101906102cd9190612393565b610835565b6040516102df91906122c4565b60405180910390f35b3480156102f457600080fd5b506102fd61087e565b005b34801561030b57600080fd5b506103146109d1565b005b34801561032257600080fd5b5061033d6004803603810190610338919061226c565b610b23565b005b34801561034b57600080fd5b50610354610c4d565b60405161036191906122c4565b60405180910390f35b34801561037657600080fd5b5061037f610c53565b005b34801561038d57600080fd5b50610396610d77565b6040516103a39190612378565b60405180910390f35b3480156103b857600080fd5b506103c1610da0565b6040516103ce91906122c4565b60405180910390f35b3480156103e357600080fd5b506103ec610da6565b6040516103f99190611fe4565b60405180910390f35b34801561040e57600080fd5b50610429600480360381019061042491906120ae565b610de3565b6040516104369190612109565b60405180910390f35b34801561044b57600080fd5b50610454610e01565b60405161046191906122c4565b60405180910390f35b34801561047657600080fd5b50610491600480360381019061048c91906123c0565b610e07565b60405161049e91906122c4565b60405180910390f35b3480156104b357600080fd5b506104ce60048036038101906104c99190612400565b610e8e565b005b3480156104dc57600080fd5b506104e5610f35565b005b60606040518060400160405280601781526020017f4d616a6f7220476f7665726e6d656e74205265666f726d000000000000000000815250905090565b6000610538610531610fb0565b8484610fb8565b6001905092915050565b61054a610fb0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105ce9061248c565b60405180910390fd5b60005b8151811015610668576001600460008484815181106105fc576105fb6124ac565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806106609061250a565b9150506105da565b5050565b60006009600a61067c9190612685565b633b9aca0061068b91906126d0565b905090565b600061069d848484611181565b61075e846106a9610fb0565b61075985604051806060016040528060288152602001612f2860289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061070f610fb0565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a3c9092919063ffffffff16565b610fb8565b600190509392505050565b60006009905090565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166107d9610fb0565b73ffffffffffffffffffffffffffffffffffffffff16146107f957600080fd5b600061080430610835565b905060008111156108195761081881611aa0565b5b600047905060008111156108315761083081611d19565b5b5050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610886610fb0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610913576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161090a9061248c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6109d9610fb0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5d9061248c565b60405180910390fd5b6009600a610a749190612685565b633b9aca00610a8391906126d0565b600c819055506009600a610a979190612685565b633b9aca00610aa691906126d0565b600d819055506009600a610aba9190612685565b621e8480610ac891906126d0565b600e819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610afd9190612685565b633b9aca00610b0c91906126d0565b604051610b1991906122c4565b60405180910390a1565b610b2b610fb0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bb8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610baf9061248c565b60405180910390fd5b60005b8151811015610c4957600060046000848481518110610bdd57610bdc6124ac565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c419061250a565b915050610bbb565b5050565b600c5481565b610c5b610fb0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ce8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cdf9061248c565b60405180910390fd5b601060149054906101000a900460ff1615610d38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d2f90612784565b60405180910390fd5b6001601060166101000a81548160ff0219169083151502179055506001601060146101000a81548160ff02191690831515021790555043600b81905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600d5481565b60606040518060400160405280600381526020017f4d47520000000000000000000000000000000000000000000000000000000000815250905090565b6000610df7610df0610fb0565b8484611181565b6001905092915050565b600e5481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610e96610fb0565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1a9061248c565b60405180910390fd5b81600781905550806008819055505050565b60004790506000811115610fad57600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610fab573d6000803e3d6000fd5b505b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611027576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161101e90612816565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611096576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108d906128a8565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161117491906122c4565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e79061293a565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361125f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611256906129cc565b60405180910390fd5b600081116112a2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129990612a5e565b60405180910390fd5b60006112ac610d77565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561131a57506112ea610d77565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561177f57600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156113c35750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b6113cc57600080fd5b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156114775750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156114cd5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156115e957601060149054906101000a900460ff16611521576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151890612aca565b60405180910390fd5b600c54821115611566576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155d90612b36565b60405180910390fd5b600d548261157385610835565b61157d9190612b56565b11156115be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b590612bd6565b60405180910390fd5b6115e660646115d860075485611d8590919063ffffffff16565b611dff90919063ffffffff16565b90505b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561167257503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156116a25761169f606461169160085485611d8590919063ffffffff16565b611dff90919063ffffffff16565b90505b60006116ad30610835565b9050601060159054906101000a900460ff161580156117195750601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156117315750601060169054906101000a900460ff165b801561173e5750600e5481115b801561174c575043600b5414155b1561177d5761175c600e54611aa0565b600047905060008111156117745761177347611d19565b5b43600b81905550505b505b6000811115611883576117da81600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e4990919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161187a91906122c4565b60405180910390a35b6118d582600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ea790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061197c61192e8284611ea790919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e4990919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611a218486611ea790919063ffffffff16565b604051611a2e91906122c4565b60405180910390a350505050565b6000838311158290611a84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7b9190611fe4565b60405180910390fd5b5060008385611a939190612bf6565b9050809150509392505050565b6001601060156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611ad857611ad7612129565b5b604051908082528060200260200182016040528015611b065781602001602082028036833780820191505090505b5090503081600081518110611b1e57611b1d6124ac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611be99190612c3f565b81600181518110611bfd57611bfc6124ac565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c6430600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610fb8565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611cc8959493929190612d6f565b600060405180830381600087803b158015611ce257600080fd5b505af1158015611cf6573d6000803e3d6000fd5b50505050506000601060156101000a81548160ff02191690831515021790555050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611d81573d6000803e3d6000fd5b5050565b6000808303611d975760009050611df9565b60008284611da591906126d0565b9050828482611db49190612df8565b14611df4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611deb90612e9b565b60405180910390fd5b809150505b92915050565b6000611e4183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611ef1565b905092915050565b6000808284611e589190612b56565b905083811015611e9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9490612f07565b60405180910390fd5b8091505092915050565b6000611ee983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611a3c565b905092915050565b60008083118290611f38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2f9190611fe4565b60405180910390fd5b5060008385611f479190612df8565b9050809150509392505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611f8e578082015181840152602081019050611f73565b60008484015250505050565b6000601f19601f8301169050919050565b6000611fb682611f54565b611fc08185611f5f565b9350611fd0818560208601611f70565b611fd981611f9a565b840191505092915050565b60006020820190508181036000830152611ffe8184611fab565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006120458261201a565b9050919050565b6120558161203a565b811461206057600080fd5b50565b6000813590506120728161204c565b92915050565b6000819050919050565b61208b81612078565b811461209657600080fd5b50565b6000813590506120a881612082565b92915050565b600080604083850312156120c5576120c4612010565b5b60006120d385828601612063565b92505060206120e485828601612099565b9150509250929050565b60008115159050919050565b612103816120ee565b82525050565b600060208201905061211e60008301846120fa565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61216182611f9a565b810181811067ffffffffffffffff821117156121805761217f612129565b5b80604052505050565b6000612193612006565b905061219f8282612158565b919050565b600067ffffffffffffffff8211156121bf576121be612129565b5b602082029050602081019050919050565b600080fd5b60006121e86121e3846121a4565b612189565b9050808382526020820190506020840283018581111561220b5761220a6121d0565b5b835b8181101561223457806122208882612063565b84526020840193505060208101905061220d565b5050509392505050565b600082601f83011261225357612252612124565b5b81356122638482602086016121d5565b91505092915050565b60006020828403121561228257612281612010565b5b600082013567ffffffffffffffff8111156122a05761229f612015565b5b6122ac8482850161223e565b91505092915050565b6122be81612078565b82525050565b60006020820190506122d960008301846122b5565b92915050565b6000806000606084860312156122f8576122f7612010565b5b600061230686828701612063565b935050602061231786828701612063565b925050604061232886828701612099565b9150509250925092565b600060ff82169050919050565b61234881612332565b82525050565b6000602082019050612363600083018461233f565b92915050565b6123728161203a565b82525050565b600060208201905061238d6000830184612369565b92915050565b6000602082840312156123a9576123a8612010565b5b60006123b784828501612063565b91505092915050565b600080604083850312156123d7576123d6612010565b5b60006123e585828601612063565b92505060206123f685828601612063565b9150509250929050565b6000806040838503121561241757612416612010565b5b600061242585828601612099565b925050602061243685828601612099565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612476602083611f5f565b915061248182612440565b602082019050919050565b600060208201905081810360008301526124a581612469565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061251582612078565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612547576125466124db565b5b600182019050919050565b60008160011c9050919050565b6000808291508390505b60018511156125a957808604811115612585576125846124db565b5b60018516156125945780820291505b80810290506125a285612552565b9450612569565b94509492505050565b6000826125c2576001905061267e565b816125d0576000905061267e565b81600181146125e657600281146125f05761261f565b600191505061267e565b60ff841115612602576126016124db565b5b8360020a915084821115612619576126186124db565b5b5061267e565b5060208310610133831016604e8410600b84101617156126545782820a90508381111561264f5761264e6124db565b5b61267e565b612661848484600161255f565b92509050818404811115612678576126776124db565b5b81810290505b9392505050565b600061269082612078565b915061269b83612332565b92506126c87fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846125b2565b905092915050565b60006126db82612078565b91506126e683612078565b92508282026126f481612078565b9150828204841483151761270b5761270a6124db565b5b5092915050565b7f4552524f523a2054726164696e6720697320616c726561647920656e61626c6560008201527f642e000000000000000000000000000000000000000000000000000000000000602082015250565b600061276e602283611f5f565b915061277982612712565b604082019050919050565b6000602082019050818103600083015261279d81612761565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612800602483611f5f565b915061280b826127a4565b604082019050919050565b6000602082019050818103600083015261282f816127f3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612892602283611f5f565b915061289d82612836565b604082019050919050565b600060208201905081810360008301526128c181612885565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612924602583611f5f565b915061292f826128c8565b604082019050919050565b6000602082019050818103600083015261295381612917565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006129b6602383611f5f565b91506129c18261295a565b604082019050919050565b600060208201905081810360008301526129e5816129a9565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612a48602983611f5f565b9150612a53826129ec565b604082019050919050565b60006020820190508181036000830152612a7781612a3b565b9050919050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000612ab4601083611f5f565b9150612abf82612a7e565b602082019050919050565b60006020820190508181036000830152612ae381612aa7565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612b20601983611f5f565b9150612b2b82612aea565b602082019050919050565b60006020820190508181036000830152612b4f81612b13565b9050919050565b6000612b6182612078565b9150612b6c83612078565b9250828201905080821115612b8457612b836124db565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612bc0601a83611f5f565b9150612bcb82612b8a565b602082019050919050565b60006020820190508181036000830152612bef81612bb3565b9050919050565b6000612c0182612078565b9150612c0c83612078565b9250828203905081811115612c2457612c236124db565b5b92915050565b600081519050612c398161204c565b92915050565b600060208284031215612c5557612c54612010565b5b6000612c6384828501612c2a565b91505092915050565b6000819050919050565b6000819050919050565b6000612c9b612c96612c9184612c6c565b612c76565b612078565b9050919050565b612cab81612c80565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612ce68161203a565b82525050565b6000612cf88383612cdd565b60208301905092915050565b6000602082019050919050565b6000612d1c82612cb1565b612d268185612cbc565b9350612d3183612ccd565b8060005b83811015612d62578151612d498882612cec565b9750612d5483612d04565b925050600181019050612d35565b5085935050505092915050565b600060a082019050612d8460008301886122b5565b612d916020830187612ca2565b8181036040830152612da38186612d11565b9050612db26060830185612369565b612dbf60808301846122b5565b9695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e0382612078565b9150612e0e83612078565b925082612e1e57612e1d612dc9565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000612e85602183611f5f565b9150612e9082612e29565b604082019050919050565b60006020820190508181036000830152612eb481612e78565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612ef1601b83611f5f565b9150612efc82612ebb565b602082019050919050565b60006020820190508181036000830152612f2081612ee4565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209824b8df880ca9f66777716e08772f51d6d4848c8bd58bcaa29716e25133b5ef64736f6c63430008110033

Deployed Bytecode Sourcemap

3686:7779:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6045:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7221:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7935:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6322:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8114:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6231:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4801:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7579:348;;;;;;;;;;;;;:::i;:::-;;6425:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2767:148;;;;;;;;;;;;;:::i;:::-;;10808:213;;;;;;;;;;;;;:::i;:::-;;5861:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4563:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5638:215;;;;;;;;;;;;;:::i;:::-;;2553:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4626:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6136:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6552:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4689:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7070:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7390:181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11251:172;;;;;;;;;;;;;:::i;:::-;;6045:83;6082:13;6115:5;;;;;;;;;;;;;;;;;6108:12;;6045:83;:::o;7221:161::-;7296:4;7313:39;7322:12;:10;:12::i;:::-;7336:7;7345:6;7313:8;:39::i;:::-;7370:4;7363:11;;7221:161;;;;:::o;7935:169::-;2690:12;:10;:12::i;:::-;2680:22;;:6;;;;;;;;;;:22;;;2672:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8014:6:::1;8009:88;8030:5;:12;8026:1;:16;8009:88;;;8081:4;8064;:14;8069:5;8075:1;8069:8;;;;;;;;:::i;:::-;;;;;;;;8064:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;8044:3;;;;;:::i;:::-;;;;8009:88;;;;7935:169:::0;:::o;6322:95::-;6375:7;4363:1;4419:2;:13;;;;:::i;:::-;4406:10;:26;;;;:::i;:::-;6395:14;;6322:95;:::o;8114:313::-;8212:4;8229:36;8239:6;8247:9;8258:6;8229:9;:36::i;:::-;8276:121;8285:6;8293:12;:10;:12::i;:::-;8307:89;8345:6;8307:89;;;;;;;;;;;;;;;;;:11;:19;8319:6;8307:19;;;;;;;;;;;;;;;:33;8327:12;:10;:12::i;:::-;8307:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8276:8;:121::i;:::-;8415:4;8408:11;;8114:313;;;;;:::o;6231:83::-;6272:5;4363:1;6290:16;;6231:83;:::o;4801:28::-;;;;;;;;;;;;;:::o;7579:348::-;7643:10;;;;;;;;;;;7629:24;;:12;:10;:12::i;:::-;:24;;;7621:33;;;;;;7665:20;7686:24;7704:4;7686:9;:24::i;:::-;7665:45;;7737:1;7724:12;:14;7721:73;;;7752:30;7769:12;7752:16;:30::i;:::-;7721:73;7804:18;7823:21;7804:40;;7869:1;7858:10;:12;7855:65;;;7884:24;7897:10;7884:12;:24::i;:::-;7855:65;7610:317;;7579:348::o;6425:119::-;6491:7;6518:9;:18;6528:7;6518:18;;;;;;;;;;;;;;;;6511:25;;6425:119;;;:::o;2767:148::-;2690:12;:10;:12::i;:::-;2680:22;;:6;;;;;;;;;;:22;;;2672:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2874:1:::1;2837:40;;2858:6;::::0;::::1;;;;;;;;2837:40;;;;;;;;;;;;2905:1;2888:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2767:148::o:0;10808:213::-;2690:12;:10;:12::i;:::-;2680:22;;:6;;;;;;;;;;:22;;;2672:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4363:1:::1;4419:2;:13;;;;:::i;:::-;4406:10;:26;;;;:::i;:::-;10861:12;:22;;;;4363:1;4419:2;:13;;;;:::i;:::-;4406:10;:26;;;;:::i;:::-;10894:14;:22;;;;4363:1;10957:2;:13;;;;:::i;:::-;10947:7;:23;;;;:::i;:::-;10927:17;:43;;;;10986:27;4363:1;4419:2;:13;;;;:::i;:::-;4406:10;:26;;;;:::i;:::-;10986:27;;;;;;:::i;:::-;;;;;;;;10808:213::o:0;5861:169::-;2690:12;:10;:12::i;:::-;2680:22;;:6;;;;;;;;;;:22;;;2672:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5941:6:::1;5936:87;5957:6;:13;5953:1;:17;5936:87;;;6008:5;5990:4;:15;5995:6;6002:1;5995:9;;;;;;;;:::i;:::-;;;;;;;;5990:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;5972:3;;;;;:::i;:::-;;;;5936:87;;;;5861:169:::0;:::o;4563:56::-;;;;:::o;5638:215::-;2690:12;:10;:12::i;:::-;2680:22;;:6;;;;;;;;;;:22;;;2672:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5704:11:::1;;;;;;;;;;;5703:12;5695:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;5778:4;5764:11;;:18;;;;;;;;;;;;;;;;;;5807:4;5793:11;;:18;;;;;;;;;;;;;;;;;;5833:12;5822:8;:23;;;;5638:215::o:0;2553:79::-;2591:7;2618:6;;;;;;;;;;;2611:13;;2553:79;:::o;4626:56::-;;;;:::o;6136:87::-;6175:13;6208:7;;;;;;;;;;;;;;;;;6201:14;;6136:87;:::o;6552:167::-;6630:4;6647:42;6657:12;:10;:12::i;:::-;6671:9;6682:6;6647:9;:42::i;:::-;6707:4;6700:11;;6552:167;;;;:::o;4689:56::-;;;;:::o;7070:143::-;7151:7;7178:11;:18;7190:5;7178:18;;;;;;;;;;;;;;;:27;7197:7;7178:27;;;;;;;;;;;;;;;;7171:34;;7070:143;;;;:::o;7390:181::-;2690:12;:10;:12::i;:::-;2680:22;;:6;;;;;;;;;;:22;;;2672:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7506:17:::1;7494:11;:29;;;;7545:18;7532:12;:31;;;;7390:181:::0;;:::o;11251:172::-;11293:18;11312:21;11293:40;;11358:1;11347:10;:12;11344:72;;;11373:10;;;;;;;;;;;:19;;:31;11393:10;11373:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11344:72;11282:141;11251:172::o;308:98::-;361:7;388:10;381:17;;308:98;:::o;6727:335::-;6837:1;6820:19;;:5;:19;;;6812:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;6918:1;6899:21;;:7;:21;;;6891:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7000:6;6970:11;:18;6982:5;6970:18;;;;;;;;;;;;;;;:27;6989:7;6970:27;;;;;;;;;;;;;;;:36;;;;7038:7;7022:32;;7031:5;7022:32;;;7047:6;7022:32;;;;;;:::i;:::-;;;;;;;;6727:335;;;:::o;8435:1874::-;8539:1;8523:18;;:4;:18;;;8515:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8616:1;8602:16;;:2;:16;;;8594:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8686:1;8677:6;:10;8669:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8744:17;8786:7;:5;:7::i;:::-;8778:15;;:4;:15;;;;:32;;;;;8803:7;:5;:7::i;:::-;8797:13;;:2;:13;;;;8778:32;8774:1177;;;8836:4;:10;8841:4;8836:10;;;;;;;;;;;;;;;;;;;;;;;;;8835:11;:24;;;;;8851:4;:8;8856:2;8851:8;;;;;;;;;;;;;;;;;;;;;;;;;8850:9;8835:24;8827:33;;;;;;8887:13;;;;;;;;;;;8879:21;;:4;:21;;;:55;;;;;8918:15;;;;;;;;;;;8904:30;;:2;:30;;;;8879:55;:83;;;;;8940:18;:22;8959:2;8940:22;;;;;;;;;;;;;;;;;;;;;;;;;8938:24;8879:83;8875:405;;;8992:11;;;;;;;;;;;8984:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;9061:12;;9051:6;:22;;9043:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;9156:14;;9146:6;9130:13;9140:2;9130:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;9122:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9232:32;9260:3;9232:23;9243:11;;9232:6;:10;;:23;;;;:::i;:::-;:27;;:32;;;;:::i;:::-;9220:44;;8875:405;9305:13;;;;;;;;;;;9299:19;;:2;:19;;;:43;;;;;9337:4;9322:20;;:4;:20;;;;9299:43;9296:128;;;9375:33;9404:3;9375:24;9386:12;;9375:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;9363:45;;9296:128;9440:28;9471:24;9489:4;9471:9;:24::i;:::-;9440:55;;9515:6;;;;;;;;;;;9514:7;:32;;;;;9533:13;;;;;;;;;;;9525:21;;:2;:21;;;9514:32;:47;;;;;9550:11;;;;;;;;;;;9514:47;:89;;;;;9586:17;;9565:20;:38;9514:89;:117;;;;;9619:12;9607:8;;:24;;9514:117;9510:430;;;9652:35;9669:17;;9652:16;:35::i;:::-;9706:26;9735:21;9706:50;;9799:1;9778:18;:22;9775:105;;;9825:35;9838:21;9825:12;:35::i;:::-;9775:105;9912:12;9901:8;:23;;;;9633:307;9510:430;8812:1139;8774:1177;9976:1;9966:9;:11;9963:161;;;10016:39;10045:9;10016;:24;10034:4;10016:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9991:9;:24;10009:4;9991:24;;;;;;;;;;;;;;;:64;;;;10096:4;10073:39;;10082:4;10073:39;;;10102:9;10073:39;;;;;;:::i;:::-;;;;;;;;9963:161;10152:27;10172:6;10152:9;:15;10162:4;10152:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10136:9;:15;10146:4;10136:15;;;;;;;;;;;;;;;:43;;;;10204:40;10222:21;10233:9;10222:6;:10;;:21;;;;:::i;:::-;10204:9;:13;10214:2;10204:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10190:9;:13;10200:2;10190:13;;;;;;;;;;;;;;;:54;;;;10275:2;10260:41;;10269:4;10260:41;;;10279:21;10290:9;10279:6;:10;;:21;;;;:::i;:::-;10260:41;;;;;;:::i;:::-;;;;;;;;8504:1805;8435:1874;;;:::o;1445:190::-;1531:7;1564:1;1559;:6;;1567:12;1551:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1591:9;1607:1;1603;:5;;;;:::i;:::-;1591:17;;1626:1;1619:8;;;1445:190;;;;;:::o;10317:483::-;5041:4;5032:6;;:13;;;;;;;;;;;;;;;;;;10395:21:::1;10433:1;10419:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10395:40;;10464:4;10446;10451:1;10446:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10490:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10480:4;10485:1;10480:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10523:62;10540:4;10555:15;;;;;;;;;;;10573:11;10523:8;:62::i;:::-;10596:15;;;;;;;;;;;:66;;;10677:11;10703:1;10719:4;10746;10766:15;10596:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10384:416;5077:5:::0;5068:6;;:14;;;;;;;;;;;;;;;;;;10317:483;:::o;11135:92::-;11192:10;;;;;;;;;;;:19;;:27;11212:6;11192:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11135:92;:::o;1643:246::-;1701:7;1730:1;1725;:6;1721:47;;1755:1;1748:8;;;;1721:47;1778:9;1794:1;1790;:5;;;;:::i;:::-;1778:17;;1823:1;1818;1814;:5;;;;:::i;:::-;:10;1806:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1880:1;1873:8;;;1643:246;;;;;:::o;1897:132::-;1955:7;1982:39;1986:1;1989;1982:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1975:46;;1897:132;;;;:::o;1114:179::-;1172:7;1192:9;1208:1;1204;:5;;;;:::i;:::-;1192:17;;1233:1;1228;:6;;1220:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1284:1;1277:8;;;1114:179;;;;:::o;1301:136::-;1359:7;1386:43;1390:1;1393;1386:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1379:50;;1301:136;;;;:::o;2037:189::-;2123:7;2155:1;2151;:5;2158:12;2143:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2182:9;2198:1;2194;:5;;;;:::i;:::-;2182:17;;2217:1;2210:8;;;2037: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;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652: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:117::-;3555:1;3552;3545:12;3569:180;3617:77;3614:1;3607:88;3714:4;3711:1;3704:15;3738:4;3735:1;3728:15;3755:281;3838:27;3860:4;3838:27;:::i;:::-;3830:6;3826:40;3968:6;3956:10;3953:22;3932:18;3920:10;3917:34;3914:62;3911:88;;;3979:18;;:::i;:::-;3911:88;4019:10;4015:2;4008:22;3798:238;3755:281;;:::o;4042:129::-;4076:6;4103:20;;:::i;:::-;4093:30;;4132:33;4160:4;4152:6;4132:33;:::i;:::-;4042:129;;;:::o;4177:311::-;4254:4;4344:18;4336:6;4333:30;4330:56;;;4366:18;;:::i;:::-;4330:56;4416:4;4408:6;4404:17;4396:25;;4476:4;4470;4466:15;4458:23;;4177:311;;;:::o;4494:117::-;4603:1;4600;4593:12;4634:710;4730:5;4755:81;4771:64;4828:6;4771:64;:::i;:::-;4755:81;:::i;:::-;4746:90;;4856:5;4885:6;4878:5;4871:21;4919:4;4912:5;4908:16;4901:23;;4972:4;4964:6;4960:17;4952:6;4948:30;5001:3;4993:6;4990:15;4987:122;;;5020:79;;:::i;:::-;4987:122;5135:6;5118:220;5152:6;5147:3;5144:15;5118:220;;;5227:3;5256:37;5289:3;5277:10;5256:37;:::i;:::-;5251:3;5244:50;5323:4;5318:3;5314:14;5307:21;;5194:144;5178:4;5173:3;5169:14;5162:21;;5118:220;;;5122:21;4736:608;;4634:710;;;;;:::o;5367:370::-;5438:5;5487:3;5480:4;5472:6;5468:17;5464:27;5454:122;;5495:79;;:::i;:::-;5454:122;5612:6;5599:20;5637:94;5727:3;5719:6;5712:4;5704:6;5700:17;5637:94;:::i;:::-;5628:103;;5444:293;5367:370;;;;:::o;5743:539::-;5827:6;5876:2;5864:9;5855:7;5851:23;5847:32;5844:119;;;5882:79;;:::i;:::-;5844:119;6030:1;6019:9;6015:17;6002:31;6060:18;6052:6;6049:30;6046:117;;;6082:79;;:::i;:::-;6046:117;6187:78;6257:7;6248:6;6237:9;6233:22;6187:78;:::i;:::-;6177:88;;5973:302;5743:539;;;;:::o;6288:118::-;6375:24;6393:5;6375:24;:::i;:::-;6370:3;6363:37;6288:118;;:::o;6412:222::-;6505:4;6543:2;6532:9;6528:18;6520:26;;6556:71;6624:1;6613:9;6609:17;6600:6;6556:71;:::i;:::-;6412:222;;;;:::o;6640:619::-;6717:6;6725;6733;6782:2;6770:9;6761:7;6757:23;6753:32;6750:119;;;6788:79;;:::i;:::-;6750:119;6908:1;6933:53;6978:7;6969:6;6958:9;6954:22;6933:53;:::i;:::-;6923:63;;6879:117;7035:2;7061:53;7106:7;7097:6;7086:9;7082:22;7061:53;:::i;:::-;7051:63;;7006:118;7163:2;7189:53;7234:7;7225:6;7214:9;7210:22;7189:53;:::i;:::-;7179:63;;7134:118;6640:619;;;;;:::o;7265:86::-;7300:7;7340:4;7333:5;7329:16;7318:27;;7265:86;;;:::o;7357:112::-;7440:22;7456:5;7440:22;:::i;:::-;7435:3;7428:35;7357:112;;:::o;7475:214::-;7564:4;7602:2;7591:9;7587:18;7579:26;;7615:67;7679:1;7668:9;7664:17;7655:6;7615:67;:::i;:::-;7475:214;;;;:::o;7695:118::-;7782:24;7800:5;7782:24;:::i;:::-;7777:3;7770:37;7695:118;;:::o;7819:222::-;7912:4;7950:2;7939:9;7935:18;7927:26;;7963:71;8031:1;8020:9;8016:17;8007:6;7963:71;:::i;:::-;7819:222;;;;:::o;8047:329::-;8106:6;8155:2;8143:9;8134:7;8130:23;8126:32;8123:119;;;8161:79;;:::i;:::-;8123:119;8281:1;8306:53;8351:7;8342:6;8331:9;8327:22;8306:53;:::i;:::-;8296:63;;8252:117;8047:329;;;;:::o;8382:474::-;8450:6;8458;8507:2;8495:9;8486:7;8482:23;8478:32;8475:119;;;8513:79;;:::i;:::-;8475:119;8633:1;8658:53;8703:7;8694:6;8683:9;8679:22;8658:53;:::i;:::-;8648:63;;8604:117;8760:2;8786:53;8831:7;8822:6;8811:9;8807:22;8786:53;:::i;:::-;8776:63;;8731:118;8382:474;;;;;:::o;8862:::-;8930:6;8938;8987:2;8975:9;8966:7;8962:23;8958:32;8955:119;;;8993:79;;:::i;:::-;8955:119;9113:1;9138:53;9183:7;9174:6;9163:9;9159:22;9138:53;:::i;:::-;9128:63;;9084:117;9240:2;9266:53;9311:7;9302:6;9291:9;9287:22;9266:53;:::i;:::-;9256:63;;9211:118;8862:474;;;;;:::o;9342:182::-;9482:34;9478:1;9470:6;9466:14;9459:58;9342:182;:::o;9530:366::-;9672:3;9693:67;9757:2;9752:3;9693:67;:::i;:::-;9686:74;;9769:93;9858:3;9769:93;:::i;:::-;9887:2;9882:3;9878:12;9871:19;;9530:366;;;:::o;9902:419::-;10068:4;10106:2;10095:9;10091:18;10083:26;;10155:9;10149:4;10145:20;10141:1;10130:9;10126:17;10119:47;10183:131;10309:4;10183:131;:::i;:::-;10175:139;;9902:419;;;:::o;10327:180::-;10375:77;10372:1;10365:88;10472:4;10469:1;10462:15;10496:4;10493:1;10486:15;10513:180;10561:77;10558:1;10551:88;10658:4;10655:1;10648:15;10682:4;10679:1;10672:15;10699:233;10738:3;10761:24;10779:5;10761:24;:::i;:::-;10752:33;;10807:66;10800:5;10797:77;10794:103;;10877:18;;:::i;:::-;10794:103;10924:1;10917:5;10913:13;10906:20;;10699:233;;;:::o;10938:102::-;10980:8;11027:5;11024:1;11020:13;10999:34;;10938:102;;;:::o;11046:848::-;11107:5;11114:4;11138:6;11129:15;;11162:5;11153:14;;11176:712;11197:1;11187:8;11184:15;11176:712;;;11292:4;11287:3;11283:14;11277:4;11274:24;11271:50;;;11301:18;;:::i;:::-;11271:50;11351:1;11341:8;11337:16;11334:451;;;11766:4;11759:5;11755:16;11746:25;;11334:451;11816:4;11810;11806:15;11798:23;;11846:32;11869:8;11846:32;:::i;:::-;11834:44;;11176:712;;;11046:848;;;;;;;:::o;11900:1073::-;11954:5;12145:8;12135:40;;12166:1;12157:10;;12168:5;;12135:40;12194:4;12184:36;;12211:1;12202:10;;12213:5;;12184:36;12280:4;12328:1;12323:27;;;;12364:1;12359:191;;;;12273:277;;12323:27;12341:1;12332:10;;12343:5;;;12359:191;12404:3;12394:8;12391:17;12388:43;;;12411:18;;:::i;:::-;12388:43;12460:8;12457:1;12453:16;12444:25;;12495:3;12488:5;12485:14;12482:40;;;12502:18;;:::i;:::-;12482:40;12535:5;;;12273:277;;12659:2;12649:8;12646:16;12640:3;12634:4;12631:13;12627:36;12609:2;12599:8;12596:16;12591:2;12585:4;12582:12;12578:35;12562:111;12559:246;;;12715:8;12709:4;12705:19;12696:28;;12750:3;12743:5;12740:14;12737:40;;;12757:18;;:::i;:::-;12737:40;12790:5;;12559:246;12830:42;12868:3;12858:8;12852:4;12849:1;12830:42;:::i;:::-;12815:57;;;;12904:4;12899:3;12895:14;12888:5;12885:25;12882:51;;;12913:18;;:::i;:::-;12882:51;12962:4;12955:5;12951:16;12942:25;;11900:1073;;;;;;:::o;12979:281::-;13037:5;13061:23;13079:4;13061:23;:::i;:::-;13053:31;;13105:25;13121:8;13105:25;:::i;:::-;13093:37;;13149:104;13186:66;13176:8;13170:4;13149:104;:::i;:::-;13140:113;;12979:281;;;;:::o;13266:410::-;13306:7;13329:20;13347:1;13329:20;:::i;:::-;13324:25;;13363:20;13381:1;13363:20;:::i;:::-;13358:25;;13418:1;13415;13411:9;13440:30;13458:11;13440:30;:::i;:::-;13429:41;;13619:1;13610:7;13606:15;13603:1;13600:22;13580:1;13573:9;13553:83;13530:139;;13649:18;;:::i;:::-;13530:139;13314:362;13266:410;;;;:::o;13682:221::-;13822:34;13818:1;13810:6;13806:14;13799:58;13891:4;13886:2;13878:6;13874:15;13867:29;13682:221;:::o;13909:366::-;14051:3;14072:67;14136:2;14131:3;14072:67;:::i;:::-;14065:74;;14148:93;14237:3;14148:93;:::i;:::-;14266:2;14261:3;14257:12;14250:19;;13909:366;;;:::o;14281:419::-;14447:4;14485:2;14474:9;14470:18;14462:26;;14534:9;14528:4;14524:20;14520:1;14509:9;14505:17;14498:47;14562:131;14688:4;14562:131;:::i;:::-;14554:139;;14281:419;;;:::o;14706:223::-;14846:34;14842:1;14834:6;14830:14;14823:58;14915:6;14910:2;14902:6;14898:15;14891:31;14706:223;:::o;14935:366::-;15077:3;15098:67;15162:2;15157:3;15098:67;:::i;:::-;15091:74;;15174:93;15263:3;15174:93;:::i;:::-;15292:2;15287:3;15283:12;15276:19;;14935:366;;;:::o;15307:419::-;15473:4;15511:2;15500:9;15496:18;15488:26;;15560:9;15554:4;15550:20;15546:1;15535:9;15531:17;15524:47;15588:131;15714:4;15588:131;:::i;:::-;15580:139;;15307:419;;;:::o;15732:221::-;15872:34;15868:1;15860:6;15856:14;15849:58;15941:4;15936:2;15928:6;15924:15;15917:29;15732:221;:::o;15959:366::-;16101:3;16122:67;16186:2;16181:3;16122:67;:::i;:::-;16115:74;;16198:93;16287:3;16198:93;:::i;:::-;16316:2;16311:3;16307:12;16300:19;;15959:366;;;:::o;16331:419::-;16497:4;16535:2;16524:9;16520:18;16512:26;;16584:9;16578:4;16574:20;16570:1;16559:9;16555:17;16548:47;16612:131;16738:4;16612:131;:::i;:::-;16604:139;;16331:419;;;:::o;16756:224::-;16896:34;16892:1;16884:6;16880:14;16873:58;16965:7;16960:2;16952:6;16948:15;16941:32;16756:224;:::o;16986:366::-;17128:3;17149:67;17213:2;17208:3;17149:67;:::i;:::-;17142:74;;17225:93;17314:3;17225:93;:::i;:::-;17343:2;17338:3;17334:12;17327:19;;16986:366;;;:::o;17358:419::-;17524:4;17562:2;17551:9;17547:18;17539:26;;17611:9;17605:4;17601:20;17597:1;17586:9;17582:17;17575:47;17639:131;17765:4;17639:131;:::i;:::-;17631:139;;17358:419;;;:::o;17783:222::-;17923:34;17919:1;17911:6;17907:14;17900:58;17992:5;17987:2;17979:6;17975:15;17968:30;17783:222;:::o;18011:366::-;18153:3;18174:67;18238:2;18233:3;18174:67;:::i;:::-;18167:74;;18250:93;18339:3;18250:93;:::i;:::-;18368:2;18363:3;18359:12;18352:19;;18011:366;;;:::o;18383:419::-;18549:4;18587:2;18576:9;18572:18;18564:26;;18636:9;18630:4;18626:20;18622:1;18611:9;18607:17;18600:47;18664:131;18790:4;18664:131;:::i;:::-;18656:139;;18383:419;;;:::o;18808:228::-;18948:34;18944:1;18936:6;18932:14;18925:58;19017:11;19012:2;19004:6;19000:15;18993:36;18808:228;:::o;19042:366::-;19184:3;19205:67;19269:2;19264:3;19205:67;:::i;:::-;19198:74;;19281:93;19370:3;19281:93;:::i;:::-;19399:2;19394:3;19390:12;19383:19;;19042:366;;;:::o;19414:419::-;19580:4;19618:2;19607:9;19603:18;19595:26;;19667:9;19661:4;19657:20;19653:1;19642:9;19638:17;19631:47;19695:131;19821:4;19695:131;:::i;:::-;19687:139;;19414:419;;;:::o;19839:166::-;19979:18;19975:1;19967:6;19963:14;19956:42;19839:166;:::o;20011:366::-;20153:3;20174:67;20238:2;20233:3;20174:67;:::i;:::-;20167:74;;20250:93;20339:3;20250:93;:::i;:::-;20368:2;20363:3;20359:12;20352:19;;20011:366;;;:::o;20383:419::-;20549:4;20587:2;20576:9;20572:18;20564:26;;20636:9;20630:4;20626:20;20622:1;20611:9;20607:17;20600:47;20664:131;20790:4;20664:131;:::i;:::-;20656:139;;20383:419;;;:::o;20808:175::-;20948:27;20944:1;20936:6;20932:14;20925:51;20808:175;:::o;20989:366::-;21131:3;21152:67;21216:2;21211:3;21152:67;:::i;:::-;21145:74;;21228:93;21317:3;21228:93;:::i;:::-;21346:2;21341:3;21337:12;21330:19;;20989:366;;;:::o;21361:419::-;21527:4;21565:2;21554:9;21550:18;21542:26;;21614:9;21608:4;21604:20;21600:1;21589:9;21585:17;21578:47;21642:131;21768:4;21642:131;:::i;:::-;21634:139;;21361:419;;;:::o;21786:191::-;21826:3;21845:20;21863:1;21845:20;:::i;:::-;21840:25;;21879:20;21897:1;21879:20;:::i;:::-;21874:25;;21922:1;21919;21915:9;21908:16;;21943:3;21940:1;21937:10;21934:36;;;21950:18;;:::i;:::-;21934:36;21786:191;;;;:::o;21983:176::-;22123:28;22119:1;22111:6;22107:14;22100:52;21983:176;:::o;22165:366::-;22307:3;22328:67;22392:2;22387:3;22328:67;:::i;:::-;22321:74;;22404:93;22493:3;22404:93;:::i;:::-;22522:2;22517:3;22513:12;22506:19;;22165:366;;;:::o;22537:419::-;22703:4;22741:2;22730:9;22726:18;22718:26;;22790:9;22784:4;22780:20;22776:1;22765:9;22761:17;22754:47;22818:131;22944:4;22818:131;:::i;:::-;22810:139;;22537:419;;;:::o;22962:194::-;23002:4;23022:20;23040:1;23022:20;:::i;:::-;23017:25;;23056:20;23074:1;23056:20;:::i;:::-;23051:25;;23100:1;23097;23093:9;23085:17;;23124:1;23118:4;23115:11;23112:37;;;23129:18;;:::i;:::-;23112:37;22962:194;;;;:::o;23162:143::-;23219:5;23250:6;23244:13;23235:22;;23266:33;23293:5;23266:33;:::i;:::-;23162:143;;;;:::o;23311:351::-;23381:6;23430:2;23418:9;23409:7;23405:23;23401:32;23398:119;;;23436:79;;:::i;:::-;23398:119;23556:1;23581:64;23637:7;23628:6;23617:9;23613:22;23581:64;:::i;:::-;23571:74;;23527:128;23311:351;;;;:::o;23668:85::-;23713:7;23742:5;23731:16;;23668:85;;;:::o;23759:60::-;23787:3;23808:5;23801:12;;23759:60;;;:::o;23825:158::-;23883:9;23916:61;23934:42;23943:32;23969:5;23943:32;:::i;:::-;23934:42;:::i;:::-;23916:61;:::i;:::-;23903:74;;23825:158;;;:::o;23989:147::-;24084:45;24123:5;24084:45;:::i;:::-;24079:3;24072:58;23989:147;;:::o;24142:114::-;24209:6;24243:5;24237:12;24227:22;;24142:114;;;:::o;24262:184::-;24361:11;24395:6;24390:3;24383:19;24435:4;24430:3;24426:14;24411:29;;24262:184;;;;:::o;24452:132::-;24519:4;24542:3;24534:11;;24572:4;24567:3;24563:14;24555:22;;24452:132;;;:::o;24590:108::-;24667:24;24685:5;24667:24;:::i;:::-;24662:3;24655:37;24590:108;;:::o;24704:179::-;24773:10;24794:46;24836:3;24828:6;24794:46;:::i;:::-;24872:4;24867:3;24863:14;24849:28;;24704:179;;;;:::o;24889:113::-;24959:4;24991;24986:3;24982:14;24974:22;;24889:113;;;:::o;25038:732::-;25157:3;25186:54;25234:5;25186:54;:::i;:::-;25256:86;25335:6;25330:3;25256:86;:::i;:::-;25249:93;;25366:56;25416:5;25366:56;:::i;:::-;25445:7;25476:1;25461:284;25486:6;25483:1;25480:13;25461:284;;;25562:6;25556:13;25589:63;25648:3;25633:13;25589:63;:::i;:::-;25582:70;;25675:60;25728:6;25675:60;:::i;:::-;25665:70;;25521:224;25508:1;25505;25501:9;25496:14;;25461:284;;;25465:14;25761:3;25754:10;;25162:608;;;25038:732;;;;:::o;25776:831::-;26039:4;26077:3;26066:9;26062:19;26054:27;;26091:71;26159:1;26148:9;26144:17;26135:6;26091:71;:::i;:::-;26172:80;26248:2;26237:9;26233:18;26224:6;26172:80;:::i;:::-;26299:9;26293:4;26289:20;26284:2;26273:9;26269:18;26262:48;26327:108;26430:4;26421:6;26327:108;:::i;:::-;26319:116;;26445:72;26513:2;26502:9;26498:18;26489:6;26445:72;:::i;:::-;26527:73;26595:3;26584:9;26580:19;26571:6;26527:73;:::i;:::-;25776:831;;;;;;;;:::o;26613:180::-;26661:77;26658:1;26651:88;26758:4;26755:1;26748:15;26782:4;26779:1;26772:15;26799:185;26839:1;26856:20;26874:1;26856:20;:::i;:::-;26851:25;;26890:20;26908:1;26890:20;:::i;:::-;26885:25;;26929:1;26919:35;;26934:18;;:::i;:::-;26919:35;26976:1;26973;26969:9;26964:14;;26799:185;;;;:::o;26990:220::-;27130:34;27126:1;27118:6;27114:14;27107:58;27199:3;27194:2;27186:6;27182:15;27175:28;26990:220;:::o;27216:366::-;27358:3;27379:67;27443:2;27438:3;27379:67;:::i;:::-;27372:74;;27455:93;27544:3;27455:93;:::i;:::-;27573:2;27568:3;27564:12;27557:19;;27216:366;;;:::o;27588:419::-;27754:4;27792:2;27781:9;27777:18;27769:26;;27841:9;27835:4;27831:20;27827:1;27816:9;27812:17;27805:47;27869:131;27995:4;27869:131;:::i;:::-;27861:139;;27588:419;;;:::o;28013:177::-;28153:29;28149:1;28141:6;28137:14;28130:53;28013:177;:::o;28196:366::-;28338:3;28359:67;28423:2;28418:3;28359:67;:::i;:::-;28352:74;;28435:93;28524:3;28435:93;:::i;:::-;28553:2;28548:3;28544:12;28537:19;;28196:366;;;:::o;28568:419::-;28734:4;28772:2;28761:9;28757:18;28749:26;;28821:9;28815:4;28811:20;28807:1;28796:9;28792:17;28785:47;28849:131;28975:4;28849:131;:::i;:::-;28841:139;;28568:419;;;:::o

Swarm Source

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