ETH Price: $3,340.64 (-3.59%)
Gas: 2 Gwei

Token

SATOSHI ($SATO)
 

Overview

Max Total Supply

10,000 $SATO

Holders

185

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Filtered by Token Holder
drewdown.eth
Balance
0.00001 $SATO

Value
$0.00
0x37c2D0062F2A9D428504327E09534eF60a33813b
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:
SATOSHI

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-11-25
*/

/**
https://t.me/SatoshiEntry
**/
// SPDX-License-Identifier: MIT
pragma solidity 0.8.17;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}

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

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

contract SATOSHI is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    address payable private _taxWallet = payable(msg.sender);

    uint256 private _initialTax=20;
    uint256 private _finalTax=20;
    uint256 private _reduceTaxCountdown=1000;
    uint256 private _preventSwapBefore=960;   

    uint8 private constant _decimals = 8;
    uint256 private constant _tTotal = 10_000 * 10**_decimals;
    string private constant _name = "SATOSHI";
    string private constant _symbol = "$SATO";

    uint256 public _maxTxAmount = 150 * 10**_decimals;
    uint256 public _maxWalletSize = 150 * 10**_decimals;
    uint256 public _taxSwap=25 * 10**_decimals;

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

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

    constructor () {
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
          
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

        _marketingWallet = 0xf3ac300B2808013042E9169095c2661673cA8827;
        uint256 _marketingTokens = _tTotal.mul(5).div(100);
        _balances[_marketingWallet] = _marketingTokens;
        _balances[_msgSender()] = _tTotal - _marketingTokens;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    receive() external payable {}

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

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

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

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

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

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

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

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

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

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

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

            taxAmount = amount.mul((_reduceTaxCountdown==0)?_finalTax:_initialTax).div(100);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                if(_reduceTaxCountdown>0){_reduceTaxCountdown--;}
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwap && _reduceTaxCountdown<=_preventSwapBefore) {
                swapTokensForEth(_taxSwap);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

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

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

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

    function addBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function delBots(address[] memory notbot) public onlyOwner {
      for (uint i = 0; i < notbot.length; i++) {
          bots[notbot[i]] = false;
      }
    }

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        swapEnabled = true;
        tradingOpen = true;
    }

    function manualswap() external {
        swapTokensForEth(balanceOf(address(this)));
    }

    function manualsend() external {
        sendETHToFee(address(this).balance);
    }

    function reduceTax(uint256 newInitialTax, uint256 newFinalTax) external onlyOwner {
        require(newInitialTax < _initialTax, "Only tax reduction permitted.");
        require(newFinalTax < _finalTax, "Only tax reduction permitted.");
        _initialTax = newInitialTax;
        _finalTax = newFinalTax;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","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":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newInitialTax","type":"uint256"},{"internalType":"uint256","name":"newFinalTax","type":"uint256"}],"name":"reduceTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405233600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601460065560146007556103e86008556103c06009556008600a6200006b919062000a5d565b609662000079919062000aae565b600a556008600a6200008c919062000a5d565b60966200009a919062000aae565b600b556008600a620000ad919062000a5d565b6019620000bb919062000aae565b600c556000600e60156101000a81548160ff0219169083151502179055506000600e60166101000a81548160ff0219169083151502179055503480156200010157600080fd5b506000620001146200075560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350737a250d5630b4cf539739df2c5dacb4c659f2488d600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000275573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200029b919062000b63565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000325573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034b919062000b63565b6040518363ffffffff1660e01b81526004016200036a92919062000ba6565b6020604051808303816000875af11580156200038a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b0919062000b63565b600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073f3ac300b2808013042e9169095c2661673ca8827600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060006200049a60646200048660056008600a62000463919062000a5d565b61271062000472919062000aae565b6200075d60201b62000eb11790919060201c565b620007e060201b62000f2b1790919060201c565b90508060016000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550806008600a62000513919062000a5d565b61271062000522919062000aae565b6200052e919062000bd3565b60016000620005426200075560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600160036000620005966200083260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620006c96200075560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6008600a62000728919062000a5d565b61271062000737919062000aae565b60405162000746919062000c1f565b60405180910390a35062000df9565b600033905090565b6000808303620007715760009050620007da565b6000828462000781919062000aae565b905082848262000792919062000c6b565b14620007d5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007cc9062000d2a565b60405180910390fd5b809150505b92915050565b60006200082a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200085b60201b60201c565b905092915050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008083118290620008a5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200089c919062000dd5565b60405180910390fd5b5060008385620008b6919062000c6b565b9050809150509392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200095157808604811115620009295762000928620008c3565b5b6001851615620009395780820291505b80810290506200094985620008f2565b945062000909565b94509492505050565b6000826200096c576001905062000a3f565b816200097c576000905062000a3f565b8160018114620009955760028114620009a057620009d6565b600191505062000a3f565b60ff841115620009b557620009b4620008c3565b5b8360020a915084821115620009cf57620009ce620008c3565b5b5062000a3f565b5060208310610133831016604e8410600b841016171562000a105782820a90508381111562000a0a5762000a09620008c3565b5b62000a3f565b62000a1f8484846001620008ff565b9250905081840481111562000a395762000a38620008c3565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000a6a8262000a46565b915062000a778362000a50565b925062000aa67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200095a565b905092915050565b600062000abb8262000a46565b915062000ac88362000a46565b925082820262000ad88162000a46565b9150828204841483151762000af25762000af1620008c3565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000b2b8262000afe565b9050919050565b62000b3d8162000b1e565b811462000b4957600080fd5b50565b60008151905062000b5d8162000b32565b92915050565b60006020828403121562000b7c5762000b7b62000af9565b5b600062000b8c8482850162000b4c565b91505092915050565b62000ba08162000b1e565b82525050565b600060408201905062000bbd600083018562000b95565b62000bcc602083018462000b95565b9392505050565b600062000be08262000a46565b915062000bed8362000a46565b925082820390508181111562000c085762000c07620008c3565b5b92915050565b62000c198162000a46565b82525050565b600060208201905062000c36600083018462000c0e565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000c788262000a46565b915062000c858362000a46565b92508262000c985762000c9762000c3c565b5b828204905092915050565b600082825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600062000d1260218362000ca3565b915062000d1f8262000cb4565b604082019050919050565b6000602082019050818103600083015262000d458162000d03565b9050919050565b600081519050919050565b60005b8381101562000d7757808201518184015260208101905062000d5a565b60008484015250505050565b6000601f19601f8301169050919050565b600062000da18262000d4c565b62000dad818562000ca3565b935062000dbf81856020860162000d57565b62000dca8162000d83565b840191505092915050565b6000602082019050818103600083015262000df1818462000d94565b905092915050565b612e5d8062000e096000396000f3fe60806040526004361061012e5760003560e01c8063751039fc116100ab578063a9059cbb1161006f578063a9059cbb146103b7578063b9a410ff146103f4578063c3c8cd801461041d578063c9567bf914610434578063d34628cc1461044b578063dd62ed3e1461047457610135565b8063751039fc146102f45780637d1db4a51461030b5780638da5cb5b146103365780638f9a55c01461036157806395d89b411461038c57610135565b806331c2d847116100f257806331c2d8471461023557806334376f3b1461025e5780636fc3eaec1461028957806370a08231146102a0578063715018a6146102dd57610135565b806306fdde031461013a578063095ea7b31461016557806318160ddd146101a257806323b872dd146101cd578063313ce5671461020a57610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104b1565b60405161015c9190611eb9565b60405180910390f35b34801561017157600080fd5b5061018c60048036038101906101879190611f83565b6104ee565b6040516101999190611fde565b60405180910390f35b3480156101ae57600080fd5b506101b761050c565b6040516101c49190612008565b60405180910390f35b3480156101d957600080fd5b506101f460048036038101906101ef9190612023565b61052e565b6040516102019190611fde565b60405180910390f35b34801561021657600080fd5b5061021f610607565b60405161022c9190612092565b60405180910390f35b34801561024157600080fd5b5061025c600480360381019061025791906121f5565b610610565b005b34801561026a57600080fd5b5061027361073a565b6040516102809190612008565b60405180910390f35b34801561029557600080fd5b5061029e610740565b005b3480156102ac57600080fd5b506102c760048036038101906102c2919061223e565b61074b565b6040516102d49190612008565b60405180910390f35b3480156102e957600080fd5b506102f2610794565b005b34801561030057600080fd5b506103096108e7565b005b34801561031757600080fd5b50610320610a11565b60405161032d9190612008565b60405180910390f35b34801561034257600080fd5b5061034b610a17565b604051610358919061227a565b60405180910390f35b34801561036d57600080fd5b50610376610a40565b6040516103839190612008565b60405180910390f35b34801561039857600080fd5b506103a1610a46565b6040516103ae9190611eb9565b60405180910390f35b3480156103c357600080fd5b506103de60048036038101906103d99190611f83565b610a83565b6040516103eb9190611fde565b60405180910390f35b34801561040057600080fd5b5061041b60048036038101906104169190612295565b610aa1565b005b34801561042957600080fd5b50610432610bd0565b005b34801561044057600080fd5b50610449610be3565b005b34801561045757600080fd5b50610472600480360381019061046d91906121f5565b610d00565b005b34801561048057600080fd5b5061049b600480360381019061049691906122d5565b610e2a565b6040516104a89190612008565b60405180910390f35b60606040518060400160405280600781526020017f5341544f53484900000000000000000000000000000000000000000000000000815250905090565b60006105026104fb610f75565b8484610f7d565b6001905092915050565b60006008600a61051c9190612477565b61271061052991906124c2565b905090565b600061053b848484611146565b6105fc84610547610f75565b6105f785604051806060016040528060288152602001612e0060289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105ad610f75565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119d59092919063ffffffff16565b610f7d565b600190509392505050565b60006008905090565b610618610f75565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069c90612550565b60405180910390fd5b60005b8151811015610736576000600460008484815181106106ca576106c9612570565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061072e9061259f565b9150506106a8565b5050565b600c5481565b61074947611a39565b565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61079c610f75565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082090612550565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108ef610f75565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461097c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097390612550565b60405180910390fd5b6008600a61098a9190612477565b61271061099791906124c2565b600a819055506008600a6109ab9190612477565b6127106109b891906124c2565b600b819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a6109ed9190612477565b6127106109fa91906124c2565b604051610a079190612008565b60405180910390a1565b600a5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b60606040518060400160405280600581526020017f245341544f000000000000000000000000000000000000000000000000000000815250905090565b6000610a97610a90610f75565b8484611146565b6001905092915050565b610aa9610f75565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2d90612550565b60405180910390fd5b6006548210610b7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7190612633565b60405180910390fd5b6007548110610bbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb590612633565b60405180910390fd5b81600681905550806007819055505050565b610be1610bdc3061074b565b611aa5565b565b610beb610f75565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6f90612550565b60405180910390fd5b600e60149054906101000a900460ff1615610cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbf9061269f565b60405180910390fd5b6001600e60166101000a81548160ff0219169083151502179055506001600e60146101000a81548160ff021916908315150217905550565b610d08610f75565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8c90612550565b60405180910390fd5b60005b8151811015610e2657600160046000848481518110610dba57610db9612570565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e1e9061259f565b915050610d98565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000808303610ec35760009050610f25565b60008284610ed191906124c2565b9050828482610ee091906126ee565b14610f20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1790612791565b60405180910390fd5b809150505b92915050565b6000610f6d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d1e565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe390612823565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361105b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611052906128b5565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111399190612008565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ac90612947565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611224576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121b906129d9565b60405180910390fd5b60008111611267576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125e90612a6b565b60405180910390fd5b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113155750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561136f5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561171857600e60149054906101000a900460ff1661138d57600080fd5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114315750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61143a57600080fd5b611475606461146760006008541461145457600654611458565b6007545b85610eb190919063ffffffff16565b610f2b90919063ffffffff16565b9050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156115225750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115785750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561163f57600a548211156115c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b990612ad7565b60405180910390fd5b600b54826115cf8561074b565b6115d99190612af7565b111561161a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161190612b77565b60405180910390fd5b6000600854111561163e576008600081548092919061163890612b97565b91905055505b5b600061164a3061074b565b9050600e60159054906101000a900460ff161580156116b75750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156116cf5750600e60169054906101000a900460ff165b80156116dc5750600c5481115b80156116ec575060095460085411155b15611716576116fc600c54611aa5565b600047905060008111156117145761171347611a39565b5b505b505b61176a82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d8190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118116117c38284611d8190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dcb90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6118b68486611d8190919063ffffffff16565b6040516118c39190612008565b60405180910390a360008111156119cf5761192681600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dcb90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119c69190612008565b60405180910390a35b50505050565b6000838311158290611a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a149190611eb9565b60405180910390fd5b5060008385611a2c9190612bc0565b9050809150509392505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611aa1573d6000803e3d6000fd5b5050565b6001600e60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611add57611adc6120b2565b5b604051908082528060200260200182016040528015611b0b5781602001602082028036833780820191505090505b5090503081600081518110611b2357611b22612570565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bee9190612c09565b81600181518110611c0257611c01612570565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c6930600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f7d565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ccd959493929190612d39565b600060405180830381600087803b158015611ce757600080fd5b505af1158015611cfb573d6000803e3d6000fd5b50505050506000600e60156101000a81548160ff02191690831515021790555050565b60008083118290611d65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5c9190611eb9565b60405180910390fd5b5060008385611d7491906126ee565b9050809150509392505050565b6000611dc383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119d5565b905092915050565b6000808284611dda9190612af7565b905083811015611e1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1690612ddf565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e63578082015181840152602081019050611e48565b60008484015250505050565b6000601f19601f8301169050919050565b6000611e8b82611e29565b611e958185611e34565b9350611ea5818560208601611e45565b611eae81611e6f565b840191505092915050565b60006020820190508181036000830152611ed38184611e80565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611f1a82611eef565b9050919050565b611f2a81611f0f565b8114611f3557600080fd5b50565b600081359050611f4781611f21565b92915050565b6000819050919050565b611f6081611f4d565b8114611f6b57600080fd5b50565b600081359050611f7d81611f57565b92915050565b60008060408385031215611f9a57611f99611ee5565b5b6000611fa885828601611f38565b9250506020611fb985828601611f6e565b9150509250929050565b60008115159050919050565b611fd881611fc3565b82525050565b6000602082019050611ff36000830184611fcf565b92915050565b61200281611f4d565b82525050565b600060208201905061201d6000830184611ff9565b92915050565b60008060006060848603121561203c5761203b611ee5565b5b600061204a86828701611f38565b935050602061205b86828701611f38565b925050604061206c86828701611f6e565b9150509250925092565b600060ff82169050919050565b61208c81612076565b82525050565b60006020820190506120a76000830184612083565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6120ea82611e6f565b810181811067ffffffffffffffff82111715612109576121086120b2565b5b80604052505050565b600061211c611edb565b905061212882826120e1565b919050565b600067ffffffffffffffff821115612148576121476120b2565b5b602082029050602081019050919050565b600080fd5b600061217161216c8461212d565b612112565b9050808382526020820190506020840283018581111561219457612193612159565b5b835b818110156121bd57806121a98882611f38565b845260208401935050602081019050612196565b5050509392505050565b600082601f8301126121dc576121db6120ad565b5b81356121ec84826020860161215e565b91505092915050565b60006020828403121561220b5761220a611ee5565b5b600082013567ffffffffffffffff81111561222957612228611eea565b5b612235848285016121c7565b91505092915050565b60006020828403121561225457612253611ee5565b5b600061226284828501611f38565b91505092915050565b61227481611f0f565b82525050565b600060208201905061228f600083018461226b565b92915050565b600080604083850312156122ac576122ab611ee5565b5b60006122ba85828601611f6e565b92505060206122cb85828601611f6e565b9150509250929050565b600080604083850312156122ec576122eb611ee5565b5b60006122fa85828601611f38565b925050602061230b85828601611f38565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561239b5780860481111561237757612376612315565b5b60018516156123865780820291505b808102905061239485612344565b945061235b565b94509492505050565b6000826123b45760019050612470565b816123c25760009050612470565b81600181146123d857600281146123e257612411565b6001915050612470565b60ff8411156123f4576123f3612315565b5b8360020a91508482111561240b5761240a612315565b5b50612470565b5060208310610133831016604e8410600b84101617156124465782820a90508381111561244157612440612315565b5b612470565b6124538484846001612351565b9250905081840481111561246a57612469612315565b5b81810290505b9392505050565b600061248282611f4d565b915061248d83612076565b92506124ba7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846123a4565b905092915050565b60006124cd82611f4d565b91506124d883611f4d565b92508282026124e681611f4d565b915082820484148315176124fd576124fc612315565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061253a602083611e34565b915061254582612504565b602082019050919050565b600060208201905081810360008301526125698161252d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006125aa82611f4d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036125dc576125db612315565b5b600182019050919050565b7f4f6e6c792074617820726564756374696f6e207065726d69747465642e000000600082015250565b600061261d601d83611e34565b9150612628826125e7565b602082019050919050565b6000602082019050818103600083015261264c81612610565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612689601783611e34565b915061269482612653565b602082019050919050565b600060208201905081810360008301526126b88161267c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006126f982611f4d565b915061270483611f4d565b925082612714576127136126bf565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061277b602183611e34565b91506127868261271f565b604082019050919050565b600060208201905081810360008301526127aa8161276e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061280d602483611e34565b9150612818826127b1565b604082019050919050565b6000602082019050818103600083015261283c81612800565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061289f602283611e34565b91506128aa82612843565b604082019050919050565b600060208201905081810360008301526128ce81612892565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612931602583611e34565b915061293c826128d5565b604082019050919050565b6000602082019050818103600083015261296081612924565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006129c3602383611e34565b91506129ce82612967565b604082019050919050565b600060208201905081810360008301526129f2816129b6565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612a55602983611e34565b9150612a60826129f9565b604082019050919050565b60006020820190508181036000830152612a8481612a48565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612ac1601983611e34565b9150612acc82612a8b565b602082019050919050565b60006020820190508181036000830152612af081612ab4565b9050919050565b6000612b0282611f4d565b9150612b0d83611f4d565b9250828201905080821115612b2557612b24612315565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612b61601a83611e34565b9150612b6c82612b2b565b602082019050919050565b60006020820190508181036000830152612b9081612b54565b9050919050565b6000612ba282611f4d565b915060008203612bb557612bb4612315565b5b600182039050919050565b6000612bcb82611f4d565b9150612bd683611f4d565b9250828203905081811115612bee57612bed612315565b5b92915050565b600081519050612c0381611f21565b92915050565b600060208284031215612c1f57612c1e611ee5565b5b6000612c2d84828501612bf4565b91505092915050565b6000819050919050565b6000819050919050565b6000612c65612c60612c5b84612c36565b612c40565b611f4d565b9050919050565b612c7581612c4a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612cb081611f0f565b82525050565b6000612cc28383612ca7565b60208301905092915050565b6000602082019050919050565b6000612ce682612c7b565b612cf08185612c86565b9350612cfb83612c97565b8060005b83811015612d2c578151612d138882612cb6565b9750612d1e83612cce565b925050600181019050612cff565b5085935050505092915050565b600060a082019050612d4e6000830188611ff9565b612d5b6020830187612c6c565b8181036040830152612d6d8186612cdb565b9050612d7c606083018561226b565b612d896080830184611ff9565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612dc9601b83611e34565b9150612dd482612d93565b602082019050919050565b60006020820190508181036000830152612df881612dbc565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b04035c8befb7e96a4a7b46016af004f0a63b3a1fd04d2c782d22c9fb9ca1edd64736f6c63430008110033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c8063751039fc116100ab578063a9059cbb1161006f578063a9059cbb146103b7578063b9a410ff146103f4578063c3c8cd801461041d578063c9567bf914610434578063d34628cc1461044b578063dd62ed3e1461047457610135565b8063751039fc146102f45780637d1db4a51461030b5780638da5cb5b146103365780638f9a55c01461036157806395d89b411461038c57610135565b806331c2d847116100f257806331c2d8471461023557806334376f3b1461025e5780636fc3eaec1461028957806370a08231146102a0578063715018a6146102dd57610135565b806306fdde031461013a578063095ea7b31461016557806318160ddd146101a257806323b872dd146101cd578063313ce5671461020a57610135565b3661013557005b600080fd5b34801561014657600080fd5b5061014f6104b1565b60405161015c9190611eb9565b60405180910390f35b34801561017157600080fd5b5061018c60048036038101906101879190611f83565b6104ee565b6040516101999190611fde565b60405180910390f35b3480156101ae57600080fd5b506101b761050c565b6040516101c49190612008565b60405180910390f35b3480156101d957600080fd5b506101f460048036038101906101ef9190612023565b61052e565b6040516102019190611fde565b60405180910390f35b34801561021657600080fd5b5061021f610607565b60405161022c9190612092565b60405180910390f35b34801561024157600080fd5b5061025c600480360381019061025791906121f5565b610610565b005b34801561026a57600080fd5b5061027361073a565b6040516102809190612008565b60405180910390f35b34801561029557600080fd5b5061029e610740565b005b3480156102ac57600080fd5b506102c760048036038101906102c2919061223e565b61074b565b6040516102d49190612008565b60405180910390f35b3480156102e957600080fd5b506102f2610794565b005b34801561030057600080fd5b506103096108e7565b005b34801561031757600080fd5b50610320610a11565b60405161032d9190612008565b60405180910390f35b34801561034257600080fd5b5061034b610a17565b604051610358919061227a565b60405180910390f35b34801561036d57600080fd5b50610376610a40565b6040516103839190612008565b60405180910390f35b34801561039857600080fd5b506103a1610a46565b6040516103ae9190611eb9565b60405180910390f35b3480156103c357600080fd5b506103de60048036038101906103d99190611f83565b610a83565b6040516103eb9190611fde565b60405180910390f35b34801561040057600080fd5b5061041b60048036038101906104169190612295565b610aa1565b005b34801561042957600080fd5b50610432610bd0565b005b34801561044057600080fd5b50610449610be3565b005b34801561045757600080fd5b50610472600480360381019061046d91906121f5565b610d00565b005b34801561048057600080fd5b5061049b600480360381019061049691906122d5565b610e2a565b6040516104a89190612008565b60405180910390f35b60606040518060400160405280600781526020017f5341544f53484900000000000000000000000000000000000000000000000000815250905090565b60006105026104fb610f75565b8484610f7d565b6001905092915050565b60006008600a61051c9190612477565b61271061052991906124c2565b905090565b600061053b848484611146565b6105fc84610547610f75565b6105f785604051806060016040528060288152602001612e0060289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006105ad610f75565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119d59092919063ffffffff16565b610f7d565b600190509392505050565b60006008905090565b610618610f75565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069c90612550565b60405180910390fd5b60005b8151811015610736576000600460008484815181106106ca576106c9612570565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061072e9061259f565b9150506106a8565b5050565b600c5481565b61074947611a39565b565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61079c610f75565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610829576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082090612550565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b6108ef610f75565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461097c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097390612550565b60405180910390fd5b6008600a61098a9190612477565b61271061099791906124c2565b600a819055506008600a6109ab9190612477565b6127106109b891906124c2565b600b819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6008600a6109ed9190612477565b6127106109fa91906124c2565b604051610a079190612008565b60405180910390a1565b600a5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600b5481565b60606040518060400160405280600581526020017f245341544f000000000000000000000000000000000000000000000000000000815250905090565b6000610a97610a90610f75565b8484611146565b6001905092915050565b610aa9610f75565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b36576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2d90612550565b60405180910390fd5b6006548210610b7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7190612633565b60405180910390fd5b6007548110610bbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb590612633565b60405180910390fd5b81600681905550806007819055505050565b610be1610bdc3061074b565b611aa5565b565b610beb610f75565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c6f90612550565b60405180910390fd5b600e60149054906101000a900460ff1615610cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cbf9061269f565b60405180910390fd5b6001600e60166101000a81548160ff0219169083151502179055506001600e60146101000a81548160ff021916908315150217905550565b610d08610f75565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8c90612550565b60405180910390fd5b60005b8151811015610e2657600160046000848481518110610dba57610db9612570565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610e1e9061259f565b915050610d98565b5050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000808303610ec35760009050610f25565b60008284610ed191906124c2565b9050828482610ee091906126ee565b14610f20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1790612791565b60405180910390fd5b809150505b92915050565b6000610f6d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611d1e565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe390612823565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361105b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611052906128b5565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111399190612008565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ac90612947565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611224576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121b906129d9565b60405180910390fd5b60008111611267576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125e90612a6b565b60405180910390fd5b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156113155750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561136f5750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561171857600e60149054906101000a900460ff1661138d57600080fd5b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114315750600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61143a57600080fd5b611475606461146760006008541461145457600654611458565b6007545b85610eb190919063ffffffff16565b610f2b90919063ffffffff16565b9050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156115225750600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115785750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561163f57600a548211156115c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115b990612ad7565b60405180910390fd5b600b54826115cf8561074b565b6115d99190612af7565b111561161a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161190612b77565b60405180910390fd5b6000600854111561163e576008600081548092919061163890612b97565b91905055505b5b600061164a3061074b565b9050600e60159054906101000a900460ff161580156116b75750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156116cf5750600e60169054906101000a900460ff165b80156116dc5750600c5481115b80156116ec575060095460085411155b15611716576116fc600c54611aa5565b600047905060008111156117145761171347611a39565b5b505b505b61176a82600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d8190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506118116117c38284611d8190919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dcb90919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6118b68486611d8190919063ffffffff16565b6040516118c39190612008565b60405180910390a360008111156119cf5761192681600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611dcb90919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516119c69190612008565b60405180910390a35b50505050565b6000838311158290611a1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a149190611eb9565b60405180910390fd5b5060008385611a2c9190612bc0565b9050809150509392505050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611aa1573d6000803e3d6000fd5b5050565b6001600e60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611add57611adc6120b2565b5b604051908082528060200260200182016040528015611b0b5781602001602082028036833780820191505090505b5090503081600081518110611b2357611b22612570565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bca573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bee9190612c09565b81600181518110611c0257611c01612570565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c6930600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f7d565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611ccd959493929190612d39565b600060405180830381600087803b158015611ce757600080fd5b505af1158015611cfb573d6000803e3d6000fd5b50505050506000600e60156101000a81548160ff02191690831515021790555050565b60008083118290611d65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5c9190611eb9565b60405180910390fd5b5060008385611d7491906126ee565b9050809150509392505050565b6000611dc383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506119d5565b905092915050565b6000808284611dda9190612af7565b905083811015611e1f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1690612ddf565b60405180910390fd5b8091505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611e63578082015181840152602081019050611e48565b60008484015250505050565b6000601f19601f8301169050919050565b6000611e8b82611e29565b611e958185611e34565b9350611ea5818560208601611e45565b611eae81611e6f565b840191505092915050565b60006020820190508181036000830152611ed38184611e80565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611f1a82611eef565b9050919050565b611f2a81611f0f565b8114611f3557600080fd5b50565b600081359050611f4781611f21565b92915050565b6000819050919050565b611f6081611f4d565b8114611f6b57600080fd5b50565b600081359050611f7d81611f57565b92915050565b60008060408385031215611f9a57611f99611ee5565b5b6000611fa885828601611f38565b9250506020611fb985828601611f6e565b9150509250929050565b60008115159050919050565b611fd881611fc3565b82525050565b6000602082019050611ff36000830184611fcf565b92915050565b61200281611f4d565b82525050565b600060208201905061201d6000830184611ff9565b92915050565b60008060006060848603121561203c5761203b611ee5565b5b600061204a86828701611f38565b935050602061205b86828701611f38565b925050604061206c86828701611f6e565b9150509250925092565b600060ff82169050919050565b61208c81612076565b82525050565b60006020820190506120a76000830184612083565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6120ea82611e6f565b810181811067ffffffffffffffff82111715612109576121086120b2565b5b80604052505050565b600061211c611edb565b905061212882826120e1565b919050565b600067ffffffffffffffff821115612148576121476120b2565b5b602082029050602081019050919050565b600080fd5b600061217161216c8461212d565b612112565b9050808382526020820190506020840283018581111561219457612193612159565b5b835b818110156121bd57806121a98882611f38565b845260208401935050602081019050612196565b5050509392505050565b600082601f8301126121dc576121db6120ad565b5b81356121ec84826020860161215e565b91505092915050565b60006020828403121561220b5761220a611ee5565b5b600082013567ffffffffffffffff81111561222957612228611eea565b5b612235848285016121c7565b91505092915050565b60006020828403121561225457612253611ee5565b5b600061226284828501611f38565b91505092915050565b61227481611f0f565b82525050565b600060208201905061228f600083018461226b565b92915050565b600080604083850312156122ac576122ab611ee5565b5b60006122ba85828601611f6e565b92505060206122cb85828601611f6e565b9150509250929050565b600080604083850312156122ec576122eb611ee5565b5b60006122fa85828601611f38565b925050602061230b85828601611f38565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111561239b5780860481111561237757612376612315565b5b60018516156123865780820291505b808102905061239485612344565b945061235b565b94509492505050565b6000826123b45760019050612470565b816123c25760009050612470565b81600181146123d857600281146123e257612411565b6001915050612470565b60ff8411156123f4576123f3612315565b5b8360020a91508482111561240b5761240a612315565b5b50612470565b5060208310610133831016604e8410600b84101617156124465782820a90508381111561244157612440612315565b5b612470565b6124538484846001612351565b9250905081840481111561246a57612469612315565b5b81810290505b9392505050565b600061248282611f4d565b915061248d83612076565b92506124ba7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846123a4565b905092915050565b60006124cd82611f4d565b91506124d883611f4d565b92508282026124e681611f4d565b915082820484148315176124fd576124fc612315565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061253a602083611e34565b915061254582612504565b602082019050919050565b600060208201905081810360008301526125698161252d565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006125aa82611f4d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036125dc576125db612315565b5b600182019050919050565b7f4f6e6c792074617820726564756374696f6e207065726d69747465642e000000600082015250565b600061261d601d83611e34565b9150612628826125e7565b602082019050919050565b6000602082019050818103600083015261264c81612610565b9050919050565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b6000612689601783611e34565b915061269482612653565b602082019050919050565b600060208201905081810360008301526126b88161267c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006126f982611f4d565b915061270483611f4d565b925082612714576127136126bf565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061277b602183611e34565b91506127868261271f565b604082019050919050565b600060208201905081810360008301526127aa8161276e565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b600061280d602483611e34565b9150612818826127b1565b604082019050919050565b6000602082019050818103600083015261283c81612800565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b600061289f602283611e34565b91506128aa82612843565b604082019050919050565b600060208201905081810360008301526128ce81612892565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612931602583611e34565b915061293c826128d5565b604082019050919050565b6000602082019050818103600083015261296081612924565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006129c3602383611e34565b91506129ce82612967565b604082019050919050565b600060208201905081810360008301526129f2816129b6565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612a55602983611e34565b9150612a60826129f9565b604082019050919050565b60006020820190508181036000830152612a8481612a48565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b6000612ac1601983611e34565b9150612acc82612a8b565b602082019050919050565b60006020820190508181036000830152612af081612ab4565b9050919050565b6000612b0282611f4d565b9150612b0d83611f4d565b9250828201905080821115612b2557612b24612315565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b6000612b61601a83611e34565b9150612b6c82612b2b565b602082019050919050565b60006020820190508181036000830152612b9081612b54565b9050919050565b6000612ba282611f4d565b915060008203612bb557612bb4612315565b5b600182039050919050565b6000612bcb82611f4d565b9150612bd683611f4d565b9250828203905081811115612bee57612bed612315565b5b92915050565b600081519050612c0381611f21565b92915050565b600060208284031215612c1f57612c1e611ee5565b5b6000612c2d84828501612bf4565b91505092915050565b6000819050919050565b6000819050919050565b6000612c65612c60612c5b84612c36565b612c40565b611f4d565b9050919050565b612c7581612c4a565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612cb081611f0f565b82525050565b6000612cc28383612ca7565b60208301905092915050565b6000602082019050919050565b6000612ce682612c7b565b612cf08185612c86565b9350612cfb83612c97565b8060005b83811015612d2c578151612d138882612cb6565b9750612d1e83612cce565b925050600181019050612cff565b5085935050505092915050565b600060a082019050612d4e6000830188611ff9565b612d5b6020830187612c6c565b8181036040830152612d6d8186612cdb565b9050612d7c606083018561226b565b612d896080830184611ff9565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000612dc9601b83611e34565b9150612dd482612d93565b602082019050919050565b60006020820190508181036000830152612df881612dbc565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b04035c8befb7e96a4a7b46016af004f0a63b3a1fd04d2c782d22c9fb9ca1edd64736f6c63430008110033

