ETH Price: $1,956.96 (-5.46%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve216745832025-01-21 18:14:11401 days ago1737483251IN
0xDc03dD2b...2fb24f24F
0 ETH0.0007714331.96084912
Approve205917472024-08-23 13:58:47552 days ago1724421527IN
0xDc03dD2b...2fb24f24F
0 ETH0.00012332.67073922
Approve198992802024-05-18 20:41:59649 days ago1716064919IN
0xDc03dD2b...2fb24f24F
0 ETH0.000147313.19417867
Approve197889672024-05-03 10:23:11665 days ago1714731791IN
0xDc03dD2b...2fb24f24F
0 ETH0.000172425.88068171
Approve196680872024-04-16 12:37:23682 days ago1713271043IN
0xDc03dD2b...2fb24f24F
0 ETH0.0005261811.33506262
Approve195603302024-04-01 10:17:47697 days ago1711966667IN
0xDc03dD2b...2fb24f24F
0 ETH0.0013338328.84539522
Approve195460332024-03-30 9:58:59699 days ago1711792739IN
0xDc03dD2b...2fb24f24F
0 ETH0.0008565318.45150774
Transfer195390672024-03-29 10:28:23700 days ago1711708103IN
0xDc03dD2b...2fb24f24F
0 ETH0.0013121821.39230569
Approve195216342024-03-26 22:43:59702 days ago1711493039IN
0xDc03dD2b...2fb24f24F
0 ETH0.0017211937.07786347
Approve195103452024-03-25 8:34:23704 days ago1711355663IN
0xDc03dD2b...2fb24f24F
0 ETH0.0008645518.62425011
Approve195042472024-03-24 11:56:59705 days ago1711281419IN
0xDc03dD2b...2fb24f24F
0 ETH0.0008065117.37391797
Transfer194854022024-03-21 20:27:23707 days ago1711052843IN
0xDc03dD2b...2fb24f24F
0 ETH0.0023636438.53407841
Approve194845782024-03-21 17:40:59707 days ago1711042859IN
0xDc03dD2b...2fb24f24F
0 ETH0.0014765231.80719324
Transfer194578052024-03-17 23:24:11711 days ago1710717851IN
0xDc03dD2b...2fb24f24F
0 ETH0.0018321529.86929824
Approve194504372024-03-16 22:31:59712 days ago1710628319IN
0xDc03dD2b...2fb24f24F
0 ETH0.0018029538.7890165
Transfer194480092024-03-16 14:20:35712 days ago1710598835IN
0xDc03dD2b...2fb24f24F
0 ETH0.0017903940.47099041
Approve194462942024-03-16 8:31:59713 days ago1710577919IN
0xDc03dD2b...2fb24f24F
0 ETH0.0017844438.41077862
Approve194460902024-03-16 7:51:11713 days ago1710575471IN
0xDc03dD2b...2fb24f24F
0 ETH0.0015965934.52766206
Approve194455232024-03-16 5:55:35713 days ago1710568535IN
0xDc03dD2b...2fb24f24F
0 ETH0.0014222330.59828661
Transfer194454232024-03-16 5:35:11713 days ago1710567311IN
0xDc03dD2b...2fb24f24F
0 ETH0.0013440430.3814656
Transfer194453992024-03-16 5:30:23713 days ago1710567023IN
0xDc03dD2b...2fb24f24F
0 ETH0.0017670428.80792266
Approve194453452024-03-16 5:18:59713 days ago1710566339IN
0xDc03dD2b...2fb24f24F
0 ETH0.001384629.82715722
Approve194442542024-03-16 1:38:47713 days ago1710553127IN
0xDc03dD2b...2fb24f24F
0 ETH0.0017311537.29255552
Approve194434232024-03-15 22:49:47713 days ago1710542987IN
0xDc03dD2b...2fb24f24F
0 ETH0.0017914838.59214779
Approve194415872024-03-15 16:38:35713 days ago1710520715IN
0xDc03dD2b...2fb24f24F
0 ETH0.0020214343.48951596
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer199176942024-05-21 10:29:59647 days ago1716287399
0xDc03dD2b...2fb24f24F
0 ETH
Balance Of199176942024-05-21 10:29:59647 days ago1716287399
0xDc03dD2b...2fb24f24F
0 ETH
Transfer199176942024-05-21 10:29:59647 days ago1716287399
0xDc03dD2b...2fb24f24F
0 ETH
Balance Of199176942024-05-21 10:29:59647 days ago1716287399
0xDc03dD2b...2fb24f24F
0 ETH
Balance Of198992822024-05-18 20:42:23649 days ago1716064943
0xDc03dD2b...2fb24f24F
0 ETH
Balance Of198992822024-05-18 20:42:23649 days ago1716064943
0xDc03dD2b...2fb24f24F
0 ETH
Transfer From198992822024-05-18 20:42:23649 days ago1716064943
0xDc03dD2b...2fb24f24F
0 ETH
Balance Of198047212024-05-05 15:14:47662 days ago1714922087
0xDc03dD2b...2fb24f24F
0 ETH
Balance Of198047212024-05-05 15:14:47662 days ago1714922087
0xDc03dD2b...2fb24f24F
0 ETH
Transfer From198047212024-05-05 15:14:47662 days ago1714922087
0xDc03dD2b...2fb24f24F
0 ETH
Balance Of197986702024-05-04 18:56:23663 days ago1714848983
0xDc03dD2b...2fb24f24F
0 ETH
Balance Of197986702024-05-04 18:56:23663 days ago1714848983
0xDc03dD2b...2fb24f24F
0 ETH
Transfer From197986702024-05-04 18:56:23663 days ago1714848983
0xDc03dD2b...2fb24f24F
0 ETH
Balance Of197889682024-05-03 10:23:23665 days ago1714731803
0xDc03dD2b...2fb24f24F
0 ETH
Balance Of197889682024-05-03 10:23:23665 days ago1714731803
0xDc03dD2b...2fb24f24F
0 ETH
Balance Of197889682024-05-03 10:23:23665 days ago1714731803
0xDc03dD2b...2fb24f24F
0 ETH
Balance Of197889682024-05-03 10:23:23665 days ago1714731803
0xDc03dD2b...2fb24f24F
0 ETH
Transfer From197889682024-05-03 10:23:23665 days ago1714731803
0xDc03dD2b...2fb24f24F
0 ETH
Swap Exact Token...197889682024-05-03 10:23:23665 days ago1714731803
0xDc03dD2b...2fb24f24F
0 ETH
Transfer From197889682024-05-03 10:23:23665 days ago1714731803
0xDc03dD2b...2fb24f24F
0 ETH
Balance Of197144552024-04-23 0:16:47675 days ago1713831407
0xDc03dD2b...2fb24f24F
0 ETH
Balance Of197144552024-04-23 0:16:47675 days ago1713831407
0xDc03dD2b...2fb24f24F
0 ETH
Transfer From197144552024-04-23 0:16:47675 days ago1713831407
0xDc03dD2b...2fb24f24F
0 ETH
Balance Of196681062024-04-16 12:41:11682 days ago1713271271
0xDc03dD2b...2fb24f24F
0 ETH
Balance Of196681062024-04-16 12:41:11682 days ago1713271271
0xDc03dD2b...2fb24f24F
0 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
TensorHashAI

Compiler Version
v0.8.24+commit.e11b9ed9

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2024-03-13
*/

//SPDX-License-Identifier: MIT

/*
    Website: https://www.tensorhashai.cloud/
    Telegram: https://t.me/tensorhashai
    Twitter/X: https://twitter.com/TensorHashAI
    Whitepaper: https://ai-dag.b-cdn.net/TensorHash%20AI%20Whitepaper.pdf
    Telegram Bot: https://t.me/tensorhashai_bot

    Gain a share in mining leading BlockDAG protocols No hardware, GPU or maintenance requirements Enhanced Efficiency with advanced AI-driven algorithms Sustainable eco-friendly practices.
    First project to partner up with BlockDAG protocol based blockchains like SEDRA and NHASH to mine and generate revenue for the holders.
    Learn more about them:
    $SEDRA - https://sedracoin.com/
    $NHASH - https://nhash.net/
 */
pragma solidity 0.8.24;

abstract contract Ownable {
    address internal _owner;
    event OwnershipTransferred(address _owner);
    modifier onlyOwner() {
        require(msg.sender == _owner, "Only owner can call this");
        _;
    }

    constructor(address creatorOwner) {
        _owner = creatorOwner;
    }

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

    function transferOwnership(address payable newowner) external onlyOwner {
        _owner = newowner;
        emit OwnershipTransferred(newowner);
    }

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

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function decimals() external view returns (uint8);

    function symbol() external view returns (string memory);

    function name() external view returns (string memory);

    function balanceOf(address account) external view returns (uint256);

    function transfer(
        address recipient,
        uint256 amount
    ) external returns (bool);

    function allowance(
        address holder,
        address spender
    ) external view returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed _owner,
        address indexed spender,
        uint256 value
    );
}

