ETH Price: $3,587.60 (+4.80%)

Token

Kagutsuchi (KAGU)
 

Overview

Max Total Supply

1,000,000,000,000 KAGU

Holders

101

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 8 Decimals)

Balance
3,089,374,048.21606978 KAGU

Value
$0.00
0xdc66ddecd799b88eeee8dd6737f0ed1b1a45669e
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:
Kagutsuchi

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

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

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}

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

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



contract Kagutsuchi is Context, IERC20, Ownable { 
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    address payable private _taxWallet;
    address private _burnWallet = 0x000000000000000000000000000000000000dEaD;

    uint256 private _initialTax=20; 
    uint256 private _finalTax=4; 
    uint256 private _burnTax=50; 
    uint256 private _reduceTaxAt=20; 
    uint256 private _preventSwapBefore=30; 
    uint256 private _buyCount=0; 

    uint8 private constant _decimals = 8;
    uint256 private constant _tTotal = 1000000000000 * 10**_decimals; 
    string private constant _name = "Kagutsuchi"; 
    string private constant _symbol = "KAGU"; 
    uint256 public _maxTxAmount = 10000000000 * 10**_decimals; 
    uint256 public _maxWalletSize = 20000000000 * 10**_decimals; 
    uint256 public _taxSwapThreshold=3000000000 * 10**_decimals; 
    uint256 public _maxTaxSwap=25000000000 * 10**_decimals; 

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

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

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;
        _isExcludedFromFee[_burnWallet];
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if(!inSwap){
              taxAmount = amount.mul((_buyCount>_reduceTaxAt)?_finalTax:_initialTax).div(100);
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled && contractTokenBalance>_taxSwapThreshold && _buyCount>_preventSwapBefore) {

                uint256 swapAmount = min(amount,min(contractTokenBalance,_maxTaxSwap));
                sendTokenToBurn(swapAmount.mul(_burnTax).div(100));
                swapTokensForEth(swapAmount.sub(swapAmount.mul(_burnTax).div(100)));
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

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

    function setExcludedFromFee(address adds, bool onoff) external onlyOwner{
        _isExcludedFromFee[adds] = onoff;
    }

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


    function sendTokenToBurn(uint256 tokenAmount) private lockTheSwap{
        if(tokenAmount>0){
            _transfer(address(this), _burnWallet, tokenAmount);
        }
    }

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

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

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

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

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

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

    function setMaxTxnAmount(uint256 maxTxAmount) external onlyOwner {
        if(maxTxAmount > _tTotal.mul(1).div(1000)){
        _maxTxAmount = maxTxAmount;
        }
    }
 
    function setMaxWalletSize(uint256 maxWalletSize) external onlyOwner {
        if(maxWalletSize > _tTotal.mul(1).div(1000)){
        _maxWalletSize = maxWalletSize;
        }
    }
  
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount, uint256 maxTaxSwap) external {
        require(_msgSender() == _taxWallet);
        _taxSwapThreshold = swapTokensAtAmount;
        _maxTaxSwap = maxTaxSwap;
    }

    function setFinalTax(uint256 ftax) external {
        require(_msgSender() == _taxWallet);
        if(ftax < 5){
        _finalTax = ftax;
        }
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender() == _taxWallet);
        swapTokensForEth(balanceOf(address(this)));
    }

    function manualSend() external {
        require(_msgSender() == _taxWallet);
        sendETHToFee(address(this).balance);
    }
}

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":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adds","type":"address"},{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"ftax","type":"uint256"}],"name":"setFinalTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"},{"internalType":"uint256","name":"maxTaxSwap","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600680546001600160a01b03191661dead17905560146007819055600460089081556032600955600a918255601e600b556000600c55620000459162000358565b62000056906402540be40062000370565b600d55620000676008600a62000358565b62000078906404a817c80062000370565b600e55620000896008600a62000358565b620000999063b2d05e0062000370565b600f55620000aa6008600a62000358565b620000bb906405d21dba0062000370565b6010556012805461ffff60a81b19169055348015620000d957600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600580546001600160a01b031916331790556200013b6008600a62000358565b6200014c9064e8d4a5100062000370565b336000908152600160208190526040822092909255600390620001776000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260039093528183208054851660019081179091556005548216845291832080549094169091179092556006549091169052620001e13390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200021b6008600a62000358565b6200022c9064e8d4a5100062000370565b60405190815260200160405180910390a36200038a565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200029a5781600019048211156200027e576200027e62000243565b808516156200028c57918102915b93841c93908002906200025e565b509250929050565b600082620002b35750600162000352565b81620002c25750600062000352565b8160018114620002db5760028114620002e65762000306565b600191505062000352565b60ff841115620002fa57620002fa62000243565b50506001821b62000352565b5060208310610133831016604e8410600b84101617156200032b575081810a62000352565b62000337838362000259565b80600019048211156200034e576200034e62000243565b0290505b92915050565b60006200036960ff841683620002a2565b9392505050565b808202811582820484141762000352576200035262000243565b611d57806200039a6000396000f3fe6080604052600436106101855760003560e01c806374010ece116100d1578063a9059cbb1161008a578063d34628cc11610064578063d34628cc1461045e578063dd62ed3e1461047e578063ea1644d5146104c4578063f4293890146104e457600080fd5b8063a9059cbb14610413578063bf474bed14610433578063c9567bf91461044957600080fd5b806374010ece1461035d578063751039fc1461037d5780637d1db4a5146103925780638da5cb5b146103a85780638f9a55c0146103d057806395d89b41146103e657600080fd5b80632b64a0aa1161013e57806351bc3c851161011857806351bc3c85146102dd5780636612e66f146102f257806370a0823114610312578063715018a61461034857600080fd5b80632b64a0aa14610281578063313ce567146102a157806331c2d847146102bd57600080fd5b806306fdde0314610191578063095ea7b3146101d65780630faee56f1461020657806312e808011461022a57806318160ddd1461024c57806323b872dd1461026157600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b5060408051808201909152600a8152694b61677574737563686960b01b60208201525b6040516101cd91906117cc565b60405180910390f35b3480156101e257600080fd5b506101f66101f136600461183f565b6104f9565b60405190151581526020016101cd565b34801561021257600080fd5b5061021c60105481565b6040519081526020016101cd565b34801561023657600080fd5b5061024a61024536600461186b565b610510565b005b34801561025857600080fd5b5061021c61053b565b34801561026d57600080fd5b506101f661027c36600461188d565b61055d565b34801561028d57600080fd5b5061024a61029c3660046118ce565b6105c6565b3480156102ad57600080fd5b50604051600881526020016101cd565b3480156102c957600080fd5b5061024a6102d83660046118fd565b6105f8565b3480156102e957600080fd5b5061024a610697565b3480156102fe57600080fd5b5061024a61030d3660046119d0565b6106d7565b34801561031e57600080fd5b5061021c61032d366004611a09565b6001600160a01b031660009081526001602052604090205490565b34801561035457600080fd5b5061024a61072c565b34801561036957600080fd5b5061024a6103783660046118ce565b6107a0565b34801561038957600080fd5b5061024a610808565b34801561039e57600080fd5b5061021c600d5481565b3480156103b457600080fd5b506000546040516001600160a01b0390911681526020016101cd565b3480156103dc57600080fd5b5061021c600e5481565b3480156103f257600080fd5b506040805180820190915260048152634b41475560e01b60208201526101c0565b34801561041f57600080fd5b506101f661042e36600461183f565b6108bd565b34801561043f57600080fd5b5061021c600f5481565b34801561045557600080fd5b5061024a6108ca565b34801561046a57600080fd5b5061024a6104793660046118fd565b610c83565b34801561048a57600080fd5b5061021c610499366004611a26565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156104d057600080fd5b5061024a6104df3660046118ce565b610d15565b3480156104f057600080fd5b5061024a610d62565b6000610506338484610d8b565b5060015b92915050565b6005546001600160a01b0316336001600160a01b03161461053057600080fd5b600f91909155601055565b60006105496008600a611b4e565b6105589064e8d4a51000611b5d565b905090565b600061056a848484610eaf565b6105bc84336105b785604051806060016040528060288152602001611cfa602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906113ee565b610d8b565b5060019392505050565b6005546001600160a01b0316336001600160a01b0316146105e657600080fd5b60058110156105f55760088190555b50565b6000546001600160a01b0316331461062b5760405162461bcd60e51b815260040161062290611b74565b60405180910390fd5b60005b81518110156106935760006004600084848151811061064f5761064f611ba9565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061068b81611bbf565b91505061062e565b5050565b6005546001600160a01b0316336001600160a01b0316146106b757600080fd5b306000908152600160205260409020546106d590611428565b611428565b565b6000546001600160a01b031633146107015760405162461bcd60e51b815260040161062290611b74565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107565760405162461bcd60e51b815260040161062290611b74565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107ca5760405162461bcd60e51b815260040161062290611b74565b6107fc6103e86107f660016107e16008600a611b4e565b6107f09064e8d4a51000611b5d565b906115a2565b9061162b565b8111156105f557600d55565b6000546001600160a01b031633146108325760405162461bcd60e51b815260040161062290611b74565b61083e6008600a611b4e565b61084d9064e8d4a51000611b5d565b600d5561085c6008600a611b4e565b61086b9064e8d4a51000611b5d565b600e557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61089b6008600a611b4e565b6108aa9064e8d4a51000611b5d565b60405190815260200160405180910390a1565b6000610506338484610eaf565b6000546001600160a01b031633146108f45760405162461bcd60e51b815260040161062290611b74565b601254600160a01b900460ff161561094e5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610622565b601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556109989030906109896008600a611b4e565b6105b79064e8d4a51000611b5d565b601160009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109eb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0f9190611bd8565b6001600160a01b031663c9c6539630601160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a959190611bd8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610ae2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b069190611bd8565b601280546001600160a01b039283166001600160a01b03199091161790556011541663f305d7194730610b4e816001600160a01b031660009081526001602052604090205490565b600080610b636000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610bcb573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bf09190611bf5565b50506012805462ff00ff60a01b1981166201000160a01b1790915560115460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610c5f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f59190611c23565b6000546001600160a01b03163314610cad5760405162461bcd60e51b815260040161062290611b74565b60005b815181101561069357600160046000848481518110610cd157610cd1611ba9565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610d0d81611bbf565b915050610cb0565b6000546001600160a01b03163314610d3f5760405162461bcd60e51b815260040161062290611b74565b610d566103e86107f660016107e16008600a611b4e565b8111156105f557600e55565b6005546001600160a01b0316336001600160a01b031614610d8257600080fd5b6106d54761166d565b6001600160a01b038316610ded5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610622565b6001600160a01b038216610e4e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610622565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f135760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610622565b6001600160a01b038216610f755760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610622565b60008111610fd75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610622565b600080546001600160a01b0385811691161480159061100457506000546001600160a01b03848116911614155b156112ab576001600160a01b03841660009081526004602052604090205460ff1615801561104b57506001600160a01b03831660009081526004602052604090205460ff16155b61105457600080fd5b601254600160a81b900460ff1661108e5761108b60646107f6600a54600c541161108057600754611084565b6008545b85906115a2565b90505b6012546001600160a01b0385811691161480156110b957506011546001600160a01b03848116911614155b80156110de57506001600160a01b03831660009081526003602052604090205460ff16155b156111c657600d548211156111355760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610622565b600e5482611158856001600160a01b031660009081526001602052604090205490565b6111629190611c40565b11156111b05760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610622565b600c80549060006111c083611bbf565b91905055505b30600090815260016020526040902054601254600160a81b900460ff161580156111fe57506012546001600160a01b03868116911614155b80156112135750601254600160b01b900460ff165b80156112205750600f5481115b801561122f5750600b54600c54115b156112a957600061124b84611246846010546116a7565b6116a7565b905061126f61126a60646107f6600954856115a290919063ffffffff16565b6116bc565b6112966106d061128f60646107f6600954866115a290919063ffffffff16565b83906116fd565b4780156112a6576112a64761166d565b50505b505b6001600160a01b0384166000908152600160205260409020546112ce90836116fd565b6001600160a01b0385166000908152600160205260409020556113136112f483836116fd565b6001600160a01b0385166000908152600160205260409020549061173f565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61135d85856116fd565b60405190815260200160405180910390a380156113e8573060009081526001602052604090205461138e908261173f565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113df9085815260200190565b60405180910390a35b50505050565b600081848411156114125760405162461bcd60e51b815260040161062291906117cc565b50600061141f8486611c53565b95945050505050565b6012805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061147057611470611ba9565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ed9190611bd8565b8160018151811061150057611500611ba9565b6001600160a01b0392831660209182029290920101526011546115269130911684610d8b565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac9479061155f908590600090869030904290600401611c66565b600060405180830381600087803b15801561157957600080fd5b505af115801561158d573d6000803e3d6000fd5b50506012805460ff60a81b1916905550505050565b6000826000036115b45750600061050a565b60006115c08385611b5d565b9050826115cd8583611cd7565b146116245760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610622565b9392505050565b600061162483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061179e565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610693573d6000803e3d6000fd5b60008183116116b65782611624565b50919050565b6012805460ff60a81b1916600160a81b17905580156116ed576006546116ed9030906001600160a01b031683610eaf565b506012805460ff60a81b19169055565b600061162483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113ee565b60008061174c8385611c40565b9050838110156116245760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610622565b600081836117bf5760405162461bcd60e51b815260040161062291906117cc565b50600061141f8486611cd7565b600060208083528351808285015260005b818110156117f9578581018301518582016040015282016117dd565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146105f557600080fd5b803561183a8161181a565b919050565b6000806040838503121561185257600080fd5b823561185d8161181a565b946020939093013593505050565b6000806040838503121561187e57600080fd5b50508035926020909101359150565b6000806000606084860312156118a257600080fd5b83356118ad8161181a565b925060208401356118bd8161181a565b929592945050506040919091013590565b6000602082840312156118e057600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561191057600080fd5b823567ffffffffffffffff8082111561192857600080fd5b818501915085601f83011261193c57600080fd5b81358181111561194e5761194e6118e7565b8060051b604051601f19603f83011681018181108582111715611973576119736118e7565b60405291825284820192508381018501918883111561199157600080fd5b938501935b828510156119b6576119a78561182f565b84529385019392850192611996565b98975050505050505050565b80151581146105f557600080fd5b600080604083850312156119e357600080fd5b82356119ee8161181a565b915060208301356119fe816119c2565b809150509250929050565b600060208284031215611a1b57600080fd5b81356116248161181a565b60008060408385031215611a3957600080fd5b8235611a448161181a565b915060208301356119fe8161181a565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611aa5578160001904821115611a8b57611a8b611a54565b80851615611a9857918102915b93841c9390800290611a6f565b509250929050565b600082611abc5750600161050a565b81611ac95750600061050a565b8160018114611adf5760028114611ae957611b05565b600191505061050a565b60ff841115611afa57611afa611a54565b50506001821b61050a565b5060208310610133831016604e8410600b8410161715611b28575081810a61050a565b611b328383611a6a565b8060001904821115611b4657611b46611a54565b029392505050565b600061162460ff841683611aad565b808202811582820484141761050a5761050a611a54565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060018201611bd157611bd1611a54565b5060010190565b600060208284031215611bea57600080fd5b81516116248161181a565b600080600060608486031215611c0a57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611c3557600080fd5b8151611624816119c2565b8082018082111561050a5761050a611a54565b8181038181111561050a5761050a611a54565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611cb65784516001600160a01b031683529383019391830191600101611c91565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611cf457634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c14c3656a8cd1671b8144f24ebc6b29bf72229ec7e2353f387e58c4b30f7f47864736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101855760003560e01c806374010ece116100d1578063a9059cbb1161008a578063d34628cc11610064578063d34628cc1461045e578063dd62ed3e1461047e578063ea1644d5146104c4578063f4293890146104e457600080fd5b8063a9059cbb14610413578063bf474bed14610433578063c9567bf91461044957600080fd5b806374010ece1461035d578063751039fc1461037d5780637d1db4a5146103925780638da5cb5b146103a85780638f9a55c0146103d057806395d89b41146103e657600080fd5b80632b64a0aa1161013e57806351bc3c851161011857806351bc3c85146102dd5780636612e66f146102f257806370a0823114610312578063715018a61461034857600080fd5b80632b64a0aa14610281578063313ce567146102a157806331c2d847146102bd57600080fd5b806306fdde0314610191578063095ea7b3146101d65780630faee56f1461020657806312e808011461022a57806318160ddd1461024c57806323b872dd1461026157600080fd5b3661018c57005b600080fd5b34801561019d57600080fd5b5060408051808201909152600a8152694b61677574737563686960b01b60208201525b6040516101cd91906117cc565b60405180910390f35b3480156101e257600080fd5b506101f66101f136600461183f565b6104f9565b60405190151581526020016101cd565b34801561021257600080fd5b5061021c60105481565b6040519081526020016101cd565b34801561023657600080fd5b5061024a61024536600461186b565b610510565b005b34801561025857600080fd5b5061021c61053b565b34801561026d57600080fd5b506101f661027c36600461188d565b61055d565b34801561028d57600080fd5b5061024a61029c3660046118ce565b6105c6565b3480156102ad57600080fd5b50604051600881526020016101cd565b3480156102c957600080fd5b5061024a6102d83660046118fd565b6105f8565b3480156102e957600080fd5b5061024a610697565b3480156102fe57600080fd5b5061024a61030d3660046119d0565b6106d7565b34801561031e57600080fd5b5061021c61032d366004611a09565b6001600160a01b031660009081526001602052604090205490565b34801561035457600080fd5b5061024a61072c565b34801561036957600080fd5b5061024a6103783660046118ce565b6107a0565b34801561038957600080fd5b5061024a610808565b34801561039e57600080fd5b5061021c600d5481565b3480156103b457600080fd5b506000546040516001600160a01b0390911681526020016101cd565b3480156103dc57600080fd5b5061021c600e5481565b3480156103f257600080fd5b506040805180820190915260048152634b41475560e01b60208201526101c0565b34801561041f57600080fd5b506101f661042e36600461183f565b6108bd565b34801561043f57600080fd5b5061021c600f5481565b34801561045557600080fd5b5061024a6108ca565b34801561046a57600080fd5b5061024a6104793660046118fd565b610c83565b34801561048a57600080fd5b5061021c610499366004611a26565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156104d057600080fd5b5061024a6104df3660046118ce565b610d15565b3480156104f057600080fd5b5061024a610d62565b6000610506338484610d8b565b5060015b92915050565b6005546001600160a01b0316336001600160a01b03161461053057600080fd5b600f91909155601055565b60006105496008600a611b4e565b6105589064e8d4a51000611b5d565b905090565b600061056a848484610eaf565b6105bc84336105b785604051806060016040528060288152602001611cfa602891396001600160a01b038a16600090815260026020908152604080832033845290915290205491906113ee565b610d8b565b5060019392505050565b6005546001600160a01b0316336001600160a01b0316146105e657600080fd5b60058110156105f55760088190555b50565b6000546001600160a01b0316331461062b5760405162461bcd60e51b815260040161062290611b74565b60405180910390fd5b60005b81518110156106935760006004600084848151811061064f5761064f611ba9565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061068b81611bbf565b91505061062e565b5050565b6005546001600160a01b0316336001600160a01b0316146106b757600080fd5b306000908152600160205260409020546106d590611428565b611428565b565b6000546001600160a01b031633146107015760405162461bcd60e51b815260040161062290611b74565b6001600160a01b03919091166000908152600360205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146107565760405162461bcd60e51b815260040161062290611b74565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146107ca5760405162461bcd60e51b815260040161062290611b74565b6107fc6103e86107f660016107e16008600a611b4e565b6107f09064e8d4a51000611b5d565b906115a2565b9061162b565b8111156105f557600d55565b6000546001600160a01b031633146108325760405162461bcd60e51b815260040161062290611b74565b61083e6008600a611b4e565b61084d9064e8d4a51000611b5d565b600d5561085c6008600a611b4e565b61086b9064e8d4a51000611b5d565b600e557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61089b6008600a611b4e565b6108aa9064e8d4a51000611b5d565b60405190815260200160405180910390a1565b6000610506338484610eaf565b6000546001600160a01b031633146108f45760405162461bcd60e51b815260040161062290611b74565b601254600160a01b900460ff161561094e5760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610622565b601180546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556109989030906109896008600a611b4e565b6105b79064e8d4a51000611b5d565b601160009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109eb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a0f9190611bd8565b6001600160a01b031663c9c6539630601160009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a959190611bd8565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610ae2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b069190611bd8565b601280546001600160a01b039283166001600160a01b03199091161790556011541663f305d7194730610b4e816001600160a01b031660009081526001602052604090205490565b600080610b636000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af1158015610bcb573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610bf09190611bf5565b50506012805462ff00ff60a01b1981166201000160a01b1790915560115460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af1158015610c5f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f59190611c23565b6000546001600160a01b03163314610cad5760405162461bcd60e51b815260040161062290611b74565b60005b815181101561069357600160046000848481518110610cd157610cd1611ba9565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905580610d0d81611bbf565b915050610cb0565b6000546001600160a01b03163314610d3f5760405162461bcd60e51b815260040161062290611b74565b610d566103e86107f660016107e16008600a611b4e565b8111156105f557600e55565b6005546001600160a01b0316336001600160a01b031614610d8257600080fd5b6106d54761166d565b6001600160a01b038316610ded5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610622565b6001600160a01b038216610e4e5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610622565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f135760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610622565b6001600160a01b038216610f755760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610622565b60008111610fd75760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610622565b600080546001600160a01b0385811691161480159061100457506000546001600160a01b03848116911614155b156112ab576001600160a01b03841660009081526004602052604090205460ff1615801561104b57506001600160a01b03831660009081526004602052604090205460ff16155b61105457600080fd5b601254600160a81b900460ff1661108e5761108b60646107f6600a54600c541161108057600754611084565b6008545b85906115a2565b90505b6012546001600160a01b0385811691161480156110b957506011546001600160a01b03848116911614155b80156110de57506001600160a01b03831660009081526003602052604090205460ff16155b156111c657600d548211156111355760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e000000000000006044820152606401610622565b600e5482611158856001600160a01b031660009081526001602052604090205490565b6111629190611c40565b11156111b05760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610622565b600c80549060006111c083611bbf565b91905055505b30600090815260016020526040902054601254600160a81b900460ff161580156111fe57506012546001600160a01b03868116911614155b80156112135750601254600160b01b900460ff165b80156112205750600f5481115b801561122f5750600b54600c54115b156112a957600061124b84611246846010546116a7565b6116a7565b905061126f61126a60646107f6600954856115a290919063ffffffff16565b6116bc565b6112966106d061128f60646107f6600954866115a290919063ffffffff16565b83906116fd565b4780156112a6576112a64761166d565b50505b505b6001600160a01b0384166000908152600160205260409020546112ce90836116fd565b6001600160a01b0385166000908152600160205260409020556113136112f483836116fd565b6001600160a01b0385166000908152600160205260409020549061173f565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61135d85856116fd565b60405190815260200160405180910390a380156113e8573060009081526001602052604090205461138e908261173f565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906113df9085815260200190565b60405180910390a35b50505050565b600081848411156114125760405162461bcd60e51b815260040161062291906117cc565b50600061141f8486611c53565b95945050505050565b6012805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061147057611470611ba9565b6001600160a01b03928316602091820292909201810191909152601154604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa1580156114c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ed9190611bd8565b8160018151811061150057611500611ba9565b6001600160a01b0392831660209182029290920101526011546115269130911684610d8b565b60115460405163791ac94760e01b81526001600160a01b039091169063791ac9479061155f908590600090869030904290600401611c66565b600060405180830381600087803b15801561157957600080fd5b505af115801561158d573d6000803e3d6000fd5b50506012805460ff60a81b1916905550505050565b6000826000036115b45750600061050a565b60006115c08385611b5d565b9050826115cd8583611cd7565b146116245760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610622565b9392505050565b600061162483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061179e565b6005546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610693573d6000803e3d6000fd5b60008183116116b65782611624565b50919050565b6012805460ff60a81b1916600160a81b17905580156116ed576006546116ed9030906001600160a01b031683610eaf565b506012805460ff60a81b19169055565b600061162483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506113ee565b60008061174c8385611c40565b9050838110156116245760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610622565b600081836117bf5760405162461bcd60e51b815260040161062291906117cc565b50600061141f8486611cd7565b600060208083528351808285015260005b818110156117f9578581018301518582016040015282016117dd565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146105f557600080fd5b803561183a8161181a565b919050565b6000806040838503121561185257600080fd5b823561185d8161181a565b946020939093013593505050565b6000806040838503121561187e57600080fd5b50508035926020909101359150565b6000806000606084860312156118a257600080fd5b83356118ad8161181a565b925060208401356118bd8161181a565b929592945050506040919091013590565b6000602082840312156118e057600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561191057600080fd5b823567ffffffffffffffff8082111561192857600080fd5b818501915085601f83011261193c57600080fd5b81358181111561194e5761194e6118e7565b8060051b604051601f19603f83011681018181108582111715611973576119736118e7565b60405291825284820192508381018501918883111561199157600080fd5b938501935b828510156119b6576119a78561182f565b84529385019392850192611996565b98975050505050505050565b80151581146105f557600080fd5b600080604083850312156119e357600080fd5b82356119ee8161181a565b915060208301356119fe816119c2565b809150509250929050565b600060208284031215611a1b57600080fd5b81356116248161181a565b60008060408385031215611a3957600080fd5b8235611a448161181a565b915060208301356119fe8161181a565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115611aa5578160001904821115611a8b57611a8b611a54565b80851615611a9857918102915b93841c9390800290611a6f565b509250929050565b600082611abc5750600161050a565b81611ac95750600061050a565b8160018114611adf5760028114611ae957611b05565b600191505061050a565b60ff841115611afa57611afa611a54565b50506001821b61050a565b5060208310610133831016604e8410600b8410161715611b28575081810a61050a565b611b328383611a6a565b8060001904821115611b4657611b46611a54565b029392505050565b600061162460ff841683611aad565b808202811582820484141761050a5761050a611a54565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600060018201611bd157611bd1611a54565b5060010190565b600060208284031215611bea57600080fd5b81516116248161181a565b600080600060608486031215611c0a57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215611c3557600080fd5b8151611624816119c2565b8082018082111561050a5761050a611a54565b8181038181111561050a5761050a611a54565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611cb65784516001600160a01b031683529383019391830191600101611c91565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611cf457634e487b7160e01b600052601260045260246000fd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220c14c3656a8cd1671b8144f24ebc6b29bf72229ec7e2353f387e58c4b30f7f47864736f6c63430008110033

Deployed Bytecode Sourcemap

3475:8760:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5330:83;;;;;;;;;;-1:-1:-1;5400:5:0;;;;;;;;;;;;-1:-1:-1;;;5400:5:0;;;;5330:83;;;;;;;:::i;:::-;;;;;;;;6163:161;;;;;;;;;;-1:-1:-1;6163:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;6163:161:0;1162:187:1;4562:54:0;;;;;;;;;;;;;;;;;;;1500:25:1;;;1488:2;1473:18;4562:54:0;1354:177:1;11513:230:0;;;;;;;;;;-1:-1:-1;11513:230:0;;;;;:::i;:::-;;:::i;:::-;;5607:95;;;;;;;;;;;;;:::i;6332:313::-;;;;;;;;;;-1:-1:-1;6332:313:0;;;;;:::i;:::-;;:::i;11751:159::-;;;;;;;;;;-1:-1:-1;11751:159:0;;;;;:::i;:::-;;:::i;5516:83::-;;;;;;;;;;-1:-1:-1;5516:83:0;;4183:1;2577:36:1;;2565:2;2550:18;5516:83:0;2435:184:1;10286:164:0;;;;;;;;;;-1:-1:-1;10286:164:0;;;;;:::i;:::-;;:::i;11955:138::-;;;;;;;;;;;;;:::i;8930:123::-;;;;;;;;;;-1:-1:-1;8930:123:0;;;;;:::i;:::-;;:::i;5710:119::-;;;;;;;;;;-1:-1:-1;5710:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;5803:18:0;5776:7;5803:18;;;:9;:18;;;;;;;5710:119;2552:148;;;;;;;;;;;;;:::i;11137:174::-;;;;;;;;;;-1:-1:-1;11137:174:0;;;;;:::i;:::-;;:::i;9845:159::-;;;;;;;;;;;;;:::i;4363:57::-;;;;;;;;;;;;;;;;2338:79;;;;;;;;;;-1:-1:-1;2376:7:0;2403:6;2338:79;;-1:-1:-1;;;;;2403:6:0;;;4790:51:1;;4778:2;4763:18;2338:79:0;4644:203:1;4428:59:0;;;;;;;;;;;;;;;;5421:87;;;;;;;;;;-1:-1:-1;5493:7:0;;;;;;;;;;;;-1:-1:-1;;;5493:7:0;;;;5421:87;;5837:167;;;;;;;;;;-1:-1:-1;5837:167:0;;;;;:::i;:::-;;:::i;4495:59::-;;;;;;;;;;;;;;;;10458:671;;;;;;;;;;;;;:::i;10112:166::-;;;;;;;;;;-1:-1:-1;10112:166:0;;;;;:::i;:::-;;:::i;6012:143::-;;;;;;;;;;-1:-1:-1;6012:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6120:18:0;;;6093:7;6120:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6012:143;11320:183;;;;;;;;;;-1:-1:-1;11320:183:0;;;;;:::i;:::-;;:::i;12101:131::-;;;;;;;;;;;;;:::i;6163:161::-;6238:4;6255:39;173:10;6278:7;6287:6;6255:8;:39::i;:::-;-1:-1:-1;6312:4:0;6163:161;;;;;:::o;11513:230::-;11640:10;;-1:-1:-1;;;;;11640:10:0;173;-1:-1:-1;;;;;11624:26:0;;11616:35;;;;;;11662:17;:38;;;;11711:11;:24;11513:230::o;5607:95::-;5660:7;4242:13;4183:1;4242:2;:13;:::i;:::-;4226:29;;:13;:29;:::i;:::-;5680:14;;5607:95;:::o;6332:313::-;6430:4;6447:36;6457:6;6465:9;6476:6;6447:9;:36::i;:::-;6494:121;6503:6;173:10;6525:89;6563:6;6525:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6525:19:0;;;;;;:11;:19;;;;;;;;173:10;6525:33;;;;;;;;;;:37;:89::i;:::-;6494:8;:121::i;:::-;-1:-1:-1;6633:4:0;6332:313;;;;;:::o;11751:159::-;11830:10;;-1:-1:-1;;;;;11830:10:0;173;-1:-1:-1;;;;;11814:26:0;;11806:35;;;;;;11862:1;11855:4;:8;11852:51;;;11875:9;:16;;;11852:51;11751:159;:::o;10286:164::-;2465:6;;-1:-1:-1;;;;;2465:6:0;173:10;2465:22;2457:67;;;;-1:-1:-1;;;2457:67:0;;;;;;;:::i;:::-;;;;;;;;;10361:6:::1;10356:87;10377:6;:13;10373:1;:17;10356:87;;;10428:5;10410:4;:15;10415:6;10422:1;10415:9;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10410:15:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10410:15:0;:23;;-1:-1:-1;;10410:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10392:3;::::1;::::0;::::1;:::i;:::-;;;;10356:87;;;;10286:164:::0;:::o;11955:138::-;12021:10;;-1:-1:-1;;;;;12021:10:0;173;-1:-1:-1;;;;;12005:26:0;;11997:35;;;;;;12078:4;5776:7;5803:18;;;:9;:18;;;;;;12043:42;;:16;:42::i;12060:24::-;12043:16;:42::i;:::-;11955:138::o;8930:123::-;2465:6;;-1:-1:-1;;;;;2465:6:0;173:10;2465:22;2457:67;;;;-1:-1:-1;;;2457:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;9013:24:0;;;::::1;;::::0;;;:18:::1;:24;::::0;;;;:32;;-1:-1:-1;;9013:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;8930:123::o;2552:148::-;2465:6;;-1:-1:-1;;;;;2465:6:0;173:10;2465:22;2457:67;;;;-1:-1:-1;;;2457:67:0;;;;;;;:::i;:::-;2659:1:::1;2643:6:::0;;2622:40:::1;::::0;-1:-1:-1;;;;;2643:6:0;;::::1;::::0;2622:40:::1;::::0;2659:1;;2622:40:::1;2690:1;2673:19:::0;;-1:-1:-1;;;;;;2673:19:0::1;::::0;;2552:148::o;11137:174::-;2465:6;;-1:-1:-1;;;;;2465:6:0;173:10;2465:22;2457:67;;;;-1:-1:-1;;;2457:67:0;;;;;;;:::i;:::-;11230:24:::1;11249:4;11230:14;11242:1;4242:13;4183:1;4242:2;:13;:::i;:::-;4226:29;::::0;:13:::1;:29;:::i;:::-;11230:11:::0;::::1;:14::i;:::-;:18:::0;::::1;:24::i;:::-;11216:11;:38;11213:91;;;11266:12;:26:::0;11137:174::o;9845:159::-;2465:6;;-1:-1:-1;;;;;2465:6:0;173:10;2465:22;2457:67;;;;-1:-1:-1;;;2457:67:0;;;;;;;:::i;:::-;4242:13:::1;4183:1;4242:2;:13;:::i;:::-;4226:29;::::0;:13:::1;:29;:::i;:::-;9898:12;:22:::0;4242:13:::1;4183:1;4242:2;:13;:::i;:::-;4226:29;::::0;:13:::1;:29;:::i;:::-;9931:14;:22:::0;9969:27:::1;4242:13;4183:1;4242:2;:13;:::i;:::-;4226:29;::::0;:13:::1;:29;:::i;:::-;9969:27;::::0;1500:25:1;;;1488:2;1473:18;9969:27:0::1;;;;;;;9845:159::o:0;5837:167::-;5915:4;5932:42;173:10;5956:9;5967:6;5932:9;:42::i;10458:671::-;2465:6;;-1:-1:-1;;;;;2465:6:0;173:10;2465:22;2457:67;;;;-1:-1:-1;;;2457:67:0;;;;;;;:::i;:::-;10522:11:::1;::::0;-1:-1:-1;;;10522:11:0;::::1;;;10521:12;10513:47;;;::::0;-1:-1:-1;;;10513:47:0;;7768:2:1;10513:47:0::1;::::0;::::1;7750:21:1::0;7807:2;7787:18;;;7780:30;7846:25;7826:18;;;7819:53;7889:18;;10513:47:0::1;7566:347:1::0;10513:47:0::1;10571:15;:80:::0;;-1:-1:-1;;;;;;10571:80:0::1;10608:42;10571:80:::0;;::::1;::::0;;;10662:58:::1;::::0;10679:4:::1;::::0;4242:13:::1;4183:1;4242:2;:13;:::i;:::-;4226:29;::::0;:13:::1;:29;:::i;10662:58::-;10765:15;;;;;;;;;-1:-1:-1::0;;;;;10765:15:0::1;-1:-1:-1::0;;;;;10765:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10747:55:0::1;;10811:4;10818:15;;;;;;;;;-1:-1:-1::0;;;;;10818:15:0::1;-1:-1:-1::0;;;;;10818:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10747:94;::::0;-1:-1:-1;;;;;;10747:94:0::1;::::0;;;;;;-1:-1:-1;;;;;8404:15:1;;;10747:94:0::1;::::0;::::1;8386:34:1::0;8456:15;;8436:18;;;8429:43;8321:18;;10747:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10731:13;:110:::0;;-1:-1:-1;;;;;10731:110:0;;::::1;-1:-1:-1::0;;;;;;10731:110:0;;::::1;;::::0;;10852:15:::1;::::0;::::1;:31;10891:21;10922:4;10928:24;10922:4:::0;-1:-1:-1;;;;;5803:18:0;5776:7;5803:18;;;:9;:18;;;;;;;5710:119;10928:24:::1;10953:1;10955::::0;10957:7:::1;2376::::0;2403:6;-1:-1:-1;;;;;2403:6:0;;2338:79;10957:7:::1;10852:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10852:129:0;;;-1:-1:-1;;;;;8842:15:1;;;10852:129:0::1;::::0;::::1;8824:34:1::0;8874:18;;;8867:34;;;;8917:18;;;8910:34;;;;8960:18;;;8953:34;9024:15;;;9003:19;;;8996:44;10965:15:0::1;9056:19:1::0;;;9049:35;8758:19;;10852:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10992:11:0::1;:18:::0;;-1:-1:-1;;;;11021:18:0;;-1:-1:-1;;;11021:18:0;;;;11088:15:::1;::::0;11050:71:::1;::::0;-1:-1:-1;;;11050:71:0;;-1:-1:-1;;;;;11088:15:0;;::::1;11050:71;::::0;::::1;9580:51:1::0;-1:-1:-1;;9647:18:1;;;9640:34;11057:13:0;;;-1:-1:-1;11050:29:0::1;::::0;9553:18:1;;11050:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;10112:166::-:0;2465:6;;-1:-1:-1;;;;;2465:6:0;173:10;2465:22;2457:67;;;;-1:-1:-1;;;2457:67:0;;;;;;;:::i;:::-;10188:6:::1;10183:88;10204:5;:12;10200:1;:16;10183:88;;;10255:4;10238;:14;10243:5;10249:1;10243:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;10238:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;10238:14:0;:21;;-1:-1:-1;;10238:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10218:3;::::1;::::0;::::1;:::i;:::-;;;;10183:88;;11320:183:::0;2465:6;;-1:-1:-1;;;;;2465:6:0;173:10;2465:22;2457:67;;;;-1:-1:-1;;;2457:67:0;;;;;;;:::i;:::-;11418:24:::1;11437:4;11418:14;11430:1;4242:13;4183:1;4242:2;:13;:::i;11418:24::-;11402:13;:40;11399:97;;;11454:14;:30:::0;11320:183::o;12101:131::-;12167:10;;-1:-1:-1;;;;;12167:10:0;173;-1:-1:-1;;;;;12151:26:0;;12143:35;;;;;;12189;12202:21;12189:12;:35::i;6653:335::-;-1:-1:-1;;;;;6746:19:0;;6738:68;;;;-1:-1:-1;;;6738:68:0;;10137:2:1;6738:68:0;;;10119:21:1;10176:2;10156:18;;;10149:30;10215:34;10195:18;;;10188:62;-1:-1:-1;;;10266:18:1;;;10259:34;10310:19;;6738:68:0;9935:400:1;6738:68:0;-1:-1:-1;;;;;6825:21:0;;6817:68;;;;-1:-1:-1;;;6817:68:0;;10542:2:1;6817:68:0;;;10524:21:1;10581:2;10561:18;;;10554:30;10620:34;10600:18;;;10593:62;-1:-1:-1;;;10671:18:1;;;10664:32;10713:19;;6817:68:0;10340:398:1;6817:68:0;-1:-1:-1;;;;;6896:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6948:32;;1500:25:1;;;6948:32:0;;1473:18:1;6948:32:0;;;;;;;6653:335;;;:::o;6996:1926::-;-1:-1:-1;;;;;7084:18:0;;7076:68;;;;-1:-1:-1;;;7076:68:0;;10945:2:1;7076:68:0;;;10927:21:1;10984:2;10964:18;;;10957:30;11023:34;11003:18;;;10996:62;-1:-1:-1;;;11074:18:1;;;11067:35;11119:19;;7076:68:0;10743:401:1;7076:68:0;-1:-1:-1;;;;;7163:16:0;;7155:64;;;;-1:-1:-1;;;7155:64:0;;11351:2:1;7155:64:0;;;11333:21:1;11390:2;11370:18;;;11363:30;11429:34;11409:18;;;11402:62;-1:-1:-1;;;11480:18:1;;;11473:33;11523:19;;7155:64:0;11149:399:1;7155:64:0;7247:1;7238:6;:10;7230:64;;;;-1:-1:-1;;;7230:64:0;;11755:2:1;7230:64:0;;;11737:21:1;11794:2;11774:18;;;11767:30;11833:34;11813:18;;;11806:62;-1:-1:-1;;;11884:18:1;;;11877:39;11933:19;;7230:64:0;11553:405:1;7230:64:0;7305:17;2403:6;;-1:-1:-1;;;;;7339:15:0;;;2403:6;;7339:15;;;;:32;;-1:-1:-1;2376:7:0;2403:6;-1:-1:-1;;;;;7358:13:0;;;2403:6;;7358:13;;7339:32;7335:1231;;;-1:-1:-1;;;;;7397:10:0;;;;;;:4;:10;;;;;;;;7396:11;:24;;;;-1:-1:-1;;;;;;7412:8:0;;;;;;:4;:8;;;;;;;;7411:9;7396:24;7388:33;;;;;;7440:6;;-1:-1:-1;;;7440:6:0;;;;7436:123;;7476:67;7539:3;7476:58;7498:12;;7488:9;;:22;7487:46;;7522:11;;7487:46;;;7512:9;;7487:46;7476:6;;:10;:58::i;:67::-;7464:79;;7436:123;7587:13;;-1:-1:-1;;;;;7579:21:0;;;7587:13;;7579:21;:55;;;;-1:-1:-1;7618:15:0;;-1:-1:-1;;;;;7604:30:0;;;7618:15;;7604:30;;7579:55;:83;;;;-1:-1:-1;;;;;;7640:22:0;;;;;;:18;:22;;;;;;;;7638:24;7579:83;7575:313;;;7702:12;;7692:6;:22;;7684:60;;;;-1:-1:-1;;;7684:60:0;;12165:2:1;7684:60:0;;;12147:21:1;12204:2;12184:18;;;12177:30;12243:27;12223:18;;;12216:55;12288:18;;7684:60:0;11963:349:1;7684:60:0;7797:14;;7787:6;7771:13;7781:2;-1:-1:-1;;;;;5803:18:0;5776:7;5803:18;;;:9;:18;;;;;;;5710:119;7771:13;:22;;;;:::i;:::-;:40;;7763:79;;;;-1:-1:-1;;;7763:79:0;;12649:2:1;7763:79:0;;;12631:21:1;12688:2;12668:18;;;12661:30;12727:28;12707:18;;;12700:56;12773:18;;7763:79:0;12447:350:1;7763:79:0;7861:9;:11;;;:9;:11;;;:::i;:::-;;;;;;7575:313;7953:4;7904:28;5803:18;;;:9;:18;;;;;;7979:6;;-1:-1:-1;;;7979:6:0;;;;7978:7;:32;;;;-1:-1:-1;7997:13:0;;-1:-1:-1;;;;;7989:21:0;;;7997:13;;7989:21;;7978:32;:47;;;;-1:-1:-1;8014:11:0;;-1:-1:-1;;;8014:11:0;;;;7978:47;:89;;;;;8050:17;;8029:20;:38;7978:89;:121;;;;;8081:18;;8071:9;;:28;7978:121;7974:581;;;8122:18;8143:49;8147:6;8154:37;8158:20;8179:11;;8154:3;:37::i;:::-;8143:3;:49::i;:::-;8122:70;;8211:50;8227:33;8256:3;8227:24;8242:8;;8227:10;:14;;:24;;;;:::i;:33::-;8211:15;:50::i;:::-;8280:67;8297:49;8312:33;8341:3;8312:24;8327:8;;8312:10;:14;;:24;;;;:::i;:33::-;8297:10;;:14;:49::i;8280:67::-;8395:21;8438:22;;8435:105;;8485:35;8498:21;8485:12;:35::i;:::-;8101:454;;7974:581;7373:1193;7335:1231;-1:-1:-1;;;;;8594:15:0;;;;;;:9;:15;;;;;;:27;;8614:6;8594:19;:27::i;:::-;-1:-1:-1;;;;;8578:15:0;;;;;;:9;:15;;;;;:43;8646:40;8664:21;:6;8675:9;8664:10;:21::i;:::-;-1:-1:-1;;;;;8646:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;8632:13:0;;;;;;;:9;:13;;;;;:54;;;;8702:41;;;8721:21;:6;8732:9;8721:10;:21::i;:::-;8702:41;;1500:25:1;;;1488:2;1473:18;8702:41:0;;;;;;;8757:11;;8754:161;;8825:4;8807:24;;;;:9;:24;;;;;;:39;;8836:9;8807:28;:39::i;:::-;8800:4;8782:24;;;;:9;:24;;;;;;;:64;;;;8864:39;;-1:-1:-1;;;;;8864:39:0;;;;;;;8893:9;1500:25:1;;1488:2;1473:18;;1354:177;8864:39:0;;;;;;;;8754:161;7065:1857;6996:1926;;;:::o;1230:190::-;1316:7;1352:12;1344:6;;;;1336:29;;;;-1:-1:-1;;;1336:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1376:9:0;1388:5;1392:1;1388;:5;:::i;:::-;1376:17;1230:190;-1:-1:-1;;;;;1230:190:0:o;9354:483::-;4899:6;:13;;-1:-1:-1;;;;4899:13:0;-1:-1:-1;;;4899:13:0;;;9456:16:::1;::::0;;9470:1:::1;9456:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9456:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9456:16:0::1;9432:40;;9501:4;9483;9488:1;9483:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9483:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9527:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9527:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9483:7;;9527:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9517:4;9522:1;9517:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9517:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9592:15:::1;::::0;9560:62:::1;::::0;9577:4:::1;::::0;9592:15:::1;9610:11:::0;9560:8:::1;:62::i;:::-;9633:15;::::0;:196:::1;::::0;-1:-1:-1;;;9633:196:0;;-1:-1:-1;;;;;9633:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9714:11;;9633:15:::1;::::0;9756:4;;9783::::1;::::0;9803:15:::1;::::0;9633:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4935:6:0;:14;;-1:-1:-1;;;;4935:14:0;;;-1:-1:-1;;;;9354:483:0:o;1428:246::-;1486:7;1510:1;1515;1510:6;1506:47;;-1:-1:-1;1540:1:0;1533:8;;1506:47;1563:9;1575:5;1579:1;1575;:5;:::i;:::-;1563:17;-1:-1:-1;1608:1:0;1599:5;1603:1;1563:17;1599:5;:::i;:::-;:10;1591:56;;;;-1:-1:-1;;;1591:56:0;;14344:2:1;1591:56:0;;;14326:21:1;14383:2;14363:18;;;14356:30;14422:34;14402:18;;;14395:62;-1:-1:-1;;;14473:18:1;;;14466:31;14514:19;;1591:56:0;14142:397:1;1591:56:0;1665:1;1428:246;-1:-1:-1;;;1428:246:0:o;1682:132::-;1740:7;1767:39;1771:1;1774;1767:39;;;;;;;;;;;;;;;;;:3;:39::i;10012:92::-;10069:10;;:27;;-1:-1:-1;;;;;10069:10:0;;;;:27;;;;;10089:6;;10069:10;:27;:10;:27;10089:6;10069:10;:27;;;;;;;;;;;;;;;;;;;9061:98;9118:7;9145:1;9143;:3;9142:9;;9150:1;9142:9;;;-1:-1:-1;9148:1:0;9061:98;-1:-1:-1;9061:98:0:o;9169:177::-;4899:6;:13;;-1:-1:-1;;;;4899:13:0;-1:-1:-1;;;4899:13:0;;;9248;;9245:94:::1;;9302:11;::::0;9277:50:::1;::::0;9295:4:::1;::::0;-1:-1:-1;;;;;9302:11:0::1;9315::::0;9277:9:::1;:50::i;:::-;-1:-1:-1::0;4935:6:0;:14;;-1:-1:-1;;;;4935:14:0;;;9169:177::o;1086:136::-;1144:7;1171:43;1175:1;1178;1171:43;;;;;;;;;;;;;;;;;:3;:43::i;899:179::-;957:7;;989:5;993:1;989;:5;:::i;:::-;977:17;;1018:1;1013;:6;;1005:46;;;;-1:-1:-1;;;1005:46:0;;14746:2:1;1005:46:0;;;14728:21:1;14785:2;14765:18;;;14758:30;14824:29;14804:18;;;14797:57;14871:18;;1005:46:0;14544:351:1;1822:189:0;1908:7;1943:12;1936:5;1928:28;;;;-1:-1:-1;;;1928:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1967:9:0;1979:5;1983:1;1979;:5;:::i;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;1536:248::-;1604:6;1612;1665:2;1653:9;1644:7;1640:23;1636:32;1633:52;;;1681:1;1678;1671:12;1633:52;-1:-1:-1;;1704:23:1;;;1774:2;1759:18;;;1746:32;;-1:-1:-1;1536:248:1:o;1789:456::-;1866:6;1874;1882;1935:2;1923:9;1914:7;1910:23;1906:32;1903:52;;;1951:1;1948;1941:12;1903:52;1990:9;1977:23;2009:31;2034:5;2009:31;:::i;:::-;2059:5;-1:-1:-1;2116:2:1;2101:18;;2088:32;2129:33;2088:32;2129:33;:::i;:::-;1789:456;;2181:7;;-1:-1:-1;;;2235:2:1;2220:18;;;;2207:32;;1789:456::o;2250:180::-;2309:6;2362:2;2350:9;2341:7;2337:23;2333:32;2330:52;;;2378:1;2375;2368:12;2330:52;-1:-1:-1;2401:23:1;;2250:180;-1:-1:-1;2250:180:1:o;2624:127::-;2685:10;2680:3;2676:20;2673:1;2666:31;2716:4;2713:1;2706:15;2740:4;2737:1;2730:15;2756:1121;2840:6;2871:2;2914;2902:9;2893:7;2889:23;2885:32;2882:52;;;2930:1;2927;2920:12;2882:52;2970:9;2957:23;2999:18;3040:2;3032:6;3029:14;3026:34;;;3056:1;3053;3046:12;3026:34;3094:6;3083:9;3079:22;3069:32;;3139:7;3132:4;3128:2;3124:13;3120:27;3110:55;;3161:1;3158;3151:12;3110:55;3197:2;3184:16;3219:2;3215;3212:10;3209:36;;;3225:18;;:::i;:::-;3271:2;3268:1;3264:10;3303:2;3297:9;3366:2;3362:7;3357:2;3353;3349:11;3345:25;3337:6;3333:38;3421:6;3409:10;3406:22;3401:2;3389:10;3386:18;3383:46;3380:72;;;3432:18;;:::i;:::-;3468:2;3461:22;3518:18;;;3552:15;;;;-1:-1:-1;3594:11:1;;;3590:20;;;3622:19;;;3619:39;;;3654:1;3651;3644:12;3619:39;3678:11;;;;3698:148;3714:6;3709:3;3706:15;3698:148;;;3780:23;3799:3;3780:23;:::i;:::-;3768:36;;3731:12;;;;3824;;;;3698:148;;;3865:6;2756:1121;-1:-1:-1;;;;;;;;2756:1121:1:o;3882:118::-;3968:5;3961:13;3954:21;3947:5;3944:32;3934:60;;3990:1;3987;3980:12;4005:382;4070:6;4078;4131:2;4119:9;4110:7;4106:23;4102:32;4099:52;;;4147:1;4144;4137:12;4099:52;4186:9;4173:23;4205:31;4230:5;4205:31;:::i;:::-;4255:5;-1:-1:-1;4312:2:1;4297:18;;4284:32;4325:30;4284:32;4325:30;:::i;:::-;4374:7;4364:17;;;4005:382;;;;;:::o;4392:247::-;4451:6;4504:2;4492:9;4483:7;4479:23;4475:32;4472:52;;;4520:1;4517;4510:12;4472:52;4559:9;4546:23;4578:31;4603:5;4578:31;:::i;4852:388::-;4920:6;4928;4981:2;4969:9;4960:7;4956:23;4952:32;4949:52;;;4997:1;4994;4987:12;4949:52;5036:9;5023:23;5055:31;5080:5;5055:31;:::i;:::-;5105:5;-1:-1:-1;5162:2:1;5147:18;;5134:32;5175:33;5134:32;5175:33;:::i;5245:127::-;5306:10;5301:3;5297:20;5294:1;5287:31;5337:4;5334:1;5327:15;5361:4;5358:1;5351:15;5377:422;5466:1;5509:5;5466:1;5523:270;5544:7;5534:8;5531:21;5523:270;;;5603:4;5599:1;5595:6;5591:17;5585:4;5582:27;5579:53;;;5612:18;;:::i;:::-;5662:7;5652:8;5648:22;5645:55;;;5682:16;;;;5645:55;5761:22;;;;5721:15;;;;5523:270;;;5527:3;5377:422;;;;;:::o;5804:806::-;5853:5;5883:8;5873:80;;-1:-1:-1;5924:1:1;5938:5;;5873:80;5972:4;5962:76;;-1:-1:-1;6009:1:1;6023:5;;5962:76;6054:4;6072:1;6067:59;;;;6140:1;6135:130;;;;6047:218;;6067:59;6097:1;6088:10;;6111:5;;;6135:130;6172:3;6162:8;6159:17;6156:43;;;6179:18;;:::i;:::-;-1:-1:-1;;6235:1:1;6221:16;;6250:5;;6047:218;;6349:2;6339:8;6336:16;6330:3;6324:4;6321:13;6317:36;6311:2;6301:8;6298:16;6293:2;6287:4;6284:12;6280:35;6277:77;6274:159;;;-1:-1:-1;6386:19:1;;;6418:5;;6274:159;6465:34;6490:8;6484:4;6465:34;:::i;:::-;6535:6;6531:1;6527:6;6523:19;6514:7;6511:32;6508:58;;;6546:18;;:::i;:::-;6584:20;;5804:806;-1:-1:-1;;;5804:806:1:o;6615:140::-;6673:5;6702:47;6743:4;6733:8;6729:19;6723:4;6702:47;:::i;6760:168::-;6833:9;;;6864;;6881:15;;;6875:22;;6861:37;6851:71;;6902:18;;:::i;6933:356::-;7135:2;7117:21;;;7154:18;;;7147:30;7213:34;7208:2;7193:18;;7186:62;7280:2;7265:18;;6933:356::o;7294:127::-;7355:10;7350:3;7346:20;7343:1;7336:31;7386:4;7383:1;7376:15;7410:4;7407:1;7400:15;7426:135;7465:3;7486:17;;;7483:43;;7506:18;;:::i;:::-;-1:-1:-1;7553:1:1;7542:13;;7426:135::o;7918:251::-;7988:6;8041:2;8029:9;8020:7;8016:23;8012:32;8009:52;;;8057:1;8054;8047:12;8009:52;8089:9;8083:16;8108:31;8133:5;8108:31;:::i;9095:306::-;9183:6;9191;9199;9252:2;9240:9;9231:7;9227:23;9223:32;9220:52;;;9268:1;9265;9258:12;9220:52;9297:9;9291:16;9281:26;;9347:2;9336:9;9332:18;9326:25;9316:35;;9391:2;9380:9;9376:18;9370:25;9360:35;;9095:306;;;;;:::o;9685:245::-;9752:6;9805:2;9793:9;9784:7;9780:23;9776:32;9773:52;;;9821:1;9818;9811:12;9773:52;9853:9;9847:16;9872:28;9894:5;9872:28;:::i;12317:125::-;12382:9;;;12403:10;;;12400:36;;;12416:18;;:::i;12802:128::-;12869:9;;;12890:11;;;12887:37;;;12904:18;;:::i;12935:980::-;13197:4;13245:3;13234:9;13230:19;13276:6;13265:9;13258:25;13302:2;13340:6;13335:2;13324:9;13320:18;13313:34;13383:3;13378:2;13367:9;13363:18;13356:31;13407:6;13442;13436:13;13473:6;13465;13458:22;13511:3;13500:9;13496:19;13489:26;;13550:2;13542:6;13538:15;13524:29;;13571:1;13581:195;13595:6;13592:1;13589:13;13581:195;;;13660:13;;-1:-1:-1;;;;;13656:39:1;13644:52;;13751:15;;;;13716:12;;;;13692:1;13610:9;13581:195;;;-1:-1:-1;;;;;;;13832:32:1;;;;13827:2;13812:18;;13805:60;-1:-1:-1;;;13896:3:1;13881:19;13874:35;13793:3;12935:980;-1:-1:-1;;;12935:980:1:o;13920:217::-;13960:1;13986;13976:132;;14030:10;14025:3;14021:20;14018:1;14011:31;14065:4;14062:1;14055:15;14093:4;14090:1;14083:15;13976:132;-1:-1:-1;14122:9:1;;13920:217::o

Swarm Source

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