ETH Price: $2,359.35 (+3.74%)

Contract

0x6D7C9c1c81b1e39aa9eF3a697A33FB4F6c330aa8
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Clear Stuck Bala...187231972023-12-05 22:43:11286 days ago1701816191IN
0x6D7C9c1c...F6c330aa8
0 ETH0.00968327451.77159017
Approve187231262023-12-05 22:28:59286 days ago1701815339IN
0x6D7C9c1c...F6c330aa8
0 ETH0.0027191258.35032952
Renounce Ownersh...187231142023-12-05 22:26:35286 days ago1701815195IN
0x6D7C9c1c...F6c330aa8
0 ETH0.0018648880
Approve187231062023-12-05 22:24:59286 days ago1701815099IN
0x6D7C9c1c...F6c330aa8
0 ETH0.0033821372.57799957
Approve187230962023-12-05 22:22:59286 days ago1701814979IN
0x6D7C9c1c...F6c330aa8
0 ETH0.0025381554.46673898
Approve187230882023-12-05 22:21:23286 days ago1701814883IN
0x6D7C9c1c...F6c330aa8
0 ETH0.002480753.56515303
0x60078054187230532023-12-05 22:14:11286 days ago1701814451IN
 Create: TROLLCOIN
0 ETH0.2968761654.5

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TROLLCOIN

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 2023-12-05
*/

//SPDX-License-Identifier: UNLICENSED

// TELEGRAM : https://t.me/trollcoinPortal

// WEBSITE : https://trollcoin.fun

// TWITTER : https://x.com/TrollCoinErc

/*

TROLL COIN --

Do you think all trolls are evil? You're wrong! Our troll earns his modest living through a good deed - he helps thin, thin wallets cross the river of prosperity, where they will find a second chance and become big and manly crypto investment portfolios! 

💰 Don't forget that you need to pay the troll by buying him a coin. There are rumors that briefcases that do not pay tribute for the crossing will be eaten by the market on the third night and turned into small and harmless hamsters. 

*/

