ETH Price: $3,353.27 (-1.05%)

Token

Bitcoin Reserve Token (BRT)
 

Overview

Max Total Supply

1,000,000 BRT

Holders

202

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
0.000000001 BRT

Value
$0.00
0x9851d30e980441019b9c7124817c5f9be449b991
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
BitcoinReserveToken

Compiler Version
v0.7.4+commit.3f05b770

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-07-27
*/

// SPDX-License-Identifier: MIT Licence

/*
          .                                                                                         
                             .                                             .   .                    
                                         .                  .                                       
        .                 .           .       .   .     . . .     .          .         .            
   .     .                       .                  .                                               
.     . .            .         .       Bitcoin Reserve Token           .                   .     .  
                 .              .         @BTCReserveToken         .              .                 
             .                        .  .  . .     .                     .                        .
     .                                              .                                            .  
         .                    .   .                   .  .                    .                     
.     .         .                            .               ..                         .          .
                                  .             :++: .             ....                       .     
                     .   .  .               .=%@@@@@@%=.      . .                                   
                                 .     ..-#@@@@@@@@@@@@@@#-..              .                      . 
        .                           .-*@@@@@@@@@@@@@@@@@@@@@@*-.                        .           
                      .         .-*%@@@@@@@@@@@@@@@@@@@@@@@@@@@@%*-.                 .              
               .            ..*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+.         .                   
                        .:=%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%=:.                        
                  .   -#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#:                .     
      .               -######################################################-         .         .. 
             .   .         .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@. .  .                      
      .                    .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@.   ..                      
                ..         ..:=====......:====-:----:-====:......=====:..                           
                .            -%@@@%. . ..=@@@@#======%@@@@-     :@@@@%:               ..         .  
       .                 .   -%@@@%.   ..*@@@@#======%@@@@+..   :@@@@%:                             
                             -@@@@@.  .-=*@@@@#==-:=-%@@@@*=-.  :@@@@%:                             
                          .. -@@@@@: .-==#@@@@#::.:-.#@@@@*==-. :@@@@%-  ...                      . 
                             -@@@@@:.-===#@@@@%: ....%@@@@*===:.-@@@@@-                .            
                .         .  =@@@@@:.====#@@@@%..:===%@@@@#===-.-@@@@@-        ..                   
    .     .       .          =@@@@@::====#@@@@%...::-@@@@@#====.-@@@@@-     .                       
                            .=@@@@@-:====#@@@@%..--::@@@@@#====.=@@@@@= .                        .  
  .                         .=@@@@@=.====%@@@@%.:====@@@@@#===-.=@@@@@=                .            
    .                       .+@@@@@=.:===%@@@@@:....:@@@@@%===:.+@@@@@=.         .                  
                  ..        .+@@@@@+ .-==%@@@@@=-.--=@@@@@%==:. +@@@@@=.                         .  
           .                .+@@@@@+  .:=%@@@@@=--==+@@@@@%=:.  *@@@@@+.       .        .           
      .                     .*@@@@@*   ..%@@@@@+====+@@@@@%.  . *@@@@@+.           .         .      
                            .*@@@@@*    .%@@@@@+====*@@@@@%.    #@@@@@*.      .                     
   .      .        .        .:-----:    .------:....:------.    ------:.             .              
                        .*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*.  .                     
  .                  ..::#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*::..    .                
                     .#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*.       ..         .  
           .    .  .::#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#::.                   
                   *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*                   
 .         .  .    +############################################################=    .    .         
     .               . .                               .                          .                 

*/

pragma solidity ^0.7.4;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "");
    }
    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, "");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

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

abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;
    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }
    modifier onlyOwner() {
        require(isOwner(msg.sender), ""); _;
    }
    modifier authorized() {
        require(isAuthorized(msg.sender), ""); _;
    }
    function authorize(address adr) public onlyOwner {
        authorizations[adr] = true;
    }
    function unauthorize(address adr) public onlyOwner {
        authorizations[adr] = false;
    }
    function isOwner(address account) private view returns (bool) {
        return account == owner;
    }
    function isAuthorized(address adr) public view returns (bool) {
        return authorizations[adr];
    }
    function transferOwnership(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }
    event OwnershipTransferred(address owner);
}

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

interface UniRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidity(address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline) external returns (uint amountA, uint amountB, uint liquidity);
    function addLiquidityETH(address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity);
    function swapExactTokensForTokensSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
    function swapExactETHForTokensSupportingFeeOnTransferTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable;
    function swapExactTokensForETHSupportingFeeOnTransferTokens(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external;
}

interface IWBTCDistributor {
    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external;
    function setShare(address shareholder, uint256 amount) external;
    function deposit() external payable;
    function process(uint256 gas) external;
}

contract WBTCDistributor is IWBTCDistributor {
    using SafeMath for uint256;
    address _token;
    struct Share {
        uint256 amount;
        uint256 totalExcluded;
        uint256 totalRealised;
    }
    IERC20 RWRD = IERC20(0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599); // WBTC
    address WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; // WETH
    UniRouter router;

    address[] shareholders;
    mapping (address => uint256) shareholderIndexes;
    mapping (address => uint256) shareholderClaims;
    mapping (address => Share) public shares;

    uint256 public totalShares;
    uint256 public totalDividends;
    uint256 public totalDistributed;
    uint256 public dividendsPerShare;
    uint256 public dividendsPerShareAccuracyFactor = 10 ** 36;
    uint256 public minPeriod = 45 * 60;
    uint256 public minDistribution = 1 * (10 ** 18);
    uint256 currentIndex;

    bool initialized;
    modifier initialization() {
        require(!initialized);
        _;
        initialized = true;
    }

    modifier onlyToken() {
        require(msg.sender == _token); _;
    }

    constructor (address _router) {
        router = _router != address(0)
        ? UniRouter(_router)
        : UniRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _token = msg.sender;
    }

    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external override onlyToken {
        minPeriod = _minPeriod;
        minDistribution = _minDistribution;
    }

    function setShare(address shareholder, uint256 amount) external override onlyToken {
        if(shares[shareholder].amount > 0){
            distributeDividend(shareholder);
        }

        if(amount > 0 && shares[shareholder].amount == 0){
            addShareholder(shareholder);
        }else if(amount == 0 && shares[shareholder].amount > 0){
            removeShareholder(shareholder);
        }

        totalShares = totalShares.sub(shares[shareholder].amount).add(amount);
        shares[shareholder].amount = amount;
        shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
    }
 
    function deposit() external payable override onlyToken {
        uint256 balanceBefore = RWRD.balanceOf(address(this));

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

        router.swapExactETHForTokensSupportingFeeOnTransferTokens{value: msg.value}(0, path, address(this), block.timestamp);
        uint256 amount = RWRD.balanceOf(address(this)).sub(balanceBefore);
        totalDividends = totalDividends.add(amount);
        dividendsPerShare = dividendsPerShare.add(dividendsPerShareAccuracyFactor.mul(amount).div(totalShares));
    }

    function process(uint256 gas) external override onlyToken {
        uint256 shareholderCount = shareholders.length;

        if(shareholderCount == 0) { return; }

        uint256 gasUsed = 0;
        uint256 gasLeft = gasleft();
        uint256 iterations = 0;

        while(gasUsed < gas && iterations < shareholderCount) {
            if(currentIndex >= shareholderCount){
                currentIndex = 0;
            }

            if(shouldDistribute(shareholders[currentIndex])){
                distributeDividend(shareholders[currentIndex]);
            }

            gasUsed = gasUsed.add(gasLeft.sub(gasleft()));
            gasLeft = gasleft();
            currentIndex++;
            iterations++;
        }
    }

    function shouldDistribute(address shareholder) internal view returns (bool) {
        return shareholderClaims[shareholder] + minPeriod < block.timestamp && getUnpaidEarnings(shareholder) > minDistribution;
    }

    function distributeDividend(address shareholder) internal {
        if(shares[shareholder].amount == 0){ return; }

        uint256 amount = getUnpaidEarnings(shareholder);
        if(amount > 0){
            totalDistributed = totalDistributed.add(amount);
            RWRD.transfer(shareholder, amount);
            shareholderClaims[shareholder] = block.timestamp;
            shares[shareholder].totalRealised = shares[shareholder].totalRealised.add(amount);
            shares[shareholder].totalExcluded = getCumulativeDividends(shares[shareholder].amount);
        }
    }

    function claimDividend() external {
        distributeDividend(msg.sender);
    }

    function getUnpaidEarnings(address shareholder) public view returns (uint256) {
        if(shares[shareholder].amount == 0){ return 0; }

        uint256 shareholderTotalDividends = getCumulativeDividends(shares[shareholder].amount);
        uint256 shareholderTotalExcluded = shares[shareholder].totalExcluded;

        if(shareholderTotalDividends <= shareholderTotalExcluded){ return 0; }

        return shareholderTotalDividends.sub(shareholderTotalExcluded);
    }

    function getCumulativeDividends(uint256 share) internal view returns (uint256) {
        return share.mul(dividendsPerShare).div(dividendsPerShareAccuracyFactor);
    }

    function addShareholder(address shareholder) internal {
        shareholderIndexes[shareholder] = shareholders.length;
        shareholders.push(shareholder);
    }

    function removeShareholder(address shareholder) internal {
        shareholders[shareholderIndexes[shareholder]] = shareholders[shareholders.length-1];
        shareholderIndexes[shareholders[shareholders.length-1]] = shareholderIndexes[shareholder];
        shareholders.pop();
    }
}

