ETH Price: $3,331.59 (-1.22%)

Token

Patrick (PATRICK)
 

Overview

Max Total Supply

1,000,000,000,000 PATRICK

Holders

14

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
22,212,667,626.707925605 PATRICK

Value
$0.00
0x22c5df7db3b8565b842e8e75929020f29045233b
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:
Patrick

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

/**

https://t.me/Patrickerc20

*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;
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
    );
}

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

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

}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}

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

contract Patrick is Context, IERC20, Ownable {

    using SafeMath for uint256;
    string private constant _name = "Patrick";
    string private constant _symbol = "PATRICK";
    uint8 private constant _decimals = 9;
    uint256 private constant MAX = ~uint256(0);
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _taxFeeOnSell = 0;
    bool public limitsEnabled = true;
    uint256 private _taxFee = _taxFeeOnSell;
    uint256 private _previoustaxFee = _taxFee;
    uint256 private _tFeeTotal;
    uint256 private _taxFeeOnBuy = 0;
    address public uniswapV2Pair;
    bool private inSwap = false;
    uint256 private constant _tTotal = 1000000000000 * 10**9;
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    IUniswapV2Router02 public uniswapV2Router;

    bool private swapEnabled = true;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {

        _rOwned[_msgSender()] = _rTotal;
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;


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

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return 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 enableMevLimits() external onlyOwner {
        limitsEnabled = false;
    }

    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 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 removeAllFee() private {
        if (_taxFee == 0) return;


        _previoustaxFee = _taxFee;


        _taxFee = 0;
    }

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        bool takeFee = true;

        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
             
                _taxFee = _taxFeeOnBuy;
            }
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
             
                _taxFee = _taxFeeOnSell;
                 require(limitsEnabled, "Anti Mev Limits Enforced");
            }

        }

        _tokenTransfer(from, to, amount, takeFee);
    }

    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 _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _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 _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _taxFee);
        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
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).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":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":"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":"enableMevLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"limitsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052683635c9adc5dea000006000196200001d919062000558565b6000196200002c9190620005bf565b60045560006005556001600660006101000a81548160ff0219169083151502179055506005546007556007546008556000600a556000600b60146101000a81548160ff0219169083151502179055506001600e60146101000a81548160ff021916908315150217905550348015620000a357600080fd5b506000620000b6620004ee60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600454600c60006200016b620004ee60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200024f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000275919062000664565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002dd573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000303919062000664565b6040518363ffffffff1660e01b815260040162000322929190620006a7565b6020604051808303816000875af115801562000342573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000368919062000664565b600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160036000620003be620004f660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000477620004ee60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef683635c9adc5dea00000604051620004df9190620006e5565b60405180910390a35062000702565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000565826200051f565b915062000572836200051f565b92508262000585576200058462000529565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620005cc826200051f565b9150620005d9836200051f565b9250828203905081811115620005f457620005f362000590565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200062c82620005ff565b9050919050565b6200063e816200061f565b81146200064a57600080fd5b50565b6000815190506200065e8162000633565b92915050565b6000602082840312156200067d576200067c620005fa565b5b60006200068d848285016200064d565b91505092915050565b620006a1816200061f565b82525050565b6000604082019050620006be600083018562000696565b620006cd602083018462000696565b9392505050565b620006df816200051f565b82525050565b6000602082019050620006fc6000830184620006d4565b92915050565b61238380620007126000396000f3fe6080604052600436106100f75760003560e01c80635ed0d4091161008a57806395d89b411161005957806395d89b4114610315578063a9059cbb14610340578063dd62ed3e1461037d578063f2fde38b146103ba576100fe565b80635ed0d4091461027f57806370a0823114610296578063715018a6146102d35780638da5cb5b146102ea576100fe565b806323b872dd116100c657806323b872dd146101c1578063313ce567146101fe5780633582ad231461022957806349bd5a5e14610254576100fe565b806306fdde0314610103578063095ea7b31461012e5780631694505e1461016b57806318160ddd14610196576100fe565b366100fe57005b600080fd5b34801561010f57600080fd5b506101186103e3565b6040516101259190611922565b60405180910390f35b34801561013a57600080fd5b50610155600480360381019061015091906119dd565b610420565b6040516101629190611a38565b60405180910390f35b34801561017757600080fd5b5061018061043e565b60405161018d9190611ab2565b60405180910390f35b3480156101a257600080fd5b506101ab610464565b6040516101b89190611adc565b60405180910390f35b3480156101cd57600080fd5b506101e860048036038101906101e39190611af7565b610475565b6040516101f59190611a38565b60405180910390f35b34801561020a57600080fd5b5061021361054e565b6040516102209190611b66565b60405180910390f35b34801561023557600080fd5b5061023e610557565b60405161024b9190611a38565b60405180910390f35b34801561026057600080fd5b5061026961056a565b6040516102769190611b90565b60405180910390f35b34801561028b57600080fd5b50610294610590565b005b3480156102a257600080fd5b506102bd60048036038101906102b89190611bab565b610642565b6040516102ca9190611adc565b60405180910390f35b3480156102df57600080fd5b506102e8610693565b005b3480156102f657600080fd5b506102ff6107e6565b60405161030c9190611b90565b60405180910390f35b34801561032157600080fd5b5061032a61080f565b6040516103379190611922565b60405180910390f35b34801561034c57600080fd5b50610367600480360381019061036291906119dd565b61084c565b6040516103749190611a38565b60405180910390f35b34801561038957600080fd5b506103a4600480360381019061039f9190611bd8565b61086a565b6040516103b19190611adc565b60405180910390f35b3480156103c657600080fd5b506103e160048036038101906103dc9190611bab565b6108f1565b005b60606040518060400160405280600781526020017f5061747269636b00000000000000000000000000000000000000000000000000815250905090565b600061043461042d610ab2565b8484610aba565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000683635c9adc5dea00000905090565b6000610482848484610c83565b6105438461048e610ab2565b61053e8560405180606001604052806028815260200161232660289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104f4610ab2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110e29092919063ffffffff16565b610aba565b600190509392505050565b60006009905090565b600660009054906101000a900460ff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610598610ab2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610625576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061c90611c64565b60405180910390fd5b6000600660006101000a81548160ff021916908315150217905550565b600061068c600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611146565b9050919050565b61069b610ab2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610728576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071f90611c64565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f5041545249434b00000000000000000000000000000000000000000000000000815250905090565b6000610860610859610ab2565b8484610c83565b6001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6108f9610ab2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610986576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097d90611c64565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036109f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ec90611cf6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2090611d88565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8f90611e1a565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c769190611adc565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce990611eac565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5890611f3e565b60405180910390fd5b60008111610da4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9b90611fd0565b60405180910390fd5b600060019050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610e4b5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80610efe5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610efd5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15610f0c57600090506110d0565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015610fb75750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610fc657600a546007819055505b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156110715750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156110cf57600554600781905550600660009054906101000a900460ff166110ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c59061203c565b60405180910390fd5b5b5b6110dc848484846111b4565b50505050565b600083831115829061112a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111219190611922565b60405180910390fd5b5060008385611139919061208b565b9050809150509392505050565b600060045482111561118d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118490612131565b60405180910390fd5b60006111976111d3565b90506111ac81846111fe90919063ffffffff16565b915050919050565b806111c2576111c1611248565b5b6111cd848484611267565b50505050565b60008060006111e0611432565b915091506111f781836111fe90919063ffffffff16565b9250505090565b600061124083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611494565b905092915050565b600060075403156112655760075460088190555060006007819055505b565b600080600080600080611279876114f7565b9550955095509550955095506112d786600c60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461155c90919063ffffffff16565b600c60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061136c85600c60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115a690919063ffffffff16565b600c60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113b881611604565b6113c284836116c1565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161141f9190611adc565b60405180910390a3505050505050505050565b600080600060045490506000683635c9adc5dea000009050611468683635c9adc5dea000006004546111fe90919063ffffffff16565b82101561148757600454683635c9adc5dea00000935093505050611490565b81819350935050505b9091565b600080831182906114db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d29190611922565b60405180910390fd5b50600083856114ea9190612180565b9050809150509392505050565b60008060008060008060008060006115118a6007546116fb565b92509250925060006115216111d3565b905060008060006115348e87878761178f565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061159e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110e2565b905092915050565b60008082846115b591906121b1565b9050838110156115fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f190612231565b60405180910390fd5b8091505092915050565b600061160e6111d3565b90506000611625828461181890919063ffffffff16565b905061167981600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115a690919063ffffffff16565b600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6116d68260045461155c90919063ffffffff16565b6004819055506116f1816009546115a690919063ffffffff16565b6009819055505050565b6000806000806117276064611719878961181890919063ffffffff16565b6111fe90919063ffffffff16565b905060006117516064611743888a61181890919063ffffffff16565b6111fe90919063ffffffff16565b9050600061177a8261176c858b61155c90919063ffffffff16565b61155c90919063ffffffff16565b90508083839550955095505050509250925092565b6000806000806117a8858961181890919063ffffffff16565b905060006117bf868961181890919063ffffffff16565b905060006117d6878961181890919063ffffffff16565b905060006117ff826117f1858761155c90919063ffffffff16565b61155c90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080830361182a576000905061188c565b600082846118389190612251565b90508284826118479190612180565b14611887576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187e90612305565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156118cc5780820151818401526020810190506118b1565b60008484015250505050565b6000601f19601f8301169050919050565b60006118f482611892565b6118fe818561189d565b935061190e8185602086016118ae565b611917816118d8565b840191505092915050565b6000602082019050818103600083015261193c81846118e9565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061197482611949565b9050919050565b61198481611969565b811461198f57600080fd5b50565b6000813590506119a18161197b565b92915050565b6000819050919050565b6119ba816119a7565b81146119c557600080fd5b50565b6000813590506119d7816119b1565b92915050565b600080604083850312156119f4576119f3611944565b5b6000611a0285828601611992565b9250506020611a13858286016119c8565b9150509250929050565b60008115159050919050565b611a3281611a1d565b82525050565b6000602082019050611a4d6000830184611a29565b92915050565b6000819050919050565b6000611a78611a73611a6e84611949565b611a53565b611949565b9050919050565b6000611a8a82611a5d565b9050919050565b6000611a9c82611a7f565b9050919050565b611aac81611a91565b82525050565b6000602082019050611ac76000830184611aa3565b92915050565b611ad6816119a7565b82525050565b6000602082019050611af16000830184611acd565b92915050565b600080600060608486031215611b1057611b0f611944565b5b6000611b1e86828701611992565b9350506020611b2f86828701611992565b9250506040611b40868287016119c8565b9150509250925092565b600060ff82169050919050565b611b6081611b4a565b82525050565b6000602082019050611b7b6000830184611b57565b92915050565b611b8a81611969565b82525050565b6000602082019050611ba56000830184611b81565b92915050565b600060208284031215611bc157611bc0611944565b5b6000611bcf84828501611992565b91505092915050565b60008060408385031215611bef57611bee611944565b5b6000611bfd85828601611992565b9250506020611c0e85828601611992565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611c4e60208361189d565b9150611c5982611c18565b602082019050919050565b60006020820190508181036000830152611c7d81611c41565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611ce060268361189d565b9150611ceb82611c84565b604082019050919050565b60006020820190508181036000830152611d0f81611cd3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611d7260248361189d565b9150611d7d82611d16565b604082019050919050565b60006020820190508181036000830152611da181611d65565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611e0460228361189d565b9150611e0f82611da8565b604082019050919050565b60006020820190508181036000830152611e3381611df7565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611e9660258361189d565b9150611ea182611e3a565b604082019050919050565b60006020820190508181036000830152611ec581611e89565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611f2860238361189d565b9150611f3382611ecc565b604082019050919050565b60006020820190508181036000830152611f5781611f1b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000611fba60298361189d565b9150611fc582611f5e565b604082019050919050565b60006020820190508181036000830152611fe981611fad565b9050919050565b7f416e7469204d6576204c696d69747320456e666f726365640000000000000000600082015250565b600061202660188361189d565b915061203182611ff0565b602082019050919050565b6000602082019050818103600083015261205581612019565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612096826119a7565b91506120a1836119a7565b92508282039050818111156120b9576120b861205c565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061211b602a8361189d565b9150612126826120bf565b604082019050919050565b6000602082019050818103600083015261214a8161210e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061218b826119a7565b9150612196836119a7565b9250826121a6576121a5612151565b5b828204905092915050565b60006121bc826119a7565b91506121c7836119a7565b92508282019050808211156121df576121de61205c565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061221b601b8361189d565b9150612226826121e5565b602082019050919050565b6000602082019050818103600083015261224a8161220e565b9050919050565b600061225c826119a7565b9150612267836119a7565b9250828202612275816119a7565b9150828204841483151761228c5761228b61205c565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006122ef60218361189d565b91506122fa82612293565b604082019050919050565b6000602082019050818103600083015261231e816122e2565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122059d756677073a39f0e756f6471f94d75479ca99eba151534586641c34a28245564736f6c63430008130033

Deployed Bytecode

0x6080604052600436106100f75760003560e01c80635ed0d4091161008a57806395d89b411161005957806395d89b4114610315578063a9059cbb14610340578063dd62ed3e1461037d578063f2fde38b146103ba576100fe565b80635ed0d4091461027f57806370a0823114610296578063715018a6146102d35780638da5cb5b146102ea576100fe565b806323b872dd116100c657806323b872dd146101c1578063313ce567146101fe5780633582ad231461022957806349bd5a5e14610254576100fe565b806306fdde0314610103578063095ea7b31461012e5780631694505e1461016b57806318160ddd14610196576100fe565b366100fe57005b600080fd5b34801561010f57600080fd5b506101186103e3565b6040516101259190611922565b60405180910390f35b34801561013a57600080fd5b50610155600480360381019061015091906119dd565b610420565b6040516101629190611a38565b60405180910390f35b34801561017757600080fd5b5061018061043e565b60405161018d9190611ab2565b60405180910390f35b3480156101a257600080fd5b506101ab610464565b6040516101b89190611adc565b60405180910390f35b3480156101cd57600080fd5b506101e860048036038101906101e39190611af7565b610475565b6040516101f59190611a38565b60405180910390f35b34801561020a57600080fd5b5061021361054e565b6040516102209190611b66565b60405180910390f35b34801561023557600080fd5b5061023e610557565b60405161024b9190611a38565b60405180910390f35b34801561026057600080fd5b5061026961056a565b6040516102769190611b90565b60405180910390f35b34801561028b57600080fd5b50610294610590565b005b3480156102a257600080fd5b506102bd60048036038101906102b89190611bab565b610642565b6040516102ca9190611adc565b60405180910390f35b3480156102df57600080fd5b506102e8610693565b005b3480156102f657600080fd5b506102ff6107e6565b60405161030c9190611b90565b60405180910390f35b34801561032157600080fd5b5061032a61080f565b6040516103379190611922565b60405180910390f35b34801561034c57600080fd5b50610367600480360381019061036291906119dd565b61084c565b6040516103749190611a38565b60405180910390f35b34801561038957600080fd5b506103a4600480360381019061039f9190611bd8565b61086a565b6040516103b19190611adc565b60405180910390f35b3480156103c657600080fd5b506103e160048036038101906103dc9190611bab565b6108f1565b005b60606040518060400160405280600781526020017f5061747269636b00000000000000000000000000000000000000000000000000815250905090565b600061043461042d610ab2565b8484610aba565b6001905092915050565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000683635c9adc5dea00000905090565b6000610482848484610c83565b6105438461048e610ab2565b61053e8560405180606001604052806028815260200161232660289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006104f4610ab2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546110e29092919063ffffffff16565b610aba565b600190509392505050565b60006009905090565b600660009054906101000a900460ff1681565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610598610ab2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610625576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061c90611c64565b60405180910390fd5b6000600660006101000a81548160ff021916908315150217905550565b600061068c600c60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611146565b9050919050565b61069b610ab2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610728576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071f90611c64565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f5041545249434b00000000000000000000000000000000000000000000000000815250905090565b6000610860610859610ab2565b8484610c83565b6001905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6108f9610ab2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610986576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097d90611c64565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036109f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109ec90611cf6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2090611d88565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610b98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8f90611e1a565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c769190611adc565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610cf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce990611eac565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5890611f3e565b60405180910390fd5b60008111610da4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9b90611fd0565b60405180910390fd5b600060019050600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680610e4b5750600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b80610efe5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015610efd5750600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15610f0c57600090506110d0565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015610fb75750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15610fc657600a546007819055505b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156110715750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156110cf57600554600781905550600660009054906101000a900460ff166110ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c59061203c565b60405180910390fd5b5b5b6110dc848484846111b4565b50505050565b600083831115829061112a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111219190611922565b60405180910390fd5b5060008385611139919061208b565b9050809150509392505050565b600060045482111561118d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118490612131565b60405180910390fd5b60006111976111d3565b90506111ac81846111fe90919063ffffffff16565b915050919050565b806111c2576111c1611248565b5b6111cd848484611267565b50505050565b60008060006111e0611432565b915091506111f781836111fe90919063ffffffff16565b9250505090565b600061124083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611494565b905092915050565b600060075403156112655760075460088190555060006007819055505b565b600080600080600080611279876114f7565b9550955095509550955095506112d786600c60008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461155c90919063ffffffff16565b600c60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061136c85600c60008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115a690919063ffffffff16565b600c60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506113b881611604565b6113c284836116c1565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161141f9190611adc565b60405180910390a3505050505050505050565b600080600060045490506000683635c9adc5dea000009050611468683635c9adc5dea000006004546111fe90919063ffffffff16565b82101561148757600454683635c9adc5dea00000935093505050611490565b81819350935050505b9091565b600080831182906114db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d29190611922565b60405180910390fd5b50600083856114ea9190612180565b9050809150509392505050565b60008060008060008060008060006115118a6007546116fb565b92509250925060006115216111d3565b905060008060006115348e87878761178f565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b600061159e83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506110e2565b905092915050565b60008082846115b591906121b1565b9050838110156115fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f190612231565b60405180910390fd5b8091505092915050565b600061160e6111d3565b90506000611625828461181890919063ffffffff16565b905061167981600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115a690919063ffffffff16565b600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b6116d68260045461155c90919063ffffffff16565b6004819055506116f1816009546115a690919063ffffffff16565b6009819055505050565b6000806000806117276064611719878961181890919063ffffffff16565b6111fe90919063ffffffff16565b905060006117516064611743888a61181890919063ffffffff16565b6111fe90919063ffffffff16565b9050600061177a8261176c858b61155c90919063ffffffff16565b61155c90919063ffffffff16565b90508083839550955095505050509250925092565b6000806000806117a8858961181890919063ffffffff16565b905060006117bf868961181890919063ffffffff16565b905060006117d6878961181890919063ffffffff16565b905060006117ff826117f1858761155c90919063ffffffff16565b61155c90919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080830361182a576000905061188c565b600082846118389190612251565b90508284826118479190612180565b14611887576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187e90612305565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156118cc5780820151818401526020810190506118b1565b60008484015250505050565b6000601f19601f8301169050919050565b60006118f482611892565b6118fe818561189d565b935061190e8185602086016118ae565b611917816118d8565b840191505092915050565b6000602082019050818103600083015261193c81846118e9565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061197482611949565b9050919050565b61198481611969565b811461198f57600080fd5b50565b6000813590506119a18161197b565b92915050565b6000819050919050565b6119ba816119a7565b81146119c557600080fd5b50565b6000813590506119d7816119b1565b92915050565b600080604083850312156119f4576119f3611944565b5b6000611a0285828601611992565b9250506020611a13858286016119c8565b9150509250929050565b60008115159050919050565b611a3281611a1d565b82525050565b6000602082019050611a4d6000830184611a29565b92915050565b6000819050919050565b6000611a78611a73611a6e84611949565b611a53565b611949565b9050919050565b6000611a8a82611a5d565b9050919050565b6000611a9c82611a7f565b9050919050565b611aac81611a91565b82525050565b6000602082019050611ac76000830184611aa3565b92915050565b611ad6816119a7565b82525050565b6000602082019050611af16000830184611acd565b92915050565b600080600060608486031215611b1057611b0f611944565b5b6000611b1e86828701611992565b9350506020611b2f86828701611992565b9250506040611b40868287016119c8565b9150509250925092565b600060ff82169050919050565b611b6081611b4a565b82525050565b6000602082019050611b7b6000830184611b57565b92915050565b611b8a81611969565b82525050565b6000602082019050611ba56000830184611b81565b92915050565b600060208284031215611bc157611bc0611944565b5b6000611bcf84828501611992565b91505092915050565b60008060408385031215611bef57611bee611944565b5b6000611bfd85828601611992565b9250506020611c0e85828601611992565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000611c4e60208361189d565b9150611c5982611c18565b602082019050919050565b60006020820190508181036000830152611c7d81611c41565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000611ce060268361189d565b9150611ceb82611c84565b604082019050919050565b60006020820190508181036000830152611d0f81611cd3565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611d7260248361189d565b9150611d7d82611d16565b604082019050919050565b60006020820190508181036000830152611da181611d65565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611e0460228361189d565b9150611e0f82611da8565b604082019050919050565b60006020820190508181036000830152611e3381611df7565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611e9660258361189d565b9150611ea182611e3a565b604082019050919050565b60006020820190508181036000830152611ec581611e89565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000611f2860238361189d565b9150611f3382611ecc565b604082019050919050565b60006020820190508181036000830152611f5781611f1b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000611fba60298361189d565b9150611fc582611f5e565b604082019050919050565b60006020820190508181036000830152611fe981611fad565b9050919050565b7f416e7469204d6576204c696d69747320456e666f726365640000000000000000600082015250565b600061202660188361189d565b915061203182611ff0565b602082019050919050565b6000602082019050818103600083015261205581612019565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612096826119a7565b91506120a1836119a7565b92508282039050818111156120b9576120b861205c565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b600061211b602a8361189d565b9150612126826120bf565b604082019050919050565b6000602082019050818103600083015261214a8161210e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061218b826119a7565b9150612196836119a7565b9250826121a6576121a5612151565b5b828204905092915050565b60006121bc826119a7565b91506121c7836119a7565b92508282019050808211156121df576121de61205c565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600061221b601b8361189d565b9150612226826121e5565b602082019050919050565b6000602082019050818103600083015261224a8161220e565b9050919050565b600061225c826119a7565b9150612267836119a7565b9250828202612275816119a7565b9150828204841483151761228c5761228b61205c565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006122ef60218361189d565b91506122fa82612293565b604082019050919050565b6000602082019050818103600083015261231e816122e2565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122059d756677073a39f0e756f6471f94d75479ca99eba151534586641c34a28245564736f6c63430008130033

Deployed Bytecode Sourcemap

4102:8982:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5760:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6779:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5044:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6037:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6980:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5946:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4607:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4812:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6685:86;;;;;;;;;;;;;:::i;:::-;;6140:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1589:148;;;;;;;;;;;;;:::i;:::-;;1375:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5851:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6286:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6493:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1745:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5760:83;5797:13;5830:5;;;;;;;;;;;;;;;;;5823:12;;5760:83;:::o;6779:193::-;6881:4;6903:39;6912:12;:10;:12::i;:::-;6926:7;6935:6;6903:8;:39::i;:::-;6960:4;6953:11;;6779:193;;;;:::o;5044:41::-;;;;;;;;;;;;;:::o;6037:95::-;6090:7;4916:21;6110:14;;6037:95;:::o;6980:446::-;7112:4;7129:36;7139:6;7147:9;7158:6;7129:9;:36::i;:::-;7176:220;7199:6;7220:12;:10;:12::i;:::-;7247:138;7303:6;7247:138;;;;;;;;;;;;;;;;;:11;:19;7259:6;7247:19;;;;;;;;;;;;;;;:33;7267:12;:10;:12::i;:::-;7247:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7176:8;:220::i;:::-;7414:4;7407:11;;6980:446;;;;;:::o;5946:83::-;5987:5;4322:1;6005:16;;5946:83;:::o;4607:32::-;;;;;;;;;;;;;:::o;4812:28::-;;;;;;;;;;;;;:::o;6685:86::-;1512:12;:10;:12::i;:::-;1502:22;;:6;;;;;;;;;;:22;;;1494:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6758:5:::1;6742:13;;:21;;;;;;;;;;;;;;;;;;6685:86::o:0;6140:138::-;6206:7;6233:37;6253:7;:16;6261:7;6253:16;;;;;;;;;;;;;;;;6233:19;:37::i;:::-;6226:44;;6140:138;;;:::o;1589:148::-;1512:12;:10;:12::i;:::-;1502:22;;:6;;;;;;;;;;:22;;;1494:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1696:1:::1;1659:40;;1680:6;::::0;::::1;;;;;;;;1659:40;;;;;;;;;;;;1727:1;1710:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1589:148::o:0;1375:79::-;1413:7;1440:6;;;;;;;;;;;1433:13;;1375:79;:::o;5851:87::-;5890:13;5923:7;;;;;;;;;;;;;;;;;5916:14;;5851:87;:::o;6286:199::-;6391:4;6413:42;6423:12;:10;:12::i;:::-;6437:9;6448:6;6413:9;:42::i;:::-;6473:4;6466:11;;6286:199;;;;:::o;6493:184::-;6610:7;6642:11;:18;6654:5;6642:18;;;;;;;;;;;;;;;:27;6661:7;6642:27;;;;;;;;;;;;;;;;6635:34;;6493:184;;;;:::o;1745:244::-;1512:12;:10;:12::i;:::-;1502:22;;:6;;;;;;;;;;:22;;;1494:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1854:1:::1;1834:22;;:8;:22;;::::0;1826:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1944:8;1915:38;;1936:6;::::0;::::1;;;;;;;;1915:38;;;;;;;;;;;;1973:8;1964:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1745:244:::0;:::o;134:98::-;187:7;214:10;207:17;;134:98;:::o;7914:369::-;8058:1;8041:19;;:5;:19;;;8033:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8139:1;8120:21;;:7;:21;;;8112:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8221:6;8191:11;:18;8203:5;8191:18;;;;;;;;;;;;;;;:27;8210:7;8191:27;;;;;;;;;;;;;;;:36;;;;8259:7;8243:32;;8252:5;8243:32;;;8268:6;8243:32;;;;;;:::i;:::-;;;;;;;;7914:369;;;:::o;8291:970::-;8429:1;8413:18;;:4;:18;;;8405:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8506:1;8492:16;;:2;:16;;;8484:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8576:1;8567:6;:10;8559:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8634:12;8649:4;8634:19;;8671:18;:24;8690:4;8671:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;8699:18;:22;8718:2;8699:22;;;;;;;;;;;;;;;;;;;;;;;;;8671:50;8670:102;;;;8735:13;;;;;;;;;;;8727:21;;:4;:21;;;;:44;;;;;8758:13;;;;;;;;;;;8752:19;;:2;:19;;;;8727:44;8670:102;8666:534;;;8799:5;8789:15;;8666:534;;;8848:13;;;;;;;;;;;8840:21;;:4;:21;;;:55;;;;;8879:15;;;;;;;;;;;8865:30;;:2;:30;;;;8840:55;8837:132;;;8941:12;;8931:7;:22;;;;8837:132;8993:13;;;;;;;;;;;8987:19;;:2;:19;;;:55;;;;;9026:15;;;;;;;;;;;9010:32;;:4;:32;;;;8987:55;8983:204;;;9088:13;;9078:7;:23;;;;9129:13;;;;;;;;;;;9121:50;;;;;;;;;;;;:::i;:::-;;;;;;;;;8983:204;8666:534;9212:41;9227:4;9233:2;9237:6;9245:7;9212:14;:41::i;:::-;8394:867;8291:970;;;:::o;2353:224::-;2473:7;2506:1;2501;:6;;2509:12;2493:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2533:9;2549:1;2545;:5;;;;:::i;:::-;2533:17;;2568:1;2561:8;;;2353:224;;;;;:::o;7434:323::-;7529:7;7587;;7576;:18;;7554:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;7675:19;7697:10;:8;:10::i;:::-;7675:32;;7725:24;7737:11;7725:7;:11;;:24;;;;:::i;:::-;7718:31;;;7434:323;;;:::o;9760:248::-;9916:7;9911:28;;9925:14;:12;:14::i;:::-;9911:28;9950:44;9968:6;9976:9;9987:6;9950:17;:44::i;:::-;9760:248;;;;:::o;12647:164::-;12689:7;12710:15;12727;12746:19;:17;:19::i;:::-;12709:56;;;;12783:20;12795:7;12783;:11;;:20;;;;:::i;:::-;12776:27;;;;12647:164;:::o;2839:132::-;2897:7;2924:39;2928:1;2931;2924:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2917:46;;2839:132;;;;:::o;7765:141::-;7823:1;7812:7;;:12;7808:25;7826:7;7808:25;7865:7;;7847:15;:25;;;;7897:1;7887:7;:11;;;;7765:141;:::o;10016:610::-;10163:15;10193:23;10231:12;10258:23;10296:12;10323:13;10350:19;10361:7;10350:10;:19::i;:::-;10148:221;;;;;;;;;;;;10398:28;10418:7;10398;:15;10406:6;10398:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;10380:7;:15;10388:6;10380:15;;;;;;;;;;;;;;;:46;;;;10458:39;10481:15;10458:7;:18;10466:9;10458:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;10437:7;:18;10445:9;10437:18;;;;;;;;;;;;;;;:60;;;;10508:16;10518:5;10508:9;:16::i;:::-;10535:23;10547:4;10553;10535:11;:23::i;:::-;10591:9;10574:44;;10583:6;10574:44;;;10602:15;10574:44;;;;;;:::i;:::-;;;;;;;;10137:489;;;;;;10016:610;;;:::o;12819:257::-;12870:7;12879;12899:15;12917:7;;12899:25;;12935:15;4916:21;12935:25;;12985:20;4916:21;12985:7;;:11;;:20;;;;:::i;:::-;12975:7;:30;12971:61;;;13015:7;;4916:21;13007:25;;;;;;;;12971:61;13051:7;13060;13043:25;;;;;;12819:257;;;:::o;2979:223::-;3099:7;3131:1;3127;:5;3134:12;3119:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3158:9;3174:1;3170;:5;;;;:::i;:::-;3158:17;;3193:1;3186:8;;;2979:223;;;;;:::o;11045:604::-;11145:7;11167;11189;11211;11233;11255;11291:23;11316:12;11330:13;11360:29;11372:7;11381;;11360:11;:29::i;:::-;11290:99;;;;;;11400:19;11422:10;:8;:10::i;:::-;11400:32;;11444:15;11461:23;11486:12;11515:46;11527:7;11536:4;11542:5;11549:11;11515;:46::i;:::-;11443:118;;;;;;11580:7;11589:15;11606:4;11612:15;11629:4;11635:5;11572:69;;;;;;;;;;;;;;;;;;;11045:604;;;;;;;:::o;2209:136::-;2267:7;2294:43;2298:1;2301;2294:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2287:50;;2209:136;;;;:::o;2022:179::-;2080:7;2100:9;2116:1;2112;:5;;;;:::i;:::-;2100:17;;2141:1;2136;:6;;2128:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2192:1;2185:8;;;2022:179;;;;:::o;10634:211::-;10687:19;10709:10;:8;:10::i;:::-;10687:32;;10730:13;10746:22;10756:11;10746:5;:9;;:22;;;;:::i;:::-;10730:38;;10804:33;10831:5;10804:7;:22;10820:4;10804:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;10779:7;:22;10795:4;10779:22;;;;;;;;;;;;;;;:58;;;;10676:169;;10634:211;:::o;10853:147::-;10931:17;10943:4;10931:7;;:11;;:17;;;;:::i;:::-;10921:7;:27;;;;10972:20;10987:4;10972:10;;:14;;:20;;;;:::i;:::-;10959:10;:33;;;;10853:147;;:::o;11657:440::-;11799:7;11821;11843;11878:12;11893:28;11917:3;11893:19;11905:6;11893:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;11878:43;;11932:13;11948:28;11972:3;11948:19;11960:6;11948:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;11932:44;;11987:23;12013:28;12035:5;12013:17;12025:4;12013:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;11987:54;;12060:15;12077:4;12083:5;12052:37;;;;;;;;;11657:440;;;;;:::o;12105:534::-;12299:7;12321;12343;12378:15;12396:24;12408:11;12396:7;:11;;:24;;;;:::i;:::-;12378:42;;12431:12;12446:21;12455:11;12446:4;:8;;:21;;;;:::i;:::-;12431:36;;12478:13;12494:22;12504:11;12494:5;:9;;:22;;;;:::i;:::-;12478:38;;12527:23;12553:28;12575:5;12553:17;12565:4;12553:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12527:54;;12600:7;12609:15;12626:4;12592:39;;;;;;;;;;12105:534;;;;;;;;:::o;2585:246::-;2643:7;2672:1;2667;:6;2663:47;;2697:1;2690:8;;;;2663:47;2720:9;2736:1;2732;:5;;;;:::i;:::-;2720:17;;2765:1;2760;2756;:5;;;;:::i;:::-;:10;2748:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2822:1;2815:8;;;2585:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:619::-;4848:6;4856;4864;4913:2;4901:9;4892:7;4888:23;4884:32;4881:119;;;4919:79;;:::i;:::-;4881:119;5039:1;5064:53;5109:7;5100:6;5089:9;5085:22;5064:53;:::i;:::-;5054:63;;5010:117;5166:2;5192:53;5237:7;5228:6;5217:9;5213:22;5192:53;:::i;:::-;5182:63;;5137:118;5294:2;5320:53;5365:7;5356:6;5345:9;5341:22;5320:53;:::i;:::-;5310:63;;5265:118;4771:619;;;;;:::o;5396:86::-;5431:7;5471:4;5464:5;5460:16;5449:27;;5396:86;;;:::o;5488:112::-;5571:22;5587:5;5571:22;:::i;:::-;5566:3;5559:35;5488:112;;:::o;5606:214::-;5695:4;5733:2;5722:9;5718:18;5710:26;;5746:67;5810:1;5799:9;5795:17;5786:6;5746:67;:::i;:::-;5606:214;;;;:::o;5826:118::-;5913:24;5931:5;5913:24;:::i;:::-;5908:3;5901:37;5826:118;;:::o;5950:222::-;6043:4;6081:2;6070:9;6066:18;6058:26;;6094:71;6162:1;6151:9;6147:17;6138:6;6094:71;:::i;:::-;5950:222;;;;:::o;6178:329::-;6237:6;6286:2;6274:9;6265:7;6261:23;6257:32;6254:119;;;6292:79;;:::i;:::-;6254:119;6412:1;6437:53;6482:7;6473:6;6462:9;6458:22;6437:53;:::i;:::-;6427:63;;6383:117;6178:329;;;;:::o;6513:474::-;6581:6;6589;6638:2;6626:9;6617:7;6613:23;6609:32;6606:119;;;6644:79;;:::i;:::-;6606:119;6764:1;6789:53;6834:7;6825:6;6814:9;6810:22;6789:53;:::i;:::-;6779:63;;6735:117;6891:2;6917:53;6962:7;6953:6;6942:9;6938:22;6917:53;:::i;:::-;6907:63;;6862:118;6513:474;;;;;:::o;6993:182::-;7133:34;7129:1;7121:6;7117:14;7110:58;6993:182;:::o;7181:366::-;7323:3;7344:67;7408:2;7403:3;7344:67;:::i;:::-;7337:74;;7420:93;7509:3;7420:93;:::i;:::-;7538:2;7533:3;7529:12;7522:19;;7181:366;;;:::o;7553:419::-;7719:4;7757:2;7746:9;7742:18;7734:26;;7806:9;7800:4;7796:20;7792:1;7781:9;7777:17;7770:47;7834:131;7960:4;7834:131;:::i;:::-;7826:139;;7553:419;;;:::o;7978:225::-;8118:34;8114:1;8106:6;8102:14;8095:58;8187:8;8182:2;8174:6;8170:15;8163:33;7978:225;:::o;8209:366::-;8351:3;8372:67;8436:2;8431:3;8372:67;:::i;:::-;8365:74;;8448:93;8537:3;8448:93;:::i;:::-;8566:2;8561:3;8557:12;8550:19;;8209:366;;;:::o;8581:419::-;8747:4;8785:2;8774:9;8770:18;8762:26;;8834:9;8828:4;8824:20;8820:1;8809:9;8805:17;8798:47;8862:131;8988:4;8862:131;:::i;:::-;8854:139;;8581:419;;;:::o;9006:223::-;9146:34;9142:1;9134:6;9130:14;9123:58;9215:6;9210:2;9202:6;9198:15;9191:31;9006:223;:::o;9235:366::-;9377:3;9398:67;9462:2;9457:3;9398:67;:::i;:::-;9391:74;;9474:93;9563:3;9474:93;:::i;:::-;9592:2;9587:3;9583:12;9576:19;;9235:366;;;:::o;9607:419::-;9773:4;9811:2;9800:9;9796:18;9788:26;;9860:9;9854:4;9850:20;9846:1;9835:9;9831:17;9824:47;9888:131;10014:4;9888:131;:::i;:::-;9880:139;;9607:419;;;:::o;10032:221::-;10172:34;10168:1;10160:6;10156:14;10149:58;10241:4;10236:2;10228:6;10224:15;10217:29;10032:221;:::o;10259:366::-;10401:3;10422:67;10486:2;10481:3;10422:67;:::i;:::-;10415:74;;10498:93;10587:3;10498:93;:::i;:::-;10616:2;10611:3;10607:12;10600:19;;10259:366;;;:::o;10631:419::-;10797:4;10835:2;10824:9;10820:18;10812:26;;10884:9;10878:4;10874:20;10870:1;10859:9;10855:17;10848:47;10912:131;11038:4;10912:131;:::i;:::-;10904:139;;10631:419;;;:::o;11056:224::-;11196:34;11192:1;11184:6;11180:14;11173:58;11265:7;11260:2;11252:6;11248:15;11241:32;11056:224;:::o;11286:366::-;11428:3;11449:67;11513:2;11508:3;11449:67;:::i;:::-;11442:74;;11525:93;11614:3;11525:93;:::i;:::-;11643:2;11638:3;11634:12;11627:19;;11286:366;;;:::o;11658:419::-;11824:4;11862:2;11851:9;11847:18;11839:26;;11911:9;11905:4;11901:20;11897:1;11886:9;11882:17;11875:47;11939:131;12065:4;11939:131;:::i;:::-;11931:139;;11658:419;;;:::o;12083:222::-;12223:34;12219:1;12211:6;12207:14;12200:58;12292:5;12287:2;12279:6;12275:15;12268:30;12083:222;:::o;12311:366::-;12453:3;12474:67;12538:2;12533:3;12474:67;:::i;:::-;12467:74;;12550:93;12639:3;12550:93;:::i;:::-;12668:2;12663:3;12659:12;12652:19;;12311:366;;;:::o;12683:419::-;12849:4;12887:2;12876:9;12872:18;12864:26;;12936:9;12930:4;12926:20;12922:1;12911:9;12907:17;12900:47;12964:131;13090:4;12964:131;:::i;:::-;12956:139;;12683:419;;;:::o;13108:228::-;13248:34;13244:1;13236:6;13232:14;13225:58;13317:11;13312:2;13304:6;13300:15;13293:36;13108:228;:::o;13342:366::-;13484:3;13505:67;13569:2;13564:3;13505:67;:::i;:::-;13498:74;;13581:93;13670:3;13581:93;:::i;:::-;13699:2;13694:3;13690:12;13683:19;;13342:366;;;:::o;13714:419::-;13880:4;13918:2;13907:9;13903:18;13895:26;;13967:9;13961:4;13957:20;13953:1;13942:9;13938:17;13931:47;13995:131;14121:4;13995:131;:::i;:::-;13987:139;;13714:419;;;:::o;14139:174::-;14279:26;14275:1;14267:6;14263:14;14256:50;14139:174;:::o;14319:366::-;14461:3;14482:67;14546:2;14541:3;14482:67;:::i;:::-;14475:74;;14558:93;14647:3;14558:93;:::i;:::-;14676:2;14671:3;14667:12;14660:19;;14319:366;;;:::o;14691:419::-;14857:4;14895:2;14884:9;14880:18;14872:26;;14944:9;14938:4;14934:20;14930:1;14919:9;14915:17;14908:47;14972:131;15098:4;14972:131;:::i;:::-;14964:139;;14691:419;;;:::o;15116:180::-;15164:77;15161:1;15154:88;15261:4;15258:1;15251:15;15285:4;15282:1;15275:15;15302:194;15342:4;15362:20;15380:1;15362:20;:::i;:::-;15357:25;;15396:20;15414:1;15396:20;:::i;:::-;15391:25;;15440:1;15437;15433:9;15425:17;;15464:1;15458:4;15455:11;15452:37;;;15469:18;;:::i;:::-;15452:37;15302:194;;;;:::o;15502:229::-;15642:34;15638:1;15630:6;15626:14;15619:58;15711:12;15706:2;15698:6;15694:15;15687:37;15502:229;:::o;15737:366::-;15879:3;15900:67;15964:2;15959:3;15900:67;:::i;:::-;15893:74;;15976:93;16065:3;15976:93;:::i;:::-;16094:2;16089:3;16085:12;16078:19;;15737:366;;;:::o;16109:419::-;16275:4;16313:2;16302:9;16298:18;16290:26;;16362:9;16356:4;16352:20;16348:1;16337:9;16333:17;16326:47;16390:131;16516:4;16390:131;:::i;:::-;16382:139;;16109:419;;;:::o;16534:180::-;16582:77;16579:1;16572:88;16679:4;16676:1;16669:15;16703:4;16700:1;16693:15;16720:185;16760:1;16777:20;16795:1;16777:20;:::i;:::-;16772:25;;16811:20;16829:1;16811:20;:::i;:::-;16806:25;;16850:1;16840:35;;16855:18;;:::i;:::-;16840:35;16897:1;16894;16890:9;16885:14;;16720:185;;;;:::o;16911:191::-;16951:3;16970:20;16988:1;16970:20;:::i;:::-;16965:25;;17004:20;17022:1;17004:20;:::i;:::-;16999:25;;17047:1;17044;17040:9;17033:16;;17068:3;17065:1;17062:10;17059:36;;;17075:18;;:::i;:::-;17059:36;16911:191;;;;:::o;17108:177::-;17248:29;17244:1;17236:6;17232:14;17225:53;17108:177;:::o;17291:366::-;17433:3;17454:67;17518:2;17513:3;17454:67;:::i;:::-;17447:74;;17530:93;17619:3;17530:93;:::i;:::-;17648:2;17643:3;17639:12;17632:19;;17291:366;;;:::o;17663:419::-;17829:4;17867:2;17856:9;17852:18;17844:26;;17916:9;17910:4;17906:20;17902:1;17891:9;17887:17;17880:47;17944:131;18070:4;17944:131;:::i;:::-;17936:139;;17663:419;;;:::o;18088:410::-;18128:7;18151:20;18169:1;18151:20;:::i;:::-;18146:25;;18185:20;18203:1;18185:20;:::i;:::-;18180:25;;18240:1;18237;18233:9;18262:30;18280:11;18262:30;:::i;:::-;18251:41;;18441:1;18432:7;18428:15;18425:1;18422:22;18402:1;18395:9;18375:83;18352:139;;18471:18;;:::i;:::-;18352:139;18136:362;18088:410;;;;:::o;18504:220::-;18644:34;18640:1;18632:6;18628:14;18621:58;18713:3;18708:2;18700:6;18696:15;18689:28;18504:220;:::o;18730:366::-;18872:3;18893:67;18957:2;18952:3;18893:67;:::i;:::-;18886:74;;18969:93;19058:3;18969:93;:::i;:::-;19087:2;19082:3;19078:12;19071:19;;18730:366;;;:::o;19102:419::-;19268:4;19306:2;19295:9;19291:18;19283:26;;19355:9;19349:4;19345:20;19341:1;19330:9;19326:17;19319:47;19383:131;19509:4;19383:131;:::i;:::-;19375:139;;19102:419;;;:::o

Swarm Source

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