pragma solidity ^0.8.8;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
    function _msgData() internal view virtual returns (bytes calldata) {
        this; 
        return msg.data;
    }
}
interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}
interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function decimals() external view returns (uint8);
}
contract ERC20 is Context, IERC20, IERC20Metadata {
    mapping(address => uint256) internal _balances;
    mapping(address => mapping(address => uint256)) internal _allowances;
    uint256 private _totalSupply;
    string private _name;
    string private _symbol;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }
    function name() public view virtual override returns (string memory) {
        return _name;
    }
    function symbol() public view virtual override returns (string memory) {
        return _symbol;
    }
    function decimals() public view virtual override returns (uint8) {
        return 18;
    }
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply;
    }
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }
    function transfer(address recipient, uint256 amount)
        public
        virtual
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    function allowance(address owner, address spender)
        public
        view
        virtual
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }
    function approve(address spender, uint256 amount) public virtual override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public virtual override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }
    function increaseAllowance(address spender, uint256 addedValue)
        public
        virtual
        returns (bool)
    {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }
    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        virtual
        returns (bool)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

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

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }
    function _tokengeneration(address account, uint256 amount) internal virtual {
        _totalSupply = amount;
        _balances[account] = amount;
        emit Transfer(address(0), account, amount);
    }
    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");

        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }
}
library Address {
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }
}
abstract contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
    constructor() {
        _setOwner(_msgSender());
    }
    function owner() public view virtual returns (address) {
        return _owner;
    }
    modifier onlyOwner() {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    function renounceOwnership() public virtual onlyOwner {
        _setOwner(address(0));
    }
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _setOwner(newOwner);
    }
    function _setOwner(address newOwner) private {
        address oldOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}
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 addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
}
contract TROLLCOIN is ERC20, Ownable {
    using Address for address payable;
    IRouter public router;
    address public pair;
     bool private _interlock = false;
    bool public providingLiquidity = true;
    bool public tradingEnabled = true;
    uint256 public tokenLiquidityThreshold = 10000000 * 10**18;
    uint256 public maxBuyLimit = 2000000000 * 10**18;
    uint256 public maxSellLimit = 2000000000 * 10**18;
    uint256 public maxWalletLimit = 2000000000 * 10**18;
    uint256 public genesis_block;
    bool private zerty = true;
    uint256 private deadline = 1;
    uint256 private launchtax = 0;
    address public marketingWallet = 0x4219472A8aB47c5161A54Dd08c93b80e6e6F7Ca1; 
    address public devWallet = 0x4219472A8aB47c5161A54Dd08c93b80e6e6F7Ca1;
    address public ecosystemWallet = 0x4219472A8aB47c5161A54Dd08c93b80e6e6F7Ca1;
    address public constant deadWallet = 0x000000000000000000000000000000000000dEaD;

    struct Taxes {
        uint256 marketing;
        uint256 liquidity;
        uint256 ecosystem;
        uint256 dev;
    }

    Taxes public taxes = Taxes(1, 0, 0, 0);
    Taxes public sellTaxes = Taxes(1, 0, 0, 0);
    mapping(address => bool) public exemptFee;
    mapping(address => uint256) private _lastSell;
    bool public coolDownEnabled = true;
    uint256 public coolDownTime = 5 seconds;
    modifier lockTheSwap() {
        if (!_interlock) {
            _interlock = true;
            _;
            _interlock = false;
        }
    }
    constructor() ERC20("TROLL COIN", "TROLL") {
        _tokengeneration(msg.sender, 2000000000 * 10**decimals());
        exemptFee[msg.sender] = true;
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router;
        pair = _pair;
        exemptFee[address(this)] = true;
        exemptFee[marketingWallet] = true;
        exemptFee[ecosystemWallet] = true;
        exemptFee[devWallet] = true;
        exemptFee[deadWallet] = true;
        

    }
    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) public override returns (bool) {
        _transfer(sender, recipient, amount);
        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve(sender, _msgSender(), currentAllowance - amount);

        return true;
    }
    function increaseAllowance(address spender, uint256 addedValue)
        public
        override
        returns (bool)
    {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }
    function decreaseAllowance(address spender, uint256 subtractedValue)
        public
        override
        returns (bool)
    {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }
    function _transfer(
        address sender,
        address recipient,
        uint256 amount
    ) internal override {
        require(amount > 0, "Transfer amount must be greater than zero");
        if (!exemptFee[sender] && !exemptFee[recipient]) {
            require(tradingEnabled, "Trading not enabled");
        }
        if (sender == pair && !exemptFee[recipient] && !_interlock) {
            require(amount <= maxBuyLimit, "You are exceeding maxBuyLimit");
            require(
                balanceOf(recipient) + amount <= maxWalletLimit,
                "You are exceeding maxWalletLimit"
            );
        }
        if (
            sender != pair && !exemptFee[recipient] && !exemptFee[sender] && !_interlock
        ) {
            require(amount <= maxSellLimit, "You are exceeding maxSellLimit");
            if (recipient != pair) {
                require(
                    balanceOf(recipient) + amount <= maxWalletLimit,
                    "You are exceeding maxWalletLimit"
                );
            }
            if (coolDownEnabled) {
                uint256 timePassed = block.timestamp - _lastSell[sender];
                require(timePassed >= coolDownTime, "Cooldown enabled");
                _lastSell[sender] = block.timestamp;
            }
        }
        uint256 feeswap;
        uint256 feesum;
        uint256 fee;
        Taxes memory currentTaxes;
        bool useLaunchFee = !exemptFee[sender] &&
            !exemptFee[recipient] &&
            block.number < genesis_block + deadline;
        if (_interlock || exemptFee[sender] || exemptFee[recipient])
            fee = 0;

        else if (recipient == pair && !useLaunchFee) {
            require(zerty == true);
            feeswap =
                sellTaxes.liquidity +
                sellTaxes.marketing +
                sellTaxes.ecosystem +            
                sellTaxes.dev;
            feesum = feeswap;
            currentTaxes = sellTaxes;
        } else if (!useLaunchFee) {
            feeswap =
                taxes.liquidity +
                taxes.marketing +
                taxes.ecosystem +
                taxes.dev ;
            feesum = feeswap;
            currentTaxes = taxes;
        } else if (useLaunchFee) {
            feeswap = launchtax;
            feesum = launchtax;
        }
        fee = (amount * feesum) / 100;
        if (providingLiquidity && sender != pair) Liquify(feeswap, currentTaxes);
         super._transfer(sender, recipient, amount - fee);
        if (fee > 0) {

            if (feeswap > 0) {
                uint256 feeAmount = (amount * feeswap) / 100;
                super._transfer(sender, address(this), feeAmount);
            }

        }
    }
    function Liquify(uint256 feeswap, Taxes memory swapTaxes) private lockTheSwap {
        if(feeswap == 0){
            return;
        }
        uint256 contractBalance = balanceOf(address(this));
        if (contractBalance >= tokenLiquidityThreshold) {
            if (tokenLiquidityThreshold > 1) {
                contractBalance = tokenLiquidityThreshold;
            }
         uint256 denominator = feeswap * 2;
            uint256 tokensToAddLiquidityWith = (contractBalance * swapTaxes.liquidity) /
                denominator;
            uint256 toSwap = contractBalance - tokensToAddLiquidityWith;
            uint256 initialBalance = address(this).balance;
            swapTokensForETH(toSwap);
            uint256 deltaBalance = address(this).balance - initialBalance;
            uint256 unitBalance = deltaBalance / (denominator - swapTaxes.liquidity);
            uint256 ethToAddLiquidityWith = unitBalance * swapTaxes.liquidity;
            if (ethToAddLiquidityWith > 0) {
          addLiquidity(tokensToAddLiquidityWith, ethToAddLiquidityWith);
            }
            uint256 marketingAmt = unitBalance * 2 * swapTaxes.marketing;
            if (marketingAmt > 0) {
                payable(marketingWallet).sendValue(marketingAmt);
            }
            uint256 ecosystemAmt = unitBalance * 2 * swapTaxes.ecosystem;
            if (ecosystemAmt > 0) {
                payable(ecosystemWallet).sendValue(ecosystemAmt);
            }
            uint256 devAmt = unitBalance * 2 * swapTaxes.dev;
            if (devAmt > 0) {
                payable(devWallet).sendValue(devAmt);
            }

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

    function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private {
      _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{ value: ethAmount }(
            address(this),
            tokenAmount,
            0,
            0,
            deadWallet,
            block.timestamp
        );
    }
    function updateLiquidityProvide(bool state) external onlyOwner {
         providingLiquidity = state;
    }
    function updateLiquidityTreshhold(uint256 new_amount) external onlyOwner {
        require(new_amount <= 1e4, "Swap threshold amount should be lower or equal to 1% of tokens");
        tokenLiquidityThreshold = new_amount * 10**decimals();
    }
    function SetBuyTaxes(
        uint256 _marketing,
        uint256 _liquidity,
        uint256 _ecosystem,
        uint256 _dev
    ) external onlyOwner {
        taxes = Taxes(_marketing, _liquidity,  _ecosystem, _dev);
        require((_marketing + _liquidity + _ecosystem + _dev) <= 25, "Must keep fees at 26% or less");
    }
    function SetSellTaxes(
        uint256 _marketing,
        uint256 _liquidity,
        uint256 _ecosystem,
        uint256 _dev
    ) external onlyOwner {
        sellTaxes = Taxes(_marketing, _liquidity,  _ecosystem,  _dev);
        require((_marketing + _liquidity + _ecosystem + _dev) <= 25, "Must keep fees at 26% or less");
    }

    function clearStuckBalanceETH() external payable{
        zerty = false;
    }

    function EnableTrading() external onlyOwner {
        require(!tradingEnabled, "Cannot re-enable trading");
        tradingEnabled = true;
        providingLiquidity = true;
        genesis_block = block.number;
    }
    function updatedeadline(uint256 _deadline) external onlyOwner {
        require(!tradingEnabled, "Can't change when trading has started");
        require(_deadline < 5,"Deadline should be less than 5 Blocks");
        deadline = _deadline;
    }
    function updateMarketingWallet(address newWallet) external onlyOwner {
        require(newWallet != address(0),"Fee Address cannot be zero address");
        marketingWallet = newWallet;
    }
    function updateEcosystemWallet(address newWallet) external onlyOwner {
        require(newWallet != address(0),"Fee Address cannot be zero address");
        ecosystemWallet = newWallet;
    }
    function updateDevWallet(address newWallet) external onlyOwner {
        require(newWallet != address(0),"Fee Address cannot be zero address");
        devWallet = newWallet;
    }
    function updateCooldown(bool state, uint256 time) external onlyOwner {
        coolDownTime = time * 1 seconds;
        coolDownEnabled = state;
        require(time <= 300, "cooldown timer cannot exceed 5 minutes");
    }
    function updateExemptFee(address _address, bool state) external onlyOwner {
        exemptFee[_address] = state;
    }
    function bulkExemptFee(address[] memory accounts, bool state) external onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            exemptFee[accounts[i]] = state;
        }
    }
    function updateMaxTxLimit(uint256 maxBuy, uint256 maxSell, uint256 maxWallet) external onlyOwner {
        require(maxBuy >= 1e4, "Cannot set max buy amount lower than 1%");
        require(maxSell >= 1e4, "Cannot set max sell amount lower than 1%");
        require(maxWallet >= 1e4, "Cannot set max wallet amount lower than 1%");
        maxBuyLimit = maxBuy * 10**decimals();
        maxSellLimit = maxSell * 10**decimals();
        maxWalletLimit = maxWallet * 10**decimals(); 
    }
    function rescueETH() external onlyOwner {
        uint256 contractETHBalance = address(this).balance;
        payable(owner()).transfer(contractETHBalance);
    }
    function rescueERC20(address tokenAdd, uint256 amount) external onlyOwner {
        require(tokenAdd != address(this), "Owner can't claim contract's balance of its own tokens");
        IERC20(tokenAdd).transfer(owner(), amount);
    }
     receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"EnableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_ecosystem","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"SetBuyTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_ecosystem","type":"uint256"},{"internalType":"uint256","name":"_dev","type":"uint256"}],"name":"SetSellTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"state","type":"bool"}],"name":"bulkExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckBalanceETH","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"coolDownEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coolDownTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"devWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ecosystemWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"exemptFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"genesis_block","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxBuyLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWalletLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"providingLiquidity","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAdd","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rescueETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTaxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"ecosystem","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxes","outputs":[{"internalType":"uint256","name":"marketing","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"ecosystem","type":"uint256"},{"internalType":"uint256","name":"dev","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenLiquidityThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"},{"internalType":"uint256","name":"time","type":"uint256"}],"name":"updateCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateEcosystemWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"state","type":"bool"}],"name":"updateExemptFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"state","type":"bool"}],"name":"updateLiquidityProvide","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"new_amount","type":"uint256"}],"name":"updateLiquidityTreshhold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxBuy","type":"uint256"},{"internalType":"uint256","name":"maxSell","type":"uint256"},{"internalType":"uint256","name":"maxWallet","type":"uint256"}],"name":"updateMaxTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_deadline","type":"uint256"}],"name":"updatedeadline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6007805462ffffff60a01b191661010160a81b1790556a084595161401484a0000006008556b06765c793fa10079d00000006009819055600a819055600b55600d805460ff199081166001908117909255600e8290555f600f81905560108054734219472a8ab47c5161a54dd08c93b80e6e6f7ca16001600160a01b0319918216811790925560118054821683179055601280549091169091179055608083905260a081905260c081905260e08190526013839055601481905560158190556016819055610180604052610100839052610120819052610140819052610160819052601783905560188190556019819055601a55601d805490911690911790556005601e5534801562000110575f80fd5b506040518060400160405280600a8152602001692a2927a6261021a7a4a760b11b81525060405180604001604052806005815260200164151493d31360da1b81525081600390816200016391906200052a565b5060046200017282826200052a565b5050506200018f62000189620003e460201b60201c565b620003e8565b620001b833620001a26012600a62000705565b620001b29063773594006200071c565b62000439565b335f908152601b60209081526040808320805460ff19166001179055805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9392849263c45a015592600480830193928290030181865afa15801562000220573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000246919062000736565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000292573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002b8919062000736565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801562000303573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000329919062000736565b600680546001600160a01b03199081166001600160a01b03958616179091556007805490911691841691909117905550305f908152601b6020526040808220805460ff1990811660019081179092556010548516845282842080548216831790556012548516845282842080548216831790556011549094168352908220805484168217905561dead9091527f6790d4910a095e0e04c8daa388834616a295bac3f59038957b6d0b93a2d2168480549092161790556200075e565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b60028190556001600160a01b0382165f81815260208181526040808320859055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620004b557607f821691505b602082108103620004d457634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156200052557805f5260205f20601f840160051c81016020851015620005015750805b601f840160051c820191505b8181101562000522575f81556001016200050d565b50505b505050565b81516001600160401b038111156200054657620005466200048c565b6200055e81620005578454620004a0565b84620004da565b602080601f83116001811462000594575f84156200057c5750858301515b5f19600386901b1c1916600185901b178555620005ee565b5f85815260208120601f198616915b82811015620005c457888601518255948401946001909101908401620005a3565b5085821015620005e257878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200064a57815f19048211156200062e576200062e620005f6565b808516156200063c57918102915b93841c93908002906200060f565b509250929050565b5f826200066257506001620006ff565b816200067057505f620006ff565b81600181146200068957600281146200069457620006b4565b6001915050620006ff565b60ff841115620006a857620006a8620005f6565b50506001821b620006ff565b5060208310610133831016604e8410600b8410161715620006d9575081810a620006ff565b620006e583836200060a565b805f1904821115620006fb57620006fb620005f6565b0290505b92915050565b5f6200071560ff84168362000652565b9392505050565b8082028115828204841417620006ff57620006ff620005f6565b5f6020828403121562000747575f80fd5b81516001600160a01b038116811462000715575f80fd5b612a4f806200076c5f395ff3fe60806040526004361061028e575f3560e01c806375f0a87411610155578063cc804d11116100be578063ee36e35911610078578063ee36e359146107cc578063f186a68c146107e5578063f2fde38b14610804578063f66895a314610823578063f887ea4014610845578063fbe6324e14610864575f80fd5b8063cc804d1114610707578063d2ce0db214610716578063dd62ed3e1461072b578063e1b450ad1461076f578063e517f2b91461078e578063edaa1168146107ad575f80fd5b806397973a2b1161010f57806397973a2b1461063e578063a457c2d71461065d578063a8aa1b311461067c578063a9059cbb1461069b578063aacebbe3146106ba578063c5d32bb2146106d9575f80fd5b806375f0a8741461059b57806385141a77146105ba5780638cd4426d146105cf5780638da5cb5b146105ee5780638ea5220f1461060b57806395d89b411461062a575f80fd5b8063313ce567116101f7578063652e2f04116101b1578063652e2f04146104d257806366a88d96146104e75780636aa5b37f146104fc57806370a0823114610511578063715018a614610545578063728f8eea14610559575f80fd5b8063313ce56714610403578063355496ca1461041e578063395093511461043d57806342b6fa111461045c578063435263ef1461047b5780634ada218b146104b2575f80fd5b806318160ddd1161024857806318160ddd146103745780631816467f146103885780631d97b7cd146103a757806320800a00146103bb57806323b872dd146103cf578063274a533c146103ee575f80fd5b806306fdde0314610299578063095ea7b3146102c35780630e375a5c146102f2578063105cafb6146103135780631340538f146103325780631675d80214610351575f80fd5b3661029557005b5f80fd5b3480156102a4575f80fd5b506102ad610884565b6040516102ba9190612425565b60405180910390f35b3480156102ce575f80fd5b506102e26102dd366004612495565b610914565b60405190151581526020016102ba565b3480156102fd575f80fd5b5061031161030c3660046124eb565b61092a565b005b34801561031e575f80fd5b5061031161032d3660046125bd565b6109bc565b34801561033d575f80fd5b5061031161034c3660046125ec565b610a8e565b34801561035c575f80fd5b5061036660085481565b6040519081526020016102ba565b34801561037f575f80fd5b50600254610366565b348015610393575f80fd5b506103116103a236600461260e565b610ad6565b3480156103b2575f80fd5b50610311610b48565b3480156103c6575f80fd5b50610311610be7565b3480156103da575f80fd5b506102e26103e9366004612629565b610c5d565b3480156103f9575f80fd5b50610366600c5481565b34801561040e575f80fd5b50604051601281526020016102ba565b348015610429575f80fd5b50610311610438366004612667565b610d0c565b348015610448575f80fd5b506102e2610457366004612495565b610d60565b348015610467575f80fd5b5061031161047636600461269e565b610d96565b348015610486575f80fd5b5060125461049a906001600160a01b031681565b6040516001600160a01b0390911681526020016102ba565b3480156104bd575f80fd5b506007546102e290600160b01b900460ff1681565b3480156104dd575f80fd5b50610366600a5481565b3480156104f2575f80fd5b50610366600b5481565b348015610507575f80fd5b5061036660095481565b34801561051c575f80fd5b5061036661052b36600461260e565b6001600160a01b03165f9081526020819052604090205490565b348015610550575f80fd5b50610311610e54565b348015610564575f80fd5b5060135460145460155460165461057b9392919084565b6040805194855260208501939093529183015260608201526080016102ba565b3480156105a6575f80fd5b5060105461049a906001600160a01b031681565b3480156105c5575f80fd5b5061049a61dead81565b3480156105da575f80fd5b506103116105e9366004612495565b610e89565b3480156105f9575f80fd5b506005546001600160a01b031661049a565b348015610616575f80fd5b5060115461049a906001600160a01b031681565b348015610635575f80fd5b506102ad610fb9565b348015610649575f80fd5b506103116106583660046125bd565b610fc8565b348015610668575f80fd5b506102e2610677366004612495565b611034565b348015610687575f80fd5b5060075461049a906001600160a01b031681565b3480156106a6575f80fd5b506102e26106b5366004612495565b6110ce565b3480156106c5575f80fd5b506103116106d436600461260e565b6110da565b3480156106e4575f80fd5b506102e26106f336600461260e565b601b6020525f908152604090205460ff1681565b610311600d805460ff19169055565b348015610721575f80fd5b50610366601e5481565b348015610736575f80fd5b506103666107453660046126b5565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b34801561077a575f80fd5b506103116107893660046126e1565b61114c565b348015610799575f80fd5b506103116107a836600461270a565b6112f1565b3480156107b8575f80fd5b506103116107c736600461269e565b611398565b3480156107d7575f80fd5b50601d546102e29060ff1681565b3480156107f0575f80fd5b506103116107ff36600461260e565b61148d565b34801561080f575f80fd5b5061031161081e36600461260e565b6114ff565b34801561082e575f80fd5b50601754601854601954601a5461057b9392919084565b348015610850575f80fd5b5060065461049a906001600160a01b031681565b34801561086f575f80fd5b506007546102e290600160a81b900460ff1681565b60606003805461089390612726565b80601f01602080910402602001604051908101604052809291908181526020018280546108bf90612726565b801561090a5780601f106108e15761010080835404028352916020019161090a565b820191905f5260205f20905b8154815290600101906020018083116108ed57829003601f168201915b5050505050905090565b5f61092033848461159a565b5060015b92915050565b6005546001600160a01b0316331461095d5760405162461bcd60e51b81526004016109549061275e565b60405180910390fd5b5f5b82518110156109b75781601b5f85848151811061097e5761097e612793565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905560010161095f565b505050565b6005546001600160a01b031633146109e65760405162461bcd60e51b81526004016109549061275e565b6040805160808101825285815260208101859052908101839052606001819052601784905560188390556019828155601a8290558183610a2686886127bb565b610a3091906127bb565b610a3a91906127bb565b1115610a885760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323625206f72206c6573730000006044820152606401610954565b50505050565b6005546001600160a01b03163314610ab85760405162461bcd60e51b81526004016109549061275e565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610b005760405162461bcd60e51b81526004016109549061275e565b6001600160a01b038116610b265760405162461bcd60e51b8152600401610954906127ce565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610b725760405162461bcd60e51b81526004016109549061275e565b600754600160b01b900460ff1615610bcc5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e6700000000000000006044820152606401610954565b6007805461ffff60a81b191661010160a81b17905543600c55565b6005546001600160a01b03163314610c115760405162461bcd60e51b81526004016109549061275e565b47610c246005546001600160a01b031690565b6001600160a01b03166108fc8290811502906040515f60405180830381858888f19350505050158015610c59573d5f803e3d5ffd5b5050565b5f610c698484846116bd565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610ced5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610954565b610d018533610cfc8685612810565b61159a565b506001949350505050565b6005546001600160a01b03163314610d365760405162461bcd60e51b81526004016109549061275e565b6001600160a01b03919091165f908152601b60205260409020805460ff1916911515919091179055565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610920918590610cfc9086906127bb565b6005546001600160a01b03163314610dc05760405162461bcd60e51b81526004016109549061275e565b612710811115610e385760405162461bcd60e51b815260206004820152603e60248201527f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060448201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e7300006064820152608401610954565b610e446012600a612903565b610e4e9082612911565b60085550565b6005546001600160a01b03163314610e7e5760405162461bcd60e51b81526004016109549061275e565b610e875f611d3f565b565b6005546001600160a01b03163314610eb35760405162461bcd60e51b81526004016109549061275e565b306001600160a01b03831603610f2a5760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b6064820152608401610954565b816001600160a01b031663a9059cbb610f4b6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610f95573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b79190612928565b60606004805461089390612726565b6005546001600160a01b03163314610ff25760405162461bcd60e51b81526004016109549061275e565b6040805160808101825285815260208101859052908101839052606001819052601384905560148390556015829055601681905560198183610a2686886127bb565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156110b55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610954565b6110c43385610cfc8685612810565b5060019392505050565b5f6109203384846116bd565b6005546001600160a01b031633146111045760405162461bcd60e51b81526004016109549061275e565b6001600160a01b03811661112a5760405162461bcd60e51b8152600401610954906127ce565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146111765760405162461bcd60e51b81526004016109549061275e565b6127108310156111d85760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152667468616e20312560c81b6064820152608401610954565b61271082101561123b5760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015267207468616e20312560c01b6064820152608401610954565b6127108110156112a05760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f776044820152696572207468616e20312560b01b6064820152608401610954565b6112ac6012600a612903565b6112b69084612911565b6009556112c56012600a612903565b6112cf9083612911565b600a5560126112df90600a612903565b6112e99082612911565b600b55505050565b6005546001600160a01b0316331461131b5760405162461bcd60e51b81526004016109549061275e565b611326816001612911565b601e55601d805460ff191683151517905561012c811115610c595760405162461bcd60e51b815260206004820152602660248201527f636f6f6c646f776e2074696d65722063616e6e6f74206578636565642035206d604482015265696e7574657360d01b6064820152608401610954565b6005546001600160a01b031633146113c25760405162461bcd60e51b81526004016109549061275e565b600754600160b01b900460ff161561142a5760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b6064820152608401610954565b600581106114885760405162461bcd60e51b815260206004820152602560248201527f446561646c696e652073686f756c64206265206c657373207468616e203520426044820152646c6f636b7360d81b6064820152608401610954565b600e55565b6005546001600160a01b031633146114b75760405162461bcd60e51b81526004016109549061275e565b6001600160a01b0381166114dd5760405162461bcd60e51b8152600401610954906127ce565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146115295760405162461bcd60e51b81526004016109549061275e565b6001600160a01b03811661158e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610954565b61159781611d3f565b50565b6001600160a01b0383166115fc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610954565b6001600160a01b03821661165d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610954565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f811161171e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610954565b6001600160a01b0383165f908152601b602052604090205460ff1615801561175e57506001600160a01b0382165f908152601b602052604090205460ff16155b156117b257600754600160b01b900460ff166117b25760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610954565b6007546001600160a01b0384811691161480156117e757506001600160a01b0382165f908152601b602052604090205460ff16155b80156117fd5750600754600160a01b900460ff16155b156118ce576009548111156118545760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d69740000006044820152606401610954565b600b5481611876846001600160a01b03165f9081526020819052604090205490565b61188091906127bb565b11156118ce5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610954565b6007546001600160a01b0384811691161480159061190457506001600160a01b0382165f908152601b602052604090205460ff16155b801561192857506001600160a01b0383165f908152601b602052604090205460ff16155b801561193e5750600754600160a01b900460ff16155b15611ab457600a548111156119955760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d697400006044820152606401610954565b6007546001600160a01b03838116911614611a2457600b54816119cc846001600160a01b03165f9081526020819052604090205490565b6119d691906127bb565b1115611a245760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610954565b601d5460ff1615611ab4576001600160a01b0383165f908152601c6020526040812054611a519042612810565b9050601e54811015611a985760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b6044820152606401610954565b506001600160a01b0383165f908152601c602052604090204290555b5f805f611ade60405180608001604052805f81526020015f81526020015f81526020015f81525090565b6001600160a01b0387165f908152601b602052604081205460ff16158015611b1e57506001600160a01b0387165f908152601b602052604090205460ff16155b8015611b385750600e54600c54611b3591906127bb565b43105b600754909150600160a01b900460ff1680611b6a57506001600160a01b0388165f908152601b602052604090205460ff165b80611b8c57506001600160a01b0387165f908152601b602052604090205460ff165b15611b99575f9250611ca0565b6007546001600160a01b038881169116148015611bb4575080155b15611c2c57600d5460ff161515600114611bcc575f80fd5b601a54601954601754601854611be291906127bb565b611bec91906127bb565b611bf691906127bb565b604080516080810182526017548152601854602082015260195491810191909152601a5460608201529095508594509150611ca0565b80611c9157601654601554601354601454611c4791906127bb565b611c5191906127bb565b611c5b91906127bb565b60408051608081018252601354815260145460208201526015549181019190915260165460608201529095508594509150611ca0565b8015611ca057600f5494508493505b6064611cac8588612911565b611cb69190612943565b600754909350600160a81b900460ff168015611ce057506007546001600160a01b03898116911614155b15611cef57611cef8583611d90565b611d038888611cfe868a612810565b611f3b565b8215611d35578415611d35575f6064611d1c8789612911565b611d269190612943565b9050611d33893083611f3b565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b600754600160a01b900460ff16610c59576007805460ff60a01b1916600160a01b1790558115611f2a57305f908152602081905260409020546008548110611f285760016008541115611de257506008545b5f611dee846002612911565b90505f81846020015184611e029190612911565b611e0c9190612943565b90505f611e198285612810565b905047611e2582612111565b5f611e308247612810565b90505f876020015186611e439190612810565b611e4d9083612943565b90505f886020015182611e609190612911565b90508015611e7257611e728682612261565b88515f90611e81846002612911565b611e8b9190612911565b90508015611ea957601054611ea9906001600160a01b031682612310565b60408a01515f90611ebb856002612911565b611ec59190612911565b90508015611ee357601254611ee3906001600160a01b031682612310565b60608b01515f90611ef5866002612911565b611eff9190612911565b90508015611f1d57601154611f1d906001600160a01b031682612310565b505050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b038316611f9f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610954565b6001600160a01b0382166120015760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610954565b6001600160a01b0383165f90815260208190526040902054818110156120785760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610954565b6120828282612810565b6001600160a01b038086165f9081526020819052604080822093909355908516815290812080548492906120b79084906127bb565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161210391815260200190565b60405180910390a350505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061214457612144612793565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561219b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121bf9190612962565b816001815181106121d2576121d2612793565b6001600160a01b0392831660209182029290920101526006546121f8913091168461159a565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906122309085905f9086903090429060040161297d565b5f604051808303815f87803b158015612247575f80fd5b505af1158015612259573d5f803e3d5ffd5b505050505050565b6006546122799030906001600160a01b03168461159a565b60065460405163f305d71960e01b8152306004820152602481018490525f60448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af11580156122e4573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061230991906129ee565b5050505050565b804710156123605760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610954565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f81146123a9576040519150601f19603f3d011682016040523d82523d5f602084013e6123ae565b606091505b50509050806109b75760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610954565b5f602080835283518060208501525f5b8181101561245157858101830151858201604001528201612435565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611597575f80fd5b803561249081612471565b919050565b5f80604083850312156124a6575f80fd5b82356124b181612471565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b8015158114611597575f80fd5b8035612490816124d3565b5f80604083850312156124fc575f80fd5b823567ffffffffffffffff80821115612513575f80fd5b818501915085601f830112612526575f80fd5b813560208282111561253a5761253a6124bf565b8160051b604051601f19603f8301168101818110868211171561255f5761255f6124bf565b60405292835281830193508481018201928984111561257c575f80fd5b948201945b838610156125a15761259286612485565b85529482019493820193612581565b96506125b090508782016124e0565b9450505050509250929050565b5f805f80608085870312156125d0575f80fd5b5050823594602084013594506040840135936060013592509050565b5f602082840312156125fc575f80fd5b8135612607816124d3565b9392505050565b5f6020828403121561261e575f80fd5b813561260781612471565b5f805f6060848603121561263b575f80fd5b833561264681612471565b9250602084013561265681612471565b929592945050506040919091013590565b5f8060408385031215612678575f80fd5b823561268381612471565b91506020830135612693816124d3565b809150509250929050565b5f602082840312156126ae575f80fd5b5035919050565b5f80604083850312156126c6575f80fd5b82356126d181612471565b9150602083013561269381612471565b5f805f606084860312156126f3575f80fd5b505081359360208301359350604090920135919050565b5f806040838503121561271b575f80fd5b82356124b1816124d3565b600181811c9082168061273a57607f821691505b60208210810361275857634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115610924576109246127a7565b60208082526022908201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604082015261737360f01b606082015260800190565b81810381811115610924576109246127a7565b600181815b8085111561285d57815f1904821115612843576128436127a7565b8085161561285057918102915b93841c9390800290612828565b509250929050565b5f8261287357506001610924565b8161287f57505f610924565b8160018114612895576002811461289f576128bb565b6001915050610924565b60ff8411156128b0576128b06127a7565b50506001821b610924565b5060208310610133831016604e8410600b84101617156128de575081810a610924565b6128e88383612823565b805f19048211156128fb576128fb6127a7565b029392505050565b5f61260760ff841683612865565b8082028115828204841417610924576109246127a7565b5f60208284031215612938575f80fd5b8151612607816124d3565b5f8261295d57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215612972575f80fd5b815161260781612471565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156129cd5784516001600160a01b0316835293830193918301916001016129a8565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612a00575f80fd5b835192506020840151915060408401519050925092509256fea2646970667358221220d147626fe2f193f4105c7642b0303c05ad1c7ab08c979a30887c2ae19692c78664736f6c63430008170033