contract BitcoinReserveToken is IERC20, Auth {
    using SafeMath for uint256;

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

    string constant _name = "Bitcoin Reserve Token";
    string constant _symbol = "BRT";
    uint8 constant _decimals = 9;

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

    uint256 public _maxTxAmount = _totalSupply.mul(2).div(1000);
    uint256 public _maxWalletToken = _totalSupply.mul(2).div(100);

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

    bool public blacklistMode = true;
    mapping (address => bool) public isBlacklisted;

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

    uint256 public liquidityFee = 5;
    uint256 public wbtcFee = 5;
    uint256 public marketingFee = 10;
    uint256 private totalFee = liquidityFee + wbtcFee + marketingFee;
    uint256 public feeDenominator = 100;

    uint256 public sellMultiplier = 200;

    address private autoLiquidityReceiver;
    address private marketingWallet;

    UniRouter public router;
    address public pair;

    bool public tradingOpen = false;

    WBTCDistributor public distributor;
    uint256 distributorGas = 500000;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 50 / 10000;
    bool inSwap;

    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor (address _marketingWallet) Auth(msg.sender) {
        router = UniRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        pair = IUniswapV2Factory(router.factory()).createPair(WETH, address(this));
        _allowances[address(this)][address(router)] = uint256(-1);

        distributor = new WBTCDistributor(address(router));

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

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

        autoLiquidityReceiver = msg.sender;
        marketingWallet = _marketingWallet;

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

    receive() external payable { }

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

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

    function approveMax(address spender) external returns (bool) {
        return approve(spender, uint256(-1));
    }

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

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != uint256(-1)){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "");
        }
 
        return _transferFrom(sender, recipient, amount);
    }

    function setMaxWalletPercent_base1000(uint256 maxWallPercent_base1000) external onlyOwner() {
        _maxWalletToken = (_totalSupply * maxWallPercent_base1000 ) / 1000;
    }
    function setMaxTxPercent_base1000(uint256 maxTXPercentage_base1000) external onlyOwner() {
        _maxTxAmount = (_totalSupply * maxTXPercentage_base1000 ) / 1000;
    }

    function setTxLimit(uint256 amount) external authorized {
        _maxTxAmount = amount;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }
 
        if(!authorizations[sender] && !authorizations[recipient]){
            require(tradingOpen,"");
        }

        if(blacklistMode){
            require(!isBlacklisted[sender] && !isBlacklisted[recipient],"");
        }

        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != autoLiquidityReceiver && recipient != marketingWallet){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"");}
       
        checkTxLimit(sender, amount);

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

        _balances[sender] = _balances[sender].sub(amount, "");

        uint256 amountReceived = (!shouldTakeFee(sender) || !shouldTakeFee(recipient)) ? amount : takeFee(sender, amount,(recipient == pair));
        _balances[recipient] = _balances[recipient].add(amountReceived);
      
        if(!isDividendExempt[sender]) {
            try distributor.setShare(sender, _balances[sender]) {} catch {}
        }

        if(!isDividendExempt[recipient]) {
            try distributor.setShare(recipient, _balances[recipient]) {} catch {}
        }
 
        try distributor.process(distributorGas) {} catch {}

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

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

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

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

    function takeFee(address sender, uint256 amount, bool isSell) internal returns (uint256) {

        uint256 multiplier = isSell ? sellMultiplier : 100;
        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);

        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);

        return amount.sub(feeAmount);
    }

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

    function clearStuckBalance_sender(uint256 amountPercentage) external authorized {
        uint256 amountETH = address(this).balance;
        payable(msg.sender).transfer(amountETH * amountPercentage / 100);
    }

    function setSellMultiplier(uint256 _multiplier) external onlyOwner{
        sellMultiplier = _multiplier;
    }

    function tradingStatus(bool _bool) public onlyOwner {
        tradingOpen = _bool;
    }
 
    function swapBack() internal swapping {
        uint256 amountToLiquify = swapThreshold.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

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

        uint256 balanceBefore = address(this).balance;

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

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

        uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));

        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHReward = amountETH.mul(wbtcFee).div(totalETHFee);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalETHFee);

        try distributor.deposit{value: amountETHReward}() {} catch {}

        (bool tmpSuccess,) = payable(marketingWallet).call{value: amountETHMarketing, gas: 30000}("");
        tmpSuccess = false;

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

    function setIsDividendExempt(address holder, bool exempt) external authorized {
        require(holder != address(this) && holder != pair);
        isDividendExempt[holder] = exempt;
        if(exempt){
            distributor.setShare(holder, 0);
        } else{
            distributor.setShare(holder, _balances[holder]);
        }
    }

    function enable_blacklist(bool _status) public onlyOwner {
        blacklistMode = _status;
    }

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

    function setIsFeeExempt(address holder, bool exempt) external authorized {
        isFeeExempt[holder] = exempt;
    }

    function setIsTxLimitExempt(address holder, bool exempt) external authorized {
        isTxLimitExempt[holder] = exempt;
    }

    function setFees(uint256 _liquidityFee, uint256 _wbtcFee, uint256 _marketingFee, uint256 _feeDenominator) external authorized {
        liquidityFee = _liquidityFee;
        wbtcFee = _wbtcFee;
        marketingFee = _marketingFee;
        totalFee = _liquidityFee.add(_wbtcFee).add(_marketingFee);
        feeDenominator = _feeDenominator;
    }

    function setFeeReceivers(address _autoLiquidityReceiver, address _marketingWallet ) external authorized {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingWallet = _marketingWallet;
    }

    function setSwapBackSettings(bool _enabled, uint256 _amount) external authorized {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function setDistributionCriteria(uint256 _minPeriod, uint256 _minDistribution) external authorized {
        distributor.setDistributionCriteria(_minPeriod, _minDistribution);
    }

    function setDistributorSettings(uint256 gas) external authorized {
        require(gas < 750000);
        distributorGas = gas;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function multiTransfer(address from, address[] calldata addresses, uint256[] calldata tokens) external onlyOwner {
        require(from==msg.sender);
        require(addresses.length < 501,"");
        require(addresses.length == tokens.length,"");

        uint256 airdropAmount = 0;

        for(uint i=0; i < addresses.length; i++){
            airdropAmount = airdropAmount + tokens[i];
        }

        require(balanceOf(from) >= airdropAmount, "");

        for(uint i=0; i < addresses.length; i++){
            _basicTransfer(from,addresses[i],tokens[i]);
            if(!isDividendExempt[addresses[i]]) {
                try distributor.setShare(addresses[i], _balances[addresses[i]]) {} catch {}
            }
        }

        if(!isDividendExempt[from]) {
            try distributor.setShare(from, _balances[from]) {} catch {}
        }
    }

    function rescueERC20(address tokenAddress, uint256 amount) external onlyOwner {
        IERC20(tokenAddress).transfer(owner, amount);
    }

    function rescueETH(uint256 weiAmount) external onlyOwner {
        payable(owner).transfer(weiAmount);
    }

    event AutoLiquify(uint256 amountETH, uint256 amountBRT);
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"_marketingWallet","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBRT","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"authorize","outputs":[],"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":"blacklistMode","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"clearStuckBalance_sender","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"distributor","outputs":[{"internalType":"contract WBTCDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_status","type":"bool"}],"name":"enable_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"isAuthorized","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"bool","name":"status","type":"bool"}],"name":"manage_blacklist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"multiTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"weiAmount","type":"uint256"}],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract UniRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minPeriod","type":"uint256"},{"internalType":"uint256","name":"_minDistribution","type":"uint256"}],"name":"setDistributionCriteria","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"gas","type":"uint256"}],"name":"setDistributorSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingWallet","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_wbtcFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsDividendExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsTxLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTXPercentage_base1000","type":"uint256"}],"name":"setMaxTxPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base1000","type":"uint256"}],"name":"setMaxWalletPercent_base1000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_multiplier","type":"uint256"}],"name":"setSellMultiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"setTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_bool","type":"bool"}],"name":"tradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"adr","type":"address"}],"name":"unauthorize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"wbtcFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526002805473c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b03199182161782556003805461dead90831617905560048054909116905566038d7ea4c68000600581905562000083916103e8916200006f91620003ed602090811b62001b1e17901c565b6200044360201b62001b671790919060201c565b600655620000a960646200006f6002600554620003ed60201b62001b1e1790919060201c565b600755600a8054600160ff19918216811783556005600f819055601081905560119390935560146012819055606460135560c890556018805460ff60a01b191690556207a120601a55601b8054909216179055546127109060320204601c553480156200011557600080fd5b5060405162003b4038038062003b40833981810160405260208110156200013b57600080fd5b5051600080546001600160a01b0319908116339081178355825260016020818152604093849020805460ff191690921790915560178054909216737a250d5630b4cf539739df2c5dacb4c659f2488d1791829055825163c45a015560e01b815292516001600160a01b03929092169263c45a01559260048083019392829003018186803b158015620001cc57600080fd5b505afa158015620001e1573d6000803e3d6000fd5b505050506040513d6020811015620001f857600080fd5b5051600254604080516364e329cb60e11b81526001600160a01b0392831660048201523060248201529051919092169163c9c653969160448083019260209291908290030181600087803b1580156200025057600080fd5b505af115801562000265573d6000803e3d6000fd5b505050506040513d60208110156200027c57600080fd5b5051601880546001600160a01b0319166001600160a01b0392831617905530600090815260096020908152604080832060178054861685529252918290206000199055549051911690620002d0906200050e565b6001600160a01b03909116815260405190819003602001906000f080158015620002fe573d6000803e3d6000fd5b50601980546001600160a01b03199081166001600160a01b0393841617909155336000818152600c60209081526040808320805460ff199081166001908117909255600d8452828520805482168317905560185488168552600e84528285208054821683179055308552828520805482168317905560035488168552828520805490911690911790558383526015805486168517905560168054909516958716959095179093556005546008845284822081905584519081529351919390927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3506200051c565b600082620003fe575060006200043d565b828202828482816200040c57fe5b04146200043a576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b90505b92915050565b60006200043a8383604051806020016040528060008152506200046760201b60201c565b60008183620004f75760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015620004bb578181015183820152602001620004a1565b50505050905090810190601f168015620004e95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385816200050457fe5b0495945050505050565b610e1d8062002d2383390190565b6127f7806200052c6000396000f3fe6080604052600436106102cd5760003560e01c8063896648c111610175578063bd9ab537116100dc578063f708a64f11610095578063fe575a871161006f578063fe575a8714610bb0578063fe9fbb8014610be3578063fed0d2a114610c16578063ffb54a9914610c2b576102d4565b8063f708a64f14610b25578063f84ba65d14610b60578063f887ea4014610b9b576102d4565b8063bd9ab53714610a13578063bfe1092814610a3d578063dd62ed3e14610a52578063df20fd4914610a8d578063f0b37c0414610abf578063f2fde38b14610af2576102d4565b80639e252f001161012e5780639e252f0014610903578063a4b45c001461092d578063a7bc1de014610968578063a8aa1b3114610992578063a9059cbb146109a7578063b6a5d7de146109e0576102d4565b8063896648c1146107e25780638cd4426d146107f75780638e2eee841461083057806395d89b41146108af57806398118cb4146108c45780639d1944f5146108d9576102d4565b806344a33fd2116102345780636ddd1713116101ed57806378109e54116101c757806378109e54146107725780637d1db4a51461078757806388ea420d1461079c578063893d20e8146107b1576102d4565b80636ddd1713146106ee5780636fcba3771461070357806370a082311461073f576102d4565b806344a33fd2146105eb578063571ac8b0146106155780635c85974f146106485780635e562f3b14610672578063658d4b7f1461069e5780636b67c4df146106d9576102d4565b806318160ddd1161028657806318160ddd146104445780631ca0a28d1461045957806323b872dd146105385780632b112e491461057b5780632d48e89614610590578063313ce567146105c0576102d4565b80630445b667146102d957806306fdde031461030057806309302dc61461038a578063095ea7b3146103b65780630d29598014610403578063180b0d7e1461042f576102d4565b366102d457005b600080fd5b3480156102e557600080fd5b506102ee610c40565b60408051918252519081900360200190f35b34801561030c57600080fd5b50610315610c46565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561034f578181015183820152602001610337565b50505050905090810190601f16801561037c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561039657600080fd5b506103b4600480360360208110156103ad57600080fd5b5035610c75565b005b3480156103c257600080fd5b506103ef600480360360408110156103d957600080fd5b506001600160a01b038135169060200135610cbf565b604080519115158252519081900360200190f35b34801561040f57600080fd5b506103b46004803603602081101561042657600080fd5b50351515610d26565b34801561043b57600080fd5b506102ee610d78565b34801561045057600080fd5b506102ee610d7e565b34801561046557600080fd5b506103b46004803603606081101561047c57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156104a757600080fd5b8201836020820111156104b957600080fd5b803590602001918460208302840111640100000000831117156104db57600080fd5b9193909290916020810190356401000000008111156104f957600080fd5b82018360208201111561050b57600080fd5b8035906020019184602083028401116401000000008311171561052d57600080fd5b509092509050610d84565b34801561054457600080fd5b506103ef6004803603606081101561055b57600080fd5b506001600160a01b03813581169160208101359091169060400135611078565b34801561058757600080fd5b506102ee611117565b34801561059c57600080fd5b506103b4600480360360408110156105b357600080fd5b5080359060200135611160565b3480156105cc57600080fd5b506105d56111fc565b6040805160ff9092168252519081900360200190f35b3480156105f757600080fd5b506103b46004803603602081101561060e57600080fd5b5035611201565b34801561062157600080fd5b506103ef6004803603602081101561063857600080fd5b50356001600160a01b031661126d565b34801561065457600080fd5b506103b46004803603602081101561066b57600080fd5b503561127b565b34801561067e57600080fd5b506103b46004803603602081101561069557600080fd5b503515156112b4565b3480156106aa57600080fd5b506103b4600480360360408110156106c157600080fd5b506001600160a01b03813516906020013515156112fb565b3480156106e557600080fd5b506102ee61135a565b3480156106fa57600080fd5b506103ef611360565b34801561070f57600080fd5b506103b46004803603608081101561072657600080fd5b5080359060208101359060408101359060600135611369565b34801561074b57600080fd5b506102ee6004803603602081101561076257600080fd5b50356001600160a01b03166113cb565b34801561077e57600080fd5b506102ee6113e6565b34801561079357600080fd5b506102ee6113ec565b3480156107a857600080fd5b506102ee6113f2565b3480156107bd57600080fd5b506107c66113f8565b604080516001600160a01b039092168252519081900360200190f35b3480156107ee57600080fd5b506103ef611407565b34801561080357600080fd5b506103b46004803603604081101561081a57600080fd5b506001600160a01b038135169060200135611410565b34801561083c57600080fd5b506103b46004803603604081101561085357600080fd5b81019060208101813564010000000081111561086e57600080fd5b82018360208201111561088057600080fd5b803590602001918460208302840111640100000000831117156108a257600080fd5b91935091503515156114cb565b3480156108bb57600080fd5b50610315611554565b3480156108d057600080fd5b506102ee611571565b3480156108e557600080fd5b506103b4600480360360208110156108fc57600080fd5b5035611577565b34801561090f57600080fd5b506103b46004803603602081101561092657600080fd5b50356115bf565b34801561093957600080fd5b506103b46004803603604081101561095057600080fd5b506001600160a01b0381358116916020013516611630565b34801561097457600080fd5b506103b46004803603602081101561098b57600080fd5b5035611692565b34801561099e57600080fd5b506107c66116cb565b3480156109b357600080fd5b506103ef600480360360408110156109ca57600080fd5b506001600160a01b0381351690602001356116da565b3480156109ec57600080fd5b506103b460048036036020811015610a0357600080fd5b50356001600160a01b03166116e7565b348015610a1f57600080fd5b506103b460048036036020811015610a3657600080fd5b5035611742565b348015610a4957600080fd5b506107c661178c565b348015610a5e57600080fd5b506102ee60048036036040811015610a7557600080fd5b506001600160a01b038135811691602001351661179b565b348015610a9957600080fd5b506103b460048036036040811015610ab057600080fd5b508035151590602001356117c6565b348015610acb57600080fd5b506103b460048036036020811015610ae257600080fd5b50356001600160a01b0316611811565b348015610afe57600080fd5b506103b460048036036020811015610b1557600080fd5b50356001600160a01b0316611866565b348015610b3157600080fd5b506103b460048036036040811015610b4857600080fd5b506001600160a01b0381351690602001351515611908565b348015610b6c57600080fd5b506103b460048036036040811015610b8357600080fd5b506001600160a01b0381351690602001351515611a67565b348015610ba757600080fd5b506107c6611ac6565b348015610bbc57600080fd5b506103ef60048036036020811015610bd357600080fd5b50356001600160a01b0316611ad5565b348015610bef57600080fd5b506103ef60048036036020811015610c0657600080fd5b50356001600160a01b0316611aea565b348015610c2257600080fd5b506102ee611b08565b348015610c3757600080fd5b506103ef611b0e565b601c5481565b6040805180820190915260158152742134ba31b7b4b7102932b9b2b93b32902a37b5b2b760591b602082015290565b610c7e33611b83565b610ca9576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6103e8816005540281610cb857fe5b0460075550565b3360008181526009602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b610d2f33611b83565b610d5a576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b60188054911515600160a01b0260ff60a01b19909216919091179055565b60135481565b60055490565b610d8d33611b83565b610db8576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6001600160a01b0385163314610dcd57600080fd5b6101f58310610dfd576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b828114610e2b576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6000805b84811015610e5957838382818110610e4357fe5b6020029190910135929092019150600101610e2f565b5080610e64876113cb565b1015610e91576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b60005b84811015610fde57610ed487878784818110610eac57fe5b905060200201356001600160a01b0316868685818110610ec857fe5b90506020020135611b97565b50600e6000878784818110610ee557fe5b602090810292909201356001600160a01b03168352508101919091526040016000205460ff16610fd6576019546001600160a01b03166314b6ca96878784818110610f2c57fe5b905060200201356001600160a01b0316600860008a8a87818110610f4c57fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020546040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015610fc357600080fd5b505af1925050508015610fd4575060015b505b600101610e94565b506001600160a01b0386166000908152600e602052604090205460ff16611070576019546001600160a01b03878116600081815260086020526040808220548151630a5b654b60e11b8152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b15801561105d57600080fd5b505af192505050801561106e575060015b505b505050505050565b6001600160a01b03831660009081526009602090815260408083203384529091528120546000191461110257604080516020808201835260008083526001600160a01b03881681526009825283812033825290915291909120546110dd918490611c57565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b61110d848484611cee565b90505b9392505050565b60045460009061115b90611133906001600160a01b03166113cb565b6003546111559061114c906001600160a01b03166113cb565b600554906121ac565b906121ac565b905090565b61116933611aea565b611194576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b601954604080516316a4744b60e11b8152600481018590526024810184905290516001600160a01b0390921691632d48e8969160448082019260009290919082900301818387803b1580156111e857600080fd5b505af1158015611070573d6000803e3d6000fd5b600990565b61120a33611aea565b611235576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6040514790339060648484020480156108fc02916000818181858888f19350505050158015611268573d6000803e3d6000fd5b505050565b6000610d2082600019610cbf565b61128433611aea565b6112af576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b600655565b6112bd33611b83565b6112e8576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b600a805460ff1916911515919091179055565b61130433611aea565b61132f576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b60115481565b601b5460ff1681565b61137233611aea565b61139d576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b600f849055601083905560118290556113c0826113ba86866121c8565b906121c8565b601255601355505050565b6001600160a01b031660009081526008602052604090205490565b60075481565b60065481565b60105481565b6000546001600160a01b031690565b600a5460ff1681565b61141933611b83565b611444576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b600080546040805163a9059cbb60e01b81526001600160a01b0392831660048201526024810185905290519185169263a9059cbb926044808401936020939083900390910190829087803b15801561149b57600080fd5b505af11580156114af573d6000803e3d6000fd5b505050506040513d60208110156114c557600080fd5b50505050565b6114d433611b83565b6114ff576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b60005b828110156114c55781600b600086868581811061151b57fe5b602090810292909201356001600160a01b0316835250810191909152604001600020805460ff1916911515919091179055600101611502565b60408051808201909152600381526210949560ea1b602082015290565b600f5481565b61158033611aea565b6115ab576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b620b71b081106115ba57600080fd5b601a55565b6115c833611b83565b6115f3576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b600080546040516001600160a01b039091169183156108fc02918491818181858888f1935050505015801561162c573d6000803e3d6000fd5b5050565b61163933611aea565b611664576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b601580546001600160a01b039384166001600160a01b03199182161790915560168054929093169116179055565b61169b33611b83565b6116c6576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b601455565b6018546001600160a01b031681565b6000611110338484611cee565b6116f033611b83565b61171b576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b61174b33611b83565b611776576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6103e881600554028161178557fe5b0460065550565b6019546001600160a01b031681565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b6117cf33611aea565b6117fa576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b601b805460ff191692151592909217909155601c55565b61181a33611b83565b611845576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6001600160a01b03166000908152600160205260409020805460ff19169055565b61186f33611b83565b61189a576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff1916909217909155825191825291517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163929181900390910190a150565b61191133611aea565b61193c576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6001600160a01b038216301480159061196357506018546001600160a01b03838116911614155b61196c57600080fd5b6001600160a01b0382166000908152600e60205260409020805460ff19168215801591909117909155611a095760195460408051630a5b654b60e11b81526001600160a01b03858116600483015260006024830181905292519316926314b6ca969260448084019391929182900301818387803b1580156119ec57600080fd5b505af1158015611a00573d6000803e3d6000fd5b5050505061162c565b6019546001600160a01b03838116600081815260086020526040808220548151630a5b654b60e11b8152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b1580156111e857600080fd5b611a7033611aea565b611a9b576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6017546001600160a01b031681565b600b6020526000908152604090205460ff1681565b6001600160a01b031660009081526001602052604090205460ff1690565b60145481565b601854600160a01b900460ff1681565b600082611b2d57506000610d20565b82820282848281611b3a57fe5b0414611110576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b60006111108383604051806020016040528060008152506121fc565b6000546001600160a01b0390811691161490565b604080516020808201835260008083526001600160a01b0387168152600890915291822054611bc7918490611c57565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611bf690836121c8565b6001600160a01b0380851660008181526008602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060019392505050565b60008184841115611ce65760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cab578181015183820152602001611c93565b50505050905090810190601f168015611cd85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b601d5460009060ff1615611d0e57611d07848484611b97565b9050611110565b6001600160a01b03841660009081526001602052604090205460ff16158015611d5057506001600160a01b03831660009081526001602052604090205460ff16155b15611d8d57601854600160a01b900460ff16611d8d576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b600a5460ff1615611e05576001600160a01b0384166000908152600b602052604090205460ff16158015611dda57506001600160a01b0383166000908152600b602052604090205460ff16155b611e05576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6001600160a01b03841660009081526001602052604090205460ff16158015611e3757506001600160a01b0383163014155b8015611e5157506003546001600160a01b03848116911614155b8015611e6b57506018546001600160a01b03848116911614155b8015611e8557506015546001600160a01b03848116911614155b8015611e9f57506016546001600160a01b03848116911614155b15611ee6576000611eaf846113cb565b90506007548382011115611ee4576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b505b611ef08483612261565b611ef86122b5565b15611f0557611f05612304565b604080516020808201835260008083526001600160a01b038816815260089091529190912054611f36918490611c57565b6001600160a01b038516600090815260086020526040812091909155611f5b856126dd565b1580611f6d5750611f6b846126dd565b155b611f9457601854611f8f90869085906001600160a01b038881169116146126fc565b611f96565b825b6001600160a01b038516600090815260086020526040902054909150611fbc90826121c8565b6001600160a01b038086166000908152600860209081526040808320949094559188168152600e909152205460ff16612060576019546001600160a01b03868116600081815260086020526040808220548151630a5b654b60e11b8152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b15801561204d57600080fd5b505af192505050801561205e575060015b505b6001600160a01b0384166000908152600e602052604090205460ff166120f1576019546001600160a01b03858116600081815260086020526040808220548151630a5b654b60e11b8152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b1580156120de57600080fd5b505af19250505080156120ef575060015b505b601954601a54604080516001624d3b8760e01b031981526004810192909252516001600160a01b039092169163ffb2c4799160248082019260009290919082900301818387803b15801561214457600080fd5b505af1925050508015612155575060015b50836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3506001949350505050565b6000611110838360405180602001604052806000815250611c57565b600082820183811015611110576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6000818361224b5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611cab578181015183820152602001611c93565b50600083858161225757fe5b0495945050505050565b6006548111158061228a57506001600160a01b0382166000908152600d602052604090205460ff165b61162c576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6018546000906001600160a01b031633148015906122d65750601d5460ff16155b80156122e45750601b5460ff165b801561115b575050601c5430600090815260086020526040902054101590565b601d805460ff19166001179055601254600f54601c54600092612337926002926123319291839190611b1e565b90611b67565b9050600061235082601c546121ac90919063ffffffff16565b604080516002808252606080830184529394509091602083019080368337019050509050308160008151811061238257fe5b6001600160a01b0392831660209182029290920101526002548251911690829060019081106123ad57fe5b6001600160a01b0392831660209182029290920181019190915260175460405163791ac94760e01b8152600481018681526000602483018190523060648401819052426084850181905260a060448601908152895160a487015289514799979097169763791ac947978c9795968c9690939260c49091019187820191028083838b5b8381101561244757818101518382015260200161242f565b505050509050019650505050505050600060405180830381600087803b15801561247057600080fd5b505af1158015612484573d6000803e3d6000fd5b50505050600061249d82476121ac90919063ffffffff16565b905060006124c36124ba6002600f54611b6790919063ffffffff16565b601254906121ac565b905060006124e5600261233184612331600f5488611b1e90919063ffffffff16565b905060006125028361233160105487611b1e90919063ffffffff16565b9050600061251f8461233160115488611b1e90919063ffffffff16565b9050601960009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561257157600080fd5b505af193505050508015612583575060015b506016546040516000916001600160a01b03169061753090849084818181858888f193505050503d80600081146125d6576040519150601f19603f3d011682016040523d82523d6000602084013e6125db565b606091505b5060009250508a1590506126c7576017546015546040805163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f305d71991879160c48082019260609290919082900301818588803b15801561265e57600080fd5b505af1158015612672573d6000803e3d6000fd5b50505050506040513d606081101561268957600080fd5b505060408051858152602081018c905281517f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506929181900390910190a15b5050601d805460ff191690555050505050505050565b6001600160a01b03166000908152600c602052604090205460ff161590565b6000808261270b57606461270f565b6014545b9050600061273b601354606402612331846127356012548a611b1e90919063ffffffff16565b90611b1e565b3060009081526008602052604090205490915061275890826121c8565b30600081815260086020908152604091829020939093558051848152905191926001600160a01b038a16927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a36127b785826121ac565b969550505050505056fea264697066735822122067a9929d29764a91c54ac6daa4d9fd97c5375ec21c1e0197d4690a1e7c9ee01364736f6c634300070400336080604052600180546001600160a01b0319908116732260fac5e5542a773aa44fbcfedf7c193bc2c599179091556002805490911673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21790556ec097ce7bc90715b34b9f1000000000600c55610a8c600d55670de0b6b3a7640000600e5534801561007d57600080fd5b50604051610e1d380380610e1d833981810160405260208110156100a057600080fd5b50516001600160a01b0381166100ca57737a250d5630b4cf539739df2c5dacb4c659f2488d6100cc565b805b600380546001600160a01b03929092166001600160a01b0319928316179055600080549091163317905550610d17806101066000396000f3fe6080604052600436106100dd5760003560e01c8063ce7c2ac21161007f578063efca2eed11610059578063efca2eed14610254578063f0fc6bca14610269578063ffb2c4791461027e578063ffd49c84146102a8576100dd565b8063ce7c2ac2146101e6578063d0e30db014610237578063e2d2e2191461023f576100dd565b80632d48e896116100bb5780632d48e896146101775780633a98ef39146101a75780634fab0ae8146101bc578063997664d7146101d1576100dd565b806311ce023d146100e257806314b6ca961461010957806328fd319814610144575b600080fd5b3480156100ee57600080fd5b506100f76102bd565b60408051918252519081900360200190f35b34801561011557600080fd5b506101426004803603604081101561012c57600080fd5b506001600160a01b0381351690602001356102c3565b005b34801561015057600080fd5b506100f76004803603602081101561016757600080fd5b50356001600160a01b03166103e8565b34801561018357600080fd5b506101426004803603604081101561019a57600080fd5b5080359060200135610474565b3480156101b357600080fd5b506100f7610496565b3480156101c857600080fd5b506100f761049c565b3480156101dd57600080fd5b506100f76104a2565b3480156101f257600080fd5b506102196004803603602081101561020957600080fd5b50356001600160a01b03166104a8565b60408051938452602084019290925282820152519081900360600190f35b6101426104c9565b34801561024b57600080fd5b506100f7610759565b34801561026057600080fd5b506100f761075f565b34801561027557600080fd5b50610142610765565b34801561028a57600080fd5b50610142600480360360208110156102a157600080fd5b5035610770565b3480156102b457600080fd5b506100f7610852565b600c5481565b6000546001600160a01b031633146102da57600080fd5b6001600160a01b038216600090815260076020526040902054156103015761030182610858565b60008111801561032757506001600160a01b038216600090815260076020526040902054155b1561033a5761033582610980565b61036d565b8015801561035f57506001600160a01b03821660009081526007602052604090205415155b1561036d5761036d826109e1565b6001600160a01b03821660009081526007602052604090205460085461039e91839161039891610ace565b90610af3565b6008556001600160a01b03821660009081526007602052604090208190556103c581610b27565b6001600160a01b0390921660009081526007602052604090206001019190915550565b6001600160a01b03811660009081526007602052604081205461040d5750600061046f565b6001600160a01b03821660009081526007602052604081205461042f90610b27565b6001600160a01b0384166000908152600760205260409020600101549091508082116104605760009250505061046f565b61046a8282610ace565b925050505b919050565b6000546001600160a01b0316331461048b57600080fd5b600d91909155600e55565b60085481565b600e5481565b60095481565b60076020526000908152604090208054600182015460029092015490919083565b6000546001600160a01b031633146104e057600080fd5b600154604080516370a0823160e01b815230600482015290516000926001600160a01b0316916370a08231916024808301926020929190829003018186803b15801561052b57600080fd5b505afa15801561053f573d6000803e3d6000fd5b505050506040513d602081101561055557600080fd5b5051604080516002808252606080830184529394509091602083019080368337505060025482519293506001600160a01b03169183915060009061059557fe5b6001600160a01b03928316602091820292909201015260018054835192169183919081106105bf57fe5b6001600160a01b0392831660209182029290920181019190915260035460405163b6f9de9560e01b815260006004820181815230604484018190524260648501819052608060248601908152895160848701528951969098169763b6f9de9597349795968b969495939460a49091019187810191028083838b5b83811015610651578181015183820152602001610639565b50505050905001955050505050506000604051808303818588803b15801561067857600080fd5b505af115801561068c573d6000803e3d6000fd5b5050600154604080516370a0823160e01b815230600482015290516000955061071794508793506001600160a01b03909216916370a0823191602480820192602092909190829003018186803b1580156106e557600080fd5b505afa1580156106f9573d6000803e3d6000fd5b505050506040513d602081101561070f57600080fd5b505190610ace565b6009549091506107279082610af3565b600955600854600c5461075191610748916107429085610b44565b90610b8d565b600b5490610af3565b600b55505050565b600b5481565b600a5481565b61076e33610858565b565b6000546001600160a01b0316331461078757600080fd5b60045480610795575061084f565b6000805a905060005b84831080156107ac57508381105b1561084a5783600f54106107c0576000600f555b6107ec6004600f54815481106107d257fe5b6000918252602090912001546001600160a01b0316610ba9565b1561081d5761081d6004600f548154811061080357fe5b6000918252602090912001546001600160a01b0316610858565b61083261082b5a8490610ace565b8490610af3565b92505a600f805460019081019091559092500161079e565b505050505b50565b600d5481565b6001600160a01b03811660009081526007602052604090205461087a5761084f565b6000610885826103e8565b9050801561097c57600a5461089a9082610af3565b600a556001546040805163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b1580156108f357600080fd5b505af1158015610907573d6000803e3d6000fd5b505050506040513d602081101561091d57600080fd5b50506001600160a01b038216600090815260066020908152604080832042905560079091529020600201546109529082610af3565b6001600160a01b03831660009081526007602052604090206002810191909155546103c590610b27565b5050565b600480546001600160a01b039092166000818152600560205260408120849055600184018355919091527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b90910180546001600160a01b0319169091179055565b6004805460001981019081106109f357fe5b60009182526020808320909101546001600160a01b0384811684526005909252604090922054600480549290931692918110610a2b57fe5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559183168152600591829052604081205460048054919392916000198101908110610a7957fe5b60009182526020808320909101546001600160a01b031683528201929092526040019020556004805480610aa957fe5b600082815260209020810160001990810180546001600160a01b031916905501905550565b6000610aea838360405180602001604052806000815250610be5565b90505b92915050565b600082820183811015610aea576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6000610aed600c54610742600b5485610b4490919063ffffffff16565b600082610b5357506000610aed565b82820282848281610b6057fe5b0414610aea576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6000610aea838360405180602001604052806000815250610c7c565b600d546001600160a01b0382166000908152600660205260408120549091429101108015610aed5750600e54610bde836103e8565b1192915050565b60008184841115610c745760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610c39578181015183820152602001610c21565b50505050905090810190601f168015610c665780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183610ccb5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315610c39578181015183820152602001610c21565b506000838581610cd757fe5b049594505050505056fea26469706673582212202813fd99ca1a858f8b11249e6f7aaee69c125d9c2b040b23ede8f91d7d32fc1c64736f6c63430007040033000000000000000000000000f0c2c39d1f94bcb47d48246f43f929aa0653bc93

