ETH Price: $3,592.10 (+3.61%)
 

Overview

ETH Balance

1 wei

Eth Value

Less Than $0.01 (@ $3,592.10/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Transfer199116002024-05-20 14:01:11228 days ago1716213671IN
0x6B4d5915...F3998e98D
0 ETH0.000582987.96411743
Transfer198216692024-05-08 0:09:11241 days ago1715126951IN
0x6B4d5915...F3998e98D
0 ETH0.000441456.03259863
Transfer198216652024-05-08 0:08:23241 days ago1715126903IN
0x6B4d5915...F3998e98D
0 ETH0.000415275.67485018
Approve184552952023-10-29 10:38:23432 days ago1698575903IN
0x6B4d5915...F3998e98D
0 ETH0.0005368711.55182238
Approve184469832023-10-28 6:42:47433 days ago1698475367IN
0x6B4d5915...F3998e98D
0 ETH0.0005333711.46182751
Approve184016112023-10-21 22:17:47440 days ago1697926667IN
0x6B4d5915...F3998e98D
0 ETH0.000408918.79859676
Approve183982242023-10-21 10:55:35440 days ago1697885735IN
0x6B4d5915...F3998e98D
0 ETH0.000297456.43863215
Approve183891352023-10-20 4:24:47441 days ago1697775887IN
0x6B4d5915...F3998e98D
0 ETH0.0005913512.70775171
Approve183882482023-10-20 1:26:35442 days ago1697765195IN
0x6B4d5915...F3998e98D
0 ETH0.0006980215
Approve183861102023-10-19 18:16:47442 days ago1697739407IN
0x6B4d5915...F3998e98D
0 ETH0.0008454318.16773398
Approve183786712023-10-18 17:17:47443 days ago1697649467IN
0x6B4d5915...F3998e98D
0 ETH0.0007319315.84303272
Approve183756212023-10-18 7:01:35443 days ago1697612495IN
0x6B4d5915...F3998e98D
0 ETH0.000336527.24093811
Approve183731772023-10-17 22:49:23444 days ago1697582963IN
0x6B4d5915...F3998e98D
0 ETH0.000223567.68288295
Approve183731442023-10-17 22:42:47444 days ago1697582567IN
0x6B4d5915...F3998e98D
0 ETH0.000369397.99774926
Approve183727002023-10-17 21:13:23444 days ago1697577203IN
0x6B4d5915...F3998e98D
0 ETH0.00038788.34431097
Approve183724822023-10-17 20:29:47444 days ago1697574587IN
0x6B4d5915...F3998e98D
0 ETH0.000691914.86842064
Approve183722302023-10-17 19:38:59444 days ago1697571539IN
0x6B4d5915...F3998e98D
0 ETH0.000709215.24035665
Approve183717812023-10-17 18:08:23444 days ago1697566103IN
0x6B4d5915...F3998e98D
0 ETH0.0005568311.98137615
Approve183700132023-10-17 12:11:59444 days ago1697544719IN
0x6B4d5915...F3998e98D
0 ETH0.000316596.81214399
Approve183696502023-10-17 10:58:47444 days ago1697540327IN
0x6B4d5915...F3998e98D
0 ETH0.000260585.60704043
Approve183691612023-10-17 9:20:59444 days ago1697534459IN
0x6B4d5915...F3998e98D
0 ETH0.000375188.06250505
Approve183689552023-10-17 8:39:35444 days ago1697531975IN
0x6B4d5915...F3998e98D
0 ETH0.0002987611.33955687
Approve183689552023-10-17 8:39:35444 days ago1697531975IN
0x6B4d5915...F3998e98D
0 ETH0.0002987611.33955687
Approve183689552023-10-17 8:39:35444 days ago1697531975IN
0x6B4d5915...F3998e98D
0 ETH0.0002987611.33955687
Approve183689132023-10-17 8:31:11444 days ago1697531471IN
0x6B4d5915...F3998e98D
0 ETH0.0004927910.6556438
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
183731882023-10-17 22:51:35444 days ago1697583095
0x6B4d5915...F3998e98D
0.00088484 ETH
183731882023-10-17 22:51:35444 days ago1697583095
0x6B4d5915...F3998e98D
0.00501413 ETH
183731882023-10-17 22:51:35444 days ago1697583095
0x6B4d5915...F3998e98D
0.00589898 ETH
183694852023-10-17 10:25:47444 days ago1697538347
0x6B4d5915...F3998e98D
0.00115826 ETH
183694852023-10-17 10:25:47444 days ago1697538347
0x6B4d5915...F3998e98D
0.00656352 ETH
183694852023-10-17 10:25:47444 days ago1697538347
0x6B4d5915...F3998e98D
0.00772179 ETH
183684362023-10-17 6:54:47444 days ago1697525687
0x6B4d5915...F3998e98D
0.00151586 ETH
183684362023-10-17 6:54:47444 days ago1697525687
0x6B4d5915...F3998e98D
0.00858991 ETH
183684362023-10-17 6:54:47444 days ago1697525687
0x6B4d5915...F3998e98D
0.01010577 ETH
183681382023-10-17 5:53:59444 days ago1697522039
0x6B4d5915...F3998e98D
0.00213587 ETH
183681382023-10-17 5:53:59444 days ago1697522039
0x6B4d5915...F3998e98D
0.01210329 ETH
183681382023-10-17 5:53:59444 days ago1697522039
0x6B4d5915...F3998e98D
0.01423916 ETH
183676062023-10-17 4:07:11444 days ago1697515631
0x6B4d5915...F3998e98D
0.00179511 ETH
183676062023-10-17 4:07:11444 days ago1697515631
0x6B4d5915...F3998e98D
0.01017232 ETH
183676062023-10-17 4:07:11444 days ago1697515631
0x6B4d5915...F3998e98D
0.01196744 ETH
183675332023-10-17 3:52:35444 days ago1697514755
0x6B4d5915...F3998e98D
0.00257418 ETH
183675332023-10-17 3:52:35444 days ago1697514755
0x6B4d5915...F3998e98D
0.01458703 ETH
183675332023-10-17 3:52:35444 days ago1697514755
0x6B4d5915...F3998e98D
0.01716121 ETH
183675292023-10-17 3:51:47444 days ago1697514707
0x6B4d5915...F3998e98D
0.01716121 ETH
183674992023-10-17 3:45:35444 days ago1697514335
0x6B4d5915...F3998e98D
0.00374452 ETH
183674992023-10-17 3:45:35444 days ago1697514335
0x6B4d5915...F3998e98D
0.02121899 ETH
183674992023-10-17 3:45:35444 days ago1697514335
0x6B4d5915...F3998e98D
0.02496352 ETH
183670222023-10-17 2:09:23445 days ago1697508563
0x6B4d5915...F3998e98D
0.00401505 ETH
183670222023-10-17 2:09:23445 days ago1697508563
0x6B4d5915...F3998e98D
0.02275195 ETH
183670222023-10-17 2:09:23445 days ago1697508563
0x6B4d5915...F3998e98D
0.026767 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
OGAMAToken

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-10-16
*/

// SPDX-License-Identifier: UNLICENSED

/*

Web: https://ogama.vip
TG: https://t.me/OGAMAtoken
X: https://x.com/OGAMAtoken

*/

pragma solidity 0.8.17;

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 ERC20 {
    function getOwner() external view returns (address);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address _owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

abstract contract Auth {
    address public owner;

    constructor(address _owner) {
        owner = _owner;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }

    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function renounceOwnership() external onlyOwner {
        owner = address(0);
        emit OwnershipTransferred(owner);
    }
    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
}

contract OGAMAToken is ERC20, Auth {
    using SafeMath for uint256;

    address immutable WETH;
    address constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address constant ZERO = 0x0000000000000000000000000000000000000000;

    string public constant name = "OGAMA";
    string public constant symbol = "$OGAMA";
    uint8 public constant decimals = 18;

    uint256 public constant totalSupply = 1_000_000 * 10**decimals;

    uint256 public _maxWalletToken = totalSupply / 100;

    mapping (address => uint256) public balanceOf;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) public isWalletLimitExempt;

    uint256 public marketingFee = 85;
    uint256 public developmentFee = 15;
    uint256 public totalFee = marketingFee + developmentFee;
    uint256 public constant feeDenominator = 1000;
    
    uint256 buyMultiplier = 250;
    uint256 sellMultiplier = 500;
    uint256 transferMultiplier = 100;

    address public marketingFeeReceiver;
    address public developmentFeeReceiver;

    IDEXRouter public router;
    address public immutable pair;

    bool public tradingOpen = false;

    bool public swapEnabled = true;
    uint256 public swapThreshold = totalSupply / 100;
    
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        WETH = router.WETH();

        pair = IDEXFactory(router.factory()).createPair(WETH, address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;

        marketingFeeReceiver = 0xc9a3E1dcaA4EeeB871D71BD5417530294424ba7b;
        developmentFeeReceiver = 0x51e0537bD37Ae2021fCeC27e6E0D0698276759d2;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[marketingFeeReceiver] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[marketingFeeReceiver] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[DEAD] = true;

        balanceOf[msg.sender] = totalSupply;
        emit Transfer(address(0), msg.sender, totalSupply);
    }

    receive() external payable { }

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function setMaxWalletPercent(uint256 _newmaxwallet) external onlyOwner {
        require(_newmaxwallet >= 1,"Cannot set max wallet less than 1%");
        _maxWalletToken = (totalSupply * _newmaxwallet ) / 100;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!isFeeExempt[sender]){
            require(tradingOpen,"trading not open yet");
        }

        if (!isWalletLimitExempt[sender] && !isWalletLimitExempt[recipient] && recipient != pair) {
            require((balanceOf[recipient] + amount) <= _maxWalletToken,"max wallet limit reached");
        }

        if(shouldSwapBack()){ swapBack(); }

        balanceOf[sender] = balanceOf[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = (isFeeExempt[sender] || isFeeExempt[recipient]) ? amount : takeFee(sender, amount, recipient);

        balanceOf[recipient] = balanceOf[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        balanceOf[sender] = balanceOf[sender].sub(amount, "Insufficient Balance");
        balanceOf[recipient] = balanceOf[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        if(amount == 0 || totalFee == 0){
            return amount;
        }

        uint256 multiplier = transferMultiplier;

        if(recipient == pair) {
            multiplier = sellMultiplier;
        } else if(sender == pair) {
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);

        if(feeAmount > 0){
            balanceOf[address(this)] = balanceOf[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
        }

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && balanceOf[address(this)] >= swapThreshold;
    }

    function manualSwap() external {
        payable(developmentFeeReceiver).transfer(address(this).balance);
    }

    function openTrading() external onlyOwner {
        tradingOpen = true;
    }

    function swapBack() internal swapping {

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

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            swapThreshold,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance;

        uint256 amountETHMarketing = (amountETH * marketingFee) / totalFee;
        uint256 amountETHDevelopment = (amountETH * developmentFee) / totalFee;

        payable(marketingFeeReceiver).transfer(amountETHMarketing);
        payable(developmentFeeReceiver).transfer(amountETHDevelopment);
    }

    function setMultipliers(uint256 _buy, uint256 _sell, uint256 _trans) external onlyOwner {
        sellMultiplier = _sell;
        buyMultiplier = _buy;
        transferMultiplier = _trans;
    }

    function setSwapBackSettings(bool _enabled, uint256 _denominator) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = totalSupply / _denominator;
    }

    function getCirculatingSupply() public view returns (uint256) {
        return (totalSupply - balanceOf[DEAD] - balanceOf[ZERO]);
    }
}

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":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"developmentFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"developmentFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isWalletLimitExempt","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","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":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newmaxwallet","type":"uint256"}],"name":"setMaxWalletPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setMultipliers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60c06040526064620000146012600a620004d6565b6200002390620f4240620004ee565b6200002f919062000508565b60015560556006819055600f60078190556200004b916200052b565b60085560fa6009556101f4600a9081556064600b819055600e805461ffff60a01b1916600160a81b179055906200008590601290620004d6565b6200009490620f4240620004ee565b620000a0919062000508565b600f55348015620000b057600080fd5b5060008054336001600160a01b031991821617909155600e8054737a250d5630b4cf539739df2c5dacb4c659f2488d921682179055604080516315ab88c960e31b8152905163ad5c4648916004808201926020929091908290030181865afa15801562000121573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000147919062000541565b6001600160a01b03908116608052600e546040805163c45a015560e01b81529051919092169163c45a01559160048083019260209291908290030181865afa15801562000198573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001be919062000541565b6080516040516364e329cb60e11b81526001600160a01b03918216600482015230602482015291169063c9c65396906044016020604051808303816000875af115801562000210573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000236919062000541565b6001600160a01b0390811660a052306000818152600360209081526040808320600e548616845282528083206000199055600c80546001600160a01b031990811673c9a3e1dcaa4eeeb871d71bd5417530294424ba7b178255600d80549091167351e0537bd37ae2021fcec27e6e0d0698276759d21790553380855260048452828520805460ff199081166001908117909255835489168752848720805482168317905591865260059094528285208054821685179055905490951683528083208054861683179055928252918120805484168317905561dead90527f7d509c07f0d4edcc2dd1b53aae68677132eb562dcba78e36381b63ccaf66e6ba8054909216179055620003496012600a620004d6565b6200035890620f4240620004ee565b33600081815260026020526040812092909255907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200039b6012600a620004d6565b620003aa90620f4240620004ee565b60405190815260200160405180910390a36200056c565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000418578160001904821115620003fc57620003fc620003c1565b808516156200040a57918102915b93841c9390800290620003dc565b509250929050565b6000826200043157506001620004d0565b816200044057506000620004d0565b8160018114620004595760028114620004645762000484565b6001915050620004d0565b60ff841115620004785762000478620003c1565b50506001821b620004d0565b5060208310610133831016604e8410600b8410161715620004a9575081810a620004d0565b620004b58383620003d7565b8060001904821115620004cc57620004cc620003c1565b0290505b92915050565b6000620004e760ff84168362000420565b9392505050565b8082028115828204841417620004d057620004d0620003c1565b6000826200052657634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115620004d057620004d0620003c1565b6000602082840312156200055457600080fd5b81516001600160a01b0381168114620004e757600080fd5b60805160a05161180a620005ae6000396000818161057201528181610c1701528181610f100152818161117501526111a901526000610fda015261180a6000f3fe6080604052600436106101fd5760003560e01c806370a082311161010d578063a8aa1b31116100a0578063dd62ed3e1161006f578063dd62ed3e146105f9578063df20fd491461063f578063e96fada21461065f578063f887ea401461067f578063ffb54a991461069f57600080fd5b8063a8aa1b3114610560578063a9059cbb14610594578063c867d60b146105b4578063c9567bf9146105e457600080fd5b8063893d20e8116100dc578063893d20e8146104da5780638da5cb5b146104f857806395d89b4114610518578063a5f3d0031461054a57600080fd5b806370a0823114610462578063715018a61461048f57806378109e54146104a457806382bf293c146104ba57600080fd5b80632f54bf6e11610190578063571ac8b01161015f578063571ac8b0146103b35780636b67c4df146103d35780636ce46bc3146103e95780636ddd1713146104095780636ec518b81461042a57600080fd5b80632f54bf6e14610316578063313ce567146103455780633f4218e01461036c57806351bc3c851461039c57600080fd5b806318160ddd116101cc57806318160ddd146102b65780631df4ccfc146102cb57806323b872dd146102e15780632b112e491461030157600080fd5b80630445b6671461020957806306fdde0314610232578063095ea7b314610270578063180b0d7e146102a057600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5061021f600f5481565b6040519081526020015b60405180910390f35b34801561023e57600080fd5b50610263604051806040016040528060058152602001644f47414d4160d81b81525081565b604051610229919061143f565b34801561027c57600080fd5b5061029061028b3660046114a9565b6106c0565b6040519015158152602001610229565b3480156102ac57600080fd5b5061021f6103e881565b3480156102c257600080fd5b5061021f61072d565b3480156102d757600080fd5b5061021f60085481565b3480156102ed57600080fd5b506102906102fc3660046114d3565b610749565b34801561030d57600080fd5b5061021f61080b565b34801561032257600080fd5b5061029061033136600461150f565b6000546001600160a01b0391821691161490565b34801561035157600080fd5b5061035a601281565b60405160ff9091168152602001610229565b34801561037857600080fd5b5061029061038736600461150f565b60046020526000908152604090205460ff1681565b3480156103a857600080fd5b506103b1610891565b005b3480156103bf57600080fd5b506102906103ce36600461150f565b6108cd565b3480156103df57600080fd5b5061021f60065481565b3480156103f557600080fd5b506103b161040436600461152a565b6108db565b34801561041557600080fd5b50600e5461029090600160a81b900460ff1681565b34801561043657600080fd5b50600d5461044a906001600160a01b031681565b6040516001600160a01b039091168152602001610229565b34801561046e57600080fd5b5061021f61047d36600461150f565b60026020526000908152604090205481565b34801561049b57600080fd5b506103b161091f565b3480156104b057600080fd5b5061021f60015481565b3480156104c657600080fd5b506103b16104d5366004611556565b61098e565b3480156104e657600080fd5b506000546001600160a01b031661044a565b34801561050457600080fd5b5060005461044a906001600160a01b031681565b34801561052457600080fd5b5061026360405180604001604052806006815260200165244f47414d4160d01b81525081565b34801561055657600080fd5b5061021f60075481565b34801561056c57600080fd5b5061044a7f000000000000000000000000000000000000000000000000000000000000000081565b3480156105a057600080fd5b506102906105af3660046114a9565b610a4a565b3480156105c057600080fd5b506102906105cf36600461150f565b60056020526000908152604090205460ff1681565b3480156105f057600080fd5b506103b1610a57565b34801561060557600080fd5b5061021f61061436600461156f565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561064b57600080fd5b506103b161065a3660046115a2565b610a96565b34801561066b57600080fd5b50600c5461044a906001600160a01b031681565b34801561068b57600080fd5b50600e5461044a906001600160a01b031681565b3480156106ab57600080fd5b50600e5461029090600160a01b900460ff1681565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061071b9086815260200190565b60405180910390a35060015b92915050565b6107396012600a6116bf565b61074690620f42406116ce565b81565b6001600160a01b0383166000908152600360209081526040808320338452909152812054600019146107f6576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526003825283812033825290915291909120546107d1918490610b02565b6001600160a01b03851660009081526003602090815260408083203384529091529020555b610801848484610b3c565b90505b9392505050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5490919061086b6012600a6116bf565b61087890620f42406116ce565b61088291906116e5565b61088c91906116e5565b905090565b600d546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156108ca573d6000803e3d6000fd5b50565b6000610727826000196106c0565b6000546001600160a01b0316331461090e5760405162461bcd60e51b8152600401610905906116f8565b60405180910390fd5b600a91909155600991909155600b55565b6000546001600160a01b031633146109495760405162461bcd60e51b8152600401610905906116f8565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146109b85760405162461bcd60e51b8152600401610905906116f8565b6001811015610a145760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015261312560f01b6064820152608401610905565b606481610a236012600a6116bf565b610a3090620f42406116ce565b610a3a91906116ce565b610a449190611718565b60015550565b6000610804338484610b3c565b6000546001600160a01b03163314610a815760405162461bcd60e51b8152600401610905906116f8565b600e805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610ac05760405162461bcd60e51b8152600401610905906116f8565b600e805460ff60a81b1916600160a81b8415150217905580610ae46012600a6116bf565b610af190620f42406116ce565b610afb9190611718565b600f555050565b60008184841115610b265760405162461bcd60e51b8152600401610905919061143f565b506000610b3384866116e5565b95945050505050565b60105460009060ff1615610b5c57610b55848484610e1d565b9050610804565b6001600160a01b03841660009081526004602052604090205460ff16610bcc57600e54600160a01b900460ff16610bcc5760405162461bcd60e51b81526020600482015260146024820152731d1c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610905565b6001600160a01b03841660009081526005602052604090205460ff16158015610c0e57506001600160a01b03831660009081526005602052604090205460ff16155b8015610c4c57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b15610cc6576001546001600160a01b038416600090815260026020526040902054610c7890849061173a565b1115610cc65760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610905565b610cce610f03565b15610cdb57610cdb610f76565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260029091529190912054610d2d918490610b02565b6001600160a01b038516600090815260026020908152604080832093909355600490529081205460ff1680610d7a57506001600160a01b03841660009081526004602052604090205460ff165b610d8e57610d8985848661114d565b610d90565b825b6001600160a01b038516600090815260026020526040902054909150610db690826112ac565b6001600160a01b0380861660008181526002602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e0a9085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600290915291822054610e6e918490610b02565b6001600160a01b038086166000908152600260205260408082209390935590851681522054610e9d90836112ac565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ef19086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614801590610f41575060105460ff16155b8015610f565750600e54600160a81b900460ff165b801561088c575050600f5430600090815260026020526040902054101590565b6010805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610fb857610fb861174d565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061100c5761100c61174d565b6001600160a01b039283166020918202929092010152600e54600f5460405163791ac94760e01b8152919092169163791ac947916110569190600090869030904290600401611763565b600060405180830381600087803b15801561107057600080fd5b505af1158015611084573d6000803e3d6000fd5b50506008546006544793506000925061109d90846116ce565b6110a79190611718565b90506000600854600754846110bc91906116ce565b6110c69190611718565b600c546040519192506001600160a01b03169083156108fc029084906000818181858888f19350505050158015611101573d6000803e3d6000fd5b50600d546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561113c573d6000803e3d6000fd5b50506010805460ff19169055505050565b600082158061115c5750600854155b15611168575081610804565b600b546001600160a01b037f00000000000000000000000000000000000000000000000000000000000000008116908416036111a75750600a546111e5565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316856001600160a01b0316036111e557506009545b600061121c6111f76103e860646116ce565b611216846112106008548a61130b90919063ffffffff16565b9061130b565b9061138d565b90508015611298573060009081526002602052604090205461123e90826112ac565b30600081815260026020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061128f9085815260200190565b60405180910390a35b6112a285826113cf565b9695505050505050565b6000806112b9838561173a565b9050838110156108045760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610905565b60008260000361131d57506000610727565b600061132983856116ce565b9050826113368583611718565b146108045760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610905565b600061080483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611411565b600061080483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b02565b600081836114325760405162461bcd60e51b8152600401610905919061143f565b506000610b338486611718565b600060208083528351808285015260005b8181101561146c57858101830151858201604001528201611450565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146114a457600080fd5b919050565b600080604083850312156114bc57600080fd5b6114c58361148d565b946020939093013593505050565b6000806000606084860312156114e857600080fd5b6114f18461148d565b92506114ff6020850161148d565b9150604084013590509250925092565b60006020828403121561152157600080fd5b6108048261148d565b60008060006060848603121561153f57600080fd5b505081359360208301359350604090920135919050565b60006020828403121561156857600080fd5b5035919050565b6000806040838503121561158257600080fd5b61158b8361148d565b91506115996020840161148d565b90509250929050565b600080604083850312156115b557600080fd5b823580151581146114c557600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b808511156116165781600019048211156115fc576115fc6115c5565b8085161561160957918102915b93841c93908002906115e0565b509250929050565b60008261162d57506001610727565b8161163a57506000610727565b8160018114611650576002811461165a57611676565b6001915050610727565b60ff84111561166b5761166b6115c5565b50506001821b610727565b5060208310610133831016604e8410600b8410161715611699575081810a610727565b6116a383836115db565b80600019048211156116b7576116b76115c5565b029392505050565b600061080460ff84168361161e565b8082028115828204841417610727576107276115c5565b81810381811115610727576107276115c5565b60208082526006908201526510a7aba722a960d11b604082015260600190565b60008261173557634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610727576107276115c5565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117b35784516001600160a01b03168352938301939183019160010161178e565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122016fc2010bd2cff0c1bfc9876982edadca150d3618a2a8ad36f806e136af2a8d664736f6c63430008110033

Deployed Bytecode

0x6080604052600436106101fd5760003560e01c806370a082311161010d578063a8aa1b31116100a0578063dd62ed3e1161006f578063dd62ed3e146105f9578063df20fd491461063f578063e96fada21461065f578063f887ea401461067f578063ffb54a991461069f57600080fd5b8063a8aa1b3114610560578063a9059cbb14610594578063c867d60b146105b4578063c9567bf9146105e457600080fd5b8063893d20e8116100dc578063893d20e8146104da5780638da5cb5b146104f857806395d89b4114610518578063a5f3d0031461054a57600080fd5b806370a0823114610462578063715018a61461048f57806378109e54146104a457806382bf293c146104ba57600080fd5b80632f54bf6e11610190578063571ac8b01161015f578063571ac8b0146103b35780636b67c4df146103d35780636ce46bc3146103e95780636ddd1713146104095780636ec518b81461042a57600080fd5b80632f54bf6e14610316578063313ce567146103455780633f4218e01461036c57806351bc3c851461039c57600080fd5b806318160ddd116101cc57806318160ddd146102b65780631df4ccfc146102cb57806323b872dd146102e15780632b112e491461030157600080fd5b80630445b6671461020957806306fdde0314610232578063095ea7b314610270578063180b0d7e146102a057600080fd5b3661020457005b600080fd5b34801561021557600080fd5b5061021f600f5481565b6040519081526020015b60405180910390f35b34801561023e57600080fd5b50610263604051806040016040528060058152602001644f47414d4160d81b81525081565b604051610229919061143f565b34801561027c57600080fd5b5061029061028b3660046114a9565b6106c0565b6040519015158152602001610229565b3480156102ac57600080fd5b5061021f6103e881565b3480156102c257600080fd5b5061021f61072d565b3480156102d757600080fd5b5061021f60085481565b3480156102ed57600080fd5b506102906102fc3660046114d3565b610749565b34801561030d57600080fd5b5061021f61080b565b34801561032257600080fd5b5061029061033136600461150f565b6000546001600160a01b0391821691161490565b34801561035157600080fd5b5061035a601281565b60405160ff9091168152602001610229565b34801561037857600080fd5b5061029061038736600461150f565b60046020526000908152604090205460ff1681565b3480156103a857600080fd5b506103b1610891565b005b3480156103bf57600080fd5b506102906103ce36600461150f565b6108cd565b3480156103df57600080fd5b5061021f60065481565b3480156103f557600080fd5b506103b161040436600461152a565b6108db565b34801561041557600080fd5b50600e5461029090600160a81b900460ff1681565b34801561043657600080fd5b50600d5461044a906001600160a01b031681565b6040516001600160a01b039091168152602001610229565b34801561046e57600080fd5b5061021f61047d36600461150f565b60026020526000908152604090205481565b34801561049b57600080fd5b506103b161091f565b3480156104b057600080fd5b5061021f60015481565b3480156104c657600080fd5b506103b16104d5366004611556565b61098e565b3480156104e657600080fd5b506000546001600160a01b031661044a565b34801561050457600080fd5b5060005461044a906001600160a01b031681565b34801561052457600080fd5b5061026360405180604001604052806006815260200165244f47414d4160d01b81525081565b34801561055657600080fd5b5061021f60075481565b34801561056c57600080fd5b5061044a7f000000000000000000000000aff103fe6816b324f889cb09815d3d5246d9fba281565b3480156105a057600080fd5b506102906105af3660046114a9565b610a4a565b3480156105c057600080fd5b506102906105cf36600461150f565b60056020526000908152604090205460ff1681565b3480156105f057600080fd5b506103b1610a57565b34801561060557600080fd5b5061021f61061436600461156f565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b34801561064b57600080fd5b506103b161065a3660046115a2565b610a96565b34801561066b57600080fd5b50600c5461044a906001600160a01b031681565b34801561068b57600080fd5b50600e5461044a906001600160a01b031681565b3480156106ab57600080fd5b50600e5461029090600160a01b900460ff1681565b3360008181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061071b9086815260200190565b60405180910390a35060015b92915050565b6107396012600a6116bf565b61074690620f42406116ce565b81565b6001600160a01b0383166000908152600360209081526040808320338452909152812054600019146107f6576040805180820182526016815275496e73756666696369656e7420416c6c6f77616e636560501b6020808301919091526001600160a01b03871660009081526003825283812033825290915291909120546107d1918490610b02565b6001600160a01b03851660009081526003602090815260408083203384529091529020555b610801848484610b3c565b90505b9392505050565b60026020527fac33ff75c19e70fe83507db0d683fd3465c996598dc972688b7ace676c89077b5461dead60009081527f6a9609baa168169acaea398c4407efea4be641bb08e21e88806d9836fd9333cc5490919061086b6012600a6116bf565b61087890620f42406116ce565b61088291906116e5565b61088c91906116e5565b905090565b600d546040516001600160a01b03909116904780156108fc02916000818181858888f193505050501580156108ca573d6000803e3d6000fd5b50565b6000610727826000196106c0565b6000546001600160a01b0316331461090e5760405162461bcd60e51b8152600401610905906116f8565b60405180910390fd5b600a91909155600991909155600b55565b6000546001600160a01b031633146109495760405162461bcd60e51b8152600401610905906116f8565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146109b85760405162461bcd60e51b8152600401610905906116f8565b6001811015610a145760405162461bcd60e51b815260206004820152602260248201527f43616e6e6f7420736574206d61782077616c6c6574206c657373207468616e20604482015261312560f01b6064820152608401610905565b606481610a236012600a6116bf565b610a3090620f42406116ce565b610a3a91906116ce565b610a449190611718565b60015550565b6000610804338484610b3c565b6000546001600160a01b03163314610a815760405162461bcd60e51b8152600401610905906116f8565b600e805460ff60a01b1916600160a01b179055565b6000546001600160a01b03163314610ac05760405162461bcd60e51b8152600401610905906116f8565b600e805460ff60a81b1916600160a81b8415150217905580610ae46012600a6116bf565b610af190620f42406116ce565b610afb9190611718565b600f555050565b60008184841115610b265760405162461bcd60e51b8152600401610905919061143f565b506000610b3384866116e5565b95945050505050565b60105460009060ff1615610b5c57610b55848484610e1d565b9050610804565b6001600160a01b03841660009081526004602052604090205460ff16610bcc57600e54600160a01b900460ff16610bcc5760405162461bcd60e51b81526020600482015260146024820152731d1c98591a5b99c81b9bdd081bdc195b881e595d60621b6044820152606401610905565b6001600160a01b03841660009081526005602052604090205460ff16158015610c0e57506001600160a01b03831660009081526005602052604090205460ff16155b8015610c4c57507f000000000000000000000000aff103fe6816b324f889cb09815d3d5246d9fba26001600160a01b0316836001600160a01b031614155b15610cc6576001546001600160a01b038416600090815260026020526040902054610c7890849061173a565b1115610cc65760405162461bcd60e51b815260206004820152601860248201527f6d61782077616c6c6574206c696d6974207265616368656400000000000000006044820152606401610905565b610cce610f03565b15610cdb57610cdb610f76565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038716600090815260029091529190912054610d2d918490610b02565b6001600160a01b038516600090815260026020908152604080832093909355600490529081205460ff1680610d7a57506001600160a01b03841660009081526004602052604090205460ff165b610d8e57610d8985848661114d565b610d90565b825b6001600160a01b038516600090815260026020526040902054909150610db690826112ac565b6001600160a01b0380861660008181526002602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610e0a9085815260200190565b60405180910390a3506001949350505050565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600290915291822054610e6e918490610b02565b6001600160a01b038086166000908152600260205260408082209390935590851681522054610e9d90836112ac565b6001600160a01b0380851660008181526002602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ef19086815260200190565b60405180910390a35060019392505050565b6000336001600160a01b037f000000000000000000000000aff103fe6816b324f889cb09815d3d5246d9fba21614801590610f41575060105460ff16155b8015610f565750600e54600160a81b900460ff165b801561088c575050600f5430600090815260026020526040902054101590565b6010805460ff191660011790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610fb857610fb861174d565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061100c5761100c61174d565b6001600160a01b039283166020918202929092010152600e54600f5460405163791ac94760e01b8152919092169163791ac947916110569190600090869030904290600401611763565b600060405180830381600087803b15801561107057600080fd5b505af1158015611084573d6000803e3d6000fd5b50506008546006544793506000925061109d90846116ce565b6110a79190611718565b90506000600854600754846110bc91906116ce565b6110c69190611718565b600c546040519192506001600160a01b03169083156108fc029084906000818181858888f19350505050158015611101573d6000803e3d6000fd5b50600d546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561113c573d6000803e3d6000fd5b50506010805460ff19169055505050565b600082158061115c5750600854155b15611168575081610804565b600b546001600160a01b037f000000000000000000000000aff103fe6816b324f889cb09815d3d5246d9fba28116908416036111a75750600a546111e5565b7f000000000000000000000000aff103fe6816b324f889cb09815d3d5246d9fba26001600160a01b0316856001600160a01b0316036111e557506009545b600061121c6111f76103e860646116ce565b611216846112106008548a61130b90919063ffffffff16565b9061130b565b9061138d565b90508015611298573060009081526002602052604090205461123e90826112ac565b30600081815260026020526040908190209290925590516001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061128f9085815260200190565b60405180910390a35b6112a285826113cf565b9695505050505050565b6000806112b9838561173a565b9050838110156108045760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610905565b60008260000361131d57506000610727565b600061132983856116ce565b9050826113368583611718565b146108045760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610905565b600061080483836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611411565b600061080483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610b02565b600081836114325760405162461bcd60e51b8152600401610905919061143f565b506000610b338486611718565b600060208083528351808285015260005b8181101561146c57858101830151858201604001528201611450565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146114a457600080fd5b919050565b600080604083850312156114bc57600080fd5b6114c58361148d565b946020939093013593505050565b6000806000606084860312156114e857600080fd5b6114f18461148d565b92506114ff6020850161148d565b9150604084013590509250925092565b60006020828403121561152157600080fd5b6108048261148d565b60008060006060848603121561153f57600080fd5b505081359360208301359350604090920135919050565b60006020828403121561156857600080fd5b5035919050565b6000806040838503121561158257600080fd5b61158b8361148d565b91506115996020840161148d565b90509250929050565b600080604083850312156115b557600080fd5b823580151581146114c557600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b808511156116165781600019048211156115fc576115fc6115c5565b8085161561160957918102915b93841c93908002906115e0565b509250929050565b60008261162d57506001610727565b8161163a57506000610727565b8160018114611650576002811461165a57611676565b6001915050610727565b60ff84111561166b5761166b6115c5565b50506001821b610727565b5060208310610133831016604e8410600b8410161715611699575081810a610727565b6116a383836115db565b80600019048211156116b7576116b76115c5565b029392505050565b600061080460ff84168361161e565b8082028115828204841417610727576107276115c5565b81810381811115610727576107276115c5565b60208082526006908201526510a7aba722a960d11b604082015260600190565b60008261173557634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610727576107276115c5565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156117b35784516001600160a01b03168352938301939183019160010161178e565b50506001600160a01b0396909616606085015250505060800152939250505056fea264697066735822122016fc2010bd2cff0c1bfc9876982edadca150d3618a2a8ad36f806e136af2a8d664736f6c63430008110033

Deployed Bytecode Sourcemap

2966:7375:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4263:48;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;4263:48:0;;;;;;;;3220:37;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3220:37:0;;;;;;;;;;;;:::i;5542:216::-;;;;;;;;;;-1:-1:-1;5542:216:0;;;;;:::i;:::-;;:::i;:::-;;;1351:14:1;;1344:22;1326:41;;1314:2;1299:18;5542:216:0;1186:187:1;3861:45:0;;;;;;;;;;;;3902:4;3861:45;;3355:62;;;;;;;;;;;;;:::i;3799:55::-;;;;;;;;;;;;;;;;6060:370;;;;;;;;;;-1:-1:-1;6060:370:0;;;;;:::i;:::-;;:::i;10201:137::-;;;;;;;;;;;;;:::i;2197:103::-;;;;;;;;;;-1:-1:-1;2197:103:0;;;;;:::i;:::-;2252:4;2287:5;-1:-1:-1;;;;;2276:16:0;;;2287:5;;2276:16;;2197:103;3311:35;;;;;;;;;;;;3344:2;3311:35;;;;;2074:4:1;2062:17;;;2044:36;;2032:2;2017:18;3311:35:0;1902:184:1;3607:44:0;;;;;;;;;;-1:-1:-1;3607:44:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8874:113;;;;;;;;;;;;;:::i;:::-;;5766:122;;;;;;;;;;-1:-1:-1;5766:122:0;;;;;:::i;:::-;;:::i;3719:32::-;;;;;;;;;;;;;;;;9808:198;;;;;;;;;;-1:-1:-1;9808:198:0;;;;;:::i;:::-;;:::i;4226:30::-;;;;;;;;;;-1:-1:-1;4226:30:0;;;;-1:-1:-1;;;4226:30:0;;;;;;4071:37;;;;;;;;;;-1:-1:-1;4071:37:0;;;;-1:-1:-1;;;;;4071:37:0;;;;;;-1:-1:-1;;;;;2576:32:1;;;2558:51;;2546:2;2531:18;4071:37:0;2412:203:1;3485:45:0;;;;;;;;;;-1:-1:-1;3485:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;2308:128;;;;;;;;;;;;;:::i;3426:50::-;;;;;;;;;;;;;;;;6438:219;;;;;;;;;;-1:-1:-1;6438:219:0;;;;;:::i;:::-;;:::i;5317:78::-;;;;;;;;;;-1:-1:-1;5369:7:0;5387:5;-1:-1:-1;;;;;5387:5:0;5317:78;;2010:20;;;;;;;;;;-1:-1:-1;2010:20:0;;;;-1:-1:-1;;;;;2010:20:0;;;3264:40;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3264:40:0;;;;;3758:34;;;;;;;;;;;;;;;;4148:29;;;;;;;;;;;;;;;5896:156;;;;;;;;;;-1:-1:-1;5896:156:0;;;;;:::i;:::-;;:::i;3658:52::-;;;;;;;;;;-1:-1:-1;3658:52:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;8995:79;;;;;;;;;;;;;:::i;5401:133::-;;;;;;;;;;-1:-1:-1;5401:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;5503:19:0;;;5485:7;5503:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5401:133;10014:179;;;;;;;;;;-1:-1:-1;10014:179:0;;;;;:::i;:::-;;:::i;4029:35::-;;;;;;;;;;-1:-1:-1;4029:35:0;;;;-1:-1:-1;;;;;4029:35:0;;;4117:24;;;;;;;;;;-1:-1:-1;4117:24:0;;;;-1:-1:-1;;;;;4117:24:0;;;4186:31;;;;;;;;;;-1:-1:-1;4186:31:0;;;;-1:-1:-1;;;4186:31:0;;;;;;5542:216;5646:10;5617:4;5634:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5634:32:0;;;;;;;;;;:41;;;5691:37;5617:4;;5634:32;;5691:37;;;;5669:6;160:25:1;;148:2;133:18;;14:177;5691:37:0;;;;;;;;-1:-1:-1;5746:4:0;5542:216;;;;;:::o;3355:62::-;3405:12;3344:2;3405;:12;:::i;:::-;3393:24;;:9;:24;:::i;:::-;3355:62;:::o;6060:370::-;-1:-1:-1;;;;;6180:19:0;;6160:4;6180:19;;;:11;:19;;;;;;;;6200:10;6180:31;;;;;;;;-1:-1:-1;;6180:52:0;6177:186;;6282:69;;;;;;;;;;;-1:-1:-1;;;6282:69:0;;;;;;;;-1:-1:-1;;;;;6282:19:0;;-1:-1:-1;6282:19:0;;;:11;:19;;;;;6302:10;6282:31;;;;;;;;;;:69;;6318:6;;6282:35;:69::i;:::-;-1:-1:-1;;;;;6248:19:0;;;;;;:11;:19;;;;;;;;6268:10;6248:31;;;;;;;:103;6177:186;6382:40;6396:6;6404:9;6415:6;6382:13;:40::i;:::-;6375:47;;6060:370;;;;;;:::o;10201:137::-;10314:9;:15;;;;3096:42;10254:7;10296:15;;;;;10254:7;;10314:15;3405:12;3344:2;3405;:12;:::i;:::-;3393:24;;:9;:24;:::i;:::-;10282:29;;;;:::i;:::-;:47;;;;:::i;:::-;10274:56;;10201:137;:::o;8874:113::-;8924:22;;8916:63;;-1:-1:-1;;;;;8924:22:0;;;;8957:21;8916:63;;;;;8924:22;8916:63;8924:22;8916:63;8957:21;8924:22;8916:63;;;;;;;;;;;;;;;;;;;;;8874:113::o;5766:122::-;5821:4;5845:35;5853:7;-1:-1:-1;;5845:7:0;:35::i;9808:198::-;2252:4;2287:5;-1:-1:-1;;;;;2287:5:0;2156:10;2276:16;2140:38;;;;-1:-1:-1;;;2140:38:0;;;;;;;:::i;:::-;;;;;;;;;9907:14:::1;:22:::0;;;;9940:13:::1;:20:::0;;;;9971:18:::1;:27:::0;9808:198::o;2308:128::-;2252:4;2287:5;-1:-1:-1;;;;;2287:5:0;2156:10;2276:16;2140:38;;;;-1:-1:-1;;;2140:38:0;;;;;;;:::i;:::-;2383:1:::1;2367:18:::0;;-1:-1:-1;;;;;;2367:18:0::1;::::0;;2401:27:::1;::::0;2558:51:1;;;2401:27:0::1;::::0;2546:2:1;2531:18;2401:27:0::1;;;;;;;2308:128::o:0;6438:219::-;2252:4;2287:5;-1:-1:-1;;;;;2287:5:0;2156:10;2276:16;2140:38;;;;-1:-1:-1;;;2140:38:0;;;;;;;:::i;:::-;6545:1:::1;6528:13;:18;;6520:64;;;::::0;-1:-1:-1;;;6520:64:0;;5999:2:1;6520:64:0::1;::::0;::::1;5981:21:1::0;6038:2;6018:18;;;6011:30;6077:34;6057:18;;;6050:62;-1:-1:-1;;;6128:18:1;;;6121:32;6170:19;;6520:64:0::1;5797:398:1::0;6520:64:0::1;6646:3;6628:13:::0;3405:12:::1;3344:2;3405;:12;:::i;:::-;3393:24;::::0;:9:::1;:24;:::i;:::-;6614:27;;;;:::i;:::-;6613:36;;;;:::i;:::-;6595:15;:54:::0;-1:-1:-1;6438:219:0:o;5896:156::-;5976:4;6000:44;6014:10;6026:9;6037:6;6000:13;:44::i;8995:79::-;2252:4;2287:5;-1:-1:-1;;;;;2287:5:0;2156:10;2276:16;2140:38;;;;-1:-1:-1;;;2140:38:0;;;;;;;:::i;:::-;9048:11:::1;:18:::0;;-1:-1:-1;;;;9048:18:0::1;-1:-1:-1::0;;;9048:18:0::1;::::0;;8995:79::o;10014:179::-;2252:4;2287:5;-1:-1:-1;;;;;2287:5:0;2156:10;2276:16;2140:38;;;;-1:-1:-1;;;2140:38:0;;;;;;;:::i;:::-;10110:11:::1;:22:::0;;-1:-1:-1;;;;10110:22:0::1;-1:-1:-1::0;;;10110:22:0;::::1;;;;::::0;;10173:12;3405::::1;3344:2;3405;:12;:::i;:::-;3393:24;::::0;:9:::1;:24;:::i;:::-;10159:26;;;;:::i;:::-;10143:13;:42:::0;-1:-1:-1;;10014:179:0:o;518:192::-;604:7;640:12;632:6;;;;624:29;;;;-1:-1:-1;;;624:29:0;;;;;;;;:::i;:::-;-1:-1:-1;664:9:0;676:5;680:1;676;:5;:::i;:::-;664:17;518:192;-1:-1:-1;;;;;518:192:0:o;6665:923::-;6777:6;;6757:4;;6777:6;;6774:63;;;6793:41;6808:6;6816:9;6827:6;6793:14;:41::i;:::-;6786:48;;;;6774:63;-1:-1:-1;;;;;6853:19:0;;;;;;:11;:19;;;;;;;;6849:94;;6896:11;;-1:-1:-1;;;6896:11:0;;;;6888:43;;;;-1:-1:-1;;;6888:43:0;;6624:2:1;6888:43:0;;;6606:21:1;6663:2;6643:18;;;6636:30;-1:-1:-1;;;6682:18:1;;;6675:50;6742:18;;6888:43:0;6422:344:1;6888:43:0;-1:-1:-1;;;;;6960:27:0;;;;;;:19;:27;;;;;;;;6959:28;:63;;;;-1:-1:-1;;;;;;6992:30:0;;;;;;:19;:30;;;;;;;;6991:31;6959:63;:84;;;;;7039:4;-1:-1:-1;;;;;7026:17:0;:9;-1:-1:-1;;;;;7026:17:0;;;6959:84;6955:203;;;7103:15;;-1:-1:-1;;;;;7069:20:0;;;;;;:9;:20;;;;;;:29;;7092:6;;7069:29;:::i;:::-;7068:50;;7060:86;;;;-1:-1:-1;;;7060:86:0;;7103:2:1;7060:86:0;;;7085:21:1;7142:2;7122:18;;;7115:30;7181:26;7161:18;;;7154:54;7225:18;;7060:86:0;6901:348:1;7060:86:0;7173:16;:14;:16::i;:::-;7170:35;;;7192:10;:8;:10::i;:::-;7237:53;;;;;;;;;;;-1:-1:-1;;;7237:53:0;;;;;;;;-1:-1:-1;;;;;7237:17:0;;-1:-1:-1;7237:17:0;;;:9;:17;;;;;;;;:53;;7259:6;;7237:21;:53::i;:::-;-1:-1:-1;;;;;7217:17:0;;;;;;:9;:17;;;;;;;;:73;;;;7329:11;:19;;;;;;;;;:45;;-1:-1:-1;;;;;;7352:22:0;;;;;;:11;:22;;;;;;;;7329:45;7328:93;;7387:34;7395:6;7403;7411:9;7387:7;:34::i;:::-;7328:93;;;7378:6;7328:93;-1:-1:-1;;;;;7457:20:0;;;;;;:9;:20;;;;;;7303:118;;-1:-1:-1;7457:40:0;;7303:118;7457:24;:40::i;:::-;-1:-1:-1;;;;;7434:20:0;;;;;;;:9;:20;;;;;;;:63;;;;7515:43;;;;;;;;;;7543:14;160:25:1;;148:2;133:18;;14:177;7515:43:0;;;;;;;;-1:-1:-1;7576:4:0;;6665:923;-1:-1:-1;;;;6665:923:0:o;7600:330::-;7730:53;;;;;;;;;;;-1:-1:-1;;;7730:53:0;;;;;;;;-1:-1:-1;;;;;7730:17:0;;7693:4;7730:17;;;:9;:17;;;;;;;:53;;7752:6;;7730:21;:53::i;:::-;-1:-1:-1;;;;;7710:17:0;;;;;;;:9;:17;;;;;;:73;;;;7817:20;;;;;;;:32;;7842:6;7817:24;:32::i;:::-;-1:-1:-1;;;;;7794:20:0;;;;;;;:9;:20;;;;;;;:55;;;;7865:35;;;;;;;;;;7893:6;160:25:1;;148:2;133:18;;14:177;7865:35:0;;;;;;;;-1:-1:-1;7918:4:0;7600:330;;;;;:::o;8669:197::-;8718:4;8742:10;-1:-1:-1;;;;;8756:4:0;8742:18;;;;;:38;;-1:-1:-1;8774:6:0;;;;8773:7;8742:38;:62;;;;-1:-1:-1;8793:11:0;;-1:-1:-1;;;8793:11:0;;;;8742:62;:116;;;;-1:-1:-1;;8845:13:0;;8835:4;8817:24;;;;:9;:24;;;;;;:41;;;8669:197::o;9082:718::-;4364:6;:13;;-1:-1:-1;;4364:13:0;4373:4;4364:13;;;9157:16:::1;::::0;;9171:1:::1;9157:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9157:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9157:16:0::1;9133:40;;9202:4;9184;9189:1;9184:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1::0;;;;;9184:23:0::1;;;-1:-1:-1::0;;;;;9184:23:0::1;;;::::0;::::1;9228:4;9218;9223:1;9218:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9218:14:0;;::::1;:7;::::0;;::::1;::::0;;;;;:14;9245:6:::1;::::0;9317:13:::1;::::0;9245:189:::1;::::0;-1:-1:-1;;;9245:189:0;;:6;;;::::1;::::0;:57:::1;::::0;:189:::1;::::0;9317:13;9245:6:::1;::::0;9361:4;;9388::::1;::::0;9408:15:::1;::::0;9245:189:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;9559:8:0::1;::::0;9543:12:::1;::::0;9467:21:::1;::::0;-1:-1:-1;9447:17:0::1;::::0;-1:-1:-1;9531:24:0::1;::::0;9467:21;9531:24:::1;:::i;:::-;9530:37;;;;:::i;:::-;9501:66;;9578:28;9640:8;;9622:14;;9610:9;:26;;;;:::i;:::-;9609:39;;;;:::i;:::-;9669:20;::::0;9661:58:::1;::::0;9578:70;;-1:-1:-1;;;;;;9669:20:0::1;::::0;9661:58;::::1;;;::::0;9700:18;;9669:20:::1;9661:58:::0;9669:20;9661:58;9700:18;9669:20;9661:58;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;9738:22:0::1;::::0;9730:62:::1;::::0;-1:-1:-1;;;;;9738:22:0;;::::1;::::0;9730:62;::::1;;;::::0;9771:20;;9738:22:::1;9730:62:::0;9738:22;9730:62;9771:20;9738:22;9730:62;::::1;;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;4382:6:0;:14;;-1:-1:-1;;4382:14:0;;;-1:-1:-1;;;9082:718:0:o;7938:723::-;8024:7;8047:11;;;:28;;-1:-1:-1;8062:8:0;;:13;8047:28;8044:72;;;-1:-1:-1;8098:6:0;8091:13;;8044:72;8149:18;;-1:-1:-1;;;;;8196:4:0;8183:17;;;;;;8180:154;;-1:-1:-1;8230:14:0;;8180:154;;;8275:4;-1:-1:-1;;;;;8265:14:0;:6;-1:-1:-1;;;;;8265:14:0;;8262:72;;-1:-1:-1;8309:13:0;;8262:72;8346:17;8366:62;8407:20;3902:4;8424:3;8407:20;:::i;:::-;8366:36;8391:10;8366:20;8377:8;;8366:6;:10;;:20;;;;:::i;:::-;:24;;:36::i;:::-;:40;;:62::i;:::-;8346:82;-1:-1:-1;8444:13:0;;8441:172;;8518:4;8500:24;;;;:9;:24;;;;;;:39;;8529:9;8500:28;:39::i;:::-;8491:4;8473:24;;;;:9;:24;;;;;;;:66;;;;8559:42;;-1:-1:-1;;;;;8559:42:0;;;;;;;8591:9;160:25:1;;148:2;133:18;;14:177;8559:42:0;;;;;;;;8441:172;8632:21;:6;8643:9;8632:10;:21::i;:::-;8625:28;7938:723;-1:-1:-1;;;;;;7938:723:0:o;189:181::-;247:7;;279:5;283:1;279;:5;:::i;:::-;267:17;;308:1;303;:6;;295:46;;;;-1:-1:-1;;;295:46:0;;8705:2:1;295:46:0;;;8687:21:1;8744:2;8724:18;;;8717:30;8783:29;8763:18;;;8756:57;8830:18;;295:46:0;8503:351:1;716:250:0;774:7;798:1;803;798:6;794:47;;-1:-1:-1;828:1:0;821:8;;794:47;853:9;865:5;869:1;865;:5;:::i;:::-;853:17;-1:-1:-1;898:1:0;889:5;893:1;853:17;889:5;:::i;:::-;:10;881:56;;;;-1:-1:-1;;;881:56:0;;9061:2:1;881:56:0;;;9043:21:1;9100:2;9080:18;;;9073:30;9139:34;9119:18;;;9112:62;-1:-1:-1;;;9190:18:1;;;9183:31;9231:19;;881:56:0;8859:397:1;972:132:0;1030:7;1057:39;1061:1;1064;1057:39;;;;;;;;;;;;;;;;;:3;:39::i;376:136::-;434:7;461:43;465:1;468;461:43;;;;;;;;;;;;;;;;;:3;:43::i;1110:189::-;1196:7;1231:12;1224:5;1216:28;;;;-1:-1:-1;;;1216:28:0;;;;;;;;:::i;:::-;-1:-1:-1;1255:9:0;1267:5;1271:1;1267;:5;:::i;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:173::-;817:20;;-1:-1:-1;;;;;866:31:1;;856:42;;846:70;;912:1;909;902:12;846:70;749:173;;;:::o;927:254::-;995:6;1003;1056:2;1044:9;1035:7;1031:23;1027:32;1024:52;;;1072:1;1069;1062:12;1024:52;1095:29;1114:9;1095:29;:::i;:::-;1085:39;1171:2;1156:18;;;;1143:32;;-1:-1:-1;;;927:254:1:o;1378:328::-;1455:6;1463;1471;1524:2;1512:9;1503:7;1499:23;1495:32;1492:52;;;1540:1;1537;1530:12;1492:52;1563:29;1582:9;1563:29;:::i;:::-;1553:39;;1611:38;1645:2;1634:9;1630:18;1611:38;:::i;:::-;1601:48;;1696:2;1685:9;1681:18;1668:32;1658:42;;1378:328;;;;;:::o;1711:186::-;1770:6;1823:2;1811:9;1802:7;1798:23;1794:32;1791:52;;;1839:1;1836;1829:12;1791:52;1862:29;1881:9;1862:29;:::i;2091:316::-;2168:6;2176;2184;2237:2;2225:9;2216:7;2212:23;2208:32;2205:52;;;2253:1;2250;2243:12;2205:52;-1:-1:-1;;2276:23:1;;;2346:2;2331:18;;2318:32;;-1:-1:-1;2397:2:1;2382:18;;;2369:32;;2091:316;-1:-1:-1;2091:316:1:o;2620:180::-;2679:6;2732:2;2720:9;2711:7;2707:23;2703:32;2700:52;;;2748:1;2745;2738:12;2700:52;-1:-1:-1;2771:23:1;;2620:180;-1:-1:-1;2620:180:1:o;2805:260::-;2873:6;2881;2934:2;2922:9;2913:7;2909:23;2905:32;2902:52;;;2950:1;2947;2940:12;2902:52;2973:29;2992:9;2973:29;:::i;:::-;2963:39;;3021:38;3055:2;3044:9;3040:18;3021:38;:::i;:::-;3011:48;;2805:260;;;;;:::o;3070:341::-;3135:6;3143;3196:2;3184:9;3175:7;3171:23;3167:32;3164:52;;;3212:1;3209;3202:12;3164:52;3251:9;3238:23;3304:5;3297:13;3290:21;3283:5;3280:32;3270:60;;3326:1;3323;3316:12;3642:127;3703:10;3698:3;3694:20;3691:1;3684:31;3734:4;3731:1;3724:15;3758:4;3755:1;3748:15;3774:422;3863:1;3906:5;3863:1;3920:270;3941:7;3931:8;3928:21;3920:270;;;4000:4;3996:1;3992:6;3988:17;3982:4;3979:27;3976:53;;;4009:18;;:::i;:::-;4059:7;4049:8;4045:22;4042:55;;;4079:16;;;;4042:55;4158:22;;;;4118:15;;;;3920:270;;;3924:3;3774:422;;;;;:::o;4201:806::-;4250:5;4280:8;4270:80;;-1:-1:-1;4321:1:1;4335:5;;4270:80;4369:4;4359:76;;-1:-1:-1;4406:1:1;4420:5;;4359:76;4451:4;4469:1;4464:59;;;;4537:1;4532:130;;;;4444:218;;4464:59;4494:1;4485:10;;4508:5;;;4532:130;4569:3;4559:8;4556:17;4553:43;;;4576:18;;:::i;:::-;-1:-1:-1;;4632:1:1;4618:16;;4647:5;;4444:218;;4746:2;4736:8;4733:16;4727:3;4721:4;4718:13;4714:36;4708:2;4698:8;4695:16;4690:2;4684:4;4681:12;4677:35;4674:77;4671:159;;;-1:-1:-1;4783:19:1;;;4815:5;;4671:159;4862:34;4887:8;4881:4;4862:34;:::i;:::-;4932:6;4928:1;4924:6;4920:19;4911:7;4908:32;4905:58;;;4943:18;;:::i;:::-;4981:20;;4201:806;-1:-1:-1;;;4201:806:1:o;5012:140::-;5070:5;5099:47;5140:4;5130:8;5126:19;5120:4;5099:47;:::i;5157:168::-;5230:9;;;5261;;5278:15;;;5272:22;;5258:37;5248:71;;5299:18;;:::i;5330:128::-;5397:9;;;5418:11;;;5415:37;;;5432:18;;:::i;5463:329::-;5665:2;5647:21;;;5704:1;5684:18;;;5677:29;-1:-1:-1;;;5737:2:1;5722:18;;5715:36;5783:2;5768:18;;5463:329::o;6200:217::-;6240:1;6266;6256:132;;6310:10;6305:3;6301:20;6298:1;6291:31;6345:4;6342:1;6335:15;6373:4;6370:1;6363:15;6256:132;-1:-1:-1;6402:9:1;;6200:217::o;6771:125::-;6836:9;;;6857:10;;;6854:36;;;6870:18;;:::i;7386:127::-;7447:10;7442:3;7438:20;7435:1;7428:31;7478:4;7475:1;7468:15;7502:4;7499:1;7492:15;7518:980;7780:4;7828:3;7817:9;7813:19;7859:6;7848:9;7841:25;7885:2;7923:6;7918:2;7907:9;7903:18;7896:34;7966:3;7961:2;7950:9;7946:18;7939:31;7990:6;8025;8019:13;8056:6;8048;8041:22;8094:3;8083:9;8079:19;8072:26;;8133:2;8125:6;8121:15;8107:29;;8154:1;8164:195;8178:6;8175:1;8172:13;8164:195;;;8243:13;;-1:-1:-1;;;;;8239:39:1;8227:52;;8334:15;;;;8299:12;;;;8275:1;8193:9;8164:195;;;-1:-1:-1;;;;;;;8415:32:1;;;;8410:2;8395:18;;8388:60;-1:-1:-1;;;8479:3:1;8464:19;8457:35;8376:3;7518:980;-1:-1:-1;;;7518:980:1:o

Swarm Source

ipfs://16fc2010bd2cff0c1bfc9876982edadca150d3618a2a8ad36f806e136af2a8d6

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.