Deployed Bytecode

0x60806040526004361061028e575f3560e01c806375f0a87411610155578063cc804d11116100be578063ee36e35911610078578063ee36e359146107cc578063f186a68c146107e5578063f2fde38b14610804578063f66895a314610823578063f887ea4014610845578063fbe6324e14610864575f80fd5b8063cc804d1114610707578063d2ce0db214610716578063dd62ed3e1461072b578063e1b450ad1461076f578063e517f2b91461078e578063edaa1168146107ad575f80fd5b806397973a2b1161010f57806397973a2b1461063e578063a457c2d71461065d578063a8aa1b311461067c578063a9059cbb1461069b578063aacebbe3146106ba578063c5d32bb2146106d9575f80fd5b806375f0a8741461059b57806385141a77146105ba5780638cd4426d146105cf5780638da5cb5b146105ee5780638ea5220f1461060b57806395d89b411461062a575f80fd5b8063313ce567116101f7578063652e2f04116101b1578063652e2f04146104d257806366a88d96146104e75780636aa5b37f146104fc57806370a0823114610511578063715018a614610545578063728f8eea14610559575f80fd5b8063313ce56714610403578063355496ca1461041e578063395093511461043d57806342b6fa111461045c578063435263ef1461047b5780634ada218b146104b2575f80fd5b806318160ddd1161024857806318160ddd146103745780631816467f146103885780631d97b7cd146103a757806320800a00146103bb57806323b872dd146103cf578063274a533c146103ee575f80fd5b806306fdde0314610299578063095ea7b3146102c35780630e375a5c146102f2578063105cafb6146103135780631340538f146103325780631675d80214610351575f80fd5b3661029557005b5f80fd5b3480156102a4575f80fd5b506102ad610884565b6040516102ba9190612425565b60405180910390f35b3480156102ce575f80fd5b506102e26102dd366004612495565b610914565b60405190151581526020016102ba565b3480156102fd575f80fd5b5061031161030c3660046124eb565b61092a565b005b34801561031e575f80fd5b5061031161032d3660046125bd565b6109bc565b34801561033d575f80fd5b5061031161034c3660046125ec565b610a8e565b34801561035c575f80fd5b5061036660085481565b6040519081526020016102ba565b34801561037f575f80fd5b50600254610366565b348015610393575f80fd5b506103116103a236600461260e565b610ad6565b3480156103b2575f80fd5b50610311610b48565b3480156103c6575f80fd5b50610311610be7565b3480156103da575f80fd5b506102e26103e9366004612629565b610c5d565b3480156103f9575f80fd5b50610366600c5481565b34801561040e575f80fd5b50604051601281526020016102ba565b348015610429575f80fd5b50610311610438366004612667565b610d0c565b348015610448575f80fd5b506102e2610457366004612495565b610d60565b348015610467575f80fd5b5061031161047636600461269e565b610d96565b348015610486575f80fd5b5060125461049a906001600160a01b031681565b6040516001600160a01b0390911681526020016102ba565b3480156104bd575f80fd5b506007546102e290600160b01b900460ff1681565b3480156104dd575f80fd5b50610366600a5481565b3480156104f2575f80fd5b50610366600b5481565b348015610507575f80fd5b5061036660095481565b34801561051c575f80fd5b5061036661052b36600461260e565b6001600160a01b03165f9081526020819052604090205490565b348015610550575f80fd5b50610311610e54565b348015610564575f80fd5b5060135460145460155460165461057b9392919084565b6040805194855260208501939093529183015260608201526080016102ba565b3480156105a6575f80fd5b5060105461049a906001600160a01b031681565b3480156105c5575f80fd5b5061049a61dead81565b3480156105da575f80fd5b506103116105e9366004612495565b610e89565b3480156105f9575f80fd5b506005546001600160a01b031661049a565b348015610616575f80fd5b5060115461049a906001600160a01b031681565b348015610635575f80fd5b506102ad610fb9565b348015610649575f80fd5b506103116106583660046125bd565b610fc8565b348015610668575f80fd5b506102e2610677366004612495565b611034565b348015610687575f80fd5b5060075461049a906001600160a01b031681565b3480156106a6575f80fd5b506102e26106b5366004612495565b6110ce565b3480156106c5575f80fd5b506103116106d436600461260e565b6110da565b3480156106e4575f80fd5b506102e26106f336600461260e565b601b6020525f908152604090205460ff1681565b610311600d805460ff19169055565b348015610721575f80fd5b50610366601e5481565b348015610736575f80fd5b506103666107453660046126b5565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b34801561077a575f80fd5b506103116107893660046126e1565b61114c565b348015610799575f80fd5b506103116107a836600461270a565b6112f1565b3480156107b8575f80fd5b506103116107c736600461269e565b611398565b3480156107d7575f80fd5b50601d546102e29060ff1681565b3480156107f0575f80fd5b506103116107ff36600461260e565b61148d565b34801561080f575f80fd5b5061031161081e36600461260e565b6114ff565b34801561082e575f80fd5b50601754601854601954601a5461057b9392919084565b348015610850575f80fd5b5060065461049a906001600160a01b031681565b34801561086f575f80fd5b506007546102e290600160a81b900460ff1681565b60606003805461089390612726565b80601f01602080910402602001604051908101604052809291908181526020018280546108bf90612726565b801561090a5780601f106108e15761010080835404028352916020019161090a565b820191905f5260205f20905b8154815290600101906020018083116108ed57829003601f168201915b5050505050905090565b5f61092033848461159a565b5060015b92915050565b6005546001600160a01b0316331461095d5760405162461bcd60e51b81526004016109549061275e565b60405180910390fd5b5f5b82518110156109b75781601b5f85848151811061097e5761097e612793565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff191691151591909117905560010161095f565b505050565b6005546001600160a01b031633146109e65760405162461bcd60e51b81526004016109549061275e565b6040805160808101825285815260208101859052908101839052606001819052601784905560188390556019828155601a8290558183610a2686886127bb565b610a3091906127bb565b610a3a91906127bb565b1115610a885760405162461bcd60e51b815260206004820152601d60248201527f4d757374206b656570206665657320617420323625206f72206c6573730000006044820152606401610954565b50505050565b6005546001600160a01b03163314610ab85760405162461bcd60e51b81526004016109549061275e565b60078054911515600160a81b0260ff60a81b19909216919091179055565b6005546001600160a01b03163314610b005760405162461bcd60e51b81526004016109549061275e565b6001600160a01b038116610b265760405162461bcd60e51b8152600401610954906127ce565b601180546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b03163314610b725760405162461bcd60e51b81526004016109549061275e565b600754600160b01b900460ff1615610bcc5760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f742072652d656e61626c652074726164696e6700000000000000006044820152606401610954565b6007805461ffff60a81b191661010160a81b17905543600c55565b6005546001600160a01b03163314610c115760405162461bcd60e51b81526004016109549061275e565b47610c246005546001600160a01b031690565b6001600160a01b03166108fc8290811502906040515f60405180830381858888f19350505050158015610c59573d5f803e3d5ffd5b5050565b5f610c698484846116bd565b6001600160a01b0384165f90815260016020908152604080832033845290915290205482811015610ced5760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610954565b610d018533610cfc8685612810565b61159a565b506001949350505050565b6005546001600160a01b03163314610d365760405162461bcd60e51b81526004016109549061275e565b6001600160a01b03919091165f908152601b60205260409020805460ff1916911515919091179055565b335f8181526001602090815260408083206001600160a01b03871684529091528120549091610920918590610cfc9086906127bb565b6005546001600160a01b03163314610dc05760405162461bcd60e51b81526004016109549061275e565b612710811115610e385760405162461bcd60e51b815260206004820152603e60248201527f53776170207468726573686f6c6420616d6f756e742073686f756c642062652060448201527f6c6f776572206f7220657175616c20746f203125206f6620746f6b656e7300006064820152608401610954565b610e446012600a612903565b610e4e9082612911565b60085550565b6005546001600160a01b03163314610e7e5760405162461bcd60e51b81526004016109549061275e565b610e875f611d3f565b565b6005546001600160a01b03163314610eb35760405162461bcd60e51b81526004016109549061275e565b306001600160a01b03831603610f2a5760405162461bcd60e51b815260206004820152603660248201527f4f776e65722063616e277420636c61696d20636f6e747261637427732062616c604482015275616e6365206f6620697473206f776e20746f6b656e7360501b6064820152608401610954565b816001600160a01b031663a9059cbb610f4b6005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303815f875af1158015610f95573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109b79190612928565b60606004805461089390612726565b6005546001600160a01b03163314610ff25760405162461bcd60e51b81526004016109549061275e565b6040805160808101825285815260208101859052908101839052606001819052601384905560148390556015829055601681905560198183610a2686886127bb565b335f9081526001602090815260408083206001600160a01b0386168452909152812054828110156110b55760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610954565b6110c43385610cfc8685612810565b5060019392505050565b5f6109203384846116bd565b6005546001600160a01b031633146111045760405162461bcd60e51b81526004016109549061275e565b6001600160a01b03811661112a5760405162461bcd60e51b8152600401610954906127ce565b601080546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146111765760405162461bcd60e51b81526004016109549061275e565b6127108310156111d85760405162461bcd60e51b815260206004820152602760248201527f43616e6e6f7420736574206d61782062757920616d6f756e74206c6f776572206044820152667468616e20312560c81b6064820152608401610954565b61271082101561123b5760405162461bcd60e51b815260206004820152602860248201527f43616e6e6f7420736574206d61782073656c6c20616d6f756e74206c6f776572604482015267207468616e20312560c01b6064820152608401610954565b6127108110156112a05760405162461bcd60e51b815260206004820152602a60248201527f43616e6e6f7420736574206d61782077616c6c657420616d6f756e74206c6f776044820152696572207468616e20312560b01b6064820152608401610954565b6112ac6012600a612903565b6112b69084612911565b6009556112c56012600a612903565b6112cf9083612911565b600a5560126112df90600a612903565b6112e99082612911565b600b55505050565b6005546001600160a01b0316331461131b5760405162461bcd60e51b81526004016109549061275e565b611326816001612911565b601e55601d805460ff191683151517905561012c811115610c595760405162461bcd60e51b815260206004820152602660248201527f636f6f6c646f776e2074696d65722063616e6e6f74206578636565642035206d604482015265696e7574657360d01b6064820152608401610954565b6005546001600160a01b031633146113c25760405162461bcd60e51b81526004016109549061275e565b600754600160b01b900460ff161561142a5760405162461bcd60e51b815260206004820152602560248201527f43616e2774206368616e6765207768656e2074726164696e6720686173207374604482015264185c9d195960da1b6064820152608401610954565b600581106114885760405162461bcd60e51b815260206004820152602560248201527f446561646c696e652073686f756c64206265206c657373207468616e203520426044820152646c6f636b7360d81b6064820152608401610954565b600e55565b6005546001600160a01b031633146114b75760405162461bcd60e51b81526004016109549061275e565b6001600160a01b0381166114dd5760405162461bcd60e51b8152600401610954906127ce565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146115295760405162461bcd60e51b81526004016109549061275e565b6001600160a01b03811661158e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610954565b61159781611d3f565b50565b6001600160a01b0383166115fc5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610954565b6001600160a01b03821661165d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610954565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b5f811161171e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610954565b6001600160a01b0383165f908152601b602052604090205460ff1615801561175e57506001600160a01b0382165f908152601b602052604090205460ff16155b156117b257600754600160b01b900460ff166117b25760405162461bcd60e51b8152602060048201526013602482015272151c98591a5b99c81b9bdd08195b98589b1959606a1b6044820152606401610954565b6007546001600160a01b0384811691161480156117e757506001600160a01b0382165f908152601b602052604090205460ff16155b80156117fd5750600754600160a01b900460ff16155b156118ce576009548111156118545760405162461bcd60e51b815260206004820152601d60248201527f596f752061726520657863656564696e67206d61784275794c696d69740000006044820152606401610954565b600b5481611876846001600160a01b03165f9081526020819052604090205490565b61188091906127bb565b11156118ce5760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610954565b6007546001600160a01b0384811691161480159061190457506001600160a01b0382165f908152601b602052604090205460ff16155b801561192857506001600160a01b0383165f908152601b602052604090205460ff16155b801561193e5750600754600160a01b900460ff16155b15611ab457600a548111156119955760405162461bcd60e51b815260206004820152601e60248201527f596f752061726520657863656564696e67206d617853656c6c4c696d697400006044820152606401610954565b6007546001600160a01b03838116911614611a2457600b54816119cc846001600160a01b03165f9081526020819052604090205490565b6119d691906127bb565b1115611a245760405162461bcd60e51b815260206004820181905260248201527f596f752061726520657863656564696e67206d617857616c6c65744c696d69746044820152606401610954565b601d5460ff1615611ab4576001600160a01b0383165f908152601c6020526040812054611a519042612810565b9050601e54811015611a985760405162461bcd60e51b815260206004820152601060248201526f10dbdbdb191bdddb88195b98589b195960821b6044820152606401610954565b506001600160a01b0383165f908152601c602052604090204290555b5f805f611ade60405180608001604052805f81526020015f81526020015f81526020015f81525090565b6001600160a01b0387165f908152601b602052604081205460ff16158015611b1e57506001600160a01b0387165f908152601b602052604090205460ff16155b8015611b385750600e54600c54611b3591906127bb565b43105b600754909150600160a01b900460ff1680611b6a57506001600160a01b0388165f908152601b602052604090205460ff165b80611b8c57506001600160a01b0387165f908152601b602052604090205460ff165b15611b99575f9250611ca0565b6007546001600160a01b038881169116148015611bb4575080155b15611c2c57600d5460ff161515600114611bcc575f80fd5b601a54601954601754601854611be291906127bb565b611bec91906127bb565b611bf691906127bb565b604080516080810182526017548152601854602082015260195491810191909152601a5460608201529095508594509150611ca0565b80611c9157601654601554601354601454611c4791906127bb565b611c5191906127bb565b611c5b91906127bb565b60408051608081018252601354815260145460208201526015549181019190915260165460608201529095508594509150611ca0565b8015611ca057600f5494508493505b6064611cac8588612911565b611cb69190612943565b600754909350600160a81b900460ff168015611ce057506007546001600160a01b03898116911614155b15611cef57611cef8583611d90565b611d038888611cfe868a612810565b611f3b565b8215611d35578415611d35575f6064611d1c8789612911565b611d269190612943565b9050611d33893083611f3b565b505b5050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b600754600160a01b900460ff16610c59576007805460ff60a01b1916600160a01b1790558115611f2a57305f908152602081905260409020546008548110611f285760016008541115611de257506008545b5f611dee846002612911565b90505f81846020015184611e029190612911565b611e0c9190612943565b90505f611e198285612810565b905047611e2582612111565b5f611e308247612810565b90505f876020015186611e439190612810565b611e4d9083612943565b90505f886020015182611e609190612911565b90508015611e7257611e728682612261565b88515f90611e81846002612911565b611e8b9190612911565b90508015611ea957601054611ea9906001600160a01b031682612310565b60408a01515f90611ebb856002612911565b611ec59190612911565b90508015611ee357601254611ee3906001600160a01b031682612310565b60608b01515f90611ef5866002612911565b611eff9190612911565b90508015611f1d57601154611f1d906001600160a01b031682612310565b505050505050505050505b505b6007805460ff60a01b191690555050565b6001600160a01b038316611f9f5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610954565b6001600160a01b0382166120015760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610954565b6001600160a01b0383165f90815260208190526040902054818110156120785760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610954565b6120828282612810565b6001600160a01b038086165f9081526020819052604080822093909355908516815290812080548492906120b79084906127bb565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161210391815260200190565b60405180910390a350505050565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061214457612144612793565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561219b573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121bf9190612962565b816001815181106121d2576121d2612793565b6001600160a01b0392831660209182029290920101526006546121f8913091168461159a565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac947906122309085905f9086903090429060040161297d565b5f604051808303815f87803b158015612247575f80fd5b505af1158015612259573d5f803e3d5ffd5b505050505050565b6006546122799030906001600160a01b03168461159a565b60065460405163f305d71960e01b8152306004820152602481018490525f60448201819052606482015261dead60848201524260a48201526001600160a01b039091169063f305d71990839060c40160606040518083038185885af11580156122e4573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061230991906129ee565b5050505050565b804710156123605760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e63650000006044820152606401610954565b5f826001600160a01b0316826040515f6040518083038185875af1925050503d805f81146123a9576040519150601f19603f3d011682016040523d82523d5f602084013e6123ae565b606091505b50509050806109b75760405162461bcd60e51b815260206004820152603a60248201527f416464726573733a20756e61626c6520746f2073656e642076616c75652c207260448201527f6563697069656e74206d617920686176652072657665727465640000000000006064820152608401610954565b5f602080835283518060208501525f5b8181101561245157858101830151858201604001528201612435565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611597575f80fd5b803561249081612471565b919050565b5f80604083850312156124a6575f80fd5b82356124b181612471565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b8015158114611597575f80fd5b8035612490816124d3565b5f80604083850312156124fc575f80fd5b823567ffffffffffffffff80821115612513575f80fd5b818501915085601f830112612526575f80fd5b813560208282111561253a5761253a6124bf565b8160051b604051601f19603f8301168101818110868211171561255f5761255f6124bf565b60405292835281830193508481018201928984111561257c575f80fd5b948201945b838610156125a15761259286612485565b85529482019493820193612581565b96506125b090508782016124e0565b9450505050509250929050565b5f805f80608085870312156125d0575f80fd5b5050823594602084013594506040840135936060013592509050565b5f602082840312156125fc575f80fd5b8135612607816124d3565b9392505050565b5f6020828403121561261e575f80fd5b813561260781612471565b5f805f6060848603121561263b575f80fd5b833561264681612471565b9250602084013561265681612471565b929592945050506040919091013590565b5f8060408385031215612678575f80fd5b823561268381612471565b91506020830135612693816124d3565b809150509250929050565b5f602082840312156126ae575f80fd5b5035919050565b5f80604083850312156126c6575f80fd5b82356126d181612471565b9150602083013561269381612471565b5f805f606084860312156126f3575f80fd5b505081359360208301359350604090920135919050565b5f806040838503121561271b575f80fd5b82356124b1816124d3565b600181811c9082168061273a57607f821691505b60208210810361275857634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115610924576109246127a7565b60208082526022908201527f46656520416464726573732063616e6e6f74206265207a65726f206164647265604082015261737360f01b606082015260800190565b81810381811115610924576109246127a7565b600181815b8085111561285d57815f1904821115612843576128436127a7565b8085161561285057918102915b93841c9390800290612828565b509250929050565b5f8261287357506001610924565b8161287f57505f610924565b8160018114612895576002811461289f576128bb565b6001915050610924565b60ff8411156128b0576128b06127a7565b50506001821b610924565b5060208310610133831016604e8410600b84101617156128de575081810a610924565b6128e88383612823565b805f19048211156128fb576128fb6127a7565b029392505050565b5f61260760ff841683612865565b8082028115828204841417610924576109246127a7565b5f60208284031215612938575f80fd5b8151612607816124d3565b5f8261295d57634e487b7160e01b5f52601260045260245ffd5b500490565b5f60208284031215612972575f80fd5b815161260781612471565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156129cd5784516001600160a01b0316835293830193918301916001016129a8565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f60608486031215612a00575f80fd5b835192506020840151915060408401519050925092509256fea2646970667358221220d147626fe2f193f4105c7642b0303c05ad1c7ab08c979a30887c2ae19692c78664736f6c63430008170033

