ETH Price: $1,951.79 (-1.08%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

TokenTracker

Multichain Info

1 address found via
Transaction Hash
Method
Block
From
To
Approve239601512025-12-07 9:46:1177 days ago1765100771IN
0x1ae378cC...4cB2BBA75
0 ETH0.000027391.12709541
Approve232535762025-08-30 11:12:23176 days ago1756552343IN
0x1ae378cC...4cB2BBA75
0 ETH0.00002961.21523468
Approve232517272025-08-30 5:01:11176 days ago1756530071IN
0x1ae378cC...4cB2BBA75
0 ETH0.000028191.16014223
Approve229352202025-07-17 0:05:35220 days ago1752710735IN
0x1ae378cC...4cB2BBA75
0 ETH0.000054692.24467173
Approve211168032024-11-04 20:54:35475 days ago1730753675IN
0x1ae378cC...4cB2BBA75
0 ETH0.000159736.05855043
Approve211167992024-11-04 20:53:47475 days ago1730753627IN
0x1ae378cC...4cB2BBA75
0 ETH0.000118514.86416259
Approve208806552024-10-02 21:58:35508 days ago1727906315IN
0x1ae378cC...4cB2BBA75
0 ETH0.000206368.49058836
Approve199585802024-05-27 3:40:11636 days ago1716781211IN
0x1ae378cC...4cB2BBA75
0 ETH0.000395748.48339144
Approve196173492024-04-09 9:59:11684 days ago1712656751IN
0x1ae378cC...4cB2BBA75
0 ETH0.0005552822.79043899
Transfer195019432024-03-24 4:09:11700 days ago1711253351IN
0x1ae378cC...4cB2BBA75
0 ETH0.0031776916.13695965
Approve194912052024-03-22 15:57:59702 days ago1711123079IN
0x1ae378cC...4cB2BBA75
0 ETH0.0013172128.27307682
Approve194593762024-03-18 4:42:59706 days ago1710736979IN
0x1ae378cC...4cB2BBA75
0 ETH0.0010414922.35485512
Approve194186562024-03-12 11:19:47712 days ago1710242387IN
0x1ae378cC...4cB2BBA75
0 ETH0.0021251145.55539367
Approve193931822024-03-08 21:43:23716 days ago1709934203IN
0x1ae378cC...4cB2BBA75
0 ETH0.0033848972.56098183
Approve193834492024-03-07 12:59:23717 days ago1709816363IN
0x1ae378cC...4cB2BBA75
0 ETH0.0022522848.60666841
Approve192965532024-02-24 9:28:23729 days ago1708766903IN
0x1ae378cC...4cB2BBA75
0 ETH0.0006212125.49630853
Approve192324612024-02-15 9:33:35738 days ago1707989615IN
0x1ae378cC...4cB2BBA75
0 ETH0.0009788621.01065241
Approve192096382024-02-12 4:43:35741 days ago1707713015IN
0x1ae378cC...4cB2BBA75
0 ETH0.0010370822.23162275
Approve191686782024-02-06 10:42:35747 days ago1707216155IN
0x1ae378cC...4cB2BBA75
0 ETH0.0006995326.47230668
Approve191686672024-02-06 10:40:11747 days ago1707216011IN
0x1ae378cC...4cB2BBA75
0 ETH0.0012447926.87090693
Approve191116662024-01-29 10:43:47755 days ago1706525027IN
0x1ae378cC...4cB2BBA75
0 ETH0.0005179611.16956323
Approve189224742024-01-02 21:49:11782 days ago1704232151IN
0x1ae378cC...4cB2BBA75
0 ETH0.0012359526.52889232
Approve188717722023-12-26 18:52:23789 days ago1703616743IN
0x1ae378cC...4cB2BBA75
0 ETH0.0008850518.99717919
Approve188253312023-12-20 6:27:23795 days ago1703053643IN
0x1ae378cC...4cB2BBA75
0 ETH0.0018356839.35103311
Approve187822202023-12-14 5:11:59801 days ago1702530719IN
0x1ae378cC...4cB2BBA75
0 ETH0.0010380439.35428637
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer195019432024-03-24 4:09:11700 days ago1711253351
0x1ae378cC...4cB2BBA75
0.04 ETH
Transfer195019432024-03-24 4:09:11700 days ago1711253351
0x1ae378cC...4cB2BBA75
0.04 ETH
Transfer178916112023-08-11 12:21:47926 days ago1691756507
0x1ae378cC...4cB2BBA75
0.00134275 ETH
Transfer178916112023-08-11 12:21:47926 days ago1691756507
0x1ae378cC...4cB2BBA75
0.00134275 ETH
Transfer178857072023-08-10 16:33:47927 days ago1691685227
0x1ae378cC...4cB2BBA75
0.00281719 ETH
Transfer178857072023-08-10 16:33:47927 days ago1691685227
0x1ae378cC...4cB2BBA75
0.00281719 ETH
Transfer178853772023-08-10 15:27:35927 days ago1691681255
0x1ae378cC...4cB2BBA75
0.001209 ETH
Transfer178853772023-08-10 15:27:35927 days ago1691681255
0x1ae378cC...4cB2BBA75
0.001209 ETH
Transfer178849402023-08-10 13:59:47927 days ago1691675987
0x1ae378cC...4cB2BBA75
0.00111061 ETH
Transfer178849402023-08-10 13:59:47927 days ago1691675987
0x1ae378cC...4cB2BBA75
0.00111061 ETH
Transfer178848962023-08-10 13:50:59927 days ago1691675459
0x1ae378cC...4cB2BBA75
0.00211613 ETH
Transfer178848962023-08-10 13:50:59927 days ago1691675459
0x1ae378cC...4cB2BBA75
0.00211613 ETH
Transfer178847242023-08-10 13:16:23927 days ago1691673383
0x1ae378cC...4cB2BBA75
0.00100806 ETH
Transfer178847242023-08-10 13:16:23927 days ago1691673383
0x1ae378cC...4cB2BBA75
0.00100806 ETH
Transfer178846732023-08-10 13:06:11927 days ago1691672771
0x1ae378cC...4cB2BBA75
0.00105947 ETH
Transfer178846732023-08-10 13:06:11927 days ago1691672771
0x1ae378cC...4cB2BBA75
0.00105947 ETH
Transfer178845602023-08-10 12:43:35927 days ago1691671415
0x1ae378cC...4cB2BBA75
0.00055609 ETH
Transfer178845602023-08-10 12:43:35927 days ago1691671415
0x1ae378cC...4cB2BBA75
0.00055609 ETH
Transfer178844262023-08-10 12:16:35927 days ago1691669795
0x1ae378cC...4cB2BBA75
0.00084716 ETH
Transfer178844262023-08-10 12:16:35927 days ago1691669795
0x1ae378cC...4cB2BBA75
0.00084716 ETH
Transfer178836902023-08-10 9:47:59927 days ago1691660879
0x1ae378cC...4cB2BBA75
0.00066025 ETH
Transfer178836902023-08-10 9:47:59927 days ago1691660879
0x1ae378cC...4cB2BBA75
0.00066025 ETH
Transfer178833252023-08-10 8:33:59927 days ago1691656439
0x1ae378cC...4cB2BBA75
0.00066119 ETH
Transfer178833252023-08-10 8:33:59927 days ago1691656439
0x1ae378cC...4cB2BBA75
0.00066119 ETH
Transfer178831712023-08-10 8:03:11927 days ago1691654591
0x1ae378cC...4cB2BBA75
0.01488143 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
KingdomToken

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2023-01-10
*/

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

/*

Kingdom (KNDM)

Twitter: https://twitter.com/kingdomerc

Tg: https://t.me/KingdomEntry

Website: https://kingdometh.com

Whitepaper: https://kingdometh.com/whitepaper

*/

abstract contract Ownable {
    address private _owner;
    address private _dev;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    event DevTransferred(address indexed previousDev, address indexed newDev);

    constructor(address owner_, address dev_) {
        _transferOwnership(owner_);
        _transferDev(dev_);
    }

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

    function dev() public view virtual returns (address) {
        return _dev;
    }

    function _transferOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }

    function _transferDev(address newDev) internal virtual {
        address oldDev = _dev;
        _dev = newDev;
        emit DevTransferred(oldDev, newDev);
    }

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

    function transferDev(address newDev) public virtual onlyDev {
        require(newDev != address(0), "Ownable: new dev is the zero address");
        _transferDev(newDev);
    }

    modifier onlyOwner() {
        require(owner() == msg.sender, "Ownable: caller is not the owner");
        _;
    }

    modifier onlyDev() {
        require(dev() == msg.sender, "Ownable: caller is not the dev");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        _transferOwnership(address(0));
    }

    function renounceDev() public virtual onlyDev {
        _transferDev(address(0));
    }

}

interface IERC20 {

    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);
    event Approval(address indexed owner, address indexed spender, uint256 value);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    function balanceOf(address account) external view returns (uint256);
    function totalSupply() external view returns (uint256);
    event Transfer(address indexed from, address indexed to, uint256 value);

}

interface IERC20Metadata is IERC20 {

    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function decimals() external view returns (uint8);

}

contract ERC20 is IERC20, IERC20Metadata {

    string private _symbol;
    string private _name;


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

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][msg.sender];
        require(currentAllowance >= amount, "ERC20: transfer amount greater than allowance");
        unchecked {
            _approve(sender, msg.sender, currentAllowance - amount);
        }

        return true;
    }

    function transfer(address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

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

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

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

    function decimals() public view virtual override returns (uint8) {
        return 18;
    }

    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal virtual {
        require(sender != address(0), "ERC20: transfer from zero address");
        require(recipient != address(0), "ERC20: transfer to zero address");

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount greater than balance");
        unchecked {
            _balances[sender] = senderBalance - amount;
        }
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);

    }

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

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

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

    function _mint(address account, uint256 amount) internal virtual {
        require(account != address(0), "ERC20: mint to the zero address");

        _totalSupply += amount;
        _balances[account] += amount;
        emit Transfer(address(0), account, amount);
    }

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

    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[msg.sender][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        unchecked {
            _approve(msg.sender, spender, currentAllowance - subtractedValue);
        }

        return true;
    }

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

}

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

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

    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    ) external payable returns (
        uint256 amountToken,
        uint256 amountETH,
        uint256 liquidity
    );
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}

