ETH Price: $2,420.67 (+0.13%)

Contract

0xBCD12eB4e4eb6f1e73c6C2A2DC20c0612Ff9a514
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve205082222024-08-11 22:01:3555 days ago1723413695IN
0xBCD12eB4...12Ff9a514
0 ETH0.000034991.43743852
Approve202440552024-07-06 1:01:3592 days ago1720227695IN
0xBCD12eB4...12Ff9a514
0 ETH0.000150723.2535048
Transfer198226132024-05-08 3:18:23151 days ago1715138303IN
0xBCD12eB4...12Ff9a514
0 ETH0.000609466.32822868
Transfer198213272024-05-07 23:00:11151 days ago1715122811IN
0xBCD12eB4...12Ff9a514
0 ETH0.000561975.83511396
Transfer198208452024-05-07 21:22:35151 days ago1715116955IN
0xBCD12eB4...12Ff9a514
0 ETH0.000724826.2821586
Approve196868942024-04-19 3:44:59170 days ago1713498299IN
0xBCD12eB4...12Ff9a514
0 ETH0.0005829512.51894744
Approve194411572024-03-15 15:11:23204 days ago1710515483IN
0xBCD12eB4...12Ff9a514
0 ETH0.002403251.87604534
Approve193184212024-02-27 10:53:59222 days ago1709031239IN
0xBCD12eB4...12Ff9a514
0 ETH0.0010374442.72482222
Approve191632592024-02-05 16:29:23243 days ago1707150563IN
0xBCD12eB4...12Ff9a514
0 ETH0.0010714923.12955066
Approve191122652024-01-29 12:44:35250 days ago1706532275IN
0xBCD12eB4...12Ff9a514
0 ETH0.0008049917.26499704
Approve190253882024-01-17 8:23:11263 days ago1705479791IN
0xBCD12eB4...12Ff9a514
0 ETH0.0016084334.78296738
Approve189919892024-01-12 16:24:47267 days ago1705076687IN
0xBCD12eB4...12Ff9a514
0 ETH0.0020416443.78762163
Approve189903632024-01-12 10:56:59268 days ago1705057019IN
0xBCD12eB4...12Ff9a514
0 ETH0.000740815.88832391
Transfer189902332024-01-12 10:30:47268 days ago1705055447IN
0xBCD12eB4...12Ff9a514
0 ETH0.0018695619.0209379
Approve189785202024-01-10 19:05:11269 days ago1704913511IN
0xBCD12eB4...12Ff9a514
0 ETH0.0021133645.32596013
Approve189779722024-01-10 17:15:11269 days ago1704906911IN
0xBCD12eB4...12Ff9a514
0 ETH0.0009721940.03768203
Transfer189749652024-01-10 7:09:47270 days ago1704870587IN
0xBCD12eB4...12Ff9a514
0 ETH0.0024331921.08892919
Approve189721342024-01-09 21:38:47270 days ago1704836327IN
0xBCD12eB4...12Ff9a514
0 ETH0.0030036664.92158626
Approve189719512024-01-09 21:02:11270 days ago1704834131IN
0xBCD12eB4...12Ff9a514
0 ETH0.0007276115.72669424
Approve189712392024-01-09 18:38:11270 days ago1704825491IN
0xBCD12eB4...12Ff9a514
0 ETH0.000800417.29999114
Approve189690462024-01-09 11:15:59270 days ago1704798959IN
0xBCD12eB4...12Ff9a514
0 ETH0.0006255313.52048093
Approve189680152024-01-09 7:46:59271 days ago1704786419IN
0xBCD12eB4...12Ff9a514
0 ETH0.0008708318.67695669
Approve189679972024-01-09 7:43:23271 days ago1704786203IN
0xBCD12eB4...12Ff9a514
0 ETH0.0008869219.02214707
Approve189674942024-01-09 6:01:47271 days ago1704780107IN
0xBCD12eB4...12Ff9a514
0 ETH0.0008333417.87298641
Approve189667222024-01-09 3:24:23271 days ago1704770663IN
0xBCD12eB4...12Ff9a514
0 ETH0.0007192215.54939918
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
188834512023-12-28 10:15:47283 days ago1703758547
0xBCD12eB4...12Ff9a514
0.02269896 ETH
188834512023-12-28 10:15:47283 days ago1703758547
0xBCD12eB4...12Ff9a514
0.02269896 ETH
188834322023-12-28 10:11:59283 days ago1703758319
0xBCD12eB4...12Ff9a514
0.00860608 ETH
188834322023-12-28 10:11:59283 days ago1703758319
0xBCD12eB4...12Ff9a514
0.00860608 ETH
188834262023-12-28 10:10:47283 days ago1703758247
0xBCD12eB4...12Ff9a514
0.01502338 ETH
188834262023-12-28 10:10:47283 days ago1703758247
0xBCD12eB4...12Ff9a514
0.01502338 ETH
188834192023-12-28 10:09:23283 days ago1703758163
0xBCD12eB4...12Ff9a514
0.02971916 ETH
188834192023-12-28 10:09:23283 days ago1703758163
0xBCD12eB4...12Ff9a514
0.02971916 ETH
188833842023-12-28 10:01:59283 days ago1703757719
0xBCD12eB4...12Ff9a514
0.04276175 ETH
188833842023-12-28 10:01:59283 days ago1703757719
0xBCD12eB4...12Ff9a514
0.04276175 ETH
188833752023-12-28 10:00:11283 days ago1703757611
0xBCD12eB4...12Ff9a514
0.00914567 ETH
188833752023-12-28 10:00:11283 days ago1703757611
0xBCD12eB4...12Ff9a514
0.00914567 ETH
188833732023-12-28 9:59:47283 days ago1703757587
0xBCD12eB4...12Ff9a514
0.01194542 ETH
188833732023-12-28 9:59:47283 days ago1703757587
0xBCD12eB4...12Ff9a514
0.01194542 ETH
188833722023-12-28 9:59:35283 days ago1703757575
0xBCD12eB4...12Ff9a514
0.01194542 ETH
188833722023-12-28 9:59:35283 days ago1703757575
0xBCD12eB4...12Ff9a514
0.01194542 ETH
188833722023-12-28 9:59:35283 days ago1703757575
0xBCD12eB4...12Ff9a514
0.01194542 ETH
188833722023-12-28 9:59:35283 days ago1703757575
0xBCD12eB4...12Ff9a514
0.01194542 ETH
188833722023-12-28 9:59:35283 days ago1703757575
0xBCD12eB4...12Ff9a514
0.00971707 ETH
188833722023-12-28 9:59:35283 days ago1703757575
0xBCD12eB4...12Ff9a514
0.00971707 ETH
188833692023-12-28 9:58:59283 days ago1703757539
0xBCD12eB4...12Ff9a514
0.00911625 ETH
188833692023-12-28 9:58:59283 days ago1703757539
0xBCD12eB4...12Ff9a514
0.00911625 ETH
188833672023-12-28 9:58:35283 days ago1703757515
0xBCD12eB4...12Ff9a514
0.00911625 ETH
188833672023-12-28 9:58:35283 days ago1703757515
0xBCD12eB4...12Ff9a514
0.00911625 ETH
188833652023-12-28 9:58:11283 days ago1703757491
0xBCD12eB4...12Ff9a514
0.01616469 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Magic

Compiler Version
v0.8.14+commit.80d49f37

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-28
*/

/**
 
*/

/**
https://t.me/wizardcommunitychat
https://wizardtoken.quest
https://twitter.com/wizarderc
*/

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.14;
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

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
    );
}

contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );

    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

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

}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

    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
        );
}