contract TensorHashAI is IERC20, Ownable {
    string private constant _symbol = "THASH";
    string private constant _name = "TensorHash AI";
    uint8 private constant _decimals = 9;
    uint256 private constant _totalSupply = 1e9 * (10 ** _decimals);

    address payable public _marketingWallet;

    uint8 private _sellTaxrate = 25;
    uint8 private _buyTaxrate = 40;

    uint256 public _maxWalletVal = _totalSupply;
    uint256 public _swapMin = _totalSupply / 1000;
    uint256 public _swapMax = _totalSupply / 200;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _nofee;

    address private constant _swapRouterAddress =
        address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address private immutable WETH;

    IUniswapV2Router02 private _primarySwapRouter =
        IUniswapV2Router02(_swapRouterAddress);
    address private _uniswapPair;
    bool private _tradingOpen;

    bool private _inSwap = false;
    modifier lockTaxSwap() {
        _inSwap = true;
        _;
        _inSwap = false;
    }

    constructor() Ownable(msg.sender) {
        WETH = _primarySwapRouter.WETH();

        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _balances[msg.sender]);

        _nofee[_owner] = true;
        _nofee[address(this)] = true;
        _nofee[_swapRouterAddress] = true;
        _maxWalletVal = _totalSupply / 50;
        _marketingWallet = payable(msg.sender);
        _uniswapPair = IUniswapV2Factory(_primarySwapRouter.factory())
            .createPair(address(this), WETH);
    }

    receive() external payable {}

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

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

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

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

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

    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 transfer(
        address toWallet,
        uint256 amount
    ) external override returns (bool) {
        return _transferFrom(msg.sender, toWallet, amount);
    }

    function transferFrom(
        address fromWallet,
        address toWallet,
        uint256 amount
    ) external override returns (bool) {
        _allowances[fromWallet][msg.sender] -= amount;
        return _transferFrom(fromWallet, toWallet, amount);
    }

    function _approveRouter(uint256 _tokenAmount) internal {
        if (_allowances[address(this)][_swapRouterAddress] < _tokenAmount) {
            _allowances[address(this)][_swapRouterAddress] = type(uint256).max;
            emit Approval(address(this), _swapRouterAddress, type(uint256).max);
        }
    }

    function enableTrading() external onlyOwner {
        _tradingOpen = true;
    }

    function _transferFrom(
        address sender,
        address toWallet,
        uint256 amount
    ) internal returns (bool) {
        if (!_nofee[sender] && !_nofee[toWallet]) {
            require(_tradingOpen, "Trading not yet open");
            if (!_inSwap && toWallet == _uniswapPair) {
                _swapTaxAndLiquify();
            }
            require(_checkLimits(toWallet, amount), "TX over limits");
        }

        uint256 _taxAmount = _calculateTax(sender, toWallet, amount);
        uint256 _transferAmount = amount - _taxAmount;
        _balances[sender] -= amount;
        _balances[toWallet] += _transferAmount;
        _balances[address(this)] += _taxAmount;
        emit Transfer(sender, toWallet, _transferAmount);
        emit Transfer(sender, address(this), _taxAmount);
        return true;
    }

    function _checkLimits(
        address toWallet,
        uint256 transferAmount
    ) internal view returns (bool) {
        if (
            toWallet != _uniswapPair &&
            (_balances[toWallet] + transferAmount > _maxWalletVal)
        ) {
            return false;
        }
        return true;
    }

    function _calculateTax(
        address fromWallet,
        address recipient,
        uint256 amount
    ) internal view returns (uint256) {
        uint256 taxAmount;

        if (_nofee[fromWallet] || _nofee[recipient]) {
            taxAmount = 0;
        } else if (fromWallet == _uniswapPair) {
            taxAmount = (amount * _buyTaxrate) / 100;
        } else if (recipient == _uniswapPair) {
            taxAmount = (amount * _sellTaxrate) / 100;
        }

        return taxAmount;
    }

    function setExemptions(address wlt, bool noFees) external onlyOwner {
        _nofee[wlt] = noFees;
    }

    function buyFee() external view returns (uint8) {
        return _buyTaxrate;
    }

    function sellFee() external view returns (uint8) {
        return _sellTaxrate;
    }

    function setFees(uint8 buyFees, uint8 sellFees) external onlyOwner {
        require(buyFees <= 30 && sellFees <= 30, "Roundtrip too high");
        _buyTaxrate = buyFees;
        _sellTaxrate = sellFees;
    }

    function updateMarketingWallet(address marketingWlt) external onlyOwner {
        _marketingWallet = payable(marketingWlt);
    }

    function setMaxWallet(uint newMaxWalletValue) external onlyOwner {
        _maxWalletVal = newMaxWalletValue;
    }

    function setTaxSwaps(uint32 minVal, uint32 maxVal) external onlyOwner {
        _swapMin = minVal;
        _swapMax = maxVal;
        require(_swapMax >= _swapMin, "Min-Max error");
    }

    function _swapTaxAndLiquify() private lockTaxSwap {
        uint256 _taxTokenAvailable = balanceOf(address(this));
        if (_taxTokenAvailable >= _swapMin) {
            if (_taxTokenAvailable >= _swapMax) {
                _taxTokenAvailable = _swapMax;
            }
            _swapTaxTokensForEth(_taxTokenAvailable);
        }
    }

    function _swapTaxTokensForEth(uint256 tokenAmount) private {
        _approveRouter(tokenAmount);
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;
        _primarySwapRouter.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            _marketingWallet,
            block.timestamp
        );
    }

    function airdropWallets(
        address[] calldata wallets,
        uint256[] calldata amounts
    ) external onlyOwner {
        require(wallets.length == amounts.length);
        uint total = 0;
        for (uint256 i = 0; i < wallets.length; i++) {
            _balances[wallets[i]] += amounts[i];
            total += amounts[i];
            emit Transfer(msg.sender, wallets[i], amounts[i]);
        }
        _balances[msg.sender] -= total;
    }
}

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

    function WETH() external pure returns (address);

    function factory() external pure returns (address);
}

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

Contract Security Audit

Contract ABI

