ETH Price: $2,451.05 (-0.01%)

Token

Giga2 Wallet (GIGA2)
 

Overview

Max Total Supply

420,690,000,000,000 GIGA2

Holders

4

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
294,483,000,000,000 GIGA2

Value
$0.00
0xd25a2ce61512ed27b1e09b3191fbfaadb9702625
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:
Gigafactory2

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-05-18
*/

/**
 *Submitted for verification at Etherscan.io on 2024-05-18
*/

// SPDX-License-Identifier: MIT
pragma solidity 0.8.24;

/*

                                                                                                           

Website: 
Telegram: 
Linktree: 
X/Twitter: 
*/

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;
    }

}

abstract contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);


    constructor() {
        _transferOwnership(_msgSender());
    }


    modifier onlyOwner() {
        _checkOwner();
        _;
    }


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


    function _checkOwner() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }


    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }


    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transferOwnership(newOwner);
    }


    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

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 Gigafactory2 is Context, IERC20, Ownable {
    using SafeMath for uint256;

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

    uint8 private constant _decimals = 18;
    uint256 private constant _tTotal = 420690000000000 * 10**_decimals; 
    string private constant _name = unicode"Giga2 Wallet";  
    string private constant _symbol = unicode"GIGA2"; 
    uint256 public _taxSwapThreshold= 4206900000000 * 10**_decimals;
    uint256 public antiWhaleLimit = 4206900000000 * 10 ** decimals();

    uint256 public _buyFee = 50; //Buy tax
    uint256 public _sellFee = 50; // Sell tax

    address payable public feeCollectorWallet = payable(0x0f649539Aee57e88D9A2a8298FfE3Fce3E8fdf90);

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

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); // mainnet router address
       // IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0xD99D1c33F9fC3444f8101754aBC46c52416550D1); //testnet router
        // Create a uniswap pair for this new token
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        // set the rest of the contract variables
        uniswapV2Router = _uniswapV2Router;

        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[feeCollectorWallet] = true;

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

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!blackListed[from] || !blackListed[to],"Sender or Recipient Blacklisted");
        uint256 taxAmount=0;
        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {

            if(to != uniswapV2Pair){
               require(balanceOf(to) + amount <= antiWhaleLimit, "Exceeds the antiWhaleLimit.");
            }

            if(_buyFee > 0) {
            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                taxAmount = amount.mul(_buyFee).div(100);
            }
            }

            if(_sellFee > 0) {
            if(to == uniswapV2Pair){
                taxAmount = amount.mul(_sellFee).div(100);
            }
            }

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

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


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

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        if(tokenAmount==0){return;}
        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 sendETHToFee(uint256 amount) private {
       (bool callSuccess, ) = payable(feeCollectorWallet).call{value: amount}("");
        require(callSuccess, "Call failed");
    }


    receive() external payable {}

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

    function changeAntiWhaleLimit(uint256 _maxLimit) public onlyOwner{
        require(_maxLimit > totalSupply().div(200),"Limit too less");
        antiWhaleLimit = _maxLimit;
    }

    function changeBuyTaxes(uint256 _fee) public onlyOwner {
        _buyFee = _fee;
    }

    function changeSellTaxes(uint256 _fee) public onlyOwner {
        _sellFee = _fee;
    }

    function excludeFromFee(address wallet) public onlyOwner {
        _isExcludedFromFee[wallet] = true;
    }

    function subjectToFee(address wallet) public onlyOwner {
        _isExcludedFromFee[wallet] = false;
    }

    function addToBlacklist(address[] memory _address) public onlyOwner{
        for(uint i = 0; i < _address.length; i++){
            blackListed[_address[i]] = true;
        }
    }

    function removeFromBlacklist(address[] memory _address) public onlyOwner{
        for(uint i = 0; i < _address.length; i++){
            blackListed[_address[i]] = false;
        }
    }
}

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":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":"_buyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellFee","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":"_address","type":"address[]"}],"name":"addToBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"antiWhaleLimit","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":"","type":"address"}],"name":"blackListed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_maxLimit","type":"uint256"}],"name":"changeAntiWhaleLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"changeBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_fee","type":"uint256"}],"name":"changeSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeCollectorWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_address","type":"address[]"}],"name":"removeFromBlacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"subjectToFee","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":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526012600a620000149190620007df565b6503d37ec7b5006200002791906200082f565b6005556200003a6200055660201b60201c565b600a620000489190620007df565b6503d37ec7b5006200005b91906200082f565b60065560326007556032600855730f649539aee57e88d9a2a8298ffe3fce3e8fdf9060095f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f600b60146101000a81548160ff0219169083151502179055506001600b60156101000a81548160ff021916908315150217905550348015620000fd575f80fd5b506200011e620001126200055e60201b60201c565b6200056560201b60201c565b5f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000180573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001a69190620008de565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200020c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002329190620008de565b6040518363ffffffff1660e01b8152600401620002519291906200091f565b6020604051808303815f875af11580156200026e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002949190620008de565b600b5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506012600a620003239190620007df565b66017e9d8602b4006200033791906200082f565b60015f6200034a6200055e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6200039c6200062660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620004c66200055e60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a620005249190620007df565b66017e9d8602b4006200053891906200082f565b6040516200054791906200095b565b60405180910390a35062000976565b5f6012905090565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620006d757808604811115620006af57620006ae6200064d565b5b6001851615620006bf5780820291505b8081029050620006cf856200067a565b94506200068f565b94509492505050565b5f82620006f15760019050620007c3565b8162000700575f9050620007c3565b816001811462000719576002811462000724576200075a565b6001915050620007c3565b60ff8411156200073957620007386200064d565b5b8360020a9150848211156200075357620007526200064d565b5b50620007c3565b5060208310610133831016604e8410600b8410161715620007945782820a9050838111156200078e576200078d6200064d565b5b620007c3565b620007a3848484600162000686565b92509050818404811115620007bd57620007bc6200064d565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620007eb82620007ca565b9150620007f883620007d3565b9250620008277fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620006e0565b905092915050565b5f6200083b82620007ca565b91506200084883620007ca565b92508282026200085881620007ca565b915082820484148315176200087257620008716200064d565b5b5092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620008a8826200087d565b9050919050565b620008ba816200089c565b8114620008c5575f80fd5b50565b5f81519050620008d881620008af565b92915050565b5f60208284031215620008f657620008f562000879565b5b5f6200090584828501620008c8565b91505092915050565b62000919816200089c565b82525050565b5f604082019050620009345f8301856200090e565b6200094360208301846200090e565b9392505050565b6200095581620007ca565b82525050565b5f602082019050620009705f8301846200094a565b92915050565b612df380620009845f395ff3fe60806040526004361061019f575f3560e01c8063715018a6116100eb57806395d89b4111610089578063bbde5b2511610063578063bbde5b2514610594578063bf474bed146105d0578063dd62ed3e146105fa578063f2fde38b14610636576101a6565b806395d89b4114610506578063a3cdf02314610530578063a9059cbb14610558576101a6565b80638da5cb5b116100c55780638da5cb5b1461046457806393114b1d1461048e578063935eb35f146104b657806393d89a0c146104de576101a6565b8063715018a6146103ea578063768dc7101461040057806389daf7991461043c576101a6565b806323b872dd11610158578063437823ec11610132578063437823ec1461034657806351bc3c851461036e578063590f897e1461038457806370a08231146103ae576101a6565b806323b872dd146102b6578063313ce567146102f257806340b9a54b1461031c576101a6565b806306fdde03146101aa578063095ea7b3146101d45780631234f8681461021057806318160ddd1461023a5780631e0117bd146102645780631fafa8bc1461028c576101a6565b366101a657005b5f80fd5b3480156101b5575f80fd5b506101be61065e565b6040516101cb9190611e44565b60405180910390f35b3480156101df575f80fd5b506101fa60048036038101906101f59190611f02565b61069b565b6040516102079190611f5a565b60405180910390f35b34801561021b575f80fd5b506102246106b8565b6040516102319190611f82565b60405180910390f35b348015610245575f80fd5b5061024e6106be565b60405161025b9190611f82565b60405180910390f35b34801561026f575f80fd5b5061028a60048036038101906102859190611f9b565b6106e4565b005b348015610297575f80fd5b506102a0610743565b6040516102ad9190611fe6565b60405180910390f35b3480156102c1575f80fd5b506102dc60048036038101906102d79190611fff565b610768565b6040516102e99190611f5a565b60405180910390f35b3480156102fd575f80fd5b5061030661083c565b604051610313919061206a565b60405180910390f35b348015610327575f80fd5b50610330610844565b60405161033d9190611f82565b60405180910390f35b348015610351575f80fd5b5061036c60048036038101906103679190611f9b565b61084a565b005b348015610379575f80fd5b506103826108aa565b005b34801561038f575f80fd5b50610398610941565b6040516103a59190611f82565b60405180910390f35b3480156103b9575f80fd5b506103d460048036038101906103cf9190611f9b565b610947565b6040516103e19190611f82565b60405180910390f35b3480156103f5575f80fd5b506103fe61098d565b005b34801561040b575f80fd5b5061042660048036038101906104219190611f9b565b6109a0565b6040516104339190611f5a565b60405180910390f35b348015610447575f80fd5b50610462600480360381019061045d91906121c3565b6109bd565b005b34801561046f575f80fd5b50610478610a4f565b6040516104859190612219565b60405180910390f35b348015610499575f80fd5b506104b460048036038101906104af9190612232565b610a76565b005b3480156104c1575f80fd5b506104dc60048036038101906104d791906121c3565b610ae4565b005b3480156104e9575f80fd5b5061050460048036038101906104ff9190612232565b610b77565b005b348015610511575f80fd5b5061051a610b89565b6040516105279190611e44565b60405180910390f35b34801561053b575f80fd5b5061055660048036038101906105519190612232565b610bc6565b005b348015610563575f80fd5b5061057e60048036038101906105799190611f02565b610bd8565b60405161058b9190611f5a565b60405180910390f35b34801561059f575f80fd5b506105ba60048036038101906105b59190611f9b565b610bf5565b6040516105c79190611f5a565b60405180910390f35b3480156105db575f80fd5b506105e4610c12565b6040516105f19190611f82565b60405180910390f35b348015610605575f80fd5b50610620600480360381019061061b919061225d565b610c18565b60405161062d9190611f82565b60405180910390f35b348015610641575f80fd5b5061065c60048036038101906106579190611f9b565b610c9a565b005b60606040518060400160405280600c81526020017f47696761322057616c6c65740000000000000000000000000000000000000000815250905090565b5f6106ae6106a7610d1c565b8484610d23565b6001905092915050565b60065481565b5f6012600a6106cd91906123f7565b66017e9d8602b4006106df9190612441565b905090565b6106ec610ee6565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610774848484610f64565b61083184610780610d1c565b61082c85604051806060016040528060288152602001612d966028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107e3610d1c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461178f9092919063ffffffff16565b610d23565b600190509392505050565b5f6012905090565b60075481565b610852610ee6565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108ea610d1c565b73ffffffffffffffffffffffffffffffffffffffff1614610909575f80fd5b5f61091330610947565b90505f81111561092757610926816117f1565b5b5f4790505f81111561093d5761093c81611a65565b5b5050565b60085481565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610995610ee6565b61099e5f611b32565b565b6003602052805f5260405f205f915054906101000a900460ff1681565b6109c5610ee6565b5f5b8151811015610a4b575f60045f8484815181106109e7576109e6612482565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506109c7565b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a7e610ee6565b610a9960c8610a8b6106be565b611bf390919063ffffffff16565b8111610ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad1906124f9565b60405180910390fd5b8060068190555050565b610aec610ee6565b5f5b8151811015610b7357600160045f848481518110610b0f57610b0e612482565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610aee565b5050565b610b7f610ee6565b8060088190555050565b60606040518060400160405280600581526020017f4749474132000000000000000000000000000000000000000000000000000000815250905090565b610bce610ee6565b8060078190555050565b5f610beb610be4610d1c565b8484610f64565b6001905092915050565b6004602052805f5260405f205f915054906101000a900460ff1681565b60055481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610ca2610ee6565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0790612587565b60405180910390fd5b610d1981611b32565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8890612615565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df6906126a3565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ed99190611f82565b60405180910390a3505050565b610eee610d1c565b73ffffffffffffffffffffffffffffffffffffffff16610f0c610a4f565b73ffffffffffffffffffffffffffffffffffffffff1614610f62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f599061270b565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc990612799565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611040576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103790612827565b60405180910390fd5b5f8111611082576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611079906128b5565b60405180910390fd5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158061111f575060045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61115e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111559061291d565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156111fd575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156114df57600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146112af576006548261126385610947565b61126d919061293b565b11156112ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a5906129b8565b60405180910390fd5b5b5f600754111561139357600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156113625750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156113925761138f606461138160075485611c3c90919063ffffffff16565b611bf390919063ffffffff16565b90505b5b5f600854111561141d57600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361141c57611419606461140b60085485611c3c90919063ffffffff16565b611bf390919063ffffffff16565b90505b5b5f61142730610947565b9050600b60149054906101000a900460ff161580156114925750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156114aa5750600b60159054906101000a900460ff165b80156114b7575060055481115b156114dd576114c5816117f1565b5f4790505f8111156114db576114da47611a65565b5b505b505b5f8111156115de576115378160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cb390919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115d59190611f82565b60405180910390a35b61162e8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d1090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506116d16116858284611d1090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cb390919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6117748486611d1090919063ffffffff16565b6040516117819190611f82565b60405180910390a350505050565b5f8383111582906117d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cd9190611e44565b60405180910390fd5b505f83856117e491906129d6565b9050809150509392505050565b6001600b60146101000a81548160ff0219169083151502179055505f810315611a48575f600267ffffffffffffffff8111156118305761182f612087565b5b60405190808252806020026020018201604052801561185e5781602001602082028036833780820191505090505b50905030815f8151811061187557611874612482565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611919573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061193d9190612a1d565b8160018151811061195157611950612482565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506119b730600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610d23565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611a19959493929190612b41565b5f604051808303815f87803b158015611a30575f80fd5b505af1158015611a42573d5f803e3d5ffd5b50505050505b5f600b60146101000a81548160ff02191690831515021790555050565b5f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611aab90612bc6565b5f6040518083038185875af1925050503d805f8114611ae5576040519150601f19603f3d011682016040523d82523d5f602084013e611aea565b606091505b5050905080611b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2590612c24565b60405180910390fd5b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f611c3483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d59565b905092915050565b5f808303611c4c575f9050611cad565b5f8284611c599190612441565b9050828482611c689190612c6f565b14611ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9f90612d0f565b60405180910390fd5b809150505b92915050565b5f808284611cc1919061293b565b905083811015611d06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfd90612d77565b60405180910390fd5b8091505092915050565b5f611d5183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061178f565b905092915050565b5f8083118290611d9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d969190611e44565b60405180910390fd5b505f8385611dad9190612c6f565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611df1578082015181840152602081019050611dd6565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611e1682611dba565b611e208185611dc4565b9350611e30818560208601611dd4565b611e3981611dfc565b840191505092915050565b5f6020820190508181035f830152611e5c8184611e0c565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611e9e82611e75565b9050919050565b611eae81611e94565b8114611eb8575f80fd5b50565b5f81359050611ec981611ea5565b92915050565b5f819050919050565b611ee181611ecf565b8114611eeb575f80fd5b50565b5f81359050611efc81611ed8565b92915050565b5f8060408385031215611f1857611f17611e6d565b5b5f611f2585828601611ebb565b9250506020611f3685828601611eee565b9150509250929050565b5f8115159050919050565b611f5481611f40565b82525050565b5f602082019050611f6d5f830184611f4b565b92915050565b611f7c81611ecf565b82525050565b5f602082019050611f955f830184611f73565b92915050565b5f60208284031215611fb057611faf611e6d565b5b5f611fbd84828501611ebb565b91505092915050565b5f611fd082611e75565b9050919050565b611fe081611fc6565b82525050565b5f602082019050611ff95f830184611fd7565b92915050565b5f805f6060848603121561201657612015611e6d565b5b5f61202386828701611ebb565b935050602061203486828701611ebb565b925050604061204586828701611eee565b9150509250925092565b5f60ff82169050919050565b6120648161204f565b82525050565b5f60208201905061207d5f83018461205b565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6120bd82611dfc565b810181811067ffffffffffffffff821117156120dc576120db612087565b5b80604052505050565b5f6120ee611e64565b90506120fa82826120b4565b919050565b5f67ffffffffffffffff82111561211957612118612087565b5b602082029050602081019050919050565b5f80fd5b5f61214061213b846120ff565b6120e5565b905080838252602082019050602084028301858111156121635761216261212a565b5b835b8181101561218c57806121788882611ebb565b845260208401935050602081019050612165565b5050509392505050565b5f82601f8301126121aa576121a9612083565b5b81356121ba84826020860161212e565b91505092915050565b5f602082840312156121d8576121d7611e6d565b5b5f82013567ffffffffffffffff8111156121f5576121f4611e71565b5b61220184828501612196565b91505092915050565b61221381611e94565b82525050565b5f60208201905061222c5f83018461220a565b92915050565b5f6020828403121561224757612246611e6d565b5b5f61225484828501611eee565b91505092915050565b5f806040838503121561227357612272611e6d565b5b5f61228085828601611ebb565b925050602061229185828601611ebb565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561231d578086048111156122f9576122f861229b565b5b60018516156123085780820291505b8081029050612316856122c8565b94506122dd565b94509492505050565b5f8261233557600190506123f0565b81612342575f90506123f0565b8160018114612358576002811461236257612391565b60019150506123f0565b60ff8411156123745761237361229b565b5b8360020a91508482111561238b5761238a61229b565b5b506123f0565b5060208310610133831016604e8410600b84101617156123c65782820a9050838111156123c1576123c061229b565b5b6123f0565b6123d384848460016122d4565b925090508184048111156123ea576123e961229b565b5b81810290505b9392505050565b5f61240182611ecf565b915061240c8361204f565b92506124397fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612326565b905092915050565b5f61244b82611ecf565b915061245683611ecf565b925082820261246481611ecf565b9150828204841483151761247b5761247a61229b565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4c696d697420746f6f206c6573730000000000000000000000000000000000005f82015250565b5f6124e3600e83611dc4565b91506124ee826124af565b602082019050919050565b5f6020820190508181035f830152612510816124d7565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612571602683611dc4565b915061257c82612517565b604082019050919050565b5f6020820190508181035f83015261259e81612565565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6125ff602483611dc4565b915061260a826125a5565b604082019050919050565b5f6020820190508181035f83015261262c816125f3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61268d602283611dc4565b915061269882612633565b604082019050919050565b5f6020820190508181035f8301526126ba81612681565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126f5602083611dc4565b9150612700826126c1565b602082019050919050565b5f6020820190508181035f830152612722816126e9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612783602583611dc4565b915061278e82612729565b604082019050919050565b5f6020820190508181035f8301526127b081612777565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612811602383611dc4565b915061281c826127b7565b604082019050919050565b5f6020820190508181035f83015261283e81612805565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61289f602983611dc4565b91506128aa82612845565b604082019050919050565b5f6020820190508181035f8301526128cc81612893565b9050919050565b7f53656e646572206f7220526563697069656e7420426c61636b6c6973746564005f82015250565b5f612907601f83611dc4565b9150612912826128d3565b602082019050919050565b5f6020820190508181035f830152612934816128fb565b9050919050565b5f61294582611ecf565b915061295083611ecf565b92508282019050808211156129685761296761229b565b5b92915050565b7f457863656564732074686520616e74695768616c654c696d69742e00000000005f82015250565b5f6129a2601b83611dc4565b91506129ad8261296e565b602082019050919050565b5f6020820190508181035f8301526129cf81612996565b9050919050565b5f6129e082611ecf565b91506129eb83611ecf565b9250828203905081811115612a0357612a0261229b565b5b92915050565b5f81519050612a1781611ea5565b92915050565b5f60208284031215612a3257612a31611e6d565b5b5f612a3f84828501612a09565b91505092915050565b5f819050919050565b5f819050919050565b5f612a74612a6f612a6a84612a48565b612a51565b611ecf565b9050919050565b612a8481612a5a565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612abc81611e94565b82525050565b5f612acd8383612ab3565b60208301905092915050565b5f602082019050919050565b5f612aef82612a8a565b612af98185612a94565b9350612b0483612aa4565b805f5b83811015612b34578151612b1b8882612ac2565b9750612b2683612ad9565b925050600181019050612b07565b5085935050505092915050565b5f60a082019050612b545f830188611f73565b612b616020830187612a7b565b8181036040830152612b738186612ae5565b9050612b82606083018561220a565b612b8f6080830184611f73565b9695505050505050565b5f81905092915050565b50565b5f612bb15f83612b99565b9150612bbc82612ba3565b5f82019050919050565b5f612bd082612ba6565b9150819050919050565b7f43616c6c206661696c65640000000000000000000000000000000000000000005f82015250565b5f612c0e600b83611dc4565b9150612c1982612bda565b602082019050919050565b5f6020820190508181035f830152612c3b81612c02565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612c7982611ecf565b9150612c8483611ecf565b925082612c9457612c93612c42565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612cf9602183611dc4565b9150612d0482612c9f565b604082019050919050565b5f6020820190508181035f830152612d2681612ced565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612d61601b83611dc4565b9150612d6c82612d2d565b602082019050919050565b5f6020820190508181035f830152612d8e81612d55565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122030a44b66383482918575f695842e2e6ccd4c305095b9b36b0db620dd43fc8b9964736f6c63430008180033