contract Magic is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "Magic";
    string private constant _symbol = "Wizard";
    uint8 private constant _decimals = 9;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 100000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 15;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 35;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    mapping(address => bool) public bots; mapping (address => uint256) public _buyMap;
    mapping (address => bool) public preTrader;
    address payable private _developmentAddress = payable(0xF584095262335FF5350a279A4245461F77C45d9d);
    address payable private _marketingAddress = payable(0xF584095262335FF5350a279A4245461F77C45d9d);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = 1000000 * 10**9;
    uint256 public _maxWalletSize = 1000000 * 10**9;
    uint256 public _swapTokensAtAmount = 50000 * 10**9;

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

    function decimals() public pure returns (uint8) {
        return _decimals;
    }

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

    function transfer(address recipient, uint256 amount)
        public
        override
        returns (bool)
    {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    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);
        _approve(
            sender,
            _msgSender(),
            _allowances[sender][_msgSender()].sub(
                amount,
                "ERC20: transfer amount exceeds allowance"
            )
        );
        return true;
    }

    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) private {
        require(owner != address(0), "ERC20: approve from the zero address");
        require(spender != address(0), "ERC20: approve to the zero address");
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        	if (from != owner() && to != owner() && !preTrader[from] && !preTrader[to]) {

            //Trade start check
            if (!tradingOpen) {
                require(preTrader[from], "TOKEN: This account cannot send tokens until trading is enabled");
            }

            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(!bots[from] && !bots[to], "TOKEN: Your account is blacklisted!");

            if(to != uniswapV2Pair) {
                require(balanceOf(to) + amount < _maxWalletSize, "TOKEN: Balance exceeds wallet size!");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        bool takeFee = true;

        //Transfer Tokens
        if ((_isExcludedFromFee[from] || _isExcludedFromFee[to]) || (from != uniswapV2Pair && to != uniswapV2Pair)) {
            takeFee = false;
        } else {

            //Set Fee for Buys
            if(from == uniswapV2Pair && to != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }

        }

        _tokenTransfer(from, to, amount, takeFee);
    }

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

    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }

    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

    function manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }

    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

    function allowPreTrading(address[] calldata accounts) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
                 preTrader[accounts[i]] = true;
        }
    }

    function removePreTrading(address[] calldata accounts) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
                 delete preTrader[accounts[i]];
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","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":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"allowPreTrading","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":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"preTrader","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"removePreTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526200001a67016345785d8a000060001962000362565b620000289060001962000385565b60065560006008819055600f6009819055600a8290556023600b819055600c839055600d819055600e9290925555601380546001600160a01b031990811673f584095262335ff5350a279a4245461f77c45d9d9081179092556014805490911690911790556016805461ffff60a81b1916600160b01b17905566038d7ea4c680006017819055601855652d79883d2000601955348015620000c857600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506006543360009081526002602090815260409182902092909255601580546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d908117909155815163c45a015560e01b815291519092839263c45a015592600480830193928290030181865afa15801562000186573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ac9190620003ab565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001fa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002209190620003ab565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af11580156200026e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002949190620003ab565b601680546001600160a01b0319166001600160a01b03928316179055600080548216815260056020526040808220805460ff1990811660019081179092553084528284208054821683179055601354851684528284208054821683179055601454909416835291208054909216179055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a00006040516200035391815260200190565b60405180910390a350620003dd565b6000826200038057634e487b7160e01b600052601260045260246000fd5b500690565b600082821015620003a657634e487b7160e01b600052601160045260246000fd5b500390565b600060208284031215620003be57600080fd5b81516001600160a01b0381168114620003d657600080fd5b9392505050565b61207580620003ed6000396000f3fe6080604052600436106101f15760003560e01c80637d1db4a51161010d578063a9059cbb116100a0578063c3c8cd801161006f578063c3c8cd80146105ce578063c492f046146105e3578063dd62ed3e14610603578063ea1644d514610649578063f2fde38b1461066957600080fd5b8063a9059cbb1461052e578063b5a652231461054e578063bdd795ef1461056e578063bfd792841461059e57600080fd5b80638f9a55c0116100dc5780638f9a55c0146104a957806395d89b41146104bf57806398a5c315146104ee578063a2a957bb1461050e57600080fd5b80637d1db4a5146104285780637f2feddc1461043e5780638da5cb5b1461046b5780638f70ccf71461048957600080fd5b806349bd5a5e116101855780636fc3eaec116101545780636fc3eaec146103be57806370a08231146103d3578063715018a6146103f357806374010ece1461040857600080fd5b806349bd5a5e1461033e57806367aadb7e1461035e5780636b9990531461037e5780636d8aa8f81461039e57600080fd5b806318160ddd116101c157806318160ddd146102c757806323b872dd146102ec5780632fd689e31461030c578063313ce5671461032257600080fd5b8062b8cf2a146101fd57806306fdde031461021f578063095ea7b31461025f5780631694505e1461028f57600080fd5b366101f857005b600080fd5b34801561020957600080fd5b5061021d610218366004611b6a565b610689565b005b34801561022b57600080fd5b506040805180820190915260058152644d6167696360d81b60208201525b6040516102569190611c2f565b60405180910390f35b34801561026b57600080fd5b5061027f61027a366004611c84565b610728565b6040519015158152602001610256565b34801561029b57600080fd5b506015546102af906001600160a01b031681565b6040516001600160a01b039091168152602001610256565b3480156102d357600080fd5b5067016345785d8a00005b604051908152602001610256565b3480156102f857600080fd5b5061027f610307366004611cb0565b61073f565b34801561031857600080fd5b506102de60195481565b34801561032e57600080fd5b5060405160098152602001610256565b34801561034a57600080fd5b506016546102af906001600160a01b031681565b34801561036a57600080fd5b5061021d610379366004611d3d565b6107a8565b34801561038a57600080fd5b5061021d610399366004611d7f565b610840565b3480156103aa57600080fd5b5061021d6103b9366004611dac565b61088b565b3480156103ca57600080fd5b5061021d6108d3565b3480156103df57600080fd5b506102de6103ee366004611d7f565b61091e565b3480156103ff57600080fd5b5061021d610940565b34801561041457600080fd5b5061021d610423366004611dc7565b6109b4565b34801561043457600080fd5b506102de60175481565b34801561044a57600080fd5b506102de610459366004611d7f565b60116020526000908152604090205481565b34801561047757600080fd5b506000546001600160a01b03166102af565b34801561049557600080fd5b5061021d6104a4366004611dac565b6109e3565b3480156104b557600080fd5b506102de60185481565b3480156104cb57600080fd5b5060408051808201909152600681526515da5e985c9960d21b6020820152610249565b3480156104fa57600080fd5b5061021d610509366004611dc7565b610a2b565b34801561051a57600080fd5b5061021d610529366004611de0565b610a5a565b34801561053a57600080fd5b5061027f610549366004611c84565b610a98565b34801561055a57600080fd5b5061021d610569366004611d3d565b610aa5565b34801561057a57600080fd5b5061027f610589366004611d7f565b60126020526000908152604090205460ff1681565b3480156105aa57600080fd5b5061027f6105b9366004611d7f565b60106020526000908152604090205460ff1681565b3480156105da57600080fd5b5061021d610b41565b3480156105ef57600080fd5b5061021d6105fe366004611e12565b610b95565b34801561060f57600080fd5b506102de61061e366004611e66565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561065557600080fd5b5061021d610664366004611dc7565b610c36565b34801561067557600080fd5b5061021d610684366004611d7f565b610c65565b6000546001600160a01b031633146106bc5760405162461bcd60e51b81526004016106b390611e9f565b60405180910390fd5b60005b8151811015610724576001601060008484815181106106e0576106e0611ed4565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061071c81611f00565b9150506106bf565b5050565b6000610735338484610d4f565b5060015b92915050565b600061074c848484610e73565b61079e843361079985604051806060016040528060288152602001612018602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611404565b610d4f565b5060019392505050565b6000546001600160a01b031633146107d25760405162461bcd60e51b81526004016106b390611e9f565b60005b8181101561083b57601260008484848181106107f3576107f3611ed4565b90506020020160208101906108089190611d7f565b6001600160a01b031681526020810191909152604001600020805460ff191690558061083381611f00565b9150506107d5565b505050565b6000546001600160a01b0316331461086a5760405162461bcd60e51b81526004016106b390611e9f565b6001600160a01b03166000908152601060205260409020805460ff19169055565b6000546001600160a01b031633146108b55760405162461bcd60e51b81526004016106b390611e9f565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b0316148061090857506014546001600160a01b0316336001600160a01b0316145b61091157600080fd5b4761091b8161143e565b50565b6001600160a01b03811660009081526002602052604081205461073990611478565b6000546001600160a01b0316331461096a5760405162461bcd60e51b81526004016106b390611e9f565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109de5760405162461bcd60e51b81526004016106b390611e9f565b601755565b6000546001600160a01b03163314610a0d5760405162461bcd60e51b81526004016106b390611e9f565b60168054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b03163314610a555760405162461bcd60e51b81526004016106b390611e9f565b601955565b6000546001600160a01b03163314610a845760405162461bcd60e51b81526004016106b390611e9f565b600893909355600a91909155600955600b55565b6000610735338484610e73565b6000546001600160a01b03163314610acf5760405162461bcd60e51b81526004016106b390611e9f565b60005b8181101561083b57600160126000858585818110610af257610af2611ed4565b9050602002016020810190610b079190611d7f565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610b3981611f00565b915050610ad2565b6013546001600160a01b0316336001600160a01b03161480610b7657506014546001600160a01b0316336001600160a01b0316145b610b7f57600080fd5b6000610b8a3061091e565b905061091b816114fc565b6000546001600160a01b03163314610bbf5760405162461bcd60e51b81526004016106b390611e9f565b60005b82811015610c30578160056000868685818110610be157610be1611ed4565b9050602002016020810190610bf69190611d7f565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610c2881611f00565b915050610bc2565b50505050565b6000546001600160a01b03163314610c605760405162461bcd60e51b81526004016106b390611e9f565b601855565b6000546001600160a01b03163314610c8f5760405162461bcd60e51b81526004016106b390611e9f565b6001600160a01b038116610cf45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106b3565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610db15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106b3565b6001600160a01b038216610e125760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106b3565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ed75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106b3565b6001600160a01b038216610f395760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106b3565b60008111610f9b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106b3565b6000546001600160a01b03848116911614801590610fc757506000546001600160a01b03838116911614155b8015610fec57506001600160a01b03831660009081526012602052604090205460ff16155b801561101157506001600160a01b03821660009081526012602052604090205460ff16155b156112fd57601654600160a01b900460ff166110b5576001600160a01b03831660009081526012602052604090205460ff166110b55760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016106b3565b6017548111156111075760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106b3565b6001600160a01b03831660009081526010602052604090205460ff1615801561114957506001600160a01b03821660009081526010602052604090205460ff16155b6111a15760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016106b3565b6016546001600160a01b0383811691161461122657601854816111c38461091e565b6111cd9190611f19565b106112265760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106b3565b60006112313061091e565b60195460175491925082101590821061124a5760175491505b8080156112615750601654600160a81b900460ff16155b801561127b57506016546001600160a01b03868116911614155b80156112905750601654600160b01b900460ff165b80156112b557506001600160a01b03851660009081526005602052604090205460ff16155b80156112da57506001600160a01b03841660009081526005602052604090205460ff16155b156112fa576112e8826114fc565b4780156112f8576112f84761143e565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061133f57506001600160a01b03831660009081526005602052604090205460ff165b8061137157506016546001600160a01b0385811691161480159061137157506016546001600160a01b03848116911614155b1561137e575060006113f8565b6016546001600160a01b0385811691161480156113a957506015546001600160a01b03848116911614155b156113bb57600854600c55600954600d555b6016546001600160a01b0384811691161480156113e657506015546001600160a01b03858116911614155b156113f857600a54600c55600b54600d555b610c3084848484611676565b600081848411156114285760405162461bcd60e51b81526004016106b39190611c2f565b5060006114358486611f31565b95945050505050565b6014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610724573d6000803e3d6000fd5b60006006548211156114df5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106b3565b60006114e96116a4565b90506114f583826116c7565b9392505050565b6016805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061154457611544611ed4565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561159d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115c19190611f48565b816001815181106115d4576115d4611ed4565b6001600160a01b0392831660209182029290920101526015546115fa9130911684610d4f565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac94790611633908590600090869030904290600401611f65565b600060405180830381600087803b15801561164d57600080fd5b505af1158015611661573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b8061168357611683611709565b61168e848484611737565b80610c3057610c30600e54600c55600f54600d55565b60008060006116b161182e565b90925090506116c082826116c7565b9250505090565b60006114f583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061186e565b600c541580156117195750600d54155b1561172057565b600c8054600e55600d8054600f5560009182905555565b6000806000806000806117498761189c565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061177b90876118f9565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546117aa908661193b565b6001600160a01b0389166000908152600260205260409020556117cc8161199a565b6117d684836119e4565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161181b91815260200190565b60405180910390a3505050505050505050565b600654600090819067016345785d8a000061184982826116c7565b8210156118655750506006549267016345785d8a000092509050565b90939092509050565b6000818361188f5760405162461bcd60e51b81526004016106b39190611c2f565b5060006114358486611fd6565b60008060008060008060008060006118b98a600c54600d54611a08565b92509250925060006118c96116a4565b905060008060006118dc8e878787611a5d565b919e509c509a509598509396509194505050505091939550919395565b60006114f583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611404565b6000806119488385611f19565b9050838110156114f55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106b3565b60006119a46116a4565b905060006119b28383611aad565b306000908152600260205260409020549091506119cf908261193b565b30600090815260026020526040902055505050565b6006546119f190836118f9565b600655600754611a01908261193b565b6007555050565b6000808080611a226064611a1c8989611aad565b906116c7565b90506000611a356064611a1c8a89611aad565b90506000611a4d82611a478b866118f9565b906118f9565b9992985090965090945050505050565b6000808080611a6c8886611aad565b90506000611a7a8887611aad565b90506000611a888888611aad565b90506000611a9a82611a4786866118f9565b939b939a50919850919650505050505050565b600082600003611abf57506000610739565b6000611acb8385611ff8565b905082611ad88583611fd6565b146114f55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106b3565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461091b57600080fd5b8035611b6581611b45565b919050565b60006020808385031215611b7d57600080fd5b823567ffffffffffffffff80821115611b9557600080fd5b818501915085601f830112611ba957600080fd5b813581811115611bbb57611bbb611b2f565b8060051b604051601f19603f83011681018181108582111715611be057611be0611b2f565b604052918252848201925083810185019188831115611bfe57600080fd5b938501935b82851015611c2357611c1485611b5a565b84529385019392850192611c03565b98975050505050505050565b600060208083528351808285015260005b81811015611c5c57858101830151858201604001528201611c40565b81811115611c6e576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215611c9757600080fd5b8235611ca281611b45565b946020939093013593505050565b600080600060608486031215611cc557600080fd5b8335611cd081611b45565b92506020840135611ce081611b45565b929592945050506040919091013590565b60008083601f840112611d0357600080fd5b50813567ffffffffffffffff811115611d1b57600080fd5b6020830191508360208260051b8501011115611d3657600080fd5b9250929050565b60008060208385031215611d5057600080fd5b823567ffffffffffffffff811115611d6757600080fd5b611d7385828601611cf1565b90969095509350505050565b600060208284031215611d9157600080fd5b81356114f581611b45565b80358015158114611b6557600080fd5b600060208284031215611dbe57600080fd5b6114f582611d9c565b600060208284031215611dd957600080fd5b5035919050565b60008060008060808587031215611df657600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060408486031215611e2757600080fd5b833567ffffffffffffffff811115611e3e57600080fd5b611e4a86828701611cf1565b9094509250611e5d905060208501611d9c565b90509250925092565b60008060408385031215611e7957600080fd5b8235611e8481611b45565b91506020830135611e9481611b45565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611f1257611f12611eea565b5060010190565b60008219821115611f2c57611f2c611eea565b500190565b600082821015611f4357611f43611eea565b500390565b600060208284031215611f5a57600080fd5b81516114f581611b45565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611fb55784516001600160a01b031683529383019391830191600101611f90565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611ff357634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561201257612012611eea565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220233bf88bca895fa5099328bb3333725533d22647226de89636e87b9b428d56e664736f6c634300080e0033

