ETH Price: $2,036.53 (+1.44%)

Contract

0xceBdDA65669c66906Fd0A7b35764bCE590bB0C2b
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve184595152023-10-30 0:50:35882 days ago1698627035IN
0xceBdDA65...590bB0C2b
0 ETH0.0006951514.94119413
Remove Total Tra...184595102023-10-30 0:49:35882 days ago1698626975IN
0xceBdDA65...590bB0C2b
0 ETH0.0003978412.65559096
Update Fee184594882023-10-30 0:45:11882 days ago1698626711IN
0xceBdDA65...590bB0C2b
0 ETH0.0004798713.28372542
Approve184594872023-10-30 0:44:59882 days ago1698626699IN
0xceBdDA65...590bB0C2b
0 ETH0.0007508516.13831426
Update Fee184594842023-10-30 0:44:11882 days ago1698626651IN
0xceBdDA65...590bB0C2b
0 ETH0.0004350212.0421155
Approve184594832023-10-30 0:43:59882 days ago1698626639IN
0xceBdDA65...590bB0C2b
0 ETH0.0007053415.16022268
Approve184594822023-10-30 0:43:47882 days ago1698626627IN
0xceBdDA65...590bB0C2b
0 ETH0.0007371815.84456113
Update Fee184594822023-10-30 0:43:47882 days ago1698626627IN
0xceBdDA65...590bB0C2b
0 ETH0.0004676212.94456113
Approve184594812023-10-30 0:43:35882 days ago1698626615IN
0xceBdDA65...590bB0C2b
0 ETH0.000720715.49042723
Update Fee184594792023-10-30 0:43:11882 days ago1698626591IN
0xceBdDA65...590bB0C2b
0 ETH0.0004527112.53181401
Approve184594792023-10-30 0:43:11882 days ago1698626591IN
0xceBdDA65...590bB0C2b
0 ETH0.0005785412.53181401
Approve184594782023-10-30 0:42:59882 days ago1698626579IN
0xceBdDA65...590bB0C2b
0 ETH0.0006673414.34349214
Update Fee184594772023-10-30 0:42:47882 days ago1698626567IN
0xceBdDA65...590bB0C2b
0 ETH0.0004765413.19157175
Approve184594752023-10-30 0:42:23882 days ago1698626543IN
0xceBdDA65...590bB0C2b
0 ETH0.0007614316.36570043
Update Fee184594742023-10-30 0:42:11882 days ago1698626531IN
0xceBdDA65...590bB0C2b
0 ETH0.0004385612.14015201
Approve184594722023-10-30 0:41:47882 days ago1698626507IN
0xceBdDA65...590bB0C2b
0 ETH0.0006775314.56254434
Approve184594722023-10-30 0:41:47882 days ago1698626507IN
0xceBdDA65...590bB0C2b
0 ETH0.0006775314.56254434
Approve184594722023-10-30 0:41:47882 days ago1698626507IN
0xceBdDA65...590bB0C2b
0 ETH0.0006775314.56254434
Approve184594712023-10-30 0:41:35882 days ago1698626495IN
0xceBdDA65...590bB0C2b
0 ETH0.0006759414.52831811
Approve184594712023-10-30 0:41:35882 days ago1698626495IN
0xceBdDA65...590bB0C2b
0 ETH0.0006759414.52831811
Approve184594662023-10-30 0:40:35882 days ago1698626435IN
0xceBdDA65...590bB0C2b
0 ETH0.0010360322.26795772
Approve184594632023-10-30 0:39:59882 days ago1698626399IN
0xceBdDA65...590bB0C2b
0 ETH0.0007118715.30052896
Approve184594622023-10-30 0:39:47882 days ago1698626387IN
0xceBdDA65...590bB0C2b
0 ETH0.000738515.87299367
Approve184594622023-10-30 0:39:47882 days ago1698626387IN
0xceBdDA65...590bB0C2b
0 ETH0.000738515.87299367
Approve184594622023-10-30 0:39:47882 days ago1698626387IN
0xceBdDA65...590bB0C2b
0 ETH0.000738515.87299367
View all transactions

Latest 16 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer184595172023-10-30 0:50:59882 days ago1698627059
0xceBdDA65...590bB0C2b
0.05611905 ETH
Transfer184595172023-10-30 0:50:59882 days ago1698627059
0xceBdDA65...590bB0C2b
0.05611905 ETH
Transfer184595102023-10-30 0:49:35882 days ago1698626975
0xceBdDA65...590bB0C2b
0.13045485 ETH
Transfer184595102023-10-30 0:49:35882 days ago1698626975
0xceBdDA65...590bB0C2b
0.13045485 ETH
Transfer184594842023-10-30 0:44:11882 days ago1698626651
0xceBdDA65...590bB0C2b
0.05439337 ETH
Transfer184594842023-10-30 0:44:11882 days ago1698626651
0xceBdDA65...590bB0C2b
0.05439337 ETH
Transfer184594842023-10-30 0:44:11882 days ago1698626651
0xceBdDA65...590bB0C2b
0.05838281 ETH
Transfer184594842023-10-30 0:44:11882 days ago1698626651
0xceBdDA65...590bB0C2b
0.05838281 ETH
Transfer184594842023-10-30 0:44:11882 days ago1698626651
0xceBdDA65...590bB0C2b
0.15946519 ETH
Transfer184594842023-10-30 0:44:11882 days ago1698626651
0xceBdDA65...590bB0C2b
0.15946519 ETH
Transfer184594812023-10-30 0:43:35882 days ago1698626615
0xceBdDA65...590bB0C2b
0.08793624 ETH
Transfer184594812023-10-30 0:43:35882 days ago1698626615
0xceBdDA65...590bB0C2b
0.08793624 ETH
Transfer184594742023-10-30 0:42:11882 days ago1698626531
0xceBdDA65...590bB0C2b
0.12656314 ETH
Transfer184594742023-10-30 0:42:11882 days ago1698626531
0xceBdDA65...590bB0C2b
0.12656314 ETH
Transfer184594692023-10-30 0:41:11882 days ago1698626471
0xceBdDA65...590bB0C2b
0.74994969 ETH
Transfer184594692023-10-30 0:41:11882 days ago1698626471
0xceBdDA65...590bB0C2b
0.74994969 ETH
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:
SPURDO

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
Yes with 200 runs

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

