ETH Price: $3,866.66 (+0.83%)

Token

ERC-20: Seven Figures (7Figures)
 

Overview

Max Total Supply

1,000,000 7Figures

Holders

38

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
0 7Figures

Value
$0.00
0x720274b576f9640fa93c4ef182708ea69acafa56
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:
SevenFigures

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-05
*/

/*
    https://t.me/SevenFiguresErc
    https://twitter.com/7Figures_Erc
*/

//  SPDX-License-Identifier: UNLICENSED

pragma solidity 0.8.7;

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;
    address private _previousOwner;
    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 SevenFigures is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => bool) private _isBlacklisted;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1_000_000 * 10**8;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    uint256 private _initialTax;
    uint256 private _finalTax;
    uint256 private _reduceTaxCountdown;
    address payable private _feeAddrWallet;

    string private constant _name = "Seven Figures";
    string private constant _symbol = "7Figures";
    uint8 private constant _decimals = 8;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = 20_000 * 10**8;
    uint256 private _maxWalletSize = 20_000 * 10**8;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () {
        _feeAddrWallet = payable(_msgSender());
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet] = true;
        _initialTax=25;
        _finalTax=6;
        _reduceTaxCountdown=800;

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

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[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 setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    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 updateIsBlacklisted(address account, bool state) external onlyOwner{
        _isBlacklisted[account] = state;
    }

    function antiDump(uint _init, uint _final) external onlyOwner() {
        _initialTax = _init;
        _finalTax = _final;
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        require(!_isBlacklisted[from] && !_isBlacklisted[to], "You are a bot");


        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            _feeAddr1 = 0;
            _feeAddr2 = (_reduceTaxCountdown==0)?_finalTax:_initialTax;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                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>0 && _reduceTaxCountdown<770) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }else{
          _feeAddr1 = 0;
          _feeAddr2 = 0;
        }

        _tokenTransfer(from,to,amount);
    }

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

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

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

        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }

    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function manualswap() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _feeAddrWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }


    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

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":[{"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":"uint256","name":"_init","type":"uint256"},{"internalType":"uint256","name":"_final","type":"uint256"}],"name":"antiDump","outputs":[],"stateMutability":"nonpayable","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":[],"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":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateIsBlacklisted","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052655af3107a40006000196200001a91906200046d565b60001962000029919062000428565b6009556000601260156101000a81548160ff0219169083151502179055506000601260166101000a81548160ff0219169083151502179055506000601260176101000a81548160ff0219169083151502179055506501d1a94a20006013556501d1a94a20006014553480156200009e57600080fd5b506000620000b1620003c960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506200015f620003c960201b60201c565b601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060095460026000620001b6620003c960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600660006200020a620003d160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160066000601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506019600d819055506006600e81905550610320600f8190555062000356620003c960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef655af3107a4000604051620003bb91906200040b565b60405180910390a362000503565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620004058162000463565b82525050565b6000602082019050620004226000830184620003fa565b92915050565b6000620004358262000463565b9150620004428362000463565b925082821015620004585762000457620004a5565b5b828203905092915050565b6000819050919050565b60006200047a8262000463565b9150620004878362000463565b9250826200049a5762000499620004d4565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b61335080620005136000396000f3fe60806040526004361061010d5760003560e01c8063715018a611610095578063a9059cbb11610064578063a9059cbb1461033e578063c2637d251461037b578063c3c8cd80146103a4578063c9567bf9146103bb578063dd62ed3e146103d257610114565b8063715018a6146102ba578063751039fc146102d15780638da5cb5b146102e857806395d89b411461031357610114565b8063313ce567116100dc578063313ce567146101e95780635932ead1146102145780635b24ea5e1461023d5780636fc3eaec1461026657806370a082311461027d57610114565b806306fdde0314610119578063095ea7b31461014457806318160ddd1461018157806323b872dd146101ac57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e61040f565b60405161013b9190612a3c565b60405180910390f35b34801561015057600080fd5b5061016b60048036038101906101669190612556565b61044c565b6040516101789190612a21565b60405180910390f35b34801561018d57600080fd5b5061019661046a565b6040516101a39190612bfe565b60405180910390f35b3480156101b857600080fd5b506101d360048036038101906101ce91906124c3565b610478565b6040516101e09190612a21565b60405180910390f35b3480156101f557600080fd5b506101fe610551565b60405161020b9190612c73565b60405180910390f35b34801561022057600080fd5b5061023b60048036038101906102369190612596565b61055a565b005b34801561024957600080fd5b50610264600480360381019061025f9190612516565b61060c565b005b34801561027257600080fd5b5061027b6106fc565b005b34801561028957600080fd5b506102a4600480360381019061029f9190612429565b61076e565b6040516102b19190612bfe565b60405180910390f35b3480156102c657600080fd5b506102cf6107bf565b005b3480156102dd57600080fd5b506102e6610912565b005b3480156102f457600080fd5b506102fd6109c3565b60405161030a9190612953565b60405180910390f35b34801561031f57600080fd5b506103286109ec565b6040516103359190612a3c565b60405180910390f35b34801561034a57600080fd5b5061036560048036038101906103609190612556565b610a29565b6040516103729190612a21565b60405180910390f35b34801561038757600080fd5b506103a2600480360381019061039d91906125f0565b610a47565b005b3480156103b057600080fd5b506103b9610aee565b005b3480156103c757600080fd5b506103d0610b68565b005b3480156103de57600080fd5b506103f960048036038101906103f49190612483565b6110b2565b6040516104069190612bfe565b60405180910390f35b60606040518060400160405280600d81526020017f536576656e204669677572657300000000000000000000000000000000000000815250905090565b6000610460610459611139565b8484611141565b6001905092915050565b6000655af3107a4000905090565b600061048584848461130c565b61054684610491611139565b610541856040518060600160405280602881526020016132f360289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104f7611139565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119389092919063ffffffff16565b611141565b600190509392505050565b60006008905090565b610562611139565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e690612b1e565b60405180910390fd5b80601260176101000a81548160ff02191690831515021790555050565b610614611139565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069890612b1e565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661073d611139565b73ffffffffffffffffffffffffffffffffffffffff161461075d57600080fd5b600047905061076b8161199c565b50565b60006107b8600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a08565b9050919050565b6107c7611139565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610854576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084b90612b1e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61091a611139565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099e90612b1e565b60405180910390fd5b655af3107a4000601381905550655af3107a4000601481905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f3746696775726573000000000000000000000000000000000000000000000000815250905090565b6000610a3d610a36611139565b848461130c565b6001905092915050565b610a4f611139565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad390612b1e565b60405180910390fd5b81600d8190555080600e819055505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b2f611139565b73ffffffffffffffffffffffffffffffffffffffff1614610b4f57600080fd5b6000610b5a3061076e565b9050610b6581611a76565b50565b610b70611139565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf490612b1e565b60405180910390fd5b601260149054906101000a900460ff1615610c4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4490612bbe565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cda30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16655af3107a4000611141565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d2057600080fd5b505afa158015610d34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d589190612456565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610dba57600080fd5b505afa158015610dce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df29190612456565b6040518363ffffffff1660e01b8152600401610e0f92919061296e565b602060405180830381600087803b158015610e2957600080fd5b505af1158015610e3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e619190612456565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610eea3061076e565b600080610ef56109c3565b426040518863ffffffff1660e01b8152600401610f17969594939291906129c0565b6060604051808303818588803b158015610f3057600080fd5b505af1158015610f44573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f699190612630565b5050506001601260166101000a81548160ff0219169083151502179055506001601260176101000a81548160ff0219169083151502179055506001601260146101000a81548160ff021916908315150217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161105c929190612997565b602060405180830381600087803b15801561107657600080fd5b505af115801561108a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ae91906125c3565b5050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a890612b9e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611221576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121890612abe565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112ff9190612bfe565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561137c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137390612b5e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e390612a5e565b60405180910390fd5b6000811161142f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142690612b3e565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114d35750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611512576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150990612bde565b60405180910390fd5b61151a6109c3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561158857506115586109c3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561191757600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116315750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61163a57600080fd5b6000600b819055506000600f541461165457600d54611658565b600e545b600c81905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117095750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561175f5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117775750601260179054906101000a900460ff165b1561183e576013548111156117c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b890612a7e565b60405180910390fd5b601454816117ce8461076e565b6117d89190612ce3565b1115611819576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181090612b7e565b60405180910390fd5b6000600f54111561183d57600f600081548092919061183790612e92565b91905055505b5b60006118493061076e565b9050601260159054906101000a900460ff161580156118b65750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156118ce5750601260169054906101000a900460ff165b80156118da5750600081115b80156118e95750610302600f54105b15611911576118f781611a76565b6000479050600081111561190f5761190e4761199c565b5b505b50611928565b6000600b819055506000600c819055505b611933838383611cfe565b505050565b6000838311158290611980576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119779190612a3c565b60405180910390fd5b506000838561198f9190612dc4565b9050809150509392505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611a04573d6000803e3d6000fd5b5050565b6000600954821115611a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4690612a9e565b60405180910390fd5b6000611a59611d0e565b9050611a6e8184611d3990919063ffffffff16565b915050919050565b6001601260156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611aae57611aad612f49565b5b604051908082528060200260200182016040528015611adc5781602001602082028036833780820191505090505b5090503081600081518110611af457611af3612f1a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611b9657600080fd5b505afa158015611baa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bce9190612456565b81600181518110611be257611be1612f1a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c4930601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611141565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611cad959493929190612c19565b600060405180830381600087803b158015611cc757600080fd5b505af1158015611cdb573d6000803e3d6000fd5b50505050506000601260156101000a81548160ff02191690831515021790555050565b611d09838383611d83565b505050565b6000806000611d1b611f4e565b91509150611d328183611d3990919063ffffffff16565b9250505090565b6000611d7b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fa7565b905092915050565b600080600080600080611d958761200a565b955095509550955095509550611df386600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461207290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e8885600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120bc90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ed48161211a565b611ede84836121d7565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611f3b9190612bfe565b60405180910390a3505050505050505050565b600080600060095490506000655af3107a40009050611f7e655af3107a4000600954611d3990919063ffffffff16565b821015611f9a57600954655af3107a4000935093505050611fa3565b81819350935050505b9091565b60008083118290611fee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe59190612a3c565b60405180910390fd5b5060008385611ffd9190612d39565b9050809150509392505050565b60008060008060008060008060006120278a600b54600c54612211565b9250925092506000612037611d0e565b9050600080600061204a8e8787876122a7565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006120b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611938565b905092915050565b60008082846120cb9190612ce3565b905083811015612110576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210790612ade565b60405180910390fd5b8091505092915050565b6000612124611d0e565b9050600061213b828461233090919063ffffffff16565b905061218f81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120bc90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6121ec8260095461207290919063ffffffff16565b60098190555061220781600a546120bc90919063ffffffff16565b600a819055505050565b60008060008061223d606461222f888a61233090919063ffffffff16565b611d3990919063ffffffff16565b905060006122676064612259888b61233090919063ffffffff16565b611d3990919063ffffffff16565b9050600061229082612282858c61207290919063ffffffff16565b61207290919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806122c0858961233090919063ffffffff16565b905060006122d7868961233090919063ffffffff16565b905060006122ee878961233090919063ffffffff16565b9050600061231782612309858761207290919063ffffffff16565b61207290919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561234357600090506123a5565b600082846123519190612d6a565b90508284826123609190612d39565b146123a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239790612afe565b60405180910390fd5b809150505b92915050565b6000813590506123ba816132ad565b92915050565b6000815190506123cf816132ad565b92915050565b6000813590506123e4816132c4565b92915050565b6000815190506123f9816132c4565b92915050565b60008135905061240e816132db565b92915050565b600081519050612423816132db565b92915050565b60006020828403121561243f5761243e612f78565b5b600061244d848285016123ab565b91505092915050565b60006020828403121561246c5761246b612f78565b5b600061247a848285016123c0565b91505092915050565b6000806040838503121561249a57612499612f78565b5b60006124a8858286016123ab565b92505060206124b9858286016123ab565b9150509250929050565b6000806000606084860312156124dc576124db612f78565b5b60006124ea868287016123ab565b93505060206124fb868287016123ab565b925050604061250c868287016123ff565b9150509250925092565b6000806040838503121561252d5761252c612f78565b5b600061253b858286016123ab565b925050602061254c858286016123d5565b9150509250929050565b6000806040838503121561256d5761256c612f78565b5b600061257b858286016123ab565b925050602061258c858286016123ff565b9150509250929050565b6000602082840312156125ac576125ab612f78565b5b60006125ba848285016123d5565b91505092915050565b6000602082840312156125d9576125d8612f78565b5b60006125e7848285016123ea565b91505092915050565b6000806040838503121561260757612606612f78565b5b6000612615858286016123ff565b9250506020612626858286016123ff565b9150509250929050565b60008060006060848603121561264957612648612f78565b5b600061265786828701612414565b935050602061266886828701612414565b925050604061267986828701612414565b9150509250925092565b600061268f838361269b565b60208301905092915050565b6126a481612df8565b82525050565b6126b381612df8565b82525050565b60006126c482612c9e565b6126ce8185612cc1565b93506126d983612c8e565b8060005b8381101561270a5781516126f18882612683565b97506126fc83612cb4565b9250506001810190506126dd565b5085935050505092915050565b61272081612e0a565b82525050565b61272f81612e4d565b82525050565b600061274082612ca9565b61274a8185612cd2565b935061275a818560208601612e5f565b61276381612f7d565b840191505092915050565b600061277b602383612cd2565b915061278682612f8e565b604082019050919050565b600061279e601983612cd2565b91506127a982612fdd565b602082019050919050565b60006127c1602a83612cd2565b91506127cc82613006565b604082019050919050565b60006127e4602283612cd2565b91506127ef82613055565b604082019050919050565b6000612807601b83612cd2565b9150612812826130a4565b602082019050919050565b600061282a602183612cd2565b9150612835826130cd565b604082019050919050565b600061284d602083612cd2565b91506128588261311c565b602082019050919050565b6000612870602983612cd2565b915061287b82613145565b604082019050919050565b6000612893602583612cd2565b915061289e82613194565b604082019050919050565b60006128b6601a83612cd2565b91506128c1826131e3565b602082019050919050565b60006128d9602483612cd2565b91506128e48261320c565b604082019050919050565b60006128fc601783612cd2565b91506129078261325b565b602082019050919050565b600061291f600d83612cd2565b915061292a82613284565b602082019050919050565b61293e81612e36565b82525050565b61294d81612e40565b82525050565b600060208201905061296860008301846126aa565b92915050565b600060408201905061298360008301856126aa565b61299060208301846126aa565b9392505050565b60006040820190506129ac60008301856126aa565b6129b96020830184612935565b9392505050565b600060c0820190506129d560008301896126aa565b6129e26020830188612935565b6129ef6040830187612726565b6129fc6060830186612726565b612a0960808301856126aa565b612a1660a0830184612935565b979650505050505050565b6000602082019050612a366000830184612717565b92915050565b60006020820190508181036000830152612a568184612735565b905092915050565b60006020820190508181036000830152612a778161276e565b9050919050565b60006020820190508181036000830152612a9781612791565b9050919050565b60006020820190508181036000830152612ab7816127b4565b9050919050565b60006020820190508181036000830152612ad7816127d7565b9050919050565b60006020820190508181036000830152612af7816127fa565b9050919050565b60006020820190508181036000830152612b178161281d565b9050919050565b60006020820190508181036000830152612b3781612840565b9050919050565b60006020820190508181036000830152612b5781612863565b9050919050565b60006020820190508181036000830152612b7781612886565b9050919050565b60006020820190508181036000830152612b97816128a9565b9050919050565b60006020820190508181036000830152612bb7816128cc565b9050919050565b60006020820190508181036000830152612bd7816128ef565b9050919050565b60006020820190508181036000830152612bf781612912565b9050919050565b6000602082019050612c136000830184612935565b92915050565b600060a082019050612c2e6000830188612935565b612c3b6020830187612726565b8181036040830152612c4d81866126b9565b9050612c5c60608301856126aa565b612c696080830184612935565b9695505050505050565b6000602082019050612c886000830184612944565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612cee82612e36565b9150612cf983612e36565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612d2e57612d2d612ebc565b5b828201905092915050565b6000612d4482612e36565b9150612d4f83612e36565b925082612d5f57612d5e612eeb565b5b828204905092915050565b6000612d7582612e36565b9150612d8083612e36565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612db957612db8612ebc565b5b828202905092915050565b6000612dcf82612e36565b9150612dda83612e36565b925082821015612ded57612dec612ebc565b5b828203905092915050565b6000612e0382612e16565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612e5882612e36565b9050919050565b60005b83811015612e7d578082015181840152602081019050612e62565b83811115612e8c576000848401525b50505050565b6000612e9d82612e36565b91506000821415612eb157612eb0612ebc565b5b600182039050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f596f7520617265206120626f7400000000000000000000000000000000000000600082015250565b6132b681612df8565b81146132c157600080fd5b50565b6132cd81612e0a565b81146132d857600080fd5b50565b6132e481612e36565b81146132ef57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122084cece3278ec15a04398708342ec18f2a51d7551db5ad765af77e99e11a466d964736f6c63430008070033