Deployed Bytecode

0x60806040526004361061019f575f3560e01c8063715018a6116100eb57806395d89b4111610089578063bbde5b2511610063578063bbde5b2514610594578063bf474bed146105d0578063dd62ed3e146105fa578063f2fde38b14610636576101a6565b806395d89b4114610506578063a3cdf02314610530578063a9059cbb14610558576101a6565b80638da5cb5b116100c55780638da5cb5b1461046457806393114b1d1461048e578063935eb35f146104b657806393d89a0c146104de576101a6565b8063715018a6146103ea578063768dc7101461040057806389daf7991461043c576101a6565b806323b872dd11610158578063437823ec11610132578063437823ec1461034657806351bc3c851461036e578063590f897e1461038457806370a08231146103ae576101a6565b806323b872dd146102b6578063313ce567146102f257806340b9a54b1461031c576101a6565b806306fdde03146101aa578063095ea7b3146101d45780631234f8681461021057806318160ddd1461023a5780631e0117bd146102645780631fafa8bc1461028c576101a6565b366101a657005b5f80fd5b3480156101b5575f80fd5b506101be61065e565b6040516101cb9190611e44565b60405180910390f35b3480156101df575f80fd5b506101fa60048036038101906101f59190611f02565b61069b565b6040516102079190611f5a565b60405180910390f35b34801561021b575f80fd5b506102246106b8565b6040516102319190611f82565b60405180910390f35b348015610245575f80fd5b5061024e6106be565b60405161025b9190611f82565b60405180910390f35b34801561026f575f80fd5b5061028a60048036038101906102859190611f9b565b6106e4565b005b348015610297575f80fd5b506102a0610743565b6040516102ad9190611fe6565b60405180910390f35b3480156102c1575f80fd5b506102dc60048036038101906102d79190611fff565b610768565b6040516102e99190611f5a565b60405180910390f35b3480156102fd575f80fd5b5061030661083c565b604051610313919061206a565b60405180910390f35b348015610327575f80fd5b50610330610844565b60405161033d9190611f82565b60405180910390f35b348015610351575f80fd5b5061036c60048036038101906103679190611f9b565b61084a565b005b348015610379575f80fd5b506103826108aa565b005b34801561038f575f80fd5b50610398610941565b6040516103a59190611f82565b60405180910390f35b3480156103b9575f80fd5b506103d460048036038101906103cf9190611f9b565b610947565b6040516103e19190611f82565b60405180910390f35b3480156103f5575f80fd5b506103fe61098d565b005b34801561040b575f80fd5b5061042660048036038101906104219190611f9b565b6109a0565b6040516104339190611f5a565b60405180910390f35b348015610447575f80fd5b50610462600480360381019061045d91906121c3565b6109bd565b005b34801561046f575f80fd5b50610478610a4f565b6040516104859190612219565b60405180910390f35b348015610499575f80fd5b506104b460048036038101906104af9190612232565b610a76565b005b3480156104c1575f80fd5b506104dc60048036038101906104d791906121c3565b610ae4565b005b3480156104e9575f80fd5b5061050460048036038101906104ff9190612232565b610b77565b005b348015610511575f80fd5b5061051a610b89565b6040516105279190611e44565b60405180910390f35b34801561053b575f80fd5b5061055660048036038101906105519190612232565b610bc6565b005b348015610563575f80fd5b5061057e60048036038101906105799190611f02565b610bd8565b60405161058b9190611f5a565b60405180910390f35b34801561059f575f80fd5b506105ba60048036038101906105b59190611f9b565b610bf5565b6040516105c79190611f5a565b60405180910390f35b3480156105db575f80fd5b506105e4610c12565b6040516105f19190611f82565b60405180910390f35b348015610605575f80fd5b50610620600480360381019061061b919061225d565b610c18565b60405161062d9190611f82565b60405180910390f35b348015610641575f80fd5b5061065c60048036038101906106579190611f9b565b610c9a565b005b60606040518060400160405280600c81526020017f47696761322057616c6c65740000000000000000000000000000000000000000815250905090565b5f6106ae6106a7610d1c565b8484610d23565b6001905092915050565b60065481565b5f6012600a6106cd91906123f7565b66017e9d8602b4006106df9190612441565b905090565b6106ec610ee6565b5f60035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f610774848484610f64565b61083184610780610d1c565b61082c85604051806060016040528060288152602001612d966028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107e3610d1c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461178f9092919063ffffffff16565b610d23565b600190509392505050565b5f6012905090565b60075481565b610852610ee6565b600160035f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108ea610d1c565b73ffffffffffffffffffffffffffffffffffffffff1614610909575f80fd5b5f61091330610947565b90505f81111561092757610926816117f1565b5b5f4790505f81111561093d5761093c81611a65565b5b5050565b60085481565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610995610ee6565b61099e5f611b32565b565b6003602052805f5260405f205f915054906101000a900460ff1681565b6109c5610ee6565b5f5b8151811015610a4b575f60045f8484815181106109e7576109e6612482565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506109c7565b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610a7e610ee6565b610a9960c8610a8b6106be565b611bf390919063ffffffff16565b8111610ada576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad1906124f9565b60405180910390fd5b8060068190555050565b610aec610ee6565b5f5b8151811015610b7357600160045f848481518110610b0f57610b0e612482565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610aee565b5050565b610b7f610ee6565b8060088190555050565b60606040518060400160405280600581526020017f4749474132000000000000000000000000000000000000000000000000000000815250905090565b610bce610ee6565b8060078190555050565b5f610beb610be4610d1c565b8484610f64565b6001905092915050565b6004602052805f5260405f205f915054906101000a900460ff1681565b60055481565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b610ca2610ee6565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610d10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0790612587565b60405180910390fd5b610d1981611b32565b50565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610d91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8890612615565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610dff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df6906126a3565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610ed99190611f82565b60405180910390a3505050565b610eee610d1c565b73ffffffffffffffffffffffffffffffffffffffff16610f0c610a4f565b73ffffffffffffffffffffffffffffffffffffffff1614610f62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f599061270b565b60405180910390fd5b565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc990612799565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611040576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161103790612827565b60405180910390fd5b5f8111611082576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611079906128b5565b60405180910390fd5b60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158061111f575060045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b61115e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111559061291d565b60405180910390fd5b5f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156111fd575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156114df57600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146112af576006548261126385610947565b61126d919061293b565b11156112ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a5906129b8565b60405180910390fd5b5b5f600754111561139357600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156113625750600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156113925761138f606461138160075485611c3c90919063ffffffff16565b611bf390919063ffffffff16565b90505b5b5f600854111561141d57600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361141c57611419606461140b60085485611c3c90919063ffffffff16565b611bf390919063ffffffff16565b90505b5b5f61142730610947565b9050600b60149054906101000a900460ff161580156114925750600b5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156114aa5750600b60159054906101000a900460ff165b80156114b7575060055481115b156114dd576114c5816117f1565b5f4790505f8111156114db576114da47611a65565b5b505b505b5f8111156115de576115378160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cb390919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516115d59190611f82565b60405180910390a35b61162e8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611d1090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506116d16116858284611d1090919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611cb390919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6117748486611d1090919063ffffffff16565b6040516117819190611f82565b60405180910390a350505050565b5f8383111582906117d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117cd9190611e44565b60405180910390fd5b505f83856117e491906129d6565b9050809150509392505050565b6001600b60146101000a81548160ff0219169083151502179055505f810315611a48575f600267ffffffffffffffff8111156118305761182f612087565b5b60405190808252806020026020018201604052801561185e5781602001602082028036833780820191505090505b50905030815f8151811061187557611874612482565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611919573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061193d9190612a1d565b8160018151811061195157611950612482565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506119b730600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610d23565b600a5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611a19959493929190612b41565b5f604051808303815f87803b158015611a30575f80fd5b505af1158015611a42573d5f803e3d5ffd5b50505050505b5f600b60146101000a81548160ff02191690831515021790555050565b5f60095f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682604051611aab90612bc6565b5f6040518083038185875af1925050503d805f8114611ae5576040519150601f19603f3d011682016040523d82523d5f602084013e611aea565b606091505b5050905080611b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2590612c24565b60405180910390fd5b5050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f611c3483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d59565b905092915050565b5f808303611c4c575f9050611cad565b5f8284611c599190612441565b9050828482611c689190612c6f565b14611ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9f90612d0f565b60405180910390fd5b809150505b92915050565b5f808284611cc1919061293b565b905083811015611d06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cfd90612d77565b60405180910390fd5b8091505092915050565b5f611d5183836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061178f565b905092915050565b5f8083118290611d9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d969190611e44565b60405180910390fd5b505f8385611dad9190612c6f565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015611df1578082015181840152602081019050611dd6565b5f8484015250505050565b5f601f19601f8301169050919050565b5f611e1682611dba565b611e208185611dc4565b9350611e30818560208601611dd4565b611e3981611dfc565b840191505092915050565b5f6020820190508181035f830152611e5c8184611e0c565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f611e9e82611e75565b9050919050565b611eae81611e94565b8114611eb8575f80fd5b50565b5f81359050611ec981611ea5565b92915050565b5f819050919050565b611ee181611ecf565b8114611eeb575f80fd5b50565b5f81359050611efc81611ed8565b92915050565b5f8060408385031215611f1857611f17611e6d565b5b5f611f2585828601611ebb565b9250506020611f3685828601611eee565b9150509250929050565b5f8115159050919050565b611f5481611f40565b82525050565b5f602082019050611f6d5f830184611f4b565b92915050565b611f7c81611ecf565b82525050565b5f602082019050611f955f830184611f73565b92915050565b5f60208284031215611fb057611faf611e6d565b5b5f611fbd84828501611ebb565b91505092915050565b5f611fd082611e75565b9050919050565b611fe081611fc6565b82525050565b5f602082019050611ff95f830184611fd7565b92915050565b5f805f6060848603121561201657612015611e6d565b5b5f61202386828701611ebb565b935050602061203486828701611ebb565b925050604061204586828701611eee565b9150509250925092565b5f60ff82169050919050565b6120648161204f565b82525050565b5f60208201905061207d5f83018461205b565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6120bd82611dfc565b810181811067ffffffffffffffff821117156120dc576120db612087565b5b80604052505050565b5f6120ee611e64565b90506120fa82826120b4565b919050565b5f67ffffffffffffffff82111561211957612118612087565b5b602082029050602081019050919050565b5f80fd5b5f61214061213b846120ff565b6120e5565b905080838252602082019050602084028301858111156121635761216261212a565b5b835b8181101561218c57806121788882611ebb565b845260208401935050602081019050612165565b5050509392505050565b5f82601f8301126121aa576121a9612083565b5b81356121ba84826020860161212e565b91505092915050565b5f602082840312156121d8576121d7611e6d565b5b5f82013567ffffffffffffffff8111156121f5576121f4611e71565b5b61220184828501612196565b91505092915050565b61221381611e94565b82525050565b5f60208201905061222c5f83018461220a565b92915050565b5f6020828403121561224757612246611e6d565b5b5f61225484828501611eee565b91505092915050565b5f806040838503121561227357612272611e6d565b5b5f61228085828601611ebb565b925050602061229185828601611ebb565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561231d578086048111156122f9576122f861229b565b5b60018516156123085780820291505b8081029050612316856122c8565b94506122dd565b94509492505050565b5f8261233557600190506123f0565b81612342575f90506123f0565b8160018114612358576002811461236257612391565b60019150506123f0565b60ff8411156123745761237361229b565b5b8360020a91508482111561238b5761238a61229b565b5b506123f0565b5060208310610133831016604e8410600b84101617156123c65782820a9050838111156123c1576123c061229b565b5b6123f0565b6123d384848460016122d4565b925090508184048111156123ea576123e961229b565b5b81810290505b9392505050565b5f61240182611ecf565b915061240c8361204f565b92506124397fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612326565b905092915050565b5f61244b82611ecf565b915061245683611ecf565b925082820261246481611ecf565b9150828204841483151761247b5761247a61229b565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4c696d697420746f6f206c6573730000000000000000000000000000000000005f82015250565b5f6124e3600e83611dc4565b91506124ee826124af565b602082019050919050565b5f6020820190508181035f830152612510816124d7565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f612571602683611dc4565b915061257c82612517565b604082019050919050565b5f6020820190508181035f83015261259e81612565565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6125ff602483611dc4565b915061260a826125a5565b604082019050919050565b5f6020820190508181035f83015261262c816125f3565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61268d602283611dc4565b915061269882612633565b604082019050919050565b5f6020820190508181035f8301526126ba81612681565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126f5602083611dc4565b9150612700826126c1565b602082019050919050565b5f6020820190508181035f830152612722816126e9565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612783602583611dc4565b915061278e82612729565b604082019050919050565b5f6020820190508181035f8301526127b081612777565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612811602383611dc4565b915061281c826127b7565b604082019050919050565b5f6020820190508181035f83015261283e81612805565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f61289f602983611dc4565b91506128aa82612845565b604082019050919050565b5f6020820190508181035f8301526128cc81612893565b9050919050565b7f53656e646572206f7220526563697069656e7420426c61636b6c6973746564005f82015250565b5f612907601f83611dc4565b9150612912826128d3565b602082019050919050565b5f6020820190508181035f830152612934816128fb565b9050919050565b5f61294582611ecf565b915061295083611ecf565b92508282019050808211156129685761296761229b565b5b92915050565b7f457863656564732074686520616e74695768616c654c696d69742e00000000005f82015250565b5f6129a2601b83611dc4565b91506129ad8261296e565b602082019050919050565b5f6020820190508181035f8301526129cf81612996565b9050919050565b5f6129e082611ecf565b91506129eb83611ecf565b9250828203905081811115612a0357612a0261229b565b5b92915050565b5f81519050612a1781611ea5565b92915050565b5f60208284031215612a3257612a31611e6d565b5b5f612a3f84828501612a09565b91505092915050565b5f819050919050565b5f819050919050565b5f612a74612a6f612a6a84612a48565b612a51565b611ecf565b9050919050565b612a8481612a5a565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612abc81611e94565b82525050565b5f612acd8383612ab3565b60208301905092915050565b5f602082019050919050565b5f612aef82612a8a565b612af98185612a94565b9350612b0483612aa4565b805f5b83811015612b34578151612b1b8882612ac2565b9750612b2683612ad9565b925050600181019050612b07565b5085935050505092915050565b5f60a082019050612b545f830188611f73565b612b616020830187612a7b565b8181036040830152612b738186612ae5565b9050612b82606083018561220a565b612b8f6080830184611f73565b9695505050505050565b5f81905092915050565b50565b5f612bb15f83612b99565b9150612bbc82612ba3565b5f82019050919050565b5f612bd082612ba6565b9150819050919050565b7f43616c6c206661696c65640000000000000000000000000000000000000000005f82015250565b5f612c0e600b83611dc4565b9150612c1982612bda565b602082019050919050565b5f6020820190508181035f830152612c3b81612c02565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612c7982611ecf565b9150612c8483611ecf565b925082612c9457612c93612c42565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612cf9602183611dc4565b9150612d0482612c9f565b604082019050919050565b5f6020820190508181035f830152612d2681612ced565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612d61601b83611dc4565b9150612d6c82612d2d565b602082019050919050565b5f6020820190508181035f830152612d8e81612d55565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122030a44b66383482918575f695842e2e6ccd4c305095b9b36b0db620dd43fc8b9964736f6c63430008180033