contract KingdomToken is ERC20, Ownable {

    address public LPTokenReceiver;
    address public marketingReceiver;
    address public devReceiver;
    uint256 public minimumDevFee = 5;

    uint256 public buyTotalFees;
    uint256 public sellTotalFees;

    uint256 public buyMarketingFee;
    uint256 public buyDevFee;
    uint256 public buyLiquidityFee;

    uint256 public sellMarketingFee;
    uint256 public sellDevFee;
    uint256 public sellLiquidityFee;

    uint256 public tokensForMarketing;
    uint256 public tokensForDev;
    uint256 public tokensForLiquidity;

    IUniswapV2Router02 public router;
    address public liquidityPair;

    mapping(address => bool) public isAMM;

    uint256 public maxTransactionAmount;
    uint256 public maxWallet;

    mapping(address => bool) private isExcludedFromFee;
    mapping(address => bool) public isExcludedFromWalletLimits;

    uint256 public feeDenominator = 1000;
    
    bool private swapping;
    bool public limitsInEffect = true;

    // This feature can only be enabled and not disabled.
    // Enabling these will cap the buy or sell fee to some value
    // a value of 50 => 5% max. A value of 150 => 15% max
    bool maxSellFeeSet = false;
    bool maxBuyFeeSet = false;
    uint256 maxSellFee;
    uint256 maxBuyFee;

    bool public airdropComplete = false;
    bool public vestingFinished = false;

    mapping(address => uint256) public airdropAmount;
    uint256 public launchTime;
    uint256 public vestingPeriods = 20;
    uint256 public vestingPercent = 5;

    constructor(
        address router_,
        address LPTokenReceiver_,
        address marketingReceiver_,
        address devReceiver_
    ) ERC20("Kingdom", "KNDM") Ownable(msg.sender, msg.sender) {

        LPTokenReceiver = LPTokenReceiver_;
        devReceiver = devReceiver_;
        marketingReceiver = marketingReceiver_;

        router = IUniswapV2Router02(router_);

        liquidityPair = IUniswapV2Factory(
            router.factory()
        ).createPair(
            address(this),
            router.WETH()
        );

        isAMM[liquidityPair] = true;

        isExcludedFromWalletLimits[address(liquidityPair)] = true;
        isExcludedFromWalletLimits[address(router)] = true;        
        isExcludedFromWalletLimits[address(this)] = true;
        isExcludedFromWalletLimits[address(0xdead)] = true;
        isExcludedFromWalletLimits[msg.sender] = true;
        isExcludedFromWalletLimits[LPTokenReceiver] = true;

        uint256 totalSupply = 400_000_000_000 * 1e18;
        
        buyMarketingFee = 55;
        buyDevFee = 5;
        buyLiquidityFee = 20;

        sellMarketingFee = 55;
        sellDevFee = 5;
        sellLiquidityFee = 20;

        buyTotalFees = buyMarketingFee + buyDevFee + buyLiquidityFee;
        sellTotalFees = sellMarketingFee + sellDevFee + sellLiquidityFee;

        isExcludedFromFee[address(0xdead)] = true;
        isExcludedFromFee[address(this)] = true;
        isExcludedFromFee[msg.sender] = true;
        isExcludedFromFee[LPTokenReceiver] = true;

        maxTransactionAmount = totalSupply * 5 / 1000;
        maxWallet = totalSupply * 10 / 1000;

        /*
            _mint is an internal function in ERC20.sol that is only called here,
            and CANNOT be called ever again
        */
        _mint(msg.sender, totalSupply);
    }

    receive() external payable {}

    function airdropTokens(address[] calldata holders, uint256[] calldata amounts) external onlyOwner {
        require(!airdropComplete);

        for (uint i=0; i<holders.length; i++) {
            super._transfer(address(this), holders[i], amounts[i]);
            airdropAmount[holders[i]] += amounts[i];
        }
    }

    function finalizeAirdrop() external onlyOwner {
        require(!airdropComplete);
        airdropComplete = true;
    }

    function addLiquidity(uint256 tokenAmount) external payable onlyOwner {
        _addLiquidity(tokenAmount, msg.value);
        launchTime = block.timestamp;
    }

    function setBuyFees(uint256 marketingFee, uint256 devFee, uint256 liquidityFee) external onlyOwner {
        require(devFee >= minimumDevFee);
        buyMarketingFee = marketingFee;
        buyDevFee = devFee;
        buyLiquidityFee = liquidityFee;

        buyTotalFees = buyMarketingFee + buyDevFee + buyLiquidityFee;

        if (maxBuyFeeSet) {
            require(buyTotalFees <= maxBuyFee);
        }

    }

    function setSellFees(uint256 marketingFee, uint256 devFee, uint256 liquidityFee) external onlyOwner {
        require(devFee >= minimumDevFee);
        sellMarketingFee = marketingFee;
        sellDevFee = devFee;
        sellLiquidityFee = liquidityFee;

        sellTotalFees = sellMarketingFee + sellDevFee + sellLiquidityFee;

        if (maxSellFeeSet) {
            require(sellTotalFees <= maxSellFee);
        }

    }

    function setLimits(uint256 maxTransactionAmount_, uint256 maxWallet_) external onlyOwner {
        maxTransactionAmount = maxTransactionAmount_;
        maxWallet = maxWallet_;
    }

    function removeLimits() external onlyOwner {
        require(limitsInEffect);
        limitsInEffect = false;
    }

    function setLPTokenReceiver(address newReceiver) external onlyOwner {
        require(LPTokenReceiver != newReceiver);
        LPTokenReceiver = newReceiver;
    }

    function setMarketingReceiver(address newReceiver) external onlyOwner {
        require(marketingReceiver != newReceiver);
        marketingReceiver = newReceiver;
    }

    function setDevReceiver(address newReceiver) external onlyDev {
        require(devReceiver != newReceiver);
        devReceiver = newReceiver;
    }

    function setMinimumDevFee(uint256 minFee) external onlyDev {
        require(minFee < minimumDevFee);     // Dev fee minimum can only be lowered, not raised
        minimumDevFee = minFee;
    }

    function setAMM(address ammAddress, bool isAMM_) external onlyOwner {
        isAMM[ammAddress] = isAMM_;
    }

    function setWalletExcludedFromLimits(address wallet, bool isExcluded) external onlyOwner {
        isExcludedFromWalletLimits[wallet] = isExcluded;
    }

    function setWalletExcludedFromFees(address wallet, bool isExcluded) external onlyOwner {
        isExcludedFromFee[wallet] = isExcluded;
    }

    function setRouter(address router_) external onlyOwner {
        router = IUniswapV2Router02(router_);
    }

    function setLiquidityPair(address pairAddress) external onlyOwner {
        liquidityPair = pairAddress;
    }

    function enableMaxSellFeeLimit(uint256 limit) external onlyOwner {
        require(limit <= feeDenominator && limit < maxSellFee);
        maxSellFee = limit;
        maxSellFeeSet = true;
    }

    function enableMaxBuyFeeLimit(uint256 limit) external onlyOwner {
        require(limit <= feeDenominator && limit < maxBuyFee);
        maxBuyFee = limit;
        maxBuyFeeSet = true;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");

        if (amount == 0) {
            super._transfer(from, to, 0);
            return;
        }

        if (limitsInEffect) {
            if (
                from != owner() &&
                to != owner() &&
                to != address(0xdead) &&
                !swapping
            ) {

                if (
                    isAMM[from] &&
                    !isExcludedFromWalletLimits[to]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "!maxTransactionAmount."
                    );
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "!maxWallet"
                    );
                }

                else if (
                    isAMM[to] &&
                    !isExcludedFromWalletLimits[from]
                ) {
                    require(
                        amount <= maxTransactionAmount,
                        "!maxTransactionAmount."
                    );
                } else if (!isExcludedFromWalletLimits[to]) {
                    require(
                        amount + balanceOf(to) <= maxWallet,
                        "!maxWallet"
                    );
                }

            }
        }

        if (!vestingFinished) {            
            uint256 airdroppedTokenAmount = airdropAmount[from];

            if (airdroppedTokenAmount > 0) {
                
                uint256 elapsedPeriods = (block.timestamp - launchTime) / 86400;

                if (elapsedPeriods < vestingPeriods) {
                    uint256 minimumBalance = airdroppedTokenAmount - (
                        // a number ranging from 0 to 100
                        elapsedPeriods * vestingPercent
                        * airdroppedTokenAmount
                        / 100
                    );
                    require(balanceOf(from) - amount >= minimumBalance);
                } else {
                    vestingFinished = true;
                }
            }
        }

        bool takeFee = !swapping;

        if (isExcludedFromFee[from] || isExcludedFromFee[to]) {
            takeFee = false;
        }

        if (takeFee) {

            uint256 fees = 0;

            if (isAMM[to] && sellTotalFees > 0) {
                uint256 newTokensForDev = amount * sellDevFee / feeDenominator;
                uint256 newTokensForMarketing = amount * sellMarketingFee / feeDenominator;
                uint256 newTokensForLiquidity = amount * sellLiquidityFee / feeDenominator;

                fees = newTokensForDev + newTokensForMarketing + newTokensForLiquidity;

                tokensForDev += newTokensForDev;
                tokensForMarketing += newTokensForMarketing;
                tokensForLiquidity += newTokensForLiquidity;
            }

            else if (isAMM[from] && buyTotalFees > 0) {
                uint256 newTokensForDev = amount * buyDevFee / feeDenominator;
                uint256 newTokensForMarketing = amount * buyMarketingFee / feeDenominator;
                uint256 newTokensForLiquidity = amount * buyLiquidityFee / feeDenominator;

                fees = newTokensForDev + newTokensForMarketing + newTokensForLiquidity;

                tokensForDev += newTokensForDev;
                tokensForMarketing += newTokensForMarketing;
                tokensForLiquidity += newTokensForLiquidity;
            }

            if (fees > 0) {
                super._transfer(from, address(this), fees);
                amount -= fees;
            }
        }

        if (
            !swapping &&
            from != liquidityPair &&
            !isExcludedFromFee[from] &&
            !isExcludedFromFee[to]
        ) {
            swapping = true;

            swapBack();

            swapping = false;
        }


        super._transfer(from, to, amount);
    }

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

    function swapBack() internal {
        if (tokensForLiquidity + tokensForDev + tokensForMarketing == 0) {
            return;
        }

        uint256 liquidity = tokensForLiquidity / 2;
        uint256 amountToSwapForETH = tokensForDev + tokensForMarketing + (tokensForLiquidity - liquidity);
        swapTokensForEth(amountToSwapForETH);

        uint256 ethForLiquidity = address(this).balance * (tokensForLiquidity - liquidity) / amountToSwapForETH;

        if (liquidity > 0 && ethForLiquidity > 0) {
            _addLiquidity(liquidity, ethForLiquidity);
        }

        if (tokensForMarketing + tokensForDev > 0) {
            uint256 remainingBalance = address(this).balance;
            uint256 amountForMarketing = remainingBalance * tokensForMarketing / (tokensForMarketing + tokensForDev);
            uint256 amountForDev = remainingBalance - amountForMarketing;
            
            if (amountForMarketing > 0) {
                marketingReceiver.call{value: amountForMarketing}("");    
            }

            if (amountForDev > 0) {
                devReceiver.call{value: amountForDev}("");    
            }
        }

        tokensForLiquidity = 0;
        tokensForDev = 0;
        tokensForMarketing = 0;
    }

    function _addLiquidity(uint256 tokenAmount, uint256 ethAmount) internal {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ethAmount} (
            address(this),
            tokenAmount,
            0,
            0,
            LPTokenReceiver,
            block.timestamp
        );
    }

}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"router_","type":"address"},{"internalType":"address","name":"LPTokenReceiver_","type":"address"},{"internalType":"address","name":"marketingReceiver_","type":"address"},{"internalType":"address","name":"devReceiver_","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":true,"internalType":"address","name":"previousDev","type":"address"},{"indexed":true,"internalType":"address","name":"newDev","type":"address"}],"name":"DevTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"LPTokenReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"airdropAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"airdropComplete","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"holders","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdropTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dev","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"devReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"name":"enableMaxBuyFeeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"limit","type":"uint256"}],"name":"enableMaxSellFeeLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"finalizeAirdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isAMM","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExcludedFromWalletLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceDev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"ammAddress","type":"address"},{"internalType":"bool","name":"isAMM_","type":"bool"}],"name":"setAMM","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"devFee","type":"uint256"},{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newReceiver","type":"address"}],"name":"setDevReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newReceiver","type":"address"}],"name":"setLPTokenReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTransactionAmount_","type":"uint256"},{"internalType":"uint256","name":"maxWallet_","type":"uint256"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pairAddress","type":"address"}],"name":"setLiquidityPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newReceiver","type":"address"}],"name":"setMarketingReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"minFee","type":"uint256"}],"name":"setMinimumDevFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"router_","type":"address"}],"name":"setRouter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"devFee","type":"uint256"},{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"setWalletExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"setWalletExcludedFromLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newDev","type":"address"}],"name":"transferDev","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vestingFinished","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vestingPercent","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"vestingPeriods","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526005600a8190556103e8601d55601e805463ffffff0019166101001790556021805461ffff1916905560146024556025553480156200004257600080fd5b50604051620033773803806200337783398101604081905262000065916200062e565b3333604051806040016040528060078152602001664b696e67646f6d60c81b815250604051806040016040528060048152602001634b4e444d60e01b8152508160019081620000b5919062000730565b506000620000c4828262000730565b505050620000d8826200048560201b60201c565b620000e381620004d7565b5050600780546001600160a01b038086166001600160a01b03199283161790925560098054848416908316179055600880548584169083161790556016805492871692909116821790556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa15801562000169573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200018f9190620007fc565b6001600160a01b031663c9c6539630601660009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002189190620007fc565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af115801562000266573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200028c9190620007fc565b601780546001600160a01b0319166001600160a01b0392831690811782556000908152601860209081526040808320805460ff199081166001908117909255945486168452601c909252808320805485168317905560165485168352808320805485168317905530835280832080548516831790557fa48bd8e7b1565515cde2859b6cc48308ba05b5325bcf90fb096b9ac0b8087dfc805485168317905533835280832080548516831790556007549094168252929020805490911690911790556037600d8190556005600e8190556014600f8190556010839055601182905560128190556c050c783eb9b5c85f2a800000009290916200038d9162000837565b62000399919062000837565b600b55601254601154601054620003b1919062000837565b620003bd919062000837565b600c55601b6020527f6790d4910a095e0e04c8daa388834616a295bac3f59038957b6d0b93a2d216848054600160ff1991821681179092553060009081526040808220805484168517905533825280822080548416851790556007546001600160a01b031682529020805490911690911790556103e86200044082600562000853565b6200044c91906200086d565b6019556103e86200045f82600a62000853565b6200046b91906200086d565b601a556200047a338262000529565b505050505062000890565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f0a7a876011ed454af2a81330188fddbd93c5cb571ff0ab73fbd5f4f9c8ee477e90600090a35050565b6001600160a01b038216620005845760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b806003600082825462000598919062000837565b90915550506001600160a01b03821660009081526004602052604081208054839290620005c790849062000837565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b80516001600160a01b03811681146200062957600080fd5b919050565b600080600080608085870312156200064557600080fd5b620006508562000611565b9350620006606020860162000611565b9250620006706040860162000611565b9150620006806060860162000611565b905092959194509250565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620006b657607f821691505b602082108103620006d757634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200072b57600081815260208120601f850160051c81016020861015620007065750805b601f850160051c820191505b81811015620007275782815560010162000712565b5050505b505050565b81516001600160401b038111156200074c576200074c6200068b565b62000764816200075d8454620006a1565b84620006dd565b602080601f8311600181146200079c5760008415620007835750858301515b600019600386901b1c1916600185901b17855562000727565b600085815260208120601f198616915b82811015620007cd57888601518255948401946001909101908401620007ac565b5085821015620007ec5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156200080f57600080fd5b6200081a8262000611565b9392505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156200084d576200084d62000821565b92915050565b80820281158282048414176200084d576200084d62000821565b6000826200088b57634e487b7160e01b600052601260045260246000fd5b500490565b612ad780620008a06000396000f3fe6080604052600436106103c75760003560e01c80638d67cffe116101f2578063c0d786551161010d578063e219558e116100a0578063f63743421161006f578063f637434214610b0a578063f887ea4014610b20578063f8b45b0514610b40578063fdc149ef14610b5657600080fd5b8063e219558e14610a94578063e99ab6f914610ab4578063f11a24d314610ad4578063f2fde38b14610aea57600080fd5b8063d46b6a30116100dc578063d46b6a30146109e8578063d6498bc214610a18578063d85ba06314610a38578063dd62ed3e14610a4e57600080fd5b8063c0d786551461097c578063c4590d3f1461099c578063c8c8ebe4146109bc578063ccf2cf80146109d257600080fd5b80639fccce3211610185578063a5949bcf11610154578063a5949bcf146108ef578063a9059cbb1461090f578063a9d3cd8a1461092f578063b530dc8c1461094f57600080fd5b80639fccce32146108835780639ff84a9814610899578063a0d82dc5146108b9578063a457c2d7146108cf57600080fd5b806392136913116101c1578063921369131461082257806395d89b41146108385780639c3b4fdc1461084d5780639d93598e1461086357600080fd5b80638d67cffe146107a65780638da5cb5b146107c65780638e89cf4d146107e457806391cca3db1461080457600080fd5b806339509351116102e2578063706f69371161027557806375b625321161024457806375b625321461073a578063790ca4131461075a5780637bce5a0414610770578063808a54571461078657600080fd5b8063706f6937146106ba57806370a08231146106da578063715018a614610710578063751039fc1461072557600080fd5b80636940213a116102b15780636940213a1461063a578063696635871461066a5780636a486a8e146106845780636f9a880e1461069a57600080fd5b806339509351146105d25780633aeb6c71146105f25780634a62bb651461060857806351c6590a1461062757600080fd5b80631a8145bb1161035a578063313ce56711610329578063313ce56714610562578063328873601461057e578063332ca4f214610593578063388ac95b146105b357600080fd5b80631a8145bb146104de5780631f3fed8f146104f457806323b872dd1461050a57806323c04d9d1461052a57600080fd5b80630e99dcad116103965780630e99dcad146104655780630f683e9014610485578063180b0d7e146104a557806318160ddd146104c957600080fd5b806306fdde03146103d3578063076b44d3146103fe578063095ea7b3146104155780630d075d9c1461044557600080fd5b366103ce57005b600080fd5b3480156103df57600080fd5b506103e8610b6c565b6040516103f5919061261c565b60405180910390f35b34801561040a57600080fd5b50610413610bfe565b005b34801561042157600080fd5b5061043561043036600461267f565b610c4c565b60405190151581526020016103f5565b34801561045157600080fd5b506104136104603660046126ab565b610c63565b34801561047157600080fd5b506104136104803660046126d7565b610cfa565b34801561049157600080fd5b506104136104a03660046126ab565b610d6f565b3480156104b157600080fd5b506104bb601d5481565b6040519081526020016103f5565b3480156104d557600080fd5b506003546104bb565b3480156104ea57600080fd5b506104bb60155481565b34801561050057600080fd5b506104bb60135481565b34801561051657600080fd5b506104356105253660046126fb565b610e00565b34801561053657600080fd5b5060075461054a906001600160a01b031681565b6040516001600160a01b0390911681526020016103f5565b34801561056e57600080fd5b50604051601281526020016103f5565b34801561058a57600080fd5b50610413610eaf565b34801561059f57600080fd5b506104136105ae3660046126d7565b610f07565b3480156105bf57600080fd5b5060215461043590610100900460ff1681565b3480156105de57600080fd5b506104356105ed36600461267f565b610fae565b3480156105fe57600080fd5b506104bb60255481565b34801561061457600080fd5b50601e5461043590610100900460ff1681565b61041361063536600461273c565b610fea565b34801561064657600080fd5b506104356106553660046126d7565b601c6020526000908152604090205460ff1681565b34801561067657600080fd5b506021546104359060ff1681565b34801561069057600080fd5b506104bb600c5481565b3480156106a657600080fd5b5060095461054a906001600160a01b031681565b3480156106c657600080fd5b506104136106d53660046127a1565b611034565b3480156106e657600080fd5b506104bb6106f53660046126d7565b6001600160a01b031660009081526004602052604090205490565b34801561071c57600080fd5b50610413611163565b34801561073157600080fd5b506104136111a6565b34801561074657600080fd5b506104136107553660046126d7565b611200565b34801561076657600080fd5b506104bb60235481565b34801561077c57600080fd5b506104bb600d5481565b34801561079257600080fd5b5060175461054a906001600160a01b031681565b3480156107b257600080fd5b506104136107c136600461273c565b611275565b3480156107d257600080fd5b506005546001600160a01b031661054a565b3480156107f057600080fd5b506104136107ff36600461280d565b6112e0565b34801561081057600080fd5b506006546001600160a01b031661054a565b34801561082e57600080fd5b506104bb60105481565b34801561084457600080fd5b506103e8611344565b34801561085957600080fd5b506104bb600e5481565b34801561086f57600080fd5b5061041361087e3660046126d7565b611353565b34801561088f57600080fd5b506104bb60145481565b3480156108a557600080fd5b506104136108b43660046126d7565b6113ae565b3480156108c557600080fd5b506104bb60115481565b3480156108db57600080fd5b506104356108ea36600461267f565b611423565b3480156108fb57600080fd5b5060085461054a906001600160a01b031681565b34801561091b57600080fd5b5061043561092a36600461267f565b6114bc565b34801561093b57600080fd5b5061041361094a36600461280d565b6114c9565b34801561095b57600080fd5b506104bb61096a3660046126d7565b60226020526000908152604090205481565b34801561098857600080fd5b506104136109973660046126d7565b61152d565b3480156109a857600080fd5b506104136109b736600461284b565b611588565b3480156109c857600080fd5b506104bb60195481565b3480156109de57600080fd5b506104bb600a5481565b3480156109f457600080fd5b50610435610a033660046126d7565b60186020526000908152604090205460ff1681565b348015610a2457600080fd5b50610413610a3336600461280d565b6115cc565b348015610a4457600080fd5b506104bb600b5481565b348015610a5a57600080fd5b506104bb610a6936600461286d565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b348015610aa057600080fd5b50610413610aaf36600461273c565b611630565b348015610ac057600080fd5b50610413610acf36600461273c565b61169d565b348015610ae057600080fd5b506104bb600f5481565b348015610af657600080fd5b50610413610b053660046126d7565b6116e9565b348015610b1657600080fd5b506104bb60125481565b348015610b2c57600080fd5b5060165461054a906001600160a01b031681565b348015610b4c57600080fd5b506104bb601a5481565b348015610b6257600080fd5b506104bb60245481565b606060018054610b7b9061289b565b80601f0160208091040260200160405190810160405280929190818152602001828054610ba79061289b565b8015610bf45780601f10610bc957610100808354040283529160200191610bf4565b820191906000526020600020905b815481529060010190602001808311610bd757829003601f168201915b5050505050905090565b33610c116006546001600160a01b031690565b6001600160a01b031614610c405760405162461bcd60e51b8152600401610c37906128d5565b60405180910390fd5b610c4a6000611790565b565b6000610c593384846117e2565b5060015b92915050565b33610c766005546001600160a01b031690565b6001600160a01b031614610c9c5760405162461bcd60e51b8152600401610c379061290c565b600a54821015610cab57600080fd5b600d839055600e829055600f81905580610cc58385612957565b610ccf9190612957565b600b55601e546301000000900460ff1615610cf557602054600b541115610cf557600080fd5b505050565b33610d0d6005546001600160a01b031690565b6001600160a01b031614610d335760405162461bcd60e51b8152600401610c379061290c565b6007546001600160a01b03808316911603610d4d57600080fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b33610d826005546001600160a01b031690565b6001600160a01b031614610da85760405162461bcd60e51b8152600401610c379061290c565b600a54821015610db757600080fd5b60108390556011829055601281905580610dd18385612957565b610ddb9190612957565b600c55601e5462010000900460ff1615610cf557601f54600c541115610cf557600080fd5b6000610e0d848484611906565b6001600160a01b038416600090815260026020908152604080832033845290915290205482811015610e975760405162461bcd60e51b815260206004820152602d60248201527f45524332303a207472616e7366657220616d6f756e742067726561746572207460448201526c68616e20616c6c6f77616e636560981b6064820152608401610c37565b610ea485338584036117e2565b506001949350505050565b33610ec26005546001600160a01b031690565b6001600160a01b031614610ee85760405162461bcd60e51b8152600401610c379061290c565b60215460ff1615610ef857600080fd5b6021805460ff19166001179055565b33610f1a6006546001600160a01b031690565b6001600160a01b031614610f405760405162461bcd60e51b8152600401610c37906128d5565b6001600160a01b038116610fa25760405162461bcd60e51b8152602060048201526024808201527f4f776e61626c653a206e65772064657620697320746865207a65726f206164646044820152637265737360e01b6064820152608401610c37565b610fab81611790565b50565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610c59918590610fe5908690612957565b6117e2565b33610ffd6005546001600160a01b031690565b6001600160a01b0316146110235760405162461bcd60e51b8152600401610c379061290c565b61102d8134612027565b5042602355565b336110476005546001600160a01b031690565b6001600160a01b03161461106d5760405162461bcd60e51b8152600401610c379061290c565b60215460ff161561107d57600080fd5b60005b8381101561115c576110d13086868481811061109e5761109e61296a565b90506020020160208101906110b391906126d7565b8585858181106110c5576110c561296a565b905060200201356120d4565b8282828181106110e3576110e361296a565b90506020020135602260008787858181106111005761110061296a565b905060200201602081019061111591906126d7565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546111449190612957565b9091555081905061115481612980565b915050611080565b5050505050565b336111766005546001600160a01b031690565b6001600160a01b03161461119c5760405162461bcd60e51b8152600401610c379061290c565b610c4a6000612298565b336111b96005546001600160a01b031690565b6001600160a01b0316146111df5760405162461bcd60e51b8152600401610c379061290c565b601e54610100900460ff166111f357600080fd5b601e805461ff0019169055565b336112136005546001600160a01b031690565b6001600160a01b0316146112395760405162461bcd60e51b8152600401610c379061290c565b6008546001600160a01b0380831691160361125357600080fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b336112886005546001600160a01b031690565b6001600160a01b0316146112ae5760405162461bcd60e51b8152600401610c379061290c565b601d5481111580156112c15750601f5481105b6112ca57600080fd5b601f55601e805462ff0000191662010000179055565b336112f36005546001600160a01b031690565b6001600160a01b0316146113195760405162461bcd60e51b8152600401610c379061290c565b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b606060008054610b7b9061289b565b336113666005546001600160a01b031690565b6001600160a01b03161461138c5760405162461bcd60e51b8152600401610c379061290c565b601780546001600160a01b0319166001600160a01b0392909216919091179055565b336113c16006546001600160a01b031690565b6001600160a01b0316146113e75760405162461bcd60e51b8152600401610c37906128d5565b6009546001600160a01b0380831691160361140157600080fd5b600980546001600160a01b0319166001600160a01b0392909216919091179055565b3360009081526002602090815260408083206001600160a01b0386168452909152812054828110156114a55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610c37565b6114b233858584036117e2565b5060019392505050565b6000610c59338484611906565b336114dc6005546001600160a01b031690565b6001600160a01b0316146115025760405162461bcd60e51b8152600401610c379061290c565b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b336115406005546001600160a01b031690565b6001600160a01b0316146115665760405162461bcd60e51b8152600401610c379061290c565b601680546001600160a01b0319166001600160a01b0392909216919091179055565b3361159b6005546001600160a01b031690565b6001600160a01b0316146115c15760405162461bcd60e51b8152600401610c379061290c565b601991909155601a55565b336115df6005546001600160a01b031690565b6001600160a01b0316146116055760405162461bcd60e51b8152600401610c379061290c565b6001600160a01b03919091166000908152601c60205260409020805460ff1916911515919091179055565b336116436005546001600160a01b031690565b6001600160a01b0316146116695760405162461bcd60e51b8152600401610c379061290c565b601d54811115801561167c575060205481105b61168557600080fd5b602055601e805463ff00000019166301000000179055565b336116b06006546001600160a01b031690565b6001600160a01b0316146116d65760405162461bcd60e51b8152600401610c37906128d5565b600a5481106116e457600080fd5b600a55565b336116fc6005546001600160a01b031690565b6001600160a01b0316146117225760405162461bcd60e51b8152600401610c379061290c565b6001600160a01b0381166117875760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c37565b610fab81612298565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f0a7a876011ed454af2a81330188fddbd93c5cb571ff0ab73fbd5f4f9c8ee477e90600090a35050565b6001600160a01b0383166118445760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c37565b6001600160a01b0382166118a55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c37565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661196a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c37565b6001600160a01b0382166119cc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610c37565b806000036119e057610cf5838360006120d4565b601e54610100900460ff1615611c50576005546001600160a01b03848116911614801590611a1c57506005546001600160a01b03838116911614155b8015611a3357506001600160a01b03821661dead14155b8015611a425750601e5460ff16155b15611c50576001600160a01b03831660009081526018602052604090205460ff168015611a8857506001600160a01b0382166000908152601c602052604090205460ff16155b15611b3e57601954811115611ad85760405162461bcd60e51b815260206004820152601660248201527510b6b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6044820152606401610c37565b601a546001600160a01b038316600090815260046020526040902054611afe9083612957565b1115611b395760405162461bcd60e51b815260206004820152600a602482015269085b585e15d85b1b195d60b21b6044820152606401610c37565b611c50565b6001600160a01b03821660009081526018602052604090205460ff168015611b7f57506001600160a01b0383166000908152601c602052604090205460ff16155b15611bcf57601954811115611b395760405162461bcd60e51b815260206004820152601660248201527510b6b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6044820152606401610c37565b6001600160a01b0382166000908152601c602052604090205460ff16611c5057601a546001600160a01b038316600090815260046020526040902054611c159083612957565b1115611c505760405162461bcd60e51b815260206004820152600a602482015269085b585e15d85b1b195d60b21b6044820152606401610c37565b602154610100900460ff16611d2b576001600160a01b0383166000908152602260205260409020548015611d295760006201518060235442611c929190612999565b611c9c91906129ac565b9050602454811015611d1757600060648360255484611cbb91906129ce565b611cc591906129ce565b611ccf91906129ac565b611cd99084612999565b90508084611cfc886001600160a01b031660009081526004602052604090205490565b611d069190612999565b1015611d1157600080fd5b50611d27565b6021805461ff0019166101001790555b505b505b601e546001600160a01b0384166000908152601b602052604090205460ff91821615911680611d7257506001600160a01b0383166000908152601b602052604090205460ff165b15611d7b575060005b8015611f86576001600160a01b03831660009081526018602052604081205460ff168015611dab57506000600c54115b15611e76576000601d5460115485611dc391906129ce565b611dcd91906129ac565b90506000601d5460105486611de291906129ce565b611dec91906129ac565b90506000601d5460125487611e0191906129ce565b611e0b91906129ac565b905080611e188385612957565b611e229190612957565b93508260146000828254611e369190612957565b925050819055508160136000828254611e4f9190612957565b925050819055508060156000828254611e689190612957565b90915550611f669350505050565b6001600160a01b03851660009081526018602052604090205460ff168015611ea057506000600b54115b15611f66576000601d54600e5485611eb891906129ce565b611ec291906129ac565b90506000601d54600d5486611ed791906129ce565b611ee191906129ac565b90506000601d54600f5487611ef691906129ce565b611f0091906129ac565b905080611f0d8385612957565b611f179190612957565b93508260146000828254611f2b9190612957565b925050819055508160136000828254611f449190612957565b925050819055508060156000828254611f5d9190612957565b90915550505050505b8015611f8457611f778530836120d4565b611f818184612999565b92505b505b601e5460ff16158015611fa757506017546001600160a01b03858116911614155b8015611fcc57506001600160a01b0384166000908152601b602052604090205460ff16155b8015611ff157506001600160a01b0383166000908152601b602052604090205460ff16155b1561201657601e805460ff1916600117905561200b6122ea565b601e805460ff191690555b6120218484846120d4565b50505050565b60165461203f9030906001600160a01b0316846117e2565b60165460075460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156120af573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061115c91906129e5565b6001600160a01b0383166121345760405162461bcd60e51b815260206004820152602160248201527f45524332303a207472616e736665722066726f6d207a65726f206164647265736044820152607360f81b6064820152608401610c37565b6001600160a01b03821661218a5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a207472616e7366657220746f207a65726f2061646472657373006044820152606401610c37565b6001600160a01b038316600090815260046020526040902054818110156122075760405162461bcd60e51b815260206004820152602b60248201527f45524332303a207472616e7366657220616d6f756e742067726561746572207460448201526a68616e2062616c616e636560a81b6064820152608401610c37565b6001600160a01b0380851660009081526004602052604080822085850390559185168152908120805484929061223e908490612957565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161228a91815260200190565b60405180910390a350505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6013546014546015546122fd9190612957565b6123079190612957565b60000361231057565b6000600260155461232191906129ac565b90506000816015546123339190612999565b6013546014546123439190612957565b61234d9190612957565b9050612358816124c2565b600081836015546123699190612999565b61237390476129ce565b61237d91906129ac565b905060008311801561238f5750600081115b1561239e5761239e8382612027565b60006014546013546123b09190612957565b11156124ae5760145460135447916000916123cb9190612957565b6013546123d890846129ce565b6123e291906129ac565b905060006123f08284612999565b9050811561244e576008546040516001600160a01b03909116908390600081818185875af1925050503d8060008114612445576040519150601f19603f3d011682016040523d82523d6000602084013e61244a565b606091505b5050505b80156124aa576009546040516001600160a01b03909116908290600081818185875af1925050503d80600081146124a1576040519150601f19603f3d011682016040523d82523d6000602084013e6124a6565b606091505b5050505b5050505b505060006015819055601481905560135550565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106124f7576124f761296a565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612550573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125749190612a13565b816001815181106125875761258761296a565b6001600160a01b0392831660209182029290920101526016546125ad91309116846117e2565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac947906125e6908590600090869030904290600401612a30565b600060405180830381600087803b15801561260057600080fd5b505af1158015612614573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b818110156126495785810183015185820160400152820161262d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610fab57600080fd5b6000806040838503121561269257600080fd5b823561269d8161266a565b946020939093013593505050565b6000806000606084860312156126c057600080fd5b505081359360208301359350604090920135919050565b6000602082840312156126e957600080fd5b81356126f48161266a565b9392505050565b60008060006060848603121561271057600080fd5b833561271b8161266a565b9250602084013561272b8161266a565b929592945050506040919091013590565b60006020828403121561274e57600080fd5b5035919050565b60008083601f84011261276757600080fd5b50813567ffffffffffffffff81111561277f57600080fd5b6020830191508360208260051b850101111561279a57600080fd5b9250929050565b600080600080604085870312156127b757600080fd5b843567ffffffffffffffff808211156127cf57600080fd5b6127db88838901612755565b909650945060208701359150808211156127f457600080fd5b5061280187828801612755565b95989497509550505050565b6000806040838503121561282057600080fd5b823561282b8161266a565b91506020830135801515811461284057600080fd5b809150509250929050565b6000806040838503121561285e57600080fd5b50508035926020909101359150565b6000806040838503121561288057600080fd5b823561288b8161266a565b915060208301356128408161266a565b600181811c908216806128af57607f821691505b6020821081036128cf57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252601e908201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206465760000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c5d57610c5d612941565b634e487b7160e01b600052603260045260246000fd5b60006001820161299257612992612941565b5060010190565b81810381811115610c5d57610c5d612941565b6000826129c957634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610c5d57610c5d612941565b6000806000606084860312156129fa57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215612a2557600080fd5b81516126f48161266a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612a805784516001600160a01b031683529383019391830191600101612a5b565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220faf8670e98f82e7a6281c90971adb649f92b82642d1c6902fbb1a3d908eeb75b64736f6c634300081100330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000dcb5ac17635bd8dd0ccf049602ce614a2477872d0000000000000000000000005040ab1cddb502061d94b52769b5192804f34e1500000000000000000000000099272926cb5995cc4eea9cd1bc03bc3cd952c7de