Deployed Bytecode

0x6080604052600436106101f15760003560e01c80637d1db4a51161010d578063a9059cbb116100a0578063c3c8cd801161006f578063c3c8cd80146105ce578063c492f046146105e3578063dd62ed3e14610603578063ea1644d514610649578063f2fde38b1461066957600080fd5b8063a9059cbb1461052e578063b5a652231461054e578063bdd795ef1461056e578063bfd792841461059e57600080fd5b80638f9a55c0116100dc5780638f9a55c0146104a957806395d89b41146104bf57806398a5c315146104ee578063a2a957bb1461050e57600080fd5b80637d1db4a5146104285780637f2feddc1461043e5780638da5cb5b1461046b5780638f70ccf71461048957600080fd5b806349bd5a5e116101855780636fc3eaec116101545780636fc3eaec146103be57806370a08231146103d3578063715018a6146103f357806374010ece1461040857600080fd5b806349bd5a5e1461033e57806367aadb7e1461035e5780636b9990531461037e5780636d8aa8f81461039e57600080fd5b806318160ddd116101c157806318160ddd146102c757806323b872dd146102ec5780632fd689e31461030c578063313ce5671461032257600080fd5b8062b8cf2a146101fd57806306fdde031461021f578063095ea7b31461025f5780631694505e1461028f57600080fd5b366101f857005b600080fd5b34801561020957600080fd5b5061021d610218366004611b6a565b610689565b005b34801561022b57600080fd5b506040805180820190915260058152644d6167696360d81b60208201525b6040516102569190611c2f565b60405180910390f35b34801561026b57600080fd5b5061027f61027a366004611c84565b610728565b6040519015158152602001610256565b34801561029b57600080fd5b506015546102af906001600160a01b031681565b6040516001600160a01b039091168152602001610256565b3480156102d357600080fd5b5067016345785d8a00005b604051908152602001610256565b3480156102f857600080fd5b5061027f610307366004611cb0565b61073f565b34801561031857600080fd5b506102de60195481565b34801561032e57600080fd5b5060405160098152602001610256565b34801561034a57600080fd5b506016546102af906001600160a01b031681565b34801561036a57600080fd5b5061021d610379366004611d3d565b6107a8565b34801561038a57600080fd5b5061021d610399366004611d7f565b610840565b3480156103aa57600080fd5b5061021d6103b9366004611dac565b61088b565b3480156103ca57600080fd5b5061021d6108d3565b3480156103df57600080fd5b506102de6103ee366004611d7f565b61091e565b3480156103ff57600080fd5b5061021d610940565b34801561041457600080fd5b5061021d610423366004611dc7565b6109b4565b34801561043457600080fd5b506102de60175481565b34801561044a57600080fd5b506102de610459366004611d7f565b60116020526000908152604090205481565b34801561047757600080fd5b506000546001600160a01b03166102af565b34801561049557600080fd5b5061021d6104a4366004611dac565b6109e3565b3480156104b557600080fd5b506102de60185481565b3480156104cb57600080fd5b5060408051808201909152600681526515da5e985c9960d21b6020820152610249565b3480156104fa57600080fd5b5061021d610509366004611dc7565b610a2b565b34801561051a57600080fd5b5061021d610529366004611de0565b610a5a565b34801561053a57600080fd5b5061027f610549366004611c84565b610a98565b34801561055a57600080fd5b5061021d610569366004611d3d565b610aa5565b34801561057a57600080fd5b5061027f610589366004611d7f565b60126020526000908152604090205460ff1681565b3480156105aa57600080fd5b5061027f6105b9366004611d7f565b60106020526000908152604090205460ff1681565b3480156105da57600080fd5b5061021d610b41565b3480156105ef57600080fd5b5061021d6105fe366004611e12565b610b95565b34801561060f57600080fd5b506102de61061e366004611e66565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b34801561065557600080fd5b5061021d610664366004611dc7565b610c36565b34801561067557600080fd5b5061021d610684366004611d7f565b610c65565b6000546001600160a01b031633146106bc5760405162461bcd60e51b81526004016106b390611e9f565b60405180910390fd5b60005b8151811015610724576001601060008484815181106106e0576106e0611ed4565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061071c81611f00565b9150506106bf565b5050565b6000610735338484610d4f565b5060015b92915050565b600061074c848484610e73565b61079e843361079985604051806060016040528060288152602001612018602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190611404565b610d4f565b5060019392505050565b6000546001600160a01b031633146107d25760405162461bcd60e51b81526004016106b390611e9f565b60005b8181101561083b57601260008484848181106107f3576107f3611ed4565b90506020020160208101906108089190611d7f565b6001600160a01b031681526020810191909152604001600020805460ff191690558061083381611f00565b9150506107d5565b505050565b6000546001600160a01b0316331461086a5760405162461bcd60e51b81526004016106b390611e9f565b6001600160a01b03166000908152601060205260409020805460ff19169055565b6000546001600160a01b031633146108b55760405162461bcd60e51b81526004016106b390611e9f565b60168054911515600160b01b0260ff60b01b19909216919091179055565b6013546001600160a01b0316336001600160a01b0316148061090857506014546001600160a01b0316336001600160a01b0316145b61091157600080fd5b4761091b8161143e565b50565b6001600160a01b03811660009081526002602052604081205461073990611478565b6000546001600160a01b0316331461096a5760405162461bcd60e51b81526004016106b390611e9f565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146109de5760405162461bcd60e51b81526004016106b390611e9f565b601755565b6000546001600160a01b03163314610a0d5760405162461bcd60e51b81526004016106b390611e9f565b60168054911515600160a01b0260ff60a01b19909216919091179055565b6000546001600160a01b03163314610a555760405162461bcd60e51b81526004016106b390611e9f565b601955565b6000546001600160a01b03163314610a845760405162461bcd60e51b81526004016106b390611e9f565b600893909355600a91909155600955600b55565b6000610735338484610e73565b6000546001600160a01b03163314610acf5760405162461bcd60e51b81526004016106b390611e9f565b60005b8181101561083b57600160126000858585818110610af257610af2611ed4565b9050602002016020810190610b079190611d7f565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610b3981611f00565b915050610ad2565b6013546001600160a01b0316336001600160a01b03161480610b7657506014546001600160a01b0316336001600160a01b0316145b610b7f57600080fd5b6000610b8a3061091e565b905061091b816114fc565b6000546001600160a01b03163314610bbf5760405162461bcd60e51b81526004016106b390611e9f565b60005b82811015610c30578160056000868685818110610be157610be1611ed4565b9050602002016020810190610bf69190611d7f565b6001600160a01b031681526020810191909152604001600020805460ff191691151591909117905580610c2881611f00565b915050610bc2565b50505050565b6000546001600160a01b03163314610c605760405162461bcd60e51b81526004016106b390611e9f565b601855565b6000546001600160a01b03163314610c8f5760405162461bcd60e51b81526004016106b390611e9f565b6001600160a01b038116610cf45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106b3565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610db15760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016106b3565b6001600160a01b038216610e125760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016106b3565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610ed75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016106b3565b6001600160a01b038216610f395760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016106b3565b60008111610f9b5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016106b3565b6000546001600160a01b03848116911614801590610fc757506000546001600160a01b03838116911614155b8015610fec57506001600160a01b03831660009081526012602052604090205460ff16155b801561101157506001600160a01b03821660009081526012602052604090205460ff16155b156112fd57601654600160a01b900460ff166110b5576001600160a01b03831660009081526012602052604090205460ff166110b55760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c65640060648201526084016106b3565b6017548111156111075760405162461bcd60e51b815260206004820152601c60248201527f544f4b454e3a204d6178205472616e73616374696f6e204c696d69740000000060448201526064016106b3565b6001600160a01b03831660009081526010602052604090205460ff1615801561114957506001600160a01b03821660009081526010602052604090205460ff16155b6111a15760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460448201526265642160e81b60648201526084016106b3565b6016546001600160a01b0383811691161461122657601854816111c38461091e565b6111cd9190611f19565b106112265760405162461bcd60e51b815260206004820152602360248201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696044820152627a652160e81b60648201526084016106b3565b60006112313061091e565b60195460175491925082101590821061124a5760175491505b8080156112615750601654600160a81b900460ff16155b801561127b57506016546001600160a01b03868116911614155b80156112905750601654600160b01b900460ff165b80156112b557506001600160a01b03851660009081526005602052604090205460ff16155b80156112da57506001600160a01b03841660009081526005602052604090205460ff16155b156112fa576112e8826114fc565b4780156112f8576112f84761143e565b505b50505b6001600160a01b03831660009081526005602052604090205460019060ff168061133f57506001600160a01b03831660009081526005602052604090205460ff165b8061137157506016546001600160a01b0385811691161480159061137157506016546001600160a01b03848116911614155b1561137e575060006113f8565b6016546001600160a01b0385811691161480156113a957506015546001600160a01b03848116911614155b156113bb57600854600c55600954600d555b6016546001600160a01b0384811691161480156113e657506015546001600160a01b03858116911614155b156113f857600a54600c55600b54600d555b610c3084848484611676565b600081848411156114285760405162461bcd60e51b81526004016106b39190611c2f565b5060006114358486611f31565b95945050505050565b6014546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015610724573d6000803e3d6000fd5b60006006548211156114df5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016106b3565b60006114e96116a4565b90506114f583826116c7565b9392505050565b6016805460ff60a81b1916600160a81b179055604080516002808252606082018352600092602083019080368337019050509050308160008151811061154457611544611ed4565b6001600160a01b03928316602091820292909201810191909152601554604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa15801561159d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115c19190611f48565b816001815181106115d4576115d4611ed4565b6001600160a01b0392831660209182029290920101526015546115fa9130911684610d4f565b60155460405163791ac94760e01b81526001600160a01b039091169063791ac94790611633908590600090869030904290600401611f65565b600060405180830381600087803b15801561164d57600080fd5b505af1158015611661573d6000803e3d6000fd5b50506016805460ff60a81b1916905550505050565b8061168357611683611709565b61168e848484611737565b80610c3057610c30600e54600c55600f54600d55565b60008060006116b161182e565b90925090506116c082826116c7565b9250505090565b60006114f583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061186e565b600c541580156117195750600d54155b1561172057565b600c8054600e55600d8054600f5560009182905555565b6000806000806000806117498761189c565b6001600160a01b038f16600090815260026020526040902054959b5093995091975095509350915061177b90876118f9565b6001600160a01b03808b1660009081526002602052604080822093909355908a16815220546117aa908661193b565b6001600160a01b0389166000908152600260205260409020556117cc8161199a565b6117d684836119e4565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161181b91815260200190565b60405180910390a3505050505050505050565b600654600090819067016345785d8a000061184982826116c7565b8210156118655750506006549267016345785d8a000092509050565b90939092509050565b6000818361188f5760405162461bcd60e51b81526004016106b39190611c2f565b5060006114358486611fd6565b60008060008060008060008060006118b98a600c54600d54611a08565b92509250925060006118c96116a4565b905060008060006118dc8e878787611a5d565b919e509c509a509598509396509194505050505091939550919395565b60006114f583836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611404565b6000806119488385611f19565b9050838110156114f55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016106b3565b60006119a46116a4565b905060006119b28383611aad565b306000908152600260205260409020549091506119cf908261193b565b30600090815260026020526040902055505050565b6006546119f190836118f9565b600655600754611a01908261193b565b6007555050565b6000808080611a226064611a1c8989611aad565b906116c7565b90506000611a356064611a1c8a89611aad565b90506000611a4d82611a478b866118f9565b906118f9565b9992985090965090945050505050565b6000808080611a6c8886611aad565b90506000611a7a8887611aad565b90506000611a888888611aad565b90506000611a9a82611a4786866118f9565b939b939a50919850919650505050505050565b600082600003611abf57506000610739565b6000611acb8385611ff8565b905082611ad88583611fd6565b146114f55760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016106b3565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461091b57600080fd5b8035611b6581611b45565b919050565b60006020808385031215611b7d57600080fd5b823567ffffffffffffffff80821115611b9557600080fd5b818501915085601f830112611ba957600080fd5b813581811115611bbb57611bbb611b2f565b8060051b604051601f19603f83011681018181108582111715611be057611be0611b2f565b604052918252848201925083810185019188831115611bfe57600080fd5b938501935b82851015611c2357611c1485611b5a565b84529385019392850192611c03565b98975050505050505050565b600060208083528351808285015260005b81811015611c5c57858101830151858201604001528201611c40565b81811115611c6e576000604083870101525b50601f01601f1916929092016040019392505050565b60008060408385031215611c9757600080fd5b8235611ca281611b45565b946020939093013593505050565b600080600060608486031215611cc557600080fd5b8335611cd081611b45565b92506020840135611ce081611b45565b929592945050506040919091013590565b60008083601f840112611d0357600080fd5b50813567ffffffffffffffff811115611d1b57600080fd5b6020830191508360208260051b8501011115611d3657600080fd5b9250929050565b60008060208385031215611d5057600080fd5b823567ffffffffffffffff811115611d6757600080fd5b611d7385828601611cf1565b90969095509350505050565b600060208284031215611d9157600080fd5b81356114f581611b45565b80358015158114611b6557600080fd5b600060208284031215611dbe57600080fd5b6114f582611d9c565b600060208284031215611dd957600080fd5b5035919050565b60008060008060808587031215611df657600080fd5b5050823594602084013594506040840135936060013592509050565b600080600060408486031215611e2757600080fd5b833567ffffffffffffffff811115611e3e57600080fd5b611e4a86828701611cf1565b9094509250611e5d905060208501611d9c565b90509250925092565b60008060408385031215611e7957600080fd5b8235611e8481611b45565b91506020830135611e9481611b45565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201611f1257611f12611eea565b5060010190565b60008219821115611f2c57611f2c611eea565b500190565b600082821015611f4357611f43611eea565b500390565b600060208284031215611f5a57600080fd5b81516114f581611b45565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611fb55784516001600160a01b031683529383019391830191600101611f90565b50506001600160a01b03969096166060850152505050608001529392505050565b600082611ff357634e487b7160e01b600052601260045260246000fd5b500490565b600081600019048311821515161561201257612012611eea565b50029056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220233bf88bca895fa5099328bb3333725533d22647226de89636e87b9b428d56e664736f6c634300080e0033