Deployed Bytecode

0x6080604052600436106102cd5760003560e01c8063896648c111610175578063bd9ab537116100dc578063f708a64f11610095578063fe575a871161006f578063fe575a8714610bb0578063fe9fbb8014610be3578063fed0d2a114610c16578063ffb54a9914610c2b576102d4565b8063f708a64f14610b25578063f84ba65d14610b60578063f887ea4014610b9b576102d4565b8063bd9ab53714610a13578063bfe1092814610a3d578063dd62ed3e14610a52578063df20fd4914610a8d578063f0b37c0414610abf578063f2fde38b14610af2576102d4565b80639e252f001161012e5780639e252f0014610903578063a4b45c001461092d578063a7bc1de014610968578063a8aa1b3114610992578063a9059cbb146109a7578063b6a5d7de146109e0576102d4565b8063896648c1146107e25780638cd4426d146107f75780638e2eee841461083057806395d89b41146108af57806398118cb4146108c45780639d1944f5146108d9576102d4565b806344a33fd2116102345780636ddd1713116101ed57806378109e54116101c757806378109e54146107725780637d1db4a51461078757806388ea420d1461079c578063893d20e8146107b1576102d4565b80636ddd1713146106ee5780636fcba3771461070357806370a082311461073f576102d4565b806344a33fd2146105eb578063571ac8b0146106155780635c85974f146106485780635e562f3b14610672578063658d4b7f1461069e5780636b67c4df146106d9576102d4565b806318160ddd1161028657806318160ddd146104445780631ca0a28d1461045957806323b872dd146105385780632b112e491461057b5780632d48e89614610590578063313ce567146105c0576102d4565b80630445b667146102d957806306fdde031461030057806309302dc61461038a578063095ea7b3146103b65780630d29598014610403578063180b0d7e1461042f576102d4565b366102d457005b600080fd5b3480156102e557600080fd5b506102ee610c40565b60408051918252519081900360200190f35b34801561030c57600080fd5b50610315610c46565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561034f578181015183820152602001610337565b50505050905090810190601f16801561037c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561039657600080fd5b506103b4600480360360208110156103ad57600080fd5b5035610c75565b005b3480156103c257600080fd5b506103ef600480360360408110156103d957600080fd5b506001600160a01b038135169060200135610cbf565b604080519115158252519081900360200190f35b34801561040f57600080fd5b506103b46004803603602081101561042657600080fd5b50351515610d26565b34801561043b57600080fd5b506102ee610d78565b34801561045057600080fd5b506102ee610d7e565b34801561046557600080fd5b506103b46004803603606081101561047c57600080fd5b6001600160a01b0382351691908101906040810160208201356401000000008111156104a757600080fd5b8201836020820111156104b957600080fd5b803590602001918460208302840111640100000000831117156104db57600080fd5b9193909290916020810190356401000000008111156104f957600080fd5b82018360208201111561050b57600080fd5b8035906020019184602083028401116401000000008311171561052d57600080fd5b509092509050610d84565b34801561054457600080fd5b506103ef6004803603606081101561055b57600080fd5b506001600160a01b03813581169160208101359091169060400135611078565b34801561058757600080fd5b506102ee611117565b34801561059c57600080fd5b506103b4600480360360408110156105b357600080fd5b5080359060200135611160565b3480156105cc57600080fd5b506105d56111fc565b6040805160ff9092168252519081900360200190f35b3480156105f757600080fd5b506103b46004803603602081101561060e57600080fd5b5035611201565b34801561062157600080fd5b506103ef6004803603602081101561063857600080fd5b50356001600160a01b031661126d565b34801561065457600080fd5b506103b46004803603602081101561066b57600080fd5b503561127b565b34801561067e57600080fd5b506103b46004803603602081101561069557600080fd5b503515156112b4565b3480156106aa57600080fd5b506103b4600480360360408110156106c157600080fd5b506001600160a01b03813516906020013515156112fb565b3480156106e557600080fd5b506102ee61135a565b3480156106fa57600080fd5b506103ef611360565b34801561070f57600080fd5b506103b46004803603608081101561072657600080fd5b5080359060208101359060408101359060600135611369565b34801561074b57600080fd5b506102ee6004803603602081101561076257600080fd5b50356001600160a01b03166113cb565b34801561077e57600080fd5b506102ee6113e6565b34801561079357600080fd5b506102ee6113ec565b3480156107a857600080fd5b506102ee6113f2565b3480156107bd57600080fd5b506107c66113f8565b604080516001600160a01b039092168252519081900360200190f35b3480156107ee57600080fd5b506103ef611407565b34801561080357600080fd5b506103b46004803603604081101561081a57600080fd5b506001600160a01b038135169060200135611410565b34801561083c57600080fd5b506103b46004803603604081101561085357600080fd5b81019060208101813564010000000081111561086e57600080fd5b82018360208201111561088057600080fd5b803590602001918460208302840111640100000000831117156108a257600080fd5b91935091503515156114cb565b3480156108bb57600080fd5b50610315611554565b3480156108d057600080fd5b506102ee611571565b3480156108e557600080fd5b506103b4600480360360208110156108fc57600080fd5b5035611577565b34801561090f57600080fd5b506103b46004803603602081101561092657600080fd5b50356115bf565b34801561093957600080fd5b506103b46004803603604081101561095057600080fd5b506001600160a01b0381358116916020013516611630565b34801561097457600080fd5b506103b46004803603602081101561098b57600080fd5b5035611692565b34801561099e57600080fd5b506107c66116cb565b3480156109b357600080fd5b506103ef600480360360408110156109ca57600080fd5b506001600160a01b0381351690602001356116da565b3480156109ec57600080fd5b506103b460048036036020811015610a0357600080fd5b50356001600160a01b03166116e7565b348015610a1f57600080fd5b506103b460048036036020811015610a3657600080fd5b5035611742565b348015610a4957600080fd5b506107c661178c565b348015610a5e57600080fd5b506102ee60048036036040811015610a7557600080fd5b506001600160a01b038135811691602001351661179b565b348015610a9957600080fd5b506103b460048036036040811015610ab057600080fd5b508035151590602001356117c6565b348015610acb57600080fd5b506103b460048036036020811015610ae257600080fd5b50356001600160a01b0316611811565b348015610afe57600080fd5b506103b460048036036020811015610b1557600080fd5b50356001600160a01b0316611866565b348015610b3157600080fd5b506103b460048036036040811015610b4857600080fd5b506001600160a01b0381351690602001351515611908565b348015610b6c57600080fd5b506103b460048036036040811015610b8357600080fd5b506001600160a01b0381351690602001351515611a67565b348015610ba757600080fd5b506107c6611ac6565b348015610bbc57600080fd5b506103ef60048036036020811015610bd357600080fd5b50356001600160a01b0316611ad5565b348015610bef57600080fd5b506103ef60048036036020811015610c0657600080fd5b50356001600160a01b0316611aea565b348015610c2257600080fd5b506102ee611b08565b348015610c3757600080fd5b506103ef611b0e565b601c5481565b6040805180820190915260158152742134ba31b7b4b7102932b9b2b93b32902a37b5b2b760591b602082015290565b610c7e33611b83565b610ca9576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6103e8816005540281610cb857fe5b0460075550565b3360008181526009602090815260408083206001600160a01b038716808552908352818420869055815186815291519394909390927f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925928290030190a35060015b92915050565b610d2f33611b83565b610d5a576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b60188054911515600160a01b0260ff60a01b19909216919091179055565b60135481565b60055490565b610d8d33611b83565b610db8576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6001600160a01b0385163314610dcd57600080fd5b6101f58310610dfd576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b828114610e2b576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6000805b84811015610e5957838382818110610e4357fe5b6020029190910135929092019150600101610e2f565b5080610e64876113cb565b1015610e91576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b60005b84811015610fde57610ed487878784818110610eac57fe5b905060200201356001600160a01b0316868685818110610ec857fe5b90506020020135611b97565b50600e6000878784818110610ee557fe5b602090810292909201356001600160a01b03168352508101919091526040016000205460ff16610fd6576019546001600160a01b03166314b6ca96878784818110610f2c57fe5b905060200201356001600160a01b0316600860008a8a87818110610f4c57fe5b905060200201356001600160a01b03166001600160a01b03166001600160a01b03168152602001908152602001600020546040518363ffffffff1660e01b815260040180836001600160a01b0316815260200182815260200192505050600060405180830381600087803b158015610fc357600080fd5b505af1925050508015610fd4575060015b505b600101610e94565b506001600160a01b0386166000908152600e602052604090205460ff16611070576019546001600160a01b03878116600081815260086020526040808220548151630a5b654b60e11b8152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b15801561105d57600080fd5b505af192505050801561106e575060015b505b505050505050565b6001600160a01b03831660009081526009602090815260408083203384529091528120546000191461110257604080516020808201835260008083526001600160a01b03881681526009825283812033825290915291909120546110dd918490611c57565b6001600160a01b03851660009081526009602090815260408083203384529091529020555b61110d848484611cee565b90505b9392505050565b60045460009061115b90611133906001600160a01b03166113cb565b6003546111559061114c906001600160a01b03166113cb565b600554906121ac565b906121ac565b905090565b61116933611aea565b611194576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b601954604080516316a4744b60e11b8152600481018590526024810184905290516001600160a01b0390921691632d48e8969160448082019260009290919082900301818387803b1580156111e857600080fd5b505af1158015611070573d6000803e3d6000fd5b600990565b61120a33611aea565b611235576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6040514790339060648484020480156108fc02916000818181858888f19350505050158015611268573d6000803e3d6000fd5b505050565b6000610d2082600019610cbf565b61128433611aea565b6112af576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b600655565b6112bd33611b83565b6112e8576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b600a805460ff1916911515919091179055565b61130433611aea565b61132f576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b60115481565b601b5460ff1681565b61137233611aea565b61139d576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b600f849055601083905560118290556113c0826113ba86866121c8565b906121c8565b601255601355505050565b6001600160a01b031660009081526008602052604090205490565b60075481565b60065481565b60105481565b6000546001600160a01b031690565b600a5460ff1681565b61141933611b83565b611444576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b600080546040805163a9059cbb60e01b81526001600160a01b0392831660048201526024810185905290519185169263a9059cbb926044808401936020939083900390910190829087803b15801561149b57600080fd5b505af11580156114af573d6000803e3d6000fd5b505050506040513d60208110156114c557600080fd5b50505050565b6114d433611b83565b6114ff576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b60005b828110156114c55781600b600086868581811061151b57fe5b602090810292909201356001600160a01b0316835250810191909152604001600020805460ff1916911515919091179055600101611502565b60408051808201909152600381526210949560ea1b602082015290565b600f5481565b61158033611aea565b6115ab576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b620b71b081106115ba57600080fd5b601a55565b6115c833611b83565b6115f3576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b600080546040516001600160a01b039091169183156108fc02918491818181858888f1935050505015801561162c573d6000803e3d6000fd5b5050565b61163933611aea565b611664576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b601580546001600160a01b039384166001600160a01b03199182161790915560168054929093169116179055565b61169b33611b83565b6116c6576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b601455565b6018546001600160a01b031681565b6000611110338484611cee565b6116f033611b83565b61171b576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6001600160a01b03166000908152600160208190526040909120805460ff19169091179055565b61174b33611b83565b611776576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6103e881600554028161178557fe5b0460065550565b6019546001600160a01b031681565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205490565b6117cf33611aea565b6117fa576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b601b805460ff191692151592909217909155601c55565b61181a33611b83565b611845576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6001600160a01b03166000908152600160205260409020805460ff19169055565b61186f33611b83565b61189a576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b600080546001600160a01b0319166001600160a01b038316908117825580825260016020818152604093849020805460ff1916909217909155825191825291517f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc686163929181900390910190a150565b61191133611aea565b61193c576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6001600160a01b038216301480159061196357506018546001600160a01b03838116911614155b61196c57600080fd5b6001600160a01b0382166000908152600e60205260409020805460ff19168215801591909117909155611a095760195460408051630a5b654b60e11b81526001600160a01b03858116600483015260006024830181905292519316926314b6ca969260448084019391929182900301818387803b1580156119ec57600080fd5b505af1158015611a00573d6000803e3d6000fd5b5050505061162c565b6019546001600160a01b03838116600081815260086020526040808220548151630a5b654b60e11b8152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b1580156111e857600080fd5b611a7033611aea565b611a9b576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6001600160a01b03919091166000908152600d60205260409020805460ff1916911515919091179055565b6017546001600160a01b031681565b600b6020526000908152604090205460ff1681565b6001600160a01b031660009081526001602052604090205460ff1690565b60145481565b601854600160a01b900460ff1681565b600082611b2d57506000610d20565b82820282848281611b3a57fe5b0414611110576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b60006111108383604051806020016040528060008152506121fc565b6000546001600160a01b0390811691161490565b604080516020808201835260008083526001600160a01b0387168152600890915291822054611bc7918490611c57565b6001600160a01b038086166000908152600860205260408082209390935590851681522054611bf690836121c8565b6001600160a01b0380851660008181526008602090815260409182902094909455805186815290519193928816927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a35060019392505050565b60008184841115611ce65760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015611cab578181015183820152602001611c93565b50505050905090810190601f168015611cd85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b601d5460009060ff1615611d0e57611d07848484611b97565b9050611110565b6001600160a01b03841660009081526001602052604090205460ff16158015611d5057506001600160a01b03831660009081526001602052604090205460ff16155b15611d8d57601854600160a01b900460ff16611d8d576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b600a5460ff1615611e05576001600160a01b0384166000908152600b602052604090205460ff16158015611dda57506001600160a01b0383166000908152600b602052604090205460ff16155b611e05576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6001600160a01b03841660009081526001602052604090205460ff16158015611e3757506001600160a01b0383163014155b8015611e5157506003546001600160a01b03848116911614155b8015611e6b57506018546001600160a01b03848116911614155b8015611e8557506015546001600160a01b03848116911614155b8015611e9f57506016546001600160a01b03848116911614155b15611ee6576000611eaf846113cb565b90506007548382011115611ee4576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b505b611ef08483612261565b611ef86122b5565b15611f0557611f05612304565b604080516020808201835260008083526001600160a01b038816815260089091529190912054611f36918490611c57565b6001600160a01b038516600090815260086020526040812091909155611f5b856126dd565b1580611f6d5750611f6b846126dd565b155b611f9457601854611f8f90869085906001600160a01b038881169116146126fc565b611f96565b825b6001600160a01b038516600090815260086020526040902054909150611fbc90826121c8565b6001600160a01b038086166000908152600860209081526040808320949094559188168152600e909152205460ff16612060576019546001600160a01b03868116600081815260086020526040808220548151630a5b654b60e11b8152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b15801561204d57600080fd5b505af192505050801561205e575060015b505b6001600160a01b0384166000908152600e602052604090205460ff166120f1576019546001600160a01b03858116600081815260086020526040808220548151630a5b654b60e11b8152600481019490945260248401525192909316926314b6ca969260448084019382900301818387803b1580156120de57600080fd5b505af19250505080156120ef575060015b505b601954601a54604080516001624d3b8760e01b031981526004810192909252516001600160a01b039092169163ffb2c4799160248082019260009290919082900301818387803b15801561214457600080fd5b505af1925050508015612155575060015b50836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3506001949350505050565b6000611110838360405180602001604052806000815250611c57565b600082820183811015611110576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6000818361224b5760405162461bcd60e51b8152602060048201818152835160248401528351909283926044909101919085019080838360008315611cab578181015183820152602001611c93565b50600083858161225757fe5b0495945050505050565b6006548111158061228a57506001600160a01b0382166000908152600d602052604090205460ff165b61162c576040805162461bcd60e51b8152602060048201526000602482015290519081900360640190fd5b6018546000906001600160a01b031633148015906122d65750601d5460ff16155b80156122e45750601b5460ff165b801561115b575050601c5430600090815260086020526040902054101590565b601d805460ff19166001179055601254600f54601c54600092612337926002926123319291839190611b1e565b90611b67565b9050600061235082601c546121ac90919063ffffffff16565b604080516002808252606080830184529394509091602083019080368337019050509050308160008151811061238257fe5b6001600160a01b0392831660209182029290920101526002548251911690829060019081106123ad57fe5b6001600160a01b0392831660209182029290920181019190915260175460405163791ac94760e01b8152600481018681526000602483018190523060648401819052426084850181905260a060448601908152895160a487015289514799979097169763791ac947978c9795968c9690939260c49091019187820191028083838b5b8381101561244757818101518382015260200161242f565b505050509050019650505050505050600060405180830381600087803b15801561247057600080fd5b505af1158015612484573d6000803e3d6000fd5b50505050600061249d82476121ac90919063ffffffff16565b905060006124c36124ba6002600f54611b6790919063ffffffff16565b601254906121ac565b905060006124e5600261233184612331600f5488611b1e90919063ffffffff16565b905060006125028361233160105487611b1e90919063ffffffff16565b9050600061251f8461233160115488611b1e90919063ffffffff16565b9050601960009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0836040518263ffffffff1660e01b81526004016000604051808303818588803b15801561257157600080fd5b505af193505050508015612583575060015b506016546040516000916001600160a01b03169061753090849084818181858888f193505050503d80600081146125d6576040519150601f19603f3d011682016040523d82523d6000602084013e6125db565b606091505b5060009250508a1590506126c7576017546015546040805163f305d71960e01b8152306004820152602481018e905260006044820181905260648201526001600160a01b0392831660848201524260a48201529051919092169163f305d71991879160c48082019260609290919082900301818588803b15801561265e57600080fd5b505af1158015612672573d6000803e3d6000fd5b50505050506040513d606081101561268957600080fd5b505060408051858152602081018c905281517f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506929181900390910190a15b5050601d805460ff191690555050505050505050565b6001600160a01b03166000908152600c602052604090205460ff161590565b6000808261270b57606461270f565b6014545b9050600061273b601354606402612331846127356012548a611b1e90919063ffffffff16565b90611b1e565b3060009081526008602052604090205490915061275890826121c8565b30600081815260086020908152604091829020939093558051848152905191926001600160a01b038a16927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a36127b785826121ac565b969550505050505056fea264697066735822122067a9929d29764a91c54ac6daa4d9fd97c5375ec21c1e0197d4690a1e7c9ee01364736f6c63430007040033

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

