ETH Price: $3,117.32 (+1.53%)

Contract

0xB6182b03d9AEA18b6b2A0e5E41d99F0F7f2E5EE9
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve211988732024-11-16 7:50:1155 mins ago1731743411IN
0xB6182b03...F7f2E5EE9
0 ETH0.0005779112.4382112
Approve211967302024-11-16 0:40:118 hrs ago1731717611IN
0xB6182b03...F7f2E5EE9
0 ETH0.0007685516.54125512
Approve211965902024-11-16 0:11:598 hrs ago1731715919IN
0xB6182b03...F7f2E5EE9
0 ETH0.001006321.63033396
Approve211953882024-11-15 20:10:2312 hrs ago1731701423IN
0xB6182b03...F7f2E5EE9
0 ETH0.0012969827.91427682
Approve211944132024-11-15 16:53:4715 hrs ago1731689627IN
0xB6182b03...F7f2E5EE9
0 ETH0.0015377333.09582298
Approve211937942024-11-15 14:49:2317 hrs ago1731682163IN
0xB6182b03...F7f2E5EE9
0 ETH0.0015620633.84685429
Approve211936542024-11-15 14:21:2318 hrs ago1731680483IN
0xB6182b03...F7f2E5EE9
0 ETH0.0013682229.65445575
Transfer211932332024-11-15 12:56:2319 hrs ago1731675383IN
0xB6182b03...F7f2E5EE9
0 ETH0.0006526818.03388523
Approve211930112024-11-15 12:11:1120 hrs ago1731672671IN
0xB6182b03...F7f2E5EE9
0 ETH0.0007853117.01622464
Approve211921692024-11-15 9:21:4723 hrs ago1731662507IN
0xB6182b03...F7f2E5EE9
0 ETH0.0008352818.07549186
Approve211916822024-11-15 7:44:2325 hrs ago1731656663IN
0xB6182b03...F7f2E5EE9
0 ETH0.0006642214.37373712
Transfer211916722024-11-15 7:42:2325 hrs ago1731656543IN
0xB6182b03...F7f2E5EE9
0 ETH0.0007237513.580988
Approve211916442024-11-15 7:36:4725 hrs ago1731656207IN
0xB6182b03...F7f2E5EE9
0 ETH0.0006480713.94823319
Approve211907642024-11-15 4:39:2328 hrs ago1731645563IN
0xB6182b03...F7f2E5EE9
0 ETH0.000781516.81993785
Approve211905462024-11-15 3:55:4728 hrs ago1731642947IN
0xB6182b03...F7f2E5EE9
0 ETH0.0007532516.32571612
Approve211889792024-11-14 22:40:5934 hrs ago1731624059IN
0xB6182b03...F7f2E5EE9
0 ETH0.0012500526.90428324
Transfer211889462024-11-14 22:34:2334 hrs ago1731623663IN
0xB6182b03...F7f2E5EE9
0 ETH0.0015318128.75026746
Approve211884142024-11-14 20:47:2335 hrs ago1731617243IN
0xB6182b03...F7f2E5EE9
0 ETH0.0013890129.89509746
Approve211881512024-11-14 19:54:3536 hrs ago1731614075IN
0xB6182b03...F7f2E5EE9
0 ETH0.0010512522.62574077
Approve211878092024-11-14 18:45:5937 hrs ago1731609959IN
0xB6182b03...F7f2E5EE9
0 ETH0.0012563427.18714556
Transfer211877842024-11-14 18:40:5938 hrs ago1731609659IN
0xB6182b03...F7f2E5EE9
0 ETH0.0014036226.35030357
Approve211877612024-11-14 18:36:2338 hrs ago1731609383IN
0xB6182b03...F7f2E5EE9
0 ETH0.0012488726.84425588
Approve211877222024-11-14 18:28:2338 hrs ago1731608903IN
0xB6182b03...F7f2E5EE9
0 ETH0.0010323722.37542353
Approve211876462024-11-14 18:12:5938 hrs ago1731607979IN
0xB6182b03...F7f2E5EE9
0 ETH0.0011865225.67619642
Approve211876252024-11-14 18:08:4738 hrs ago1731607727IN
0xB6182b03...F7f2E5EE9
0 ETH0.0013146728.25867559
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DEXEDv2

Compiler Version
v0.8.28+commit.7893614a

Optimization Enabled:
Yes with 10000 runs

Other Settings:
default evmVersion, MIT license
/**
 *Submitted for verification at Etherscan.io on 2024-11-11
*/

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.28;

/**
 * 
 * ██████╗ ███████╗██╗  ██╗███████╗██████╗
 * ██╔══██╗██╔════╝╚██╗██╔╝██╔════╝██╔══██╗
 * ██║  ██║█████╗   ╚███╔╝ █████╗  ██║  ██║
 * ██║  ██║██╔══╝   ██╔██╗ ██╔══╝  ██║  ██║
 * ██████╔╝███████╗██╔╝ ██╗███████╗██████╔╝
 * ╚═════╝ ╚══════╝╚═╝  ╚═╝╚══════╝╚═════╝
 *                                                                                         
 * @title DEXED
 * @author https://dexed.com
 * @notice Version 2.0 of the DEXED token. The DEXED token is a custom digital asset built on the Ethereum blockchain,
 * adhering to the ERC20 standard. It includes additional features to support the project’s ecosystem and provide
 * benefits to its holders.
 * Maximal buy/sell tax: 5%
 * Mintable: no
 */

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 transferOwnership(address newOwner) public onlyOwner {
        _transferOwnership(newOwner);
    }

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

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

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