Deployed Bytecode Sourcemap

4104:7730:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6114:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6947:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4742:64;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6391:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11333:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4908:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7116:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6300:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4815:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11216:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10469:356;;;;;;;;;;;;;:::i;:::-;;4859:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6494:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2820:103;;;;;;;;;;;;;:::i;:::-;;4325:51;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11641:190;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2581:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10833:181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11449:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11118:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6205:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11022:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6621:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4383:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4672:63;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6796:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2933:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6114:83;6151:13;6184:5;;;;;;;;;;;;;;;;;6177:12;;6114:83;:::o;6947:161::-;7022:4;7039:39;7048:12;:10;:12::i;:::-;7062:7;7071:6;7039:8;:39::i;:::-;7096:4;7089:11;;6947:161;;;;:::o;4742:64::-;;;;:::o;6391:95::-;6444:7;4471:2;4533;:13;;;;:::i;:::-;4515:15;:31;;;;:::i;:::-;6464:14;;6391:95;:::o;11333:108::-;2538:13;:11;:13::i;:::-;11428:5:::1;11399:18;:26;11418:6;11399:26;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;11333:108:::0;:::o;4908:95::-;;;;;;;;;;;;;:::o;7116:313::-;7214:4;7231:36;7241:6;7249:9;7260:6;7231:9;:36::i;:::-;7278:121;7287:6;7295:12;:10;:12::i;:::-;7309:89;7347:6;7309:89;;;;;;;;;;;;;;;;;:11;:19;7321:6;7309:19;;;;;;;;;;;;;;;:33;7329:12;:10;:12::i;:::-;7309:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7278:8;:121::i;:::-;7417:4;7410:11;;7116:313;;;;;:::o;6300:83::-;6341:5;4471:2;6359:16;;6300:83;:::o;4815:27::-;;;;:::o;11216:109::-;2538:13;:11;:13::i;:::-;11313:4:::1;11284:18;:26;11303:6;11284:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;11216:109:::0;:::o;10469:356::-;10533:18;;;;;;;;;;;10519:32;;:12;:10;:12::i;:::-;:32;;;10511:41;;;;;;10563:20;10584:24;10602:4;10584:9;:24::i;:::-;10563:45;;10635:1;10622:12;:14;10619:73;;;10650:30;10667:12;10650:16;:30::i;:::-;10619:73;10702:18;10721:21;10702:40;;10767:1;10756:10;:12;10753:65;;;10782:24;10795:10;10782:12;:24::i;:::-;10753:65;10500:325;;10469:356::o;4859:28::-;;;;:::o;6494:119::-;6560:7;6587:9;:18;6597:7;6587:18;;;;;;;;;;;;;;;;6580:25;;6494:119;;;:::o;2820:103::-;2538:13;:11;:13::i;:::-;2885:30:::1;2912:1;2885:18;:30::i;:::-;2820:103::o:0;4325:51::-;;;;;;;;;;;;;;;;;;;;;;:::o;11641:190::-;2538:13;:11;:13::i;:::-;11728:6:::1;11724:100;11744:8;:15;11740:1;:19;11724:100;;;11807:5;11780:11;:24;11792:8;11801:1;11792:11;;;;;;;;:::i;:::-;;;;;;;;11780:24;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;11761:3;;;;;;;11724:100;;;;11641:190:::0;:::o;2581:87::-;2627:7;2654:6;;;;;;;;;;;2647:13;;2581:87;:::o;10833:181::-;2538:13;:11;:13::i;:::-;10929:22:::1;10947:3;10929:13;:11;:13::i;:::-;:17;;:22;;;;:::i;:::-;10917:9;:34;10909:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;10997:9;10980:14;:26;;;;10833:181:::0;:::o;11449:184::-;2538:13;:11;:13::i;:::-;11531:6:::1;11527:99;11547:8;:15;11543:1;:19;11527:99;;;11610:4;11583:11;:24;11595:8;11604:1;11595:11;;;;;;;;:::i;:::-;;;;;;;;11583:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;11564:3;;;;;;;11527:99;;;;11449:184:::0;:::o;11118:90::-;2538:13;:11;:13::i;:::-;11196:4:::1;11185:8;:15;;;;11118:90:::0;:::o;6205:87::-;6244:13;6277:7;;;;;;;;;;;;;;;;;6270:14;;6205:87;:::o;11022:88::-;2538:13;:11;:13::i;:::-;11098:4:::1;11088:7;:14;;;;11022:88:::0;:::o;6621:167::-;6699:4;6716:42;6726:12;:10;:12::i;:::-;6740:9;6751:6;6716:9;:42::i;:::-;6776:4;6769:11;;6621:167;;;;:::o;4383:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;4672:63::-;;;;:::o;6796:143::-;6877:7;6904:11;:18;6916:5;6904:18;;;;;;;;;;;;;;;:27;6923:7;6904:27;;;;;;;;;;;;;;;;6897:34;;6796:143;;;;:::o;2933:201::-;2538:13;:11;:13::i;:::-;3042:1:::1;3022:22;;:8;:22;;::::0;3014:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3098:28;3117:8;3098:18;:28::i;:::-;2933:201:::0;:::o;335:98::-;388:7;415:10;408:17;;335:98;:::o;7437:335::-;7547:1;7530:19;;:5;:19;;;7522:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7628:1;7609:21;;:7;:21;;;7601:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7710:6;7680:11;:18;7692:5;7680:18;;;;;;;;;;;;;;;:27;7699:7;7680:27;;;;;;;;;;;;;;;:36;;;;7748:7;7732:32;;7741:5;7732:32;;;7757:6;7732:32;;;;;;:::i;:::-;;;;;;;;7437:335;;;:::o;2678:132::-;2753:12;:10;:12::i;:::-;2742:23;;:7;:5;:7::i;:::-;:23;;;2734:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;2678:132::o;7780:1814::-;7884:1;7868:18;;:4;:18;;;7860:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7961:1;7947:16;;:2;:16;;;7939:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8031:1;8022:6;:10;8014:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8098:11;:17;8110:4;8098:17;;;;;;;;;;;;;;;;;;;;;;;;;8097:18;:38;;;;8120:11;:15;8132:2;8120:15;;;;;;;;;;;;;;;;;;;;;;;;;8119:16;8097:38;8089:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;8181:17;8216:18;:24;8235:4;8216:24;;;;;;;;;;;;;;;;;;;;;;;;;8215:25;:52;;;;;8245:18;:22;8264:2;8245:22;;;;;;;;;;;;;;;;;;;;;;;;;8244:23;8215:52;8211:1027;;;8295:13;;;;;;;;;;;8289:19;;:2;:19;;;8286:137;;8361:14;;8351:6;8335:13;8345:2;8335:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8327:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;8286:137;8452:1;8442:7;;:11;8439:182;;;8482:13;;;;;;;;;;;8474:21;;:4;:21;;;:55;;;;;8513:15;;;;;;;;;;;8499:30;;:2;:30;;;;8474:55;8470:136;;;8562:28;8586:3;8562:19;8573:7;;8562:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;8550:40;;8470:136;8439:182;8651:1;8640:8;;:12;8637:146;;;8678:13;;;;;;;;;;;8672:19;;:2;:19;;;8669:99;;8723:29;8748:3;8723:20;8734:8;;8723:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;8711:41;;8669:99;8637:146;8799:28;8830:24;8848:4;8830:9;:24::i;:::-;8799:55;;8874:6;;;;;;;;;;;8873:7;:30;;;;;8890:13;;;;;;;;;;;8884:19;;:2;:19;;;8873:30;:45;;;;;8907:11;;;;;;;;;;;8873:45;:87;;;;;8943:17;;8922:20;:38;8873:87;8869:358;;;8981:38;8998:20;8981:16;:38::i;:::-;9038:26;9067:21;9038:50;;9131:1;9110:18;:22;9107:105;;;9157:35;9170:21;9157:12;:35::i;:::-;9107:105;8962:265;8869:358;8269:969;8211:1027;9263:1;9253:9;:11;9250:161;;;9303:39;9332:9;9303;:24;9321:4;9303:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;9278:9;:24;9296:4;9278:24;;;;;;;;;;;;;;;:64;;;;9383:4;9360:39;;9369:4;9360:39;;;9389:9;9360:39;;;;;;:::i;:::-;;;;;;;;9250:161;9437:27;9457:6;9437:9;:15;9447:4;9437:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;9421:9;:15;9431:4;9421:15;;;;;;;;;;;;;;;:43;;;;9489:40;9507:21;9518:9;9507:6;:10;;:21;;;;:::i;:::-;9489:9;:13;9499:2;9489:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;9475:9;:13;9485:2;9475:13;;;;;;;;;;;;;;;:54;;;;9560:2;9545:41;;9554:4;9545:41;;;9564:21;9575:9;9564:6;:10;;:21;;;;:::i;:::-;9545:41;;;;;;:::i;:::-;;;;;;;;7849:1745;7780:1814;;;:::o;1472:190::-;1558:7;1591:1;1586;:6;;1594:12;1578:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1618:9;1634:1;1630;:5;;;;:::i;:::-;1618:17;;1653:1;1646:8;;;1472:190;;;;;:::o;9710:520::-;5212:4;5203:6;;:13;;;;;;;;;;;;;;;;;;9804:1:::1;9791:11;:14:::0;9788:27;9807:7:::1;9788:27;9825:21;9863:1;9849:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9825:40;;9894:4;9876;9881:1;9876:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9920:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9910:4;9915:1;9910:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9953:62;9970:4;9985:15;;;;;;;;;;;10003:11;9953:8;:62::i;:::-;10026:15;;;;;;;;;;;:66;;;10107:11;10133:1;10149:4;10176;10196:15;10026:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9777:453;5227:1;5248:5:::0;5239:6;;:14;;;;;;;;;;;;;;;;;;9710:520;:::o;10238:184::-;10295:16;10325:18;;;;;;;;;;;10317:32;;10357:6;10317:51;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10294:74;;;10387:11;10379:35;;;;;;;;;;;;:::i;:::-;;;;;;;;;10284:138;10238:184;:::o;3144:191::-;3218:16;3237:6;;;;;;;;;;;3218:25;;3263:8;3254:6;;:17;;;;;;;;;;;;;;;;;;3318:8;3287:40;;3308:8;3287:40;;;;;;;;;;;;3207:128;3144:191;:::o;1924:132::-;1982:7;2009:39;2013:1;2016;2009:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2002:46;;1924:132;;;;:::o;1670:246::-;1728:7;1757:1;1752;:6;1748:47;;1782:1;1775:8;;;;1748:47;1805:9;1821:1;1817;:5;;;;:::i;:::-;1805:17;;1850:1;1845;1841;:5;;;;:::i;:::-;:10;1833:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1907:1;1900:8;;;1670:246;;;;;:::o;1141:179::-;1199:7;1219:9;1235:1;1231;:5;;;;:::i;:::-;1219:17;;1260:1;1255;:6;;1247:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1311:1;1304:8;;;1141:179;;;;:::o;1328:136::-;1386:7;1413:43;1417:1;1420;1413:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1406:50;;1328:136;;;;:::o;2064:189::-;2150:7;2182:1;2178;:5;2185:12;2170:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2209:9;2225:1;2221;:5;;;;:::i;:::-;2209:17;;2244:1;2237:8;;;2064: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:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:329::-;3857:6;3906:2;3894:9;3885:7;3881:23;3877:32;3874:119;;;3912:79;;:::i;:::-;3874:119;4032:1;4057:53;4102:7;4093:6;4082:9;4078:22;4057:53;:::i;:::-;4047:63;;4003:117;3798:329;;;;:::o;4133:104::-;4178:7;4207:24;4225:5;4207:24;:::i;:::-;4196:35;;4133:104;;;:::o;4243:142::-;4346:32;4372:5;4346:32;:::i;:::-;4341:3;4334:45;4243:142;;:::o;4391:254::-;4500:4;4538:2;4527:9;4523:18;4515:26;;4551:87;4635:1;4624:9;4620:17;4611:6;4551:87;:::i;:::-;4391:254;;;;:::o;4651:619::-;4728:6;4736;4744;4793:2;4781:9;4772:7;4768:23;4764:32;4761:119;;;4799:79;;:::i;:::-;4761:119;4919:1;4944:53;4989:7;4980:6;4969:9;4965:22;4944:53;:::i;:::-;4934:63;;4890:117;5046:2;5072:53;5117:7;5108:6;5097:9;5093:22;5072:53;:::i;:::-;5062:63;;5017:118;5174:2;5200:53;5245:7;5236:6;5225:9;5221:22;5200:53;:::i;:::-;5190:63;;5145:118;4651:619;;;;;:::o;5276:86::-;5311:7;5351:4;5344:5;5340:16;5329:27;;5276:86;;;:::o;5368:112::-;5451:22;5467:5;5451:22;:::i;:::-;5446:3;5439:35;5368:112;;:::o;5486:214::-;5575:4;5613:2;5602:9;5598:18;5590:26;;5626:67;5690:1;5679:9;5675:17;5666:6;5626:67;:::i;:::-;5486:214;;;;:::o;5706:117::-;5815:1;5812;5805:12;5829:180;5877:77;5874:1;5867:88;5974:4;5971:1;5964:15;5998:4;5995:1;5988:15;6015:281;6098:27;6120:4;6098:27;:::i;:::-;6090:6;6086:40;6228:6;6216:10;6213:22;6192:18;6180:10;6177:34;6174:62;6171:88;;;6239:18;;:::i;:::-;6171:88;6279:10;6275:2;6268:22;6058:238;6015:281;;:::o;6302:129::-;6336:6;6363:20;;:::i;:::-;6353:30;;6392:33;6420:4;6412:6;6392:33;:::i;:::-;6302:129;;;:::o;6437:311::-;6514:4;6604:18;6596:6;6593:30;6590:56;;;6626:18;;:::i;:::-;6590:56;6676:4;6668:6;6664:17;6656:25;;6736:4;6730;6726:15;6718:23;;6437:311;;;:::o;6754:117::-;6863:1;6860;6853:12;6894:710;6990:5;7015:81;7031:64;7088:6;7031:64;:::i;:::-;7015:81;:::i;:::-;7006:90;;7116:5;7145:6;7138:5;7131:21;7179:4;7172:5;7168:16;7161:23;;7232:4;7224:6;7220:17;7212:6;7208:30;7261:3;7253:6;7250:15;7247:122;;;7280:79;;:::i;:::-;7247:122;7395:6;7378:220;7412:6;7407:3;7404:15;7378:220;;;7487:3;7516:37;7549:3;7537:10;7516:37;:::i;:::-;7511:3;7504:50;7583:4;7578:3;7574:14;7567:21;;7454:144;7438:4;7433:3;7429:14;7422:21;;7378:220;;;7382:21;6996:608;;6894:710;;;;;:::o;7627:370::-;7698:5;7747:3;7740:4;7732:6;7728:17;7724:27;7714:122;;7755:79;;:::i;:::-;7714:122;7872:6;7859:20;7897:94;7987:3;7979:6;7972:4;7964:6;7960:17;7897:94;:::i;:::-;7888:103;;7704:293;7627:370;;;;:::o;8003:539::-;8087:6;8136:2;8124:9;8115:7;8111:23;8107:32;8104:119;;;8142:79;;:::i;:::-;8104:119;8290:1;8279:9;8275:17;8262:31;8320:18;8312:6;8309:30;8306:117;;;8342:79;;:::i;:::-;8306:117;8447:78;8517:7;8508:6;8497:9;8493:22;8447:78;:::i;:::-;8437:88;;8233:302;8003:539;;;;:::o;8548:118::-;8635:24;8653:5;8635:24;:::i;:::-;8630:3;8623:37;8548:118;;:::o;8672:222::-;8765:4;8803:2;8792:9;8788:18;8780:26;;8816:71;8884:1;8873:9;8869:17;8860:6;8816:71;:::i;:::-;8672:222;;;;:::o;8900:329::-;8959:6;9008:2;8996:9;8987:7;8983:23;8979:32;8976:119;;;9014:79;;:::i;:::-;8976:119;9134:1;9159:53;9204:7;9195:6;9184:9;9180:22;9159:53;:::i;:::-;9149:63;;9105:117;8900:329;;;;:::o;9235:474::-;9303:6;9311;9360:2;9348:9;9339:7;9335:23;9331:32;9328:119;;;9366:79;;:::i;:::-;9328:119;9486:1;9511:53;9556:7;9547:6;9536:9;9532:22;9511:53;:::i;:::-;9501:63;;9457:117;9613:2;9639:53;9684:7;9675:6;9664:9;9660:22;9639:53;:::i;:::-;9629:63;;9584:118;9235:474;;;;;:::o;9715:180::-;9763:77;9760:1;9753:88;9860:4;9857:1;9850:15;9884:4;9881:1;9874:15;9901:102;9943:8;9990:5;9987:1;9983:13;9962:34;;9901:102;;;:::o;10009:848::-;10070:5;10077:4;10101:6;10092:15;;10125:5;10116:14;;10139:712;10160:1;10150:8;10147:15;10139:712;;;10255:4;10250:3;10246:14;10240:4;10237:24;10234:50;;;10264:18;;:::i;:::-;10234:50;10314:1;10304:8;10300:16;10297:451;;;10729:4;10722:5;10718:16;10709:25;;10297:451;10779:4;10773;10769:15;10761:23;;10809:32;10832:8;10809:32;:::i;:::-;10797:44;;10139:712;;;10009:848;;;;;;;:::o;10863:1073::-;10917:5;11108:8;11098:40;;11129:1;11120:10;;11131:5;;11098:40;11157:4;11147:36;;11174:1;11165:10;;11176:5;;11147:36;11243:4;11291:1;11286:27;;;;11327:1;11322:191;;;;11236:277;;11286:27;11304:1;11295:10;;11306:5;;;11322:191;11367:3;11357:8;11354:17;11351:43;;;11374:18;;:::i;:::-;11351:43;11423:8;11420:1;11416:16;11407:25;;11458:3;11451:5;11448:14;11445:40;;;11465:18;;:::i;:::-;11445:40;11498:5;;;11236:277;;11622:2;11612:8;11609:16;11603:3;11597:4;11594:13;11590:36;11572:2;11562:8;11559:16;11554:2;11548:4;11545:12;11541:35;11525:111;11522:246;;;11678:8;11672:4;11668:19;11659:28;;11713:3;11706:5;11703:14;11700:40;;;11720:18;;:::i;:::-;11700:40;11753:5;;11522:246;11793:42;11831:3;11821:8;11815:4;11812:1;11793:42;:::i;:::-;11778:57;;;;11867:4;11862:3;11858:14;11851:5;11848:25;11845:51;;;11876:18;;:::i;:::-;11845:51;11925:4;11918:5;11914:16;11905:25;;10863:1073;;;;;;:::o;11942:281::-;12000:5;12024:23;12042:4;12024:23;:::i;:::-;12016:31;;12068:25;12084:8;12068:25;:::i;:::-;12056:37;;12112:104;12149:66;12139:8;12133:4;12112:104;:::i;:::-;12103:113;;11942:281;;;;:::o;12229:410::-;12269:7;12292:20;12310:1;12292:20;:::i;:::-;12287:25;;12326:20;12344:1;12326:20;:::i;:::-;12321:25;;12381:1;12378;12374:9;12403:30;12421:11;12403:30;:::i;:::-;12392:41;;12582:1;12573:7;12569:15;12566:1;12563:22;12543:1;12536:9;12516:83;12493:139;;12612:18;;:::i;:::-;12493:139;12277:362;12229:410;;;;:::o;12645:180::-;12693:77;12690:1;12683:88;12790:4;12787:1;12780:15;12814:4;12811:1;12804:15;12831:164;12971:16;12967:1;12959:6;12955:14;12948:40;12831:164;:::o;13001:366::-;13143:3;13164:67;13228:2;13223:3;13164:67;:::i;:::-;13157:74;;13240:93;13329:3;13240:93;:::i;:::-;13358:2;13353:3;13349:12;13342:19;;13001:366;;;:::o;13373:419::-;13539:4;13577:2;13566:9;13562:18;13554:26;;13626:9;13620:4;13616:20;13612:1;13601:9;13597:17;13590:47;13654:131;13780:4;13654:131;:::i;:::-;13646:139;;13373:419;;;:::o;13798:225::-;13938:34;13934:1;13926:6;13922:14;13915:58;14007:8;14002:2;13994:6;13990:15;13983:33;13798:225;:::o;14029:366::-;14171:3;14192:67;14256:2;14251:3;14192:67;:::i;:::-;14185:74;;14268:93;14357:3;14268:93;:::i;:::-;14386:2;14381:3;14377:12;14370:19;;14029:366;;;:::o;14401:419::-;14567:4;14605:2;14594:9;14590:18;14582:26;;14654:9;14648:4;14644:20;14640:1;14629:9;14625:17;14618:47;14682:131;14808:4;14682:131;:::i;:::-;14674:139;;14401:419;;;:::o;14826:223::-;14966:34;14962:1;14954:6;14950:14;14943:58;15035:6;15030:2;15022:6;15018:15;15011:31;14826:223;:::o;15055:366::-;15197:3;15218:67;15282:2;15277:3;15218:67;:::i;:::-;15211:74;;15294:93;15383:3;15294:93;:::i;:::-;15412:2;15407:3;15403:12;15396:19;;15055:366;;;:::o;15427:419::-;15593:4;15631:2;15620:9;15616:18;15608:26;;15680:9;15674:4;15670:20;15666:1;15655:9;15651:17;15644:47;15708:131;15834:4;15708:131;:::i;:::-;15700:139;;15427:419;;;:::o;15852:221::-;15992:34;15988:1;15980:6;15976:14;15969:58;16061:4;16056:2;16048:6;16044:15;16037:29;15852:221;:::o;16079:366::-;16221:3;16242:67;16306:2;16301:3;16242:67;:::i;:::-;16235:74;;16318:93;16407:3;16318:93;:::i;:::-;16436:2;16431:3;16427:12;16420:19;;16079:366;;;:::o;16451:419::-;16617:4;16655:2;16644:9;16640:18;16632:26;;16704:9;16698:4;16694:20;16690:1;16679:9;16675:17;16668:47;16732:131;16858:4;16732:131;:::i;:::-;16724:139;;16451:419;;;:::o;16876:182::-;17016:34;17012:1;17004:6;17000:14;16993:58;16876:182;:::o;17064:366::-;17206:3;17227:67;17291:2;17286:3;17227:67;:::i;:::-;17220:74;;17303:93;17392:3;17303:93;:::i;:::-;17421:2;17416:3;17412:12;17405:19;;17064:366;;;:::o;17436:419::-;17602:4;17640:2;17629:9;17625:18;17617:26;;17689:9;17683:4;17679:20;17675:1;17664:9;17660:17;17653:47;17717:131;17843:4;17717:131;:::i;:::-;17709:139;;17436:419;;;:::o;17861:224::-;18001:34;17997:1;17989:6;17985:14;17978:58;18070:7;18065:2;18057:6;18053:15;18046:32;17861:224;:::o;18091:366::-;18233:3;18254:67;18318:2;18313:3;18254:67;:::i;:::-;18247:74;;18330:93;18419:3;18330:93;:::i;:::-;18448:2;18443:3;18439:12;18432:19;;18091:366;;;:::o;18463:419::-;18629:4;18667:2;18656:9;18652:18;18644:26;;18716:9;18710:4;18706:20;18702:1;18691:9;18687:17;18680:47;18744:131;18870:4;18744:131;:::i;:::-;18736:139;;18463:419;;;:::o;18888:222::-;19028:34;19024:1;19016:6;19012:14;19005:58;19097:5;19092:2;19084:6;19080:15;19073:30;18888:222;:::o;19116:366::-;19258:3;19279:67;19343:2;19338:3;19279:67;:::i;:::-;19272:74;;19355:93;19444:3;19355:93;:::i;:::-;19473:2;19468:3;19464:12;19457:19;;19116:366;;;:::o;19488:419::-;19654:4;19692:2;19681:9;19677:18;19669:26;;19741:9;19735:4;19731:20;19727:1;19716:9;19712:17;19705:47;19769:131;19895:4;19769:131;:::i;:::-;19761:139;;19488:419;;;:::o;19913:228::-;20053:34;20049:1;20041:6;20037:14;20030:58;20122:11;20117:2;20109:6;20105:15;20098:36;19913:228;:::o;20147:366::-;20289:3;20310:67;20374:2;20369:3;20310:67;:::i;:::-;20303:74;;20386:93;20475:3;20386:93;:::i;:::-;20504:2;20499:3;20495:12;20488:19;;20147:366;;;:::o;20519:419::-;20685:4;20723:2;20712:9;20708:18;20700:26;;20772:9;20766:4;20762:20;20758:1;20747:9;20743:17;20736:47;20800:131;20926:4;20800:131;:::i;:::-;20792:139;;20519:419;;;:::o;20944:181::-;21084:33;21080:1;21072:6;21068:14;21061:57;20944:181;:::o;21131:366::-;21273:3;21294:67;21358:2;21353:3;21294:67;:::i;:::-;21287:74;;21370:93;21459:3;21370:93;:::i;:::-;21488:2;21483:3;21479:12;21472:19;;21131:366;;;:::o;21503:419::-;21669:4;21707:2;21696:9;21692:18;21684:26;;21756:9;21750:4;21746:20;21742:1;21731:9;21727:17;21720:47;21784:131;21910:4;21784:131;:::i;:::-;21776:139;;21503:419;;;:::o;21928:191::-;21968:3;21987:20;22005:1;21987:20;:::i;:::-;21982:25;;22021:20;22039:1;22021:20;:::i;:::-;22016:25;;22064:1;22061;22057:9;22050:16;;22085:3;22082:1;22079:10;22076:36;;;22092:18;;:::i;:::-;22076:36;21928:191;;;;:::o;22125:177::-;22265:29;22261:1;22253:6;22249:14;22242:53;22125:177;:::o;22308:366::-;22450:3;22471:67;22535:2;22530:3;22471:67;:::i;:::-;22464:74;;22547:93;22636:3;22547:93;:::i;:::-;22665:2;22660:3;22656:12;22649:19;;22308:366;;;:::o;22680:419::-;22846:4;22884:2;22873:9;22869:18;22861:26;;22933:9;22927:4;22923:20;22919:1;22908:9;22904:17;22897:47;22961:131;23087:4;22961:131;:::i;:::-;22953:139;;22680:419;;;:::o;23105:194::-;23145:4;23165:20;23183:1;23165:20;:::i;:::-;23160:25;;23199:20;23217:1;23199:20;:::i;:::-;23194:25;;23243:1;23240;23236:9;23228:17;;23267:1;23261:4;23258:11;23255:37;;;23272:18;;:::i;:::-;23255:37;23105:194;;;;:::o;23305:143::-;23362:5;23393:6;23387:13;23378:22;;23409:33;23436:5;23409:33;:::i;:::-;23305:143;;;;:::o;23454:351::-;23524:6;23573:2;23561:9;23552:7;23548:23;23544:32;23541:119;;;23579:79;;:::i;:::-;23541:119;23699:1;23724:64;23780:7;23771:6;23760:9;23756:22;23724:64;:::i;:::-;23714:74;;23670:128;23454:351;;;;:::o;23811:85::-;23856:7;23885:5;23874:16;;23811:85;;;:::o;23902:60::-;23930:3;23951:5;23944:12;;23902:60;;;:::o;23968:158::-;24026:9;24059:61;24077:42;24086:32;24112:5;24086:32;:::i;:::-;24077:42;:::i;:::-;24059:61;:::i;:::-;24046:74;;23968:158;;;:::o;24132:147::-;24227:45;24266:5;24227:45;:::i;:::-;24222:3;24215:58;24132:147;;:::o;24285:114::-;24352:6;24386:5;24380:12;24370:22;;24285:114;;;:::o;24405:184::-;24504:11;24538:6;24533:3;24526:19;24578:4;24573:3;24569:14;24554:29;;24405:184;;;;:::o;24595:132::-;24662:4;24685:3;24677:11;;24715:4;24710:3;24706:14;24698:22;;24595:132;;;:::o;24733:108::-;24810:24;24828:5;24810:24;:::i;:::-;24805:3;24798:37;24733:108;;:::o;24847:179::-;24916:10;24937:46;24979:3;24971:6;24937:46;:::i;:::-;25015:4;25010:3;25006:14;24992:28;;24847:179;;;;:::o;25032:113::-;25102:4;25134;25129:3;25125:14;25117:22;;25032:113;;;:::o;25181:732::-;25300:3;25329:54;25377:5;25329:54;:::i;:::-;25399:86;25478:6;25473:3;25399:86;:::i;:::-;25392:93;;25509:56;25559:5;25509:56;:::i;:::-;25588:7;25619:1;25604:284;25629:6;25626:1;25623:13;25604:284;;;25705:6;25699:13;25732:63;25791:3;25776:13;25732:63;:::i;:::-;25725:70;;25818:60;25871:6;25818:60;:::i;:::-;25808:70;;25664:224;25651:1;25648;25644:9;25639:14;;25604:284;;;25608:14;25904:3;25897:10;;25305:608;;;25181:732;;;;:::o;25919:831::-;26182:4;26220:3;26209:9;26205:19;26197:27;;26234:71;26302:1;26291:9;26287:17;26278:6;26234:71;:::i;:::-;26315:80;26391:2;26380:9;26376:18;26367:6;26315:80;:::i;:::-;26442:9;26436:4;26432:20;26427:2;26416:9;26412:18;26405:48;26470:108;26573:4;26564:6;26470:108;:::i;:::-;26462:116;;26588:72;26656:2;26645:9;26641:18;26632:6;26588:72;:::i;:::-;26670:73;26738:3;26727:9;26723:19;26714:6;26670:73;:::i;:::-;25919:831;;;;;;;;:::o;26756:147::-;26857:11;26894:3;26879:18;;26756:147;;;;:::o;26909:114::-;;:::o;27029:398::-;27188:3;27209:83;27290:1;27285:3;27209:83;:::i;:::-;27202:90;;27301:93;27390:3;27301:93;:::i;:::-;27419:1;27414:3;27410:11;27403:18;;27029:398;;;:::o;27433:379::-;27617:3;27639:147;27782:3;27639:147;:::i;:::-;27632:154;;27803:3;27796:10;;27433:379;;;:::o;27818:161::-;27958:13;27954:1;27946:6;27942:14;27935:37;27818:161;:::o;27985:366::-;28127:3;28148:67;28212:2;28207:3;28148:67;:::i;:::-;28141:74;;28224:93;28313:3;28224:93;:::i;:::-;28342:2;28337:3;28333:12;28326:19;;27985:366;;;:::o;28357:419::-;28523:4;28561:2;28550:9;28546:18;28538:26;;28610:9;28604:4;28600:20;28596:1;28585:9;28581:17;28574:47;28638:131;28764:4;28638:131;:::i;:::-;28630:139;;28357:419;;;:::o;28782:180::-;28830:77;28827:1;28820:88;28927:4;28924:1;28917:15;28951:4;28948:1;28941:15;28968:185;29008:1;29025:20;29043:1;29025:20;:::i;:::-;29020:25;;29059:20;29077:1;29059:20;:::i;:::-;29054:25;;29098:1;29088:35;;29103:18;;:::i;:::-;29088:35;29145:1;29142;29138:9;29133:14;;28968:185;;;;:::o;29159:220::-;29299:34;29295:1;29287:6;29283:14;29276:58;29368:3;29363:2;29355:6;29351:15;29344:28;29159:220;:::o;29385:366::-;29527:3;29548:67;29612:2;29607:3;29548:67;:::i;:::-;29541:74;;29624:93;29713:3;29624:93;:::i;:::-;29742:2;29737:3;29733:12;29726:19;;29385:366;;;:::o;29757:419::-;29923:4;29961:2;29950:9;29946:18;29938:26;;30010:9;30004:4;30000:20;29996:1;29985:9;29981:17;29974:47;30038:131;30164:4;30038:131;:::i;:::-;30030:139;;29757:419;;;:::o;30182:177::-;30322:29;30318:1;30310:6;30306:14;30299:53;30182:177;:::o;30365:366::-;30507:3;30528:67;30592:2;30587:3;30528:67;:::i;:::-;30521:74;;30604:93;30693:3;30604:93;:::i;:::-;30722:2;30717:3;30713:12;30706:19;;30365:366;;;:::o;30737:419::-;30903:4;30941:2;30930:9;30926:18;30918:26;;30990:9;30984:4;30980:20;30976:1;30965:9;30961:17;30954:47;31018:131;31144:4;31018:131;:::i;:::-;31010:139;;30737:419;;;:::o

Swarm Source

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