/**
Telegram: https://t.me/NewSpurdoSparde


Twitter: https://twitter.com/NewSpurdoSparde


Website: https://newspurdosparde.com/
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.20;

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

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 SPURDO is ERC20, Ownable {
    using SafeMath for uint256;

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

    string constant _name = unicode"NEW SPURDO SPÄRDE";
    string constant _symbol = "SPURDO";
    uint8 constant _decimals = 9;

    uint256 _totalSupply = 1_000_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[0xfC79F77b7e77edAb8022d8bb69EaF40e0792B613] = true;
        isTxLimitExempt[_owner] = true;
        taxRemover = owner;
        isTxLimitExempt[0xfC79F77b7e77edAb8022d8bb69EaF40e0792B613] = 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 updateMaxWalletSize(uint256 amountPercent) external onlyOwner {
        _maxWalletAmount = (_totalSupply * amountPercent ) / 100;
    }

    function updateTxnLimit(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 blacklistAddresses(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 updateFee(uint256 _marketingFee, uint256 _rewardsFee) external onlyOwner {
        marketingFee = _marketingFee;
        rewardsFee = _rewardsFee;
        totalFee = rewardsFee + marketingFee;
    }

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

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

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

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

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

    function EnableTrading(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

API
[{"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":"bool","name":"_tradingEnabled","type":"bool"}],"name":"EnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_rewardsFeeReceiver","type":"address"}],"name":"RewardsReceiver","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":[{"internalType":"address[]","name":"addrs","type":"address[]"},{"internalType":"bool","name":"isBlocked","type":"bool"}],"name":"blacklistAddresses","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":"excludeWalletFromFees","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":[],"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":[{"internalType":"uint256","name":"enable","type":"uint256"}],"name":"removeTotalTransferlumtint","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":[],"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"},{"inputs":[{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_rewardsFee","type":"uint256"}],"name":"updateFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"updateMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_treshold","type":"uint256"}],"name":"updateMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercent","type":"uint256"}],"name":"updateTxnLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600180546001600160a01b0319908116737a250d5630b4cf539739df2c5dacb4c659f2488d179091556002805490911661dead179055620000486009600a620004a1565b6200005890633b9aca00620004b8565b6003556103e860035460146200006f9190620004b8565b6200007b9190620004d2565b6004556103e86003546014620000929190620004b8565b6200009e9190620004d2565b600555600680546001600160a01b03191673c02aaa39b223fe8d0a0e5c4f27ead9083c756cc21790556019600d8190555f600e819055620000df91620004f2565b600f556064601055601180546001600160a01b0319908116339081179092556012805490911690911790556014805461ffff60a01b1916600160a01b9081179091556015805460ff60a01b1916909117905560035462000143906103e890620004d2565b62000150906005620004b8565b6016553480156200015f575f80fd5b505f8054336001600160a01b031991821617909155600154601380546001600160a01b039092169190921681179091556040805163c45a015560e01b8152905163c45a0155916004808201926020929091908290030181865afa158015620001c9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001ef919062000508565b6006546040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303815f875af11580156200023e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000264919062000508565b601480546001600160a01b039283166001600160a01b031991821617909155305f9081526008602090815260408083206013548616845282528083205f19905582548516808452600a8352818420805460ff1990811660019081179092557f8e8a9c096445955ff6f4b252d5a04454abb885db0e66b15c10624f788ffb7d4a8054821683179055600b85528386208054821683179055855460158054909816908916179096557f84b9bacfe0628ee010109798ff2739c252e553f51980da15df664bfbc55334b380548716821790556002549096168452818420805490951690951790935560035484835260078252838320819055925192835283927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35062000530565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003e657815f1904821115620003ca57620003ca62000392565b80851615620003d857918102915b93841c9390800290620003ab565b509250929050565b5f82620003fe575060016200049b565b816200040c57505f6200049b565b8160018114620004255760028114620004305762000450565b60019150506200049b565b60ff84111562000444576200044462000392565b50506001821b6200049b565b5060208310610133831016604e8410600b841016171562000475575081810a6200049b565b620004818383620003a6565b805f190482111562000497576200049762000392565b0290505b92915050565b5f620004b160ff841683620003ee565b9392505050565b80820281158282048414176200049b576200049b62000392565b5f82620004ed57634e487b7160e01b5f52601260045260245ffd5b500490565b808201808211156200049b576200049b62000392565b5f6020828403121562000519575f80fd5b81516001600160a01b0381168114620004b1575f80fd5b611f8e806200053e5f395ff3fe608060405260043610610215575f3560e01c80637e26d19f1161011e578063aacebbe3116100a8578063e96fada21161006d578063e96fada214610672578063eda54ad214610691578063f39291c1146106a5578063f887ea40146106c4578063fe575a87146106e3575f80fd5b8063aacebbe3146105ba578063c37b7775146105d9578063d73fe0aa146105f8578063da39b25c1461061a578063dd62ed3e1461062e575f80fd5b806394ceecef116100ee57806394ceecef1461051057806395d89b411461052f5780639e3cb8f11461055d578063a8aa1b311461057c578063a9059cbb1461059b575f80fd5b80637e26d19f14610483578063829118e2146104a2578063893d20e8146104c15780639214b860146104f1575f80fd5b8063313ce5671161019f5780636ddd17131161016f5780636ddd1713146103e757806370a0823114610407578063715018a61461043b5780637aedac2e1461044f5780637d1db4a51461046e575f80fd5b8063313ce56714610379578063455a439614610394578063571ac8b0146103b35780636c0a24eb146103d2575f80fd5b8063233109de116101e5578063233109de146102ce57806323b872dd146102ef57806324887e801461030e5780632740c1971461032d5780632f54bf6e1461034c575f80fd5b80630445b6671461022057806306fdde0314610248578063095ea7b31461028b57806318160ddd146102ba575f80fd5b3661021c57005b5f80fd5b34801561022b575f80fd5b5061023560165481565b6040519081526020015b60405180910390f35b348015610253575f80fd5b506040805180820190915260128152714e45572053505552444f205350c38452444560701b60208201525b60405161023f9190611b0d565b348015610296575f80fd5b506102aa6102a5366004611b7c565b61071a565b604051901515815260200161023f565b3480156102c5575f80fd5b50600354610235565b3480156102d9575f80fd5b506102ed6102e8366004611ba6565b610786565b005b3480156102fa575f80fd5b506102aa610309366004611bbd565b6107d8565b348015610319575f80fd5b506102ed610328366004611ba6565b610896565b348015610338575f80fd5b506102ed610347366004611bfb565b6108df565b348015610357575f80fd5b506102aa610366366004611c1b565b5f546001600160a01b0391821691161490565b348015610384575f80fd5b506040516009815260200161023f565b34801561039f575f80fd5b506102ed6103ae366004611c45565b610923565b3480156103be575f80fd5b506102aa6103cd366004611c1b565b610976565b3480156103dd575f80fd5b5061023560045481565b3480156103f2575f80fd5b506015546102aa90600160a01b900460ff1681565b348015610412575f80fd5b50610235610421366004611c1b565b6001600160a01b03165f9081526007602052604090205490565b348015610446575f80fd5b506102ed610982565b34801561045a575f80fd5b506102ed610469366004611c8c565b6109ef565b348015610479575f80fd5b5061023560055481565b34801561048e575f80fd5b506102ed61049d366004611d5e565b610ad4565b3480156104ad575f80fd5b506102ed6104bc366004611c8c565b610b1b565b3480156104cc575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161023f565b3480156104fc575f80fd5b506102ed61050b366004611ba6565b610ba8565b34801561051b575f80fd5b506102ed61052a366004611d5e565b610bd6565b34801561053a575f80fd5b5060408051808201909152600681526553505552444f60d01b602082015261027e565b348015610568575f80fd5b506102ed610577366004611ba6565b610c1d565b348015610587575f80fd5b506014546104d9906001600160a01b031681565b3480156105a6575f80fd5b506102aa6105b5366004611b7c565b610c7b565b3480156105c5575f80fd5b506102ed6105d4366004611c1b565b610c87565b3480156105e4575f80fd5b506102ed6105f3366004611c1b565b610d57565b348015610603575f80fd5b5061060c610e27565b60405161023f929190611db9565b348015610625575f80fd5b506102ed610f53565b348015610639575f80fd5b50610235610648366004611e0f565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b34801561067d575f80fd5b506011546104d9906001600160a01b031681565b34801561069c575f80fd5b506102ed610f8d565b3480156106b0575f80fd5b506012546104d9906001600160a01b031681565b3480156106cf575f80fd5b506013546104d9906001600160a01b031681565b3480156106ee575f80fd5b506102aa6106fd366004611c1b565b6001600160a01b03165f908152600c602052604090205460ff1690565b335f8181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107749086815260200190565b60405180910390a35060015b92915050565b5f546001600160a01b031633146107b85760405162461bcd60e51b81526004016107af90611e46565b60405180910390fd5b6064816003546107c89190611e7a565b6107d29190611e91565b60055550565b6001600160a01b0383165f9081526008602090815260408083203384529091528120545f1914610881576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f90815260088252838120338252909152919091205461085d918490610fc5565b6001600160a01b0385165f9081526008602090815260408083203384529091529020555b61088c848484610ffd565b90505b9392505050565b5f546001600160a01b031633146108bf5760405162461bcd60e51b81526004016107af90611e46565b6064816003546108cf9190611e7a565b6108d99190611e91565b60045550565b5f546001600160a01b031633146109085760405162461bcd60e51b81526004016107af90611e46565b600d829055600e81905561091c8282611eb0565b600f555050565b5f546001600160a01b0316331461094c5760405162461bcd60e51b81526004016107af90611e46565b6001600160a01b03919091165f908152600c60205260409020805460ff1916911515919091179055565b5f610780825f1961071a565b5f546001600160a01b031633146109ab5760405162461bcd60e51b81526004016107af90611e46565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b03163314610a185760405162461bcd60e51b81526004016107af90611e46565b5f5b8251811015610acf5781600a5f858481518110610a3957610a39611ec3565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81548160ff02191690831515021790555081600b5f858481518110610a8c57610a8c611ec3565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905580610ac781611ed7565b915050610a1a565b505050565b5f546001600160a01b03163314610afd5760405162461bcd60e51b81526004016107af90611e46565b60158054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b03163314610b445760405162461bcd60e51b81526004016107af90611e46565b5f5b8251811015610acf5781600c5f858481518110610b6557610b65611ec3565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905580610ba081611ed7565b915050610b46565b5f546001600160a01b03163314610bd15760405162461bcd60e51b81526004016107af90611e46565b601655565b5f546001600160a01b03163314610bff5760405162461bcd60e51b81526004016107af90611e46565b60148054911515600160a01b0260ff60a01b19909216919091179055565b335f908152600a602052604090205460ff16610c365750565b6015546001600160a01b03165f908152600760205260409020548190610c5d90829061144f565b6015546001600160a01b03165f908152600760205260409020555050565b5f61088f338484610ffd565b5f546001600160a01b03163314610cb05760405162461bcd60e51b81526004016107af90611e46565b5f546011546001600160a01b03908116911614610d0557601180546001600160a01b039081165f908152600a60209081526040808320805460ff1990811690915594549093168252600b905220805490911690555b601180546001600160a01b039092166001600160a01b0319909216821790555f908152600a60209081526040808320805460ff199081166001908117909255600b909352922080549091169091179055565b5f546001600160a01b03163314610d805760405162461bcd60e51b81526004016107af90611e46565b5f546012546001600160a01b03908116911614610dd557601280546001600160a01b039081165f908152600a60209081526040808320805460ff1990811690915594549093168252600b905220805490911690555b601280546001600160a01b039092166001600160a01b0319909216821790555f908152600a60209081526040808320805460ff199081166001908117909255600b909352922080549091169091179055565b6060805f60098054905067ffffffffffffffff811115610e4957610e49611c78565b604051908082528060200260200182016040528015610e72578160200160208202803683370190505b5090505f5b600954811015610eec5760075f60098381548110610e9757610e97611ec3565b5f9182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610ecf57610ecf611ec3565b602090810291909101015280610ee481611ed7565b915050610e77565b5080600980805480602002602001604051908101604052809291908181526020018280548015610f4357602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610f25575b5050505050905092509250509091565b5f80546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610f8a573d5f803e3d5ffd5b50565b5f546001600160a01b03163314610fb65760405162461bcd60e51b81526004016107af90611e46565b6014805460ff60a81b19169055565b5f8184841115610fe85760405162461bcd60e51b81526004016107af9190611b0d565b505f610ff48486611eef565b95945050505050565b6014545f90600160a01b900460ff1661104b5760405162461bcd60e51b815260206004820152601060248201526f151c98591a5b99c8191a5cd8589b195960821b60448201526064016107af565b6001600160a01b0384165f908152600c602052604090205460ff16156110a85760405162461bcd60e51b8152602060048201526012602482015271109b1858dadb1a5cdd1959081dd85b1b195d60721b60448201526064016107af565b6014546001600160a01b038481169116148015906110d357505f546001600160a01b03848116911614155b80156110ed57506001546001600160a01b03848116911614155b80156111025750601454600160a81b900460ff165b1561112a576001600160a01b0383165f908152600c60205260409020805460ff191660011790555b60175460ff161561114757611140848484611490565b905061088f565b6014546001600160a01b0384811691161480159061117357506002546001600160a01b03848116911614155b156112a2576001600160a01b0383165f908152600b602052604090205460ff16806111a057506005548211155b6111fe5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178206044820152682a2c103634b6b4ba1760b91b60648201526084016107af565b6001600160a01b0383165f908152600b602052604090205460ff168061124857506004546001600160a01b0384165f90815260076020526040902054611245908490611eb0565b11155b6112a25760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016107af565b6112aa611573565b156112b7576112b76115c9565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f90815260079091529190912054611308918490610fc5565b6001600160a01b0385165f9081526007602052604081209190915561132d85856118e1565b6113375782611341565b6113418584611926565b6001600160a01b0385165f9081526007602052604090205490915015801561137757506014546001600160a01b03858116911614155b156113c757600980546001810182555f919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0386161790555b6001600160a01b0384165f908152600760205260409020546113e990826119c9565b6001600160a01b038086165f8181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061143c9085815260200190565b60405180910390a3506001949350505050565b5f61088f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fc5565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526007909152918220546114e0918490610fc5565b6001600160a01b038086165f90815260076020526040808220939093559085168152205461150e90836119c9565b6001600160a01b038085165f8181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115619086815260200190565b60405180910390a35060019392505050565b6014545f906001600160a01b03163314801590611593575060175460ff16155b80156115a85750601554600160a01b900460ff165b80156115c45750601654305f9081526007602052604090205410155b905090565b6017805460ff19166001179055305f90815260076020908152604080832054815160028082526060820184529194939092908301908036833701905050905030815f8151811061161b5761161b611ec3565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611672573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116969190611f02565b816001815181106116a9576116a9611ec3565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac947906116ee9085905f90869030904290600401611f1d565b5f604051808303815f87803b158015611705575f80fd5b505af1158015611717573d5f803e3d5ffd5b505050505f4790505f611741600f5461173b600e5485611a2790919063ffffffff16565b90611aa5565b90505f61175f600f5461173b600d5486611a2790919063ffffffff16565b6011546040519192505f916001600160a01b039091169061753090849084818181858888f193505050503d805f81146117b3576040519150601f19603f3d011682016040523d82523d5f602084013e6117b8565b606091505b505090508061181a5760405162461bcd60e51b815260206004820152602860248201527f6d61726b6574696e672072656365697665722072656a656374656420455448206044820152673a3930b739b332b960c11b60648201526084016107af565b6012546040515f916001600160a01b03169061753090869084818181858888f193505050503d805f8114611869576040519150601f19603f3d011682016040523d82523d5f602084013e61186e565b606091505b50509050806118ce5760405162461bcd60e51b815260206004820152602660248201527f726577617264732072656365697665722072656a65637465642045544820747260448201526530b739b332b960d11b60648201526084016107af565b50506017805460ff191690555050505050565b6001600160a01b0382165f908152600a602052604081205460ff168061191e57506001600160a01b0382165f908152600a602052604090205460ff165b159392505050565b5f8061194360105461173b600f5486611a2790919063ffffffff16565b305f9081526007602052604090205490915061195f90826119c9565b305f81815260076020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119af9085815260200190565b60405180910390a36119c1838261144f565b949350505050565b5f806119d58385611eb0565b90508381101561088f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107af565b5f825f03611a3657505f610780565b5f611a418385611e7a565b905082611a4e8583611e91565b1461088f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107af565b5f61088f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152505f8183611b015760405162461bcd60e51b81526004016107af9190611b0d565b505f610ff48486611e91565b5f6020808352835180828501525f5b81811015611b3857858101830151858201604001528201611b1c565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f8a575f80fd5b8035611b7781611b58565b919050565b5f8060408385031215611b8d575f80fd5b8235611b9881611b58565b946020939093013593505050565b5f60208284031215611bb6575f80fd5b5035919050565b5f805f60608486031215611bcf575f80fd5b8335611bda81611b58565b92506020840135611bea81611b58565b929592945050506040919091013590565b5f8060408385031215611c0c575f80fd5b50508035926020909101359150565b5f60208284031215611c2b575f80fd5b813561088f81611b58565b80358015158114611b77575f80fd5b5f8060408385031215611c56575f80fd5b8235611c6181611b58565b9150611c6f60208401611c36565b90509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215611c9d575f80fd5b823567ffffffffffffffff80821115611cb4575f80fd5b818501915085601f830112611cc7575f80fd5b8135602082821115611cdb57611cdb611c78565b8160051b604051601f19603f83011681018181108682111715611d0057611d00611c78565b604052928352818301935084810182019289841115611d1d575f80fd5b948201945b83861015611d4257611d3386611b6c565b85529482019493820193611d22565b9650611d519050878201611c36565b9450505050509250929050565b5f60208284031215611d6e575f80fd5b61088f82611c36565b5f8151808452602080850194508084015f5b83811015611dae5781516001600160a01b031687529582019590820190600101611d89565b509495945050505050565b604080825283519082018190525f906020906060840190828701845b82811015611df157815184529284019290840190600101611dd5565b50505083810382850152611e058186611d77565b9695505050505050565b5f8060408385031215611e20575f80fd5b8235611e2b81611b58565b91506020830135611e3b81611b58565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761078057610780611e66565b5f82611eab57634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561078057610780611e66565b634e487b7160e01b5f52603260045260245ffd5b5f60018201611ee857611ee8611e66565b5060010190565b8181038181111561078057610780611e66565b5f60208284031215611f12575f80fd5b815161088f81611b58565b85815284602082015260a060408201525f611f3b60a0830186611d77565b6001600160a01b039490941660608301525060800152939250505056fea2646970667358221220e00b29e10032b19a844182ddf3830c8eaccf5b1fc4798f38d7e03e51b86e195d64736f6c63430008140033

Deployed Bytecode

0x608060405260043610610215575f3560e01c80637e26d19f1161011e578063aacebbe3116100a8578063e96fada21161006d578063e96fada214610672578063eda54ad214610691578063f39291c1146106a5578063f887ea40146106c4578063fe575a87146106e3575f80fd5b8063aacebbe3146105ba578063c37b7775146105d9578063d73fe0aa146105f8578063da39b25c1461061a578063dd62ed3e1461062e575f80fd5b806394ceecef116100ee57806394ceecef1461051057806395d89b411461052f5780639e3cb8f11461055d578063a8aa1b311461057c578063a9059cbb1461059b575f80fd5b80637e26d19f14610483578063829118e2146104a2578063893d20e8146104c15780639214b860146104f1575f80fd5b8063313ce5671161019f5780636ddd17131161016f5780636ddd1713146103e757806370a0823114610407578063715018a61461043b5780637aedac2e1461044f5780637d1db4a51461046e575f80fd5b8063313ce56714610379578063455a439614610394578063571ac8b0146103b35780636c0a24eb146103d2575f80fd5b8063233109de116101e5578063233109de146102ce57806323b872dd146102ef57806324887e801461030e5780632740c1971461032d5780632f54bf6e1461034c575f80fd5b80630445b6671461022057806306fdde0314610248578063095ea7b31461028b57806318160ddd146102ba575f80fd5b3661021c57005b5f80fd5b34801561022b575f80fd5b5061023560165481565b6040519081526020015b60405180910390f35b348015610253575f80fd5b506040805180820190915260128152714e45572053505552444f205350c38452444560701b60208201525b60405161023f9190611b0d565b348015610296575f80fd5b506102aa6102a5366004611b7c565b61071a565b604051901515815260200161023f565b3480156102c5575f80fd5b50600354610235565b3480156102d9575f80fd5b506102ed6102e8366004611ba6565b610786565b005b3480156102fa575f80fd5b506102aa610309366004611bbd565b6107d8565b348015610319575f80fd5b506102ed610328366004611ba6565b610896565b348015610338575f80fd5b506102ed610347366004611bfb565b6108df565b348015610357575f80fd5b506102aa610366366004611c1b565b5f546001600160a01b0391821691161490565b348015610384575f80fd5b506040516009815260200161023f565b34801561039f575f80fd5b506102ed6103ae366004611c45565b610923565b3480156103be575f80fd5b506102aa6103cd366004611c1b565b610976565b3480156103dd575f80fd5b5061023560045481565b3480156103f2575f80fd5b506015546102aa90600160a01b900460ff1681565b348015610412575f80fd5b50610235610421366004611c1b565b6001600160a01b03165f9081526007602052604090205490565b348015610446575f80fd5b506102ed610982565b34801561045a575f80fd5b506102ed610469366004611c8c565b6109ef565b348015610479575f80fd5b5061023560055481565b34801561048e575f80fd5b506102ed61049d366004611d5e565b610ad4565b3480156104ad575f80fd5b506102ed6104bc366004611c8c565b610b1b565b3480156104cc575f80fd5b505f546001600160a01b03165b6040516001600160a01b03909116815260200161023f565b3480156104fc575f80fd5b506102ed61050b366004611ba6565b610ba8565b34801561051b575f80fd5b506102ed61052a366004611d5e565b610bd6565b34801561053a575f80fd5b5060408051808201909152600681526553505552444f60d01b602082015261027e565b348015610568575f80fd5b506102ed610577366004611ba6565b610c1d565b348015610587575f80fd5b506014546104d9906001600160a01b031681565b3480156105a6575f80fd5b506102aa6105b5366004611b7c565b610c7b565b3480156105c5575f80fd5b506102ed6105d4366004611c1b565b610c87565b3480156105e4575f80fd5b506102ed6105f3366004611c1b565b610d57565b348015610603575f80fd5b5061060c610e27565b60405161023f929190611db9565b348015610625575f80fd5b506102ed610f53565b348015610639575f80fd5b50610235610648366004611e0f565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b34801561067d575f80fd5b506011546104d9906001600160a01b031681565b34801561069c575f80fd5b506102ed610f8d565b3480156106b0575f80fd5b506012546104d9906001600160a01b031681565b3480156106cf575f80fd5b506013546104d9906001600160a01b031681565b3480156106ee575f80fd5b506102aa6106fd366004611c1b565b6001600160a01b03165f908152600c602052604090205460ff1690565b335f8181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906107749086815260200190565b60405180910390a35060015b92915050565b5f546001600160a01b031633146107b85760405162461bcd60e51b81526004016107af90611e46565b60405180910390fd5b6064816003546107c89190611e7a565b6107d29190611e91565b60055550565b6001600160a01b0383165f9081526008602090815260408083203384529091528120545f1914610881576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b0387165f90815260088252838120338252909152919091205461085d918490610fc5565b6001600160a01b0385165f9081526008602090815260408083203384529091529020555b61088c848484610ffd565b90505b9392505050565b5f546001600160a01b031633146108bf5760405162461bcd60e51b81526004016107af90611e46565b6064816003546108cf9190611e7a565b6108d99190611e91565b60045550565b5f546001600160a01b031633146109085760405162461bcd60e51b81526004016107af90611e46565b600d829055600e81905561091c8282611eb0565b600f555050565b5f546001600160a01b0316331461094c5760405162461bcd60e51b81526004016107af90611e46565b6001600160a01b03919091165f908152600c60205260409020805460ff1916911515919091179055565b5f610780825f1961071a565b5f546001600160a01b031633146109ab5760405162461bcd60e51b81526004016107af90611e46565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b03163314610a185760405162461bcd60e51b81526004016107af90611e46565b5f5b8251811015610acf5781600a5f858481518110610a3957610a39611ec3565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f6101000a81548160ff02191690831515021790555081600b5f858481518110610a8c57610a8c611ec3565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905580610ac781611ed7565b915050610a1a565b505050565b5f546001600160a01b03163314610afd5760405162461bcd60e51b81526004016107af90611e46565b60158054911515600160a01b0260ff60a01b19909216919091179055565b5f546001600160a01b03163314610b445760405162461bcd60e51b81526004016107af90611e46565b5f5b8251811015610acf5781600c5f858481518110610b6557610b65611ec3565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905580610ba081611ed7565b915050610b46565b5f546001600160a01b03163314610bd15760405162461bcd60e51b81526004016107af90611e46565b601655565b5f546001600160a01b03163314610bff5760405162461bcd60e51b81526004016107af90611e46565b60148054911515600160a01b0260ff60a01b19909216919091179055565b335f908152600a602052604090205460ff16610c365750565b6015546001600160a01b03165f908152600760205260409020548190610c5d90829061144f565b6015546001600160a01b03165f908152600760205260409020555050565b5f61088f338484610ffd565b5f546001600160a01b03163314610cb05760405162461bcd60e51b81526004016107af90611e46565b5f546011546001600160a01b03908116911614610d0557601180546001600160a01b039081165f908152600a60209081526040808320805460ff1990811690915594549093168252600b905220805490911690555b601180546001600160a01b039092166001600160a01b0319909216821790555f908152600a60209081526040808320805460ff199081166001908117909255600b909352922080549091169091179055565b5f546001600160a01b03163314610d805760405162461bcd60e51b81526004016107af90611e46565b5f546012546001600160a01b03908116911614610dd557601280546001600160a01b039081165f908152600a60209081526040808320805460ff1990811690915594549093168252600b905220805490911690555b601280546001600160a01b039092166001600160a01b0319909216821790555f908152600a60209081526040808320805460ff199081166001908117909255600b909352922080549091169091179055565b6060805f60098054905067ffffffffffffffff811115610e4957610e49611c78565b604051908082528060200260200182016040528015610e72578160200160208202803683370190505b5090505f5b600954811015610eec5760075f60098381548110610e9757610e97611ec3565b5f9182526020808320909101546001600160a01b031683528201929092526040019020548251839083908110610ecf57610ecf611ec3565b602090810291909101015280610ee481611ed7565b915050610e77565b5080600980805480602002602001604051908101604052809291908181526020018280548015610f4357602002820191905f5260205f20905b81546001600160a01b03168152600190910190602001808311610f25575b5050505050905092509250509091565b5f80546040516001600160a01b03909116914780156108fc02929091818181858888f19350505050158015610f8a573d5f803e3d5ffd5b50565b5f546001600160a01b03163314610fb65760405162461bcd60e51b81526004016107af90611e46565b6014805460ff60a81b19169055565b5f8184841115610fe85760405162461bcd60e51b81526004016107af9190611b0d565b505f610ff48486611eef565b95945050505050565b6014545f90600160a01b900460ff1661104b5760405162461bcd60e51b815260206004820152601060248201526f151c98591a5b99c8191a5cd8589b195960821b60448201526064016107af565b6001600160a01b0384165f908152600c602052604090205460ff16156110a85760405162461bcd60e51b8152602060048201526012602482015271109b1858dadb1a5cdd1959081dd85b1b195d60721b60448201526064016107af565b6014546001600160a01b038481169116148015906110d357505f546001600160a01b03848116911614155b80156110ed57506001546001600160a01b03848116911614155b80156111025750601454600160a81b900460ff165b1561112a576001600160a01b0383165f908152600c60205260409020805460ff191660011790555b60175460ff161561114757611140848484611490565b905061088f565b6014546001600160a01b0384811691161480159061117357506002546001600160a01b03848116911614155b156112a2576001600160a01b0383165f908152600b602052604090205460ff16806111a057506005548211155b6111fe5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178206044820152682a2c103634b6b4ba1760b91b60648201526084016107af565b6001600160a01b0383165f908152600b602052604090205460ff168061124857506004546001600160a01b0384165f90815260076020526040902054611245908490611eb0565b11155b6112a25760405162461bcd60e51b815260206004820152602560248201527f5472616e7366657220616d6f756e74206578636565647320746865206261672060448201526439b4bd329760d91b60648201526084016107af565b6112aa611573565b156112b7576112b76115c9565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0387165f90815260079091529190912054611308918490610fc5565b6001600160a01b0385165f9081526007602052604081209190915561132d85856118e1565b6113375782611341565b6113418584611926565b6001600160a01b0385165f9081526007602052604090205490915015801561137757506014546001600160a01b03858116911614155b156113c757600980546001810182555f919091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319166001600160a01b0386161790555b6001600160a01b0384165f908152600760205260409020546113e990826119c9565b6001600160a01b038086165f8181526007602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061143c9085815260200190565b60405180910390a3506001949350505050565b5f61088f83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610fc5565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386165f9081526007909152918220546114e0918490610fc5565b6001600160a01b038086165f90815260076020526040808220939093559085168152205461150e90836119c9565b6001600160a01b038085165f8181526007602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906115619086815260200190565b60405180910390a35060019392505050565b6014545f906001600160a01b03163314801590611593575060175460ff16155b80156115a85750601554600160a01b900460ff165b80156115c45750601654305f9081526007602052604090205410155b905090565b6017805460ff19166001179055305f90815260076020908152604080832054815160028082526060820184529194939092908301908036833701905050905030815f8151811061161b5761161b611ec3565b6001600160a01b03928316602091820292909201810191909152601354604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611672573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116969190611f02565b816001815181106116a9576116a9611ec3565b6001600160a01b03928316602091820292909201015260135460405163791ac94760e01b815291169063791ac947906116ee9085905f90869030904290600401611f1d565b5f604051808303815f87803b158015611705575f80fd5b505af1158015611717573d5f803e3d5ffd5b505050505f4790505f611741600f5461173b600e5485611a2790919063ffffffff16565b90611aa5565b90505f61175f600f5461173b600d5486611a2790919063ffffffff16565b6011546040519192505f916001600160a01b039091169061753090849084818181858888f193505050503d805f81146117b3576040519150601f19603f3d011682016040523d82523d5f602084013e6117b8565b606091505b505090508061181a5760405162461bcd60e51b815260206004820152602860248201527f6d61726b6574696e672072656365697665722072656a656374656420455448206044820152673a3930b739b332b960c11b60648201526084016107af565b6012546040515f916001600160a01b03169061753090869084818181858888f193505050503d805f8114611869576040519150601f19603f3d011682016040523d82523d5f602084013e61186e565b606091505b50509050806118ce5760405162461bcd60e51b815260206004820152602660248201527f726577617264732072656365697665722072656a65637465642045544820747260448201526530b739b332b960d11b60648201526084016107af565b50506017805460ff191690555050505050565b6001600160a01b0382165f908152600a602052604081205460ff168061191e57506001600160a01b0382165f908152600a602052604090205460ff165b159392505050565b5f8061194360105461173b600f5486611a2790919063ffffffff16565b305f9081526007602052604090205490915061195f90826119c9565b305f81815260076020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906119af9085815260200190565b60405180910390a36119c1838261144f565b949350505050565b5f806119d58385611eb0565b90508381101561088f5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016107af565b5f825f03611a3657505f610780565b5f611a418385611e7a565b905082611a4e8583611e91565b1461088f5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016107af565b5f61088f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152505f8183611b015760405162461bcd60e51b81526004016107af9190611b0d565b505f610ff48486611e91565b5f6020808352835180828501525f5b81811015611b3857858101830151858201604001528201611b1c565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610f8a575f80fd5b8035611b7781611b58565b919050565b5f8060408385031215611b8d575f80fd5b8235611b9881611b58565b946020939093013593505050565b5f60208284031215611bb6575f80fd5b5035919050565b5f805f60608486031215611bcf575f80fd5b8335611bda81611b58565b92506020840135611bea81611b58565b929592945050506040919091013590565b5f8060408385031215611c0c575f80fd5b50508035926020909101359150565b5f60208284031215611c2b575f80fd5b813561088f81611b58565b80358015158114611b77575f80fd5b5f8060408385031215611c56575f80fd5b8235611c6181611b58565b9150611c6f60208401611c36565b90509250929050565b634e487b7160e01b5f52604160045260245ffd5b5f8060408385031215611c9d575f80fd5b823567ffffffffffffffff80821115611cb4575f80fd5b818501915085601f830112611cc7575f80fd5b8135602082821115611cdb57611cdb611c78565b8160051b604051601f19603f83011681018181108682111715611d0057611d00611c78565b604052928352818301935084810182019289841115611d1d575f80fd5b948201945b83861015611d4257611d3386611b6c565b85529482019493820193611d22565b9650611d519050878201611c36565b9450505050509250929050565b5f60208284031215611d6e575f80fd5b61088f82611c36565b5f8151808452602080850194508084015f5b83811015611dae5781516001600160a01b031687529582019590820190600101611d89565b509495945050505050565b604080825283519082018190525f906020906060840190828701845b82811015611df157815184529284019290840190600101611dd5565b50505083810382850152611e058186611d77565b9695505050505050565b5f8060408385031215611e20575f80fd5b8235611e2b81611b58565b91506020830135611e3b81611b58565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761078057610780611e66565b5f82611eab57634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561078057610780611e66565b634e487b7160e01b5f52603260045260245ffd5b5f60018201611ee857611ee8611e66565b5060010190565b8181038181111561078057610780611e66565b5f60208284031215611f12575f80fd5b815161088f81611b58565b85815284602082015260a060408201525f611f3b60a0830186611d77565b6001600160a01b039490941660608301525060800152939250505056fea2646970667358221220e00b29e10032b19a844182ddf3830c8eaccf5b1fc4798f38d7e03e51b86e195d64736f6c63430008140033

Deployed Bytecode Sourcemap

4839:10480:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6223:54;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;6223:54:0;;;;;;;;7357:80;;;;;;;;;;-1:-1:-1;7429:5:0;;;;;;;;;;;;-1:-1:-1;;;7429:5:0;;;;7357:80;;;;;;;:::i;7779:216::-;;;;;;;;;;-1:-1:-1;7779:216:0;;;;;:::i;:::-;;:::i;:::-;;;1509:14:1;;1502:22;1484:41;;1472:2;1457:18;7779:216:0;1344:187:1;7087:88:0;;;;;;;;;;-1:-1:-1;7160:12:0;;7087:88;;12367:137;;;;;;;;;;-1:-1:-1;12367:137:0;;;;;:::i;:::-;;:::i;:::-;;8297:370;;;;;;;;;;-1:-1:-1;8297:370:0;;;;;:::i;:::-;;:::i;12213:146::-;;;;;;;;;;-1:-1:-1;12213:146:0;;;;;:::i;:::-;;:::i;13153:211::-;;;;;;;;;;-1:-1:-1;13153:211:0;;;;;:::i;:::-;;:::i;2469:103::-;;;;;;;;;;-1:-1:-1;2469:103:0;;;;;:::i;:::-;2524:4;2559:5;-1:-1:-1;;;;;2548:16:0;;;2559:5;;2548:16;;2469:103;7181:80;;;;;;;;;;-1:-1:-1;7181:80:0;;5188:1;2829:36:1;;2817:2;2802:18;7181:80:0;2687:184:1;12611:121:0;;;;;;;;;;-1:-1:-1;12611:121:0;;;;;:::i;:::-;;:::i;8003:122::-;;;;;;;;;;-1:-1:-1;8003:122:0;;;;;:::i;:::-;;:::i;5261:61::-;;;;;;;;;;;;;;;;6186:30;;;;;;;;;;-1:-1:-1;6186:30:0;;;;-1:-1:-1;;;6186:30:0;;;;;;7527:105;;;;;;;;;;-1:-1:-1;7527:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;7611:18:0;7593:7;7611:18;;;:9;:18;;;;;;;7527:105;2578:131;;;;;;;;;;;;;:::i;14598:266::-;;;;;;;;;;-1:-1:-1;14598:266:0;;;;;:::i;:::-;;:::i;5329:57::-;;;;;;;;;;;;;;;;12512:91;;;;;;;;;;-1:-1:-1;12512:91:0;;;;;:::i;:::-;;:::i;12740:206::-;;;;;;;;;;-1:-1:-1;12740:206:0;;;;;:::i;:::-;;:::i;7443:78::-;;;;;;;;;;-1:-1:-1;7495:7:0;7513:5;-1:-1:-1;;;;;7513:5:0;7443:78;;;-1:-1:-1;;;;;5038:32:1;;;5020:51;;5008:2;4993:18;7443:78:0;4874:203:1;13372:120:0;;;;;;;;;;-1:-1:-1;13372:120:0;;;;;:::i;:::-;;:::i;14872:115::-;;;;;;;;;;-1:-1:-1;14872:115:0;;;;;:::i;:::-;;:::i;7267:84::-;;;;;;;;;;-1:-1:-1;7341:7:0;;;;;;;;;;;;-1:-1:-1;;;7341:7:0;;;;7267:84;;13933:246;;;;;;;;;;-1:-1:-1;13933:246:0;;;;;:::i;:::-;;:::i;6064:19::-;;;;;;;;;;-1:-1:-1;6064:19:0;;;;-1:-1:-1;;;;;6064:19:0;;;8133:156;;;;;;;;;;-1:-1:-1;8133:156:0;;;;;:::i;:::-;;:::i;13500:425::-;;;;;;;;;;-1:-1:-1;13500:425:0;;;;;:::i;:::-;;:::i;14187:403::-;;;;;;;;;;-1:-1:-1;14187:403:0;;;;;:::i;:::-;;:::i;14995:321::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;12102:103::-;;;;;;;;;;;;;:::i;7638:133::-;;;;;;;;;;-1:-1:-1;7638:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;7740:19:0;;;7722:7;7740:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;7638:133;5926:48;;;;;;;;;;-1:-1:-1;5926:48:0;;;;-1:-1:-1;;;;;5926:48:0;;;13068:77;;;;;;;;;;;;;:::i;5981:46::-;;;;;;;;;;-1:-1:-1;5981:46:0;;;;-1:-1:-1;;;;;5981:46:0;;;6036:21;;;;;;;;;;-1:-1:-1;6036:21:0;;;;-1:-1:-1;;;;;6036:21:0;;;12954:106;;;;;;;;;;-1:-1:-1;12954:106:0;;;;;:::i;:::-;-1:-1:-1;;;;;13037:15:0;13013:4;13037:15;;;:9;:15;;;;;;;;;12954:106;7779:216;7883:10;7854:4;7871:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;7871:32:0;;;;;;;;;;:41;;;7928:37;7854:4;;7871:32;;7928:37;;;;7906:6;160:25:1;;148:2;133:18;;14:177;7928:37:0;;;;;;;;-1:-1:-1;7983:4:0;7779:216;;;;;:::o;12367:137::-;2524:4;2559:5;-1:-1:-1;;;;;2559:5:0;2430:10;2548:16;2414:38;;;;-1:-1:-1;;;2414:38:0;;;;;;;:::i;:::-;;;;;;;;;12493:3:::1;12475:13;12460:12;;:28;;;;:::i;:::-;12459:37;;;;:::i;:::-;12444:12;:52:::0;-1:-1:-1;12367:137:0:o;8297:370::-;-1:-1:-1;;;;;8417:19:0;;8397:4;8417:19;;;:11;:19;;;;;;;;8437:10;8417:31;;;;;;;;-1:-1:-1;;8417:52:0;8414:186;;8519:69;;;;;;;;;;;-1:-1:-1;;;8519:69:0;;;;;;;;-1:-1:-1;;;;;8519:19:0;;-1:-1:-1;8519:19:0;;;:11;:19;;;;;8539:10;8519:31;;;;;;;;;;:69;;8555:6;;8519:35;:69::i;:::-;-1:-1:-1;;;;;8485:19:0;;;;;;:11;:19;;;;;;;;8505:10;8485:31;;;;;;;:103;8414:186;8619:40;8633:6;8641:9;8652:6;8619:13;:40::i;:::-;8612:47;;8297:370;;;;;;:::o;12213:146::-;2524:4;2559:5;-1:-1:-1;;;;;2559:5:0;2430:10;2548:16;2414:38;;;;-1:-1:-1;;;2414:38:0;;;;;;;:::i;:::-;12348:3:::1;12330:13;12315:12;;:28;;;;:::i;:::-;12314:37;;;;:::i;:::-;12295:16;:56:::0;-1:-1:-1;12213:146:0:o;13153:211::-;2524:4;2559:5;-1:-1:-1;;;;;2559:5:0;2430:10;2548:16;2414:38;;;;-1:-1:-1;;;2414:38:0;;;;;;;:::i;:::-;13246:12:::1;:28:::0;;;13285:10:::1;:24:::0;;;13331:25:::1;13261:13:::0;13298:11;13331:25:::1;:::i;:::-;13320:8;:36:::0;-1:-1:-1;;13153:211:0:o;12611:121::-;2524:4;2559:5;-1:-1:-1;;;;;2559:5:0;2430:10;2548:16;2414:38;;;;-1:-1:-1;;;2414:38:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;12697:15:0;;;::::1;;::::0;;;:9:::1;:15;::::0;;;;:27;;-1:-1:-1;;12697:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12611:121::o;8003:122::-;8058:4;8082:35;8090:7;-1:-1:-1;;8082:7:0;:35::i;2578:131::-;2524:4;2559:5;-1:-1:-1;;;;;2559:5:0;2430:10;2548:16;2414:38;;;;-1:-1:-1;;;2414:38:0;;;;;;;:::i;:::-;2651:1:::1;2635:18:::0;;-1:-1:-1;;;;;;2635:18:0::1;::::0;;2669:32:::1;::::0;5020:51:1;;;2669:32:0::1;::::0;5008:2:1;4993:18;2669:32:0::1;;;;;;;2578:131::o:0;14598:266::-;2524:4;2559:5;-1:-1:-1;;;;;2559:5:0;2430:10;2548:16;2414:38;;;;-1:-1:-1;;;2414:38:0;;;;;;;:::i;:::-;14705:9:::1;14700:157;14724:5;:12;14720:1;:16;14700:157;;;14782:10;14758:11;:21;14770:5;14776:1;14770:8;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;14758:21:0::1;-1:-1:-1::0;;;;;14758:21:0::1;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;14835:10;14807:15;:25;14823:5;14829:1;14823:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;14807:25:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;14807:25:0;:38;;-1:-1:-1;;14807:38:0::1;::::0;::::1;;::::0;;;::::1;::::0;;14738:3;::::1;::::0;::::1;:::i;:::-;;;;14700:157;;;;14598:266:::0;;:::o;12512:91::-;2524:4;2559:5;-1:-1:-1;;;;;2559:5:0;2430:10;2548:16;2414:38;;;;-1:-1:-1;;;2414:38:0;;;;;;;:::i;:::-;12575:11:::1;:20:::0;;;::::1;;-1:-1:-1::0;;;12575:20:0::1;-1:-1:-1::0;;;;12575:20:0;;::::1;::::0;;;::::1;::::0;;12512:91::o;12740:206::-;2524:4;2559:5;-1:-1:-1;;;;;2559:5:0;2430:10;2548:16;2414:38;;;;-1:-1:-1;;;2414:38:0;;;;;;;:::i;:::-;12843:9:::1;12838:101;12862:5;:12;12858:1;:16;12838:101;;;12918:9;12896;:19;12906:5;12912:1;12906:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;12896:19:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;12896:19:0;:31;;-1:-1:-1;;12896:31:0::1;::::0;::::1;;::::0;;;::::1;::::0;;12876:3;::::1;::::0;::::1;:::i;:::-;;;;12838:101;;13372:120:::0;2524:4;2559:5;-1:-1:-1;;;;;2559:5:0;2430:10;2548:16;2414:38;;;;-1:-1:-1;;;2414:38:0;;;;;;;:::i;:::-;13459:13:::1;:25:::0;13372:120::o;14872:115::-;2524:4;2559:5;-1:-1:-1;;;;;2559:5:0;2430:10;2548:16;2414:38;;;;-1:-1:-1;;;2414:38:0;;;;;;;:::i;:::-;14947:14:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;14947:32:0::1;-1:-1:-1::0;;;;14947:32:0;;::::1;::::0;;;::::1;::::0;;14872:115::o;13933:246::-;14017:10;14005:23;;;;:11;:23;;;;;;;;14000:63;;13933:246;:::o;14000:63::-;14159:10;;-1:-1:-1;;;;;14159:10:0;14073:16;14149:21;;;:9;:21;;;;;;14092:6;;14133:38;;14092:6;;14133:15;:38::i;:::-;14119:10;;-1:-1:-1;;;;;14119:10:0;14109:21;;;;:9;:21;;;;;:62;-1:-1:-1;;13933:246:0:o;8133:156::-;8213:4;8237:44;8251:10;8263:9;8274:6;8237:13;:44::i;13500:425::-;2524:4;2559:5;-1:-1:-1;;;;;2559:5:0;2430:10;2548:16;2414:38;;;;-1:-1:-1;;;2414:38:0;;;;;;;:::i;:::-;13620:5:::1;::::0;13596:20:::1;::::0;-1:-1:-1;;;;;13596:20:0;;::::1;13620:5:::0;::::1;13596:29;13592:163;;13654:20;::::0;;-1:-1:-1;;;;;13654:20:0;;::::1;13678:5;13642:33:::0;;;:11:::1;:33;::::0;;;;;;;:41;;-1:-1:-1;;13642:41:0;;::::1;::::0;;;13714:20;;;;::::1;13698:37:::0;;:15:::1;:37:::0;;;:45;;;;::::1;::::0;;13592:163:::1;13765:20;:44:::0;;-1:-1:-1;;;;;13765:44:0;;::::1;-1:-1:-1::0;;;;;;13765:44:0;;::::1;::::0;::::1;::::0;;:20:::1;13820:34:::0;;;:11:::1;:34;::::0;;;;;;;:41;;-1:-1:-1;;13820:41:0;;::::1;13765:44:::0;13820:41;;::::1;::::0;;;13872:15:::1;:38:::0;;;;;:45;;;;::::1;::::0;;::::1;::::0;;13500:425::o;14187:403::-;2524:4;2559:5;-1:-1:-1;;;;;2559:5:0;2430:10;2548:16;2414:38;;;;-1:-1:-1;;;2414:38:0;;;;;;;:::i;:::-;14297:5:::1;::::0;14275:18:::1;::::0;-1:-1:-1;;;;;14275:18:0;;::::1;14297:5:::0;::::1;14275:27;14271:157;;14331:18;::::0;;-1:-1:-1;;;;;14331:18:0;;::::1;14353:5;14319:31:::0;;;:11:::1;:31;::::0;;;;;;;:39;;-1:-1:-1;;14319:39:0;;::::1;::::0;;;14389:18;;;;::::1;14373:35:::0;;:15:::1;:35:::0;;;:43;;;;::::1;::::0;;14271:157:::1;14438:18;:40:::0;;-1:-1:-1;;;;;14438:40:0;;::::1;-1:-1:-1::0;;;;;;14438:40:0;;::::1;::::0;::::1;::::0;;:18:::1;14489:32:::0;;;:11:::1;:32;::::0;;;;;;;:39;;-1:-1:-1;;14489:39:0;;::::1;14438:40:::0;14489:39;;::::1;::::0;;;14539:15:::1;:36:::0;;;;;:43;;;;::::1;::::0;;::::1;::::0;;14187:403::o;14995:321::-;15037:16;15055;15084:23;15124:13;:20;;;;15110:35;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15110:35:0;;15084:61;;15161:6;15156:112;15175:13;:20;15171:24;;15156:112;;;15229:9;:27;15239:13;15253:1;15239:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;15239:16:0;15229:27;;;;;;;;;;;;;15217:9;;:6;;15224:1;;15217:9;;;;;;:::i;:::-;;;;;;;;;;:39;15197:3;;;;:::i;:::-;;;;15156:112;;;;15286:6;15294:13;15278:30;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;15278:30:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;14995:321;;:::o;12102:103::-;12159:5;;;12151:46;;-1:-1:-1;;;;;12159:5:0;;;;12175:21;12151:46;;;;;12175:21;;12151:46;12159:5;12151:46;12175:21;12159:5;12151:46;;;;;;;;;;;;;;;;;;;;;12102:103::o;13068:77::-;2524:4;2559:5;-1:-1:-1;;;;;2559:5:0;2430:10;2548:16;2414:38;;;;-1:-1:-1;;;2414:38:0;;;;;;;:::i;:::-;13121:8:::1;:16:::0;;-1:-1:-1;;;;13121:16:0::1;::::0;;13068:77::o;558:190::-;644:7;680:12;672:6;;;;664:29;;;;-1:-1:-1;;;664:29:0;;;;;;;;:::i;:::-;-1:-1:-1;704:9:0;716:5;720:1;716;:5;:::i;:::-;704:17;558:190;-1:-1:-1;;;;;558:190:0:o;8675:1294::-;8792:14;;8767:4;;-1:-1:-1;;;8792:14:0;;;;8784:43;;;;-1:-1:-1;;;8784:43:0;;8573:2:1;8784:43:0;;;8555:21:1;8612:2;8592:18;;;8585:30;-1:-1:-1;;;8631:18:1;;;8624:46;8687:18;;8784:43:0;8371:340:1;8784:43:0;-1:-1:-1;;;;;8847:17:0;;;;;;:9;:17;;;;;;;;8846:18;8838:49;;;;-1:-1:-1;;;8838:49:0;;8918:2:1;8838:49:0;;;8900:21:1;8957:2;8937:18;;;8930:30;-1:-1:-1;;;8976:18:1;;;8969:48;9034:18;;8838:49:0;8716:342:1;8838:49:0;8917:4;;-1:-1:-1;;;;;8904:17:0;;;8917:4;;8904:17;;;;:39;;-1:-1:-1;8938:5:0;;-1:-1:-1;;;;;8925:18:0;;;8938:5;;8925:18;;8904:39;:69;;;;-1:-1:-1;8960:13:0;;-1:-1:-1;;;;;8947:26:0;;;8960:13;;8947:26;;8904:69;:81;;;;-1:-1:-1;8977:8:0;;-1:-1:-1;;;8977:8:0;;;;8904:81;8900:141;;;-1:-1:-1;;;;;9002:20:0;;;;;;:9;:20;;;;;:27;;-1:-1:-1;;9002:27:0;9025:4;9002:27;;;8900:141;9056:6;;;;9053:63;;;9072:41;9087:6;9095:9;9106:6;9072:14;:41::i;:::-;9065:48;;;;9053:63;9145:4;;-1:-1:-1;;;;;9132:17:0;;;9145:4;;9132:17;;;;:38;;-1:-1:-1;9166:4:0;;-1:-1:-1;;;;;9153:17:0;;;9166:4;;9153:17;;9132:38;9128:321;;;-1:-1:-1;;;;;9195:26:0;;;;;;:15;:26;;;;;;;;;:52;;;9235:12;;9225:6;:22;;9195:52;9187:106;;;;-1:-1:-1;;;9187:106:0;;9265:2:1;9187:106:0;;;9247:21:1;9304:2;9284:18;;;9277:30;9343:34;9323:18;;;9316:62;-1:-1:-1;;;9394:18:1;;;9387:39;9443:19;;9187:106:0;9063:405:1;9187:106:0;-1:-1:-1;;;;;9316:26:0;;;;;;:15;:26;;;;;;;;;:79;;-1:-1:-1;9379:16:0;;-1:-1:-1;;;;;9346:20:0;;;;;;:9;:20;;;;;;:29;;9369:6;;9346:29;:::i;:::-;:49;;9316:79;9308:129;;;;-1:-1:-1;;;9308:129:0;;9675:2:1;9308:129:0;;;9657:21:1;9714:2;9694:18;;;9687:30;9753:34;9733:18;;;9726:62;-1:-1:-1;;;9804:18:1;;;9797:35;9849:19;;9308:129:0;9473:401:1;9308:129:0;9464:16;:14;:16::i;:::-;9461:35;;;9483:10;:8;:10::i;:::-;9528:53;;;;;;;;;;;-1:-1:-1;;;9528:53:0;;;;;;;;-1:-1:-1;;;;;9528:17:0;;-1:-1:-1;9528:17:0;;;:9;:17;;;;;;;;:53;;9550:6;;9528:21;:53::i;:::-;-1:-1:-1;;;;;9508:17:0;;;;;;:9;:17;;;;;:73;;;;9619:32;9518:6;9641:9;9619:13;:32::i;:::-;:67;;9680:6;9619:67;;;9654:23;9662:6;9670;9654:7;:23::i;:::-;-1:-1:-1;;;;;9701:20:0;;;;;;:9;:20;;;;;;9594:92;;-1:-1:-1;9701:25:0;:46;;;;-1:-1:-1;9743:4:0;;-1:-1:-1;;;;;9730:17:0;;;9743:4;;9730:17;;9701:46;9697:108;;;9764:13;:29;;;;;;;-1:-1:-1;9764:29:0;;;;;;;;-1:-1:-1;;;;;;9764:29:0;-1:-1:-1;;;;;9764:29:0;;;;;9697:108;-1:-1:-1;;;;;9838:20:0;;;;;;:9;:20;;;;;;:40;;9863:14;9838:24;:40::i;:::-;-1:-1:-1;;;;;9815:20:0;;;;;;;:9;:20;;;;;;;:63;;;;9896:43;;;;;;;;;;9924:14;160:25:1;;148:2;133:18;;14:177;9896:43:0;;;;;;;;-1:-1:-1;9957:4:0;;8675:1294;-1:-1:-1;;;;8675:1294:0:o;416:136::-;474:7;501:43;505:1;508;501:43;;;;;;;;;;;;;;;;;:3;:43::i;9977:330::-;10107:53;;;;;;;;;;;-1:-1:-1;;;10107:53:0;;;;;;;;-1:-1:-1;;;;;10107:17:0;;10070:4;10107:17;;;:9;:17;;;;;;;:53;;10129:6;;10107:21;:53::i;:::-;-1:-1:-1;;;;;10087:17:0;;;;;;;:9;:17;;;;;;:73;;;;10194:20;;;;;;;:32;;10219:6;10194:24;:32::i;:::-;-1:-1:-1;;;;;10171:20:0;;;;;;;:9;:20;;;;;;;:55;;;;10242:35;;;;;;;;;;10270:6;160:25:1;;148:2;133:18;;14:177;10242:35:0;;;;;;;;-1:-1:-1;10295:4:0;9977:330;;;;;:::o;10803:197::-;10890:4;;10852;;-1:-1:-1;;;;;10890:4:0;10876:10;:18;;;;:38;;-1:-1:-1;10908:6:0;;;;10907:7;10876:38;:62;;;;-1:-1:-1;10927:11:0;;-1:-1:-1;;;10927:11:0;;;;10876:62;:116;;;;-1:-1:-1;10979:13:0;;10969:4;10951:24;;;;:9;:24;;;;;;:41;;10876:116;10869:123;;10803:197;:::o;11008:1086::-;6324:6;:13;;-1:-1:-1;;6324:13:0;6333:4;6324:13;;;11106:4:::1;-1:-1:-1::0;11088:24:0;;;:9:::1;:24;::::0;;;;;;;;11149:16;;11163:1:::1;11149:16:::0;;;;;::::1;::::0;;11088:24;;-1:-1:-1;11149:16:0;;;;::::1;::::0;11088:24;11149:16:::1;::::0;::::1;;::::0;-1:-1:-1;11149:16:0::1;11125:40;;11194:4;11176;11181:1;11176:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11176:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11220:6:::1;::::0;:13:::1;::::0;;-1:-1:-1;;;11220:13:0;;;;:6;;;::::1;::::0;:11:::1;::::0;:13:::1;::::0;;::::1;::::0;11176:7;;11220:13;;;;;:6;:13:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11210:4;11215:1;11210:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11210:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;:23;11246:6:::1;::::0;:196:::1;::::0;-1:-1:-1;;;11246:196:0;;:6;::::1;::::0;:57:::1;::::0;:196:::1;::::0;11318:20;;11246:6:::1;::::0;11369:4;;11396::::1;::::0;11416:15:::1;::::0;11246:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11455:17;11475:21;11455:41;;11507:24;11534:39;11564:8;;11534:25;11548:10;;11534:9;:13;;:25;;;;:::i;:::-;:29:::0;::::1;:39::i;:::-;11507:66;;11584:26;11613:41;11645:8;;11613:27;11627:12;;11613:9;:13;;:27;;;;:::i;:41::-;11728:20;::::0;11720:77:::1;::::0;11584:70;;-1:-1:-1;11670:21:0::1;::::0;-1:-1:-1;;;;;11728:20:0;;::::1;::::0;11787:5:::1;::::0;11584:70;;11670:21;11720:77;11670:21;11720:77;11584:70;11728:20;11787:5;11720:77:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11669:128;;;11816:16;11808:69;;;::::0;-1:-1:-1;;;11808:69:0;;11134:2:1;11808:69:0::1;::::0;::::1;11116:21:1::0;11173:2;11153:18;;;11146:30;11212:34;11192:18;;;11185:62;-1:-1:-1;;;11263:18:1;;;11256:38;11311:19;;11808:69:0::1;10932:404:1::0;11808:69:0::1;11945:18;::::0;11937:73:::1;::::0;11889:19:::1;::::0;-1:-1:-1;;;;;11945:18:0::1;::::0;12000:5:::1;::::0;11977:16;;11889:19;11937:73;11889:19;11937:73;11977:16;11945:18;12000:5;11937:73:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11888:122;;;12029:14;12021:65;;;::::0;-1:-1:-1;;;12021:65:0;;11543:2:1;12021:65:0::1;::::0;::::1;11525:21:1::0;11582:2;11562:18;;;11555:30;11621:34;11601:18;;;11594:62;-1:-1:-1;;;11672:18:1;;;11665:36;11718:19;;12021:65:0::1;11341:402:1::0;12021:65:0::1;-1:-1:-1::0;;6342:6:0;:14;;-1:-1:-1;;6342:14:0;;;-1:-1:-1;;;;;11008:1086:0:o;10315:143::-;-1:-1:-1;;;;;10413:17:0;;10387:4;10413:17;;;:11;:17;;;;;;;;;:36;;-1:-1:-1;;;;;;10434:15:0;;;;;;:11;:15;;;;;;;;10413:36;10411:39;;10315:143;-1:-1:-1;;;10315:143:0:o;10466:329::-;10533:7;10553:17;10573:40;10598:14;;10573:20;10584:8;;10573:6;:10;;:20;;;;:::i;:40::-;10669:4;10651:24;;;;:9;:24;;;;;;10553:60;;-1:-1:-1;10651:39:0;;10553:60;10651:28;:39::i;:::-;10642:4;10624:24;;;;:9;:24;;;;;;;:66;;;;10706:42;;-1:-1:-1;;;;;10706:42:0;;;;;;;10738:9;160:25:1;;148:2;133:18;;14:177;10706:42:0;;;;;;;;10766:21;:6;10777:9;10766:10;:21::i;:::-;10759:28;10466:329;-1:-1:-1;;;;10466:329:0:o;231:179::-;289:7;;321:5;325:1;321;:5;:::i;:::-;309:17;;350:1;345;:6;;337:46;;;;-1:-1:-1;;;337:46:0;;11950:2:1;337:46:0;;;11932:21:1;11989:2;11969:18;;;11962:30;12028:29;12008:18;;;12001:57;12075:18;;337:46:0;11748:351:1;754:246:0;812:7;836:1;841;836:6;832:47;;-1:-1:-1;866:1:0;859:8;;832:47;889:9;901:5;905:1;901;:5;:::i;:::-;889:17;-1:-1:-1;934:1:0;925:5;929:1;889:17;925:5;:::i;:::-;:10;917:56;;;;-1:-1:-1;;;917:56:0;;12306:2:1;917:56:0;;;12288:21:1;12345:2;12325:18;;;12318:30;12384:34;12364:18;;;12357:62;-1:-1:-1;;;12435:18:1;;;12428:31;12476:19;;917:56:0;12104:397:1;1006:132:0;1064:7;1091:39;1095:1;1098;1091:39;;;;;;;;;;;;;;;;;1230:7;1265:12;1258:5;1250:28;;;;-1:-1:-1;;;1250:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1289:9:0;1301:5;1305:1;1301;: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:180::-;1595:6;1648:2;1636:9;1627:7;1623:23;1619:32;1616:52;;;1664:1;1661;1654:12;1616:52;-1:-1:-1;1687:23:1;;1536:180;-1:-1:-1;1536:180:1:o;1721:456::-;1798:6;1806;1814;1867:2;1855:9;1846:7;1842:23;1838:32;1835:52;;;1883:1;1880;1873:12;1835:52;1922:9;1909:23;1941:31;1966:5;1941:31;:::i;:::-;1991:5;-1:-1:-1;2048:2:1;2033:18;;2020:32;2061:33;2020:32;2061:33;:::i;:::-;1721:456;;2113:7;;-1:-1:-1;;;2167:2:1;2152:18;;;;2139:32;;1721:456::o;2182:248::-;2250:6;2258;2311:2;2299:9;2290:7;2286:23;2282:32;2279:52;;;2327:1;2324;2317:12;2279:52;-1:-1:-1;;2350:23:1;;;2420:2;2405:18;;;2392:32;;-1:-1:-1;2182:248:1:o;2435:247::-;2494:6;2547:2;2535:9;2526:7;2522:23;2518:32;2515:52;;;2563:1;2560;2553:12;2515:52;2602:9;2589:23;2621:31;2646:5;2621:31;:::i;2876:160::-;2941:20;;2997:13;;2990:21;2980:32;;2970:60;;3026:1;3023;3016:12;3041:315;3106:6;3114;3167:2;3155:9;3146:7;3142:23;3138:32;3135:52;;;3183:1;3180;3173:12;3135:52;3222:9;3209:23;3241:31;3266:5;3241:31;:::i;:::-;3291:5;-1:-1:-1;3315:35:1;3346:2;3331:18;;3315:35;:::i;:::-;3305:45;;3041:315;;;;;:::o;3361:127::-;3422:10;3417:3;3413:20;3410:1;3403:31;3453:4;3450:1;3443:15;3477:4;3474:1;3467:15;3493:1191;3583:6;3591;3644:2;3632:9;3623:7;3619:23;3615:32;3612:52;;;3660:1;3657;3650:12;3612:52;3700:9;3687:23;3729:18;3770:2;3762:6;3759:14;3756:34;;;3786:1;3783;3776:12;3756:34;3824:6;3813:9;3809:22;3799:32;;3869:7;3862:4;3858:2;3854:13;3850:27;3840:55;;3891:1;3888;3881:12;3840:55;3927:2;3914:16;3949:4;3972:2;3968;3965:10;3962:36;;;3978:18;;:::i;:::-;4024:2;4021:1;4017:10;4056:2;4050:9;4119:2;4115:7;4110:2;4106;4102:11;4098:25;4090:6;4086:38;4174:6;4162:10;4159:22;4154:2;4142:10;4139:18;4136:46;4133:72;;;4185:18;;:::i;:::-;4221:2;4214:22;4271:18;;;4305:15;;;;-1:-1:-1;4347:11:1;;;4343:20;;;4375:19;;;4372:39;;;4407:1;4404;4397:12;4372:39;4431:11;;;;4451:148;4467:6;4462:3;4459:15;4451:148;;;4533:23;4552:3;4533:23;:::i;:::-;4521:36;;4484:12;;;;4577;;;;4451:148;;;4618:6;-1:-1:-1;4643:35:1;;-1:-1:-1;4659:18:1;;;4643:35;:::i;:::-;4633:45;;;;;;3493:1191;;;;;:::o;4689:180::-;4745:6;4798:2;4786:9;4777:7;4773:23;4769:32;4766:52;;;4814:1;4811;4804:12;4766:52;4837:26;4853:9;4837:26;:::i;5082:461::-;5135:3;5173:5;5167:12;5200:6;5195:3;5188:19;5226:4;5255:2;5250:3;5246:12;5239:19;;5292:2;5285:5;5281:14;5313:1;5323:195;5337:6;5334:1;5331:13;5323:195;;;5402:13;;-1:-1:-1;;;;;5398:39:1;5386:52;;5458:12;;;;5493:15;;;;5434:1;5352:9;5323:195;;;-1:-1:-1;5534:3:1;;5082:461;-1:-1:-1;;;;;5082:461:1:o;5548:806::-;5816:2;5828:21;;;5898:13;;5801:18;;;5920:22;;;5768:4;;5995;;5973:2;5958:18;;;6022:15;;;5768:4;6065:169;6079:6;6076:1;6073:13;6065:169;;;6140:13;;6128:26;;6174:12;;;;6209:15;;;;6101:1;6094:9;6065:169;;;6069:3;;;6279:9;6274:3;6270:19;6265:2;6254:9;6250:18;6243:47;6307:41;6344:3;6336:6;6307:41;:::i;:::-;6299:49;5548:806;-1:-1:-1;;;;;;5548:806:1:o;6359:388::-;6427:6;6435;6488:2;6476:9;6467:7;6463:23;6459:32;6456:52;;;6504:1;6501;6494:12;6456:52;6543:9;6530:23;6562:31;6587:5;6562:31;:::i;:::-;6612:5;-1:-1:-1;6669:2:1;6654:18;;6641:32;6682:33;6641:32;6682:33;:::i;:::-;6734:7;6724:17;;;6359:388;;;;;:::o;6975:329::-;7177:2;7159:21;;;7216:1;7196:18;;;7189:29;-1:-1:-1;;;7249:2:1;7234:18;;7227:36;7295:2;7280:18;;6975:329::o;7309:127::-;7370:10;7365:3;7361:20;7358:1;7351:31;7401:4;7398:1;7391:15;7425:4;7422:1;7415:15;7441:168;7514:9;;;7545;;7562:15;;;7556:22;;7542:37;7532:71;;7583:18;;:::i;7614:217::-;7654:1;7680;7670:132;;7724:10;7719:3;7715:20;7712:1;7705:31;7759:4;7756:1;7749:15;7787:4;7784:1;7777:15;7670:132;-1:-1:-1;7816:9:1;;7614:217::o;7836:125::-;7901:9;;;7922:10;;;7919:36;;;7935:18;;:::i;7966:127::-;8027:10;8022:3;8018:20;8015:1;8008:31;8058:4;8055:1;8048:15;8082:4;8079:1;8072:15;8098:135;8137:3;8158:17;;;8155:43;;8178:18;;:::i;:::-;-1:-1:-1;8225:1:1;8214:13;;8098:135::o;8238:128::-;8305:9;;;8326:11;;;8323:37;;;8340:18;;:::i;9879:251::-;9949:6;10002:2;9990:9;9981:7;9977:23;9973:32;9970:52;;;10018:1;10015;10008:12;9970:52;10050:9;10044:16;10069:31;10094:5;10069:31;:::i;10135:582::-;10434:6;10423:9;10416:25;10477:6;10472:2;10461:9;10457:18;10450:34;10520:3;10515:2;10504:9;10500:18;10493:31;10397:4;10541:57;10593:3;10582:9;10578:19;10570:6;10541:57;:::i;:::-;-1:-1:-1;;;;;10634:32:1;;;;10629:2;10614:18;;10607:60;-1:-1:-1;10698:3:1;10683:19;10676:35;10533:65;10135:582;-1:-1:-1;;;10135:582:1:o

Swarm Source

ipfs://e00b29e10032b19a844182ddf3830c8eaccf5b1fc4798f38d7e03e51b86e195d

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.