contract DEXEDv2 is Context, IERC20, Ownable {
    uint256 private constant _totalSupply = 100_000_000e9;
    uint128 public threshold = 100_000e9;

    IUniswapV2Router02 constant uniswapV2Router =
        IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address immutable uniswapV2Pair;
    address constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    address payable marketingWallet;

    uint64 public buyTax = 5;
    uint64 public sellTax = 5;

    bool public launch;
    bool private inSwapAndLiquify;
    uint64 public lastLiquifyTime;

    string private constant _name = "DEXED";
    string private constant _symbol = "DEXED";

    mapping(address => uint256) private _balance;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) public untaxable;

    constructor() {
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory())
            .createPair(
                address(this),
                WETH
            );
        marketingWallet = payable(0x2269774Ea9E4CD6B5309BC79C3049226B2F78925);
        _allowances[address(this)][address(uniswapV2Router)] = type(uint256)
            .max;
        _allowances[msg.sender][address(uniswapV2Router)] = type(uint256).max;
        _allowances[marketingWallet][address(uniswapV2Router)] = type(uint256)
            .max;
        untaxable[msg.sender] = true;
        _balance[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return _balance[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()] - amount
        );
        return true;
    }

    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 openTrading() external onlyOwner {
        launch = true;
        lastLiquifyTime = uint64(block.number);
    }

    function setUntaxable(address user, bool isUntaxable) external onlyOwner {
        require(user != address(0), "Zero Address");
        untaxable[user] = isUntaxable;
        emit Untaxable(user, isUntaxable);
    }

    function changeSwapBackThreshold(
        uint128 newSwapThreshold
    ) external onlyOwner {
        require(
            newSwapThreshold != 0,
            "Swap threshold cannot be zero"
        );
        threshold = newSwapThreshold;
        emit ThresholdChanged(newSwapThreshold);
    }

    function changeMarketingWallet(address newWallet) external onlyOwner {
        require(newWallet != address(0), "Zero Address");
        marketingWallet = payable(newWallet);
        emit NewMarketingWallet(newWallet);
    }

    function setTaxes(uint64 buy, uint64 sell) external onlyOwner {
        require(buy <= 5 && sell <= 5, "Tax amount is too high");
        buyTax = buy;
        sellTax = sell;
        emit TaxesChanged(buy, sell);
    }

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        if (from == uniswapV2Pair) require(launch, "Trading is not started yet");
        uint256 _tax = 0;

        // Set tax
        if ((!untaxable[from] && !untaxable[to]) && !inSwapAndLiquify) {
            if (from == uniswapV2Pair) {
                // Buy
                _tax = buyTax;
            } else if (to == uniswapV2Pair) {
                // Sell
                _tax = sellTax;
                if (
                    _balance[address(this)] >= threshold &&
                    lastLiquifyTime != uint64(block.number)
                ) _swapBack(threshold);
            }
        }

        // Is there tax for sender|receiver?
        if (_tax != 0) {
            // Tax transfer
            uint256 taxTokens = (amount * _tax) / 100;
            uint256 transferAmount = amount - taxTokens;

            _balance[from] -= amount;
            unchecked {
                _balance[to] += transferAmount;
                _balance[address(this)] += taxTokens;
            }

            emit Transfer(from, address(this), taxTokens);
            emit Transfer(from, to, transferAmount);
        } else {
            // No tax transfer
            _balance[from] -= amount;
            _balance[to] += amount;
            emit Transfer(from, to, amount);
        }
    }

    function _swapBack(uint256 tokensToSwap) internal {
        inSwapAndLiquify = true;

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

        try
            uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
                tokensToSwap,
                0,
                path,
                marketingWallet,
                block.timestamp
            )
        {} catch {}

        lastLiquifyTime = uint64(block.number);
        inSwapAndLiquify = false;
    }

    receive() external payable {}

    event NewMarketingWallet(address wallet);
    event TaxesChanged(uint64 buy, uint64 sell);
    event ThresholdChanged(uint128 value);
    event Untaxable(address indexed user, bool isUntaxable);
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"wallet","type":"address"}],"name":"NewMarketingWallet","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":false,"internalType":"uint64","name":"buy","type":"uint64"},{"indexed":false,"internalType":"uint64","name":"sell","type":"uint64"}],"name":"TaxesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint128","name":"value","type":"uint128"}],"name":"ThresholdChanged","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"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"bool","name":"isUntaxable","type":"bool"}],"name":"Untaxable","type":"event"},{"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":"buyTax","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"changeMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint128","name":"newSwapThreshold","type":"uint128"}],"name":"changeSwapBackThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"lastLiquifyTime","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launch","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellTax","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint64","name":"buy","type":"uint64"},{"internalType":"uint64","name":"sell","type":"uint64"}],"name":"setTaxes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"bool","name":"isUntaxable","type":"bool"}],"name":"setUntaxable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"threshold","outputs":[{"internalType":"uint128","name":"","type":"uint128"}],"stateMutability":"view","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":"","type":"address"}],"name":"untaxable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a0604052600280546001600160801b031916655af3107a400017905560038054600560a01b600160a01b600160e01b0319909116179055600480546001600160401b0319166005179055348015610055575f5ffd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350737a250d5630b4cf539739df2c5dacb4c659f2488d6001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100e6573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061010a9190610287565b6040516364e329cb60e11b815230600482015273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260248201526001600160a01b03919091169063c9c65396906044016020604051808303815f875af1158015610169573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061018d9190610287565b6001600160a01b03908116608052600380546001600160a01b031916732269774ea9e4cd6b5309bc79c3049226b2f78925178155305f908152600660208181526040808420737a250d5630b4cf539739df2c5dacb4c659f2488d8086529083528185205f1990819055338087528585528387208388528552838720829055965490971685529282528084209284529181528183209490945582825260078452808220805460ff191660011790556005845280822067016345785d8a0000908190559051908152919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36102b4565b5f60208284031215610297575f5ffd5b81516001600160a01b03811681146102ad575f5ffd5b9392505050565b608051611a296102da5f395f8181610f300152818161105c01526110da0152611a295ff3fe60806040526004361061017b575f3560e01c806342cde4e8116100d1578063a9059cbb1161007c578063cc1776d311610057578063cc1776d3146104b7578063dd62ed3e146104d7578063f2fde38b14610528575f5ffd5b8063a9059cbb14610465578063bb85c6d114610484578063c9567bf9146104a3575f5ffd5b8063715018a6116100ac578063715018a61461041e5780638da5cb5b1461043257806395d89b41146101c0575f5ffd5b806342cde4e81461035c5780634f7041a5146103a557806370a08231146103dd575f5ffd5b806318160ddd11610131578063313ce5671161010c578063313ce567146102f457806340b47ee01461030f57806342777b911461032e575f5ffd5b806318160ddd1461029257806323b872dd146102b657806327125f9e146102d5575f5ffd5b8063095ea7b311610161578063095ea7b31461020b578063098213ce1461022a578063118b637a14610271575f5ffd5b806301339c211461018657806306fdde03146101c0575f5ffd5b3661018257005b5f5ffd5b348015610191575f5ffd5b506004546101ab9068010000000000000000900460ff1681565b60405190151581526020015b60405180910390f35b3480156101cb575f5ffd5b50604080518082018252600581527f4445584544000000000000000000000000000000000000000000000000000000602082015290516101b791906116c5565b348015610216575f5ffd5b506101ab610225366004611740565b610547565b348015610235575f5ffd5b50600454610258906a0100000000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016101b7565b34801561027c575f5ffd5b5061029061028b366004611768565b61055d565b005b34801561029d575f5ffd5b5067016345785d8a00005b6040519081526020016101b7565b3480156102c1575f5ffd5b506101ab6102d036600461179e565b61069f565b3480156102e0575f5ffd5b506102906102ef3660046117d8565b6106fc565b3480156102ff575f5ffd5b50604051600981526020016101b7565b34801561031a575f5ffd5b50610290610329366004611828565b61084e565b348015610339575f5ffd5b506101ab610348366004611859565b60076020525f908152604090205460ff1681565b348015610367575f5ffd5b50600254610384906fffffffffffffffffffffffffffffffff1681565b6040516fffffffffffffffffffffffffffffffff90911681526020016101b7565b3480156103b0575f5ffd5b506003546102589074010000000000000000000000000000000000000000900467ffffffffffffffff1681565b3480156103e8575f5ffd5b506102a86103f7366004611859565b73ffffffffffffffffffffffffffffffffffffffff165f9081526005602052604090205490565b348015610429575f5ffd5b506102906109e4565b34801561043d575f5ffd5b505f5460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101b7565b348015610470575f5ffd5b506101ab61047f366004611740565b610ab7565b34801561048f575f5ffd5b5061029061049e366004611859565b610ac3565b3480156104ae575f5ffd5b50610290610bff565b3480156104c2575f5ffd5b506004546102589067ffffffffffffffff1681565b3480156104e2575f5ffd5b506102a86104f1366004611872565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260066020908152604080832093909416825291909152205490565b348015610533575f5ffd5b50610290610542366004611859565b610cb5565b5f610553338484610d27565b5060015b92915050565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146105c85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b806fffffffffffffffffffffffffffffffff165f036106295760405162461bcd60e51b815260206004820152601d60248201527f53776170207468726573686f6c642063616e6e6f74206265207a65726f00000060448201526064016105bf565b600280547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff83169081179091556040519081527f33e90aed51490dc133fa1118d746385417ba9a2458cdbf2cc340c95f6938120d906020015b60405180910390a150565b5f6106ab848484610ea5565b73ffffffffffffffffffffffffffffffffffffffff84165f908152600660209081526040808320338085529252909120546106f29186916106ed9086906118c7565b610d27565b5060019392505050565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146107625760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105bf565b73ffffffffffffffffffffffffffffffffffffffff82166107c55760405162461bcd60e51b815260206004820152600c60248201527f5a65726f2041646472657373000000000000000000000000000000000000000060448201526064016105bf565b73ffffffffffffffffffffffffffffffffffffffff82165f8181526007602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f152286d856e9ab1167e9aa284ce3fcf03b5b13dc03f02b3dc305c0ad5dc58c09910160405180910390a25050565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146108b45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105bf565b60058267ffffffffffffffff16111580156108da575060058167ffffffffffffffff1611155b6109265760405162461bcd60e51b815260206004820152601660248201527f54617820616d6f756e7420697320746f6f20686967680000000000000000000060448201526064016105bf565b600380547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000067ffffffffffffffff85811691820292909217909255600480547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001691841691821790556040805192835260208301919091527f92ed841999156d683297df925e1cdd5889a27d1accb0315abfa1f114d41967e7910160405180910390a15050565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610a4a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105bf565b5f805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b5f610553338484610ea5565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610b295760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105bf565b73ffffffffffffffffffffffffffffffffffffffff8116610b8c5760405162461bcd60e51b815260206004820152600c60248201527f5a65726f2041646472657373000000000000000000000000000000000000000060448201526064016105bf565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f1ffd90b838134c6cfb56aa815cc97adc14b6cf358dc77a5ed8d8d826981f84bd90602001610694565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610c655760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105bf565b6004805467ffffffffffffffff43166a0100000000000000000000027fffffffffffffffffffffffffffff0000000000000000ff00ffffffffffffffff9091161768010000000000000000179055565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610d1b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105bf565b610d24816113d9565b50565b73ffffffffffffffffffffffffffffffffffffffff8316610daf5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105bf565b73ffffffffffffffffffffffffffffffffffffffff8216610e385760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105bf565b73ffffffffffffffffffffffffffffffffffffffff8381165f8181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610f2e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105bf565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fdf5760045468010000000000000000900460ff16610fdf5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420737461727465642079657400000000000060448201526064016105bf565b73ffffffffffffffffffffffffffffffffffffffff83165f9081526007602052604081205460ff16158015611039575073ffffffffffffffffffffffffffffffffffffffff83165f9081526007602052604090205460ff16155b801561105557506004546901000000000000000000900460ff16155b156111b1577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036110d8575060035474010000000000000000000000000000000000000000900467ffffffffffffffff166111b1565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111b15750600454600254305f9081526005602052604090205467ffffffffffffffff909216916fffffffffffffffffffffffffffffffff9091161180159061118e57506004544367ffffffffffffffff9081166a01000000000000000000009092041614155b156111b1576002546111b1906fffffffffffffffffffffffffffffffff166114ed565b80156112f7575f60646111c483856118da565b6111ce91906118f1565b90505f6111db82856118c7565b73ffffffffffffffffffffffffffffffffffffffff87165f908152600560205260408120805492935086929091906112149084906118c7565b909155505073ffffffffffffffffffffffffffffffffffffffff8581165f90815260056020908152604080832080548601905530808452928190208054870190555185815291928916917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a38473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112e891815260200190565b60405180910390a350506113d3565b73ffffffffffffffffffffffffffffffffffffffff84165f908152600560205260408120805484929061132b9084906118c7565b909155505073ffffffffffffffffffffffffffffffffffffffff83165f9081526005602052604081208054849290611364908490611929565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113ca91815260200190565b60405180910390a35b50505050565b73ffffffffffffffffffffffffffffffffffffffff81166114625760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105bf565b5f805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600480547fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff1669010000000000000000001790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106115545761155461193c565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106115b6576115b661193c565b73ffffffffffffffffffffffffffffffffffffffff92831660209182029290920101526003546040517f791ac947000000000000000000000000000000000000000000000000000000008152737a250d5630b4cf539739df2c5dacb4c659f2488d9263791ac947926116359287925f9288929116904290600401611969565b5f604051808303815f87803b15801561164c575f5ffd5b505af192505050801561165d575060015b505050600480547fffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff166a01000000000000000000004367ffffffffffffffff16027fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff16179055565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461173b575f5ffd5b919050565b5f5f60408385031215611751575f5ffd5b61175a83611718565b946020939093013593505050565b5f60208284031215611778575f5ffd5b81356fffffffffffffffffffffffffffffffff81168114611797575f5ffd5b9392505050565b5f5f5f606084860312156117b0575f5ffd5b6117b984611718565b92506117c760208501611718565b929592945050506040919091013590565b5f5f604083850312156117e9575f5ffd5b6117f283611718565b915060208301358015158114611806575f5ffd5b809150509250929050565b803567ffffffffffffffff8116811461173b575f5ffd5b5f5f60408385031215611839575f5ffd5b61184283611811565b915061185060208401611811565b90509250929050565b5f60208284031215611869575f5ffd5b61179782611718565b5f5f60408385031215611883575f5ffd5b61188c83611718565b915061185060208401611718565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b818103818111156105575761055761189a565b80820281158282048414176105575761055761189a565b5f82611924577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b808201808211156105575761055761189a565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156119c657835173ffffffffffffffffffffffffffffffffffffffff16835260209384019390920191600101611992565b505073ffffffffffffffffffffffffffffffffffffffff959095166060840152505060800152939250505056fea264697066735822122013cfacc3238ba5c282c7b8c5ff11c3fe9e855032e2f35be72be96715f473b98a64736f6c634300081c0033