API
[{"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":"_marketingWallet","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletVal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapMin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"wallets","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdropWallets","outputs":[],"stateMutability":"nonpayable","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":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wlt","type":"address"},{"internalType":"bool","name":"noFees","type":"bool"}],"name":"setExemptions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"buyFees","type":"uint8"},{"internalType":"uint8","name":"sellFees","type":"uint8"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxWalletValue","type":"uint256"}],"name":"setMaxWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"minVal","type":"uint32"},{"internalType":"uint32","name":"maxVal","type":"uint32"}],"name":"setTaxSwaps","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":"toWallet","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"fromWallet","type":"address"},{"internalType":"address","name":"toWallet","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newowner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketingWlt","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040526001805461ffff60a01b191661281960a01b179055620000276009600a6200049e565b6200003790633b9aca00620004b5565b6002556103e86200004b6009600a6200049e565b6200005b90633b9aca00620004b5565b620000679190620004cf565b60035560c86200007a6009600a6200049e565b6200008a90633b9aca00620004b5565b620000969190620004cf565b600455600880546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d1790556009805460ff60a81b19169055348015620000d8575f80fd5b505f80546001600160a01b03191633179055600854604080516315ab88c960e31b815290516001600160a01b03929092169163ad5c4648916004808201926020929091908290030181865afa15801562000134573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200015a9190620004ef565b6001600160a01b0316608052620001746009600a6200049e565b6200018490633b9aca00620004b5565b335f81815260056020908152604080832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35f80546001600160a01b03168152600760205260408082208054600160ff1991821681179092553084529183208054831682179055737a250d5630b4cf539739df2c5dacb4c659f2488d9092527ffd21a1ac9a14dff647460ce8ad2ccecb794a59a4cfbb8678b1f9900a6a99551f805490911690911790556032620002536009600a6200049e565b6200026390633b9aca00620004b5565b6200026f9190620004cf565b600255600180546001600160a01b031916331790556008546040805163c45a015560e01b815290516001600160a01b03929092169163c45a0155916004808201926020929091908290030181865afa158015620002ce573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002f49190620004ef565b6080516040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291169063c9c65396906044016020604051808303815f875af115801562000343573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003699190620004ef565b600980546001600160a01b0319166001600160a01b039290921691909117905562000517565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115620003e357815f1904821115620003c757620003c76200038f565b80851615620003d557918102915b93841c9390800290620003a8565b509250929050565b5f82620003fb5750600162000498565b816200040957505f62000498565b81600181146200042257600281146200042d576200044d565b600191505062000498565b60ff8411156200044157620004416200038f565b50506001821b62000498565b5060208310610133831016604e8410600b841016171562000472575081810a62000498565b6200047e8383620003a3565b805f19048211156200049457620004946200038f565b0290505b92915050565b5f620004ae60ff841683620003eb565b9392505050565b80820281158282048414176200049857620004986200038f565b5f82620004ea57634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121562000500575f80fd5b81516001600160a01b0381168114620004ae575f80fd5b6080516114d4620005305f395f610ea301526114d45ff3fe608060405260043610610164575f3560e01c8063715018a6116100cd578063aacebbe311610087578063e710794711610062578063e71079471461045c578063ef5916311461047b578063f2fde38b1461049a578063f3287a1f146104b9575f80fd5b8063aacebbe3146103e4578063bff4be3014610403578063dd62ed3e14610418575f80fd5b8063715018a6146103215780638a8c523c146103355780638da5cb5b1461034957806395d89b4114610379578063962dfc75146103a6578063a9059cbb146103c5575f80fd5b80633c930c011161011e5780633c930c0114610265578063470624021461027a5780634fcd2446146102985780635d0044ca146102b95780636d7272a3146102d857806370a08231146102ed575f80fd5b806306fdde031461016f578063095ea7b3146101b657806318160ddd146101e557806323b872dd146102075780632b14ca5614610226578063313ce56714610252575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b5060408051808201909152600d81526c54656e736f724861736820414960981b60208201525b6040516101ad9190610ff3565b60405180910390f35b3480156101c1575f80fd5b506101d56101d0366004611053565b6104d8565b60405190151581526020016101ad565b3480156101f0575f80fd5b506101f9610544565b6040519081526020016101ad565b348015610212575f80fd5b506101d561022136600461107d565b610564565b348015610231575f80fd5b50600154600160a01b900460ff165b60405160ff90911681526020016101ad565b34801561025d575f80fd5b506009610240565b348015610270575f80fd5b506101f960035481565b348015610285575f80fd5b50600154600160a81b900460ff16610240565b3480156102a3575f80fd5b506102b76102b23660046110d0565b6105b1565b005b3480156102c4575f80fd5b506102b76102d3366004611101565b610670565b3480156102e3575f80fd5b506101f960025481565b3480156102f8575f80fd5b506101f9610307366004611118565b6001600160a01b03165f9081526005602052604090205490565b34801561032c575f80fd5b506102b761069e565b348015610340575f80fd5b506102b761070b565b348015610354575f80fd5b505f546001600160a01b03165b6040516001600160a01b0390911681526020016101ad565b348015610384575f80fd5b506040805180820190915260058152640a89082a6960db1b60208201526101a0565b3480156103b1575f80fd5b50600154610361906001600160a01b031681565b3480156103d0575f80fd5b506101d56103df366004611053565b610749565b3480156103ef575f80fd5b506102b76103fe366004611118565b61075c565b34801561040e575f80fd5b506101f960045481565b348015610423575f80fd5b506101f9610432366004611133565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205490565b348015610467575f80fd5b506102b76104763660046111b2565b6107a7565b348015610486575f80fd5b506102b7610495366004611219565b610937565b3480156104a5575f80fd5b506102b76104b4366004611118565b61098a565b3480156104c4575f80fd5b506102b76104d336600461125c565b610a06565b335f8181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105329086815260200190565b60405180910390a35060015b92915050565b5f6105516009600a611378565b61055f90633b9aca00611386565b905090565b6001600160a01b0383165f90815260066020908152604080832033845290915281208054839190839061059890849061139d565b909155506105a99050848484610a86565b949350505050565b5f546001600160a01b031633146105e35760405162461bcd60e51b81526004016105da906113b0565b60405180910390fd5b601e8260ff16111580156105fb5750601e8160ff1611155b61063c5760405162461bcd60e51b81526020600482015260126024820152710a4deeadcc8e8e4d2e040e8dede40d0d2ced60731b60448201526064016105da565b6001805461ffff60a01b1916600160a81b60ff9485160260ff60a01b191617600160a01b9290931691909102919091179055565b5f546001600160a01b031633146106995760405162461bcd60e51b81526004016105da906113b0565b600255565b5f546001600160a01b031633146106c75760405162461bcd60e51b81526004016105da906113b0565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146107345760405162461bcd60e51b81526004016105da906113b0565b6009805460ff60a01b1916600160a01b179055565b5f610755338484610a86565b9392505050565b5f546001600160a01b031633146107855760405162461bcd60e51b81526004016105da906113b0565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146107d05760405162461bcd60e51b81526004016105da906113b0565b8281146107db575f80fd5b5f805b8481101561090c578383828181106107f8576107f86113e7565b9050602002013560055f888885818110610814576108146113e7565b90506020020160208101906108299190611118565b6001600160a01b03166001600160a01b031681526020019081526020015f205f82825461085691906113fb565b90915550849050838281811061086e5761086e6113e7565b905060200201358261088091906113fb565b9150858582818110610894576108946113e7565b90506020020160208101906108a99190611118565b6001600160a01b0316337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8686858181106108e6576108e66113e7565b905060200201356040516108fc91815260200190565b60405180910390a36001016107de565b50335f908152600560205260408120805483929061092b90849061139d565b90915550505050505050565b5f546001600160a01b031633146109605760405162461bcd60e51b81526004016105da906113b0565b6001600160a01b03919091165f908152600760205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146109b35760405162461bcd60e51b81526004016105da906113b0565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b5f546001600160a01b03163314610a2f5760405162461bcd60e51b81526004016105da906113b0565b63ffffffff808316600381905590821660048190551015610a825760405162461bcd60e51b815260206004820152600d60248201526c26b4b716a6b0bc1032b93937b960991b60448201526064016105da565b5050565b6001600160a01b0383165f9081526007602052604081205460ff16158015610ac657506001600160a01b0383165f9081526007602052604090205460ff16155b15610b9657600954600160a01b900460ff16610b1b5760405162461bcd60e51b81526020600482015260146024820152732a3930b234b733903737ba103cb2ba1037b832b760611b60448201526064016105da565b600954600160a81b900460ff16158015610b4257506009546001600160a01b038481169116145b15610b4f57610b4f610cca565b610b598383610d1e565b610b965760405162461bcd60e51b815260206004820152600e60248201526d5458206f766572206c696d69747360901b60448201526064016105da565b5f610ba2858585610d76565b90505f610baf828561139d565b6001600160a01b0387165f90815260056020526040812080549293508692909190610bdb90849061139d565b90915550506001600160a01b0385165f9081526005602052604081208054839290610c079084906113fb565b9091555050305f9081526005602052604081208054849290610c2a9084906113fb565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c7691815260200190565b60405180910390a360405182815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350600195945050505050565b6009805460ff60a81b1916600160a81b179055305f9081526005602052604081205490506003548110610d0e576004548110610d0557506004545b610d0e81610e45565b506009805460ff60a81b19169055565b6009545f906001600160a01b03848116911614801590610d6157506002546001600160a01b0384165f90815260056020526040902054610d5f9084906113fb565b115b15610d6d57505f61053e565b50600192915050565b6001600160a01b0383165f90815260076020526040812054819060ff1680610db557506001600160a01b0384165f9081526007602052604090205460ff165b15610dc157505f6105a9565b6009546001600160a01b0390811690861603610e0257600154606490610df190600160a81b900460ff1685611386565b610dfb919061140e565b90506105a9565b6009546001600160a01b03908116908516036105a957600154606490610e3290600160a01b900460ff1685611386565b610e3c919061140e565b95945050505050565b610e4e81610f51565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610e8157610e816113e7565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110610ed557610ed56113e7565b6001600160a01b03928316602091820292909201015260085460015460405163791ac94760e01b81529183169263791ac94792610f209287925f92889290911690429060040161142d565b5f604051808303815f87803b158015610f37575f80fd5b505af1158015610f49573d5f803e3d5ffd5b505050505050565b305f908152600660209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d8452909152902054811115610ff057305f818152600660209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190205f199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b50565b5f602080835283518060208501525f5b8181101561101f57858101830151858201604001528201611003565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ff0575f80fd5b5f8060408385031215611064575f80fd5b823561106f8161103f565b946020939093013593505050565b5f805f6060848603121561108f575f80fd5b833561109a8161103f565b925060208401356110aa8161103f565b929592945050506040919091013590565b803560ff811681146110cb575f80fd5b919050565b5f80604083850312156110e1575f80fd5b6110ea836110bb565b91506110f8602084016110bb565b90509250929050565b5f60208284031215611111575f80fd5b5035919050565b5f60208284031215611128575f80fd5b81356107558161103f565b5f8060408385031215611144575f80fd5b823561114f8161103f565b9150602083013561115f8161103f565b809150509250929050565b5f8083601f84011261117a575f80fd5b50813567ffffffffffffffff811115611191575f80fd5b6020830191508360208260051b85010111156111ab575f80fd5b9250929050565b5f805f80604085870312156111c5575f80fd5b843567ffffffffffffffff808211156111dc575f80fd5b6111e88883890161116a565b90965094506020870135915080821115611200575f80fd5b5061120d8782880161116a565b95989497509550505050565b5f806040838503121561122a575f80fd5b82356112358161103f565b91506020830135801515811461115f575f80fd5b803563ffffffff811681146110cb575f80fd5b5f806040838503121561126d575f80fd5b61127683611249565b91506110f860208401611249565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156112d257815f19048211156112b8576112b8611284565b808516156112c557918102915b93841c939080029061129d565b509250929050565b5f826112e85750600161053e565b816112f457505f61053e565b816001811461130a576002811461131457611330565b600191505061053e565b60ff84111561132557611325611284565b50506001821b61053e565b5060208310610133831016604e8410600b8410161715611353575081810a61053e565b61135d8383611298565b805f190482111561137057611370611284565b029392505050565b5f61075560ff8416836112da565b808202811582820484141761053e5761053e611284565b8181038181111561053e5761053e611284565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b8082018082111561053e5761053e611284565b5f8261142857634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561147d5784516001600160a01b031683529383019391830191600101611458565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220dffe507aa711fafb27127d90af59b5c59a87d525a30d639fb3c5930aa367552b64736f6c63430008180033

Deployed Bytecode

0x608060405260043610610164575f3560e01c8063715018a6116100cd578063aacebbe311610087578063e710794711610062578063e71079471461045c578063ef5916311461047b578063f2fde38b1461049a578063f3287a1f146104b9575f80fd5b8063aacebbe3146103e4578063bff4be3014610403578063dd62ed3e14610418575f80fd5b8063715018a6146103215780638a8c523c146103355780638da5cb5b1461034957806395d89b4114610379578063962dfc75146103a6578063a9059cbb146103c5575f80fd5b80633c930c011161011e5780633c930c0114610265578063470624021461027a5780634fcd2446146102985780635d0044ca146102b95780636d7272a3146102d857806370a08231146102ed575f80fd5b806306fdde031461016f578063095ea7b3146101b657806318160ddd146101e557806323b872dd146102075780632b14ca5614610226578063313ce56714610252575f80fd5b3661016b57005b5f80fd5b34801561017a575f80fd5b5060408051808201909152600d81526c54656e736f724861736820414960981b60208201525b6040516101ad9190610ff3565b60405180910390f35b3480156101c1575f80fd5b506101d56101d0366004611053565b6104d8565b60405190151581526020016101ad565b3480156101f0575f80fd5b506101f9610544565b6040519081526020016101ad565b348015610212575f80fd5b506101d561022136600461107d565b610564565b348015610231575f80fd5b50600154600160a01b900460ff165b60405160ff90911681526020016101ad565b34801561025d575f80fd5b506009610240565b348015610270575f80fd5b506101f960035481565b348015610285575f80fd5b50600154600160a81b900460ff16610240565b3480156102a3575f80fd5b506102b76102b23660046110d0565b6105b1565b005b3480156102c4575f80fd5b506102b76102d3366004611101565b610670565b3480156102e3575f80fd5b506101f960025481565b3480156102f8575f80fd5b506101f9610307366004611118565b6001600160a01b03165f9081526005602052604090205490565b34801561032c575f80fd5b506102b761069e565b348015610340575f80fd5b506102b761070b565b348015610354575f80fd5b505f546001600160a01b03165b6040516001600160a01b0390911681526020016101ad565b348015610384575f80fd5b506040805180820190915260058152640a89082a6960db1b60208201526101a0565b3480156103b1575f80fd5b50600154610361906001600160a01b031681565b3480156103d0575f80fd5b506101d56103df366004611053565b610749565b3480156103ef575f80fd5b506102b76103fe366004611118565b61075c565b34801561040e575f80fd5b506101f960045481565b348015610423575f80fd5b506101f9610432366004611133565b6001600160a01b039182165f90815260066020908152604080832093909416825291909152205490565b348015610467575f80fd5b506102b76104763660046111b2565b6107a7565b348015610486575f80fd5b506102b7610495366004611219565b610937565b3480156104a5575f80fd5b506102b76104b4366004611118565b61098a565b3480156104c4575f80fd5b506102b76104d336600461125c565b610a06565b335f8181526006602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906105329086815260200190565b60405180910390a35060015b92915050565b5f6105516009600a611378565b61055f90633b9aca00611386565b905090565b6001600160a01b0383165f90815260066020908152604080832033845290915281208054839190839061059890849061139d565b909155506105a99050848484610a86565b949350505050565b5f546001600160a01b031633146105e35760405162461bcd60e51b81526004016105da906113b0565b60405180910390fd5b601e8260ff16111580156105fb5750601e8160ff1611155b61063c5760405162461bcd60e51b81526020600482015260126024820152710a4deeadcc8e8e4d2e040e8dede40d0d2ced60731b60448201526064016105da565b6001805461ffff60a01b1916600160a81b60ff9485160260ff60a01b191617600160a01b9290931691909102919091179055565b5f546001600160a01b031633146106995760405162461bcd60e51b81526004016105da906113b0565b600255565b5f546001600160a01b031633146106c75760405162461bcd60e51b81526004016105da906113b0565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b031633146107345760405162461bcd60e51b81526004016105da906113b0565b6009805460ff60a01b1916600160a01b179055565b5f610755338484610a86565b9392505050565b5f546001600160a01b031633146107855760405162461bcd60e51b81526004016105da906113b0565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b5f546001600160a01b031633146107d05760405162461bcd60e51b81526004016105da906113b0565b8281146107db575f80fd5b5f805b8481101561090c578383828181106107f8576107f86113e7565b9050602002013560055f888885818110610814576108146113e7565b90506020020160208101906108299190611118565b6001600160a01b03166001600160a01b031681526020019081526020015f205f82825461085691906113fb565b90915550849050838281811061086e5761086e6113e7565b905060200201358261088091906113fb565b9150858582818110610894576108946113e7565b90506020020160208101906108a99190611118565b6001600160a01b0316337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8686858181106108e6576108e66113e7565b905060200201356040516108fc91815260200190565b60405180910390a36001016107de565b50335f908152600560205260408120805483929061092b90849061139d565b90915550505050505050565b5f546001600160a01b031633146109605760405162461bcd60e51b81526004016105da906113b0565b6001600160a01b03919091165f908152600760205260409020805460ff1916911515919091179055565b5f546001600160a01b031633146109b35760405162461bcd60e51b81526004016105da906113b0565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b5f546001600160a01b03163314610a2f5760405162461bcd60e51b81526004016105da906113b0565b63ffffffff808316600381905590821660048190551015610a825760405162461bcd60e51b815260206004820152600d60248201526c26b4b716a6b0bc1032b93937b960991b60448201526064016105da565b5050565b6001600160a01b0383165f9081526007602052604081205460ff16158015610ac657506001600160a01b0383165f9081526007602052604090205460ff16155b15610b9657600954600160a01b900460ff16610b1b5760405162461bcd60e51b81526020600482015260146024820152732a3930b234b733903737ba103cb2ba1037b832b760611b60448201526064016105da565b600954600160a81b900460ff16158015610b4257506009546001600160a01b038481169116145b15610b4f57610b4f610cca565b610b598383610d1e565b610b965760405162461bcd60e51b815260206004820152600e60248201526d5458206f766572206c696d69747360901b60448201526064016105da565b5f610ba2858585610d76565b90505f610baf828561139d565b6001600160a01b0387165f90815260056020526040812080549293508692909190610bdb90849061139d565b90915550506001600160a01b0385165f9081526005602052604081208054839290610c079084906113fb565b9091555050305f9081526005602052604081208054849290610c2a9084906113fb565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c7691815260200190565b60405180910390a360405182815230906001600160a01b038816907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350600195945050505050565b6009805460ff60a81b1916600160a81b179055305f9081526005602052604081205490506003548110610d0e576004548110610d0557506004545b610d0e81610e45565b506009805460ff60a81b19169055565b6009545f906001600160a01b03848116911614801590610d6157506002546001600160a01b0384165f90815260056020526040902054610d5f9084906113fb565b115b15610d6d57505f61053e565b50600192915050565b6001600160a01b0383165f90815260076020526040812054819060ff1680610db557506001600160a01b0384165f9081526007602052604090205460ff165b15610dc157505f6105a9565b6009546001600160a01b0390811690861603610e0257600154606490610df190600160a81b900460ff1685611386565b610dfb919061140e565b90506105a9565b6009546001600160a01b03908116908516036105a957600154606490610e3290600160a01b900460ff1685611386565b610e3c919061140e565b95945050505050565b610e4e81610f51565b6040805160028082526060820183525f9260208301908036833701905050905030815f81518110610e8157610e816113e7565b60200260200101906001600160a01b031690816001600160a01b0316815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110610ed557610ed56113e7565b6001600160a01b03928316602091820292909201015260085460015460405163791ac94760e01b81529183169263791ac94792610f209287925f92889290911690429060040161142d565b5f604051808303815f87803b158015610f37575f80fd5b505af1158015610f49573d5f803e3d5ffd5b505050505050565b305f908152600660209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d8452909152902054811115610ff057305f818152600660209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190205f199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b50565b5f602080835283518060208501525f5b8181101561101f57858101830151858201604001528201611003565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610ff0575f80fd5b5f8060408385031215611064575f80fd5b823561106f8161103f565b946020939093013593505050565b5f805f6060848603121561108f575f80fd5b833561109a8161103f565b925060208401356110aa8161103f565b929592945050506040919091013590565b803560ff811681146110cb575f80fd5b919050565b5f80604083850312156110e1575f80fd5b6110ea836110bb565b91506110f8602084016110bb565b90509250929050565b5f60208284031215611111575f80fd5b5035919050565b5f60208284031215611128575f80fd5b81356107558161103f565b5f8060408385031215611144575f80fd5b823561114f8161103f565b9150602083013561115f8161103f565b809150509250929050565b5f8083601f84011261117a575f80fd5b50813567ffffffffffffffff811115611191575f80fd5b6020830191508360208260051b85010111156111ab575f80fd5b9250929050565b5f805f80604085870312156111c5575f80fd5b843567ffffffffffffffff808211156111dc575f80fd5b6111e88883890161116a565b90965094506020870135915080821115611200575f80fd5b5061120d8782880161116a565b95989497509550505050565b5f806040838503121561122a575f80fd5b82356112358161103f565b91506020830135801515811461115f575f80fd5b803563ffffffff811681146110cb575f80fd5b5f806040838503121561126d575f80fd5b61127683611249565b91506110f860208401611249565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156112d257815f19048211156112b8576112b8611284565b808516156112c557918102915b93841c939080029061129d565b509250929050565b5f826112e85750600161053e565b816112f457505f61053e565b816001811461130a576002811461131457611330565b600191505061053e565b60ff84111561132557611325611284565b50506001821b61053e565b5060208310610133831016604e8410600b8410161715611353575081810a61053e565b61135d8383611298565b805f190482111561137057611370611284565b029392505050565b5f61075560ff8416836112da565b808202811582820484141761053e5761053e611284565b8181038181111561053e5761053e611284565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b8082018082111561053e5761053e611284565b5f8261142857634e487b7160e01b5f52601260045260245ffd5b500490565b5f60a08201878352602087602085015260a0604085015281875180845260c0860191506020890193505f5b8181101561147d5784516001600160a01b031683529383019391830191600101611458565b50506001600160a01b0396909616606085015250505060800152939250505056fea2646970667358221220dffe507aa711fafb27127d90af59b5c59a87d525a30d639fb3c5930aa367552b64736f6c63430008180033

Deployed Bytecode Sourcemap

2456:7572:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4426:94;;;;;;;;;;-1:-1:-1;4507:5:0;;;;;;;;;;;;-1:-1:-1;;;4507:5:0;;;;4426:94;;;;;;;:::i;:::-;;;;;;;;4941:241;;;;;;;;;;-1:-1:-1;4941:241:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;4941:241:0;1023:187:1;4316:102:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;4316:102:0;1215:177:1;5377:268:0;;;;;;;;;;-1:-1:-1;5377:268:0;;;;;:::i;:::-;;:::i;7987:87::-;;;;;;;;;;-1:-1:-1;8054:12:0;;-1:-1:-1;;;8054:12:0;;;;7987:87;;;2030:4:1;2018:17;;;2000:36;;1988:2;1973:18;7987:87:0;1858:184:1;4214:94:0;;;;;;;;;;-1:-1:-1;2641:1:0;4214:94;;2896:45;;;;;;;;;;;;;;;;7894:85;;;;;;;;;;-1:-1:-1;7960:11:0;;-1:-1:-1;;;7960:11:0;;;;7894:85;;8082:214;;;;;;;;;;-1:-1:-1;8082:214:0;;;;;:::i;:::-;;:::i;:::-;;8443:117;;;;;;;;;;-1:-1:-1;8443:117:0;;;;;:::i;:::-;;:::i;2846:43::-;;;;;;;;;;;;;;;;4634:119;;;;;;;;;;-1:-1:-1;4634:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;4727:18:0;4700:7;4727:18;;;:9;:18;;;;;;;4634:119;1322:134;;;;;;;;;;;;;:::i;5976:82::-;;;;;;;;;;;;;:::i;1073:79::-;;;;;;;;;;-1:-1:-1;1111:7:0;1138:6;-1:-1:-1;;;;;1138:6:0;1073:79;;;-1:-1:-1;;;;;3066:32:1;;;3048:51;;3036:2;3021:18;1073:79:0;2902:203:1;4528:98:0;;;;;;;;;;-1:-1:-1;4611:7:0;;;;;;;;;;;;-1:-1:-1;;;4611:7:0;;;;4528:98;;2721:39;;;;;;;;;;-1:-1:-1;2721:39:0;;;;-1:-1:-1;;;;;2721:39:0;;;5190:179;;;;;;;;;;-1:-1:-1;5190:179:0;;;;;:::i;:::-;;:::i;8304:131::-;;;;;;;;;;-1:-1:-1;8304:131:0;;;;;:::i;:::-;;:::i;2948:44::-;;;;;;;;;;;;;;;;4761:172;;;;;;;;;;-1:-1:-1;4761:172:0;;;;;:::i;:::-;-1:-1:-1;;;;;4897:19:0;;;4870:7;4897:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;4761:172;9560:465;;;;;;;;;;-1:-1:-1;9560:465:0;;;;;:::i;:::-;;:::i;7779:107::-;;;;;;;;;;-1:-1:-1;7779:107:0;;;;;:::i;:::-;;:::i;1160:154::-;;;;;;;;;;-1:-1:-1;1160:154:0;;;;;:::i;:::-;;:::i;8568:191::-;;;;;;;;;;-1:-1:-1;8568:191:0;;;;;:::i;:::-;;:::i;4941:241::-;5070:10;5041:4;5058:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5058:32:0;;;;;;;;;;:41;;;5115:37;5041:4;;5058:32;;5115:37;;;;5093:6;1361:25:1;;1349:2;1334:18;;1215:177;5115:37:0;;;;;;;;-1:-1:-1;5170:4:0;4941:241;;;;;:::o;4316:102::-;4371:7;2696:15;2641:1;2696:2;:15;:::i;:::-;2689:23;;:3;:23;:::i;:::-;4391:19;;4316:102;:::o;5377:268::-;-1:-1:-1;;;;;5531:23:0;;5514:4;5531:23;;;:11;:23;;;;;;;;5555:10;5531:35;;;;;;;:45;;5570:6;;5531:35;5514:4;;5531:45;;5570:6;;5531:45;:::i;:::-;;;;-1:-1:-1;5594:43:0;;-1:-1:-1;5608:10:0;5620:8;5630:6;5594:13;:43::i;:::-;5587:50;5377:268;-1:-1:-1;;;;5377:268:0:o;8082:214::-;928:6;;-1:-1:-1;;;;;928:6:0;914:10;:20;906:57;;;;-1:-1:-1;;;906:57:0;;;;;;;:::i;:::-;;;;;;;;;8179:2:::1;8168:7;:13;;;;:31;;;;;8197:2;8185:8;:14;;;;8168:31;8160:62;;;::::0;-1:-1:-1;;;8160:62:0;;8357:2:1;8160:62:0::1;::::0;::::1;8339:21:1::0;8396:2;8376:18;;;8369:30;-1:-1:-1;;;8415:18:1;;;8408:48;8473:18;;8160:62:0::1;8155:342:1::0;8160:62:0::1;8233:11;:21:::0;;-1:-1:-1;;;;8265:23:0;-1:-1:-1;;;8233:21:0::1;::::0;;::::1;;-1:-1:-1::0;;;;8265:23:0;;-1:-1:-1;;;8265:23:0;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;8082:214::o;8443:117::-;928:6;;-1:-1:-1;;;;;928:6:0;914:10;:20;906:57;;;;-1:-1:-1;;;906:57:0;;;;;;;:::i;:::-;8519:13:::1;:33:::0;8443:117::o;1322:134::-;928:6;;-1:-1:-1;;;;;928:6:0;914:10;:20;906:57;;;;-1:-1:-1;;;906:57:0;;;;;;;:::i;:::-;1398:1:::1;1381:19:::0;;-1:-1:-1;;;;;;1381:19:0::1;::::0;;1416:32:::1;::::0;3048:51:1;;;1416:32:0::1;::::0;3036:2:1;3021:18;1416:32:0::1;;;;;;;1322:134::o:0;5976:82::-;928:6;;-1:-1:-1;;;;;928:6:0;914:10;:20;906:57;;;;-1:-1:-1;;;906:57:0;;;;;;;:::i;:::-;6031:12:::1;:19:::0;;-1:-1:-1;;;;6031:19:0::1;-1:-1:-1::0;;;6031:19:0::1;::::0;;5976:82::o;5190:179::-;5294:4;5318:43;5332:10;5344:8;5354:6;5318:13;:43::i;:::-;5311:50;5190:179;-1:-1:-1;;;5190:179:0:o;8304:131::-;928:6;;-1:-1:-1;;;;;928:6:0;914:10;:20;906:57;;;;-1:-1:-1;;;906:57:0;;;;;;;:::i;:::-;8387:16:::1;:40:::0;;-1:-1:-1;;;;;;8387:40:0::1;-1:-1:-1::0;;;;;8387:40:0;;;::::1;::::0;;;::::1;::::0;;8304:131::o;9560:465::-;928:6;;-1:-1:-1;;;;;928:6:0;914:10;:20;906:57;;;;-1:-1:-1;;;906:57:0;;;;;;;:::i;:::-;9703:32;;::::1;9695:41;;;::::0;::::1;;9747:10;9777:9:::0;9772:205:::1;9792:18:::0;;::::1;9772:205;;;9857:7;;9865:1;9857:10;;;;;;;:::i;:::-;;;;;;;9832:9;:21;9842:7;;9850:1;9842:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9832:21:0::1;-1:-1:-1::0;;;;;9832:21:0::1;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;9891:7:0;;-1:-1:-1;9891:7:0;9899:1;9891:10;;::::1;;;;;:::i;:::-;;;;;;;9882:19;;;;;:::i;:::-;;;9942:7;;9950:1;9942:10;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;9921:44:0::1;9930:10;9921:44;9954:7:::0;;9962:1;9954:10;;::::1;;;;;:::i;:::-;;;;;;;9921:44;;;;1361:25:1::0;;1349:2;1334:18;;1215:177;9921:44:0::1;;;;;;;;9812:3;;9772:205;;;-1:-1:-1::0;9997:10:0::1;9987:21;::::0;;;:9:::1;:21;::::0;;;;:30;;10012:5;;9987:21;:30:::1;::::0;10012:5;;9987:30:::1;:::i;:::-;::::0;;;-1:-1:-1;;;;;;;9560:465:0:o;7779:107::-;928:6;;-1:-1:-1;;;;;928:6:0;914:10;:20;906:57;;;;-1:-1:-1;;;906:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7858:11:0;;;::::1;;::::0;;;:6:::1;:11;::::0;;;;:20;;-1:-1:-1;;7858:20:0::1;::::0;::::1;;::::0;;;::::1;::::0;;7779:107::o;1160:154::-;928:6;;-1:-1:-1;;;;;928:6:0;914:10;:20;906:57;;;;-1:-1:-1;;;906:57:0;;;;;;;:::i;:::-;1243:6:::1;:17:::0;;-1:-1:-1;;;;;;1243:17:0::1;-1:-1:-1::0;;;;;1243:17:0;::::1;::::0;;::::1;::::0;;;1276:30:::1;::::0;3048:51:1;;;1276:30:0::1;::::0;3036:2:1;3021:18;1276:30:0::1;;;;;;;1160:154:::0;:::o;8568:191::-;928:6;;-1:-1:-1;;;;;928:6:0;914:10;:20;906:57;;;;-1:-1:-1;;;906:57:0;;;;;;;:::i;:::-;8649:17:::1;::::0;;::::1;:8;:17:::0;;;8677;;::::1;:8;:17:::0;;;8713:20:::1;;8705:46;;;::::0;-1:-1:-1;;;8705:46:0;;9182:2:1;8705:46:0::1;::::0;::::1;9164:21:1::0;9221:2;9201:18;;;9194:30;-1:-1:-1;;;9240:18:1;;;9233:43;9293:18;;8705:46:0::1;8980:337:1::0;8705:46:0::1;8568:191:::0;;:::o;6066:851::-;-1:-1:-1;;;;;6213:14:0;;6191:4;6213:14;;;:6;:14;;;;;;;;6212:15;:36;;;;-1:-1:-1;;;;;;6232:16:0;;;;;;:6;:16;;;;;;;;6231:17;6212:36;6208:297;;;6273:12;;-1:-1:-1;;;6273:12:0;;;;6265:45;;;;-1:-1:-1;;;6265:45:0;;9524:2:1;6265:45:0;;;9506:21:1;9563:2;9543:18;;;9536:30;-1:-1:-1;;;9582:18:1;;;9575:50;9642:18;;6265:45:0;9322:344:1;6265:45:0;6330:7;;-1:-1:-1;;;6330:7:0;;;;6329:8;:36;;;;-1:-1:-1;6353:12:0;;-1:-1:-1;;;;;6341:24:0;;;6353:12;;6341:24;6329:36;6325:97;;;6386:20;:18;:20::i;:::-;6444:30;6457:8;6467:6;6444:12;:30::i;:::-;6436:57;;;;-1:-1:-1;;;6436:57:0;;9873:2:1;6436:57:0;;;9855:21:1;9912:2;9892:18;;;9885:30;-1:-1:-1;;;9931:18:1;;;9924:44;9985:18;;6436:57:0;9671:338:1;6436:57:0;6517:18;6538:39;6552:6;6560:8;6570:6;6538:13;:39::i;:::-;6517:60;-1:-1:-1;6588:23:0;6614:19;6517:60;6614:6;:19;:::i;:::-;-1:-1:-1;;;;;6644:17:0;;;;;;:9;:17;;;;;:27;;6588:45;;-1:-1:-1;6665:6:0;;6644:17;;;:27;;6665:6;;6644:27;:::i;:::-;;;;-1:-1:-1;;;;;;;6682:19:0;;;;;;:9;:19;;;;;:38;;6705:15;;6682:19;:38;;6705:15;;6682:38;:::i;:::-;;;;-1:-1:-1;;6749:4:0;6731:24;;;;:9;:24;;;;;:38;;6759:10;;6731:24;:38;;6759:10;;6731:38;:::i;:::-;;;;;;;;6802:8;-1:-1:-1;;;;;6785:43:0;6794:6;-1:-1:-1;;;;;6785:43:0;;6812:15;6785:43;;;;1361:25:1;;1349:2;1334:18;;1215:177;6785:43:0;;;;;;;;6844;;1361:25:1;;;6869:4:0;;-1:-1:-1;;;;;6844:43:0;;;;;1349:2:1;1334:18;6844:43:0;;;;;;;-1:-1:-1;6905:4:0;;6066:851;-1:-1:-1;;;;;6066:851:0:o;8767:349::-;3567:7;:14;;-1:-1:-1;;;;3567:14:0;-1:-1:-1;;;3567:14:0;;;8875:4:::1;-1:-1:-1::0;4727:18:0;;;:9;:18;;;;;;8828:53:::1;;8918:8;;8896:18;:30;8892:217;;8969:8;;8947:18;:30;8943:100;;-1:-1:-1::0;9019:8:0::1;::::0;8943:100:::1;9057:40;9078:18;9057:20;:40::i;:::-;-1:-1:-1::0;3604:7:0;:15;;-1:-1:-1;;;;3604:15:0;;;8767:349::o;6925:322::-;7084:12;;7037:4;;-1:-1:-1;;;;;7072:24:0;;;7084:12;;7072:24;;;;:95;;-1:-1:-1;7153:13:0;;-1:-1:-1;;;;;7114:19:0;;;;;;:9;:19;;;;;;:36;;7136:14;;7114:36;:::i;:::-;:52;7072:95;7054:164;;;-1:-1:-1;7201:5:0;7194:12;;7054:164;-1:-1:-1;7235:4:0;6925:322;;;;:::o;7255:516::-;-1:-1:-1;;;;;7444:18:0;;7390:7;7444:18;;;:6;:18;;;;;;7390:7;;7444:18;;;:39;;-1:-1:-1;;;;;;7466:17:0;;;;;;:6;:17;;;;;;;;7444:39;7440:295;;;-1:-1:-1;7512:1:0;7440:295;;;7549:12;;-1:-1:-1;;;;;7549:12:0;;;7535:26;;;;7531:204;;7600:11;;7615:3;;7591:20;;-1:-1:-1;;;7600:11:0;;;;7591:6;:20;:::i;:::-;7590:28;;;;:::i;:::-;7578:40;;7531:204;;;7653:12;;-1:-1:-1;;;;;7653:12:0;;;7640:25;;;;7636:99;;7704:12;;7720:3;;7695:21;;-1:-1:-1;;;7704:12:0;;;;7695:6;:21;:::i;:::-;7694:29;;;;:::i;:::-;7682:41;7754:9;-1:-1:-1;;;;;7255:516:0:o;9124:428::-;9194:27;9209:11;9194:14;:27::i;:::-;9256:16;;;9270:1;9256:16;;;;;;;;9232:21;;9256:16;;;;;;;;;;-1:-1:-1;9256:16:0;9232:40;;9301:4;9283;9288:1;9283:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;9283:23:0;;;-1:-1:-1;;;;;9283:23:0;;;;;9327:4;9317;9322:1;9317:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9317:14:0;;;:7;;;;;;;;;:14;9342:18;;;9487:16;9342:202;;-1:-1:-1;;;9342:202:0;;:18;;;;:69;;:202;;9426:11;;9342:18;;9468:4;;9487:16;;;;9518:15;;9342:202;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9183:369;9124:428;:::o;5653:315::-;5743:4;5723:26;;;;:11;:26;;;;;;;;3238:42;5723:46;;;;;;;;:61;-1:-1:-1;5719:242:0;;;5821:4;5801:26;;;;:11;:26;;;;;;;;3238:42;5801:46;;;;;;;;;;-1:-1:-1;;5801:66:0;;;;5887:62;;1361:25:1;;;3238:42:0;;5821:4;5887:62;;1334:18:1;5887:62:0;;;;;;;5719:242;5653:315;:::o;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;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:156::-;2113:20;;2173:4;2162:16;;2152:27;;2142:55;;2193:1;2190;2183:12;2142:55;2047:156;;;:::o;2208:252::-;2272:6;2280;2333:2;2321:9;2312:7;2308:23;2304:32;2301:52;;;2349:1;2346;2339:12;2301:52;2372:27;2389:9;2372:27;:::i;:::-;2362:37;;2418:36;2450:2;2439:9;2435:18;2418:36;:::i;:::-;2408:46;;2208:252;;;;;:::o;2465:180::-;2524:6;2577:2;2565:9;2556:7;2552:23;2548:32;2545:52;;;2593:1;2590;2583:12;2545:52;-1:-1:-1;2616:23:1;;2465:180;-1:-1:-1;2465:180:1:o;2650:247::-;2709:6;2762:2;2750:9;2741:7;2737:23;2733:32;2730:52;;;2778:1;2775;2768:12;2730:52;2817:9;2804:23;2836:31;2861:5;2836:31;:::i;3334:388::-;3402:6;3410;3463:2;3451:9;3442:7;3438:23;3434:32;3431:52;;;3479:1;3476;3469:12;3431:52;3518:9;3505:23;3537:31;3562:5;3537:31;:::i;:::-;3587:5;-1:-1:-1;3644:2:1;3629:18;;3616:32;3657:33;3616:32;3657:33;:::i;:::-;3709:7;3699:17;;;3334:388;;;;;:::o;3727:367::-;3790:8;3800:6;3854:3;3847:4;3839:6;3835:17;3831:27;3821:55;;3872:1;3869;3862:12;3821:55;-1:-1:-1;3895:20:1;;3938:18;3927:30;;3924:50;;;3970:1;3967;3960:12;3924:50;4007:4;3999:6;3995:17;3983:29;;4067:3;4060:4;4050:6;4047:1;4043:14;4035:6;4031:27;4027:38;4024:47;4021:67;;;4084:1;4081;4074:12;4021:67;3727:367;;;;;:::o;4099:773::-;4221:6;4229;4237;4245;4298:2;4286:9;4277:7;4273:23;4269:32;4266:52;;;4314:1;4311;4304:12;4266:52;4354:9;4341:23;4383:18;4424:2;4416:6;4413:14;4410:34;;;4440:1;4437;4430:12;4410:34;4479:70;4541:7;4532:6;4521:9;4517:22;4479:70;:::i;:::-;4568:8;;-1:-1:-1;4453:96:1;-1:-1:-1;4656:2:1;4641:18;;4628:32;;-1:-1:-1;4672:16:1;;;4669:36;;;4701:1;4698;4691:12;4669:36;;4740:72;4804:7;4793:8;4782:9;4778:24;4740:72;:::i;:::-;4099:773;;;;-1:-1:-1;4831:8:1;-1:-1:-1;;;;4099:773:1:o;4877:416::-;4942:6;4950;5003:2;4991:9;4982:7;4978:23;4974:32;4971:52;;;5019:1;5016;5009:12;4971:52;5058:9;5045:23;5077:31;5102:5;5077:31;:::i;:::-;5127:5;-1:-1:-1;5184:2:1;5169:18;;5156:32;5226:15;;5219:23;5207:36;;5197:64;;5257:1;5254;5247:12;5558:163;5625:20;;5685:10;5674:22;;5664:33;;5654:61;;5711:1;5708;5701:12;5726:256;5792:6;5800;5853:2;5841:9;5832:7;5828:23;5824:32;5821:52;;;5869:1;5866;5859:12;5821:52;5892:28;5910:9;5892:28;:::i;:::-;5882:38;;5939:37;5972:2;5961:9;5957:18;5939:37;:::i;5987:127::-;6048:10;6043:3;6039:20;6036:1;6029:31;6079:4;6076:1;6069:15;6103:4;6100:1;6093:15;6119:416;6208:1;6245:5;6208:1;6259:270;6280:7;6270:8;6267:21;6259:270;;;6339:4;6335:1;6331:6;6327:17;6321:4;6318:27;6315:53;;;6348:18;;:::i;:::-;6398:7;6388:8;6384:22;6381:55;;;6418:16;;;;6381:55;6497:22;;;;6457:15;;;;6259:270;;;6263:3;6119:416;;;;;:::o;6540:806::-;6589:5;6619:8;6609:80;;-1:-1:-1;6660:1:1;6674:5;;6609:80;6708:4;6698:76;;-1:-1:-1;6745:1:1;6759:5;;6698:76;6790:4;6808:1;6803:59;;;;6876:1;6871:130;;;;6783:218;;6803:59;6833:1;6824:10;;6847:5;;;6871:130;6908:3;6898:8;6895:17;6892:43;;;6915:18;;:::i;:::-;-1:-1:-1;;6971:1:1;6957:16;;6986:5;;6783:218;;7085:2;7075:8;7072:16;7066:3;7060:4;7057:13;7053:36;7047:2;7037:8;7034:16;7029:2;7023:4;7020:12;7016:35;7013:77;7010:159;;;-1:-1:-1;7122:19:1;;;7154:5;;7010:159;7201:34;7226:8;7220:4;7201:34;:::i;:::-;7271:6;7267:1;7263:6;7259:19;7250:7;7247:32;7244:58;;;7282:18;;:::i;:::-;7320:20;;6540:806;-1:-1:-1;;;6540:806:1:o;7351:140::-;7409:5;7438:47;7479:4;7469:8;7465:19;7459:4;7438:47;:::i;7496:168::-;7569:9;;;7600;;7617:15;;;7611:22;;7597:37;7587:71;;7638:18;;:::i;7669:128::-;7736:9;;;7757:11;;;7754:37;;;7771:18;;:::i;7802:348::-;8004:2;7986:21;;;8043:2;8023:18;;;8016:30;8082:26;8077:2;8062:18;;8055:54;8141:2;8126:18;;7802:348::o;8502:127::-;8563:10;8558:3;8554:20;8551:1;8544:31;8594:4;8591:1;8584:15;8618:4;8615:1;8608:15;8634:125;8699:9;;;8720:10;;;8717:36;;;8733:18;;:::i;10014:217::-;10054:1;10080;10070:132;;10124:10;10119:3;10115:20;10112:1;10105:31;10159:4;10156:1;10149:15;10187:4;10184:1;10177:15;10070:132;-1:-1:-1;10216:9:1;;10014:217::o;10368:988::-;10638:4;10686:3;10675:9;10671:19;10717:6;10706:9;10699:25;10743:2;10781:6;10776:2;10765:9;10761:18;10754:34;10824:3;10819:2;10808:9;10804:18;10797:31;10848:6;10883;10877:13;10914:6;10906;10899:22;10952:3;10941:9;10937:19;10930:26;;10991:2;10983:6;10979:15;10965:29;;11012:1;11022:195;11036:6;11033:1;11030:13;11022:195;;;11101:13;;-1:-1:-1;;;;;11097:39:1;11085:52;;11192:15;;;;11157:12;;;;11133:1;11051:9;11022:195;;;-1:-1:-1;;;;;;;11273:32:1;;;;11268:2;11253:18;;11246:60;-1:-1:-1;;;11337:3:1;11322:19;11315:35;11234:3;10368:988;-1:-1:-1;;;10368:988:1:o

Swarm Source

ipfs://dffe507aa711fafb27127d90af59b5c59a87d525a30d639fb3c5930aa367552b

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]

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