Deployed Bytecode

0x6080604052600436106103c75760003560e01c80638d67cffe116101f2578063c0d786551161010d578063e219558e116100a0578063f63743421161006f578063f637434214610b0a578063f887ea4014610b20578063f8b45b0514610b40578063fdc149ef14610b5657600080fd5b8063e219558e14610a94578063e99ab6f914610ab4578063f11a24d314610ad4578063f2fde38b14610aea57600080fd5b8063d46b6a30116100dc578063d46b6a30146109e8578063d6498bc214610a18578063d85ba06314610a38578063dd62ed3e14610a4e57600080fd5b8063c0d786551461097c578063c4590d3f1461099c578063c8c8ebe4146109bc578063ccf2cf80146109d257600080fd5b80639fccce3211610185578063a5949bcf11610154578063a5949bcf146108ef578063a9059cbb1461090f578063a9d3cd8a1461092f578063b530dc8c1461094f57600080fd5b80639fccce32146108835780639ff84a9814610899578063a0d82dc5146108b9578063a457c2d7146108cf57600080fd5b806392136913116101c1578063921369131461082257806395d89b41146108385780639c3b4fdc1461084d5780639d93598e1461086357600080fd5b80638d67cffe146107a65780638da5cb5b146107c65780638e89cf4d146107e457806391cca3db1461080457600080fd5b806339509351116102e2578063706f69371161027557806375b625321161024457806375b625321461073a578063790ca4131461075a5780637bce5a0414610770578063808a54571461078657600080fd5b8063706f6937146106ba57806370a08231146106da578063715018a614610710578063751039fc1461072557600080fd5b80636940213a116102b15780636940213a1461063a578063696635871461066a5780636a486a8e146106845780636f9a880e1461069a57600080fd5b806339509351146105d25780633aeb6c71146105f25780634a62bb651461060857806351c6590a1461062757600080fd5b80631a8145bb1161035a578063313ce56711610329578063313ce56714610562578063328873601461057e578063332ca4f214610593578063388ac95b146105b357600080fd5b80631a8145bb146104de5780631f3fed8f146104f457806323b872dd1461050a57806323c04d9d1461052a57600080fd5b80630e99dcad116103965780630e99dcad146104655780630f683e9014610485578063180b0d7e146104a557806318160ddd146104c957600080fd5b806306fdde03146103d3578063076b44d3146103fe578063095ea7b3146104155780630d075d9c1461044557600080fd5b366103ce57005b600080fd5b3480156103df57600080fd5b506103e8610b6c565b6040516103f5919061261c565b60405180910390f35b34801561040a57600080fd5b50610413610bfe565b005b34801561042157600080fd5b5061043561043036600461267f565b610c4c565b60405190151581526020016103f5565b34801561045157600080fd5b506104136104603660046126ab565b610c63565b34801561047157600080fd5b506104136104803660046126d7565b610cfa565b34801561049157600080fd5b506104136104a03660046126ab565b610d6f565b3480156104b157600080fd5b506104bb601d5481565b6040519081526020016103f5565b3480156104d557600080fd5b506003546104bb565b3480156104ea57600080fd5b506104bb60155481565b34801561050057600080fd5b506104bb60135481565b34801561051657600080fd5b506104356105253660046126fb565b610e00565b34801561053657600080fd5b5060075461054a906001600160a01b031681565b6040516001600160a01b0390911681526020016103f5565b34801561056e57600080fd5b50604051601281526020016103f5565b34801561058a57600080fd5b50610413610eaf565b34801561059f57600080fd5b506104136105ae3660046126d7565b610f07565b3480156105bf57600080fd5b5060215461043590610100900460ff1681565b3480156105de57600080fd5b506104356105ed36600461267f565b610fae565b3480156105fe57600080fd5b506104bb60255481565b34801561061457600080fd5b50601e5461043590610100900460ff1681565b61041361063536600461273c565b610fea565b34801561064657600080fd5b506104356106553660046126d7565b601c6020526000908152604090205460ff1681565b34801561067657600080fd5b506021546104359060ff1681565b34801561069057600080fd5b506104bb600c5481565b3480156106a657600080fd5b5060095461054a906001600160a01b031681565b3480156106c657600080fd5b506104136106d53660046127a1565b611034565b3480156106e657600080fd5b506104bb6106f53660046126d7565b6001600160a01b031660009081526004602052604090205490565b34801561071c57600080fd5b50610413611163565b34801561073157600080fd5b506104136111a6565b34801561074657600080fd5b506104136107553660046126d7565b611200565b34801561076657600080fd5b506104bb60235481565b34801561077c57600080fd5b506104bb600d5481565b34801561079257600080fd5b5060175461054a906001600160a01b031681565b3480156107b257600080fd5b506104136107c136600461273c565b611275565b3480156107d257600080fd5b506005546001600160a01b031661054a565b3480156107f057600080fd5b506104136107ff36600461280d565b6112e0565b34801561081057600080fd5b506006546001600160a01b031661054a565b34801561082e57600080fd5b506104bb60105481565b34801561084457600080fd5b506103e8611344565b34801561085957600080fd5b506104bb600e5481565b34801561086f57600080fd5b5061041361087e3660046126d7565b611353565b34801561088f57600080fd5b506104bb60145481565b3480156108a557600080fd5b506104136108b43660046126d7565b6113ae565b3480156108c557600080fd5b506104bb60115481565b3480156108db57600080fd5b506104356108ea36600461267f565b611423565b3480156108fb57600080fd5b5060085461054a906001600160a01b031681565b34801561091b57600080fd5b5061043561092a36600461267f565b6114bc565b34801561093b57600080fd5b5061041361094a36600461280d565b6114c9565b34801561095b57600080fd5b506104bb61096a3660046126d7565b60226020526000908152604090205481565b34801561098857600080fd5b506104136109973660046126d7565b61152d565b3480156109a857600080fd5b506104136109b736600461284b565b611588565b3480156109c857600080fd5b506104bb60195481565b3480156109de57600080fd5b506104bb600a5481565b3480156109f457600080fd5b50610435610a033660046126d7565b60186020526000908152604090205460ff1681565b348015610a2457600080fd5b50610413610a3336600461280d565b6115cc565b348015610a4457600080fd5b506104bb600b5481565b348015610a5a57600080fd5b506104bb610a6936600461286d565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b348015610aa057600080fd5b50610413610aaf36600461273c565b611630565b348015610ac057600080fd5b50610413610acf36600461273c565b61169d565b348015610ae057600080fd5b506104bb600f5481565b348015610af657600080fd5b50610413610b053660046126d7565b6116e9565b348015610b1657600080fd5b506104bb60125481565b348015610b2c57600080fd5b5060165461054a906001600160a01b031681565b348015610b4c57600080fd5b506104bb601a5481565b348015610b6257600080fd5b506104bb60245481565b606060018054610b7b9061289b565b80601f0160208091040260200160405190810160405280929190818152602001828054610ba79061289b565b8015610bf45780601f10610bc957610100808354040283529160200191610bf4565b820191906000526020600020905b815481529060010190602001808311610bd757829003601f168201915b5050505050905090565b33610c116006546001600160a01b031690565b6001600160a01b031614610c405760405162461bcd60e51b8152600401610c37906128d5565b60405180910390fd5b610c4a6000611790565b565b6000610c593384846117e2565b5060015b92915050565b33610c766005546001600160a01b031690565b6001600160a01b031614610c9c5760405162461bcd60e51b8152600401610c379061290c565b600a54821015610cab57600080fd5b600d839055600e829055600f81905580610cc58385612957565b610ccf9190612957565b600b55601e546301000000900460ff1615610cf557602054600b541115610cf557600080fd5b505050565b33610d0d6005546001600160a01b031690565b6001600160a01b031614610d335760405162461bcd60e51b8152600401610c379061290c565b6007546001600160a01b03808316911603610d4d57600080fd5b600780546001600160a01b0319166001600160a01b0392909216919091179055565b33610d826005546001600160a01b031690565b6001600160a01b031614610da85760405162461bcd60e51b8152600401610c379061290c565b600a54821015610db757600080fd5b60108390556011829055601281905580610dd18385612957565b610ddb9190612957565b600c55601e5462010000900460ff1615610cf557601f54600c541115610cf557600080fd5b6000610e0d848484611906565b6001600160a01b038416600090815260026020908152604080832033845290915290205482811015610e975760405162461bcd60e51b815260206004820152602d60248201527f45524332303a207472616e7366657220616d6f756e742067726561746572207460448201526c68616e20616c6c6f77616e636560981b6064820152608401610c37565b610ea485338584036117e2565b506001949350505050565b33610ec26005546001600160a01b031690565b6001600160a01b031614610ee85760405162461bcd60e51b8152600401610c379061290c565b60215460ff1615610ef857600080fd5b6021805460ff19166001179055565b33610f1a6006546001600160a01b031690565b6001600160a01b031614610f405760405162461bcd60e51b8152600401610c37906128d5565b6001600160a01b038116610fa25760405162461bcd60e51b8152602060048201526024808201527f4f776e61626c653a206e65772064657620697320746865207a65726f206164646044820152637265737360e01b6064820152608401610c37565b610fab81611790565b50565b3360008181526002602090815260408083206001600160a01b03871684529091528120549091610c59918590610fe5908690612957565b6117e2565b33610ffd6005546001600160a01b031690565b6001600160a01b0316146110235760405162461bcd60e51b8152600401610c379061290c565b61102d8134612027565b5042602355565b336110476005546001600160a01b031690565b6001600160a01b03161461106d5760405162461bcd60e51b8152600401610c379061290c565b60215460ff161561107d57600080fd5b60005b8381101561115c576110d13086868481811061109e5761109e61296a565b90506020020160208101906110b391906126d7565b8585858181106110c5576110c561296a565b905060200201356120d4565b8282828181106110e3576110e361296a565b90506020020135602260008787858181106111005761110061296a565b905060200201602081019061111591906126d7565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008282546111449190612957565b9091555081905061115481612980565b915050611080565b5050505050565b336111766005546001600160a01b031690565b6001600160a01b03161461119c5760405162461bcd60e51b8152600401610c379061290c565b610c4a6000612298565b336111b96005546001600160a01b031690565b6001600160a01b0316146111df5760405162461bcd60e51b8152600401610c379061290c565b601e54610100900460ff166111f357600080fd5b601e805461ff0019169055565b336112136005546001600160a01b031690565b6001600160a01b0316146112395760405162461bcd60e51b8152600401610c379061290c565b6008546001600160a01b0380831691160361125357600080fd5b600880546001600160a01b0319166001600160a01b0392909216919091179055565b336112886005546001600160a01b031690565b6001600160a01b0316146112ae5760405162461bcd60e51b8152600401610c379061290c565b601d5481111580156112c15750601f5481105b6112ca57600080fd5b601f55601e805462ff0000191662010000179055565b336112f36005546001600160a01b031690565b6001600160a01b0316146113195760405162461bcd60e51b8152600401610c379061290c565b6001600160a01b03919091166000908152601b60205260409020805460ff1916911515919091179055565b606060008054610b7b9061289b565b336113666005546001600160a01b031690565b6001600160a01b03161461138c5760405162461bcd60e51b8152600401610c379061290c565b601780546001600160a01b0319166001600160a01b0392909216919091179055565b336113c16006546001600160a01b031690565b6001600160a01b0316146113e75760405162461bcd60e51b8152600401610c37906128d5565b6009546001600160a01b0380831691160361140157600080fd5b600980546001600160a01b0319166001600160a01b0392909216919091179055565b3360009081526002602090815260408083206001600160a01b0386168452909152812054828110156114a55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610c37565b6114b233858584036117e2565b5060019392505050565b6000610c59338484611906565b336114dc6005546001600160a01b031690565b6001600160a01b0316146115025760405162461bcd60e51b8152600401610c379061290c565b6001600160a01b03919091166000908152601860205260409020805460ff1916911515919091179055565b336115406005546001600160a01b031690565b6001600160a01b0316146115665760405162461bcd60e51b8152600401610c379061290c565b601680546001600160a01b0319166001600160a01b0392909216919091179055565b3361159b6005546001600160a01b031690565b6001600160a01b0316146115c15760405162461bcd60e51b8152600401610c379061290c565b601991909155601a55565b336115df6005546001600160a01b031690565b6001600160a01b0316146116055760405162461bcd60e51b8152600401610c379061290c565b6001600160a01b03919091166000908152601c60205260409020805460ff1916911515919091179055565b336116436005546001600160a01b031690565b6001600160a01b0316146116695760405162461bcd60e51b8152600401610c379061290c565b601d54811115801561167c575060205481105b61168557600080fd5b602055601e805463ff00000019166301000000179055565b336116b06006546001600160a01b031690565b6001600160a01b0316146116d65760405162461bcd60e51b8152600401610c37906128d5565b600a5481106116e457600080fd5b600a55565b336116fc6005546001600160a01b031690565b6001600160a01b0316146117225760405162461bcd60e51b8152600401610c379061290c565b6001600160a01b0381166117875760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c37565b610fab81612298565b600680546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f0a7a876011ed454af2a81330188fddbd93c5cb571ff0ab73fbd5f4f9c8ee477e90600090a35050565b6001600160a01b0383166118445760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c37565b6001600160a01b0382166118a55760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c37565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b03831661196a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c37565b6001600160a01b0382166119cc5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610c37565b806000036119e057610cf5838360006120d4565b601e54610100900460ff1615611c50576005546001600160a01b03848116911614801590611a1c57506005546001600160a01b03838116911614155b8015611a3357506001600160a01b03821661dead14155b8015611a425750601e5460ff16155b15611c50576001600160a01b03831660009081526018602052604090205460ff168015611a8857506001600160a01b0382166000908152601c602052604090205460ff16155b15611b3e57601954811115611ad85760405162461bcd60e51b815260206004820152601660248201527510b6b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6044820152606401610c37565b601a546001600160a01b038316600090815260046020526040902054611afe9083612957565b1115611b395760405162461bcd60e51b815260206004820152600a602482015269085b585e15d85b1b195d60b21b6044820152606401610c37565b611c50565b6001600160a01b03821660009081526018602052604090205460ff168015611b7f57506001600160a01b0383166000908152601c602052604090205460ff16155b15611bcf57601954811115611b395760405162461bcd60e51b815260206004820152601660248201527510b6b0bc2a3930b739b0b1ba34b7b720b6b7bab73a1760511b6044820152606401610c37565b6001600160a01b0382166000908152601c602052604090205460ff16611c5057601a546001600160a01b038316600090815260046020526040902054611c159083612957565b1115611c505760405162461bcd60e51b815260206004820152600a602482015269085b585e15d85b1b195d60b21b6044820152606401610c37565b602154610100900460ff16611d2b576001600160a01b0383166000908152602260205260409020548015611d295760006201518060235442611c929190612999565b611c9c91906129ac565b9050602454811015611d1757600060648360255484611cbb91906129ce565b611cc591906129ce565b611ccf91906129ac565b611cd99084612999565b90508084611cfc886001600160a01b031660009081526004602052604090205490565b611d069190612999565b1015611d1157600080fd5b50611d27565b6021805461ff0019166101001790555b505b505b601e546001600160a01b0384166000908152601b602052604090205460ff91821615911680611d7257506001600160a01b0383166000908152601b602052604090205460ff165b15611d7b575060005b8015611f86576001600160a01b03831660009081526018602052604081205460ff168015611dab57506000600c54115b15611e76576000601d5460115485611dc391906129ce565b611dcd91906129ac565b90506000601d5460105486611de291906129ce565b611dec91906129ac565b90506000601d5460125487611e0191906129ce565b611e0b91906129ac565b905080611e188385612957565b611e229190612957565b93508260146000828254611e369190612957565b925050819055508160136000828254611e4f9190612957565b925050819055508060156000828254611e689190612957565b90915550611f669350505050565b6001600160a01b03851660009081526018602052604090205460ff168015611ea057506000600b54115b15611f66576000601d54600e5485611eb891906129ce565b611ec291906129ac565b90506000601d54600d5486611ed791906129ce565b611ee191906129ac565b90506000601d54600f5487611ef691906129ce565b611f0091906129ac565b905080611f0d8385612957565b611f179190612957565b93508260146000828254611f2b9190612957565b925050819055508160136000828254611f449190612957565b925050819055508060156000828254611f5d9190612957565b90915550505050505b8015611f8457611f778530836120d4565b611f818184612999565b92505b505b601e5460ff16158015611fa757506017546001600160a01b03858116911614155b8015611fcc57506001600160a01b0384166000908152601b602052604090205460ff16155b8015611ff157506001600160a01b0383166000908152601b602052604090205460ff16155b1561201657601e805460ff1916600117905561200b6122ea565b601e805460ff191690555b6120218484846120d4565b50505050565b60165461203f9030906001600160a01b0316846117e2565b60165460075460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015291169063f305d71990839060c40160606040518083038185885af11580156120af573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061115c91906129e5565b6001600160a01b0383166121345760405162461bcd60e51b815260206004820152602160248201527f45524332303a207472616e736665722066726f6d207a65726f206164647265736044820152607360f81b6064820152608401610c37565b6001600160a01b03821661218a5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a207472616e7366657220746f207a65726f2061646472657373006044820152606401610c37565b6001600160a01b038316600090815260046020526040902054818110156122075760405162461bcd60e51b815260206004820152602b60248201527f45524332303a207472616e7366657220616d6f756e742067726561746572207460448201526a68616e2062616c616e636560a81b6064820152608401610c37565b6001600160a01b0380851660009081526004602052604080822085850390559185168152908120805484929061223e908490612957565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161228a91815260200190565b60405180910390a350505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6013546014546015546122fd9190612957565b6123079190612957565b60000361231057565b6000600260155461232191906129ac565b90506000816015546123339190612999565b6013546014546123439190612957565b61234d9190612957565b9050612358816124c2565b600081836015546123699190612999565b61237390476129ce565b61237d91906129ac565b905060008311801561238f5750600081115b1561239e5761239e8382612027565b60006014546013546123b09190612957565b11156124ae5760145460135447916000916123cb9190612957565b6013546123d890846129ce565b6123e291906129ac565b905060006123f08284612999565b9050811561244e576008546040516001600160a01b03909116908390600081818185875af1925050503d8060008114612445576040519150601f19603f3d011682016040523d82523d6000602084013e61244a565b606091505b5050505b80156124aa576009546040516001600160a01b03909116908290600081818185875af1925050503d80600081146124a1576040519150601f19603f3d011682016040523d82523d6000602084013e6124a6565b606091505b5050505b5050505b505060006015819055601481905560135550565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106124f7576124f761296a565b6001600160a01b03928316602091820292909201810191909152601654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612550573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125749190612a13565b816001815181106125875761258761296a565b6001600160a01b0392831660209182029290920101526016546125ad91309116846117e2565b60165460405163791ac94760e01b81526001600160a01b039091169063791ac947906125e6908590600090869030904290600401612a30565b600060405180830381600087803b15801561260057600080fd5b505af1158015612614573d6000803e3d6000fd5b505050505050565b600060208083528351808285015260005b818110156126495785810183015185820160400152820161262d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610fab57600080fd5b6000806040838503121561269257600080fd5b823561269d8161266a565b946020939093013593505050565b6000806000606084860312156126c057600080fd5b505081359360208301359350604090920135919050565b6000602082840312156126e957600080fd5b81356126f48161266a565b9392505050565b60008060006060848603121561271057600080fd5b833561271b8161266a565b9250602084013561272b8161266a565b929592945050506040919091013590565b60006020828403121561274e57600080fd5b5035919050565b60008083601f84011261276757600080fd5b50813567ffffffffffffffff81111561277f57600080fd5b6020830191508360208260051b850101111561279a57600080fd5b9250929050565b600080600080604085870312156127b757600080fd5b843567ffffffffffffffff808211156127cf57600080fd5b6127db88838901612755565b909650945060208701359150808211156127f457600080fd5b5061280187828801612755565b95989497509550505050565b6000806040838503121561282057600080fd5b823561282b8161266a565b91506020830135801515811461284057600080fd5b809150509250929050565b6000806040838503121561285e57600080fd5b50508035926020909101359150565b6000806040838503121561288057600080fd5b823561288b8161266a565b915060208301356128408161266a565b600181811c908216806128af57607f821691505b6020821081036128cf57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252601e908201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206465760000604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c5d57610c5d612941565b634e487b7160e01b600052603260045260246000fd5b60006001820161299257612992612941565b5060010190565b81810381811115610c5d57610c5d612941565b6000826129c957634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610c5d57610c5d612941565b6000806000606084860312156129fa57600080fd5b8351925060208401519150604084015190509250925092565b600060208284031215612a2557600080fd5b81516126f48161266a565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015612a805784516001600160a01b031683529383019391830191600101612a5b565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220faf8670e98f82e7a6281c90971adb649f92b82642d1c6902fbb1a3d908eeb75b64736f6c63430008110033

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

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d000000000000000000000000dcb5ac17635bd8dd0ccf049602ce614a2477872d0000000000000000000000005040ab1cddb502061d94b52769b5192804f34e1500000000000000000000000099272926cb5995cc4eea9cd1bc03bc3cd952c7de