Deployed Bytecode

0x60806040526004361061017b575f3560e01c806342cde4e8116100d1578063a9059cbb1161007c578063cc1776d311610057578063cc1776d3146104b7578063dd62ed3e146104d7578063f2fde38b14610528575f5ffd5b8063a9059cbb14610465578063bb85c6d114610484578063c9567bf9146104a3575f5ffd5b8063715018a6116100ac578063715018a61461041e5780638da5cb5b1461043257806395d89b41146101c0575f5ffd5b806342cde4e81461035c5780634f7041a5146103a557806370a08231146103dd575f5ffd5b806318160ddd11610131578063313ce5671161010c578063313ce567146102f457806340b47ee01461030f57806342777b911461032e575f5ffd5b806318160ddd1461029257806323b872dd146102b657806327125f9e146102d5575f5ffd5b8063095ea7b311610161578063095ea7b31461020b578063098213ce1461022a578063118b637a14610271575f5ffd5b806301339c211461018657806306fdde03146101c0575f5ffd5b3661018257005b5f5ffd5b348015610191575f5ffd5b506004546101ab9068010000000000000000900460ff1681565b60405190151581526020015b60405180910390f35b3480156101cb575f5ffd5b50604080518082018252600581527f4445584544000000000000000000000000000000000000000000000000000000602082015290516101b791906116c5565b348015610216575f5ffd5b506101ab610225366004611740565b610547565b348015610235575f5ffd5b50600454610258906a0100000000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016101b7565b34801561027c575f5ffd5b5061029061028b366004611768565b61055d565b005b34801561029d575f5ffd5b5067016345785d8a00005b6040519081526020016101b7565b3480156102c1575f5ffd5b506101ab6102d036600461179e565b61069f565b3480156102e0575f5ffd5b506102906102ef3660046117d8565b6106fc565b3480156102ff575f5ffd5b50604051600981526020016101b7565b34801561031a575f5ffd5b50610290610329366004611828565b61084e565b348015610339575f5ffd5b506101ab610348366004611859565b60076020525f908152604090205460ff1681565b348015610367575f5ffd5b50600254610384906fffffffffffffffffffffffffffffffff1681565b6040516fffffffffffffffffffffffffffffffff90911681526020016101b7565b3480156103b0575f5ffd5b506003546102589074010000000000000000000000000000000000000000900467ffffffffffffffff1681565b3480156103e8575f5ffd5b506102a86103f7366004611859565b73ffffffffffffffffffffffffffffffffffffffff165f9081526005602052604090205490565b348015610429575f5ffd5b506102906109e4565b34801561043d575f5ffd5b505f5460405173ffffffffffffffffffffffffffffffffffffffff90911681526020016101b7565b348015610470575f5ffd5b506101ab61047f366004611740565b610ab7565b34801561048f575f5ffd5b5061029061049e366004611859565b610ac3565b3480156104ae575f5ffd5b50610290610bff565b3480156104c2575f5ffd5b506004546102589067ffffffffffffffff1681565b3480156104e2575f5ffd5b506102a86104f1366004611872565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260066020908152604080832093909416825291909152205490565b348015610533575f5ffd5b50610290610542366004611859565b610cb5565b5f610553338484610d27565b5060015b92915050565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146105c85760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b806fffffffffffffffffffffffffffffffff165f036106295760405162461bcd60e51b815260206004820152601d60248201527f53776170207468726573686f6c642063616e6e6f74206265207a65726f00000060448201526064016105bf565b600280547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff83169081179091556040519081527f33e90aed51490dc133fa1118d746385417ba9a2458cdbf2cc340c95f6938120d906020015b60405180910390a150565b5f6106ab848484610ea5565b73ffffffffffffffffffffffffffffffffffffffff84165f908152600660209081526040808320338085529252909120546106f29186916106ed9086906118c7565b610d27565b5060019392505050565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146107625760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105bf565b73ffffffffffffffffffffffffffffffffffffffff82166107c55760405162461bcd60e51b815260206004820152600c60248201527f5a65726f2041646472657373000000000000000000000000000000000000000060448201526064016105bf565b73ffffffffffffffffffffffffffffffffffffffff82165f8181526007602090815260409182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001685151590811790915591519182527f152286d856e9ab1167e9aa284ce3fcf03b5b13dc03f02b3dc305c0ad5dc58c09910160405180910390a25050565b5f5473ffffffffffffffffffffffffffffffffffffffff1633146108b45760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105bf565b60058267ffffffffffffffff16111580156108da575060058167ffffffffffffffff1611155b6109265760405162461bcd60e51b815260206004820152601660248201527f54617820616d6f756e7420697320746f6f20686967680000000000000000000060448201526064016105bf565b600380547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000067ffffffffffffffff85811691820292909217909255600480547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001691841691821790556040805192835260208301919091527f92ed841999156d683297df925e1cdd5889a27d1accb0315abfa1f114d41967e7910160405180910390a15050565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610a4a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105bf565b5f805460405173ffffffffffffffffffffffffffffffffffffffff909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b5f610553338484610ea5565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610b295760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105bf565b73ffffffffffffffffffffffffffffffffffffffff8116610b8c5760405162461bcd60e51b815260206004820152600c60248201527f5a65726f2041646472657373000000000000000000000000000000000000000060448201526064016105bf565b600380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83169081179091556040519081527f1ffd90b838134c6cfb56aa815cc97adc14b6cf358dc77a5ed8d8d826981f84bd90602001610694565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610c655760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105bf565b6004805467ffffffffffffffff43166a0100000000000000000000027fffffffffffffffffffffffffffff0000000000000000ff00ffffffffffffffff9091161768010000000000000000179055565b5f5473ffffffffffffffffffffffffffffffffffffffff163314610d1b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016105bf565b610d24816113d9565b50565b73ffffffffffffffffffffffffffffffffffffffff8316610daf5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f726573730000000000000000000000000000000000000000000000000000000060648201526084016105bf565b73ffffffffffffffffffffffffffffffffffffffff8216610e385760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f737300000000000000000000000000000000000000000000000000000000000060648201526084016105bf565b73ffffffffffffffffffffffffffffffffffffffff8381165f8181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff8316610f2e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f647265737300000000000000000000000000000000000000000000000000000060648201526084016105bf565b7f0000000000000000000000003edab28edb8ef8a1bcb0e9211a81ea95efe6d0cd73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fdf5760045468010000000000000000900460ff16610fdf5760405162461bcd60e51b815260206004820152601a60248201527f54726164696e67206973206e6f7420737461727465642079657400000000000060448201526064016105bf565b73ffffffffffffffffffffffffffffffffffffffff83165f9081526007602052604081205460ff16158015611039575073ffffffffffffffffffffffffffffffffffffffff83165f9081526007602052604090205460ff16155b801561105557506004546901000000000000000000900460ff16155b156111b1577f0000000000000000000000003edab28edb8ef8a1bcb0e9211a81ea95efe6d0cd73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036110d8575060035474010000000000000000000000000000000000000000900467ffffffffffffffff166111b1565b7f0000000000000000000000003edab28edb8ef8a1bcb0e9211a81ea95efe6d0cd73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111b15750600454600254305f9081526005602052604090205467ffffffffffffffff909216916fffffffffffffffffffffffffffffffff9091161180159061118e57506004544367ffffffffffffffff9081166a01000000000000000000009092041614155b156111b1576002546111b1906fffffffffffffffffffffffffffffffff166114ed565b80156112f7575f60646111c483856118da565b6111ce91906118f1565b90505f6111db82856118c7565b73ffffffffffffffffffffffffffffffffffffffff87165f908152600560205260408120805492935086929091906112149084906118c7565b909155505073ffffffffffffffffffffffffffffffffffffffff8581165f90815260056020908152604080832080548601905530808452928190208054870190555185815291928916917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a38473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112e891815260200190565b60405180910390a350506113d3565b73ffffffffffffffffffffffffffffffffffffffff84165f908152600560205260408120805484929061132b9084906118c7565b909155505073ffffffffffffffffffffffffffffffffffffffff83165f9081526005602052604081208054849290611364908490611929565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113ca91815260200190565b60405180910390a35b50505050565b73ffffffffffffffffffffffffffffffffffffffff81166114625760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016105bf565b5f805460405173ffffffffffffffffffffffffffffffffffffffff808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055565b600480547fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff1669010000000000000000001790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106115545761155461193c565b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106115b6576115b661193c565b73ffffffffffffffffffffffffffffffffffffffff92831660209182029290920101526003546040517f791ac947000000000000000000000000000000000000000000000000000000008152737a250d5630b4cf539739df2c5dacb4c659f2488d9263791ac947926116359287925f9288929116904290600401611969565b5f604051808303815f87803b15801561164c575f5ffd5b505af192505050801561165d575060015b505050600480547fffffffffffffffffffffffffffff000000000000000000ffffffffffffffffff166a01000000000000000000004367ffffffffffffffff16027fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff16179055565b602081525f82518060208401528060208501604085015e5f6040828501015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011684010191505092915050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461173b575f5ffd5b919050565b5f5f60408385031215611751575f5ffd5b61175a83611718565b946020939093013593505050565b5f60208284031215611778575f5ffd5b81356fffffffffffffffffffffffffffffffff81168114611797575f5ffd5b9392505050565b5f5f5f606084860312156117b0575f5ffd5b6117b984611718565b92506117c760208501611718565b929592945050506040919091013590565b5f5f604083850312156117e9575f5ffd5b6117f283611718565b915060208301358015158114611806575f5ffd5b809150509250929050565b803567ffffffffffffffff8116811461173b575f5ffd5b5f5f60408385031215611839575f5ffd5b61184283611811565b915061185060208401611811565b90509250929050565b5f60208284031215611869575f5ffd5b61179782611718565b5f5f60408385031215611883575f5ffd5b61188c83611718565b915061185060208401611718565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b818103818111156105575761055761189a565b80820281158282048414176105575761055761189a565b5f82611924577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500490565b808201808211156105575761055761189a565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f60a0820187835286602084015260a0604084015280865180835260c0850191506020880192505f5b818110156119c657835173ffffffffffffffffffffffffffffffffffffffff16835260209384019390920191600101611992565b505073ffffffffffffffffffffffffffffffffffffffff959095166060840152505060800152939250505056fea264697066735822122013cfacc3238ba5c282c7b8c5ff11c3fe9e855032e2f35be72be96715f473b98a64736f6c634300081c0033