Deployed Bytecode

0x60806040526004361061010d5760003560e01c8063715018a611610095578063a9059cbb11610064578063a9059cbb1461033e578063c2637d251461037b578063c3c8cd80146103a4578063c9567bf9146103bb578063dd62ed3e146103d257610114565b8063715018a6146102ba578063751039fc146102d15780638da5cb5b146102e857806395d89b411461031357610114565b8063313ce567116100dc578063313ce567146101e95780635932ead1146102145780635b24ea5e1461023d5780636fc3eaec1461026657806370a082311461027d57610114565b806306fdde0314610119578063095ea7b31461014457806318160ddd1461018157806323b872dd146101ac57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e61040f565b60405161013b9190612a3c565b60405180910390f35b34801561015057600080fd5b5061016b60048036038101906101669190612556565b61044c565b6040516101789190612a21565b60405180910390f35b34801561018d57600080fd5b5061019661046a565b6040516101a39190612bfe565b60405180910390f35b3480156101b857600080fd5b506101d360048036038101906101ce91906124c3565b610478565b6040516101e09190612a21565b60405180910390f35b3480156101f557600080fd5b506101fe610551565b60405161020b9190612c73565b60405180910390f35b34801561022057600080fd5b5061023b60048036038101906102369190612596565b61055a565b005b34801561024957600080fd5b50610264600480360381019061025f9190612516565b61060c565b005b34801561027257600080fd5b5061027b6106fc565b005b34801561028957600080fd5b506102a4600480360381019061029f9190612429565b61076e565b6040516102b19190612bfe565b60405180910390f35b3480156102c657600080fd5b506102cf6107bf565b005b3480156102dd57600080fd5b506102e6610912565b005b3480156102f457600080fd5b506102fd6109c3565b60405161030a9190612953565b60405180910390f35b34801561031f57600080fd5b506103286109ec565b6040516103359190612a3c565b60405180910390f35b34801561034a57600080fd5b5061036560048036038101906103609190612556565b610a29565b6040516103729190612a21565b60405180910390f35b34801561038757600080fd5b506103a2600480360381019061039d91906125f0565b610a47565b005b3480156103b057600080fd5b506103b9610aee565b005b3480156103c757600080fd5b506103d0610b68565b005b3480156103de57600080fd5b506103f960048036038101906103f49190612483565b6110b2565b6040516104069190612bfe565b60405180910390f35b60606040518060400160405280600d81526020017f536576656e204669677572657300000000000000000000000000000000000000815250905090565b6000610460610459611139565b8484611141565b6001905092915050565b6000655af3107a4000905090565b600061048584848461130c565b61054684610491611139565b610541856040518060600160405280602881526020016132f360289139600560008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104f7611139565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119389092919063ffffffff16565b611141565b600190509392505050565b60006008905090565b610562611139565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105e690612b1e565b60405180910390fd5b80601260176101000a81548160ff02191690831515021790555050565b610614611139565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161069890612b1e565b60405180910390fd5b80600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661073d611139565b73ffffffffffffffffffffffffffffffffffffffff161461075d57600080fd5b600047905061076b8161199c565b50565b60006107b8600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a08565b9050919050565b6107c7611139565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610854576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161084b90612b1e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b61091a611139565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146109a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099e90612b1e565b60405180910390fd5b655af3107a4000601381905550655af3107a4000601481905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f3746696775726573000000000000000000000000000000000000000000000000815250905090565b6000610a3d610a36611139565b848461130c565b6001905092915050565b610a4f611139565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610adc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad390612b1e565b60405180910390fd5b81600d8190555080600e819055505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b2f611139565b73ffffffffffffffffffffffffffffffffffffffff1614610b4f57600080fd5b6000610b5a3061076e565b9050610b6581611a76565b50565b610b70611139565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf490612b1e565b60405180910390fd5b601260149054906101000a900460ff1615610c4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4490612bbe565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610cda30601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16655af3107a4000611141565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610d2057600080fd5b505afa158015610d34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d589190612456565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610dba57600080fd5b505afa158015610dce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610df29190612456565b6040518363ffffffff1660e01b8152600401610e0f92919061296e565b602060405180830381600087803b158015610e2957600080fd5b505af1158015610e3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e619190612456565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610eea3061076e565b600080610ef56109c3565b426040518863ffffffff1660e01b8152600401610f17969594939291906129c0565b6060604051808303818588803b158015610f3057600080fd5b505af1158015610f44573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f699190612630565b5050506001601260166101000a81548160ff0219169083151502179055506001601260176101000a81548160ff0219169083151502179055506001601260146101000a81548160ff021916908315150217905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161105c929190612997565b602060405180830381600087803b15801561107657600080fd5b505af115801561108a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ae91906125c3565b5050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156111b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111a890612b9e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611221576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121890612abe565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516112ff9190612bfe565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561137c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137390612b5e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156113ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e390612a5e565b60405180910390fd5b6000811161142f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142690612b3e565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114d35750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611512576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150990612bde565b60405180910390fd5b61151a6109c3565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561158857506115586109c3565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561191757600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156116315750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61163a57600080fd5b6000600b819055506000600f541461165457600d54611658565b600e545b600c81905550601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156117095750601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561175f5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156117775750601260179054906101000a900460ff165b1561183e576013548111156117c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b890612a7e565b60405180910390fd5b601454816117ce8461076e565b6117d89190612ce3565b1115611819576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181090612b7e565b60405180910390fd5b6000600f54111561183d57600f600081548092919061183790612e92565b91905055505b5b60006118493061076e565b9050601260159054906101000a900460ff161580156118b65750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156118ce5750601260169054906101000a900460ff165b80156118da5750600081115b80156118e95750610302600f54105b15611911576118f781611a76565b6000479050600081111561190f5761190e4761199c565b5b505b50611928565b6000600b819055506000600c819055505b611933838383611cfe565b505050565b6000838311158290611980576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119779190612a3c565b60405180910390fd5b506000838561198f9190612dc4565b9050809150509392505050565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611a04573d6000803e3d6000fd5b5050565b6000600954821115611a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a4690612a9e565b60405180910390fd5b6000611a59611d0e565b9050611a6e8184611d3990919063ffffffff16565b915050919050565b6001601260156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff811115611aae57611aad612f49565b5b604051908082528060200260200182016040528015611adc5781602001602082028036833780820191505090505b5090503081600081518110611af457611af3612f1a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611b9657600080fd5b505afa158015611baa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bce9190612456565b81600181518110611be257611be1612f1a565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611c4930601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611141565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611cad959493929190612c19565b600060405180830381600087803b158015611cc757600080fd5b505af1158015611cdb573d6000803e3d6000fd5b50505050506000601260156101000a81548160ff02191690831515021790555050565b611d09838383611d83565b505050565b6000806000611d1b611f4e565b91509150611d328183611d3990919063ffffffff16565b9250505090565b6000611d7b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fa7565b905092915050565b600080600080600080611d958761200a565b955095509550955095509550611df386600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461207290919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611e8885600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120bc90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611ed48161211a565b611ede84836121d7565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611f3b9190612bfe565b60405180910390a3505050505050505050565b600080600060095490506000655af3107a40009050611f7e655af3107a4000600954611d3990919063ffffffff16565b821015611f9a57600954655af3107a4000935093505050611fa3565b81819350935050505b9091565b60008083118290611fee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fe59190612a3c565b60405180910390fd5b5060008385611ffd9190612d39565b9050809150509392505050565b60008060008060008060008060006120278a600b54600c54612211565b9250925092506000612037611d0e565b9050600080600061204a8e8787876122a7565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b60006120b483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611938565b905092915050565b60008082846120cb9190612ce3565b905083811015612110576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210790612ade565b60405180910390fd5b8091505092915050565b6000612124611d0e565b9050600061213b828461233090919063ffffffff16565b905061218f81600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120bc90919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6121ec8260095461207290919063ffffffff16565b60098190555061220781600a546120bc90919063ffffffff16565b600a819055505050565b60008060008061223d606461222f888a61233090919063ffffffff16565b611d3990919063ffffffff16565b905060006122676064612259888b61233090919063ffffffff16565b611d3990919063ffffffff16565b9050600061229082612282858c61207290919063ffffffff16565b61207290919063ffffffff16565b905080838395509550955050505093509350939050565b6000806000806122c0858961233090919063ffffffff16565b905060006122d7868961233090919063ffffffff16565b905060006122ee878961233090919063ffffffff16565b9050600061231782612309858761207290919063ffffffff16565b61207290919063ffffffff16565b9050838184965096509650505050509450945094915050565b60008083141561234357600090506123a5565b600082846123519190612d6a565b90508284826123609190612d39565b146123a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161239790612afe565b60405180910390fd5b809150505b92915050565b6000813590506123ba816132ad565b92915050565b6000815190506123cf816132ad565b92915050565b6000813590506123e4816132c4565b92915050565b6000815190506123f9816132c4565b92915050565b60008135905061240e816132db565b92915050565b600081519050612423816132db565b92915050565b60006020828403121561243f5761243e612f78565b5b600061244d848285016123ab565b91505092915050565b60006020828403121561246c5761246b612f78565b5b600061247a848285016123c0565b91505092915050565b6000806040838503121561249a57612499612f78565b5b60006124a8858286016123ab565b92505060206124b9858286016123ab565b9150509250929050565b6000806000606084860312156124dc576124db612f78565b5b60006124ea868287016123ab565b93505060206124fb868287016123ab565b925050604061250c868287016123ff565b9150509250925092565b6000806040838503121561252d5761252c612f78565b5b600061253b858286016123ab565b925050602061254c858286016123d5565b9150509250929050565b6000806040838503121561256d5761256c612f78565b5b600061257b858286016123ab565b925050602061258c858286016123ff565b9150509250929050565b6000602082840312156125ac576125ab612f78565b5b60006125ba848285016123d5565b91505092915050565b6000602082840312156125d9576125d8612f78565b5b60006125e7848285016123ea565b91505092915050565b6000806040838503121561260757612606612f78565b5b6000612615858286016123ff565b9250506020612626858286016123ff565b9150509250929050565b60008060006060848603121561264957612648612f78565b5b600061265786828701612414565b935050602061266886828701612414565b925050604061267986828701612414565b9150509250925092565b600061268f838361269b565b60208301905092915050565b6126a481612df8565b82525050565b6126b381612df8565b82525050565b60006126c482612c9e565b6126ce8185612cc1565b93506126d983612c8e565b8060005b8381101561270a5781516126f18882612683565b97506126fc83612cb4565b9250506001810190506126dd565b5085935050505092915050565b61272081612e0a565b82525050565b61272f81612e4d565b82525050565b600061274082612ca9565b61274a8185612cd2565b935061275a818560208601612e5f565b61276381612f7d565b840191505092915050565b600061277b602383612cd2565b915061278682612f8e565b604082019050919050565b600061279e601983612cd2565b91506127a982612fdd565b602082019050919050565b60006127c1602a83612cd2565b91506127cc82613006565b604082019050919050565b60006127e4602283612cd2565b91506127ef82613055565b604082019050919050565b6000612807601b83612cd2565b9150612812826130a4565b602082019050919050565b600061282a602183612cd2565b9150612835826130cd565b604082019050919050565b600061284d602083612cd2565b91506128588261311c565b602082019050919050565b6000612870602983612cd2565b915061287b82613145565b604082019050919050565b6000612893602583612cd2565b915061289e82613194565b604082019050919050565b60006128b6601a83612cd2565b91506128c1826131e3565b602082019050919050565b60006128d9602483612cd2565b91506128e48261320c565b604082019050919050565b60006128fc601783612cd2565b91506129078261325b565b602082019050919050565b600061291f600d83612cd2565b915061292a82613284565b602082019050919050565b61293e81612e36565b82525050565b61294d81612e40565b82525050565b600060208201905061296860008301846126aa565b92915050565b600060408201905061298360008301856126aa565b61299060208301846126aa565b9392505050565b60006040820190506129ac60008301856126aa565b6129b96020830184612935565b9392505050565b600060c0820190506129d560008301896126aa565b6129e26020830188612935565b6129ef6040830187612726565b6129fc6060830186612726565b612a0960808301856126aa565b612a1660a0830184612935565b979650505050505050565b6000602082019050612a366000830184612717565b92915050565b60006020820190508181036000830152612a568184612735565b905092915050565b60006020820190508181036000830152612a778161276e565b9050919050565b60006020820190508181036000830152612a9781612791565b9050919050565b60006020820190508181036000830152612ab7816127b4565b9050919050565b60006020820190508181036000830152612ad7816127d7565b9050919050565b60006020820190508181036000830152612af7816127fa565b9050919050565b60006020820190508181036000830152612b178161281d565b9050919050565b60006020820190508181036000830152612b3781612840565b9050919050565b60006020820190508181036000830152612b5781612863565b9050919050565b60006020820190508181036000830152612b7781612886565b9050919050565b60006020820190508181036000830152612b97816128a9565b9050919050565b60006020820190508181036000830152612bb7816128cc565b9050919050565b60006020820190508181036000830152612bd7816128ef565b9050919050565b60006020820190508181036000830152612bf781612912565b9050919050565b6000602082019050612c136000830184612935565b92915050565b600060a082019050612c2e6000830188612935565b612c3b6020830187612726565b8181036040830152612c4d81866126b9565b9050612c5c60608301856126aa565b612c696080830184612935565b9695505050505050565b6000602082019050612c886000830184612944565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612cee82612e36565b9150612cf983612e36565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612d2e57612d2d612ebc565b5b828201905092915050565b6000612d4482612e36565b9150612d4f83612e36565b925082612d5f57612d5e612eeb565b5b828204905092915050565b6000612d7582612e36565b9150612d8083612e36565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612db957612db8612ebc565b5b828202905092915050565b6000612dcf82612e36565b9150612dda83612e36565b925082821015612ded57612dec612ebc565b5b828203905092915050565b6000612e0382612e16565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612e5882612e36565b9050919050565b60005b83811015612e7d578082015181840152602081019050612e62565b83811115612e8c576000848401525b50505050565b6000612e9d82612e36565b91506000821415612eb157612eb0612ebc565b5b600182039050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865205f6d61785478416d6f756e742e00000000000000600082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4578636565647320746865206d617857616c6c657453697a652e000000000000600082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b7f596f7520617265206120626f7400000000000000000000000000000000000000600082015250565b6132b681612df8565b81146132c157600080fd5b50565b6132cd81612e0a565b81146132d857600080fd5b50565b6132e481612e36565b81146132ef57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122084cece3278ec15a04398708342ec18f2a51d7551db5ad765af77e99e11a466d964736f6c63430008070033

