ETH Price: $2,630.48 (+1.75%)

Contract

0x42AfF683884B1Eaa174793733A1F022b386Cd10b
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve196737662024-04-17 7:41:23126 days ago1713339683IN
0x42AfF683...b386Cd10b
0 ETH0.0007396915.89758167
Approve196709592024-04-16 22:16:35127 days ago1713305795IN
0x42AfF683...b386Cd10b
0 ETH0.000422819.09881746
Approve195127982024-03-25 16:54:35149 days ago1711385675IN
0x42AfF683...b386Cd10b
0 ETH0.0014371530.92722072
Approve195126782024-03-25 16:30:11149 days ago1711384211IN
0x42AfF683...b386Cd10b
0 ETH0.0016368935.22560301
Approve195126122024-03-25 16:16:59149 days ago1711383419IN
0x42AfF683...b386Cd10b
0 ETH0.0020032943.08803214
Approve195125992024-03-25 16:14:23149 days ago1711383263IN
0x42AfF683...b386Cd10b
0 ETH0.002073144.91417737
Approve195125932024-03-25 16:13:11149 days ago1711383191IN
0x42AfF683...b386Cd10b
0 ETH0.0022267647.85749988
Approve195125922024-03-25 16:12:59149 days ago1711383179IN
0x42AfF683...b386Cd10b
0 ETH0.00242652.1395855
Transfer195125892024-03-25 16:11:59149 days ago1711383119IN
0x42AfF683...b386Cd10b
0 ETH0.0040547345.4867239
Approve195125882024-03-25 16:11:47149 days ago1711383107IN
0x42AfF683...b386Cd10b
0 ETH0.0026272256.4641948
Approve195125812024-03-25 16:10:23149 days ago1711383023IN
0x42AfF683...b386Cd10b
0 ETH0.0025547754.90710018
Approve195125652024-03-25 16:07:11149 days ago1711382831IN
0x42AfF683...b386Cd10b
0 ETH0.0028095260.38230189
Approve195125632024-03-25 16:06:47149 days ago1711382807IN
0x42AfF683...b386Cd10b
0 ETH0.0025677455.18585782
Approve195125622024-03-25 16:06:35149 days ago1711382795IN
0x42AfF683...b386Cd10b
0 ETH0.0023099449.64517199
Approve195125602024-03-25 16:06:11149 days ago1711382771IN
0x42AfF683...b386Cd10b
0 ETH0.0023550250.95591614
Approve195125582024-03-25 16:05:47149 days ago1711382747IN
0x42AfF683...b386Cd10b
0 ETH0.0024930853.5813831
Transfer195125552024-03-25 16:05:11149 days ago1711382711IN
0x42AfF683...b386Cd10b
0 ETH0.0043878449.23026389
Approve195125532024-03-25 16:04:23149 days ago1711382663IN
0x42AfF683...b386Cd10b
0 ETH0.0023350.14095602
Approve195125532024-03-25 16:04:23149 days ago1711382663IN
0x42AfF683...b386Cd10b
0 ETH0.0023350.14095602
Approve195125532024-03-25 16:04:23149 days ago1711382663IN
0x42AfF683...b386Cd10b
0 ETH0.0024703353.09245602
Approve195125532024-03-25 16:04:23149 days ago1711382663IN
0x42AfF683...b386Cd10b
0 ETH0.0024703353.09245602
Approve195125522024-03-25 16:04:11149 days ago1711382651IN
0x42AfF683...b386Cd10b
0 ETH0.0021680246.97068736
Approve195125492024-03-25 16:03:35149 days ago1711382615IN
0x42AfF683...b386Cd10b
0 ETH0.0023110249.73265992
Transfer195125492024-03-25 16:03:35149 days ago1711382615IN
0x42AfF683...b386Cd10b
0 ETH0.0111571651.08964608
Approve195125482024-03-25 16:03:23149 days ago1711382603IN
0x42AfF683...b386Cd10b
0 ETH0.0042371191.064022
View all transactions

Latest 2 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
195125492024-03-25 16:03:35149 days ago1711382615
0x42AfF683...b386Cd10b
15.66539625 ETH
195125492024-03-25 16:03:35149 days ago1711382615
0x42AfF683...b386Cd10b
14.66539625 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TradeAi

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-03-25
*/