Deployed Bytecode Sourcemap

3773:6769:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4270:18;;;;;;;;;;-1:-1:-1;4270:18:0;;;;;;;;;;;;;;179:14:1;;172:22;154:41;;142:2;127:18;4270::0;;;;;;;;5339:83;;;;;;;;;;-1:-1:-1;5409:5:0;;;;;;;;;;;;;;;;5339:83;;;;5409:5;5339:83;:::i;6218:186::-;;;;;;;;;;-1:-1:-1;6218:186:0;;;;;:::i;:::-;;:::i;4331:29::-;;;;;;;;;;-1:-1:-1;4331:29:0;;;;;;;;;;;;;;1368:18:1;1356:31;;;1338:50;;1326:2;1311:18;4331:29:0;1194:200:1;7471:302:0;;;;;;;;;;-1:-1:-1;7471:302:0;;;;;:::i;:::-;;:::i;:::-;;5608:100;;;;;;;;;;-1:-1:-1;3865:13:0;5608:100;;;1851:25:1;;;1839:2;1824:18;5608:100:0;1705:177:1;6412:350:0;;;;;;;;;;-1:-1:-1;6412:350:0;;;;;:::i;:::-;;:::i;7244:219::-;;;;;;;;;;-1:-1:-1;7244:219:0;;;;;:::i;:::-;;:::i;5525:75::-;;;;;;;;;;-1:-1:-1;5525:75:0;;5591:1;2760:36:1;;2748:2;2733:18;5525:75:0;2618:184:1;8017:224:0;;;;;;;;;;-1:-1:-1;8017:224:0;;;;;:::i;:::-;;:::i;4590:41::-;;;;;;;;;;-1:-1:-1;4590:41:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;3885:36;;;;;;;;;;-1:-1:-1;3885:36:0;;;;;;;;;;;3611:34:1;3599:47;;;3581:66;;3569:2;3554:18;3885:36:0;3435:218:1;4205:24:0;;;;;;;;;;-1:-1:-1;4205:24:0;;;;;;;;;;;5716:118;;;;;;;;;;-1:-1:-1;5716:118:0;;;;;:::i;:::-;5809:17;;5782:7;5809:17;;;:8;:17;;;;;;;5716:118;3149:148;;;;;;;;;;;;;:::i;2544:79::-;;;;;;;;;;-1:-1:-1;2582:7:0;2609:6;2544:79;;2609:6;;;;3804:74:1;;3792:2;3777:18;2544:79:0;3658:226:1;5842:192:0;;;;;;;;;;-1:-1:-1;5842:192:0;;;;;:::i;:::-;;:::i;7781:228::-;;;;;;;;;;-1:-1:-1;7781:228:0;;;;;:::i;:::-;;:::i;7113:123::-;;;;;;;;;;;;;:::i;4236:25::-;;;;;;;;;;-1:-1:-1;4236:25:0;;;;;;;;6042:168;;;;;;;;;;-1:-1:-1;6042:168:0;;;;;:::i;:::-;6175:18;;;;6148:7;6175:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6042:168;2758:109;;;;;;;;;;-1:-1:-1;2758:109:0;;;;;:::i;:::-;;:::i;6218:186::-;6318:4;6335:39;1333:10;6358:7;6367:6;6335:8;:39::i;:::-;-1:-1:-1;6392:4:0;6218:186;;;;;:::o;7471:302::-;2671:6;;:22;:6;1333:10;2671:22;2663:67;;;;-1:-1:-1;;;2663:67:0;;4356:2:1;2663:67:0;;;4338:21:1;;;4375:18;;;4368:30;4434:34;4414:18;;;4407:62;4486:18;;2663:67:0;;;;;;;;;7598:16:::1;:21;;7618:1;7598:21:::0;7576:100:::1;;;::::0;-1:-1:-1;;;7576:100:0;;4717:2:1;7576:100:0::1;::::0;::::1;4699:21:1::0;4756:2;4736:18;;;4729:30;4795:31;4775:18;;;4768:59;4844:18;;7576:100:0::1;4515:353:1::0;7576:100:0::1;7687:9;:28:::0;;;::::1;;::::0;::::1;::::0;;::::1;::::0;;;7731:34:::1;::::0;3581:66:1;;;7731:34:0::1;::::0;3569:2:1;3554:18;7731:34:0::1;;;;;;;;7471:302:::0;:::o;6412:350::-;6544:4;6561:36;6571:6;6579:9;6590:6;6561:9;:36::i;:::-;6679:19;;;;;;;:11;:19;;;;;;;;1333:10;6679:33;;;;;;;;;6608:124;;6631:6;;6679:42;;6715:6;;6679:42;:::i;:::-;6608:8;:124::i;:::-;-1:-1:-1;6750:4:0;6412:350;;;;;:::o;7244:219::-;2671:6;;:22;:6;1333:10;2671:22;2663:67;;;;-1:-1:-1;;;2663:67:0;;4356:2:1;2663:67:0;;;4338:21:1;;;4375:18;;;4368:30;4434:34;4414:18;;;4407:62;4486:18;;2663:67:0;4154:356:1;2663:67:0;7336:18:::1;::::0;::::1;7328:43;;;::::0;-1:-1:-1;;;7328:43:0;;5397:2:1;7328:43:0::1;::::0;::::1;5379:21:1::0;5436:2;5416:18;;;5409:30;5475:14;5455:18;;;5448:42;5507:18;;7328:43:0::1;5195:336:1::0;7328:43:0::1;7382:15;::::0;::::1;;::::0;;;:9:::1;:15;::::0;;;;;;;;:29;;;::::1;::::0;::::1;;::::0;;::::1;::::0;;;7427:28;;154:41:1;;;7427:28:0::1;::::0;127:18:1;7427:28:0::1;;;;;;;7244:219:::0;;:::o;8017:224::-;2671:6;;:22;:6;1333:10;2671:22;2663:67;;;;-1:-1:-1;;;2663:67:0;;4356:2:1;2663:67:0;;;4338:21:1;;;4375:18;;;4368:30;4434:34;4414:18;;;4407:62;4486:18;;2663:67:0;4154:356:1;2663:67:0;8105:1:::1;8098:3;:8;;;;:21;;;;;8118:1;8110:4;:9;;;;8098:21;8090:56;;;::::0;-1:-1:-1;;;8090:56:0;;5738:2:1;8090:56:0::1;::::0;::::1;5720:21:1::0;5777:2;5757:18;;;5750:30;5816:24;5796:18;;;5789:52;5858:18;;8090:56:0::1;5536:346:1::0;8090:56:0::1;8157:6;:12:::0;;;::::1;::::0;::::1;::::0;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;;8180:7:::1;:14:::0;;;::::1;::::0;;::::1;::::0;;::::1;::::0;;8210:23:::1;::::0;;6057:50:1;;;6138:2;6123:18;;6116:59;;;;8210:23:0::1;::::0;6030:18:1;8210:23:0::1;;;;;;;8017:224:::0;;:::o;3149:148::-;2671:6;;:22;:6;1333:10;2671:22;2663:67;;;;-1:-1:-1;;;2663:67:0;;4356:2:1;2663:67:0;;;4338:21:1;;;4375:18;;;4368:30;4434:34;4414:18;;;4407:62;4486:18;;2663:67:0;4154:356:1;2663:67:0;3256:1:::1;3240:6:::0;;3219:40:::1;::::0;::::1;3240:6:::0;;::::1;::::0;3219:40:::1;::::0;3256:1;;3219:40:::1;3287:1;3270:19:::0;;;::::1;::::0;;3149:148::o;5842:192::-;5945:4;5962:42;1333:10;5986:9;5997:6;5962:9;:42::i;7781:228::-;2671:6;;:22;:6;1333:10;2671:22;2663:67;;;;-1:-1:-1;;;2663:67:0;;4356:2:1;2663:67:0;;;4338:21:1;;;4375:18;;;4368:30;4434:34;4414:18;;;4407:62;4486:18;;2663:67:0;4154:356:1;2663:67:0;7869:23:::1;::::0;::::1;7861:48;;;::::0;-1:-1:-1;;;7861:48:0;;5397:2:1;7861:48:0::1;::::0;::::1;5379:21:1::0;5436:2;5416:18;;;5409:30;5475:14;5455:18;;;5448:42;5507:18;;7861:48:0::1;5195:336:1::0;7861:48:0::1;7920:15;:36:::0;;;::::1;;::::0;::::1;::::0;;::::1;::::0;;;7972:29:::1;::::0;3804:74:1;;;7972:29:0::1;::::0;3792:2:1;3777:18;7972:29:0::1;3658:226:1::0;7113:123:0;2671:6;;:22;:6;1333:10;2671:22;2663:67;;;;-1:-1:-1;;;2663:67:0;;4356:2:1;2663:67:0;;;4338:21:1;;;4375:18;;;4368:30;4434:34;4414:18;;;4407:62;4486:18;;2663:67:0;4154:356:1;2663:67:0;7166:6:::1;:13:::0;;7190:38:::1;7215:12;7190:38;::::0;::::1;::::0;;;;;7166:13;7190:38;;;7113:123::o;2758:109::-;2671:6;;:22;:6;1333:10;2671:22;2663:67;;;;-1:-1:-1;;;2663:67:0;;4356:2:1;2663:67:0;;;4338:21:1;;;4375:18;;;4368:30;4434:34;4414:18;;;4407:62;4486:18;;2663:67:0;4154:356:1;2663:67:0;2831:28:::1;2850:8;2831:18;:28::i;:::-;2758:109:::0;:::o;6770:335::-;6863:19;;;6855:68;;;;-1:-1:-1;;;6855:68:0;;6388:2:1;6855:68:0;;;6370:21:1;6427:2;6407:18;;;6400:30;6466:34;6446:18;;;6439:62;6537:6;6517:18;;;6510:34;6561:19;;6855:68:0;6186:400:1;6855:68:0;6942:21;;;6934:68;;;;-1:-1:-1;;;6934:68:0;;6793:2:1;6934:68:0;;;6775:21:1;6832:2;6812:18;;;6805:30;6871:34;6851:18;;;6844:62;6942:4;6922:18;;;6915:32;6964:19;;6934:68:0;6591:398:1;6934:68:0;7013:18;;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7065:32;;1851:25:1;;;7065:32:0;;1824:18:1;7065:32:0;;;;;;;6770:335;;;:::o;8249:1477::-;8337:18;;;8329:68;;;;-1:-1:-1;;;8329:68:0;;7196:2:1;8329:68:0;;;7178:21:1;7235:2;7215:18;;;7208:30;7274:34;7254:18;;;7247:62;7345:7;7325:18;;;7318:35;7370:19;;8329:68:0;6994:401:1;8329:68:0;8420:13;8412:21;;:4;:21;;;8408:72;;8443:6;;;;;;;8435:45;;;;-1:-1:-1;;;8435:45:0;;7602:2:1;8435:45:0;;;7584:21:1;7641:2;7621:18;;;7614:30;7680:28;7660:18;;;7653:56;7726:18;;8435:45:0;7400:350:1;8435:45:0;8546:15;;;8491:12;8546:15;;;:9;:15;;;;;;;;8545:16;:34;;;;-1:-1:-1;8566:13:0;;;;;;;:9;:13;;;;;;;;8565:14;8545:34;8544:57;;;;-1:-1:-1;8585:16:0;;;;;;;8584:17;8544:57;8540:478;;;8630:13;8622:21;;:4;:21;;;8618:389;;-1:-1:-1;8695:6:0;;;;;;;8618:389;;;8733:13;8727:19;;:2;:19;;;8723:284;;-1:-1:-1;8799:7:0;;8878:9;;8868:4;8799:7;8851:23;;;:8;:23;;;;;;8799:7;;;;;8878:9;;;;-1:-1:-1;8851:36:0;;;:100;;-1:-1:-1;8912:15:0;;8938:12;8912:39;;;;:15;;;;;:39;;8851:100;8825:166;;;8981:9;;8971:20;;8981:9;;8971;:20::i;:::-;9080:9;;9076:643;;9135:17;9173:3;9156:13;9165:4;9156:6;:13;:::i;:::-;9155:21;;;;:::i;:::-;9135:41;-1:-1:-1;9191:22:0;9216:18;9135:41;9216:6;:18;:::i;:::-;9251:14;;;;;;;:8;:14;;;;;:24;;9191:43;;-1:-1:-1;9269:6:0;;9251:14;;;:24;;9269:6;;9251:24;:::i;:::-;;;;-1:-1:-1;;9319:12:0;;;;;;;;:8;:12;;;;;;;;:30;;;;;;9385:4;9368:23;;;;;;;:36;;;;;;9441:40;1851:25:1;;;9385:4:0;;9441:40;;;;;1824:18:1;9441:40:0;;;;;;;9516:2;9501:34;;9510:4;9501:34;;;9520:14;9501:34;;;;1851:25:1;;1839:2;1824:18;;1705:177;9501:34:0;;;;;;;;9091:456;;9076:643;;;9600:14;;;;;;;:8;:14;;;;;:24;;9618:6;;9600:14;:24;;9618:6;;9600:24;:::i;:::-;;;;-1:-1:-1;;9639:12:0;;;;;;;:8;:12;;;;;:22;;9655:6;;9639:12;:22;;9655:6;;9639:22;:::i;:::-;;;;;;;;9696:2;9681:26;;9690:4;9681:26;;;9700:6;9681:26;;;;1851:25:1;;1839:2;1824:18;;1705:177;9681:26:0;;;;;;;;9076:643;8318:1408;8249:1477;;;:::o;2875:266::-;2963:22;;;2941:110;;;;-1:-1:-1;;;2941:110:0;;8539:2:1;2941:110:0;;;8521:21:1;8578:2;8558:18;;;8551:30;8617:34;8597:18;;;8590:62;8688:8;8668:18;;;8661:36;8714:19;;2941:110:0;8337:402:1;2941:110:0;3088:6;;;3067:38;;;;;;;3088:6;;;3067:38;;;3116:6;:17;;;;;;;;;;;;;;;2875:266::o;9734:563::-;9795:16;:23;;;;;;;;9855:16;;;9869:1;9855:16;;;;;;;;-1:-1:-1;;9855:16:0;;;;;;;;;;-1:-1:-1;9855:16:0;9831:40;;9900:4;9882;9887:1;9882:7;;;;;;;;:::i;:::-;;;;;;:23;;;;;;;;;;;4116:42;9916:4;9921:1;9916:7;;;;;;;;:::i;:::-;:14;;;;:7;;;;;;;;;:14;10119:15;;9960:223;;;;;4004:42;;9960:66;;:223;;10045:12;;10076:1;;10096:4;;10119:15;;;10153;;9960:223;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9943:261;-1:-1:-1;;10216:15:0;:38;;10265:24;;10216:38;10241:12;10216:38;;;10265:24;;;;;9734:563::o;206:477:1:-;355:2;344:9;337:21;318:4;387:6;381:13;430:6;425:2;414:9;410:18;403:34;489:6;484:2;476:6;472:15;467:2;456:9;452:18;446:50;545:1;540:2;531:6;520:9;516:22;512:31;505:42;674:2;604:66;599:2;591:6;587:15;583:88;572:9;568:104;564:113;556:121;;;206:477;;;;:::o;688:196::-;756:20;;816:42;805:54;;795:65;;785:93;;874:1;871;864:12;785:93;688:196;;;:::o;889:300::-;957:6;965;1018:2;1006:9;997:7;993:23;989:32;986:52;;;1034:1;1031;1024:12;986:52;1057:29;1076:9;1057:29;:::i;:::-;1047:39;1155:2;1140:18;;;;1127:32;;-1:-1:-1;;;889:300:1:o;1399:301::-;1458:6;1511:2;1499:9;1490:7;1486:23;1482:32;1479:52;;;1527:1;1524;1517:12;1479:52;1566:9;1553:23;1616:34;1609:5;1605:46;1598:5;1595:57;1585:85;;1666:1;1663;1656:12;1585:85;1689:5;1399:301;-1:-1:-1;;;1399:301:1:o;1887:374::-;1964:6;1972;1980;2033:2;2021:9;2012:7;2008:23;2004:32;2001:52;;;2049:1;2046;2039:12;2001:52;2072:29;2091:9;2072:29;:::i;:::-;2062:39;;2120:38;2154:2;2143:9;2139:18;2120:38;:::i;:::-;1887:374;;2110:48;;-1:-1:-1;;;2227:2:1;2212:18;;;;2199:32;;1887:374::o;2266:347::-;2331:6;2339;2392:2;2380:9;2371:7;2367:23;2363:32;2360:52;;;2408:1;2405;2398:12;2360:52;2431:29;2450:9;2431:29;:::i;:::-;2421:39;;2510:2;2499:9;2495:18;2482:32;2557:5;2550:13;2543:21;2536:5;2533:32;2523:60;;2579:1;2576;2569:12;2523:60;2602:5;2592:15;;;2266:347;;;;;:::o;2807:171::-;2874:20;;2934:18;2923:30;;2913:41;;2903:69;;2968:1;2965;2958:12;2983:256;3049:6;3057;3110:2;3098:9;3089:7;3085:23;3081:32;3078:52;;;3126:1;3123;3116:12;3078:52;3149:28;3167:9;3149:28;:::i;:::-;3139:38;;3196:37;3229:2;3218:9;3214:18;3196:37;:::i;:::-;3186:47;;2983:256;;;;;:::o;3244:186::-;3303:6;3356:2;3344:9;3335:7;3331:23;3327:32;3324:52;;;3372:1;3369;3362:12;3324:52;3395:29;3414:9;3395:29;:::i;3889:260::-;3957:6;3965;4018:2;4006:9;3997:7;3993:23;3989:32;3986:52;;;4034:1;4031;4024:12;3986:52;4057:29;4076:9;4057:29;:::i;:::-;4047:39;;4105:38;4139:2;4128:9;4124:18;4105:38;:::i;4873:184::-;4925:77;4922:1;4915:88;5022:4;5019:1;5012:15;5046:4;5043:1;5036:15;5062:128;5129:9;;;5150:11;;;5147:37;;;5164:18;;:::i;7755:168::-;7828:9;;;7859;;7876:15;;;7870:22;;7856:37;7846:71;;7897:18;;:::i;7928:274::-;7968:1;7994;7984:189;;8029:77;8026:1;8019:88;8130:4;8127:1;8120:15;8158:4;8155:1;8148:15;7984:189;-1:-1:-1;8187:9:1;;7928:274::o;8207:125::-;8272:9;;;8293:10;;;8290:36;;;8306:18;;:::i;8933:184::-;8985:77;8982:1;8975:88;9082:4;9079:1;9072:15;9106:4;9103:1;9096:15;9122:1013;9392:4;9440:3;9429:9;9425:19;9471:6;9460:9;9453:25;9514:6;9509:2;9498:9;9494:18;9487:34;9557:3;9552:2;9541:9;9537:18;9530:31;9581:6;9616;9610:13;9647:6;9639;9632:22;9685:3;9674:9;9670:19;9663:26;;9724:2;9716:6;9712:15;9698:29;;9745:1;9755:218;9769:6;9766:1;9763:13;9755:218;;;9834:13;;9849:42;9830:62;9818:75;;9922:2;9948:15;;;;9913:12;;;;9791:1;9784:9;9755:218;;;-1:-1:-1;;10041:42:1;10029:55;;;;10024:2;10009:18;;10002:83;-1:-1:-1;;10116:3:1;10101:19;10094:35;9990:3;9122:1013;-1:-1:-1;;;9122:1013:1:o

Swarm Source

ipfs://13cfacc3238ba5c282c7b8c5ff11c3fe9e855032e2f35be72be96715f473b98a

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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