Deployed Bytecode Sourcemap

4184:13978:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12930:169;;;;;;;;;;-1:-1:-1;12930:169:0;;;;;:::i;:::-;;:::i;:::-;;6719:83;;;;;;;;;;-1:-1:-1;6789:5:0;;;;;;;;;;;;-1:-1:-1;;;6789:5:0;;;;6719:83;;;;;;;:::i;:::-;;;;;;;;7644:193;;;;;;;;;;-1:-1:-1;7644:193:0;;;;;:::i;:::-;;:::i;:::-;;;2634:14:1;;2627:22;2609:41;;2597:2;2582:18;7644:193:0;2469:187:1;5571:41:0;;;;;;;;;;-1:-1:-1;5571:41:0;;;;-1:-1:-1;;;;;5571:41:0;;;;;;-1:-1:-1;;;;;2851:32:1;;;2833:51;;2821:2;2806:18;5571:41:0;2661:229:1;6996:95:0;;;;;;;;;;-1:-1:-1;4727:17:0;6996:95;;;3041:25:1;;;3029:2;3014:18;6996:95:0;2895:177:1;7845:446:0;;;;;;;;;;-1:-1:-1;7845:446:0;;;;;:::i;:::-;;:::i;5867:50::-;;;;;;;;;;;;;;;;6905:83;;;;;;;;;;-1:-1:-1;6905:83:0;;4401:1;3680:36:1;;3668:2;3653:18;6905:83:0;3538:184:1;5619:28:0;;;;;;;;;;-1:-1:-1;5619:28:0;;;;-1:-1:-1;;;;;5619:28:0;;;17963:196;;;;;;;;;;-1:-1:-1;17963:196:0;;;;;:::i;:::-;;:::i;13107:92::-;;;;;;;;;;-1:-1:-1;13107:92:0;;;;;:::i;:::-;;:::i;17139:101::-;;;;;;;;;;-1:-1:-1;17139:101:0;;;;;:::i;:::-;;:::i;12687:235::-;;;;;;;;;;;;;:::i;7099:138::-;;;;;;;;;;-1:-1:-1;7099:138:0;;;;;:::i;:::-;;:::i;1671:148::-;;;;;;;;;;;;;:::i;17279:108::-;;;;;;;;;;-1:-1:-1;17279:108:0;;;;;:::i;:::-;;:::i;5761:45::-;;;;;;;;;;;;;;;;5264:43;;;;;;;;;;-1:-1:-1;5264:43:0;;;;;:::i;:::-;;;;;;;;;;;;;;1457:79;;;;;;;;;;-1:-1:-1;1495:7:0;1522:6;-1:-1:-1;;;;;1522:6:0;1457:79;;12334:101;;;;;;;;;;-1:-1:-1;12334:101:0;;;;;:::i;:::-;;:::i;5813:47::-;;;;;;;;;;;;;;;;6810:87;;;;;;;;;;-1:-1:-1;6882:7:0;;;;;;;;;;;;-1:-1:-1;;;6882:7:0;;;;6810:87;;16948:139;;;;;;;;;;-1:-1:-1;16948:139:0;;;;;:::i;:::-;;:::i;16605:291::-;;;;;;;;;;-1:-1:-1;16605:291:0;;;;;:::i;:::-;;:::i;7245:199::-;;;;;;;;;;-1:-1:-1;7245:199:0;;;;;:::i;:::-;;:::i;17760:195::-;;;;;;;;;;-1:-1:-1;17760:195:0;;;;;:::i;:::-;;:::i;5314:42::-;;;;;;;;;;-1:-1:-1;5314:42:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;5226:36;;;;;;;;;;-1:-1:-1;5226:36:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;12443:236;;;;;;;;;;;;;:::i;17518:234::-;;;;;;;;;;-1:-1:-1;17518:234:0;;;;;:::i;:::-;;:::i;7452:184::-;;;;;;;;;;-1:-1:-1;7452:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7601:18:0;;;7569:7;7601:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7452:184;17395:115;;;;;;;;;;-1:-1:-1;17395:115:0;;;;;:::i;:::-;;:::i;1827:244::-;;;;;;;;;;-1:-1:-1;1827:244:0;;;;;:::i;:::-;;:::i;12930:169::-;1584:6;;-1:-1:-1;;;;;1584:6:0;296:10;1584:22;1576:67;;;;-1:-1:-1;;;1576:67:0;;;;;;;:::i;:::-;;;;;;;;;13006:9:::1;13001:91;13025:5;:12;13021:1;:16;13001:91;;;13076:4;13059;:14;13064:5;13070:1;13064:8;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;;-1:-1:-1;;;;;13059:14:0::1;::::0;;;::::1;::::0;;;;;;-1:-1:-1;13059:14:0;:21;;-1:-1:-1;;13059:21:0::1;::::0;::::1;;::::0;;;::::1;::::0;;13039:3;::::1;::::0;::::1;:::i;:::-;;;;13001:91;;;;12930:169:::0;:::o;7644:193::-;7746:4;7768:39;296:10;7791:7;7800:6;7768:8;:39::i;:::-;-1:-1:-1;7825:4:0;7644:193;;;;;:::o;7845:446::-;7977:4;7994:36;8004:6;8012:9;8023:6;7994:9;:36::i;:::-;8041:220;8064:6;296:10;8112:138;8168:6;8112:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8112:19:0;;;;;;:11;:19;;;;;;;;296:10;8112:33;;;;;;;;;;:37;:138::i;:::-;8041:8;:220::i;:::-;-1:-1:-1;8279:4:0;7845:446;;;;;:::o;17963:196::-;1584:6;;-1:-1:-1;;;;;1584:6:0;296:10;1584:22;1576:67;;;;-1:-1:-1;;;1576:67:0;;;;;;;:::i;:::-;18050:9:::1;18046:106;18065:19:::0;;::::1;18046:106;;;18118:9;:22;18128:8;;18137:1;18128:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18118:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;18118:22:0;18111:29;;-1:-1:-1;;18111:29:0::1;::::0;;18086:3;::::1;::::0;::::1;:::i;:::-;;;;18046:106;;;;17963:196:::0;;:::o;13107:92::-;1584:6;;-1:-1:-1;;;;;1584:6:0;296:10;1584:22;1576:67;;;;-1:-1:-1;;;1576:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;13171:12:0::1;13186:5;13171:12:::0;;;:4:::1;:12;::::0;;;;:20;;-1:-1:-1;;13171:20:0::1;::::0;;13107:92::o;17139:101::-;1584:6;;-1:-1:-1;;;;;1584:6:0;296:10;1584:22;1576:67;;;;-1:-1:-1;;;1576:67:0;;;;;;;:::i;:::-;17206:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;17206:26:0::1;-1:-1:-1::0;;;;17206:26:0;;::::1;::::0;;;::::1;::::0;;17139:101::o;12687:235::-;12753:19;;-1:-1:-1;;;;;12753:19:0;296:10;-1:-1:-1;;;;;12737:35:0;;:72;;;-1:-1:-1;12792:17:0;;-1:-1:-1;;;;;12792:17:0;296:10;-1:-1:-1;;;;;12776:33:0;;12737:72;12729:81;;;;;;12850:21;12882:32;12850:21;12882:12;:32::i;:::-;12718:204;12687:235::o;7099:138::-;-1:-1:-1;;;;;7212:16:0;;7165:7;7212:16;;;:7;:16;;;;;;7192:37;;:19;:37::i;1671:148::-;1584:6;;-1:-1:-1;;;;;1584:6:0;296:10;1584:22;1576:67;;;;-1:-1:-1;;;1576:67:0;;;;;;;:::i;:::-;1778:1:::1;1762:6:::0;;1741:40:::1;::::0;-1:-1:-1;;;;;1762:6:0;;::::1;::::0;1741:40:::1;::::0;1778:1;;1741:40:::1;1809:1;1792:19:::0;;-1:-1:-1;;;;;;1792:19:0::1;::::0;;1671:148::o;17279:108::-;1584:6;;-1:-1:-1;;;;;1584:6:0;296:10;1584:22;1576:67;;;;-1:-1:-1;;;1576:67:0;;;;;;;:::i;:::-;17353:12:::1;:26:::0;17279:108::o;12334:101::-;1584:6;;-1:-1:-1;;;;;1584:6:0;296:10;1584:22;1576:67;;;;-1:-1:-1;;;1576:67:0;;;;;;;:::i;:::-;12401:11:::1;:26:::0;;;::::1;;-1:-1:-1::0;;;12401:26:0::1;-1:-1:-1::0;;;;12401:26:0;;::::1;::::0;;;::::1;::::0;;12334:101::o;16948:139::-;1584:6;;-1:-1:-1;;;;;1584:6:0;296:10;1584:22;1576:67;;;;-1:-1:-1;;;1576:67:0;;;;;;;:::i;:::-;17039:19:::1;:40:::0;16948:139::o;16605:291::-;1584:6;;-1:-1:-1;;;;;1584:6:0;296:10;1584:22;1576:67;;;;-1:-1:-1;;;1576:67:0;;;;;;;:::i;:::-;16739:14:::1;:30:::0;;;;16780:15:::1;:32:::0;;;;16823:12:::1;:26:::0;16860:13:::1;:28:::0;16605:291::o;7245:199::-;7350:4;7372:42;296:10;7396:9;7407:6;7372:9;:42::i;17760:195::-;1584:6;;-1:-1:-1;;;;;1584:6:0;296:10;1584:22;1576:67;;;;-1:-1:-1;;;1576:67:0;;;;;;;:::i;:::-;17846:9:::1;17842:106;17861:19:::0;;::::1;17842:106;;;17932:4;17907:9;:22;17917:8;;17926:1;17917:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17907:22:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17907:22:0;:29;;-1:-1:-1;;17907:29:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17882:3;::::1;::::0;::::1;:::i;:::-;;;;17842:106;;12443:236:::0;12509:19;;-1:-1:-1;;;;;12509:19:0;296:10;-1:-1:-1;;;;;12493:35:0;;:72;;;-1:-1:-1;12548:17:0;;-1:-1:-1;;;;;12548:17:0;296:10;-1:-1:-1;;;;;12532:33:0;;12493:72;12485:81;;;;;;12577:23;12603:24;12621:4;12603:9;:24::i;:::-;12577:50;;12638:33;12655:15;12638:16;:33::i;17518:234::-;1584:6;;-1:-1:-1;;;;;1584:6:0;296:10;1584:22;1576:67;;;;-1:-1:-1;;;1576:67:0;;;;;;;:::i;:::-;17635:9:::1;17631:114;17650:19:::0;;::::1;17631:114;;;17725:8;17691:18;:31;17710:8;;17719:1;17710:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;17691:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;17691:31:0;:42;;-1:-1:-1;;17691:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;17671:3;::::1;::::0;::::1;:::i;:::-;;;;17631:114;;;;17518:234:::0;;;:::o;17395:115::-;1584:6;;-1:-1:-1;;;;;1584:6:0;296:10;1584:22;1576:67;;;;-1:-1:-1;;;1576:67:0;;;;;;;:::i;:::-;17472:14:::1;:30:::0;17395:115::o;1827:244::-;1584:6;;-1:-1:-1;;;;;1584:6:0;296:10;1584:22;1576:67;;;;-1:-1:-1;;;1576:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;1916:22:0;::::1;1908:73;;;::::0;-1:-1:-1;;;1908:73:0;;7796:2:1;1908:73:0::1;::::0;::::1;7778:21:1::0;7835:2;7815:18;;;7808:30;7874:34;7854:18;;;7847:62;-1:-1:-1;;;7925:18:1;;;7918:36;7971:19;;1908:73:0::1;7594:402:1::0;1908:73:0::1;2018:6;::::0;;1997:38:::1;::::0;-1:-1:-1;;;;;1997:38:0;;::::1;::::0;2018:6;::::1;::::0;1997:38:::1;::::0;::::1;2046:6;:17:::0;;-1:-1:-1;;;;;;2046:17:0::1;-1:-1:-1::0;;;;;2046:17:0;;;::::1;::::0;;;::::1;::::0;;1827:244::o;8982:369::-;-1:-1:-1;;;;;9109:19:0;;9101:68;;;;-1:-1:-1;;;9101:68:0;;8203:2:1;9101:68:0;;;8185:21:1;8242:2;8222:18;;;8215:30;8281:34;8261:18;;;8254:62;-1:-1:-1;;;8332:18:1;;;8325:34;8376:19;;9101:68:0;8001:400:1;9101:68:0;-1:-1:-1;;;;;9188:21:0;;9180:68;;;;-1:-1:-1;;;9180:68:0;;8608:2:1;9180:68:0;;;8590:21:1;8647:2;8627:18;;;8620:30;8686:34;8666:18;;;8659:62;-1:-1:-1;;;8737:18:1;;;8730:32;8779:19;;9180:68:0;8406:398:1;9180:68:0;-1:-1:-1;;;;;9259:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;9311:32;;3041:25:1;;;9311:32:0;;3014:18:1;9311:32:0;;;;;;;8982:369;;;:::o;9359:2369::-;-1:-1:-1;;;;;9481:18:0;;9473:68;;;;-1:-1:-1;;;9473:68:0;;9011:2:1;9473:68:0;;;8993:21:1;9050:2;9030:18;;;9023:30;9089:34;9069:18;;;9062:62;-1:-1:-1;;;9140:18:1;;;9133:35;9185:19;;9473:68:0;8809:401:1;9473:68:0;-1:-1:-1;;;;;9560:16:0;;9552:64;;;;-1:-1:-1;;;9552:64:0;;9417:2:1;9552:64:0;;;9399:21:1;9456:2;9436:18;;;9429:30;9495:34;9475:18;;;9468:62;-1:-1:-1;;;9546:18:1;;;9539:33;9589:19;;9552:64:0;9215:399:1;9552:64:0;9644:1;9635:6;:10;9627:64;;;;-1:-1:-1;;;9627:64:0;;9821:2:1;9627:64:0;;;9803:21:1;9860:2;9840:18;;;9833:30;9899:34;9879:18;;;9872:62;-1:-1:-1;;;9950:18:1;;;9943:39;9999:19;;9627:64:0;9619:405:1;9627:64:0;1495:7;1522:6;-1:-1:-1;;;;;9709:15:0;;;1522:6;;9709:15;;;;:32;;-1:-1:-1;1495:7:0;1522:6;-1:-1:-1;;;;;9728:13:0;;;1522:6;;9728:13;;9709:32;:52;;;;-1:-1:-1;;;;;;9746:15:0;;;;;;:9;:15;;;;;;;;9745:16;9709:52;:70;;;;-1:-1:-1;;;;;;9766:13:0;;;;;;:9;:13;;;;;;;;9765:14;9709:70;9705:1297;;;9836:11;;-1:-1:-1;;;9836:11:0;;;;9831:144;;-1:-1:-1;;;;;9876:15:0;;;;;;:9;:15;;;;;;;;9868:91;;;;-1:-1:-1;;;9868:91:0;;10231:2:1;9868:91:0;;;10213:21:1;10270:2;10250:18;;;10243:30;10309:34;10289:18;;;10282:62;10380:33;10360:18;;;10353:61;10431:19;;9868:91:0;10029:427:1;9868:91:0;10009:12;;9999:6;:22;;9991:63;;;;-1:-1:-1;;;9991:63:0;;10663:2:1;9991:63:0;;;10645:21:1;10702:2;10682:18;;;10675:30;10741;10721:18;;;10714:58;10789:18;;9991:63:0;10461:352:1;9991:63:0;-1:-1:-1;;;;;10078:10:0;;;;;;:4;:10;;;;;;;;10077:11;:24;;;;-1:-1:-1;;;;;;10093:8:0;;;;;;:4;:8;;;;;;;;10092:9;10077:24;10069:72;;;;-1:-1:-1;;;10069:72:0;;11020:2:1;10069:72:0;;;11002:21:1;11059:2;11039:18;;;11032:30;11098:34;11078:18;;;11071:62;-1:-1:-1;;;11149:18:1;;;11142:33;11192:19;;10069:72:0;10818:399:1;10069:72:0;10167:13;;-1:-1:-1;;;;;10161:19:0;;;10167:13;;10161:19;10158:146;;10234:14;;10225:6;10209:13;10219:2;10209:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10201:87;;;;-1:-1:-1;;;10201:87:0;;11557:2:1;10201:87:0;;;11539:21:1;11596:2;11576:18;;;11569:30;11635:34;11615:18;;;11608:62;-1:-1:-1;;;11686:18:1;;;11679:33;11729:19;;10201:87:0;11355:399:1;10201:87:0;10320:28;10351:24;10369:4;10351:9;:24::i;:::-;10429:19;;10492:12;;10320:55;;-1:-1:-1;10405:43:0;;;;10468:36;;10465:124;;10561:12;;10538:35;;10465:124;10609:7;:18;;;;-1:-1:-1;10621:6:0;;-1:-1:-1;;;10621:6:0;;;;10620:7;10609:18;:43;;;;-1:-1:-1;10639:13:0;;-1:-1:-1;;;;;10631:21:0;;;10639:13;;10631:21;;10609:43;:58;;;;-1:-1:-1;10656:11:0;;-1:-1:-1;;;10656:11:0;;;;10609:58;:87;;;;-1:-1:-1;;;;;;10672:24:0;;;;;;:18;:24;;;;;;;;10671:25;10609:87;:114;;;;-1:-1:-1;;;;;;10701:22:0;;;;;;:18;:22;;;;;;;;10700:23;10609:114;10605:386;;;10744:38;10761:20;10744:16;:38::i;:::-;10830:21;10874:22;;10870:106;;10921:35;10934:21;10921:12;:35::i;:::-;10725:266;10605:386;9781:1221;;9705:1297;-1:-1:-1;;;;;11078:24:0;;11014:12;11078:24;;;:18;:24;;;;;;11029:4;;11078:24;;;:50;;-1:-1:-1;;;;;;11106:22:0;;;;;;:18;:22;;;;;;;;11078:50;11077:102;;;-1:-1:-1;11142:13:0;;-1:-1:-1;;;;;11134:21:0;;;11142:13;;11134:21;;;;:44;;-1:-1:-1;11165:13:0;;-1:-1:-1;;;;;11159:19:0;;;11165:13;;11159:19;;11134:44;11073:594;;;-1:-1:-1;11206:5:0;11073:594;;;11289:13;;-1:-1:-1;;;;;11281:21:0;;;11289:13;;11281:21;:55;;;;-1:-1:-1;11320:15:0;;-1:-1:-1;;;;;11306:30:0;;;11320:15;;11306:30;;11281:55;11278:162;;;11369:14;;11357:9;:26;11412:12;;11402:7;:22;11278:162;11499:13;;-1:-1:-1;;;;;11493:19:0;;;11499:13;;11493:19;:55;;;;-1:-1:-1;11532:15:0;;-1:-1:-1;;;;;11516:32:0;;;11532:15;;11516:32;;11493:55;11489:165;;;11581:15;;11569:9;:27;11625:13;;11615:7;:23;11489:165;11679:41;11694:4;11700:2;11704:6;11712:7;11679:14;:41::i;2435:224::-;2555:7;2591:12;2583:6;;;;2575:29;;;;-1:-1:-1;;;2575:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2615:9:0;2627:5;2631:1;2627;:5;:::i;:::-;2615:17;2435:224;-1:-1:-1;;;;;2435:224:0:o;12227:99::-;12284:17;;:34;;-1:-1:-1;;;;;12284:17:0;;;;:34;;;;;12311:6;;12284:17;:34;:17;:34;12311:6;12284:17;:34;;;;;;;;;;;;;;;;;;;8299:323;8394:7;8452;;8441;:18;;8419:110;;;;-1:-1:-1;;;8419:110:0;;12091:2:1;8419:110:0;;;12073:21:1;12130:2;12110:18;;;12103:30;12169:34;12149:18;;;12142:62;-1:-1:-1;;;12220:18:1;;;12213:40;12270:19;;8419:110:0;11889:406:1;8419:110:0;8540:19;8562:10;:8;:10::i;:::-;8540:32;-1:-1:-1;8590:24:0;:7;8540:32;8590:11;:24::i;:::-;8583:31;8299:323;-1:-1:-1;;;8299:323:0:o;11736:483::-;6011:6;:13;;-1:-1:-1;;;;6011:13:0;-1:-1:-1;;;6011:13:0;;;11838:16:::1;::::0;;11852:1:::1;11838:16:::0;;;;;::::1;::::0;;-1:-1:-1;;11838:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;11838:16:0::1;11814:40;;11883:4;11865;11870:1;11865:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11865:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11909:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11909:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;11865:7;;11909:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11899:4;11904:1;11899:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11899:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11974:15:::1;::::0;11942:62:::1;::::0;11959:4:::1;::::0;11974:15:::1;11992:11:::0;11942:8:::1;:62::i;:::-;12015:15;::::0;:196:::1;::::0;-1:-1:-1;;;12015:196:0;;-1:-1:-1;;;;;12015:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;12096:11;;12015:15:::1;::::0;12138:4;;12165::::1;::::0;12185:15:::1;::::0;12015:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;6047:6:0;:14;;-1:-1:-1;;;;6047:14:0;;;-1:-1:-1;;;;11736:483:0:o;13207:282::-;13363:7;13358:28;;13372:14;:12;:14::i;:::-;13397:44;13415:6;13423:9;13434:6;13397:17;:44::i;:::-;13457:7;13452:29;;13466:15;8913:17;;8901:9;:29;8951:15;;8941:7;:25;8857:117;16168:164;16210:7;16231:15;16248;16267:19;:17;:19::i;:::-;16230:56;;-1:-1:-1;16230:56:0;-1:-1:-1;16304:20:0;16230:56;;16304:11;:20::i;:::-;16297:27;;;;16168:164;:::o;2921:132::-;2979:7;3006:39;3010:1;3013;3006:39;;;;;;;;;;;;;;;;;:3;:39::i;8630:219::-;8677:9;;:14;:30;;;;-1:-1:-1;8695:7:0;;:12;8677:30;8673:43;;;8630:219::o;8673:43::-;8748:9;;;8728:17;:29;8786:7;;;8768:15;:25;-1:-1:-1;8806:13:0;;;;8830:11;8630:219::o;13497:610::-;13644:15;13674:23;13712:12;13739:23;13777:12;13804:13;13831:19;13842:7;13831:10;:19::i;:::-;-1:-1:-1;;;;;13879:15:0;;;;;;:7;:15;;;;;;13629:221;;-1:-1:-1;13629:221:0;;-1:-1:-1;13629:221:0;;-1:-1:-1;13629:221:0;-1:-1:-1;13629:221:0;-1:-1:-1;13629:221:0;-1:-1:-1;13879:28:0;;13629:221;13879:19;:28::i;:::-;-1:-1:-1;;;;;13861:15:0;;;;;;;:7;:15;;;;;;:46;;;;13939:18;;;;;;;:39;;13962:15;13939:22;:39::i;:::-;-1:-1:-1;;;;;13918:18:0;;;;;;:7;:18;;;;;:60;13989:16;13999:5;13989:9;:16::i;:::-;14016:23;14028:4;14034;14016:11;:23::i;:::-;14072:9;-1:-1:-1;;;;;14055:44:0;14064:6;-1:-1:-1;;;;;14055:44:0;;14083:15;14055:44;;;;3041:25:1;;3029:2;3014:18;;2895:177;14055:44:0;;;;;;;;13618:489;;;;;;13497:610;;;:::o;16340:257::-;16438:7;;16391;;;;4727:17;16506:20;16438:7;4727:17;16506:11;:20::i;:::-;16496:7;:30;16492:61;;;-1:-1:-1;;16536:7:0;;;4727:17;;-1:-1:-1;16340:257:0;-1:-1:-1;16340:257:0:o;16492:61::-;16572:7;;16581;;-1:-1:-1;16340:257:0;-1:-1:-1;16340:257:0:o;3061:223::-;3181:7;3216:12;3209:5;3201:28;;;;-1:-1:-1;;;3201:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3240:9:0;3252:5;3256:1;3252;:5;:::i;14526:615::-;14626:7;14648;14670;14692;14714;14736;14772:23;14797:12;14811:13;14841:40;14853:7;14862:9;;14873:7;;14841:11;:40::i;:::-;14771:110;;;;;;14892:19;14914:10;:8;:10::i;:::-;14892:32;;14936:15;14953:23;14978:12;15007:46;15019:7;15028:4;15034:5;15041:11;15007;:46::i;:::-;14935:118;;-1:-1:-1;14935:118:0;-1:-1:-1;14935:118:0;-1:-1:-1;15104:15:0;;-1:-1:-1;15121:4:0;;-1:-1:-1;15127:5:0;;-1:-1:-1;;;;;14526:615:0;;;;;;;:::o;2291:136::-;2349:7;2376:43;2380:1;2383;2376:43;;;;;;;;;;;;;;;;;:3;:43::i;2104:179::-;2162:7;;2194:5;2198:1;2194;:5;:::i;:::-;2182:17;;2223:1;2218;:6;;2210:46;;;;-1:-1:-1;;;2210:46:0;;13965:2:1;2210:46:0;;;13947:21:1;14004:2;13984:18;;;13977:30;14043:29;14023:18;;;14016:57;14090:18;;2210:46:0;13763:351:1;14115:211:0;14168:19;14190:10;:8;:10::i;:::-;14168:32;-1:-1:-1;14211:13:0;14227:22;:5;14168:32;14227:9;:22::i;:::-;14301:4;14285:22;;;;:7;:22;;;;;;14211:38;;-1:-1:-1;14285:33:0;;14211:38;14285:26;:33::i;:::-;14276:4;14260:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;14115:211:0:o;14334:147::-;14412:7;;:17;;14424:4;14412:11;:17::i;:::-;14402:7;:27;14453:10;;:20;;14468:4;14453:14;:20::i;:::-;14440:10;:33;-1:-1:-1;;14334:147:0:o;15149:469::-;15318:7;;;;15412:30;15438:3;15412:21;:7;15424:8;15412:11;:21::i;:::-;:25;;:30::i;:::-;15397:45;-1:-1:-1;15453:13:0;15469:28;15493:3;15469:19;:7;15481:6;15469:11;:19::i;:28::-;15453:44;-1:-1:-1;15508:23:0;15534:28;15453:44;15534:17;:7;15546:4;15534:11;:17::i;:::-;:21;;:28::i;:::-;15508:54;15598:4;;-1:-1:-1;15604:5:0;;-1:-1:-1;15149:469:0;;-1:-1:-1;;;;;15149:469:0:o;15626:534::-;15820:7;;;;15917:24;:7;15929:11;15917;:24::i;:::-;15899:42;-1:-1:-1;15952:12:0;15967:21;:4;15976:11;15967:8;:21::i;:::-;15952:36;-1:-1:-1;15999:13:0;16015:22;:5;16025:11;16015:9;:22::i;:::-;15999:38;-1:-1:-1;16048:23:0;16074:28;15999:38;16074:17;:7;16086:4;16074:11;:17::i;:28::-;16121:7;;;;-1:-1:-1;16147:4:0;;-1:-1:-1;15626:534:0;;-1:-1:-1;;;;;;;15626:534:0:o;2667:246::-;2725:7;2749:1;2754;2749:6;2745:47;;-1:-1:-1;2779:1:0;2772:8;;2745:47;2802:9;2814:5;2818:1;2814;:5;:::i;:::-;2802:17;-1:-1:-1;2847:1:0;2838:5;2842:1;2802:17;2838:5;:::i;:::-;:10;2830:56;;;;-1:-1:-1;;;2830:56:0;;14494:2:1;2830:56:0;;;14476:21:1;14533:2;14513:18;;;14506:30;14572:34;14552:18;;;14545:62;-1:-1:-1;;;14623:18:1;;;14616:31;14664:19;;2830:56:0;14292:397:1;14:127;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:131;-1:-1:-1;;;;;221:31:1;;211:42;;201:70;;267:1;264;257:12;282:134;350:20;;379:31;350:20;379:31;:::i;:::-;282:134;;;:::o;421:1121::-;505:6;536:2;579;567:9;558:7;554:23;550:32;547:52;;;595:1;592;585:12;547:52;635:9;622:23;664:18;705:2;697:6;694:14;691:34;;;721:1;718;711:12;691:34;759:6;748:9;744:22;734:32;;804:7;797:4;793:2;789:13;785:27;775:55;;826:1;823;816:12;775:55;862:2;849:16;884:2;880;877:10;874:36;;;890:18;;:::i;:::-;936:2;933:1;929:10;968:2;962:9;1031:2;1027:7;1022:2;1018;1014:11;1010:25;1002:6;998:38;1086:6;1074:10;1071:22;1066:2;1054:10;1051:18;1048:46;1045:72;;;1097:18;;:::i;:::-;1133:2;1126:22;1183:18;;;1217:15;;;;-1:-1:-1;1259:11:1;;;1255:20;;;1287:19;;;1284:39;;;1319:1;1316;1309:12;1284:39;1343:11;;;;1363:148;1379:6;1374:3;1371:15;1363:148;;;1445:23;1464:3;1445:23;:::i;:::-;1433:36;;1396:12;;;;1489;;;;1363:148;;;1530:6;421:1121;-1:-1:-1;;;;;;;;421:1121:1:o;1547:597::-;1659:4;1688:2;1717;1706:9;1699:21;1749:6;1743:13;1792:6;1787:2;1776:9;1772:18;1765:34;1817:1;1827:140;1841:6;1838:1;1835:13;1827:140;;;1936:14;;;1932:23;;1926:30;1902:17;;;1921:2;1898:26;1891:66;1856:10;;1827:140;;;1985:6;1982:1;1979:13;1976:91;;;2055:1;2050:2;2041:6;2030:9;2026:22;2022:31;2015:42;1976:91;-1:-1:-1;2128:2:1;2107:15;-1:-1:-1;;2103:29:1;2088:45;;;;2135:2;2084:54;;1547:597;-1:-1:-1;;;1547:597:1:o;2149:315::-;2217:6;2225;2278:2;2266:9;2257:7;2253:23;2249:32;2246:52;;;2294:1;2291;2284:12;2246:52;2333:9;2320:23;2352:31;2377:5;2352:31;:::i;:::-;2402:5;2454:2;2439:18;;;;2426:32;;-1:-1:-1;;;2149:315:1:o;3077:456::-;3154:6;3162;3170;3223:2;3211:9;3202:7;3198:23;3194:32;3191:52;;;3239:1;3236;3229:12;3191:52;3278:9;3265:23;3297:31;3322:5;3297:31;:::i;:::-;3347:5;-1:-1:-1;3404:2:1;3389:18;;3376:32;3417:33;3376:32;3417:33;:::i;:::-;3077:456;;3469:7;;-1:-1:-1;;;3523:2:1;3508:18;;;;3495:32;;3077:456::o;3935:367::-;3998:8;4008:6;4062:3;4055:4;4047:6;4043:17;4039:27;4029:55;;4080:1;4077;4070:12;4029:55;-1:-1:-1;4103:20:1;;4146:18;4135:30;;4132:50;;;4178:1;4175;4168:12;4132:50;4215:4;4207:6;4203:17;4191:29;;4275:3;4268:4;4258:6;4255:1;4251:14;4243:6;4239:27;4235:38;4232:47;4229:67;;;4292:1;4289;4282:12;4229:67;3935:367;;;;;:::o;4307:437::-;4393:6;4401;4454:2;4442:9;4433:7;4429:23;4425:32;4422:52;;;4470:1;4467;4460:12;4422:52;4510:9;4497:23;4543:18;4535:6;4532:30;4529:50;;;4575:1;4572;4565:12;4529:50;4614:70;4676:7;4667:6;4656:9;4652:22;4614:70;:::i;:::-;4703:8;;4588:96;;-1:-1:-1;4307:437:1;-1:-1:-1;;;;4307:437:1:o;4749:247::-;4808:6;4861:2;4849:9;4840:7;4836:23;4832:32;4829:52;;;4877:1;4874;4867:12;4829:52;4916:9;4903:23;4935:31;4960:5;4935:31;:::i;5001:160::-;5066:20;;5122:13;;5115:21;5105:32;;5095:60;;5151:1;5148;5141:12;5166:180;5222:6;5275:2;5263:9;5254:7;5250:23;5246:32;5243:52;;;5291:1;5288;5281:12;5243:52;5314:26;5330:9;5314:26;:::i;5351:180::-;5410:6;5463:2;5451:9;5442:7;5438:23;5434:32;5431:52;;;5479:1;5476;5469:12;5431:52;-1:-1:-1;5502:23:1;;5351:180;-1:-1:-1;5351:180:1:o;5536:385::-;5622:6;5630;5638;5646;5699:3;5687:9;5678:7;5674:23;5670:33;5667:53;;;5716:1;5713;5706:12;5667:53;-1:-1:-1;;5739:23:1;;;5809:2;5794:18;;5781:32;;-1:-1:-1;5860:2:1;5845:18;;5832:32;;5911:2;5896:18;5883:32;;-1:-1:-1;5536:385:1;-1:-1:-1;5536:385:1:o;5926:505::-;6018:6;6026;6034;6087:2;6075:9;6066:7;6062:23;6058:32;6055:52;;;6103:1;6100;6093:12;6055:52;6143:9;6130:23;6176:18;6168:6;6165:30;6162:50;;;6208:1;6205;6198:12;6162:50;6247:70;6309:7;6300:6;6289:9;6285:22;6247:70;:::i;:::-;6336:8;;-1:-1:-1;6221:96:1;-1:-1:-1;6390:35:1;;-1:-1:-1;6421:2:1;6406:18;;6390:35;:::i;:::-;6380:45;;5926:505;;;;;:::o;6436:388::-;6504:6;6512;6565:2;6553:9;6544:7;6540:23;6536:32;6533:52;;;6581:1;6578;6571:12;6533:52;6620:9;6607:23;6639:31;6664:5;6639:31;:::i;:::-;6689:5;-1:-1:-1;6746:2:1;6731:18;;6718:32;6759:33;6718:32;6759:33;:::i;:::-;6811:7;6801:17;;;6436:388;;;;;:::o;6829:356::-;7031:2;7013:21;;;7050:18;;;7043:30;7109:34;7104:2;7089:18;;7082:62;7176:2;7161:18;;6829:356::o;7190:127::-;7251:10;7246:3;7242:20;7239:1;7232:31;7282:4;7279:1;7272:15;7306:4;7303:1;7296:15;7322:127;7383:10;7378:3;7374:20;7371:1;7364:31;7414:4;7411:1;7404:15;7438:4;7435:1;7428:15;7454:135;7493:3;7514:17;;;7511:43;;7534:18;;:::i;:::-;-1:-1:-1;7581:1:1;7570:13;;7454:135::o;11222:128::-;11262:3;11293:1;11289:6;11286:1;11283:13;11280:39;;;11299:18;;:::i;:::-;-1:-1:-1;11335:9:1;;11222:128::o;11759:125::-;11799:4;11827:1;11824;11821:8;11818:34;;;11832:18;;:::i;:::-;-1:-1:-1;11869:9:1;;11759:125::o;12300:251::-;12370:6;12423:2;12411:9;12402:7;12398:23;12394:32;12391:52;;;12439:1;12436;12429:12;12391:52;12471:9;12465:16;12490:31;12515:5;12490:31;:::i;12556:980::-;12818:4;12866:3;12855:9;12851:19;12897:6;12886:9;12879:25;12923:2;12961:6;12956:2;12945:9;12941:18;12934:34;13004:3;12999:2;12988:9;12984:18;12977:31;13028:6;13063;13057:13;13094:6;13086;13079:22;13132:3;13121:9;13117:19;13110:26;;13171:2;13163:6;13159:15;13145:29;;13192:1;13202:195;13216:6;13213:1;13210:13;13202:195;;;13281:13;;-1:-1:-1;;;;;13277:39:1;13265:52;;13372:15;;;;13337:12;;;;13313:1;13231:9;13202:195;;;-1:-1:-1;;;;;;;13453:32:1;;;;13448:2;13433:18;;13426:60;-1:-1:-1;;;13517:3:1;13502:19;13495:35;13414:3;12556:980;-1:-1:-1;;;12556:980:1:o;13541:217::-;13581:1;13607;13597:132;;13651:10;13646:3;13642:20;13639:1;13632:31;13686:4;13683:1;13676:15;13714:4;13711:1;13704:15;13597:132;-1:-1:-1;13743:9:1;;13541:217::o;14119:168::-;14159:7;14225:1;14221;14217:6;14213:14;14210:1;14207:21;14202:1;14195:9;14188:17;14184:45;14181:71;;;14232:18;;:::i;:::-;-1:-1:-1;14272:9:1;;14119:168::o

Swarm Source

ipfs://233bf88bca895fa5099328bb3333725533d22647226de89636e87b9b428d56e6

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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