// SPDX-License-Identifier: Unlicensed
/**
    Website: https://tradeai.bot/
    Documentation: https://docs.tradeai.bot/
    Twitter: https://twitter.com/TradeAI_Tao
    Telegram: https://t.me/TradeAIonTao
    Dapp: https://app.tradeai.bot/
**/
pragma solidity 0.8.24;

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 TradeAi is Context, IERC20, Ownable {
    using SafeMath for uint256;
    uint8 private constant _decimals = 9;
    string private constant _name = "Trade AI";
    string private constant _symbol = "wTAI";
    mapping(address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    IUniswapV2Router02 private uniswapV2Router;
    address public uniswapV2Pair;
    uint256 private constant MAX = ~uint256(0);
    uint256 public constant _tTotal = 100_000_000 * 10 ** _decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 30;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 30;

    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

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

    address payable private _marketingAddress;

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

    uint256 public _maxWalletSize = _tTotal / 200; // 0.5% at launch
    uint256 public _swapTokensAtAmount = _tTotal / 4000;

    bool private tradingOpen = false;

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {

        _rOwned[_msgSender()] = _rTotal;
        _marketingAddress = payable(msg.sender);
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);//
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_marketingAddress] = true;
        _isExcludedFromFee[address(_uniswapV2Router)] = 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 {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) private {
        if (!_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
            require(tradingOpen, "TOKEN: This account cannot send tokens until trading is enabled");

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

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

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

            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 launch() public onlyOwner {
        tradingOpen = true;
    }

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

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

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

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

    function removeLimits() external onlyOwner {
        _taxFeeOnBuy = 4;
        _redisFeeOnBuy = 0;
        _taxFeeOnSell = 4;
        _redisFeeOnSell = 0;
    }

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

    function setFees(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
        require(redisFeeOnBuy+taxFeeOnBuy <= 30 &&redisFeeOnSell+taxFeeOnSell <= 30, "Max 30%");
    }
}

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":"_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":[],"name":"_tTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":"launch","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":[],"name":"removeLimits","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":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"updateMinSwapTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a620004a2565b62000022906305f5e100620004b9565b6200002f905f19620004e7565b6200003c905f19620004fd565b6008555f600a818155601e600b819055600c839055600d819055600e839055600f8190556010929092556011919091556012805461ffff60a01b1916600160a81b17905560c8906200009190600990620004a2565b620000a1906305f5e100620004b9565b620000ad919062000513565b601355610fa0620000c16009600a620004a2565b620000d1906305f5e100620004b9565b620000dd919062000513565b6014556015805460ff19169055348015620000f6575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600854335f8181526003602090815260409182902093909355601280546001600160a01b0319908116909317905560068054737a250d5630b4cf539739df2c5dacb4c659f2488d931683179055805163c45a015560e01b815290519192839263c45a01559260048082019392918290030181865afa158015620001bc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001e2919062000529565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200022e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000254919062000529565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156200029f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002c5919062000529565b600780546001600160a01b0319166001600160a01b039283161790555f80548216815260026020526040808220805460ff1990811660019081179092553084528284208054821683179055601254851684528284208054821683179055938516835291208054909216179055336001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200036b6009600a620004a2565b6200037b906305f5e100620004b9565b60405190815260200160405180910390a35062000551565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003e757815f1904821115620003cb57620003cb62000393565b80851615620003d957918102915b93841c9390800290620003ac565b509250929050565b5f82620003ff575060016200049c565b816200040d57505f6200049c565b8160018114620004265760028114620004315762000451565b60019150506200049c565b60ff84111562000445576200044562000393565b50506001821b6200049c565b5060208310610133831016604e8410600b841016171562000476575081810a6200049c565b620004828383620003a7565b805f190482111562000498576200049862000393565b0290505b92915050565b5f620004b260ff841683620003ef565b9392505050565b80820281158282048414176200049c576200049c62000393565b634e487b7160e01b5f52601260045260245ffd5b5f82620004f857620004f8620004d3565b500690565b818103818111156200049c576200049c62000393565b5f82620005245762000524620004d3565b500490565b5f602082840312156200053a575f80fd5b81516001600160a01b0381168114620004b2575f80fd5b611831806200055f5f395ff3fe60806040526004361061013f575f3560e01c8063715018a6116100b3578063af465a271161006d578063af465a271461037a578063c3c8cd801461038e578063c492f046146103a2578063dd62ed3e146103c1578063ea1644d514610405578063f2fde38b14610424575f80fd5b8063715018a6146102d6578063751039fc146102ea5780638da5cb5b146102fe5780638f9a55c01461031a57806395d89b411461032f578063a9059cbb1461035b575f80fd5b80632cb32354116101045780632cb32354146102125780632fd689e314610231578063313ce5671461024657806349bd5a5e146102615780636fcba3771461029857806370a08231146102b7575f80fd5b806301339c211461014a57806306fdde0314610160578063095ea7b3146101a257806318160ddd146101d157806323b872dd146101f3575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5061015e610443565b005b34801561016b575f80fd5b50604080518082019091526008815267547261646520414960c01b60208201525b604051610199919061137a565b60405180910390f35b3480156101ad575f80fd5b506101c16101bc3660046113da565b610484565b6040519015158152602001610199565b3480156101dc575f80fd5b506101e561049a565b604051908152602001610199565b3480156101fe575f80fd5b506101c161020d366004611404565b6104ba565b34801561021d575f80fd5b5061015e61022c366004611442565b610521565b34801561023c575f80fd5b506101e560145481565b348015610251575f80fd5b5060405160098152602001610199565b34801561026c575f80fd5b50600754610280906001600160a01b031681565b6040516001600160a01b039091168152602001610199565b3480156102a3575f80fd5b5061015e6102b2366004611459565b61054f565b3480156102c2575f80fd5b506101e56102d1366004611488565b6105ec565b3480156102e1575f80fd5b5061015e61060d565b3480156102f5575f80fd5b5061015e61067e565b348015610309575f80fd5b505f546001600160a01b0316610280565b348015610325575f80fd5b506101e560135481565b34801561033a575f80fd5b506040805180820190915260048152637754414960e01b602082015261018c565b348015610366575f80fd5b506101c16103753660046113da565b6106bf565b348015610385575f80fd5b506101e56106cb565b348015610399575f80fd5b5061015e6106e8565b3480156103ad575f80fd5b5061015e6103bc3660046114a3565b61071f565b3480156103cc575f80fd5b506101e56103db366004611526565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b348015610410575f80fd5b5061015e61041f366004611442565b6107ac565b34801561042f575f80fd5b5061015e61043e366004611488565b6107da565b5f546001600160a01b031633146104755760405162461bcd60e51b815260040161046c9061155d565b60405180910390fd5b6015805460ff19166001179055565b5f6104903384846108c1565b5060015b92915050565b5f6104a76009600a611686565b6104b5906305f5e100611694565b905090565b5f6104c6848484610921565b6105178433610512856040518060600160405280602881526020016117d4602891396001600160a01b038a165f9081526005602090815260408083203384529091529020549190610c40565b6108c1565b5060019392505050565b5f546001600160a01b0316331461054a5760405162461bcd60e51b815260040161046c9061155d565b601455565b5f546001600160a01b031633146105785760405162461bcd60e51b815260040161046c9061155d565b600a849055600c839055600b829055600d819055601e61059883866116ab565b111580156105b05750601e6105ad82856116ab565b11155b6105e65760405162461bcd60e51b81526020600482015260076024820152664d61782033302560c81b604482015260640161046c565b50505050565b6001600160a01b0381165f9081526003602052604081205461049490610c78565b5f546001600160a01b031633146106365760405162461bcd60e51b815260040161046c9061155d565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106a75760405162461bcd60e51b815260040161046c9061155d565b6004600b8190555f600a819055600d91909155600c55565b5f610490338484610921565b6106d76009600a611686565b6106e5906305f5e100611694565b81565b6012546001600160a01b0316336001600160a01b031614610707575f80fd5b5f610711306105ec565b905061071c81610cfa565b50565b5f546001600160a01b031633146107485760405162461bcd60e51b815260040161046c9061155d565b5f5b828110156105e6578160025f868685818110610768576107686116be565b905060200201602081019061077d9190611488565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905560010161074a565b5f546001600160a01b031633146107d55760405162461bcd60e51b815260040161046c9061155d565b601355565b5f546001600160a01b031633146108035760405162461bcd60e51b815260040161046c9061155d565b6001600160a01b0381166108685760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161046c565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038381165f8181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383165f9081526002602052604090205460ff1615801561096157506001600160a01b0382165f9081526002602052604090205460ff16155b15610b3c5760155460ff166109de5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161046c565b6007546001600160a01b03838116911614610a275760135481610a00846105ec565b610a0a91906116ab565b10610a275760405162461bcd60e51b815260040161046c906116d2565b6007546001600160a01b0390811690831603610a7757610a496009600a611686565b610a57906305f5e100611694565b60135410610a775760405162461bcd60e51b815260040161046c906116d2565b5f610a81306105ec565b60145490915081108015908190610aa25750601254600160a01b900460ff16155b8015610abc57506007546001600160a01b03868116911614155b8015610ad15750601254600160a81b900460ff165b8015610af557506001600160a01b0385165f9081526002602052604090205460ff16155b8015610b1957506001600160a01b0384165f9081526002602052604090205460ff16155b15610b3957610b2782610cfa565b478015610b3757610b3747610e6a565b505b50505b6001600160a01b0383165f9081526002602052604090205460019060ff1680610b7c57506001600160a01b0383165f9081526002602052604090205460ff165b80610bae57506007546001600160a01b03858116911614801590610bae57506007546001600160a01b03848116911614155b15610bba57505f610c34565b6007546001600160a01b038581169116148015610be557506006546001600160a01b03848116911614155b15610bf757600a54600e55600b54600f555b6007546001600160a01b038481169116148015610c2257506006546001600160a01b03858116911614155b15610c3457600c54600e55600d54600f555b6105e684848484610ea5565b5f8184841115610c635760405162461bcd60e51b815260040161046c919061137a565b505f610c6f8486611715565b95945050505050565b5f600854821115610cde5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161046c565b5f610ce7610ed3565b9050610cf38382610ef4565b9392505050565b6012805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610d4057610d406116be565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610d97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dbb9190611728565b81600181518110610dce57610dce6116be565b6001600160a01b039283166020918202929092010152600654610df491309116846108c1565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790610e2c9085905f90869030904290600401611743565b5f604051808303815f87803b158015610e43575f80fd5b505af1158015610e55573d5f803e3d5ffd5b50506012805460ff60a01b1916905550505050565b6012546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610ea1573d5f803e3d5ffd5b5050565b80610eb257610eb2610f35565b610ebd848484610f62565b806105e6576105e6601054600e55601154600f55565b5f805f610ede611053565b9092509050610eed8282610ef4565b9250505090565b5f610cf383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506110d4565b600e54158015610f455750600f54155b15610f4c57565b600e8054601055600f80546011555f9182905555565b5f805f805f80610f7187611100565b6001600160a01b038f165f90815260036020526040902054959b50939950919750955093509150610fa29087611155565b6001600160a01b03808b165f9081526003602052604080822093909355908a1681522054610fd09086611196565b6001600160a01b0389165f90815260036020526040902055610ff1816111f4565b610ffb848361123a565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161104091815260200190565b60405180910390a3505050505050505050565b6008545f908190816110676009600a611686565b611075906305f5e100611694565b905061109d6110866009600a611686565b611094906305f5e100611694565b60085490610ef4565b8210156110cb576008546110b36009600a611686565b6110c1906305f5e100611694565b9350935050509091565b90939092509050565b5f81836110f45760405162461bcd60e51b815260040161046c919061137a565b505f610c6f84866117b4565b5f805f805f805f805f6111188a600e54600f5461125e565b9250925092505f611127610ed3565b90505f805f6111388e8787876112b0565b919e509c509a509598509396509194505050505091939550919395565b5f610cf383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c40565b5f806111a283856116ab565b905083811015610cf35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161046c565b5f6111fd610ed3565b90505f61120a83836112fc565b305f908152600360205260409020549091506112269082611196565b305f90815260036020526040902055505050565b6008546112479083611155565b6008556009546112579082611196565b6009555050565b5f808080611277606461127189896112fc565b90610ef4565b90505f61128960646112718a896112fc565b90505f6112a08261129a8b86611155565b90611155565b9992985090965090945050505050565b5f8080806112be88866112fc565b90505f6112cb88876112fc565b90505f6112d888886112fc565b90505f6112e98261129a8686611155565b939b939a50919850919650505050505050565b5f825f0361130b57505f610494565b5f6113168385611694565b90508261132385836117b4565b14610cf35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161046c565b5f602080835283518060208501525f5b818110156113a65785810183015185820160400152820161138a565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461071c575f80fd5b5f80604083850312156113eb575f80fd5b82356113f6816113c6565b946020939093013593505050565b5f805f60608486031215611416575f80fd5b8335611421816113c6565b92506020840135611431816113c6565b929592945050506040919091013590565b5f60208284031215611452575f80fd5b5035919050565b5f805f806080858703121561146c575f80fd5b5050823594602084013594506040840135936060013592509050565b5f60208284031215611498575f80fd5b8135610cf3816113c6565b5f805f604084860312156114b5575f80fd5b833567ffffffffffffffff808211156114cc575f80fd5b818601915086601f8301126114df575f80fd5b8135818111156114ed575f80fd5b8760208260051b8501011115611501575f80fd5b60209283019550935050840135801515811461151b575f80fd5b809150509250925092565b5f8060408385031215611537575f80fd5b8235611542816113c6565b91506020830135611552816113c6565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156115e057815f19048211156115c6576115c6611592565b808516156115d357918102915b93841c93908002906115ab565b509250929050565b5f826115f657506001610494565b8161160257505f610494565b816001811461161857600281146116225761163e565b6001915050610494565b60ff84111561163357611633611592565b50506001821b610494565b5060208310610133831016604e8410600b8410161715611661575081810a610494565b61166b83836115a6565b805f190482111561167e5761167e611592565b029392505050565b5f610cf360ff8416836115e8565b808202811582820484141761049457610494611592565b8082018082111561049457610494611592565b634e487b7160e01b5f52603260045260245ffd5b60208082526023908201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696040820152627a652160e81b606082015260800190565b8181038181111561049457610494611592565b5f60208284031215611738575f80fd5b8151610cf3816113c6565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156117935784516001600160a01b03168352938301939183019160010161176e565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826117ce57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209348b19241c27a6f63360ccb7b727230ee879c993ef9e0f4453e16394d33e90464736f6c63430008180033

Deployed Bytecode

0x60806040526004361061013f575f3560e01c8063715018a6116100b3578063af465a271161006d578063af465a271461037a578063c3c8cd801461038e578063c492f046146103a2578063dd62ed3e146103c1578063ea1644d514610405578063f2fde38b14610424575f80fd5b8063715018a6146102d6578063751039fc146102ea5780638da5cb5b146102fe5780638f9a55c01461031a57806395d89b411461032f578063a9059cbb1461035b575f80fd5b80632cb32354116101045780632cb32354146102125780632fd689e314610231578063313ce5671461024657806349bd5a5e146102615780636fcba3771461029857806370a08231146102b7575f80fd5b806301339c211461014a57806306fdde0314610160578063095ea7b3146101a257806318160ddd146101d157806323b872dd146101f3575f80fd5b3661014657005b5f80fd5b348015610155575f80fd5b5061015e610443565b005b34801561016b575f80fd5b50604080518082019091526008815267547261646520414960c01b60208201525b604051610199919061137a565b60405180910390f35b3480156101ad575f80fd5b506101c16101bc3660046113da565b610484565b6040519015158152602001610199565b3480156101dc575f80fd5b506101e561049a565b604051908152602001610199565b3480156101fe575f80fd5b506101c161020d366004611404565b6104ba565b34801561021d575f80fd5b5061015e61022c366004611442565b610521565b34801561023c575f80fd5b506101e560145481565b348015610251575f80fd5b5060405160098152602001610199565b34801561026c575f80fd5b50600754610280906001600160a01b031681565b6040516001600160a01b039091168152602001610199565b3480156102a3575f80fd5b5061015e6102b2366004611459565b61054f565b3480156102c2575f80fd5b506101e56102d1366004611488565b6105ec565b3480156102e1575f80fd5b5061015e61060d565b3480156102f5575f80fd5b5061015e61067e565b348015610309575f80fd5b505f546001600160a01b0316610280565b348015610325575f80fd5b506101e560135481565b34801561033a575f80fd5b506040805180820190915260048152637754414960e01b602082015261018c565b348015610366575f80fd5b506101c16103753660046113da565b6106bf565b348015610385575f80fd5b506101e56106cb565b348015610399575f80fd5b5061015e6106e8565b3480156103ad575f80fd5b5061015e6103bc3660046114a3565b61071f565b3480156103cc575f80fd5b506101e56103db366004611526565b6001600160a01b039182165f90815260056020908152604080832093909416825291909152205490565b348015610410575f80fd5b5061015e61041f366004611442565b6107ac565b34801561042f575f80fd5b5061015e61043e366004611488565b6107da565b5f546001600160a01b031633146104755760405162461bcd60e51b815260040161046c9061155d565b60405180910390fd5b6015805460ff19166001179055565b5f6104903384846108c1565b5060015b92915050565b5f6104a76009600a611686565b6104b5906305f5e100611694565b905090565b5f6104c6848484610921565b6105178433610512856040518060600160405280602881526020016117d4602891396001600160a01b038a165f9081526005602090815260408083203384529091529020549190610c40565b6108c1565b5060019392505050565b5f546001600160a01b0316331461054a5760405162461bcd60e51b815260040161046c9061155d565b601455565b5f546001600160a01b031633146105785760405162461bcd60e51b815260040161046c9061155d565b600a849055600c839055600b829055600d819055601e61059883866116ab565b111580156105b05750601e6105ad82856116ab565b11155b6105e65760405162461bcd60e51b81526020600482015260076024820152664d61782033302560c81b604482015260640161046c565b50505050565b6001600160a01b0381165f9081526003602052604081205461049490610c78565b5f546001600160a01b031633146106365760405162461bcd60e51b815260040161046c9061155d565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f546001600160a01b031633146106a75760405162461bcd60e51b815260040161046c9061155d565b6004600b8190555f600a819055600d91909155600c55565b5f610490338484610921565b6106d76009600a611686565b6106e5906305f5e100611694565b81565b6012546001600160a01b0316336001600160a01b031614610707575f80fd5b5f610711306105ec565b905061071c81610cfa565b50565b5f546001600160a01b031633146107485760405162461bcd60e51b815260040161046c9061155d565b5f5b828110156105e6578160025f868685818110610768576107686116be565b905060200201602081019061077d9190611488565b6001600160a01b0316815260208101919091526040015f20805460ff191691151591909117905560010161074a565b5f546001600160a01b031633146107d55760405162461bcd60e51b815260040161046c9061155d565b601355565b5f546001600160a01b031633146108035760405162461bcd60e51b815260040161046c9061155d565b6001600160a01b0381166108685760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161046c565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038381165f8181526005602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383165f9081526002602052604090205460ff1615801561096157506001600160a01b0382165f9081526002602052604090205460ff16155b15610b3c5760155460ff166109de5760405162461bcd60e51b815260206004820152603f60248201527f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060448201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400606482015260840161046c565b6007546001600160a01b03838116911614610a275760135481610a00846105ec565b610a0a91906116ab565b10610a275760405162461bcd60e51b815260040161046c906116d2565b6007546001600160a01b0390811690831603610a7757610a496009600a611686565b610a57906305f5e100611694565b60135410610a775760405162461bcd60e51b815260040161046c906116d2565b5f610a81306105ec565b60145490915081108015908190610aa25750601254600160a01b900460ff16155b8015610abc57506007546001600160a01b03868116911614155b8015610ad15750601254600160a81b900460ff165b8015610af557506001600160a01b0385165f9081526002602052604090205460ff16155b8015610b1957506001600160a01b0384165f9081526002602052604090205460ff16155b15610b3957610b2782610cfa565b478015610b3757610b3747610e6a565b505b50505b6001600160a01b0383165f9081526002602052604090205460019060ff1680610b7c57506001600160a01b0383165f9081526002602052604090205460ff165b80610bae57506007546001600160a01b03858116911614801590610bae57506007546001600160a01b03848116911614155b15610bba57505f610c34565b6007546001600160a01b038581169116148015610be557506006546001600160a01b03848116911614155b15610bf757600a54600e55600b54600f555b6007546001600160a01b038481169116148015610c2257506006546001600160a01b03858116911614155b15610c3457600c54600e55600d54600f555b6105e684848484610ea5565b5f8184841115610c635760405162461bcd60e51b815260040161046c919061137a565b505f610c6f8486611715565b95945050505050565b5f600854821115610cde5760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b606482015260840161046c565b5f610ce7610ed3565b9050610cf38382610ef4565b9392505050565b6012805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f81518110610d4057610d406116be565b6001600160a01b03928316602091820292909201810191909152600654604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015610d97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610dbb9190611728565b81600181518110610dce57610dce6116be565b6001600160a01b039283166020918202929092010152600654610df491309116846108c1565b60065460405163791ac94760e01b81526001600160a01b039091169063791ac94790610e2c9085905f90869030904290600401611743565b5f604051808303815f87803b158015610e43575f80fd5b505af1158015610e55573d5f803e3d5ffd5b50506012805460ff60a01b1916905550505050565b6012546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610ea1573d5f803e3d5ffd5b5050565b80610eb257610eb2610f35565b610ebd848484610f62565b806105e6576105e6601054600e55601154600f55565b5f805f610ede611053565b9092509050610eed8282610ef4565b9250505090565b5f610cf383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506110d4565b600e54158015610f455750600f54155b15610f4c57565b600e8054601055600f80546011555f9182905555565b5f805f805f80610f7187611100565b6001600160a01b038f165f90815260036020526040902054959b50939950919750955093509150610fa29087611155565b6001600160a01b03808b165f9081526003602052604080822093909355908a1681522054610fd09086611196565b6001600160a01b0389165f90815260036020526040902055610ff1816111f4565b610ffb848361123a565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161104091815260200190565b60405180910390a3505050505050505050565b6008545f908190816110676009600a611686565b611075906305f5e100611694565b905061109d6110866009600a611686565b611094906305f5e100611694565b60085490610ef4565b8210156110cb576008546110b36009600a611686565b6110c1906305f5e100611694565b9350935050509091565b90939092509050565b5f81836110f45760405162461bcd60e51b815260040161046c919061137a565b505f610c6f84866117b4565b5f805f805f805f805f6111188a600e54600f5461125e565b9250925092505f611127610ed3565b90505f805f6111388e8787876112b0565b919e509c509a509598509396509194505050505091939550919395565b5f610cf383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c40565b5f806111a283856116ab565b905083811015610cf35760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640161046c565b5f6111fd610ed3565b90505f61120a83836112fc565b305f908152600360205260409020549091506112269082611196565b305f90815260036020526040902055505050565b6008546112479083611155565b6008556009546112579082611196565b6009555050565b5f808080611277606461127189896112fc565b90610ef4565b90505f61128960646112718a896112fc565b90505f6112a08261129a8b86611155565b90611155565b9992985090965090945050505050565b5f8080806112be88866112fc565b90505f6112cb88876112fc565b90505f6112d888886112fc565b90505f6112e98261129a8686611155565b939b939a50919850919650505050505050565b5f825f0361130b57505f610494565b5f6113168385611694565b90508261132385836117b4565b14610cf35760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b606482015260840161046c565b5f602080835283518060208501525f5b818110156113a65785810183015185820160400152820161138a565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b038116811461071c575f80fd5b5f80604083850312156113eb575f80fd5b82356113f6816113c6565b946020939093013593505050565b5f805f60608486031215611416575f80fd5b8335611421816113c6565b92506020840135611431816113c6565b929592945050506040919091013590565b5f60208284031215611452575f80fd5b5035919050565b5f805f806080858703121561146c575f80fd5b5050823594602084013594506040840135936060013592509050565b5f60208284031215611498575f80fd5b8135610cf3816113c6565b5f805f604084860312156114b5575f80fd5b833567ffffffffffffffff808211156114cc575f80fd5b818601915086601f8301126114df575f80fd5b8135818111156114ed575f80fd5b8760208260051b8501011115611501575f80fd5b60209283019550935050840135801515811461151b575f80fd5b809150509250925092565b5f8060408385031215611537575f80fd5b8235611542816113c6565b91506020830135611552816113c6565b809150509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156115e057815f19048211156115c6576115c6611592565b808516156115d357918102915b93841c93908002906115ab565b509250929050565b5f826115f657506001610494565b8161160257505f610494565b816001811461161857600281146116225761163e565b6001915050610494565b60ff84111561163357611633611592565b50506001821b610494565b5060208310610133831016604e8410600b8410161715611661575081810a610494565b61166b83836115a6565b805f190482111561167e5761167e611592565b029392505050565b5f610cf360ff8416836115e8565b808202811582820484141761049457610494611592565b8082018082111561049457610494611592565b634e487b7160e01b5f52603260045260245ffd5b60208082526023908201527f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073696040820152627a652160e81b606082015260800190565b8181038181111561049457610494611592565b5f60208284031215611738575f80fd5b8151610cf3816113c6565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156117935784516001600160a01b03168352938301939183019160010161176e565b50506001600160a01b03969096166060850152505050608001529392505050565b5f826117ce57634e487b7160e01b5f52601260045260245ffd5b50049056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212209348b19241c27a6f63360ccb7b727230ee879c993ef9e0f4453e16394d33e90464736f6c63430008180033

Deployed Bytecode Sourcemap

4282:11958:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11441:72;;;;;;;;;;;;;:::i;:::-;;6485:83;;;;;;;;;;-1:-1:-1;6555:5:0;;;;;;;;;;;;-1:-1:-1;;;6555:5:0;;;;6485:83;;;;;;;:::i;:::-;;;;;;;;7410:193;;;;;;;;;;-1:-1:-1;7410:193:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;7410:193:0;1023:187:1;6762:95:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;6762:95:0;1215:177:1;7611:446:0;;;;;;;;;;-1:-1:-1;7611:446:0;;;;;:::i;:::-;;:::i;15168:133::-;;;;;;;;;;-1:-1:-1;15168:133:0;;;;;:::i;:::-;;:::i;5590:51::-;;;;;;;;;;;;;;;;6671:83;;;;;;;;;;-1:-1:-1;6671:83:0;;4402:1;2185:36:1;;2173:2;2158:18;6671:83:0;2043:184:1;4787:28:0;;;;;;;;;;-1:-1:-1;4787:28:0;;;;-1:-1:-1;;;;;4787:28:0;;;;;;-1:-1:-1;;;;;2396:32:1;;;2378:51;;2366:2;2351:18;4787:28:0;2232:203:1;15847:390:0;;;;;;;;;;-1:-1:-1;15847:390:0;;;;;:::i;:::-;;:::i;6865:138::-;;;;;;;;;;-1:-1:-1;6865:138:0;;;;;:::i;:::-;;:::i;1769:148::-;;;;;;;;;;;;;:::i;15551:165::-;;;;;;;;;;;;;:::i;1555:79::-;;;;;;;;;;-1:-1:-1;1593:7:0;1620:6;-1:-1:-1;;;;;1620:6:0;1555:79;;5520:45;;;;;;;;;;;;;;;;6576:87;;;;;;;;;;-1:-1:-1;6648:7:0;;;;;;;;;;;;-1:-1:-1;;;6648:7:0;;;;6576:87;;7011:199;;;;;;;;;;-1:-1:-1;7011:199:0;;;;;:::i;:::-;;:::i;4871:63::-;;;;;;;;;;;;;:::i;11521:197::-;;;;;;;;;;;;;:::i;15309:234::-;;;;;;;;;;-1:-1:-1;15309:234:0;;;;;:::i;:::-;;:::i;7218:184::-;;;;;;;;;;-1:-1:-1;7218:184:0;;;;;:::i;:::-;-1:-1:-1;;;;;7367:18:0;;;7335:7;7367:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;7218:184;15724:115;;;;;;;;;;-1:-1:-1;15724:115:0;;;;;:::i;:::-;;:::i;1925:244::-;;;;;;;;;;-1:-1:-1;1925:244:0;;;;;:::i;:::-;;:::i;11441:72::-;1682:6;;-1:-1:-1;;;;;1682:6:0;394:10;1682:22;1674:67;;;;-1:-1:-1;;;1674:67:0;;;;;;;:::i;:::-;;;;;;;;;11487:11:::1;:18:::0;;-1:-1:-1;;11487:18:0::1;11501:4;11487:18;::::0;;11441:72::o;7410:193::-;7512:4;7534:39;394:10;7557:7;7566:6;7534:8;:39::i;:::-;-1:-1:-1;7591:4:0;7410:193;;;;;:::o;6762:95::-;6815:7;4919:15;4402:1;4919:2;:15;:::i;:::-;4905:29;;:11;:29;:::i;:::-;6835:14;;6762:95;:::o;7611:446::-;7743:4;7760:36;7770:6;7778:9;7789:6;7760:9;:36::i;:::-;7807:220;7830:6;394:10;7878:138;7934:6;7878:138;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7878:19:0;;;;;;:11;:19;;;;;;;;394:10;7878:33;;;;;;;;;;:37;:138::i;:::-;7807:8;:220::i;:::-;-1:-1:-1;8045:4:0;7611:446;;;;;:::o;15168:133::-;1682:6;;-1:-1:-1;;;;;1682:6:0;394:10;1682:22;1674:67;;;;-1:-1:-1;;;1674:67:0;;;;;;;:::i;:::-;15253:19:::1;:40:::0;15168:133::o;15847:390::-;1682:6;;-1:-1:-1;;;;;1682:6:0;394:10;1682:22;1674:67;;;;-1:-1:-1;;;1674:67:0;;;;;;;:::i;:::-;15982:14:::1;:30:::0;;;16023:15:::1;:32:::0;;;16066:12:::1;:26:::0;;;16103:13:::1;:28:::0;;;16179:2:::1;16150:25;16081:11:::0;15999:13;16150:25:::1;:::i;:::-;:31;;:67;;;;-1:-1:-1::0;16215:2:0::1;16184:27;16199:12:::0;16184:14;:27:::1;:::i;:::-;:33;;16150:67;16142:87;;;::::0;-1:-1:-1;;;16142:87:0;;6637:2:1;16142:87:0::1;::::0;::::1;6619:21:1::0;6676:1;6656:18;;;6649:29;-1:-1:-1;;;6694:18:1;;;6687:37;6741:18;;16142:87:0::1;6435:330:1::0;16142:87:0::1;15847:390:::0;;;;:::o;6865:138::-;-1:-1:-1;;;;;6978:16:0;;6931:7;6978:16;;;:7;:16;;;;;;6958:37;;:19;:37::i;1769:148::-;1682:6;;-1:-1:-1;;;;;1682:6:0;394:10;1682:22;1674:67;;;;-1:-1:-1;;;1674:67:0;;;;;;;:::i;:::-;1876:1:::1;1860:6:::0;;1839:40:::1;::::0;-1:-1:-1;;;;;1860:6:0;;::::1;::::0;1839:40:::1;::::0;1876:1;;1839:40:::1;1907:1;1890:19:::0;;-1:-1:-1;;;;;;1890:19:0::1;::::0;;1769:148::o;15551:165::-;1682:6;;-1:-1:-1;;;;;1682:6:0;394:10;1682:22;1674:67;;;;-1:-1:-1;;;1674:67:0;;;;;;;:::i;:::-;15620:1:::1;15605:12;:16:::0;;;15649:1:::1;15632:14;:18:::0;;;15661:13:::1;:17:::0;;;;15689:15:::1;:19:::0;15551:165::o;7011:199::-;7116:4;7138:42;394:10;7162:9;7173:6;7138:9;:42::i;4871:63::-;4919:15;4402:1;4919:2;:15;:::i;:::-;4905:29;;:11;:29;:::i;:::-;4871:63;:::o;11521:197::-;11587:17;;-1:-1:-1;;;;;11587:17:0;394:10;-1:-1:-1;;;;;11571:33:0;;11563:42;;;;;;11616:23;11642:24;11660:4;11642:9;:24::i;:::-;11616:50;;11677:33;11694:15;11677:16;:33::i;:::-;11552:166;11521:197::o;15309:234::-;1682:6;;-1:-1:-1;;;;;1682:6:0;394:10;1682:22;1674:67;;;;-1:-1:-1;;;1674:67:0;;;;;;;:::i;:::-;15426:9:::1;15422:114;15441:19:::0;;::::1;15422:114;;;15516:8;15482:18;:31;15501:8;;15510:1;15501:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;15482:31:0::1;::::0;;::::1;::::0;::::1;::::0;;;;;;-1:-1:-1;15482:31:0;:42;;-1:-1:-1;;15482:42:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;15462:3:0::1;15422:114;;15724:115:::0;1682:6;;-1:-1:-1;;;;;1682:6:0;394:10;1682:22;1674:67;;;;-1:-1:-1;;;1674:67:0;;;;;;;:::i;:::-;15801:14:::1;:30:::0;15724:115::o;1925:244::-;1682:6;;-1:-1:-1;;;;;1682:6:0;394:10;1682:22;1674:67;;;;-1:-1:-1;;;1674:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;2014:22:0;::::1;2006:73;;;::::0;-1:-1:-1;;;2006:73:0;;7104:2:1;2006:73:0::1;::::0;::::1;7086:21:1::0;7143:2;7123:18;;;7116:30;7182:34;7162:18;;;7155:62;-1:-1:-1;;;7233:18:1;;;7226:36;7279:19;;2006:73:0::1;6902:402:1::0;2006:73:0::1;2116:6;::::0;;2095:38:::1;::::0;-1:-1:-1;;;;;2095:38:0;;::::1;::::0;2116:6;::::1;::::0;2095:38:::1;::::0;::::1;2144:6;:17:::0;;-1:-1:-1;;;;;;2144:17:0::1;-1:-1:-1::0;;;;;2144:17:0;;;::::1;::::0;;;::::1;::::0;;1925:244::o;8748:211::-;-1:-1:-1;;;;;8867:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;8919:32;;1361:25:1;;;8919:32:0;;1334:18:1;8919:32:0;;;;;;;8748:211;;;:::o;8967:1868::-;-1:-1:-1;;;;;9086:24:0;;;;;;:18;:24;;;;;;;;9085:25;:52;;;;-1:-1:-1;;;;;;9115:22:0;;;;;;:18;:22;;;;;;;;9114:23;9085:52;9081:1028;;;9162:11;;;;9154:87;;;;-1:-1:-1;;;9154:87:0;;7511:2:1;9154:87:0;;;7493:21:1;7550:2;7530:18;;;7523:30;7589:34;7569:18;;;7562:62;7660:33;7640:18;;;7633:61;7711:19;;9154:87:0;7309:427:1;9154:87:0;9267:13;;-1:-1:-1;;;;;9261:19:0;;;9267:13;;9261:19;9258:146;;9334:14;;9325:6;9309:13;9319:2;9309:9;:13::i;:::-;:22;;;;:::i;:::-;:39;9301:87;;;;-1:-1:-1;;;9301:87:0;;;;;;;:::i;:::-;9429:13;;-1:-1:-1;;;;;9429:13:0;;;9423:19;;;;9420:131;;4919:15;4402:1;4919:2;:15;:::i;:::-;4905:29;;:11;:29;:::i;:::-;9471:14;;:24;9463:72;;;;-1:-1:-1;;;9463:72:0;;;;;;;:::i;:::-;9567:28;9598:24;9616:4;9598:9;:24::i;:::-;9676:19;;9567:55;;-1:-1:-1;9652:43:0;;;;;;;9716:18;;-1:-1:-1;9728:6:0;;-1:-1:-1;;;9728:6:0;;;;9727:7;9716:18;:43;;;;-1:-1:-1;9746:13:0;;-1:-1:-1;;;;;9738:21:0;;;9746:13;;9738:21;;9716:43;:58;;;;-1:-1:-1;9763:11:0;;-1:-1:-1;;;9763:11:0;;;;9716:58;:87;;;;-1:-1:-1;;;;;;9779:24:0;;;;;;:18;:24;;;;;;;;9778:25;9716:87;:114;;;;-1:-1:-1;;;;;;9808:22:0;;;;;;:18;:22;;;;;;;;9807:23;9716:114;9712:386;;;9851:38;9868:20;9851:16;:38::i;:::-;9937:21;9981:22;;9977:106;;10028:35;10041:21;10028:12;:35::i;:::-;9832:266;9712:386;9139:970;;9081:1028;-1:-1:-1;;;;;10185:24:0;;10121:12;10185:24;;;:18;:24;;;;;;10136:4;;10185:24;;;:50;;-1:-1:-1;;;;;;10213:22:0;;;;;;:18;:22;;;;;;;;10185:50;10184:102;;;-1:-1:-1;10249:13:0;;-1:-1:-1;;;;;10241:21:0;;;10249:13;;10241:21;;;;:44;;-1:-1:-1;10272:13:0;;-1:-1:-1;;;;;10266:19:0;;;10272:13;;10266:19;;10241:44;10180:594;;;-1:-1:-1;10313:5:0;10180:594;;;10396:13;;-1:-1:-1;;;;;10388:21:0;;;10396:13;;10388:21;:55;;;;-1:-1:-1;10427:15:0;;-1:-1:-1;;;;;10413:30:0;;;10427:15;;10413:30;;10388:55;10385:162;;;10476:14;;10464:9;:26;10519:12;;10509:7;:22;10385:162;10606:13;;-1:-1:-1;;;;;10600:19:0;;;10606:13;;10600:19;:55;;;;-1:-1:-1;10639:15:0;;-1:-1:-1;;;;;10623:32:0;;;10639:15;;10623:32;;10600:55;10596:165;;;10688:15;;10676:9;:27;10732:13;;10722:7;:23;10596:165;10786:41;10801:4;10807:2;10811:6;10819:7;10786:14;:41::i;2533:224::-;2653:7;2689:12;2681:6;;;;2673:29;;;;-1:-1:-1;;;2673:29:0;;;;;;;;:::i;:::-;-1:-1:-1;2713:9:0;2725:5;2729:1;2725;:5;:::i;:::-;2713:17;2533:224;-1:-1:-1;;;;;2533:224:0:o;8065:323::-;8160:7;8218;;8207;:18;;8185:110;;;;-1:-1:-1;;;8185:110:0;;8480:2:1;8185:110:0;;;8462:21:1;8519:2;8499:18;;;8492:30;8558:34;8538:18;;;8531:62;-1:-1:-1;;;8609:18:1;;;8602:40;8659:19;;8185:110:0;8278:406:1;8185:110:0;8306:19;8328:10;:8;:10::i;:::-;8306:32;-1:-1:-1;8356:24:0;:7;8306:32;8356:11;:24::i;:::-;8349:31;8065:323;-1:-1:-1;;;8065:323:0:o;10843:483::-;5723:6;:13;;-1:-1:-1;;;;5723:13:0;-1:-1:-1;;;5723:13:0;;;10945:16:::1;::::0;;10959:1:::1;10945:16:::0;;;;;::::1;::::0;;-1:-1:-1;;10945:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;10945:16:0::1;10921:40;;10990:4;10972;10977:1;10972:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10972:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;11016:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;11016:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;10972:7;;11016:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11006:4;11011:1;11006:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11006:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;11081:15:::1;::::0;11049:62:::1;::::0;11066:4:::1;::::0;11081:15:::1;11099:11:::0;11049:8:::1;:62::i;:::-;11122:15;::::0;:196:::1;::::0;-1:-1:-1;;;11122:196:0;;-1:-1:-1;;;;;11122:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;11203:11;;11122:15:::1;::::0;11245:4;;11272::::1;::::0;11292:15:::1;::::0;11122:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5759:6:0;:14;;-1:-1:-1;;;;5759:14:0;;;-1:-1:-1;;;;10843:483:0:o;11334:99::-;11391:17;;:34;;-1:-1:-1;;;;;11391:17:0;;;;:34;;;;;11418:6;;11391:17;:34;:17;:34;11418:6;11391:17;:34;;;;;;;;;;;;;;;;;;;;;11334:99;:::o;11726:282::-;11882:7;11877:28;;11891:14;:12;:14::i;:::-;11916:44;11934:6;11942:9;11953:6;11916:17;:44::i;:::-;11976:7;11971:29;;11985:15;8679:17;;8667:9;:29;8717:15;;8707:7;:25;8623:117;14687:164;14729:7;14750:15;14767;14786:19;:17;:19::i;:::-;14749:56;;-1:-1:-1;14749:56:0;-1:-1:-1;14823:20:0;14749:56;;14823:11;:20::i;:::-;14816:27;;;;14687:164;:::o;3019:132::-;3077:7;3104:39;3108:1;3111;3104:39;;;;;;;;;;;;;;;;;:3;:39::i;8396:219::-;8443:9;;:14;:30;;;;-1:-1:-1;8461:7:0;;:12;8443:30;8439:43;;;8396:219::o;8439:43::-;8514:9;;;8494:17;:29;8552:7;;;8534:15;:25;-1:-1:-1;8572:13:0;;;;8596:11;8396:219::o;12016:610::-;12163:15;12193:23;12231:12;12258:23;12296:12;12323:13;12350:19;12361:7;12350:10;:19::i;:::-;-1:-1:-1;;;;;12398:15:0;;;;;;:7;:15;;;;;;12148:221;;-1:-1:-1;12148:221:0;;-1:-1:-1;12148:221:0;;-1:-1:-1;12148:221:0;-1:-1:-1;12148:221:0;-1:-1:-1;12148:221:0;-1:-1:-1;12398:28:0;;12148:221;12398:19;:28::i;:::-;-1:-1:-1;;;;;12380:15:0;;;;;;;:7;:15;;;;;;:46;;;;12458:18;;;;;;;:39;;12481:15;12458:22;:39::i;:::-;-1:-1:-1;;;;;12437:18:0;;;;;;:7;:18;;;;;:60;12508:16;12518:5;12508:9;:16::i;:::-;12535:23;12547:4;12553;12535:11;:23::i;:::-;12591:9;-1:-1:-1;;;;;12574:44:0;12583:6;-1:-1:-1;;;;;12574:44:0;;12602:15;12574:44;;;;1361:25:1;;1349:2;1334:18;;1215:177;12574:44:0;;;;;;;;12137:489;;;;;;12016:610;;;:::o;14859:257::-;14957:7;;14910;;;;;4919:15;4402:1;4919:2;:15;:::i;:::-;4905:29;;:11;:29;:::i;:::-;14975:25;-1:-1:-1;15025:20:0;4919:15;4402:1;4919:2;:15;:::i;:::-;4905:29;;:11;:29;:::i;:::-;15025:7;;;:11;:20::i;:::-;15015:7;:30;15011:61;;;15055:7;;4919:15;4402:1;4919:2;:15;:::i;:::-;4905:29;;:11;:29;:::i;:::-;15047:25;;;;;;14859:257;;:::o;15011:61::-;15091:7;;15100;;-1:-1:-1;14859:257:0;-1:-1:-1;14859:257:0:o;3159:223::-;3279:7;3314:12;3307:5;3299:28;;;;-1:-1:-1;;;3299:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3338:9:0;3350:5;3354:1;3350;:5;:::i;13045:615::-;13145:7;13167;13189;13211;13233;13255;13291:23;13316:12;13330:13;13360:40;13372:7;13381:9;;13392:7;;13360:11;:40::i;:::-;13290:110;;;;;;13411:19;13433:10;:8;:10::i;:::-;13411:32;;13455:15;13472:23;13497:12;13526:46;13538:7;13547:4;13553:5;13560:11;13526;:46::i;:::-;13454:118;;-1:-1:-1;13454:118:0;-1:-1:-1;13454:118:0;-1:-1:-1;13623:15:0;;-1:-1:-1;13640:4:0;;-1:-1:-1;13646:5:0;;-1:-1:-1;;;;;13045:615:0;;;;;;;:::o;2389:136::-;2447:7;2474:43;2478:1;2481;2474:43;;;;;;;;;;;;;;;;;:3;:43::i;2202:179::-;2260:7;;2292:5;2296:1;2292;:5;:::i;:::-;2280:17;;2321:1;2316;:6;;2308:46;;;;-1:-1:-1;;;2308:46:0;;10486:2:1;2308:46:0;;;10468:21:1;10525:2;10505:18;;;10498:30;10564:29;10544:18;;;10537:57;10611:18;;2308:46:0;10284:351:1;12634:211:0;12687:19;12709:10;:8;:10::i;:::-;12687:32;-1:-1:-1;12730:13:0;12746:22;:5;12687:32;12746:9;:22::i;:::-;12820:4;12804:22;;;;:7;:22;;;;;;12730:38;;-1:-1:-1;12804:33:0;;12730:38;12804:26;:33::i;:::-;12795:4;12779:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;12634:211:0:o;12853:147::-;12931:7;;:17;;12943:4;12931:11;:17::i;:::-;12921:7;:27;12972:10;;:20;;12987:4;12972:14;:20::i;:::-;12959:10;:33;-1:-1:-1;;12853:147:0:o;13668:469::-;13837:7;;;;13931:30;13957:3;13931:21;:7;13943:8;13931:11;:21::i;:::-;:25;;:30::i;:::-;13916:45;-1:-1:-1;13972:13:0;13988:28;14012:3;13988:19;:7;14000:6;13988:11;:19::i;:28::-;13972:44;-1:-1:-1;14027:23:0;14053:28;13972:44;14053:17;:7;14065:4;14053:11;:17::i;:::-;:21;;:28::i;:::-;14027:54;14117:4;;-1:-1:-1;14123:5:0;;-1:-1:-1;13668:469:0;;-1:-1:-1;;;;;13668:469:0:o;14145:534::-;14339:7;;;;14436:24;:7;14448:11;14436;:24::i;:::-;14418:42;-1:-1:-1;14471:12:0;14486:21;:4;14495:11;14486:8;:21::i;:::-;14471:36;-1:-1:-1;14518:13:0;14534:22;:5;14544:11;14534:9;:22::i;:::-;14518:38;-1:-1:-1;14567:23:0;14593:28;14518:38;14593:17;:7;14605:4;14593:11;:17::i;:28::-;14640:7;;;;-1:-1:-1;14666:4:0;;-1:-1:-1;14145:534:0;;-1:-1:-1;;;;;;;14145:534:0:o;2765:246::-;2823:7;2847:1;2852;2847:6;2843:47;;-1:-1:-1;2877:1:0;2870:8;;2843:47;2900:9;2912:5;2916:1;2912;:5;:::i;:::-;2900:17;-1:-1:-1;2945:1:0;2936:5;2940:1;2900:17;2936:5;:::i;:::-;:10;2928:56;;;;-1:-1:-1;;;2928:56:0;;10842:2:1;2928:56:0;;;10824:21:1;10881:2;10861:18;;;10854:30;10920:34;10900:18;;;10893:62;-1:-1:-1;;;10971:18:1;;;10964:31;11012:19;;2928:56:0;10640:397: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:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;1858:180::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;-1:-1:-1;2009:23:1;;1858:180;-1:-1:-1;1858:180:1:o;2440:385::-;2526:6;2534;2542;2550;2603:3;2591:9;2582:7;2578:23;2574:33;2571:53;;;2620:1;2617;2610:12;2571:53;-1:-1:-1;;2643:23:1;;;2713:2;2698:18;;2685:32;;-1:-1:-1;2764:2:1;2749:18;;2736:32;;2815:2;2800:18;2787:32;;-1:-1:-1;2440:385:1;-1:-1:-1;2440:385:1:o;2830:247::-;2889:6;2942:2;2930:9;2921:7;2917:23;2913:32;2910:52;;;2958:1;2955;2948:12;2910:52;2997:9;2984:23;3016:31;3041:5;3016:31;:::i;3082:782::-;3174:6;3182;3190;3243:2;3231:9;3222:7;3218:23;3214:32;3211:52;;;3259:1;3256;3249:12;3211:52;3299:9;3286:23;3328:18;3369:2;3361:6;3358:14;3355:34;;;3385:1;3382;3375:12;3355:34;3423:6;3412:9;3408:22;3398:32;;3468:7;3461:4;3457:2;3453:13;3449:27;3439:55;;3490:1;3487;3480:12;3439:55;3530:2;3517:16;3556:2;3548:6;3545:14;3542:34;;;3572:1;3569;3562:12;3542:34;3627:7;3620:4;3610:6;3607:1;3603:14;3599:2;3595:23;3591:34;3588:47;3585:67;;;3648:1;3645;3638:12;3585:67;3679:4;3671:13;;;;-1:-1:-1;3703:6:1;-1:-1:-1;;3744:20:1;;3731:34;3801:13;;3794:21;3784:32;;3774:60;;3830:1;3827;3820:12;3774:60;3853:5;3843:15;;;3082:782;;;;;:::o;3869:388::-;3937:6;3945;3998:2;3986:9;3977:7;3973:23;3969:32;3966:52;;;4014:1;4011;4004:12;3966:52;4053:9;4040:23;4072:31;4097:5;4072:31;:::i;:::-;4122:5;-1:-1:-1;4179:2:1;4164:18;;4151:32;4192:33;4151:32;4192:33;:::i;:::-;4244:7;4234:17;;;3869:388;;;;;:::o;4262:356::-;4464:2;4446:21;;;4483:18;;;4476:30;4542:34;4537:2;4522:18;;4515:62;4609:2;4594:18;;4262:356::o;4623:127::-;4684:10;4679:3;4675:20;4672:1;4665:31;4715:4;4712:1;4705:15;4739:4;4736:1;4729:15;4755:416;4844:1;4881:5;4844:1;4895:270;4916:7;4906:8;4903:21;4895:270;;;4975:4;4971:1;4967:6;4963:17;4957:4;4954:27;4951:53;;;4984:18;;:::i;:::-;5034:7;5024:8;5020:22;5017:55;;;5054:16;;;;5017:55;5133:22;;;;5093:15;;;;4895:270;;;4899:3;4755:416;;;;;:::o;5176:806::-;5225:5;5255:8;5245:80;;-1:-1:-1;5296:1:1;5310:5;;5245:80;5344:4;5334:76;;-1:-1:-1;5381:1:1;5395:5;;5334:76;5426:4;5444:1;5439:59;;;;5512:1;5507:130;;;;5419:218;;5439:59;5469:1;5460:10;;5483:5;;;5507:130;5544:3;5534:8;5531:17;5528:43;;;5551:18;;:::i;:::-;-1:-1:-1;;5607:1:1;5593:16;;5622:5;;5419:218;;5721:2;5711:8;5708:16;5702:3;5696:4;5693:13;5689:36;5683:2;5673:8;5670:16;5665:2;5659:4;5656:12;5652:35;5649:77;5646:159;;;-1:-1:-1;5758:19:1;;;5790:5;;5646:159;5837:34;5862:8;5856:4;5837:34;:::i;:::-;5907:6;5903:1;5899:6;5895:19;5886:7;5883:32;5880:58;;;5918:18;;:::i;:::-;5956:20;;5176:806;-1:-1:-1;;;5176:806:1:o;5987:140::-;6045:5;6074:47;6115:4;6105:8;6101:19;6095:4;6074:47;:::i;6132:168::-;6205:9;;;6236;;6253:15;;;6247:22;;6233:37;6223:71;;6274:18;;:::i;6305:125::-;6370:9;;;6391:10;;;6388:36;;;6404:18;;:::i;6770:127::-;6831:10;6826:3;6822:20;6819:1;6812:31;6862:4;6859:1;6852:15;6886:4;6883:1;6876:15;7741:399;7943:2;7925:21;;;7982:2;7962:18;;;7955:30;8021:34;8016:2;8001:18;;7994:62;-1:-1:-1;;;8087:2:1;8072:18;;8065:33;8130:3;8115:19;;7741:399::o;8145:128::-;8212:9;;;8233:11;;;8230:37;;;8247:18;;:::i;8821:251::-;8891:6;8944:2;8932:9;8923:7;8919:23;8915:32;8912:52;;;8960:1;8957;8950:12;8912:52;8992:9;8986:16;9011:31;9036:5;9011:31;:::i;9077:980::-;9339:4;9387:3;9376:9;9372:19;9418:6;9407:9;9400:25;9444:2;9482:6;9477:2;9466:9;9462:18;9455:34;9525:3;9520:2;9509:9;9505:18;9498:31;9549:6;9584;9578:13;9615:6;9607;9600:22;9653:3;9642:9;9638:19;9631:26;;9692:2;9684:6;9680:15;9666:29;;9713:1;9723:195;9737:6;9734:1;9731:13;9723:195;;;9802:13;;-1:-1:-1;;;;;9798:39:1;9786:52;;9893:15;;;;9858:12;;;;9834:1;9752:9;9723:195;;;-1:-1:-1;;;;;;;9974:32:1;;;;9969:2;9954:18;;9947:60;-1:-1:-1;;;10038:3:1;10023:19;10016:35;9935:3;9077:980;-1:-1:-1;;;9077:980:1:o;10062:217::-;10102:1;10128;10118:132;;10172:10;10167:3;10163:20;10160:1;10153:31;10207:4;10204:1;10197:15;10235:4;10232:1;10225:15;10118:132;-1:-1:-1;10264:9:1;;10062:217::o

Swarm Source

ipfs://9348b19241c27a6f63360ccb7b727230ee879c993ef9e0f4453e16394d33e904

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.