Deployed Bytecode Sourcemap

3508:7298:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5550:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6383:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5827:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6552:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5736:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9946:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4379:42;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10392:85;;;;;;;;;;;;;:::i;:::-;;5930:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2589:148;;;;;;;;;;;;;:::i;:::-;;9505:161;;;;;;;;;;;;;:::i;:::-;;4265:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2375:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4321:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5641:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6057:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10485:318;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10292:92;;;;;;;;;;;;;:::i;:::-;;10116:168;;;;;;;;;;;;;:::i;:::-;;9774:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6232:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5550:83;5587:13;5620:5;;;;;;;;;;;;;;;;;5613:12;;5550:83;:::o;6383:161::-;6458:4;6475:39;6484:12;:10;:12::i;:::-;6498:7;6507:6;6475:8;:39::i;:::-;6532:4;6525:11;;6383:161;;;;:::o;5827:95::-;5880:7;4095:1;4147:2;:13;;;;:::i;:::-;4138:6;:22;;;;:::i;:::-;5900:14;;5827:95;:::o;6552:313::-;6650:4;6667:36;6677:6;6685:9;6696:6;6667:9;:36::i;:::-;6714:121;6723:6;6731:12;:10;:12::i;:::-;6745:89;6783:6;6745:89;;;;;;;;;;;;;;;;;:11;:19;6757:6;6745:19;;;;;;;;;;;;;;;:33;6765:12;:10;:12::i;:::-;6745:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6714:8;:121::i;:::-;6853:4;6846:11;;6552:313;;;;;:::o;5736:83::-;5777:5;4095:1;5795:16;;5736:83;:::o;9946:162::-;2512:12;:10;:12::i;:::-;2502:22;;:6;;;;;;;;;;:22;;;2494:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10019:6:::1;10014:87;10035:6;:13;10031:1;:17;10014:87;;;10086:5;10068:4;:15;10073:6;10080:1;10073:9;;;;;;;;:::i;:::-;;;;;;;;10068:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;10050:3;;;;;:::i;:::-;;;;10014:87;;;;9946:162:::0;:::o;4379:42::-;;;;:::o;10392:85::-;10434:35;10447:21;10434:12;:35::i;:::-;10392:85::o;5930:119::-;5996:7;6023:9;:18;6033:7;6023:18;;;;;;;;;;;;;;;;6016:25;;5930:119;;;:::o;2589:148::-;2512:12;:10;:12::i;:::-;2502:22;;:6;;;;;;;;;;:22;;;2494:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2696:1:::1;2659:40;;2680:6;::::0;::::1;;;;;;;;2659:40;;;;;;;;;;;;2727:1;2710:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2589:148::o:0;9505:161::-;2512:12;:10;:12::i;:::-;2502:22;;:6;;;;;;;;;;:22;;;2494:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4095:1:::1;4147:2;:13;;;;:::i;:::-;4138:6;:22;;;;:::i;:::-;9558:12;:22;;;;4095:1;4147:2;:13;;;;:::i;:::-;4138:6;:22;;;;:::i;:::-;9591:14;:24;;;;9631:27;4095:1;4147:2;:13;;;;:::i;:::-;4138:6;:22;;;;:::i;:::-;9631:27;;;;;;:::i;:::-;;;;;;;;9505:161::o:0;4265:49::-;;;;:::o;2375:79::-;2413:7;2440:6;;;;;;;;;;;2433:13;;2375:79;:::o;4321:51::-;;;;:::o;5641:87::-;5680:13;5713:7;;;;;;;;;;;;;;;;;5706:14;;5641:87;:::o;6057:167::-;6135:4;6152:42;6162:12;:10;:12::i;:::-;6176:9;6187:6;6152:9;:42::i;:::-;6212:4;6205:11;;6057:167;;;;:::o;10485:318::-;2512:12;:10;:12::i;:::-;2502:22;;:6;;;;;;;;;;:22;;;2494:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10602:11:::1;;10586:13;:27;10578:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;10680:9;;10666:11;:23;10658:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;10748:13;10734:11;:27;;;;10784:11;10772:9;:23;;;;10485:318:::0;;:::o;10292:92::-;10334:42;10351:24;10369:4;10351:9;:24::i;:::-;10334:16;:42::i;:::-;10292:92::o;10116:168::-;2512:12;:10;:12::i;:::-;2502:22;;:6;;;;;;;;;;:22;;;2494:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10180:11:::1;;;;;;;;;;;10179:12;10171:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10243:4;10229:11;;:18;;;;;;;;;;;;;;;;;;10272:4;10258:11;;:18;;;;;;;;;;;;;;;;;;10116:168::o:0;9774:164::-;2512:12;:10;:12::i;:::-;2502:22;;:6;;;;;;;;;;:22;;;2494:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9848:6:::1;9843:88;9864:5;:12;9860:1;:16;9843:88;;;9915:4;9898;:14;9903:5;9909:1;9903:8;;;;;;;;:::i;:::-;;;;;;;;9898:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;9878:3;;;;;:::i;:::-;;;;9843:88;;;;9774:164:::0;:::o;6232:143::-;6313:7;6340:11;:18;6352:5;6340:18;;;;;;;;;;;;;;;:27;6359:7;6340:27;;;;;;;;;;;;;;;;6333:34;;6232:143;;;;:::o;1465:246::-;1523:7;1552:1;1547;:6;1543:47;;1577:1;1570:8;;;;1543:47;1600:9;1616:1;1612;:5;;;;:::i;:::-;1600:17;;1645:1;1640;1636;:5;;;;:::i;:::-;:10;1628:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1702:1;1695:8;;;1465:246;;;;;:::o;1719:132::-;1777:7;1804:39;1808:1;1811;1804:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1797:46;;1719:132;;;;:::o;130:98::-;183:7;210:10;203:17;;130:98;:::o;6873:335::-;6983:1;6966:19;;:5;:19;;;6958:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7064:1;7045:21;;:7;:21;;;7037:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7146:6;7116:11;:18;7128:5;7116:18;;;;;;;;;;;;;;;:27;7135:7;7116:27;;;;;;;;;;;;;;;:36;;;;7184:7;7168:32;;7177:5;7168:32;;;7193:6;7168:32;;;;;;:::i;:::-;;;;;;;;6873:335;;;:::o;7216:1790::-;7320:1;7304:18;;:4;:18;;;7296:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7397:1;7383:16;;:2;:16;;;7375:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7467:1;7458:6;:10;7450:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7525:17;7567:10;;;;;;;;;;;7559:18;;:4;:18;;;;:38;;;;;7587:10;;;;;;;;;;;7581:16;;:2;:16;;;;7559:38;:66;;;;;7609:16;;;;;;;;;;;7601:24;;:4;:24;;;;7559:66;7555:1095;;;7650:11;;;;;;;;;;;7642:20;;;;;;7686:4;:10;7691:4;7686:10;;;;;;;;;;;;;;;;;;;;;;;;;7685:11;:24;;;;;7701:4;:8;7706:2;7701:8;;;;;;;;;;;;;;;;;;;;;;;;;7700:9;7685:24;7677:33;;;;;;7739:67;7802:3;7739:58;7772:1;7751:19;;:22;7750:46;;7785:11;;7750:46;;;7775:9;;7750:46;7739:6;:10;;:58;;;;:::i;:::-;:62;;:67;;;;:::i;:::-;7727:79;;7833:13;;;;;;;;;;;7825:21;;:4;:21;;;:55;;;;;7864:15;;;;;;;;;;;7850:30;;:2;:30;;;;7825:55;:83;;;;;7886:18;:22;7905:2;7886:22;;;;;;;;;;;;;;;;;;;;;;;;;7884:24;7825:83;7821:350;;;7948:12;;7938:6;:22;;7930:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8043:14;;8033:6;8017:13;8027:2;8017:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8009:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8130:1;8110:19;;:21;8107:49;;;8133:19;;:21;;;;;;;;;:::i;:::-;;;;;;8107:49;7821:350;8187:28;8218:24;8236:4;8218:9;:24::i;:::-;8187:55;;8262:6;;;;;;;;;;;8261:7;:32;;;;;8280:13;;;;;;;;;;;8272:21;;:4;:21;;;;8261:32;:47;;;;;8297:11;;;;;;;;;;;8261:47;:80;;;;;8333:8;;8312:20;:29;8261:80;:123;;;;;8366:18;;8345:19;;:39;;8261:123;8257:382;;;8405:26;8422:8;;8405:16;:26::i;:::-;8450;8479:21;8450:50;;8543:1;8522:18;:22;8519:105;;;8569:35;8582:21;8569:12;:35::i;:::-;8519:105;8386:253;8257:382;7627:1023;7555:1095;8678:27;8698:6;8678:9;:15;8688:4;8678:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;8662:9;:15;8672:4;8662:15;;;;;;;;;;;;;;;:43;;;;8730:40;8748:21;8759:9;8748:6;:10;;:21;;;;:::i;:::-;8730:9;:13;8740:2;8730:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;8716:9;:13;8726:2;8716:13;;;;;;;;;;;;;;;:54;;;;8801:2;8786:41;;8795:4;8786:41;;;8805:21;8816:9;8805:6;:10;;:21;;;;:::i;:::-;8786:41;;;;;;:::i;:::-;;;;;;;;8851:1;8841:9;:11;8838:161;;;8891:39;8920:9;8891;:24;8909:4;8891:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;8866:9;:24;8884:4;8866:24;;;;;;;;;;;;;;;:64;;;;8971:4;8948:39;;8957:4;8948:39;;;8977:9;8948:39;;;;;;:::i;:::-;;;;;;;;8838:161;7285:1721;7216:1790;;;:::o;1267:190::-;1353:7;1386:1;1381;:6;;1389:12;1373:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1413:9;1429:1;1425;:5;;;;:::i;:::-;1413:17;;1448:1;1441:8;;;1267:190;;;;;:::o;9674:92::-;9731:10;;;;;;;;;;;:19;;:27;9751:6;9731:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9674:92;:::o;9014:483::-;4743:4;4734:6;;:13;;;;;;;;;;;;;;;;;;9092:21:::1;9130:1;9116:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9092:40;;9161:4;9143;9148:1;9143:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9187:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9177:4;9182:1;9177:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9220:62;9237:4;9252:15;;;;;;;;;;;9270:11;9220:8;:62::i;:::-;9293:15;;;;;;;;;;;:66;;;9374:11;9400:1;9416:4;9443;9463:15;9293:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9081:416;4779:5:::0;4770:6;;:14;;;;;;;;;;;;;;;;;;9014:483;:::o;1859:189::-;1945:7;1977:1;1973;:5;1980:12;1965:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2004:9;2020:1;2016;:5;;;;:::i;:::-;2004:17;;2039:1;2032:8;;;1859:189;;;;;:::o;1123:136::-;1181:7;1208:43;1212:1;1215;1208:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1201:50;;1123:136;;;;:::o;936:179::-;994:7;1014:9;1030:1;1026;:5;;;;:::i;:::-;1014:17;;1055:1;1050;:6;;1042:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1106:1;1099:8;;;936:179;;;;:::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:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:117::-;4962:1;4959;4952:12;4976:180;5024:77;5021:1;5014:88;5121:4;5118:1;5111:15;5145:4;5142:1;5135:15;5162:281;5245:27;5267:4;5245:27;:::i;:::-;5237:6;5233:40;5375:6;5363:10;5360:22;5339:18;5327:10;5324:34;5321:62;5318:88;;;5386:18;;:::i;:::-;5318:88;5426:10;5422:2;5415:22;5205:238;5162:281;;:::o;5449:129::-;5483:6;5510:20;;:::i;:::-;5500:30;;5539:33;5567:4;5559:6;5539:33;:::i;:::-;5449:129;;;:::o;5584:311::-;5661:4;5751:18;5743:6;5740:30;5737:56;;;5773:18;;:::i;:::-;5737:56;5823:4;5815:6;5811:17;5803:25;;5883:4;5877;5873:15;5865:23;;5584:311;;;:::o;5901:117::-;6010:1;6007;6000:12;6041:710;6137:5;6162:81;6178:64;6235:6;6178:64;:::i;:::-;6162:81;:::i;:::-;6153:90;;6263:5;6292:6;6285:5;6278:21;6326:4;6319:5;6315:16;6308:23;;6379:4;6371:6;6367:17;6359:6;6355:30;6408:3;6400:6;6397:15;6394:122;;;6427:79;;:::i;:::-;6394:122;6542:6;6525:220;6559:6;6554:3;6551:15;6525:220;;;6634:3;6663:37;6696:3;6684:10;6663:37;:::i;:::-;6658:3;6651:50;6730:4;6725:3;6721:14;6714:21;;6601:144;6585:4;6580:3;6576:14;6569:21;;6525:220;;;6529:21;6143:608;;6041:710;;;;;:::o;6774:370::-;6845:5;6894:3;6887:4;6879:6;6875:17;6871:27;6861:122;;6902:79;;:::i;:::-;6861:122;7019:6;7006:20;7044:94;7134:3;7126:6;7119:4;7111:6;7107:17;7044:94;:::i;:::-;7035:103;;6851:293;6774:370;;;;:::o;7150:539::-;7234:6;7283:2;7271:9;7262:7;7258:23;7254:32;7251:119;;;7289:79;;:::i;:::-;7251:119;7437:1;7426:9;7422:17;7409:31;7467:18;7459:6;7456:30;7453:117;;;7489:79;;:::i;:::-;7453:117;7594:78;7664:7;7655:6;7644:9;7640:22;7594:78;:::i;:::-;7584:88;;7380:302;7150:539;;;;:::o;7695:329::-;7754:6;7803:2;7791:9;7782:7;7778:23;7774:32;7771:119;;;7809:79;;:::i;:::-;7771:119;7929:1;7954:53;7999:7;7990:6;7979:9;7975:22;7954:53;:::i;:::-;7944:63;;7900:117;7695:329;;;;:::o;8030:118::-;8117:24;8135:5;8117:24;:::i;:::-;8112:3;8105:37;8030:118;;:::o;8154:222::-;8247:4;8285:2;8274:9;8270:18;8262:26;;8298:71;8366:1;8355:9;8351:17;8342:6;8298:71;:::i;:::-;8154:222;;;;:::o;8382:474::-;8450:6;8458;8507:2;8495:9;8486:7;8482:23;8478:32;8475:119;;;8513:79;;:::i;:::-;8475:119;8633:1;8658:53;8703:7;8694:6;8683:9;8679:22;8658:53;:::i;:::-;8648:63;;8604:117;8760:2;8786:53;8831:7;8822:6;8811:9;8807:22;8786:53;:::i;:::-;8776:63;;8731:118;8382:474;;;;;:::o;8862:::-;8930:6;8938;8987:2;8975:9;8966:7;8962:23;8958:32;8955:119;;;8993:79;;:::i;:::-;8955:119;9113:1;9138:53;9183:7;9174:6;9163:9;9159:22;9138:53;:::i;:::-;9128:63;;9084:117;9240:2;9266:53;9311:7;9302:6;9291:9;9287:22;9266:53;:::i;:::-;9256:63;;9211:118;8862:474;;;;;:::o;9342:180::-;9390:77;9387:1;9380:88;9487:4;9484:1;9477:15;9511:4;9508:1;9501:15;9528:102;9570:8;9617:5;9614:1;9610:13;9589:34;;9528:102;;;:::o;9636:848::-;9697:5;9704:4;9728:6;9719:15;;9752:5;9743:14;;9766:712;9787:1;9777:8;9774:15;9766:712;;;9882:4;9877:3;9873:14;9867:4;9864:24;9861:50;;;9891:18;;:::i;:::-;9861:50;9941:1;9931:8;9927:16;9924:451;;;10356:4;10349:5;10345:16;10336:25;;9924:451;10406:4;10400;10396:15;10388:23;;10436:32;10459:8;10436:32;:::i;:::-;10424:44;;9766:712;;;9636:848;;;;;;;:::o;10490:1073::-;10544:5;10735:8;10725:40;;10756:1;10747:10;;10758:5;;10725:40;10784:4;10774:36;;10801:1;10792:10;;10803:5;;10774:36;10870:4;10918:1;10913:27;;;;10954:1;10949:191;;;;10863:277;;10913:27;10931:1;10922:10;;10933:5;;;10949:191;10994:3;10984:8;10981:17;10978:43;;;11001:18;;:::i;:::-;10978:43;11050:8;11047:1;11043:16;11034:25;;11085:3;11078:5;11075:14;11072:40;;;11092:18;;:::i;:::-;11072:40;11125:5;;;10863:277;;11249:2;11239:8;11236:16;11230:3;11224:4;11221:13;11217:36;11199:2;11189:8;11186:16;11181:2;11175:4;11172:12;11168:35;11152:111;11149:246;;;11305:8;11299:4;11295:19;11286:28;;11340:3;11333:5;11330:14;11327:40;;;11347:18;;:::i;:::-;11327:40;11380:5;;11149:246;11420:42;11458:3;11448:8;11442:4;11439:1;11420:42;:::i;:::-;11405:57;;;;11494:4;11489:3;11485:14;11478:5;11475:25;11472:51;;;11503:18;;:::i;:::-;11472:51;11552:4;11545:5;11541:16;11532:25;;10490:1073;;;;;;:::o;11569:281::-;11627:5;11651:23;11669:4;11651:23;:::i;:::-;11643:31;;11695:25;11711:8;11695:25;:::i;:::-;11683:37;;11739:104;11776:66;11766:8;11760:4;11739:104;:::i;:::-;11730:113;;11569:281;;;;:::o;11856:410::-;11896:7;11919:20;11937:1;11919:20;:::i;:::-;11914:25;;11953:20;11971:1;11953:20;:::i;:::-;11948:25;;12008:1;12005;12001:9;12030:30;12048:11;12030:30;:::i;:::-;12019:41;;12209:1;12200:7;12196:15;12193:1;12190:22;12170:1;12163:9;12143:83;12120:139;;12239:18;;:::i;:::-;12120:139;11904:362;11856:410;;;;:::o;12272:182::-;12412:34;12408:1;12400:6;12396:14;12389:58;12272:182;:::o;12460:366::-;12602:3;12623:67;12687:2;12682:3;12623:67;:::i;:::-;12616:74;;12699:93;12788:3;12699:93;:::i;:::-;12817:2;12812:3;12808:12;12801:19;;12460:366;;;:::o;12832:419::-;12998:4;13036:2;13025:9;13021:18;13013:26;;13085:9;13079:4;13075:20;13071:1;13060:9;13056:17;13049:47;13113:131;13239:4;13113:131;:::i;:::-;13105:139;;12832:419;;;:::o;13257:180::-;13305:77;13302:1;13295:88;13402:4;13399:1;13392:15;13426:4;13423:1;13416:15;13443:233;13482:3;13505:24;13523:5;13505:24;:::i;:::-;13496:33;;13551:66;13544:5;13541:77;13538:103;;13621:18;;:::i;:::-;13538:103;13668:1;13661:5;13657:13;13650:20;;13443:233;;;:::o;13682:179::-;13822:31;13818:1;13810:6;13806:14;13799:55;13682:179;:::o;13867:366::-;14009:3;14030:67;14094:2;14089:3;14030:67;:::i;:::-;14023:74;;14106:93;14195:3;14106:93;:::i;:::-;14224:2;14219:3;14215:12;14208:19;;13867:366;;;:::o;14239:419::-;14405:4;14443:2;14432:9;14428:18;14420:26;;14492:9;14486:4;14482:20;14478:1;14467:9;14463:17;14456:47;14520:131;14646:4;14520:131;:::i;:::-;14512:139;;14239:419;;;:::o;14664:173::-;14804:25;14800:1;14792:6;14788:14;14781:49;14664:173;:::o;14843:366::-;14985:3;15006:67;15070:2;15065:3;15006:67;:::i;:::-;14999:74;;15082:93;15171:3;15082:93;:::i;:::-;15200:2;15195:3;15191:12;15184:19;;14843:366;;;:::o;15215:419::-;15381:4;15419:2;15408:9;15404:18;15396:26;;15468:9;15462:4;15458:20;15454:1;15443:9;15439:17;15432:47;15496:131;15622:4;15496:131;:::i;:::-;15488:139;;15215:419;;;:::o;15640:180::-;15688:77;15685:1;15678:88;15785:4;15782:1;15775:15;15809:4;15806:1;15799:15;15826:185;15866:1;15883:20;15901:1;15883:20;:::i;:::-;15878:25;;15917:20;15935:1;15917:20;:::i;:::-;15912:25;;15956:1;15946:35;;15961:18;;:::i;:::-;15946:35;16003:1;16000;15996:9;15991:14;;15826:185;;;;:::o;16017:220::-;16157:34;16153:1;16145:6;16141:14;16134:58;16226:3;16221:2;16213:6;16209:15;16202:28;16017:220;:::o;16243:366::-;16385:3;16406:67;16470:2;16465:3;16406:67;:::i;:::-;16399:74;;16482:93;16571:3;16482:93;:::i;:::-;16600:2;16595:3;16591:12;16584:19;;16243:366;;;:::o;16615:419::-;16781:4;16819:2;16808:9;16804:18;16796:26;;16868:9;16862:4;16858:20;16854:1;16843:9;16839:17;16832:47;16896:131;17022:4;16896:131;:::i;:::-;16888:139;;16615:419;;;:::o;17040:223::-;17180:34;17176:1;17168:6;17164:14;17157:58;17249:6;17244:2;17236:6;17232:15;17225:31;17040:223;:::o;17269:366::-;17411:3;17432:67;17496:2;17491:3;17432:67;:::i;:::-;17425:74;;17508:93;17597:3;17508:93;:::i;:::-;17626:2;17621:3;17617:12;17610:19;;17269:366;;;:::o;17641:419::-;17807:4;17845:2;17834:9;17830:18;17822:26;;17894:9;17888:4;17884:20;17880:1;17869:9;17865:17;17858:47;17922:131;18048:4;17922:131;:::i;:::-;17914:139;;17641:419;;;:::o;18066:221::-;18206:34;18202:1;18194:6;18190:14;18183:58;18275:4;18270:2;18262:6;18258:15;18251:29;18066:221;:::o;18293:366::-;18435:3;18456:67;18520:2;18515:3;18456:67;:::i;:::-;18449:74;;18532:93;18621:3;18532:93;:::i;:::-;18650:2;18645:3;18641:12;18634:19;;18293:366;;;:::o;18665:419::-;18831:4;18869:2;18858:9;18854:18;18846:26;;18918:9;18912:4;18908:20;18904:1;18893:9;18889:17;18882:47;18946:131;19072:4;18946:131;:::i;:::-;18938:139;;18665:419;;;:::o;19090:224::-;19230:34;19226:1;19218:6;19214:14;19207:58;19299:7;19294:2;19286:6;19282:15;19275:32;19090:224;:::o;19320:366::-;19462:3;19483:67;19547:2;19542:3;19483:67;:::i;:::-;19476:74;;19559:93;19648:3;19559:93;:::i;:::-;19677:2;19672:3;19668:12;19661:19;;19320:366;;;:::o;19692:419::-;19858:4;19896:2;19885:9;19881:18;19873:26;;19945:9;19939:4;19935:20;19931:1;19920:9;19916:17;19909:47;19973:131;20099:4;19973:131;:::i;:::-;19965:139;;19692:419;;;:::o;20117:222::-;20257:34;20253:1;20245:6;20241:14;20234:58;20326:5;20321:2;20313:6;20309:15;20302:30;20117:222;:::o;20345:366::-;20487:3;20508:67;20572:2;20567:3;20508:67;:::i;:::-;20501:74;;20584:93;20673:3;20584:93;:::i;:::-;20702:2;20697:3;20693:12;20686:19;;20345:366;;;:::o;20717:419::-;20883:4;20921:2;20910:9;20906:18;20898:26;;20970:9;20964:4;20960:20;20956:1;20945:9;20941:17;20934:47;20998:131;21124:4;20998:131;:::i;:::-;20990:139;;20717:419;;;:::o;21142:228::-;21282:34;21278:1;21270:6;21266:14;21259:58;21351:11;21346:2;21338:6;21334:15;21327:36;21142:228;:::o;21376:366::-;21518:3;21539:67;21603:2;21598:3;21539:67;:::i;:::-;21532:74;;21615:93;21704:3;21615:93;:::i;:::-;21733:2;21728:3;21724:12;21717:19;;21376:366;;;:::o;21748:419::-;21914:4;21952:2;21941:9;21937:18;21929:26;;22001:9;21995:4;21991:20;21987:1;21976:9;21972:17;21965:47;22029:131;22155:4;22029:131;:::i;:::-;22021:139;;21748:419;;;:::o;22173:175::-;22313:27;22309:1;22301:6;22297:14;22290:51;22173:175;:::o;22354:366::-;22496:3;22517:67;22581:2;22576:3;22517:67;:::i;:::-;22510:74;;22593:93;22682:3;22593:93;:::i;:::-;22711:2;22706:3;22702:12;22695:19;;22354:366;;;:::o;22726:419::-;22892:4;22930:2;22919:9;22915:18;22907:26;;22979:9;22973:4;22969:20;22965:1;22954:9;22950:17;22943:47;23007:131;23133:4;23007:131;:::i;:::-;22999:139;;22726:419;;;:::o;23151:191::-;23191:3;23210:20;23228:1;23210:20;:::i;:::-;23205:25;;23244:20;23262:1;23244:20;:::i;:::-;23239:25;;23287:1;23284;23280:9;23273:16;;23308:3;23305:1;23302:10;23299:36;;;23315:18;;:::i;:::-;23299:36;23151:191;;;;:::o;23348:176::-;23488:28;23484:1;23476:6;23472:14;23465:52;23348:176;:::o;23530:366::-;23672:3;23693:67;23757:2;23752:3;23693:67;:::i;:::-;23686:74;;23769:93;23858:3;23769:93;:::i;:::-;23887:2;23882:3;23878:12;23871:19;;23530:366;;;:::o;23902:419::-;24068:4;24106:2;24095:9;24091:18;24083:26;;24155:9;24149:4;24145:20;24141:1;24130:9;24126:17;24119:47;24183:131;24309:4;24183:131;:::i;:::-;24175:139;;23902:419;;;:::o;24327:171::-;24366:3;24389:24;24407:5;24389:24;:::i;:::-;24380:33;;24435:4;24428:5;24425:15;24422:41;;24443:18;;:::i;:::-;24422:41;24490:1;24483:5;24479:13;24472:20;;24327:171;;;:::o;24504:194::-;24544:4;24564:20;24582:1;24564:20;:::i;:::-;24559:25;;24598:20;24616:1;24598:20;:::i;:::-;24593:25;;24642:1;24639;24635:9;24627:17;;24666:1;24660:4;24657:11;24654:37;;;24671:18;;:::i;:::-;24654:37;24504:194;;;;:::o;24704:143::-;24761:5;24792:6;24786:13;24777:22;;24808:33;24835:5;24808:33;:::i;:::-;24704:143;;;;:::o;24853:351::-;24923:6;24972:2;24960:9;24951:7;24947:23;24943:32;24940:119;;;24978:79;;:::i;:::-;24940:119;25098:1;25123:64;25179:7;25170:6;25159:9;25155:22;25123:64;:::i;:::-;25113:74;;25069:128;24853:351;;;;:::o;25210:85::-;25255:7;25284:5;25273:16;;25210:85;;;:::o;25301:60::-;25329:3;25350:5;25343:12;;25301:60;;;:::o;25367:158::-;25425:9;25458:61;25476:42;25485:32;25511:5;25485:32;:::i;:::-;25476:42;:::i;:::-;25458:61;:::i;:::-;25445:74;;25367:158;;;:::o;25531:147::-;25626:45;25665:5;25626:45;:::i;:::-;25621:3;25614:58;25531:147;;:::o;25684:114::-;25751:6;25785:5;25779:12;25769:22;;25684:114;;;:::o;25804:184::-;25903:11;25937:6;25932:3;25925:19;25977:4;25972:3;25968:14;25953:29;;25804:184;;;;:::o;25994:132::-;26061:4;26084:3;26076:11;;26114:4;26109:3;26105:14;26097:22;;25994:132;;;:::o;26132:108::-;26209:24;26227:5;26209:24;:::i;:::-;26204:3;26197:37;26132:108;;:::o;26246:179::-;26315:10;26336:46;26378:3;26370:6;26336:46;:::i;:::-;26414:4;26409:3;26405:14;26391:28;;26246:179;;;;:::o;26431:113::-;26501:4;26533;26528:3;26524:14;26516:22;;26431:113;;;:::o;26580:732::-;26699:3;26728:54;26776:5;26728:54;:::i;:::-;26798:86;26877:6;26872:3;26798:86;:::i;:::-;26791:93;;26908:56;26958:5;26908:56;:::i;:::-;26987:7;27018:1;27003:284;27028:6;27025:1;27022:13;27003:284;;;27104:6;27098:13;27131:63;27190:3;27175:13;27131:63;:::i;:::-;27124:70;;27217:60;27270:6;27217:60;:::i;:::-;27207:70;;27063:224;27050:1;27047;27043:9;27038:14;;27003:284;;;27007:14;27303:3;27296:10;;26704:608;;;26580:732;;;;:::o;27318:831::-;27581:4;27619:3;27608:9;27604:19;27596:27;;27633:71;27701:1;27690:9;27686:17;27677:6;27633:71;:::i;:::-;27714:80;27790:2;27779:9;27775:18;27766:6;27714:80;:::i;:::-;27841:9;27835:4;27831:20;27826:2;27815:9;27811:18;27804:48;27869:108;27972:4;27963:6;27869:108;:::i;:::-;27861:116;;27987:72;28055:2;28044:9;28040:18;28031:6;27987:72;:::i;:::-;28069:73;28137:3;28126:9;28122:19;28113:6;28069:73;:::i;:::-;27318:831;;;;;;;;:::o;28155:177::-;28295:29;28291:1;28283:6;28279:14;28272:53;28155:177;:::o;28338:366::-;28480:3;28501:67;28565:2;28560:3;28501:67;:::i;:::-;28494:74;;28577:93;28666:3;28577:93;:::i;:::-;28695:2;28690:3;28686:12;28679:19;;28338:366;;;:::o;28710:419::-;28876:4;28914:2;28903:9;28899:18;28891:26;;28963:9;28957:4;28953:20;28949:1;28938:9;28934:17;28927:47;28991:131;29117:4;28991:131;:::i;:::-;28983:139;;28710:419;;;:::o

Swarm Source

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