-----Decoded View---------------
Arg [0] : router_ (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
Arg [1] : LPTokenReceiver_ (address): 0xDcB5aC17635Bd8DD0CcF049602cE614a2477872d
Arg [2] : marketingReceiver_ (address): 0x5040Ab1cDDB502061d94B52769b5192804f34E15
Arg [3] : devReceiver_ (address): 0x99272926CB5995CC4eeA9Cd1Bc03BC3cD952C7De

-----Encoded View---------------
4 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d
Arg [1] : 000000000000000000000000dcb5ac17635bd8dd0ccf049602ce614a2477872d
Arg [2] : 0000000000000000000000005040ab1cddb502061d94b52769b5192804f34e15
Arg [3] : 00000000000000000000000099272926cb5995cc4eea9cd1bc03bc3cd952c7de


Deployed Bytecode Sourcemap

7696:13560:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4307:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1949:89;;;;;;;;;;;;;:::i;:::-;;6140:167;;;;;;;;;;-1:-1:-1;6140:167:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6140:167:0;1023:187:1;11849:427:0;;;;;;;;;;-1:-1:-1;11849:427:0;;;;;:::i;:::-;;:::i;13049:166::-;;;;;;;;;;-1:-1:-1;13049:166:0;;;;;:::i;:::-;;:::i;12284:438::-;;;;;;;;;;-1:-1:-1;12284:438:0;;;;;:::i;:::-;;:::i;8620:36::-;;;;;;;;;;;;;;;;;;;1934:25:1;;;1922:2;1907:18;8620:36:0;1788:177:1;4191:108:0;;;;;;;;;;-1:-1:-1;4279:12:0;;4191:108;;8257:33;;;;;;;;;;;;;;;;8183;;;;;;;;;;;;;;;;3350:493;;;;;;;;;;-1:-1:-1;3350:493:0;;;;;:::i;:::-;;:::i;7745:30::-;;;;;;;;;;-1:-1:-1;7745:30:0;;;;-1:-1:-1;;;;;7745:30:0;;;;;;-1:-1:-1;;;;;2595:32:1;;;2577:51;;2565:2;2550:18;7745:30:0;2431:203:1;4415:93:0;;;;;;;;;;-1:-1:-1;4415:93:0;;4498:2;2781:36:1;;2769:2;2754:18;4415:93:0;2639:184:1;11545:123:0;;;;;;;;;;;;;:::i;1405:179::-;;;;;;;;;;-1:-1:-1;1405:179:0;;;;;:::i;:::-;;:::i;9081:35::-;;;;;;;;;;-1:-1:-1;9081:35:0;;;;;;;;;;;5525:211;;;;;;;;;;-1:-1:-1;5525:211:0;;;;;:::i;:::-;;:::i;9253:33::-;;;;;;;;;;;;;;;;8697;;;;;;;;;;-1:-1:-1;8697:33:0;;;;;;;;;;;11676:165;;;;;;:::i;:::-;;:::i;8553:58::-;;;;;;;;;;-1:-1:-1;8553:58:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;9039:35;;;;;;;;;;-1:-1:-1;9039:35:0;;;;;;;;7929:28;;;;;;;;;;;;;;;;7821:26;;;;;;;;;;-1:-1:-1;7821:26:0;;;;-1:-1:-1;;;;;7821:26:0;;;11210:327;;;;;;;;;;-1:-1:-1;11210:327:0;;;;;:::i;:::-;;:::i;6732:127::-;;;;;;;;;;-1:-1:-1;6732:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;6833:18:0;6806:7;6833:18;;;:9;:18;;;;;;;6732:127;1838:103;;;;;;;;;;;;;:::i;12923:118::-;;;;;;;;;;;;;:::i;13223:172::-;;;;;;;;;;-1:-1:-1;13223:172:0;;;;;:::i;:::-;;:::i;9180:25::-;;;;;;;;;;;;;;;;7966:30;;;;;;;;;;;;;;;;8338:28;;;;;;;;;;-1:-1:-1;8338:28:0;;;;-1:-1:-1;;;;;8338:28:0;;;14442:198;;;;;;;;;;-1:-1:-1;14442:198:0;;;;;:::i;:::-;;:::i;638:87::-;;;;;;;;;;-1:-1:-1;711:6:0;;-1:-1:-1;;;;;711:6:0;638:87;;14052:144;;;;;;;;;;-1:-1:-1;14052:144:0;;;;;:::i;:::-;;:::i;733:83::-;;;;;;;;;;-1:-1:-1;804:4:0;;-1:-1:-1;;;;;804:4:0;733:83;;8073:31;;;;;;;;;;;;;;;;6028:104;;;;;;;;;;;;;:::i;8003:24::-;;;;;;;;;;;;;;;;14322:112;;;;;;;;;;-1:-1:-1;14322:112:0;;;;;:::i;:::-;;:::i;8223:27::-;;;;;;;;;;;;;;;;13403:152;;;;;;;;;;-1:-1:-1;13403:152:0;;;;;:::i;:::-;;:::i;8111:25::-;;;;;;;;;;;;;;;;6315:409;;;;;;;;;;-1:-1:-1;6315:409:0;;;;;:::i;:::-;;:::i;7782:32::-;;;;;;;;;;-1:-1:-1;7782:32:0;;;;-1:-1:-1;;;;;7782:32:0;;;3851:173;;;;;;;;;;-1:-1:-1;3851:173:0;;;;;:::i;:::-;;:::i;13768:113::-;;;;;;;;;;-1:-1:-1;13768:113:0;;;;;:::i;:::-;;:::i;9125:48::-;;;;;;;;;;-1:-1:-1;9125:48:0;;;;;:::i;:::-;;;;;;;;;;;;;;14204:110;;;;;;;;;;-1:-1:-1;14204:110:0;;;;;:::i;:::-;;:::i;12730:185::-;;;;;;;;;;-1:-1:-1;12730:185:0;;;;;:::i;:::-;;:::i;8421:35::-;;;;;;;;;;;;;;;;7854:32;;;;;;;;;;;;;;;;8375:37;;;;;;;;;;-1:-1:-1;8375:37:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;13889:155;;;;;;;;;;-1:-1:-1;13889:155:0;;;;;:::i;:::-;;:::i;7895:27::-;;;;;;;;;;;;;;;;4032:151;;;;;;;;;;-1:-1:-1;4032:151:0;;;;;:::i;:::-;-1:-1:-1;;;;;4148:18:0;;;4121:7;4148:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;4032:151;14648:194;;;;;;;;;;-1:-1:-1;14648:194:0;;;;;:::i;:::-;;:::i;13563:197::-;;;;;;;;;;-1:-1:-1;13563:197:0;;;;;:::i;:::-;;:::i;8034:30::-;;;;;;;;;;;;;;;;1196:201;;;;;;;;;;-1:-1:-1;1196:201:0;;;;;:::i;:::-;;:::i;8143:31::-;;;;;;;;;;;;;;;;8299:32;;;;;;;;;;-1:-1:-1;8299:32:0;;;;-1:-1:-1;;;;;8299:32:0;;;8463:24;;;;;;;;;;;;;;;;9212:34;;;;;;;;;;;;;;;;4307:100;4361:13;4394:5;4387:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4307:100;:::o;1949:89::-;1765:10;1756:5;804:4;;-1:-1:-1;;;;;804:4:0;;733:83;1756:5;-1:-1:-1;;;;;1756:19:0;;1748:62;;;;-1:-1:-1;;;1748:62:0;;;;;;;:::i;:::-;;;;;;;;;2006:24:::1;2027:1;2006:12;:24::i;:::-;1949:89::o:0;6140:167::-;6223:4;6240:37;6249:10;6261:7;6270:6;6240:8;:37::i;:::-;-1:-1:-1;6295:4:0;6140:167;;;;;:::o;11849:427::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;11977:13:::1;;11967:6;:23;;11959:32;;;::::0;::::1;;12002:15;:30:::0;;;12043:9:::1;:18:::0;;;12072:15:::1;:30:::0;;;12090:12;12130:27:::1;12055:6:::0;12020:12;12130:27:::1;:::i;:::-;:45;;;;:::i;:::-;12115:12;:60:::0;12192:12:::1;::::0;;;::::1;;;12188:79;;;12245:9;;12229:12;;:25;;12221:34;;;::::0;::::1;;11849:427:::0;;;:::o;13049:166::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;13136:15:::1;::::0;-1:-1:-1;;;;;13136:30:0;;::::1;:15:::0;::::1;:30:::0;13128:39:::1;;;::::0;::::1;;13178:15;:29:::0;;-1:-1:-1;;;;;;13178:29:0::1;-1:-1:-1::0;;;;;13178:29:0;;;::::1;::::0;;;::::1;::::0;;13049:166::o;12284:438::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;12413:13:::1;;12403:6;:23;;12395:32;;;::::0;::::1;;12438:16;:31:::0;;;12480:10:::1;:19:::0;;;12510:16:::1;:31:::0;;;12529:12;12570:29:::1;12493:6:::0;12457:12;12570:29:::1;:::i;:::-;:48;;;;:::i;:::-;12554:13;:64:::0;12635:13:::1;::::0;;;::::1;;;12631:82;;;12690:10;;12673:13;;:27;;12665:36;;;::::0;::::1;3350:493:::0;3490:4;3507:36;3517:6;3525:9;3536:6;3507:9;:36::i;:::-;-1:-1:-1;;;;;3583:19:0;;3556:24;3583:19;;;:11;:19;;;;;;;;3603:10;3583:31;;;;;;;;3633:26;;;;3625:84;;;;-1:-1:-1;;;3625:84:0;;7033:2:1;3625:84:0;;;7015:21:1;7072:2;7052:18;;;7045:30;7111:34;7091:18;;;7084:62;-1:-1:-1;;;7162:18:1;;;7155:43;7215:19;;3625:84:0;6831:409:1;3625:84:0;3745:55;3754:6;3762:10;3793:6;3774:16;:25;3745:8;:55::i;:::-;-1:-1:-1;3831:4:0;;3350:493;-1:-1:-1;;;;3350:493:0:o;11545:123::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;11611:15:::1;::::0;::::1;;11610:16;11602:25;;;::::0;::::1;;11638:15;:22:::0;;-1:-1:-1;;11638:22:0::1;11656:4;11638:22;::::0;;11545:123::o;1405:179::-;1765:10;1756:5;804:4;;-1:-1:-1;;;;;804:4:0;;733:83;1756:5;-1:-1:-1;;;;;1756:19:0;;1748:62;;;;-1:-1:-1;;;1748:62:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1484:20:0;::::1;1476:69;;;::::0;-1:-1:-1;;;1476:69:0;;7447:2:1;1476:69:0::1;::::0;::::1;7429:21:1::0;7486:2;7466:18;;;7459:30;7525:34;7505:18;;;7498:62;-1:-1:-1;;;7576:18:1;;;7569:34;7620:19;;1476:69:0::1;7245:400:1::0;1476:69:0::1;1556:20;1569:6;1556:12;:20::i;:::-;1405:179:::0;:::o;5525:211::-;5639:10;5613:4;5660:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5660:32:0;;;;;;;;;;5613:4;;5630:76;;5651:7;;5660:45;;5695:10;;5660:45;:::i;:::-;5630:8;:76::i;11676:165::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;11757:37:::1;11771:11;11784:9;11757:13;:37::i;:::-;-1:-1:-1::0;11818:15:0::1;11805:10;:28:::0;11676:165::o;11210:327::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;11328:15:::1;::::0;::::1;;11327:16;11319:25;;;::::0;::::1;;11362:6;11357:173;11372:16:::0;;::::1;11357:173;;;11410:54;11434:4;11441:7;;11449:1;11441:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;11453:7;;11461:1;11453:10;;;;;;;:::i;:::-;;;;;;;11410:15;:54::i;:::-;11508:7;;11516:1;11508:10;;;;;;;:::i;:::-;;;;;;;11479:13;:25;11493:7;;11501:1;11493:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11479:25:0::1;-1:-1:-1::0;;;;;11479:25:0::1;;;;;;;;;;;;;:39;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;11390:3:0;;-1:-1:-1;11390:3:0::1;::::0;::::1;:::i;:::-;;;;11357:173;;;;11210:327:::0;;;;:::o;1838:103::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;1903:30:::1;1930:1;1903:18;:30::i;12923:118::-:0;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;12985:14:::1;::::0;::::1;::::0;::::1;;;12977:23;;;::::0;::::1;;13011:14;:22:::0;;-1:-1:-1;;13011:22:0::1;::::0;;12923:118::o;13223:172::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;13312:17:::1;::::0;-1:-1:-1;;;;;13312:32:0;;::::1;:17:::0;::::1;:32:::0;13304:41:::1;;;::::0;::::1;;13356:17;:31:::0;;-1:-1:-1;;;;;;13356:31:0::1;-1:-1:-1::0;;;;;13356:31:0;;;::::1;::::0;;;::::1;::::0;;13223:172::o;14442:198::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;14535:14:::1;;14526:5;:23;;:45;;;;;14561:10;;14553:5;:18;14526:45;14518:54;;;::::0;::::1;;14583:10;:18:::0;14612:13:::1;:20:::0;;-1:-1:-1;;14612:20:0::1;::::0;::::1;::::0;;14442:198::o;14052:144::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;14150:25:0;;;::::1;;::::0;;;:17:::1;:25;::::0;;;;:38;;-1:-1:-1;;14150:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14052:144::o;6028:104::-;6084:13;6117:7;6110:14;;;;;:::i;14322:112::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;14399:13:::1;:27:::0;;-1:-1:-1;;;;;;14399:27:0::1;-1:-1:-1::0;;;;;14399:27:0;;;::::1;::::0;;;::::1;::::0;;14322:112::o;13403:152::-;1765:10;1756:5;804:4;;-1:-1:-1;;;;;804:4:0;;733:83;1756:5;-1:-1:-1;;;;;1756:19:0;;1748:62;;;;-1:-1:-1;;;1748:62:0;;;;;;;:::i;:::-;13484:11:::1;::::0;-1:-1:-1;;;;;13484:26:0;;::::1;:11:::0;::::1;:26:::0;13476:35:::1;;;::::0;::::1;;13522:11;:25:::0;;-1:-1:-1;;;;;;13522:25:0::1;-1:-1:-1::0;;;;;13522:25:0;;;::::1;::::0;;;::::1;::::0;;13403:152::o;6315:409::-;6464:10;6408:4;6452:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;6452:32:0;;;;;;;;;;6503:35;;;;6495:85;;;;-1:-1:-1;;;6495:85:0;;8124:2:1;6495:85:0;;;8106:21:1;8163:2;8143:18;;;8136:30;8202:34;8182:18;;;8175:62;-1:-1:-1;;;8253:18:1;;;8246:35;8298:19;;6495:85:0;7922:401:1;6495:85:0;6616:65;6625:10;6637:7;6665:15;6646:16;:34;6616:8;:65::i;:::-;-1:-1:-1;6712:4:0;;6315:409;-1:-1:-1;;;6315:409:0:o;3851:173::-;3937:4;3954:40;3964:10;3976:9;3987:6;3954:9;:40::i;13768:113::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13847:17:0;;;::::1;;::::0;;;:5:::1;:17;::::0;;;;:26;;-1:-1:-1;;13847:26:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13768:113::o;14204:110::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;14270:6:::1;:36:::0;;-1:-1:-1;;;;;;14270:36:0::1;-1:-1:-1::0;;;;;14270:36:0;;;::::1;::::0;;;::::1;::::0;;14204:110::o;12730:185::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;12830:20:::1;:44:::0;;;;12885:9:::1;:22:::0;12730:185::o;13889:155::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13989:34:0;;;::::1;;::::0;;;:26:::1;:34;::::0;;;;:47;;-1:-1:-1;;13989:47:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13889:155::o;14648:194::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;14740:14:::1;;14731:5;:23;;:44;;;;;14766:9;;14758:5;:17;14731:44;14723:53;;;::::0;::::1;;14787:9;:17:::0;14815:12:::1;:19:::0;;-1:-1:-1;;14815:19:0::1;::::0;::::1;::::0;;14648:194::o;13563:197::-;1765:10;1756:5;804:4;;-1:-1:-1;;;;;804:4:0;;733:83;1756:5;-1:-1:-1;;;;;1756:19:0;;1748:62;;;;-1:-1:-1;;;1748:62:0;;;;;;;:::i;:::-;13650:13:::1;;13641:6;:22;13633:31;;;::::0;::::1;;13730:13;:22:::0;13563:197::o;1196:201::-;1643:10;1632:7;711:6;;-1:-1:-1;;;;;711:6:0;;638:87;1632:7;-1:-1:-1;;;;;1632:21:0;;1624:66;;;;-1:-1:-1;;;1624:66:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1285:22:0;::::1;1277:73;;;::::0;-1:-1:-1;;;1277:73:0;;8530:2:1;1277:73:0::1;::::0;::::1;8512:21:1::0;8569:2;8549:18;;;8542:30;8608:34;8588:18;;;8581:62;-1:-1:-1;;;8659:18:1;;;8652:36;8705:19;;1277:73:0::1;8328:402:1::0;1277:73:0::1;1361:28;1380:8;1361:18;:28::i;1023:165::-:0;1106:4;;;-1:-1:-1;;;;;1121:13:0;;;-1:-1:-1;;;;;;1121:13:0;;;;;;;1150:30;;1106:4;;;1121:13;1106:4;;1150:30;;1089:14;;1150:30;1078:110;1023:165;:::o;5137:380::-;-1:-1:-1;;;;;5273:19:0;;5265:68;;;;-1:-1:-1;;;5265:68:0;;8937:2:1;5265:68:0;;;8919:21:1;8976:2;8956:18;;;8949:30;9015:34;8995:18;;;8988:62;-1:-1:-1;;;9066:18:1;;;9059:34;9110:19;;5265:68:0;8735:400:1;5265:68:0;-1:-1:-1;;;;;5352:21:0;;5344:68;;;;-1:-1:-1;;;5344:68:0;;9342:2:1;5344:68:0;;;9324:21:1;9381:2;9361:18;;;9354:30;9420:34;9400:18;;;9393:62;-1:-1:-1;;;9471:18:1;;;9464:32;9513:19;;5344:68:0;9140:398:1;5344:68:0;-1:-1:-1;;;;;5425:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5477:32;;1934:25:1;;;5477:32:0;;1907:18:1;5477:32:0;;;;;;;5137:380;;;:::o;14850:4301::-;-1:-1:-1;;;;;14982:18:0;;14974:68;;;;-1:-1:-1;;;14974:68:0;;9745:2:1;14974:68:0;;;9727:21:1;9784:2;9764:18;;;9757:30;9823:34;9803:18;;;9796:62;-1:-1:-1;;;9874:18:1;;;9867:35;9919:19;;14974:68:0;9543:401:1;14974:68:0;-1:-1:-1;;;;;15061:16:0;;15053:64;;;;-1:-1:-1;;;15053:64:0;;10151:2:1;15053:64:0;;;10133:21:1;10190:2;10170:18;;;10163:30;10229:34;10209:18;;;10202:62;-1:-1:-1;;;10280:18:1;;;10273:33;10323:19;;15053:64:0;9949:399:1;15053:64:0;15134:6;15144:1;15134:11;15130:93;;15162:28;15178:4;15184:2;15188:1;15162:15;:28::i;15130:93::-;15239:14;;;;;;;15235:1227;;;711:6;;-1:-1:-1;;;;;15292:15:0;;;711:6;;15292:15;;;;:49;;-1:-1:-1;711:6:0;;-1:-1:-1;;;;;15328:13:0;;;711:6;;15328:13;;15292:49;:91;;;;-1:-1:-1;;;;;;15362:21:0;;15376:6;15362:21;;15292:91;:121;;;;-1:-1:-1;15405:8:0;;;;15404:9;15292:121;15270:1181;;;-1:-1:-1;;;;;15476:11:0;;;;;;:5;:11;;;;;;;;:67;;;;-1:-1:-1;;;;;;15513:30:0;;;;;;:26;:30;;;;;;;;15512:31;15476:67;15450:984;;;15630:20;;15620:6;:30;;15586:138;;;;-1:-1:-1;;;15586:138:0;;10555:2:1;15586:138:0;;;10537:21:1;10594:2;10574:18;;;10567:30;-1:-1:-1;;;10613:18:1;;;10606:52;10675:18;;15586:138:0;10353:346:1;15586:138:0;15807:9;;-1:-1:-1;;;;;6833:18:0;;6806:7;6833:18;;;:9;:18;;;;;;15781:22;;:6;:22;:::i;:::-;:35;;15747:131;;;;-1:-1:-1;;;15747:131:0;;10906:2:1;15747:131:0;;;10888:21:1;10945:2;10925:18;;;10918:30;-1:-1:-1;;;10964:18:1;;;10957:40;11014:18;;15747:131:0;10704:334:1;15747:131:0;15450:984;;;-1:-1:-1;;;;;15949:9:0;;;;;;:5;:9;;;;;;;;:67;;;;-1:-1:-1;;;;;;15984:32:0;;;;;;:26;:32;;;;;;;;15983:33;15949:67;15923:511;;;16103:20;;16093:6;:30;;16059:138;;;;-1:-1:-1;;;16059:138:0;;10555:2:1;16059:138:0;;;10537:21:1;10594:2;10574:18;;;10567:30;-1:-1:-1;;;10613:18:1;;;10606:52;10675:18;;16059:138:0;10353:346:1;15923:511:0;-1:-1:-1;;;;;16228:30:0;;;;;;:26;:30;;;;;;;;16223:211;;16343:9;;-1:-1:-1;;;;;6833:18:0;;6806:7;6833:18;;;:9;:18;;;;;;16317:22;;:6;:22;:::i;:::-;:35;;16283:131;;;;-1:-1:-1;;;16283:131:0;;10906:2:1;16283:131:0;;;10888:21:1;10945:2;10925:18;;;10918:30;-1:-1:-1;;;10964:18:1;;;10957:40;11014:18;;16283:131:0;10704:334:1;16283:131:0;16479:15;;;;;;;16474:789;;-1:-1:-1;;;;;16555:19:0;;16523:29;16555:19;;;:13;:19;;;;;;16595:25;;16591:661;;16659:22;16717:5;16703:10;;16685:15;:28;;;;:::i;:::-;16684:38;;;;:::i;:::-;16659:63;;16764:14;;16747;:31;16743:494;;;16803:22;17046:3;16997:21;16955:14;;16938;:31;;;;:::i;:::-;:80;;;;:::i;:::-;:111;;;;:::i;:::-;16828:244;;:21;:244;:::i;:::-;16803:269;;17131:14;17121:6;17103:15;17113:4;-1:-1:-1;;;;;6833:18:0;6806:7;6833:18;;;:9;:18;;;;;;;6732:127;17103:15;:24;;;;:::i;:::-;:42;;17095:51;;;;;;16780:386;16743:494;;;17195:15;:22;;-1:-1:-1;;17195:22:0;;;;;16743:494;16622:630;16591:661;16496:767;16474:789;17291:8;;-1:-1:-1;;;;;17316:23:0;;17275:12;17316:23;;;:17;:23;;;;;;17291:8;;;;17290:9;;17316:23;;:48;;-1:-1:-1;;;;;;17343:21:0;;;;;;:17;:21;;;;;;;;17316:48;17312:96;;;-1:-1:-1;17391:5:0;17312:96;17424:7;17420:1405;;;-1:-1:-1;;;;;17487:9:0;;17450:12;17487:9;;;:5;:9;;;;;;;;:30;;;;;17516:1;17500:13;;:17;17487:30;17483:1191;;;17538:23;17586:14;;17573:10;;17564:6;:19;;;;:::i;:::-;:36;;;;:::i;:::-;17538:62;;17619:29;17679:14;;17660:16;;17651:6;:25;;;;:::i;:::-;:42;;;;:::i;:::-;17619:74;;17712:29;17772:14;;17753:16;;17744:6;:25;;;;:::i;:::-;:42;;;;:::i;:::-;17712:74;-1:-1:-1;17712:74:0;17814:39;17832:21;17814:15;:39;:::i;:::-;:63;;;;:::i;:::-;17807:70;;17914:15;17898:12;;:31;;;;;;;:::i;:::-;;;;;;;;17970:21;17948:18;;:43;;;;;;;:::i;:::-;;;;;;;;18032:21;18010:18;;:43;;;;;;;:::i;:::-;;;;-1:-1:-1;17483:1191:0;;-1:-1:-1;;;;17483:1191:0;;-1:-1:-1;;;;;18094:11:0;;;;;;:5;:11;;;;;;;;:31;;;;;18124:1;18109:12;;:16;18094:31;18090:584;;;18146:23;18193:14;;18181:9;;18172:6;:18;;;;:::i;:::-;:35;;;;:::i;:::-;18146:61;;18226:29;18285:14;;18267:15;;18258:6;:24;;;;:::i;:::-;:41;;;;:::i;:::-;18226:73;;18318:29;18377:14;;18359:15;;18350:6;:24;;;;:::i;:::-;:41;;;;:::i;:::-;18318:73;-1:-1:-1;18318:73:0;18419:39;18437:21;18419:15;:39;:::i;:::-;:63;;;;:::i;:::-;18412:70;;18519:15;18503:12;;:31;;;;;;;:::i;:::-;;;;;;;;18575:21;18553:18;;:43;;;;;;;:::i;:::-;;;;;;;;18637:21;18615:18;;:43;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;18090:584:0;18694:8;;18690:124;;18723:42;18739:4;18753;18760;18723:15;:42::i;:::-;18784:14;18794:4;18784:14;;:::i;:::-;;;18690:124;17433:1392;17420:1405;18856:8;;;;18855:9;:47;;;;-1:-1:-1;18889:13:0;;-1:-1:-1;;;;;18881:21:0;;;18889:13;;18881:21;;18855:47;:88;;;;-1:-1:-1;;;;;;18920:23:0;;;;;;:17;:23;;;;;;;;18919:24;18855:88;:127;;;;-1:-1:-1;;;;;;18961:21:0;;;;;;:17;:21;;;;;;;;18960:22;18855:127;18837:259;;;19009:8;:15;;-1:-1:-1;;19009:15:0;19020:4;19009:15;;;19041:10;:8;:10::i;:::-;19068:8;:16;;-1:-1:-1;;19068:16:0;;;18837:259;19110:33;19126:4;19132:2;19136:6;19110:15;:33::i;:::-;14963:4188;14850:4301;;;:::o;20898:353::-;21013:6;;20981:53;;20998:4;;-1:-1:-1;;;;;21013:6:0;21022:11;20981:8;:53::i;:::-;21045:6;;21187:15;;21045:198;;-1:-1:-1;;;21045:198:0;;21109:4;21045:198;;;11912:34:1;11962:18;;;11955:34;;;21045:6:0;12005:18:1;;;11998:34;;;12048:18;;;12041:34;-1:-1:-1;;;;;21187:15:0;;;12091:19:1;;;12084:44;21217:15:0;12144:19:1;;;12137:35;21045:6:0;;;:22;;21075:9;;11846:19:1;;21045:198:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;4516:613::-;-1:-1:-1;;;;;4656:20:0;;4648:66;;;;-1:-1:-1;;;4648:66:0;;12696:2:1;4648:66:0;;;12678:21:1;12735:2;12715:18;;;12708:30;12774:34;12754:18;;;12747:62;-1:-1:-1;;;12825:18:1;;;12818:31;12866:19;;4648:66:0;12494:397:1;4648:66:0;-1:-1:-1;;;;;4733:23:0;;4725:67;;;;-1:-1:-1;;;4725:67:0;;13098:2:1;4725:67:0;;;13080:21:1;13137:2;13117:18;;;13110:30;13176:33;13156:18;;;13149:61;13227:18;;4725:67:0;12896:355:1;4725:67:0;-1:-1:-1;;;;;4829:17:0;;4805:21;4829:17;;;:9;:17;;;;;;4865:23;;;;4857:79;;;;-1:-1:-1;;;4857:79:0;;13458:2:1;4857:79:0;;;13440:21:1;13497:2;13477:18;;;13470:30;13536:34;13516:18;;;13509:62;-1:-1:-1;;;13587:18:1;;;13580:41;13638:19;;4857:79:0;13256:407:1;4857:79:0;-1:-1:-1;;;;;4972:17:0;;;;;;;:9;:17;;;;;;4992:22;;;4972:42;;5036:20;;;;;;;;:30;;5008:6;;4972:17;5036:30;;5008:6;;5036:30;:::i;:::-;;;;;;;;5101:9;-1:-1:-1;;;;;5084:35:0;5093:6;-1:-1:-1;;;;;5084:35:0;;5112:6;5084:35;;;;1934:25:1;;1922:2;1907:18;;1788:177;5084:35:0;;;;;;;;4637:492;4516:613;;;:::o;824:191::-;917:6;;;-1:-1:-1;;;;;934:17:0;;;-1:-1:-1;;;;;;934:17:0;;;;;;;967:40;;917:6;;;934:17;917:6;;967:40;;898:16;;967:40;887:128;824:191;:::o;19612:1278::-;19692:18;;19677:12;;19656:18;;:33;;;;:::i;:::-;:54;;;;:::i;:::-;19714:1;19656:59;19652:98;;19612:1278::o;19652:98::-;19762:17;19803:1;19782:18;;:22;;;;:::i;:::-;19762:42;;19815:26;19902:9;19881:18;;:30;;;;:::i;:::-;19859:18;;19844:12;;:33;;;;:::i;:::-;:68;;;;:::i;:::-;19815:97;;19923:36;19940:18;19923:16;:36::i;:::-;19972:23;20057:18;20044:9;20023:18;;:30;;;;:::i;:::-;19998:56;;:21;:56;:::i;:::-;:77;;;;:::i;:::-;19972:103;;20104:1;20092:9;:13;:36;;;;;20127:1;20109:15;:19;20092:36;20088:110;;;20145:41;20159:9;20170:15;20145:13;:41::i;:::-;20250:1;20235:12;;20214:18;;:33;;;;:::i;:::-;:37;20210:578;;;20422:12;;20401:18;;20295:21;;20268:24;;20401:33;;20422:12;20401:33;:::i;:::-;20379:18;;20360:37;;:16;:37;:::i;:::-;:75;;;;:::i;:::-;20331:104;-1:-1:-1;20450:20:0;20473:37;20331:104;20473:16;:37;:::i;:::-;20450:60;-1:-1:-1;20543:22:0;;20539:120;;20586:17;;:53;;-1:-1:-1;;;;;20586:17:0;;;;20616:18;;20586:53;;;;20616:18;20586:17;:53;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20539:120;20679:16;;20675:102;;20716:11;;:41;;-1:-1:-1;;;;;20716:11:0;;;;20740:12;;20716:41;;;;20740:12;20716:11;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20675:102;20253:535;;;20210:578;-1:-1:-1;;20821:1:0;20800:18;:22;;;20833:12;:16;;;20860:18;:22;-1:-1:-1;19612:1278:0:o;19159:445::-;19250:16;;;19264:1;19250:16;;;;;;;;19226:21;;19250:16;;;;;;;;;;-1:-1:-1;19250:16:0;19226:40;;19295:4;19277;19282:1;19277:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19277:23:0;;;:7;;;;;;;;;;:23;;;;19321:6;;:13;;;-1:-1:-1;;;19321:13:0;;;;:6;;;;;:11;;:13;;;;;19277:7;;19321:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;19311:4;19316:1;19311:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;19311:23:0;;;:7;;;;;;;;;:23;19377:6;;19345:53;;19362:4;;19377:6;19386:11;19345:8;:53::i;:::-;19409:6;;:187;;-1:-1:-1;;;19409:187:0;;-1:-1:-1;;;;;19409:6:0;;;;:57;;:187;;19481:11;;19409:6;;19523:4;;19550;;19570:15;;19409:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19215:389;19159:445;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1215:316::-;1292:6;1300;1308;1361:2;1349:9;1340:7;1336:23;1332:32;1329:52;;;1377:1;1374;1367:12;1329:52;-1:-1:-1;;1400:23:1;;;1470:2;1455:18;;1442:32;;-1:-1:-1;1521:2:1;1506:18;;;1493:32;;1215:316;-1:-1:-1;1215:316:1:o;1536:247::-;1595:6;1648:2;1636:9;1627:7;1623:23;1619:32;1616:52;;;1664:1;1661;1654:12;1616:52;1703:9;1690:23;1722:31;1747:5;1722:31;:::i;:::-;1772:5;1536:247;-1:-1:-1;;;1536:247:1:o;1970:456::-;2047:6;2055;2063;2116:2;2104:9;2095:7;2091:23;2087:32;2084:52;;;2132:1;2129;2122:12;2084:52;2171:9;2158:23;2190:31;2215:5;2190:31;:::i;:::-;2240:5;-1:-1:-1;2297:2:1;2282:18;;2269:32;2310:33;2269:32;2310:33;:::i;:::-;1970:456;;2362:7;;-1:-1:-1;;;2416:2:1;2401:18;;;;2388:32;;1970:456::o;2828:180::-;2887:6;2940:2;2928:9;2919:7;2915:23;2911:32;2908:52;;;2956:1;2953;2946:12;2908:52;-1:-1:-1;2979:23:1;;2828:180;-1:-1:-1;2828:180:1:o;3013:367::-;3076:8;3086:6;3140:3;3133:4;3125:6;3121:17;3117:27;3107:55;;3158:1;3155;3148:12;3107:55;-1:-1:-1;3181:20:1;;3224:18;3213:30;;3210:50;;;3256:1;3253;3246:12;3210:50;3293:4;3285:6;3281:17;3269:29;;3353:3;3346:4;3336:6;3333:1;3329:14;3321:6;3317:27;3313:38;3310:47;3307:67;;;3370:1;3367;3360:12;3307:67;3013:367;;;;;:::o;3385:773::-;3507:6;3515;3523;3531;3584:2;3572:9;3563:7;3559:23;3555:32;3552:52;;;3600:1;3597;3590:12;3552:52;3640:9;3627:23;3669:18;3710:2;3702:6;3699:14;3696:34;;;3726:1;3723;3716:12;3696:34;3765:70;3827:7;3818:6;3807:9;3803:22;3765:70;:::i;:::-;3854:8;;-1:-1:-1;3739:96:1;-1:-1:-1;3942:2:1;3927:18;;3914:32;;-1:-1:-1;3958:16:1;;;3955:36;;;3987:1;3984;3977:12;3955:36;;4026:72;4090:7;4079:8;4068:9;4064:24;4026:72;:::i;:::-;3385:773;;;;-1:-1:-1;4117:8:1;-1:-1:-1;;;;3385:773:1:o;4163:416::-;4228:6;4236;4289:2;4277:9;4268:7;4264:23;4260:32;4257:52;;;4305:1;4302;4295:12;4257:52;4344:9;4331:23;4363:31;4388:5;4363:31;:::i;:::-;4413:5;-1:-1:-1;4470:2:1;4455:18;;4442:32;4512:15;;4505:23;4493:36;;4483:64;;4543:1;4540;4533:12;4483:64;4566:7;4556:17;;;4163:416;;;;;:::o;4584:248::-;4652:6;4660;4713:2;4701:9;4692:7;4688:23;4684:32;4681:52;;;4729:1;4726;4719:12;4681:52;-1:-1:-1;;4752:23:1;;;4822:2;4807:18;;;4794:32;;-1:-1:-1;4584:248:1:o;4837:388::-;4905:6;4913;4966:2;4954:9;4945:7;4941:23;4937:32;4934:52;;;4982:1;4979;4972:12;4934:52;5021:9;5008:23;5040:31;5065:5;5040:31;:::i;:::-;5090:5;-1:-1:-1;5147:2:1;5132:18;;5119:32;5160:33;5119:32;5160:33;:::i;5464:380::-;5543:1;5539:12;;;;5586;;;5607:61;;5661:4;5653:6;5649:17;5639:27;;5607:61;5714:2;5706:6;5703:14;5683:18;5680:38;5677:161;;5760:10;5755:3;5751:20;5748:1;5741:31;5795:4;5792:1;5785:15;5823:4;5820:1;5813:15;5677:161;;5464:380;;;:::o;5849:354::-;6051:2;6033:21;;;6090:2;6070:18;;;6063:30;6129:32;6124:2;6109:18;;6102:60;6194:2;6179:18;;5849:354::o;6208:356::-;6410:2;6392:21;;;6429:18;;;6422:30;6488:34;6483:2;6468:18;;6461:62;6555:2;6540:18;;6208:356::o;6569:127::-;6630:10;6625:3;6621:20;6618:1;6611:31;6661:4;6658:1;6651:15;6685:4;6682:1;6675:15;6701:125;6766:9;;;6787:10;;;6784:36;;;6800:18;;:::i;7650:127::-;7711:10;7706:3;7702:20;7699:1;7692:31;7742:4;7739:1;7732:15;7766:4;7763:1;7756:15;7782:135;7821:3;7842:17;;;7839:43;;7862:18;;:::i;:::-;-1:-1:-1;7909:1:1;7898:13;;7782:135::o;11043:128::-;11110:9;;;11131:11;;;11128:37;;;11145:18;;:::i;11176:217::-;11216:1;11242;11232:132;;11286:10;11281:3;11277:20;11274:1;11267:31;11321:4;11318:1;11311:15;11349:4;11346:1;11339:15;11232:132;-1:-1:-1;11378:9:1;;11176:217::o;11398:168::-;11471:9;;;11502;;11519:15;;;11513:22;;11499:37;11489:71;;11540:18;;:::i;12183:306::-;12271:6;12279;12287;12340:2;12328:9;12319:7;12315:23;12311:32;12308:52;;;12356:1;12353;12346:12;12308:52;12385:9;12379:16;12369:26;;12435:2;12424:9;12420:18;12414:25;12404:35;;12479:2;12468:9;12464:18;12458:25;12448:35;;12183:306;;;;;:::o;14010:251::-;14080:6;14133:2;14121:9;14112:7;14108:23;14104:32;14101:52;;;14149:1;14146;14139:12;14101:52;14181:9;14175:16;14200:31;14225:5;14200:31;:::i;14266:980::-;14528:4;14576:3;14565:9;14561:19;14607:6;14596:9;14589:25;14633:2;14671:6;14666:2;14655:9;14651:18;14644:34;14714:3;14709:2;14698:9;14694:18;14687:31;14738:6;14773;14767:13;14804:6;14796;14789:22;14842:3;14831:9;14827:19;14820:26;;14881:2;14873:6;14869:15;14855:29;;14902:1;14912:195;14926:6;14923:1;14920:13;14912:195;;;14991:13;;-1:-1:-1;;;;;14987:39:1;14975:52;;15082:15;;;;15047:12;;;;15023:1;14941:9;14912:195;;;-1:-1:-1;;;;;;;15163:32:1;;;;15158:2;15143:18;;15136:60;-1:-1:-1;;;15227:3:1;15212:19;15205:35;15124:3;14266:980;-1:-1:-1;;;14266:980:1:o

Swarm Source

ipfs://faf8670e98f82e7a6281c90971adb649f92b82642d1c6902fbb1a3d908eeb75b

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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