000000000000000000000000f0c2c39d1f94bcb47d48246f43f929aa0653bc93

-----Decoded View---------------
Arg [0] : _marketingWallet (address): 0xf0c2c39D1F94bCB47d48246F43F929Aa0653Bc93

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000f0c2c39d1f94bcb47d48246f43f929aa0653bc93


Deployed Bytecode Sourcemap

14741:12551:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16265:56;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;17552:80;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18837:177;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18837:177:0;;:::i;:::-;;17974:216;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;17974:216:0;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;22437:90;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22437:90:0;;;;:::i;15877:35::-;;;;;;;;;;;;;:::i;17282:88::-;;;;;;;;;;;;;:::i;26078:880::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;26078:880:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;26078:880:0;;-1:-1:-1;26078:880:0;-1:-1:-1;26078:880:0;:::i;18486:343::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;18486:343:0;;;;;;;;;;;;;;;;;:::i;25928:142::-;;;;;;;;;;;;;:::i;25593:183::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25593:183:0;;;;;;;:::i;17376:80::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;22093:215;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22093:215:0;;:::i;18198:116::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18198:116:0;-1:-1:-1;;;;;18198:116:0;;:::i;19200:96::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19200:96:0;;:::i;24257:99::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24257:99:0;;;;:::i;24583:120::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;24583:120:0;;;;;;;;;;:::i;15767:32::-;;;;;;;;;;;;;:::i;16228:30::-;;;;;;;;;;;;;:::i;24847:352::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24847:352:0;;;;;;;;;;;;;;;;;:::i;17722:105::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;17722:105:0;-1:-1:-1;;;;;17722:105:0;;:::i;15274:61::-;;;;;;;;;;;;;:::i;15208:59::-;;;;;;;;;;;;;:::i;15734:26::-;;;;;;;;;;;;;:::i;17638:78::-;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;17638:78:0;;;;;;;;;;;;;;15459:32;;;;;;;;;;;;;:::i;26966:141::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;26966:141:0;;;;;;;;:::i;24364:210::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;24364:210:0;-1:-1:-1;24364:210:0;;;;:::i;17462:84::-;;;;;;;;;;;;;:::i;15696:31::-;;;;;;;;;;;;;:::i;25784:136::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25784:136:0;;:::i;27115:110::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;27115:110:0;;:::i;25207:214::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;25207:214:0;;;;;;;;;;:::i;22316:113::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;22316:113:0;;:::i;16079:19::-;;;;;;;;;;;;;:::i;18322:156::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;18322:156:0;;;;;;;;:::i;6993:94::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6993:94:0;-1:-1:-1;;;;;6993:94:0;;:::i;19020:172::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;19020:172:0;;:::i;16147:34::-;;;;;;;;;;;;;:::i;17833:133::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;17833:133:0;;;;;;;;;;:::i;25429:156::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;25429:156:0;;;;;;;;;:::i;7093:97::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7093:97:0;-1:-1:-1;;;;;7093:97:0;;:::i;7419:173::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7419:173:0;-1:-1:-1;;;;;7419:173:0;;:::i;23901:348::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;23901:348:0;;;;;;;;;;:::i;24711:128::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;24711:128:0;;;;;;;;;;:::i;16049:23::-;;;;;;;;;;;;;:::i;15498:46::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15498:46:0;-1:-1:-1;;;;;15498:46:0;;:::i;7306:107::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7306:107:0;-1:-1:-1;;;;;7306:107:0;;:::i;15921:35::-;;;;;;;;;;;;;:::i;16107:31::-;;;;;;;;;;;;;:::i;16265:56::-;;;;:::o;17552:80::-;17624:5;;;;;;;;;;;;-1:-1:-1;;;17624:5:0;;;;17552:80;:::o;18837:177::-;6865:19;6873:10;6865:7;:19::i;:::-;6857:32;;;;;-1:-1:-1;;;6857:32:0;;;;;;;;;;;;;;;;;;;;;;;19002:4:::1;18974:23;18959:12;;:38;18958:48;;;;;;18940:15;:66:::0;-1:-1:-1;18837:177:0:o;17974:216::-;18078:10;18049:4;18066:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;18066:32:0;;;;;;;;;;;:41;;;18123:37;;;;;;;18049:4;;18066:32;;18078:10;;18123:37;;;;;;;;-1:-1:-1;18178:4:0;17974:216;;;;;:::o;22437:90::-;6865:19;6873:10;6865:7;:19::i;:::-;6857:32;;;;;-1:-1:-1;;;6857:32:0;;;;;;;;;;;;;;;;;;;;;;;22500:11:::1;:19:::0;;;::::1;;-1:-1:-1::0;;;22500:19:0::1;-1:-1:-1::0;;;;22500:19:0;;::::1;::::0;;;::::1;::::0;;22437:90::o;15877:35::-;;;;:::o;17282:88::-;17355:12;;17282:88;:::o;26078:880::-;6865:19;6873:10;6865:7;:19::i;:::-;6857:32;;;;;-1:-1:-1;;;6857:32:0;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;26210:16:0;::::1;26216:10;26210:16;26202:25;;;::::0;::::1;;26265:3;26246:22:::0;::::1;26238:34;;;::::0;;-1:-1:-1;;;26238:34:0;;::::1;;::::0;::::1;::::0;;;;;;;;;;;;;;;::::1;;26291:33:::0;;::::1;26283:45;;;::::0;;-1:-1:-1;;;26283:45:0;;::::1;;::::0;::::1;::::0;;;;;;;;;;;;;;;::::1;;26341:21;26383:6:::0;26379:108:::1;26393:20:::0;;::::1;26379:108;;;26466:6;;26473:1;26466:9;;;;;;;;;::::0;;;::::1;;26450:25:::0;;;::::1;::::0;-1:-1:-1;26415:3:0::1;;26379:108;;;;26526:13;26507:15;26517:4;26507:9;:15::i;:::-;:32;;26499:45;;;::::0;;-1:-1:-1;;;26499:45:0;;::::1;;::::0;::::1;::::0;;;;;;;;;;;;;;;::::1;;26561:6;26557:269;26571:20:::0;;::::1;26557:269;;;26612:43;26627:4;26632:9;;26642:1;26632:12;;;;;;;;;;;;;-1:-1:-1::0;;;;;26632:12:0::1;26645:6;;26652:1;26645:9;;;;;;;;;;;;;26612:14;:43::i;:::-;;26674:16;:30;26691:9;;26701:1;26691:12;;;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;26691:12:0::1;26674:30:::0;;-1:-1:-1;26674:30:0;::::1;::::0;;;;;;-1:-1:-1;26674:30:0;;::::1;;26670:145;;26729:11;::::0;-1:-1:-1;;;;;26729:11:0::1;:20;26750:9:::0;;26760:1;26750:12;;::::1;;;;;;;;;;;-1:-1:-1::0;;;;;26750:12:0::1;26764:9;:23;26774:9;;26784:1;26774:12;;;;;;;;;;;;;-1:-1:-1::0;;;;;26774:12:0::1;-1:-1:-1::0;;;;;26764:23:0::1;-1:-1:-1::0;;;;;26764:23:0::1;;;;;;;;;;;;;26729:59;;;;;;;;;;;;;-1:-1:-1::0;;;;;26729:59:0::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;26725:75:::0;::::1;26593:3;;26557:269;;;-1:-1:-1::0;;;;;;26842:22:0;::::1;;::::0;;;:16:::1;:22;::::0;;;;;::::1;;26838:113;;26885:11;::::0;-1:-1:-1;;;;;26912:15:0;;::::1;26885:11;26912:15:::0;;;:9:::1;:15;::::0;;;;;;26885:43;;-1:-1:-1;;;26885:43:0;;::::1;::::0;::::1;::::0;;;;;;;;;:11;;;::::1;::::0;:20:::1;::::0;:43;;;;;;;;;;:11;;:43;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;;;;;26881:59:::0;::::1;6891:1;26078:880:::0;;;;;:::o;18486:343::-;-1:-1:-1;;;;;18606:19:0;;18586:4;18606:19;;;:11;:19;;;;;;;;18626:10;18606:31;;;;;;;;-1:-1:-1;;18606:46:0;18603:158;;18702:47;;;;;;;;;-1:-1:-1;18702:47:0;;;-1:-1:-1;;;;;18702:19:0;;;;:11;:19;;;;;18722:10;18702:31;;;;;;;;;;:47;;18738:6;;18702:35;:47::i;:::-;-1:-1:-1;;;;;18668:19:0;;;;;;:11;:19;;;;;;;;18688:10;18668:31;;;;;;;:81;18603:158;18781:40;18795:6;18803:9;18814:6;18781:13;:40::i;:::-;18774:47;;18486:343;;;;;;:::o;25928:142::-;26056:4;;25981:7;;26008:54;;26046:15;;-1:-1:-1;;;;;26056:4:0;26046:9;:15::i;:::-;26035:4;;26008:33;;26025:15;;-1:-1:-1;;;;;26035:4:0;26025:9;:15::i;:::-;26008:12;;;:16;:33::i;:::-;:37;;:54::i;:::-;26001:61;;25928:142;:::o;25593:183::-;6947:24;6960:10;6947:12;:24::i;:::-;6939:37;;;;;-1:-1:-1;;;6939:37:0;;;;;;;;;;;;;;;;;;;;;;;25703:11:::1;::::0;:65:::1;::::0;;-1:-1:-1;;;25703:65:0;;::::1;::::0;::::1;::::0;;;;;;;;;;;-1:-1:-1;;;;;25703:11:0;;::::1;::::0;:35:::1;::::0;:65;;;;;:11:::1;::::0;:65;;;;;;;;:11;;:65;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;17376:80:::0;15141:1;17376:80;:::o;22093:215::-;6947:24;6960:10;6947:12;:24::i;:::-;6939:37;;;;;-1:-1:-1;;;6939:37:0;;;;;;;;;;;;;;;;;;;;;;;22236:64:::1;::::0;22204:21:::1;::::0;22244:10:::1;::::0;22296:3:::1;22265:28:::0;;::::1;:34;22236:64:::0;::::1;;;::::0;::::1;::::0;;;22265:34;22244:10;22236:64;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;6978:1;22093:215:::0;:::o;18198:116::-;18253:4;18277:29;18285:7;-1:-1:-1;;18277:7:0;:29::i;19200:96::-;6947:24;6960:10;6947:12;:24::i;:::-;6939:37;;;;;-1:-1:-1;;;6939:37:0;;;;;;;;;;;;;;;;;;;;;;;19267:12:::1;:21:::0;19200:96::o;24257:99::-;6865:19;6873:10;6865:7;:19::i;:::-;6857:32;;;;;-1:-1:-1;;;6857:32:0;;;;;;;;;;;;;;;;;;;;;;;24325:13:::1;:23:::0;;-1:-1:-1;;24325:23:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24257:99::o;24583:120::-;6947:24;6960:10;6947:12;:24::i;:::-;6939:37;;;;;-1:-1:-1;;;6939:37:0;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24667:19:0;;;::::1;;::::0;;;:11:::1;:19;::::0;;;;:28;;-1:-1:-1;;24667:28:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24583:120::o;15767:32::-;;;;:::o;16228:30::-;;;;;;:::o;24847:352::-;6947:24;6960:10;6947:12;:24::i;:::-;6939:37;;;;;-1:-1:-1;;;6939:37:0;;;;;;;;;;;;;;;;;;;;;;;24984:12:::1;:28:::0;;;25023:7:::1;:18:::0;;;25052:12:::1;:28:::0;;;25102:46:::1;25067:13:::0;25102:27:::1;24999:13:::0;25033:8;25102:17:::1;:27::i;:::-;:31:::0;::::1;:46::i;:::-;25091:8;:57:::0;25159:14:::1;:32:::0;-1:-1:-1;;;24847:352:0:o;17722:105::-;-1:-1:-1;;;;;17806:18:0;17788:7;17806:18;;;:9;:18;;;;;;;17722:105::o;15274:61::-;;;;:::o;15208:59::-;;;;:::o;15734:26::-;;;;:::o;17638:78::-;17690:7;17708:5;-1:-1:-1;;;;;17708:5:0;17638:78;:::o;15459:32::-;;;;;;:::o;26966:141::-;6865:19;6873:10;6865:7;:19::i;:::-;6857:32;;;;;-1:-1:-1;;;6857:32:0;;;;;;;;;;;;;;;;;;;;;;;27085:5:::1;::::0;;27055:44:::1;::::0;;-1:-1:-1;;;27055:44:0;;-1:-1:-1;;;;;27085:5:0;;::::1;27055:44;::::0;::::1;::::0;;;;;;;;;:29;;::::1;::::0;::::1;::::0;:44;;;;;::::1;::::0;;;;;;;;;;;:29;:44;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;;;26966:141:0:o;24364:210::-;6865:19;6873:10;6865:7;:19::i;:::-;6857:32;;;;;-1:-1:-1;;;6857:32:0;;;;;;;;;;;;;;;;;;;;;;;24466:9:::1;24461:106;24477:20:::0;;::::1;24461:106;;;24549:6;24519:13;:27;24533:9;;24543:1;24533:12;;;;;;;;::::0;;::::1;::::0;;;::::1;;-1:-1:-1::0;;;;;24533:12:0::1;24519:27:::0;;-1:-1:-1;24519:27:0;::::1;::::0;;;;;;-1:-1:-1;24519:27:0;:36;;-1:-1:-1;;24519:36:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;24499:3:0::1;24461:106;;17462:84:::0;17536:7;;;;;;;;;;;;-1:-1:-1;;;17536:7:0;;;;17462:84;:::o;15696:31::-;;;;:::o;25784:136::-;6947:24;6960:10;6947:12;:24::i;:::-;6939:37;;;;;-1:-1:-1;;;6939:37:0;;;;;;;;;;;;;;;;;;;;;;;25874:6:::1;25868:3;:12;25860:21;;;::::0;::::1;;25892:14;:20:::0;25784:136::o;27115:110::-;6865:19;6873:10;6865:7;:19::i;:::-;6857:32;;;;;-1:-1:-1;;;6857:32:0;;;;;;;;;;;;;;;;;;;;;;;27191:5:::1;::::0;;27183:34:::1;::::0;-1:-1:-1;;;;;27191:5:0;;::::1;::::0;27183:34;::::1;;;::::0;27207:9;;27183:34;27191:5;27183:34;27207:9;27191:5;27183:34;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;27115:110:::0;:::o;25207:214::-;6947:24;6960:10;6947:12;:24::i;:::-;6939:37;;;;;-1:-1:-1;;;6939:37:0;;;;;;;;;;;;;;;;;;;;;;;25322:21:::1;:46:::0;;-1:-1:-1;;;;;25322:46:0;;::::1;-1:-1:-1::0;;;;;;25322:46:0;;::::1;;::::0;;;25379:15:::1;:34:::0;;;;;::::1;::::0;::::1;;::::0;;25207:214::o;22316:113::-;6865:19;6873:10;6865:7;:19::i;:::-;6857:32;;;;;-1:-1:-1;;;6857:32:0;;;;;;;;;;;;;;;;;;;;;;;22393:14:::1;:28:::0;22316:113::o;16079:19::-;;;-1:-1:-1;;;;;16079:19:0;;:::o;18322:156::-;18402:4;18426:44;18440:10;18452:9;18463:6;18426:13;:44::i;6993:94::-;6865:19;6873:10;6865:7;:19::i;:::-;6857:32;;;;;-1:-1:-1;;;6857:32:0;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7053:19:0::1;;::::0;;;7075:4:::1;7053:19;::::0;;;;;;;:26;;-1:-1:-1;;7053:26:0::1;::::0;;::::1;::::0;;6993:94::o;19020:172::-;6865:19;6873:10;6865:7;:19::i;:::-;6857:32;;;;;-1:-1:-1;;;6857:32:0;;;;;;;;;;;;;;;;;;;;;;;19180:4:::1;19151:24;19136:12;;:39;19135:49;;;;;;19120:12;:64:::0;-1:-1:-1;19020:172:0:o;16147:34::-;;;-1:-1:-1;;;;;16147:34:0;;:::o;17833:133::-;-1:-1:-1;;;;;17935:19:0;;;17917:7;17935:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;17833:133::o;25429:156::-;6947:24;6960:10;6947:12;:24::i;:::-;6939:37;;;;;-1:-1:-1;;;6939:37:0;;;;;;;;;;;;;;;;;;;;;;;25521:11:::1;:22:::0;;-1:-1:-1;;25521:22:0::1;::::0;::::1;;::::0;;;::::1;::::0;;;25554:13:::1;:23:::0;25429:156::o;7093:97::-;6865:19;6873:10;6865:7;:19::i;:::-;6857:32;;;;;-1:-1:-1;;;6857:32:0;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7155:19:0::1;7177:5;7155:19:::0;;;:14:::1;:19;::::0;;;;:27;;-1:-1:-1;;7155:27:0::1;::::0;;7093:97::o;7419:173::-;6865:19;6873:10;6865:7;:19::i;:::-;6857:32;;;;;-1:-1:-1;;;6857:32:0;;;;;;;;;;;;;;;;;;;;;;;7495:5:::1;:11:::0;;-1:-1:-1;;;;;;7495:11:0::1;-1:-1:-1::0;;;;;7495:11:0;::::1;::::0;;::::1;::::0;;7517:19;;;-1:-1:-1;7517:19:0::1;::::0;;;;;;;;:26;;-1:-1:-1;;7517:26:0::1;::::0;;::::1;::::0;;;7559:25;;;;;;;::::1;::::0;;;;;;;;;::::1;7419:173:::0;:::o;23901:348::-;6947:24;6960:10;6947:12;:24::i;:::-;6939:37;;;;;-1:-1:-1;;;6939:37:0;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23998:23:0;::::1;24016:4;23998:23;::::0;::::1;::::0;:41:::1;;-1:-1:-1::0;24035:4:0::1;::::0;-1:-1:-1;;;;;24025:14:0;;::::1;24035:4:::0;::::1;24025:14;;23998:41;23990:50;;;::::0;::::1;;-1:-1:-1::0;;;;;24051:24:0;::::1;;::::0;;;:16:::1;:24;::::0;;;;:33;;-1:-1:-1;;24051:33:0::1;::::0;::::1;::::0;::::1;::::0;;;::::1;::::0;;;24095:147:::1;;24120:11;::::0;:31:::1;::::0;;-1:-1:-1;;;24120:31:0;;-1:-1:-1;;;;;24120:31:0;;::::1;;::::0;::::1;::::0;:11:::1;:31:::0;;;;;;;;:11;::::1;::::0;:20:::1;::::0;:31;;;;;:11;;:31;;;;;;:11;;:31;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;24095:147;;;24183:11;::::0;-1:-1:-1;;;;;24212:17:0;;::::1;24183:11;24212:17:::0;;;:9:::1;:17;::::0;;;;;;24183:47;;-1:-1:-1;;;24183:47:0;;::::1;::::0;::::1;::::0;;;;;;;;;:11;;;::::1;::::0;:20:::1;::::0;:47;;;;;;;;;;:11;;:47;::::1;;::::0;::::1;;;;::::0;::::1;24711:128:::0;6947:24;6960:10;6947:12;:24::i;:::-;6939:37;;;;;-1:-1:-1;;;6939:37:0;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;24799:23:0;;;::::1;;::::0;;;:15:::1;:23;::::0;;;;:32;;-1:-1:-1;;24799:32:0::1;::::0;::::1;;::::0;;;::::1;::::0;;24711:128::o;16049:23::-;;;-1:-1:-1;;;;;16049:23:0;;:::o;15498:46::-;;;;;;;;;;;;;;;:::o;7306:107::-;-1:-1:-1;;;;;7386:19:0;7362:4;7386:19;;;:14;:19;;;;;;;;;7306:107::o;15921:35::-;;;;:::o;16107:31::-;;;-1:-1:-1;;;16107:31:0;;;;;:::o;5162:213::-;5220:7;5244:6;5240:47;;-1:-1:-1;5274:1:0;5267:8;;5240:47;5309:5;;;5313:1;5309;:5;:1;5333:5;;;;;:10;5325:23;;;;;-1:-1:-1;;;5325:23:0;;;;;;;;;;;;;;;;;;;;;;5381:106;5439:7;5466:13;5470:1;5473;5466:13;;;;;;;;;;;;:3;:13::i;7196:104::-;7252:4;7287:5;-1:-1:-1;;;;;7287:5:0;;;7276:16;;;;7196:104::o;20852:310::-;20982:33;;;;;;;;;20945:4;20982:33;;;-1:-1:-1;;;;;20982:17:0;;;;:9;:17;;;;;;;:33;;21004:6;;20982:21;:33::i;:::-;-1:-1:-1;;;;;20962:17:0;;;;;;;:9;:17;;;;;;:53;;;;21049:20;;;;;;;:32;;21074:6;21049:24;:32::i;:::-;-1:-1:-1;;;;;21026:20:0;;;;;;;:9;:20;;;;;;;;;:55;;;;21097:35;;;;;;;21026:20;;21097:35;;;;;;;;;;;;;-1:-1:-1;21150:4:0;20852:310;;;;;:::o;4966:190::-;5052:7;5088:12;5080:6;;;;5072:29;;;;-1:-1:-1;;;5072:29:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5124:5:0;;;4966:190::o;19304:1540::-;19416:6;;19396:4;;19416:6;;19413:63;;;19432:41;19447:6;19455:9;19466:6;19432:14;:41::i;:::-;19425:48;;;;19413:63;-1:-1:-1;;;;;19493:22:0;;;;;;:14;:22;;;;;;;;19492:23;:53;;;;-1:-1:-1;;;;;;19520:25:0;;;;;;:14;:25;;;;;;;;19519:26;19492:53;19489:107;;;19569:11;;-1:-1:-1;;;19569:11:0;;;;19561:23;;;;;-1:-1:-1;;;19561:23:0;;;;;;;;;;;;;;;;;;;;;;;19611:13;;;;19608:107;;;-1:-1:-1;;;;;19649:21:0;;;;;;:13;:21;;;;;;;;19648:22;:51;;;;-1:-1:-1;;;;;;19675:24:0;;;;;;:13;:24;;;;;;;;19674:25;19648:51;19640:63;;;;;-1:-1:-1;;;19640:63:0;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;19732:22:0;;;;;;:14;:22;;;;;;;;19731:23;:53;;;;-1:-1:-1;;;;;;19758:26:0;;19779:4;19758:26;;19731:53;:84;;;;-1:-1:-1;19810:4:0;;-1:-1:-1;;;;;19789:26:0;;;19810:4;;19789:26;;19731:84;:105;;;;-1:-1:-1;19832:4:0;;-1:-1:-1;;;;;19819:17:0;;;19832:4;;19819:17;;19731:105;:143;;;;-1:-1:-1;19853:21:0;;-1:-1:-1;;;;;19840:34:0;;;19853:21;;19840:34;;19731:143;:175;;;;-1:-1:-1;19891:15:0;;-1:-1:-1;;;;;19878:28:0;;;19891:15;;19878:28;;19731:175;19727:305;;;19922:18;19943:20;19953:9;19943;:20::i;:::-;19922:41;;20011:15;;20000:6;19987:10;:19;19986:40;;19978:52;;;;;-1:-1:-1;;;19978:52:0;;;;;;;;;;;;;;;;;;;;;;;19727:305;;20051:28;20064:6;20072;20051:12;:28::i;:::-;20095:16;:14;:16::i;:::-;20092:35;;;20114:10;:8;:10::i;:::-;20159:33;;;;;;;;;-1:-1:-1;20159:33:0;;;-1:-1:-1;;;;;20159:17:0;;;;:9;:17;;;;;;;;:33;;20181:6;;20159:21;:33::i;:::-;-1:-1:-1;;;;;20139:17:0;;;;;;:9;:17;;;;;:53;;;;20232:21;20149:6;20232:13;:21::i;:::-;20231:22;:51;;;;20258:24;20272:9;20258:13;:24::i;:::-;20257:25;20231:51;20230:108;;20332:4;;20295:43;;20303:6;;20311;;-1:-1:-1;;;;;20319:17:0;;;20332:4;;20319:17;20295:7;:43::i;:::-;20230:108;;;20286:6;20230:108;-1:-1:-1;;;;;20372:20:0;;;;;;:9;:20;;;;;;20205:133;;-1:-1:-1;20372:40:0;;20205:133;20372:24;:40::i;:::-;-1:-1:-1;;;;;20349:20:0;;;;;;;:9;:20;;;;;;;;:63;;;;20435:24;;;;;:16;:24;;;;;;;20431:119;;20480:11;;-1:-1:-1;;;;;20509:17:0;;;20480:11;20509:17;;;:9;:17;;;;;;;20480:47;;-1:-1:-1;;;20480:47:0;;;;;;;;;;;;;;:11;;;;;:20;;:47;;;;;;;;;;:11;;:47;;;;;;;;;;;;;;;;;;;;;;;;;20476:63;;-1:-1:-1;;;;;20566:27:0;;;;;;:16;:27;;;;;;;;20562:128;;20614:11;;-1:-1:-1;;;;;20646:20:0;;;20614:11;20646:20;;;:9;:20;;;;;;;20614:53;;-1:-1:-1;;;20614:53:0;;;;;;;;;;;;;;:11;;;;;:20;;:53;;;;;;;;;;:11;;:53;;;;;;;;;;;;;;;;;;;;;;;;;20610:69;;20707:11;;20727:14;;20707:35;;;-1:-1:-1;;;;;;20707:35:0;;;;;;;;;;-1:-1:-1;;;;;20707:11:0;;;;:19;;:35;;;;;:11;;:35;;;;;;;;:11;;:35;;;;;;;;;;;;;;;;;;;;;;;;;20703:51;20788:9;-1:-1:-1;;;;;20771:43:0;20780:6;-1:-1:-1;;;;;20771:43:0;;20799:14;20771:43;;;;;;;;;;;;;;;;;;-1:-1:-1;20832:4:0;;19304:1540;-1:-1:-1;;;;19304:1540:0:o;4854:106::-;4912:7;4939:13;4943:1;4946;4939:13;;;;;;;;;;;;:3;:13::i;4696:152::-;4754:7;4786:5;;;4810:6;;;;4802:19;;;;;-1:-1:-1;;;4802:19:0;;;;;;;;;;;;;;;;;;;;;;5493:189;5579:7;5614:12;5607:5;5599:28;;;;-1:-1:-1;;;5599:28:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5638:9;5654:1;5650;:5;;;;;;;5493:189;-1:-1:-1;;;;;5493:189:0:o;21170:149::-;21267:12;;21257:6;:22;;:49;;;-1:-1:-1;;;;;;21283:23:0;;;;;;:15;:23;;;;;;;;21257:49;21249:62;;;;;-1:-1:-1;;;21249:62:0;;;;;;;;;;;;;;;;;;;;;;21888:197;21975:4;;21937;;-1:-1:-1;;;;;21975:4:0;21961:10;:18;;;;:38;;-1:-1:-1;21993:6:0;;;;21992:7;21961:38;:62;;;;-1:-1:-1;22012:11:0;;;;21961:62;:116;;;;-1:-1:-1;;22064:13:0;;22054:4;22036:24;;;;:9;:24;;;;;;:41;;;21888:197::o;22536:1357::-;16370:6;:13;;-1:-1:-1;;16370:13:0;16379:4;16370:13;;;22647:8:::1;::::0;22629:12:::1;::::0;22611:13:::1;::::0;16370:6;;22611:52:::1;::::0;22661:1:::1;::::0;22611:45:::1;::::0;22647:8;22611:45;;:13;:17:::1;:31::i;:::-;:35:::0;::::1;:45::i;:52::-;22585:78;;22674:20;22697:34;22715:15;22697:13;;:17;;:34;;;;:::i;:::-;22768:16;::::0;;22782:1:::1;22768:16:::0;;;22744:21:::1;22768:16:::0;;::::1;::::0;;22674:57;;-1:-1:-1;22768:16:0;;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;22768:16:0::1;22744:40;;22813:4;22795;22800:1;22795:7;;;;;;;;-1:-1:-1::0;;;;;22795:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;22839:4:::1;::::0;22829:7;;22839:4;::::1;::::0;22829;;22839;;22829:7;::::1;;;;;-1:-1:-1::0;;;;;22829:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:14;;;;22914:6:::1;::::0;:112:::1;::::0;-1:-1:-1;;;22914:112:0;;::::1;::::0;::::1;::::0;;;22856:21:::1;22914:112:::0;;;;;;23003:4:::1;22914:112:::0;;;;;;23010:15:::1;22914:112:::0;;;;;;;;;;;;;;;;;;;;;22880:21:::1;::::0;22914:6;;;::::1;::::0;:57:::1;::::0;22972:12;;22856:21;;22989:4;;22914:112;;;;;;;;;;::::1;::::0;::::1;::::0;;;22856:21;22914:112:::1;;;;;;;::::0;;::::1;::::0;;;::::1;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;23039:17;23059:40;23085:13;23059:21;:25;;:40;;;;:::i;:::-;23039:60;;23112:19;23134:33;23147:19;23164:1;23147:12;;:16;;:19;;;;:::i;:::-;23134:8;::::0;;:12:::1;:33::i;:::-;23112:55;;23180:26;23209:51;23258:1;23209:44;23241:11;23209:27;23223:12;;23209:9;:13;;:27;;;;:::i;:51::-;23180:80;;23271:23;23297:39;23324:11;23297:22;23311:7;;23297:9;:13;;:22;;;;:::i;:39::-;23271:65;;23347:26;23376:44;23408:11;23376:27;23390:12;;23376:9;:13;;:27;;;;:::i;:44::-;23347:73;;23437:11;;;;;;;;;-1:-1:-1::0;;;;;23437:11:0::1;-1:-1:-1::0;;;;;23437:19:0::1;;23464:15;23437:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;23433:61:::0;23535:15:::1;::::0;23527:72:::1;::::0;23507:15:::1;::::0;-1:-1:-1;;;;;23535:15:0::1;::::0;23589:5:::1;::::0;23564:18;;23507:15;23527:72;23507:15;23527:72;23564:18;23535:15;23589:5;23527:72:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;23623:5:0::1;::::0;-1:-1:-1;;23644:19:0;;;-1:-1:-1;23641:245:0::1;;23679:6;::::0;23767:21:::1;::::0;23679:127:::1;::::0;;-1:-1:-1;;;23679:127:0;;23737:4:::1;23679:127;::::0;::::1;::::0;;;;;;;:6:::1;:127:::0;;;;;;;;;;-1:-1:-1;;;;;23767:21:0;;::::1;23679:127:::0;;;;23790:15:::1;23679:127:::0;;;;;;:6;;;::::1;::::0;:22:::1;::::0;23709:18;;23679:127;;;;;::::1;::::0;;;;;;;;;23709:18;23679:6;:127;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;::::0;::::1;;-1:-1:-1::0;;23679:127:0;23826:48;;;;;23679:127:::1;23826:48:::0;::::1;::::0;;;;;::::1;::::0;;;;;;;;;::::1;23641:245;-1:-1:-1::0;;16388:6:0;:14;;-1:-1:-1;;16388:14:0;;;-1:-1:-1;;;;;;;;22536:1357:0:o;21327:114::-;-1:-1:-1;;;;;21414:19:0;21389:4;21414:19;;;:11;:19;;;;;;;;21413:20;;21327:114::o;21449:431::-;21529:7;21551:18;21572:6;:29;;21598:3;21572:29;;;21581:14;;21572:29;21551:50;;21612:17;21632:62;21673:14;;21690:3;21673:20;21632:36;21657:10;21632:20;21643:8;;21632:6;:10;;:20;;;;:::i;:::-;:24;;:36::i;:62::-;21752:4;21734:24;;;;:9;:24;;;;;;21612:82;;-1:-1:-1;21734:39:0;;21612:82;21734:28;:39::i;:::-;21725:4;21707:24;;;;:9;:24;;;;;;;;;:66;;;;21789:42;;;;;;;21725:4;;-1:-1:-1;;;;;21789:42:0;;;;;;;;;;;;;21851:21;:6;21862:9;21851:10;:21::i;:::-;21844:28;21449:431;-1:-1:-1;;;;;;21449:431:0:o

Swarm Source

ipfs://2813fd99ca1a858f8b11249e6f7aaee69c125d9c2b040b23ede8f91d7d32fc1c
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.