Deployed Bytecode Sourcemap

3599:10514:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5541:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6393:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5818:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6562:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5727:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6883:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7599:126;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12228:193;;;;;;;;;;;;;:::i;:::-;;5921:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2680:148;;;;;;;;;;;;;:::i;:::-;;9954:118;;;;;;;;;;;;;:::i;:::-;;2466:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5632:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6067:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7733:131;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12026:194;;;;;;;;;;;;;:::i;:::-;;10184:773;;;;;;;;;;;;;:::i;:::-;;6242:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5541:83;5578:13;5611:5;;;;;;;;;;;;;;;;;5604:12;;5541:83;:::o;6393:161::-;6468:4;6485:39;6494:12;:10;:12::i;:::-;6508:7;6517:6;6485:8;:39::i;:::-;6542:4;6535:11;;6393:161;;;;:::o;5818:95::-;5871:7;4159:17;5891:14;;5818:95;:::o;6562:313::-;6660:4;6677:36;6687:6;6695:9;6706:6;6677:9;:36::i;:::-;6724:121;6733:6;6741:12;:10;:12::i;:::-;6755:89;6793:6;6755:89;;;;;;;;;;;;;;;;;:11;:19;6767:6;6755:19;;;;;;;;;;;;;;;:33;6775:12;:10;:12::i;:::-;6755:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6724:8;:121::i;:::-;6863:4;6856:11;;6562:313;;;;;:::o;5727:83::-;5768:5;4633:1;5786:16;;5727:83;:::o;6883:103::-;2603:12;:10;:12::i;:::-;2593:22;;:6;;;;;;;;;;:22;;;2585:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6973:5:::1;6955:15;;:23;;;;;;;;;;;;;;;;;;6883:103:::0;:::o;7599:126::-;2603:12;:10;:12::i;:::-;2593:22;;:6;;;;;;;;;;:22;;;2585:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7712:5:::1;7686:14;:23;7701:7;7686:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;7599:126:::0;;:::o;12228:193::-;12294:14;;;;;;;;;;;12278:30;;:12;:10;:12::i;:::-;:30;;;12270:39;;;;;;12320:26;12349:21;12320:50;;12381:32;12394:18;12381:12;:32::i;:::-;12259:162;12228:193::o;5921:138::-;5987:7;6014:37;6034:7;:16;6042:7;6034:16;;;;;;;;;;;;;;;;6014:19;:37::i;:::-;6007:44;;5921:138;;;:::o;2680:148::-;2603:12;:10;:12::i;:::-;2593:22;;:6;;;;;;;;;;:22;;;2585:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2787:1:::1;2750:40;;2771:6;::::0;::::1;;;;;;;;2750:40;;;;;;;;;;;;2818:1;2801:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2680:148::o:0;9954:118::-;2603:12;:10;:12::i;:::-;2593:22;;:6;;;;;;;;;;:22;;;2585:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4159:17:::1;10007:12;:22;;;;4159:17;10040:14;:24;;;;9954:118::o:0;2466:79::-;2504:7;2531:6;;;;;;;;;;;2524:13;;2466:79;:::o;5632:87::-;5671:13;5704:7;;;;;;;;;;;;;;;;;5697:14;;5632:87;:::o;6067:167::-;6145:4;6162:42;6172:12;:10;:12::i;:::-;6186:9;6197:6;6162:9;:42::i;:::-;6222:4;6215:11;;6067:167;;;;:::o;7733:131::-;2603:12;:10;:12::i;:::-;2593:22;;:6;;;;;;;;;;:22;;;2585:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;7822:5:::1;7808:11;:19;;;;7850:6;7838:9;:18;;;;7733:131:::0;;:::o;12026:194::-;12092:14;;;;;;;;;;;12076:30;;:12;:10;:12::i;:::-;:30;;;12068:39;;;;;;12118:23;12144:24;12162:4;12144:9;:24::i;:::-;12118:50;;12179:33;12196:15;12179:16;:33::i;:::-;12057:163;12026:194::o;10184:773::-;2603:12;:10;:12::i;:::-;2593:22;;:6;;;;;;;;;;:22;;;2585:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10248:11:::1;;;;;;;;;;;10247:12;10239:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10297:35;10354:42;10297:100;;10426:16;10408:15;;:34;;;;;;;;;;;;;;;;;;10453:58;10470:4;10485:15;;;;;;;;;;;4159:17;10453:8;:58::i;:::-;10556:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10538:56;;;10603:4;10610:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10538:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10522:13;;:112;;;;;;;;;;;;;;;;;;10645:15;;;;;;;;;;;:31;;;10684:21;10715:4;10721:24;10739:4;10721:9;:24::i;:::-;10746:1;10748::::0;10750:7:::1;:5;:7::i;:::-;10758:15;10645:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10799:4;10785:11;;:18;;;;;;;;;;;;;;;;;;10832:4;10814:15;;:22;;;;;;;;;;;;;;;;;;10863:4;10849:11;;:18;;;;;;;;;;;;;;;;;;10885:13;;;;;;;;;;;10878:29;;;10916:15;;;;;;;;;;;10934:14;10878:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;10228:729;10184:773::o:0;6242:143::-;6323:7;6350:11;:18;6362:5;6350:18;;;;;;;;;;;;;;;:27;6369:7;6350:27;;;;;;;;;;;;;;;;6343:34;;6242:143;;;;:::o;184:98::-;237:7;264:10;257:17;;184:98;:::o;7256:335::-;7366:1;7349:19;;:5;:19;;;;7341:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7447:1;7428:21;;:7;:21;;;;7420:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7529:6;7499:11;:18;7511:5;7499:18;;;;;;;;;;;;;;;:27;7518:7;7499:27;;;;;;;;;;;;;;;:36;;;;7567:7;7551:32;;7560:5;7551:32;;;7576:6;7551:32;;;;;;:::i;:::-;;;;;;;;7256:335;;;:::o;7872:1581::-;7976:1;7960:18;;:4;:18;;;;7952:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8053:1;8039:16;;:2;:16;;;;8031:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8123:1;8114:6;:10;8106:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8190:14;:20;8205:4;8190:20;;;;;;;;;;;;;;;;;;;;;;;;;8189:21;:44;;;;;8215:14;:18;8230:2;8215:18;;;;;;;;;;;;;;;;;;;;;;;;;8214:19;8189:44;8181:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;8278:7;:5;:7::i;:::-;8270:15;;:4;:15;;;;:32;;;;;8295:7;:5;:7::i;:::-;8289:13;;:2;:13;;;;8270:32;8266:1137;;;8328:4;:10;8333:4;8328:10;;;;;;;;;;;;;;;;;;;;;;;;;8327:11;:24;;;;;8343:4;:8;8348:2;8343:8;;;;;;;;;;;;;;;;;;;;;;;;;8342:9;8327:24;8319:33;;;;;;8379:1;8367:9;:13;;;;8429:1;8408:19;;:22;8407:46;;8442:11;;8407:46;;;8432:9;;8407:46;8395:9;:58;;;;8480:13;;;;;;;;;;;8472:21;;:4;:21;;;:55;;;;;8511:15;;;;;;;;;;;8497:30;;:2;:30;;;;8472:55;:83;;;;;8533:18;:22;8552:2;8533:22;;;;;;;;;;;;;;;;;;;;;;;;;8531:24;8472:83;:102;;;;;8559:15;;;;;;;;;;;8472:102;8468:397;;;8642:12;;8632:6;:22;;8624:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8737:14;;8727:6;8711:13;8721:2;8711:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8703:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8824:1;8804:19;;:21;8801:49;;;8827:19;;:21;;;;;;;;;:::i;:::-;;;;;;8801:49;8468:397;8883:28;8914:24;8932:4;8914:9;:24::i;:::-;8883:55;;8958:6;;;;;;;;;;;8957:7;:32;;;;;8976:13;;;;;;;;;;;8968:21;;:4;:21;;;;8957:32;:47;;;;;8993:11;;;;;;;;;;;8957:47;:73;;;;;9029:1;9008:20;:22;8957:73;:100;;;;;9054:3;9034:19;;:23;8957:100;8953:371;;;9078:38;9095:20;9078:16;:38::i;:::-;9135:26;9164:21;9135:50;;9228:1;9207:18;:22;9204:105;;;9254:35;9267:21;9254:12;:35::i;:::-;9204:105;9059:265;8953:371;8304:1031;8266:1137;;;9364:1;9352:9;:13;;;;9390:1;9378:9;:13;;;;8266:1137;9415:30;9430:4;9435:2;9438:6;9415:14;:30::i;:::-;7872:1581;;;:::o;1321:190::-;1407:7;1440:1;1435;:6;;1443:12;1427:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1467:9;1483:1;1479;:5;;;;:::i;:::-;1467:17;;1502:1;1495:8;;;1321:190;;;;;:::o;10080:96::-;10137:14;;;;;;;;;;;:23;;:31;10161:6;10137:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10080:96;:::o;6994:254::-;7061:7;7100;;7089;:18;;7081:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7165:19;7188:10;:8;:10::i;:::-;7165:33;;7216:24;7228:11;7216:7;:11;;:24;;;;:::i;:::-;7209:31;;;6994:254;;;:::o;9461:483::-;5072:4;5063:6;;:13;;;;;;;;;;;;;;;;;;9539:21:::1;9577:1;9563:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9539:40;;9608:4;9590;9595:1;9590:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9634:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9624:4;9629:1;9624:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9667:62;9684:4;9699:15;;;;;;;;;;;9717:11;9667:8;:62::i;:::-;9740:15;;;;;;;;;;;:66;;;9821:11;9847:1;9863:4;9890;9910:15;9740:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9528:416;5108:5:::0;5099:6;;:14;;;;;;;;;;;;;;;;;;9461:483;:::o;10965:146::-;11059:44;11077:6;11085:9;11096:6;11059:17;:44::i;:::-;10965:146;;;:::o;13683:163::-;13724:7;13745:15;13762;13781:19;:17;:19::i;:::-;13744:56;;;;13818:20;13830:7;13818;:11;;:20;;;;:::i;:::-;13811:27;;;;13683:163;:::o;1773:132::-;1831:7;1858:39;1862:1;1865;1858:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1851:46;;1773:132;;;;:::o;11119:487::-;11218:15;11235:23;11260:12;11274:23;11299:12;11313:13;11330:19;11341:7;11330:10;:19::i;:::-;11217:132;;;;;;;;;;;;11378:28;11398:7;11378;:15;11386:6;11378:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;11360:7;:15;11368:6;11360:15;;;;;;;;;;;;;;;:46;;;;11438:39;11461:15;11438:7;:18;11446:9;11438:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11417:7;:18;11425:9;11417:18;;;;;;;;;;;;;;;:60;;;;11488:16;11498:5;11488:9;:16::i;:::-;11515:23;11527:4;11533;11515:11;:23::i;:::-;11571:9;11554:44;;11563:6;11554:44;;;11582:15;11554:44;;;;;;:::i;:::-;;;;;;;;11206:400;;;;;;11119:487;;;:::o;13854:256::-;13904:7;13913;13933:15;13951:7;;13933:25;;13969:15;4159:17;13969:25;;14019:20;4159:17;14019:7;;:11;;:20;;;;:::i;:::-;14009:7;:30;14005:61;;;14049:7;;4159:17;14041:25;;;;;;;;14005:61;14085:7;14094;14077:25;;;;;;13854:256;;;:::o;1913:189::-;1999:7;2031:1;2027;:5;2034:12;2019:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2058:9;2074:1;2070;:5;;;;:::i;:::-;2058:17;;2093:1;2086:8;;;1913:189;;;;;:::o;12431:471::-;12490:7;12499;12508;12517;12526;12535;12556:23;12581:12;12595:13;12612:42;12624:7;12633:9;;12644;;12612:11;:42::i;:::-;12555:99;;;;;;12665:19;12688:10;:8;:10::i;:::-;12665:33;;12710:15;12727:23;12752:12;12768:46;12780:7;12789:4;12795:5;12802:11;12768;:46::i;:::-;12709:105;;;;;;12833:7;12842:15;12859:4;12865:15;12882:4;12888:5;12825:69;;;;;;;;;;;;;;;;;;;12431:471;;;;;;;:::o;1177:136::-;1235:7;1262:43;1266:1;1269;1262:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1255:50;;1177:136;;;;:::o;990:179::-;1048:7;1068:9;1084:1;1080;:5;;;;:::i;:::-;1068:17;;1109:1;1104;:6;;1096:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1160:1;1153:8;;;990:179;;;;:::o;11614:212::-;11667:19;11690:10;:8;:10::i;:::-;11667:33;;11711:13;11727:22;11737:11;11727:5;:9;;:22;;;;:::i;:::-;11711:38;;11785:33;11812:5;11785:7;:22;11801:4;11785:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11760:7;:22;11776:4;11760:22;;;;;;;;;;;;;;;:58;;;;11656:170;;11614:212;:::o;11834:147::-;11912:17;11924:4;11912:7;;:11;;:17;;;;:::i;:::-;11902:7;:27;;;;11953:20;11968:4;11953:10;;:14;;:20;;;;:::i;:::-;11940:10;:33;;;;11834:147;;:::o;12910:351::-;13003:7;13012;13021;13041:12;13056:28;13080:3;13056:19;13068:6;13056:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;13041:43;;13095:13;13111:29;13136:3;13111:20;13123:7;13111;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;13095:45;;13151:23;13177:28;13199:5;13177:17;13189:4;13177:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13151:54;;13224:15;13241:4;13247:5;13216:37;;;;;;;;;12910:351;;;;;;;:::o;13269:409::-;13379:7;13388;13397;13417:15;13435:24;13447:11;13435:7;:11;;:24;;;;:::i;:::-;13417:42;;13470:12;13485:21;13494:11;13485:4;:8;;:21;;;;:::i;:::-;13470:36;;13517:13;13533:22;13543:11;13533:5;:9;;:22;;;;:::i;:::-;13517:38;;13566:23;13592:28;13614:5;13592:17;13604:4;13592:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13566:54;;13639:7;13648:15;13665:4;13631:39;;;;;;;;;;13269:409;;;;;;;;:::o;1519:246::-;1577:7;1606:1;1601;:6;1597:47;;;1631:1;1624:8;;;;1597:47;1654:9;1670:1;1666;:5;;;;:::i;:::-;1654:17;;1699:1;1694;1690;:5;;;;:::i;:::-;:10;1682:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1756:1;1749:8;;;1519:246;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;301:133;;;;:::o;440:137::-;494:5;525:6;519:13;510:22;;541:30;565:5;541:30;:::i;:::-;440:137;;;;:::o;583:139::-;629:5;667:6;654:20;645:29;;683:33;710:5;683:33;:::i;:::-;583:139;;;;:::o;728:143::-;785:5;816:6;810:13;801:22;;832:33;859:5;832:33;:::i;:::-;728:143;;;;:::o;877:329::-;936:6;985:2;973:9;964:7;960:23;956:32;953:119;;;991:79;;:::i;:::-;953:119;1111:1;1136:53;1181:7;1172:6;1161:9;1157:22;1136:53;:::i;:::-;1126:63;;1082:117;877:329;;;;:::o;1212:351::-;1282:6;1331:2;1319:9;1310:7;1306:23;1302:32;1299:119;;;1337:79;;:::i;:::-;1299:119;1457:1;1482:64;1538:7;1529:6;1518:9;1514:22;1482:64;:::i;:::-;1472:74;;1428:128;1212:351;;;;:::o;1569:474::-;1637:6;1645;1694:2;1682:9;1673:7;1669:23;1665:32;1662:119;;;1700:79;;:::i;:::-;1662:119;1820:1;1845:53;1890:7;1881:6;1870:9;1866:22;1845:53;:::i;:::-;1835:63;;1791:117;1947:2;1973:53;2018:7;2009:6;1998:9;1994:22;1973:53;:::i;:::-;1963:63;;1918:118;1569:474;;;;;:::o;2049:619::-;2126:6;2134;2142;2191:2;2179:9;2170:7;2166:23;2162:32;2159:119;;;2197:79;;:::i;:::-;2159:119;2317:1;2342:53;2387:7;2378:6;2367:9;2363:22;2342:53;:::i;:::-;2332:63;;2288:117;2444:2;2470:53;2515:7;2506:6;2495:9;2491:22;2470:53;:::i;:::-;2460:63;;2415:118;2572:2;2598:53;2643:7;2634:6;2623:9;2619:22;2598:53;:::i;:::-;2588:63;;2543:118;2049:619;;;;;:::o;2674:468::-;2739:6;2747;2796:2;2784:9;2775:7;2771:23;2767:32;2764:119;;;2802:79;;:::i;:::-;2764:119;2922:1;2947:53;2992:7;2983:6;2972:9;2968:22;2947:53;:::i;:::-;2937:63;;2893:117;3049:2;3075:50;3117:7;3108:6;3097:9;3093:22;3075:50;:::i;:::-;3065:60;;3020:115;2674:468;;;;;:::o;3148:474::-;3216:6;3224;3273:2;3261:9;3252:7;3248:23;3244:32;3241:119;;;3279:79;;:::i;:::-;3241:119;3399:1;3424:53;3469:7;3460:6;3449:9;3445:22;3424:53;:::i;:::-;3414:63;;3370:117;3526:2;3552:53;3597:7;3588:6;3577:9;3573:22;3552:53;:::i;:::-;3542:63;;3497:118;3148:474;;;;;:::o;3628:323::-;3684:6;3733:2;3721:9;3712:7;3708:23;3704:32;3701:119;;;3739:79;;:::i;:::-;3701:119;3859:1;3884:50;3926:7;3917:6;3906:9;3902:22;3884:50;:::i;:::-;3874:60;;3830:114;3628:323;;;;:::o;3957:345::-;4024:6;4073:2;4061:9;4052:7;4048:23;4044:32;4041:119;;;4079:79;;:::i;:::-;4041:119;4199:1;4224:61;4277:7;4268:6;4257:9;4253:22;4224:61;:::i;:::-;4214:71;;4170:125;3957:345;;;;:::o;4308:474::-;4376:6;4384;4433:2;4421:9;4412:7;4408:23;4404:32;4401:119;;;4439:79;;:::i;:::-;4401:119;4559:1;4584:53;4629:7;4620:6;4609:9;4605:22;4584:53;:::i;:::-;4574:63;;4530:117;4686:2;4712:53;4757:7;4748:6;4737:9;4733:22;4712:53;:::i;:::-;4702:63;;4657:118;4308:474;;;;;:::o;4788:663::-;4876:6;4884;4892;4941:2;4929:9;4920:7;4916:23;4912:32;4909:119;;;4947:79;;:::i;:::-;4909:119;5067:1;5092:64;5148:7;5139:6;5128:9;5124:22;5092:64;:::i;:::-;5082:74;;5038:128;5205:2;5231:64;5287:7;5278:6;5267:9;5263:22;5231:64;:::i;:::-;5221:74;;5176:129;5344:2;5370:64;5426:7;5417:6;5406:9;5402:22;5370:64;:::i;:::-;5360:74;;5315:129;4788:663;;;;;:::o;5457:179::-;5526:10;5547:46;5589:3;5581:6;5547:46;:::i;:::-;5625:4;5620:3;5616:14;5602:28;;5457:179;;;;:::o;5642:108::-;5719:24;5737:5;5719:24;:::i;:::-;5714:3;5707:37;5642:108;;:::o;5756:118::-;5843:24;5861:5;5843:24;:::i;:::-;5838:3;5831:37;5756:118;;:::o;5910:732::-;6029:3;6058:54;6106:5;6058:54;:::i;:::-;6128:86;6207:6;6202:3;6128:86;:::i;:::-;6121:93;;6238:56;6288:5;6238:56;:::i;:::-;6317:7;6348:1;6333:284;6358:6;6355:1;6352:13;6333:284;;;6434:6;6428:13;6461:63;6520:3;6505:13;6461:63;:::i;:::-;6454:70;;6547:60;6600:6;6547:60;:::i;:::-;6537:70;;6393:224;6380:1;6377;6373:9;6368:14;;6333:284;;;6337:14;6633:3;6626:10;;6034:608;;;5910:732;;;;:::o;6648:109::-;6729:21;6744:5;6729:21;:::i;:::-;6724:3;6717:34;6648:109;;:::o;6763:147::-;6858:45;6897:5;6858:45;:::i;:::-;6853:3;6846:58;6763:147;;:::o;6916:364::-;7004:3;7032:39;7065:5;7032:39;:::i;:::-;7087:71;7151:6;7146:3;7087:71;:::i;:::-;7080:78;;7167:52;7212:6;7207:3;7200:4;7193:5;7189:16;7167:52;:::i;:::-;7244:29;7266:6;7244:29;:::i;:::-;7239:3;7235:39;7228:46;;7008:272;6916:364;;;;:::o;7286:366::-;7428:3;7449:67;7513:2;7508:3;7449:67;:::i;:::-;7442:74;;7525:93;7614:3;7525:93;:::i;:::-;7643:2;7638:3;7634:12;7627:19;;7286:366;;;:::o;7658:::-;7800:3;7821:67;7885:2;7880:3;7821:67;:::i;:::-;7814:74;;7897:93;7986:3;7897:93;:::i;:::-;8015:2;8010:3;8006:12;7999:19;;7658:366;;;:::o;8030:::-;8172:3;8193:67;8257:2;8252:3;8193:67;:::i;:::-;8186:74;;8269:93;8358:3;8269:93;:::i;:::-;8387:2;8382:3;8378:12;8371:19;;8030:366;;;:::o;8402:::-;8544:3;8565:67;8629:2;8624:3;8565:67;:::i;:::-;8558:74;;8641:93;8730:3;8641:93;:::i;:::-;8759:2;8754:3;8750:12;8743:19;;8402:366;;;:::o;8774:::-;8916:3;8937:67;9001:2;8996:3;8937:67;:::i;:::-;8930:74;;9013:93;9102:3;9013:93;:::i;:::-;9131:2;9126:3;9122:12;9115:19;;8774:366;;;:::o;9146:::-;9288:3;9309:67;9373:2;9368:3;9309:67;:::i;:::-;9302:74;;9385:93;9474:3;9385:93;:::i;:::-;9503:2;9498:3;9494:12;9487:19;;9146:366;;;:::o;9518:::-;9660:3;9681:67;9745:2;9740:3;9681:67;:::i;:::-;9674:74;;9757:93;9846:3;9757:93;:::i;:::-;9875:2;9870:3;9866:12;9859:19;;9518:366;;;:::o;9890:::-;10032:3;10053:67;10117:2;10112:3;10053:67;:::i;:::-;10046:74;;10129:93;10218:3;10129:93;:::i;:::-;10247:2;10242:3;10238:12;10231:19;;9890:366;;;:::o;10262:::-;10404:3;10425:67;10489:2;10484:3;10425:67;:::i;:::-;10418:74;;10501:93;10590:3;10501:93;:::i;:::-;10619:2;10614:3;10610:12;10603:19;;10262:366;;;:::o;10634:::-;10776:3;10797:67;10861:2;10856:3;10797:67;:::i;:::-;10790:74;;10873:93;10962:3;10873:93;:::i;:::-;10991:2;10986:3;10982:12;10975:19;;10634:366;;;:::o;11006:::-;11148:3;11169:67;11233:2;11228:3;11169:67;:::i;:::-;11162:74;;11245:93;11334:3;11245:93;:::i;:::-;11363:2;11358:3;11354:12;11347:19;;11006:366;;;:::o;11378:::-;11520:3;11541:67;11605:2;11600:3;11541:67;:::i;:::-;11534:74;;11617:93;11706:3;11617:93;:::i;:::-;11735:2;11730:3;11726:12;11719:19;;11378:366;;;:::o;11750:::-;11892:3;11913:67;11977:2;11972:3;11913:67;:::i;:::-;11906:74;;11989:93;12078:3;11989:93;:::i;:::-;12107:2;12102:3;12098:12;12091:19;;11750:366;;;:::o;12122:118::-;12209:24;12227:5;12209:24;:::i;:::-;12204:3;12197:37;12122:118;;:::o;12246:112::-;12329:22;12345:5;12329:22;:::i;:::-;12324:3;12317:35;12246:112;;:::o;12364:222::-;12457:4;12495:2;12484:9;12480:18;12472:26;;12508:71;12576:1;12565:9;12561:17;12552:6;12508:71;:::i;:::-;12364:222;;;;:::o;12592:332::-;12713:4;12751:2;12740:9;12736:18;12728:26;;12764:71;12832:1;12821:9;12817:17;12808:6;12764:71;:::i;:::-;12845:72;12913:2;12902:9;12898:18;12889:6;12845:72;:::i;:::-;12592:332;;;;;:::o;12930:::-;13051:4;13089:2;13078:9;13074:18;13066:26;;13102:71;13170:1;13159:9;13155:17;13146:6;13102:71;:::i;:::-;13183:72;13251:2;13240:9;13236:18;13227:6;13183:72;:::i;:::-;12930:332;;;;;:::o;13268:807::-;13517:4;13555:3;13544:9;13540:19;13532:27;;13569:71;13637:1;13626:9;13622:17;13613:6;13569:71;:::i;:::-;13650:72;13718:2;13707:9;13703:18;13694:6;13650:72;:::i;:::-;13732:80;13808:2;13797:9;13793:18;13784:6;13732:80;:::i;:::-;13822;13898:2;13887:9;13883:18;13874:6;13822:80;:::i;:::-;13912:73;13980:3;13969:9;13965:19;13956:6;13912:73;:::i;:::-;13995;14063:3;14052:9;14048:19;14039:6;13995:73;:::i;:::-;13268:807;;;;;;;;;:::o;14081:210::-;14168:4;14206:2;14195:9;14191:18;14183:26;;14219:65;14281:1;14270:9;14266:17;14257:6;14219:65;:::i;:::-;14081:210;;;;:::o;14297:313::-;14410:4;14448:2;14437:9;14433:18;14425:26;;14497:9;14491:4;14487:20;14483:1;14472:9;14468:17;14461:47;14525:78;14598:4;14589:6;14525:78;:::i;:::-;14517:86;;14297:313;;;;:::o;14616:419::-;14782:4;14820:2;14809:9;14805:18;14797:26;;14869:9;14863:4;14859:20;14855:1;14844:9;14840:17;14833:47;14897:131;15023:4;14897:131;:::i;:::-;14889:139;;14616:419;;;:::o;15041:::-;15207:4;15245:2;15234:9;15230:18;15222:26;;15294:9;15288:4;15284:20;15280:1;15269:9;15265:17;15258:47;15322:131;15448:4;15322:131;:::i;:::-;15314:139;;15041:419;;;:::o;15466:::-;15632:4;15670:2;15659:9;15655:18;15647:26;;15719:9;15713:4;15709:20;15705:1;15694:9;15690:17;15683:47;15747:131;15873:4;15747:131;:::i;:::-;15739:139;;15466:419;;;:::o;15891:::-;16057:4;16095:2;16084:9;16080:18;16072:26;;16144:9;16138:4;16134:20;16130:1;16119:9;16115:17;16108:47;16172:131;16298:4;16172:131;:::i;:::-;16164:139;;15891:419;;;:::o;16316:::-;16482:4;16520:2;16509:9;16505:18;16497:26;;16569:9;16563:4;16559:20;16555:1;16544:9;16540:17;16533:47;16597:131;16723:4;16597:131;:::i;:::-;16589:139;;16316:419;;;:::o;16741:::-;16907:4;16945:2;16934:9;16930:18;16922:26;;16994:9;16988:4;16984:20;16980:1;16969:9;16965:17;16958:47;17022:131;17148:4;17022:131;:::i;:::-;17014:139;;16741:419;;;:::o;17166:::-;17332:4;17370:2;17359:9;17355:18;17347:26;;17419:9;17413:4;17409:20;17405:1;17394:9;17390:17;17383:47;17447:131;17573:4;17447:131;:::i;:::-;17439:139;;17166:419;;;:::o;17591:::-;17757:4;17795:2;17784:9;17780:18;17772:26;;17844:9;17838:4;17834:20;17830:1;17819:9;17815:17;17808:47;17872:131;17998:4;17872:131;:::i;:::-;17864:139;;17591:419;;;:::o;18016:::-;18182:4;18220:2;18209:9;18205:18;18197:26;;18269:9;18263:4;18259:20;18255:1;18244:9;18240:17;18233:47;18297:131;18423:4;18297:131;:::i;:::-;18289:139;;18016:419;;;:::o;18441:::-;18607:4;18645:2;18634:9;18630:18;18622:26;;18694:9;18688:4;18684:20;18680:1;18669:9;18665:17;18658:47;18722:131;18848:4;18722:131;:::i;:::-;18714:139;;18441:419;;;:::o;18866:::-;19032:4;19070:2;19059:9;19055:18;19047:26;;19119:9;19113:4;19109:20;19105:1;19094:9;19090:17;19083:47;19147:131;19273:4;19147:131;:::i;:::-;19139:139;;18866:419;;;:::o;19291:::-;19457:4;19495:2;19484:9;19480:18;19472:26;;19544:9;19538:4;19534:20;19530:1;19519:9;19515:17;19508:47;19572:131;19698:4;19572:131;:::i;:::-;19564:139;;19291:419;;;:::o;19716:::-;19882:4;19920:2;19909:9;19905:18;19897:26;;19969:9;19963:4;19959:20;19955:1;19944:9;19940:17;19933:47;19997:131;20123:4;19997:131;:::i;:::-;19989:139;;19716:419;;;:::o;20141:222::-;20234:4;20272:2;20261:9;20257:18;20249:26;;20285:71;20353:1;20342:9;20338:17;20329:6;20285:71;:::i;:::-;20141:222;;;;:::o;20369:831::-;20632:4;20670:3;20659:9;20655:19;20647:27;;20684:71;20752:1;20741:9;20737:17;20728:6;20684:71;:::i;:::-;20765:80;20841:2;20830:9;20826:18;20817:6;20765:80;:::i;:::-;20892:9;20886:4;20882:20;20877:2;20866:9;20862:18;20855:48;20920:108;21023:4;21014:6;20920:108;:::i;:::-;20912:116;;21038:72;21106:2;21095:9;21091:18;21082:6;21038:72;:::i;:::-;21120:73;21188:3;21177:9;21173:19;21164:6;21120:73;:::i;:::-;20369:831;;;;;;;;:::o;21206:214::-;21295:4;21333:2;21322:9;21318:18;21310:26;;21346:67;21410:1;21399:9;21395:17;21386:6;21346:67;:::i;:::-;21206:214;;;;:::o;21507:132::-;21574:4;21597:3;21589:11;;21627:4;21622:3;21618:14;21610:22;;21507:132;;;:::o;21645:114::-;21712:6;21746:5;21740:12;21730:22;;21645:114;;;:::o;21765:99::-;21817:6;21851:5;21845:12;21835:22;;21765:99;;;:::o;21870:113::-;21940:4;21972;21967:3;21963:14;21955:22;;21870:113;;;:::o;21989:184::-;22088:11;22122:6;22117:3;22110:19;22162:4;22157:3;22153:14;22138:29;;21989:184;;;;:::o;22179:169::-;22263:11;22297:6;22292:3;22285:19;22337:4;22332:3;22328:14;22313:29;;22179:169;;;;:::o;22354:305::-;22394:3;22413:20;22431:1;22413:20;:::i;:::-;22408:25;;22447:20;22465:1;22447:20;:::i;:::-;22442:25;;22601:1;22533:66;22529:74;22526:1;22523:81;22520:107;;;22607:18;;:::i;:::-;22520:107;22651:1;22648;22644:9;22637:16;;22354:305;;;;:::o;22665:185::-;22705:1;22722:20;22740:1;22722:20;:::i;:::-;22717:25;;22756:20;22774:1;22756:20;:::i;:::-;22751:25;;22795:1;22785:35;;22800:18;;:::i;:::-;22785:35;22842:1;22839;22835:9;22830:14;;22665:185;;;;:::o;22856:348::-;22896:7;22919:20;22937:1;22919:20;:::i;:::-;22914:25;;22953:20;22971:1;22953:20;:::i;:::-;22948:25;;23141:1;23073:66;23069:74;23066:1;23063:81;23058:1;23051:9;23044:17;23040:105;23037:131;;;23148:18;;:::i;:::-;23037:131;23196:1;23193;23189:9;23178:20;;22856:348;;;;:::o;23210:191::-;23250:4;23270:20;23288:1;23270:20;:::i;:::-;23265:25;;23304:20;23322:1;23304:20;:::i;:::-;23299:25;;23343:1;23340;23337:8;23334:34;;;23348:18;;:::i;:::-;23334:34;23393:1;23390;23386:9;23378:17;;23210:191;;;;:::o;23407:96::-;23444:7;23473:24;23491:5;23473:24;:::i;:::-;23462:35;;23407:96;;;:::o;23509:90::-;23543:7;23586:5;23579:13;23572:21;23561:32;;23509:90;;;:::o;23605:126::-;23642:7;23682:42;23675:5;23671:54;23660:65;;23605:126;;;:::o;23737:77::-;23774:7;23803:5;23792:16;;23737:77;;;:::o;23820:86::-;23855:7;23895:4;23888:5;23884:16;23873:27;;23820:86;;;:::o;23912:121::-;23970:9;24003:24;24021:5;24003:24;:::i;:::-;23990:37;;23912:121;;;:::o;24039:307::-;24107:1;24117:113;24131:6;24128:1;24125:13;24117:113;;;24216:1;24211:3;24207:11;24201:18;24197:1;24192:3;24188:11;24181:39;24153:2;24150:1;24146:10;24141:15;;24117:113;;;24248:6;24245:1;24242:13;24239:101;;;24328:1;24319:6;24314:3;24310:16;24303:27;24239:101;24088:258;24039:307;;;:::o;24352:171::-;24391:3;24414:24;24432:5;24414:24;:::i;:::-;24405:33;;24460:4;24453:5;24450:15;24447:41;;;24468:18;;:::i;:::-;24447:41;24515:1;24508:5;24504:13;24497:20;;24352:171;;;:::o;24529:180::-;24577:77;24574:1;24567:88;24674:4;24671:1;24664:15;24698:4;24695:1;24688:15;24715:180;24763:77;24760:1;24753:88;24860:4;24857:1;24850:15;24884:4;24881:1;24874:15;24901:180;24949:77;24946:1;24939:88;25046:4;25043:1;25036:15;25070:4;25067:1;25060:15;25087:180;25135:77;25132:1;25125:88;25232:4;25229:1;25222:15;25256:4;25253:1;25246:15;25396:117;25505:1;25502;25495:12;25519:102;25560:6;25611:2;25607:7;25602:2;25595:5;25591:14;25587:28;25577:38;;25519:102;;;:::o;25627:222::-;25767:34;25763:1;25755:6;25751:14;25744:58;25836:5;25831:2;25823:6;25819:15;25812:30;25627:222;:::o;25855:175::-;25995:27;25991:1;25983:6;25979:14;25972:51;25855:175;:::o;26036:229::-;26176:34;26172:1;26164:6;26160:14;26153:58;26245:12;26240:2;26232:6;26228:15;26221:37;26036:229;:::o;26271:221::-;26411:34;26407:1;26399:6;26395:14;26388:58;26480:4;26475:2;26467:6;26463:15;26456:29;26271:221;:::o;26498:177::-;26638:29;26634:1;26626:6;26622:14;26615:53;26498:177;:::o;26681:220::-;26821:34;26817:1;26809:6;26805:14;26798:58;26890:3;26885:2;26877:6;26873:15;26866:28;26681:220;:::o;26907:182::-;27047:34;27043:1;27035:6;27031:14;27024:58;26907:182;:::o;27095:228::-;27235:34;27231:1;27223:6;27219:14;27212:58;27304:11;27299:2;27291:6;27287:15;27280:36;27095:228;:::o;27329:224::-;27469:34;27465:1;27457:6;27453:14;27446:58;27538:7;27533:2;27525:6;27521:15;27514:32;27329:224;:::o;27559:176::-;27699:28;27695:1;27687:6;27683:14;27676:52;27559:176;:::o;27741:223::-;27881:34;27877:1;27869:6;27865:14;27858:58;27950:6;27945:2;27937:6;27933:15;27926:31;27741:223;:::o;27970:173::-;28110:25;28106:1;28098:6;28094:14;28087:49;27970:173;:::o;28149:163::-;28289:15;28285:1;28277:6;28273:14;28266:39;28149:163;:::o;28318:122::-;28391:24;28409:5;28391:24;:::i;:::-;28384:5;28381:35;28371:63;;28430:1;28427;28420:12;28371:63;28318:122;:::o;28446:116::-;28516:21;28531:5;28516:21;:::i;:::-;28509:5;28506:32;28496:60;;28552:1;28549;28542:12;28496:60;28446:116;:::o;28568:122::-;28641:24;28659:5;28641:24;:::i;:::-;28634:5;28631:35;28621:63;;28680:1;28677;28670:12;28621:63;28568:122;:::o

Swarm Source

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