Deployed Bytecode Sourcemap

7905:12634:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2311:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10049:161;;;;;;;;;;-1:-1:-1;10049:161:0;;;;;:::i;:::-;;:::i;:::-;;;1327:14:1;;1320:22;1302:41;;1290:2;1275:18;10049:161:0;1162:187:1;19383:202:0;;;;;;;;;;-1:-1:-1;19383:202:0;;;;;:::i;:::-;;:::i;:::-;;17512:342;;;;;;;;;;-1:-1:-1;17512:342:0;;;;;:::i;:::-;;:::i;16801:109::-;;;;;;;;;;-1:-1:-1;16801:109:0;;;;;:::i;:::-;;:::i;8166:58::-;;;;;;;;;;;;;;;;;;;3720:25:1;;;3708:2;3693:18;8166:58:0;3574:177:1;2626:108:0;;;;;;;;;;-1:-1:-1;2714:12:0;;2626:108;;18836:183;;;;;;;;;;-1:-1:-1;18836:183:0;;;;;:::i;:::-;;:::i;17950:222::-;;;;;;;;;;;;;:::i;20091:165::-;;;;;;;;;;;;;:::i;10216:446::-;;;;;;;;;;-1:-1:-1;10216:446:0;;;;;:::i;:::-;;:::i;8400:28::-;;;;;;;;;;;;;;;;2527:93;;;;;;;;;;-1:-1:-1;2527:93:0;;2610:2;4611:36:1;;4599:2;4584:18;2527:93:0;4469:184:1;19257:120:0;;;;;;;;;;-1:-1:-1;19257:120:0;;;;;:::i;:::-;;:::i;10668:248::-;;;;;;;;;;-1:-1:-1;10668:248:0;;;;;:::i;:::-;;:::i;16916:::-;;;;;;;;;;-1:-1:-1;16916:248:0;;;;;:::i;:::-;;:::i;8697:75::-;;;;;;;;;;-1:-1:-1;8697:75:0;;;;-1:-1:-1;;;;;8697:75:0;;;;;;-1:-1:-1;;;;;5394:32:1;;;5376:51;;5364:2;5349:18;8697:75:0;5230:203:1;8126:33:0;;;;;;;;;;-1:-1:-1;8126:33:0;;;;-1:-1:-1;;;8126:33:0;;;;;;8286:49;;;;;;;;;;;;;;;;8342:51;;;;;;;;;;;;;;;;8231:48;;;;;;;;;;;;;;;;2740:127;;;;;;;;;;-1:-1:-1;2740:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;2841:18:0;2814:7;2841:18;;;;;;;;;;;;2740:127;6580:94;;;;;;;;;;;;;:::i;9002:38::-;;;;;;;;;;-1:-1:-1;9002:38:0;;;;;;;;;;;;;;;;;;;5669:25:1;;;5725:2;5710:18;;5703:34;;;;5753:18;;;5746:34;5811:2;5796:18;;5789:34;5656:3;5641:19;9002:38:0;5438:391:1;8538:75:0;;;;;;;;;;-1:-1:-1;8538:75:0;;;;-1:-1:-1;;;;;8538:75:0;;;8779:79;;;;;;;;;;;;8816:42;8779:79;;20262:238;;;;;;;;;;-1:-1:-1;20262:238:0;;;;;:::i;:::-;;:::i;6361:87::-;;;;;;;;;;-1:-1:-1;6434:6:0;;-1:-1:-1;;;;;6434:6:0;6361:87;;8621:69;;;;;;;;;;-1:-1:-1;8621:69:0;;;;-1:-1:-1;;;;;8621:69:0;;;2417:104;;;;;;;;;;;;;:::i;17170:336::-;;;;;;;;;;-1:-1:-1;17170:336:0;;;;;:::i;:::-;;:::i;10922:410::-;;;;;;;;;;-1:-1:-1;10922:410:0;;;;;:::i;:::-;;:::i;8017:19::-;;;;;;;;;;-1:-1:-1;8017:19:0;;;;-1:-1:-1;;;;;8017:19:0;;;11338:165;;;;;;;;;;-1:-1:-1;11338:165:0;;;;;:::i;:::-;;:::i;18434:195::-;;;;;;;;;;-1:-1:-1;18434:195:0;;;;;:::i;:::-;;:::i;9096:41::-;;;;;;;;;;-1:-1:-1;9096:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;17862:80;;17921:5;:13;;-1:-1:-1;;17921:13:0;;;17862:80;9237:39;;;;;;;;;;;;;;;;3095:201;;;;;;;;;;-1:-1:-1;3095:201:0;;;;;:::i;:::-;-1:-1:-1;;;;;3261:18:0;;;3229:7;3261:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3095:201;19591:494;;;;;;;;;;-1:-1:-1;19591:494:0;;;;;:::i;:::-;;:::i;19025:226::-;;;;;;;;;;-1:-1:-1;19025:226:0;;;;;:::i;:::-;;:::i;18178:250::-;;;;;;;;;;-1:-1:-1;18178:250:0;;;;;:::i;:::-;;:::i;9196:34::-;;;;;;;;;;-1:-1:-1;9196:34:0;;;;;;;;18635:195;;;;;;;;;;-1:-1:-1;18635:195:0;;;;;:::i;:::-;;:::i;6680:192::-;;;;;;;;;;-1:-1:-1;6680:192:0;;;;;:::i;:::-;;:::i;9047:42::-;;;;;;;;;;-1:-1:-1;9047:42:0;;;;;;;;;;;;;;;7989:21;;;;;;;;;;-1:-1:-1;7989:21:0;;;;-1:-1:-1;;;;;7989:21:0;;;8082:37;;;;;;;;;;-1:-1:-1;8082:37:0;;;;-1:-1:-1;;;8082:37:0;;;;;;2311:100;2365:13;2398:5;2391:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2311:100;:::o;10049:161::-;10124:4;10141:39;837:10;10164:7;10173:6;10141:8;:39::i;:::-;-1:-1:-1;10198:4:0;10049:161;;;;;:::o;19383:202::-;6434:6;;-1:-1:-1;;;;;6434:6:0;837:10;6494:23;6486:68;;;;-1:-1:-1;;;6486:68:0;;;;;;;:::i;:::-;;;;;;;;;19480:9:::1;19475:103;19499:8;:15;19495:1;:19;19475:103;;;19561:5;19536:9;:22;19546:8;19555:1;19546:11;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;19536:22:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;19536:22:0;:30;;-1:-1:-1;;19536:30:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;19516:3:0::1;19475:103;;;;19383:202:::0;;:::o;17512:342::-;6434:6;;-1:-1:-1;;;;;6434:6:0;837:10;6494:23;6486:68;;;;-1:-1:-1;;;6486:68:0;;;;;;;:::i;:::-;17693:49:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;17681:9:::1;:61:::0;;;;;;;;;;;;;;;17737:4;17724:10;17762:23:::1;17711:10:::0;17699;17762:23:::1;:::i;:::-;:36;;;;:::i;:::-;:43;;;;:::i;:::-;17761:51;;17753:93;;;::::0;-1:-1:-1;;;17753:93:0;;8427:2:1;17753:93:0::1;::::0;::::1;8409:21:1::0;8466:2;8446:18;;;8439:30;8505:31;8485:18;;;8478:59;8554:18;;17753:93:0::1;8225:353:1::0;17753:93:0::1;17512:342:::0;;;;:::o;16801:109::-;6434:6;;-1:-1:-1;;;;;6434:6:0;837:10;6494:23;6486:68;;;;-1:-1:-1;;;6486:68:0;;;;;;;:::i;:::-;16876:18:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;16876:26:0::1;-1:-1:-1::0;;;;16876:26:0;;::::1;::::0;;;::::1;::::0;;16801:109::o;18836:183::-;6434:6;;-1:-1:-1;;;;;6434:6:0;837:10;6494:23;6486:68;;;;-1:-1:-1;;;6486:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18918:23:0;::::1;18910:69;;;;-1:-1:-1::0;;;18910:69:0::1;;;;;;;:::i;:::-;18990:9;:21:::0;;-1:-1:-1;;;;;;18990:21:0::1;-1:-1:-1::0;;;;;18990:21:0;;;::::1;::::0;;;::::1;::::0;;18836:183::o;17950:222::-;6434:6;;-1:-1:-1;;;;;6434:6:0;837:10;6494:23;6486:68;;;;-1:-1:-1;;;6486:68:0;;;;;;;:::i;:::-;18014:14:::1;::::0;-1:-1:-1;;;18014:14:0;::::1;;;18013:15;18005:52;;;::::0;-1:-1:-1;;;18005:52:0;;9188:2:1;18005:52:0::1;::::0;::::1;9170:21:1::0;9227:2;9207:18;;;9200:30;9266:26;9246:18;;;9239:54;9310:18;;18005:52:0::1;8986:348:1::0;18005:52:0::1;18068:14;:21:::0;;-1:-1:-1;;;;18100:25:0;-1:-1:-1;;;18100:25:0;;;18152:12:::1;18136:13;:28:::0;17950:222::o;20091:165::-;6434:6;;-1:-1:-1;;;;;6434:6:0;837:10;6494:23;6486:68;;;;-1:-1:-1;;;6486:68:0;;;;;;;:::i;:::-;20171:21:::1;20211:7;6434:6:::0;;-1:-1:-1;;;;;6434:6:0;;6361:87;20211:7:::1;-1:-1:-1::0;;;;;20203:25:0::1;:45;20229:18;20203:45;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;20131:125;20091:165::o:0;10216:446::-;10348:4;10365:36;10375:6;10383:9;10394:6;10365:9;:36::i;:::-;-1:-1:-1;;;;;10439:19:0;;10412:24;10439:19;;;:11;:19;;;;;;;;837:10;10439:33;;;;;;;;10491:26;;;;10483:79;;;;-1:-1:-1;;;10483:79:0;;9541:2:1;10483:79:0;;;9523:21:1;9580:2;9560:18;;;9553:30;9619:34;9599:18;;;9592:62;-1:-1:-1;;;9670:18:1;;;9663:38;9718:19;;10483:79:0;9339:404:1;10483:79:0;10573:57;10582:6;837:10;10604:25;10623:6;10604:16;:25;:::i;:::-;10573:8;:57::i;:::-;-1:-1:-1;10650:4:0;;10216:446;-1:-1:-1;;;;10216:446:0:o;19257:120::-;6434:6;;-1:-1:-1;;;;;6434:6:0;837:10;6494:23;6486:68;;;;-1:-1:-1;;;6486:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;19342:19:0;;;::::1;;::::0;;;:9:::1;:19;::::0;;;;:27;;-1:-1:-1;;19342:27:0::1;::::0;::::1;;::::0;;;::::1;::::0;;19257:120::o;10668:248::-;837:10;10784:4;10838:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;10838:34:0;;;;;;;;;;10784:4;;10806:80;;10829:7;;10838:47;;10875:10;;10838:47;:::i;16916:248::-;6434:6;;-1:-1:-1;;;;;6434:6:0;837:10;6494:23;6486:68;;;;-1:-1:-1;;;6486:68:0;;;;;;;:::i;:::-;17022:3:::1;17008:10;:17;;17000:92;;;::::0;-1:-1:-1;;;17000:92:0;;10083:2:1;17000:92:0::1;::::0;::::1;10065:21:1::0;10122:2;10102:18;;;10095:30;10161:34;10141:18;;;10134:62;10232:32;10212:18;;;10205:60;10282:19;;17000:92:0::1;9881:426:1::0;17000:92:0::1;17142:14;2610:2:::0;17142::::1;:14;:::i;:::-;17129:27;::::0;:10;:27:::1;:::i;:::-;17103:23;:53:::0;-1:-1:-1;16916:248:0:o;6580:94::-;6434:6;;-1:-1:-1;;;;;6434:6:0;837:10;6494:23;6486:68;;;;-1:-1:-1;;;6486:68:0;;;;;;;:::i;:::-;6645:21:::1;6663:1;6645:9;:21::i;:::-;6580:94::o:0;20262:238::-;6434:6;;-1:-1:-1;;;;;6434:6:0;837:10;6494:23;6486:68;;;;-1:-1:-1;;;6486:68:0;;;;;;;:::i;:::-;20375:4:::1;-1:-1:-1::0;;;;;20355:25:0;::::1;::::0;20347:92:::1;;;::::0;-1:-1:-1;;;20347:92:0;;12064:2:1;20347:92:0::1;::::0;::::1;12046:21:1::0;12103:2;12083:18;;;12076:30;12142:34;12122:18;;;12115:62;-1:-1:-1;;;12193:18:1;;;12186:52;12255:19;;20347:92:0::1;11862:418:1::0;20347:92:0::1;20457:8;-1:-1:-1::0;;;;;20450:25:0::1;;20476:7;6434:6:::0;;-1:-1:-1;;;;;6434:6:0;;6361:87;20476:7:::1;20450:42;::::0;-1:-1:-1;;;;;;20450:42:0::1;::::0;;;;;;-1:-1:-1;;;;;12477:32:1;;;20450:42:0::1;::::0;::::1;12459:51:1::0;12526:18;;;12519:34;;;12432:18;;20450:42:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2417:104::-:0;2473:13;2506:7;2499:14;;;;;:::i;17170:336::-;6434:6;;-1:-1:-1;;;;;6434:6:0;837:10;6494:23;6486:68;;;;-1:-1:-1;;;6486:68:0;;;;;;;:::i;:::-;17346:48:::1;::::0;;::::1;::::0;::::1;::::0;;;;;::::1;::::0;::::1;::::0;;;;;;;;;;;;;;17338:5:::1;:56:::0;;;;;;;;;;;;;;;17462:2:::1;17389:4:::0;17377:10;17414:23:::1;17364:10:::0;17352;17414:23:::1;:::i;10922:410::-:0;837:10;11043:4;11092:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;11092:34:0;;;;;;;;;;11145:35;;;;11137:85;;;;-1:-1:-1;;;11137:85:0;;13016:2:1;11137:85:0;;;12998:21:1;13055:2;13035:18;;;13028:30;13094:34;13074:18;;;13067:62;-1:-1:-1;;;13145:18:1;;;13138:35;13190:19;;11137:85:0;12814:401:1;11137:85:0;11233:67;837:10;11256:7;11265:34;11284:15;11265:16;:34;:::i;11233:67::-;-1:-1:-1;11320:4:0;;10922:410;-1:-1:-1;;;10922:410:0:o;11338:165::-;11416:4;11433:40;11443:10;11455:9;11466:6;11433:9;:40::i;18434:195::-;6434:6;;-1:-1:-1;;;;;6434:6:0;837:10;6494:23;6486:68;;;;-1:-1:-1;;;6486:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18522:23:0;::::1;18514:69;;;;-1:-1:-1::0;;;18514:69:0::1;;;;;;;:::i;:::-;18594:15;:27:::0;;-1:-1:-1;;;;;;18594:27:0::1;-1:-1:-1::0;;;;;18594:27:0;;;::::1;::::0;;;::::1;::::0;;18434:195::o;19591:494::-;6434:6;;-1:-1:-1;;;;;6434:6:0;837:10;6494:23;6486:68;;;;-1:-1:-1;;;6486:68:0;;;;;;;:::i;:::-;19717:3:::1;19707:6;:13;;19699:65;;;::::0;-1:-1:-1;;;19699:65:0;;13422:2:1;19699:65:0::1;::::0;::::1;13404:21:1::0;13461:2;13441:18;;;13434:30;13500:34;13480:18;;;13473:62;-1:-1:-1;;;13551:18:1;;;13544:37;13598:19;;19699:65:0::1;13220:403:1::0;19699:65:0::1;19794:3;19783:7;:14;;19775:67;;;::::0;-1:-1:-1;;;19775:67:0;;13830:2:1;19775:67:0::1;::::0;::::1;13812:21:1::0;13869:2;13849:18;;;13842:30;13908:34;13888:18;;;13881:62;-1:-1:-1;;;13959:18:1;;;13952:38;14007:19;;19775:67:0::1;13628:404:1::0;19775:67:0::1;19874:3;19861:9;:16;;19853:71;;;::::0;-1:-1:-1;;;19853:71:0;;14239:2:1;19853:71:0::1;::::0;::::1;14221:21:1::0;14278:2;14258:18;;;14251:30;14317:34;14297:18;;;14290:62;-1:-1:-1;;;14368:18:1;;;14361:40;14418:19;;19853:71:0::1;14037:406:1::0;19853:71:0::1;19958:14;2610:2:::0;19958::::1;:14;:::i;:::-;19949:23;::::0;:6;:23:::1;:::i;:::-;19935:11;:37:::0;20008:14:::1;2610:2:::0;20008::::1;:14;:::i;:::-;19998:24;::::0;:7;:24:::1;:::i;:::-;19983:12;:39:::0;2610:2;20062:14:::1;::::0;:2:::1;:14;:::i;:::-;20050:26;::::0;:9;:26:::1;:::i;:::-;20033:14;:43:::0;-1:-1:-1;;;19591:494:0:o;19025:226::-;6434:6;;-1:-1:-1;;;;;6434:6:0;837:10;6494:23;6486:68;;;;-1:-1:-1;;;6486:68:0;;;;;;;:::i;:::-;19120:16:::1;:4:::0;19127:9:::1;19120:16;:::i;:::-;19105:12;:31:::0;19147:15:::1;:23:::0;;-1:-1:-1;;19147:23:0::1;::::0;::::1;;;::::0;;19197:3:::1;19189:11:::0;::::1;;19181:62;;;::::0;-1:-1:-1;;;19181:62:0;;14650:2:1;19181:62:0::1;::::0;::::1;14632:21:1::0;14689:2;14669:18;;;14662:30;14728:34;14708:18;;;14701:62;-1:-1:-1;;;14779:18:1;;;14772:36;14825:19;;19181:62:0::1;14448:402:1::0;18178:250:0;6434:6;;-1:-1:-1;;;;;6434:6:0;837:10;6494:23;6486:68;;;;-1:-1:-1;;;6486:68:0;;;;;;;:::i;:::-;18260:14:::1;::::0;-1:-1:-1;;;18260:14:0;::::1;;;18259:15;18251:65;;;::::0;-1:-1:-1;;;18251:65:0;;15057:2:1;18251:65:0::1;::::0;::::1;15039:21:1::0;15096:2;15076:18;;;15069:30;15135:34;15115:18;;;15108:62;-1:-1:-1;;;15186:18:1;;;15179:35;15231:19;;18251:65:0::1;14855:401:1::0;18251:65:0::1;18347:1;18335:9;:13;18327:62;;;::::0;-1:-1:-1;;;18327:62:0;;15463:2:1;18327:62:0::1;::::0;::::1;15445:21:1::0;15502:2;15482:18;;;15475:30;15541:34;15521:18;;;15514:62;-1:-1:-1;;;15592:18:1;;;15585:35;15637:19;;18327:62:0::1;15261:401:1::0;18327:62:0::1;18400:8;:20:::0;18178:250::o;18635:195::-;6434:6;;-1:-1:-1;;;;;6434:6:0;837:10;6494:23;6486:68;;;;-1:-1:-1;;;6486:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;18723:23:0;::::1;18715:69;;;;-1:-1:-1::0;;;18715:69:0::1;;;;;;;:::i;:::-;18795:15;:27:::0;;-1:-1:-1;;;;;;18795:27:0::1;-1:-1:-1::0;;;;;18795:27:0;;;::::1;::::0;;;::::1;::::0;;18635:195::o;6680:192::-;6434:6;;-1:-1:-1;;;;;6434:6:0;837:10;6494:23;6486:68;;;;-1:-1:-1;;;6486:68:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;6769:22:0;::::1;6761:73;;;::::0;-1:-1:-1;;;6761:73:0;;15869:2:1;6761:73:0::1;::::0;::::1;15851:21:1::0;15908:2;15888:18;;;15881:30;15947:34;15927:18;;;15920:62;-1:-1:-1;;;15998:18:1;;;15991:36;16044:19;;6761:73:0::1;15667:402:1::0;6761:73:0::1;6845:19;6855:8;6845:9;:19::i;:::-;6680:192:::0;:::o;5404:380::-;-1:-1:-1;;;;;5540:19:0;;5532:68;;;;-1:-1:-1;;;5532:68:0;;16276:2:1;5532:68:0;;;16258:21:1;16315:2;16295:18;;;16288:30;16354:34;16334:18;;;16327:62;-1:-1:-1;;;16405:18:1;;;16398:34;16449:19;;5532:68:0;16074:400:1;5532:68:0;-1:-1:-1;;;;;5619:21:0;;5611:68;;;;-1:-1:-1;;;5611:68:0;;16681:2:1;5611:68:0;;;16663:21:1;16720:2;16700:18;;;16693:30;16759:34;16739:18;;;16732:62;-1:-1:-1;;;16810:18:1;;;16803:32;16852:19;;5611:68:0;16479:398:1;5611:68:0;-1:-1:-1;;;;;5692:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;5744:32;;3720:25:1;;;5744:32:0;;3693:18:1;5744:32:0;;;;;;;5404:380;;;:::o;11509:2807::-;11659:1;11650:6;:10;11642:64;;;;-1:-1:-1;;;11642:64:0;;17084:2:1;11642:64:0;;;17066:21:1;17123:2;17103:18;;;17096:30;17162:34;17142:18;;;17135:62;-1:-1:-1;;;17213:18:1;;;17206:39;17262:19;;11642:64:0;16882:405:1;11642:64:0;-1:-1:-1;;;;;11722:17:0;;;;;;:9;:17;;;;;;;;11721:18;:43;;;;-1:-1:-1;;;;;;11744:20:0;;;;;;:9;:20;;;;;;;;11743:21;11721:43;11717:122;;;11789:14;;-1:-1:-1;;;11789:14:0;;;;11781:46;;;;-1:-1:-1;;;11781:46:0;;17494:2:1;11781:46:0;;;17476:21:1;17533:2;17513:18;;;17506:30;-1:-1:-1;;;17552:18:1;;;17545:49;17611:18;;11781:46:0;17292:343:1;11781:46:0;11863:4;;-1:-1:-1;;;;;11853:14:0;;;11863:4;;11853:14;:39;;;;-1:-1:-1;;;;;;11872:20:0;;;;;;:9;:20;;;;;;;;11871:21;11853:39;:54;;;;-1:-1:-1;11897:10:0;;-1:-1:-1;;;11897:10:0;;;;11896:11;11853:54;11849:306;;;11942:11;;11932:6;:21;;11924:63;;;;-1:-1:-1;;;11924:63:0;;17842:2:1;11924:63:0;;;17824:21:1;17881:2;17861:18;;;17854:30;17920:31;17900:18;;;17893:59;17969:18;;11924:63:0;17640:353:1;11924:63:0;12061:14;;12051:6;12028:20;12038:9;-1:-1:-1;;;;;2841:18:0;2814:7;2841:18;;;;;;;;;;;;2740:127;12028:20;:29;;;;:::i;:::-;:47;;12002:141;;;;-1:-1:-1;;;12002:141:0;;18200:2:1;12002:141:0;;;18182:21:1;;;18219:18;;;18212:30;18278:34;18258:18;;;18251:62;18330:18;;12002:141:0;17998:356:1;12002:141:0;12193:4;;-1:-1:-1;;;;;12183:14:0;;;12193:4;;12183:14;;;;:39;;-1:-1:-1;;;;;;12202:20:0;;;;;;:9;:20;;;;;;;;12201:21;12183:39;:61;;;;-1:-1:-1;;;;;;12227:17:0;;;;;;:9;:17;;;;;;;;12226:18;12183:61;:76;;;;-1:-1:-1;12249:10:0;;-1:-1:-1;;;12249:10:0;;;;12248:11;12183:76;12165:677;;;12304:12;;12294:6;:22;;12286:65;;;;-1:-1:-1;;;12286:65:0;;18561:2:1;12286:65:0;;;18543:21:1;18600:2;18580:18;;;18573:30;18639:32;18619:18;;;18612:60;18689:18;;12286:65:0;18359:354:1;12286:65:0;12383:4;;-1:-1:-1;;;;;12370:17:0;;;12383:4;;12370:17;12366:211;;12471:14;;12461:6;12438:20;12448:9;-1:-1:-1;;;;;2841:18:0;2814:7;2841:18;;;;;;;;;;;;2740:127;12438:20;:29;;;;:::i;:::-;:47;;12408:153;;;;-1:-1:-1;;;12408:153:0;;18200:2:1;12408:153:0;;;18182:21:1;;;18219:18;;;18212:30;18278:34;18258:18;;;18251:62;18330:18;;12408:153:0;17998:356:1;12408:153:0;12595:15;;;;12591:240;;;-1:-1:-1;;;;;12670:17:0;;12631:18;12670:17;;;:9;:17;;;;;;12652:35;;:15;:35;:::i;:::-;12631:56;;12728:12;;12714:10;:26;;12706:55;;;;-1:-1:-1;;;12706:55:0;;18920:2:1;12706:55:0;;;18902:21:1;18959:2;18939:18;;;18932:30;-1:-1:-1;;;18978:18:1;;;18971:46;19034:18;;12706:55:0;18718:340:1;12706:55:0;-1:-1:-1;;;;;;12780:17:0;;;;;;:9;:17;;;;;12800:15;12780:35;;12591:240;12852:15;12878:14;12903:11;12925:25;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12925:25:0;-1:-1:-1;;;;;12982:17:0;;12961;12982;;;:9;:17;;;;;;;;12981:18;:56;;;;-1:-1:-1;;;;;;13017:20:0;;;;;;:9;:20;;;;;;;;13016:21;12981:56;:112;;;;;13085:8;;13069:13;;:24;;;;:::i;:::-;13054:12;:39;12981:112;13108:10;;12961:132;;-1:-1:-1;;;;13108:10:0;;;;;:31;;-1:-1:-1;;;;;;13122:17:0;;;;;;:9;:17;;;;;;;;13108:31;:55;;;-1:-1:-1;;;;;;13143:20:0;;;;;;:9;:20;;;;;;;;13108:55;13104:805;;;13184:1;13178:7;;13104:805;;;13220:4;;-1:-1:-1;;;;;13207:17:0;;;13220:4;;13207:17;:34;;;;;13229:12;13228:13;13207:34;13203:706;;;13266:5;;;;:13;;:5;:13;13258:22;;;;;;13451:13;;13400:19;;13451:9;13361:19;13322;;:58;;13361:19;13322:58;:::i;:::-;:97;;;;:::i;:::-;:142;;;;:::i;:::-;13510:24;;;;;;;;13525:9;13510:24;;;;;;;;;;;;;;;;;;;;;;;;13295:169;;-1:-1:-1;13295:169:0;;-1:-1:-1;13510:24:0;-1:-1:-1;13203:706:0;;;13557:12;13552:357;;13718:9;;13683:15;;13718:5;13648:15;13613;;:50;;13648:15;13613:50;:::i;:::-;:85;;;;:::i;:::-;:114;;;;:::i;:::-;13774:20;;;;;;;;13789:5;13774:20;;;;;;;;;;;;;;;;;;;;;;;;13586:141;;-1:-1:-1;13586:141:0;;-1:-1:-1;13774:20:0;-1:-1:-1;13552:357:0;;;13816:12;13812:97;;;13855:9;;;-1:-1:-1;13855:9:0;;-1:-1:-1;13812:97:0;13945:3;13926:15;13935:6;13926;:15;:::i;:::-;13925:23;;;;:::i;:::-;13963:18;;13919:29;;-1:-1:-1;;;;13963:18:0;;;;:36;;;;-1:-1:-1;13995:4:0;;-1:-1:-1;;;;;13985:14:0;;;13995:4;;13985:14;;13963:36;13959:72;;;14001:30;14009:7;14018:12;14001:7;:30::i;:::-;14043:48;14059:6;14067:9;14078:12;14087:3;14078:6;:12;:::i;:::-;14043:15;:48::i;:::-;14106:7;;14102:207;;14136:11;;14132:164;;14168:17;14209:3;14189:16;14198:7;14189:6;:16;:::i;:::-;14188:24;;;;:::i;:::-;14168:44;;14231:49;14247:6;14263:4;14270:9;14231:15;:49::i;:::-;14149:147;14132:164;11631:2685;;;;;11509:2807;;;:::o;6878:173::-;6953:6;;;-1:-1:-1;;;;;6970:17:0;;;-1:-1:-1;;;;;;6970:17:0;;;;;;;7003:40;;6953:6;;;6970:17;6953:6;;7003:40;;6934:16;;7003:40;6923:128;6878:173;:::o;14322:1670::-;9322:10;;-1:-1:-1;;;9322:10:0;;;;9317:110;;9349:10;:17;;-1:-1:-1;;;;9349:17:0;-1:-1:-1;;;9349:17:0;;;14411:49;;14442:7:::1;14411:49;14514:4;14470:23;2841:18:::0;;;;;;;;;;;14554:23:::1;::::0;14535:42;::::1;14531:1454;;14624:1;14598:23;;:27;14594:109;;;-1:-1:-1::0;14664:23:0::1;::::0;14594:109:::1;14714:19;14736:11;:7:::0;14746:1:::1;14736:11;:::i;:::-;14714:33;;14762:32;14856:11;14816:9;:19;;;14798:15;:37;;;;:::i;:::-;14797:70;;;;:::i;:::-;14762:105:::0;-1:-1:-1;14882:14:0::1;14899:42;14762:105:::0;14899:15;:42:::1;:::i;:::-;14882:59:::0;-1:-1:-1;14981:21:0::1;15017:24;14882:59:::0;15017:16:::1;:24::i;:::-;15056:20;15079:38;15103:14:::0;15079:21:::1;:38;:::i;:::-;15056:61;;15132:19;15184:9;:19;;;15170:11;:33;;;;:::i;:::-;15154:50;::::0;:12;:50:::1;:::i;:::-;15132:72;;15219:29;15265:9;:19;;;15251:11;:33;;;;:::i;:::-;15219:65:::0;-1:-1:-1;15303:25:0;;15299:121:::1;;15343:61;15356:24;15382:21;15343:12;:61::i;:::-;15475:19:::0;;15434:20:::1;::::0;15457:15:::1;:11:::0;15471:1:::1;15457:15;:::i;:::-;:37;;;;:::i;:::-;15434:60:::0;-1:-1:-1;15513:16:0;;15509:105:::1;;15558:15;::::0;15550:48:::1;::::0;-1:-1:-1;;;;;15558:15:0::1;15585:12:::0;15550:34:::1;:48::i;:::-;15669:19;::::0;::::1;::::0;15628:20:::1;::::0;15651:15:::1;:11:::0;15665:1:::1;15651:15;:::i;:::-;:37;;;;:::i;:::-;15628:60:::0;-1:-1:-1;15707:16:0;;15703:105:::1;;15752:15;::::0;15744:48:::1;::::0;-1:-1:-1;;;;;15752:15:0::1;15779:12:::0;15744:34:::1;:48::i;:::-;15857:13;::::0;::::1;::::0;15822:14:::1;::::0;15839:15:::1;:11:::0;15853:1:::1;15839:15;:::i;:::-;:31;;;;:::i;:::-;15822:48:::0;-1:-1:-1;15889:10:0;;15885:87:::1;;15928:9;::::0;15920:36:::1;::::0;-1:-1:-1;;;;;15928:9:0::1;15949:6:::0;15920:28:::1;:36::i;:::-;14579:1406;;;;;;;;;;14531:1454;14400:1592;9381:1;9397:10:::0;:18;;-1:-1:-1;;;;9397:18:0;;;14322:1670;;:::o;4607:578::-;-1:-1:-1;;;;;4747:20:0;;4739:70;;;;-1:-1:-1;;;4739:70:0;;19487:2:1;4739:70:0;;;19469:21:1;19526:2;19506:18;;;19499:30;19565:34;19545:18;;;19538:62;-1:-1:-1;;;19616:18:1;;;19609:35;19661:19;;4739:70:0;19285:401:1;4739:70:0;-1:-1:-1;;;;;4828:23:0;;4820:71;;;;-1:-1:-1;;;4820:71:0;;19893:2:1;4820:71:0;;;19875:21:1;19932:2;19912:18;;;19905:30;19971:34;19951:18;;;19944:62;-1:-1:-1;;;20022:18:1;;;20015:33;20065:19;;4820:71:0;19691:399:1;4820:71:0;-1:-1:-1;;;;;4928:17:0;;4904:21;4928:17;;;;;;;;;;;4964:23;;;;4956:74;;;;-1:-1:-1;;;4956:74:0;;20297:2:1;4956:74:0;;;20279:21:1;20336:2;20316:18;;;20309:30;20375:34;20355:18;;;20348:62;-1:-1:-1;;;20426:18:1;;;20419:36;20472:19;;4956:74:0;20095:402:1;4956:74:0;5061:22;5077:6;5061:13;:22;:::i;:::-;-1:-1:-1;;;;;5041:17:0;;;:9;:17;;;;;;;;;;;:42;;;;5094:20;;;;;;;;:30;;5118:6;;5041:9;5094:30;;5118:6;;5094:30;:::i;:::-;;;;;;;;5159:9;-1:-1:-1;;;;;5142:35:0;5151:6;-1:-1:-1;;;;;5142:35:0;;5170:6;5142:35;;;;3720:25:1;;3708:2;3693:18;;3574:177;5142:35:0;;;;;;;;4728:457;4607:578;;;:::o;15998:444::-;16088:16;;;16102:1;16088:16;;;;;;;;16064:21;;16088:16;;;;;;;;;;-1:-1:-1;16088:16:0;16064:40;;16133:4;16115;16120:1;16115:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16115:23:0;;;:7;;;;;;;;;;:23;;;;16159:6;;:13;;;-1:-1:-1;;;16159:13:0;;;;:6;;;;;:11;;:13;;;;;16115:7;;16159:13;;;;;:6;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16149:4;16154:1;16149:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16149:23:0;;;:7;;;;;;;;;:23;16215:6;;16183:53;;16200:4;;16215:6;16224:11;16183:8;:53::i;:::-;16247:6;;:187;;-1:-1:-1;;;16247:187:0;;-1:-1:-1;;;;;16247:6:0;;;;:57;;:187;;16319:11;;16247:6;;16361:4;;16388;;16408:15;;16247:187;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16053:389;15998:444;:::o;16450:345::-;16561:6;;16529:53;;16546:4;;-1:-1:-1;;;;;16561:6:0;16570:11;16529:8;:53::i;:::-;16593:6;;:194;;-1:-1:-1;;;16593:194:0;;16658:4;16593:194;;;22084:34:1;22134:18;;;22127:34;;;16593:6:0;22177:18:1;;;22170:34;;;22220:18;;;22213:34;8816:42:0;22263:19:1;;;22256:44;16761:15:0;22316:19:1;;;22309:35;-1:-1:-1;;;;;16593:6:0;;;;:22;;16624:9;;22018:19:1;;16593:194:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16450:345;;:::o;5812:319::-;5927:6;5902:21;:31;;5894:73;;;;-1:-1:-1;;;5894:73:0;;22868:2:1;5894:73:0;;;22850:21:1;22907:2;22887:18;;;22880:30;22946:31;22926:18;;;22919:59;22995:18;;5894:73:0;22666:353:1;5894:73:0;5981:12;5999:9;-1:-1:-1;;;;;5999:14:0;6022:6;5999:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5980:54;;;6053:7;6045:78;;;;-1:-1:-1;;;6045:78:0;;23436:2:1;6045:78:0;;;23418:21:1;23475:2;23455:18;;;23448:30;23514:34;23494:18;;;23487:62;23585:28;23565:18;;;23558:56;23631:19;;6045:78:0;23234:422:1;14:548;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:134;771:20;;800:31;771:20;800:31;:::i;:::-;703:134;;;:::o;842:315::-;910:6;918;971:2;959:9;950:7;946:23;942:32;939:52;;;987:1;984;977:12;939:52;1026:9;1013:23;1045:31;1070:5;1045:31;:::i;:::-;1095:5;1147:2;1132:18;;;;1119:32;;-1:-1:-1;;;842:315:1:o;1354:127::-;1415:10;1410:3;1406:20;1403:1;1396:31;1446:4;1443:1;1436:15;1470:4;1467:1;1460:15;1486:118;1572:5;1565:13;1558:21;1551:5;1548:32;1538:60;;1594:1;1591;1584:12;1609:128;1674:20;;1703:28;1674:20;1703:28;:::i;1742:1191::-;1832:6;1840;1893:2;1881:9;1872:7;1868:23;1864:32;1861:52;;;1909:1;1906;1899:12;1861:52;1949:9;1936:23;1978:18;2019:2;2011:6;2008:14;2005:34;;;2035:1;2032;2025:12;2005:34;2073:6;2062:9;2058:22;2048:32;;2118:7;2111:4;2107:2;2103:13;2099:27;2089:55;;2140:1;2137;2130:12;2089:55;2176:2;2163:16;2198:4;2221:2;2217;2214:10;2211:36;;;2227:18;;:::i;:::-;2273:2;2270:1;2266:10;2305:2;2299:9;2368:2;2364:7;2359:2;2355;2351:11;2347:25;2339:6;2335:38;2423:6;2411:10;2408:22;2403:2;2391:10;2388:18;2385:46;2382:72;;;2434:18;;:::i;:::-;2470:2;2463:22;2520:18;;;2554:15;;;;-1:-1:-1;2596:11:1;;;2592:20;;;2624:19;;;2621:39;;;2656:1;2653;2646:12;2621:39;2680:11;;;;2700:148;2716:6;2711:3;2708:15;2700:148;;;2782:23;2801:3;2782:23;:::i;:::-;2770:36;;2733:12;;;;2826;;;;2700:148;;;2867:6;-1:-1:-1;2892:35:1;;-1:-1:-1;2908:18:1;;;2892:35;:::i;:::-;2882:45;;;;;;1742:1191;;;;;:::o;2938:385::-;3024:6;3032;3040;3048;3101:3;3089:9;3080:7;3076:23;3072:33;3069:53;;;3118:1;3115;3108:12;3069:53;-1:-1:-1;;3141:23:1;;;3211:2;3196:18;;3183:32;;-1:-1:-1;3262:2:1;3247:18;;3234:32;;3313:2;3298:18;3285:32;;-1:-1:-1;2938:385:1;-1:-1:-1;2938:385:1:o;3328:241::-;3384:6;3437:2;3425:9;3416:7;3412:23;3408:32;3405:52;;;3453:1;3450;3443:12;3405:52;3492:9;3479:23;3511:28;3533:5;3511:28;:::i;:::-;3558:5;3328:241;-1:-1:-1;;;3328:241:1:o;3756:247::-;3815:6;3868:2;3856:9;3847:7;3843:23;3839:32;3836:52;;;3884:1;3881;3874:12;3836:52;3923:9;3910:23;3942:31;3967:5;3942:31;:::i;4008:456::-;4085:6;4093;4101;4154:2;4142:9;4133:7;4129:23;4125:32;4122:52;;;4170:1;4167;4160:12;4122:52;4209:9;4196:23;4228:31;4253:5;4228:31;:::i;:::-;4278:5;-1:-1:-1;4335:2:1;4320:18;;4307:32;4348:33;4307:32;4348:33;:::i;:::-;4008:456;;4400:7;;-1:-1:-1;;;4454:2:1;4439:18;;;;4426:32;;4008:456::o;4658:382::-;4723:6;4731;4784:2;4772:9;4763:7;4759:23;4755:32;4752:52;;;4800:1;4797;4790:12;4752:52;4839:9;4826:23;4858:31;4883:5;4858:31;:::i;:::-;4908:5;-1:-1:-1;4965:2:1;4950:18;;4937:32;4978:30;4937:32;4978:30;:::i;:::-;5027:7;5017:17;;;4658:382;;;;;:::o;5045:180::-;5104:6;5157:2;5145:9;5136:7;5132:23;5128:32;5125:52;;;5173:1;5170;5163:12;5125:52;-1:-1:-1;5196:23:1;;5045:180;-1:-1:-1;5045:180:1:o;5834:388::-;5902:6;5910;5963:2;5951:9;5942:7;5938:23;5934:32;5931:52;;;5979:1;5976;5969:12;5931:52;6018:9;6005:23;6037:31;6062:5;6037:31;:::i;:::-;6087:5;-1:-1:-1;6144:2:1;6129:18;;6116:32;6157:33;6116:32;6157:33;:::i;6227:316::-;6304:6;6312;6320;6373:2;6361:9;6352:7;6348:23;6344:32;6341:52;;;6389:1;6386;6379:12;6341:52;-1:-1:-1;;6412:23:1;;;6482:2;6467:18;;6454:32;;-1:-1:-1;6533:2:1;6518:18;;;6505:32;;6227:316;-1:-1:-1;6227:316:1:o;6548:309::-;6613:6;6621;6674:2;6662:9;6653:7;6649:23;6645:32;6642:52;;;6690:1;6687;6680:12;6642:52;6729:9;6716:23;6748:28;6770:5;6748:28;:::i;7085:380::-;7164:1;7160:12;;;;7207;;;7228:61;;7282:4;7274:6;7270:17;7260:27;;7228:61;7335:2;7327:6;7324:14;7304:18;7301:38;7298:161;;7381:10;7376:3;7372:20;7369:1;7362:31;7416:4;7413:1;7406:15;7444:4;7441:1;7434:15;7298:161;;7085:380;;;:::o;7470:356::-;7672:2;7654:21;;;7691:18;;;7684:30;7750:34;7745:2;7730:18;;7723:62;7817:2;7802:18;;7470:356::o;7831:127::-;7892:10;7887:3;7883:20;7880:1;7873:31;7923:4;7920:1;7913:15;7947:4;7944:1;7937:15;7963:127;8024:10;8019:3;8015:20;8012:1;8005:31;8055:4;8052:1;8045:15;8079:4;8076:1;8069:15;8095:125;8160:9;;;8181:10;;;8178:36;;;8194:18;;:::i;8583:398::-;8785:2;8767:21;;;8824:2;8804:18;;;8797:30;8863:34;8858:2;8843:18;;8836:62;-1:-1:-1;;;8929:2:1;8914:18;;8907:32;8971:3;8956:19;;8583:398::o;9748:128::-;9815:9;;;9836:11;;;9833:37;;;9850:18;;:::i;10312:416::-;10401:1;10438:5;10401:1;10452:270;10473:7;10463:8;10460:21;10452:270;;;10532:4;10528:1;10524:6;10520:17;10514:4;10511:27;10508:53;;;10541:18;;:::i;:::-;10591:7;10581:8;10577:22;10574:55;;;10611:16;;;;10574:55;10690:22;;;;10650:15;;;;10452:270;;;10456:3;10312:416;;;;;:::o;10733:806::-;10782:5;10812:8;10802:80;;-1:-1:-1;10853:1:1;10867:5;;10802:80;10901:4;10891:76;;-1:-1:-1;10938:1:1;10952:5;;10891:76;10983:4;11001:1;10996:59;;;;11069:1;11064:130;;;;10976:218;;10996:59;11026:1;11017:10;;11040:5;;;11064:130;11101:3;11091:8;11088:17;11085:43;;;11108:18;;:::i;:::-;-1:-1:-1;;11164:1:1;11150:16;;11179:5;;10976:218;;11278:2;11268:8;11265:16;11259:3;11253:4;11250:13;11246:36;11240:2;11230:8;11227:16;11222:2;11216:4;11213:12;11209:35;11206:77;11203:159;;;-1:-1:-1;11315:19:1;;;11347:5;;11203:159;11394:34;11419:8;11413:4;11394:34;:::i;:::-;11464:6;11460:1;11456:6;11452:19;11443:7;11440:32;11437:58;;;11475:18;;:::i;:::-;11513:20;;10733:806;-1:-1:-1;;;10733:806:1:o;11544:140::-;11602:5;11631:47;11672:4;11662:8;11658:19;11652:4;11631:47;:::i;11689:168::-;11762:9;;;11793;;11810:15;;;11804:22;;11790:37;11780:71;;11831:18;;:::i;12564:245::-;12631:6;12684:2;12672:9;12663:7;12659:23;12655:32;12652:52;;;12700:1;12697;12690:12;12652:52;12732:9;12726:16;12751:28;12773:5;12751:28;:::i;19063:217::-;19103:1;19129;19119:132;;19173:10;19168:3;19164:20;19161:1;19154:31;19208:4;19205:1;19198:15;19236:4;19233:1;19226:15;19119:132;-1:-1:-1;19265:9:1;;19063:217::o;20502:251::-;20572:6;20625:2;20613:9;20604:7;20600:23;20596:32;20593:52;;;20641:1;20638;20631:12;20593:52;20673:9;20667:16;20692:31;20717:5;20692:31;:::i;20758:980::-;21020:4;21068:3;21057:9;21053:19;21099:6;21088:9;21081:25;21125:2;21163:6;21158:2;21147:9;21143:18;21136:34;21206:3;21201:2;21190:9;21186:18;21179:31;21230:6;21265;21259:13;21296:6;21288;21281:22;21334:3;21323:9;21319:19;21312:26;;21373:2;21365:6;21361:15;21347:29;;21394:1;21404:195;21418:6;21415:1;21412:13;21404:195;;;21483:13;;-1:-1:-1;;;;;21479:39:1;21467:52;;21574:15;;;;21539:12;;;;21515:1;21433:9;21404:195;;;-1:-1:-1;;;;;;;21655:32:1;;;;21650:2;21635:18;;21628:60;-1:-1:-1;;;21719:3:1;21704:19;21697:35;21616:3;20758:980;-1:-1:-1;;;20758:980:1:o;22355:306::-;22443:6;22451;22459;22512:2;22500:9;22491:7;22487:23;22483:32;22480:52;;;22528:1;22525;22518:12;22480:52;22557:9;22551:16;22541:26;;22607:2;22596:9;22592:18;22586:25;22576:35;;22651:2;22640:9;22636:18;22630:25;22620:35;;22355:306;;;;;:::o

Swarm Source

ipfs://d147626fe2f193f4105c7642b0303c05ad1c7ab08c979a30887c2ae19692c786

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  ]

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.