ETH Price: $2,141.88 (+1.80%)
 

Overview

ETH Balance

0.021089886957793877 ETH

Eth Value

$45.17 (@ $2,141.88/ETH)

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve132060932021-09-11 18:25:461663 days ago1631384746IN
0x3C2DbFaD...600873005
0 ETH0.0025619555
Manualsend132023222021-09-11 4:28:331663 days ago1631334513IN
0x3C2DbFaD...600873005
0 ETH0.0045842689.55043072
Approve131849052021-09-08 11:47:241666 days ago1631101644IN
0x3C2DbFaD...600873005
0 ETH0.0035154575.46976125
Approve131843342021-09-08 9:36:001666 days ago1631093760IN
0x3C2DbFaD...600873005
0 ETH0.00504186108.23862721
Approve131771162021-09-07 6:48:121667 days ago1630997292IN
0x3C2DbFaD...600873005
0 ETH0.003487274.86328224
Approve131750022021-09-06 22:51:411668 days ago1630968701IN
0x3C2DbFaD...600873005
0 ETH0.0033923272.82627682
Approve131744572021-09-06 20:58:371668 days ago1630961917IN
0x3C2DbFaD...600873005
0 ETH0.00645995138.68227879
Approve131743122021-09-06 20:26:151668 days ago1630959975IN
0x3C2DbFaD...600873005
0 ETH0.01027111220.5
Approve131743092021-09-06 20:25:201668 days ago1630959920IN
0x3C2DbFaD...600873005
0 ETH0.01048821225.16069171
Approve131739992021-09-06 19:11:111668 days ago1630955471IN
0x3C2DbFaD...600873005
0 ETH0.00644152138.28663563
Approve131739612021-09-06 19:00:561668 days ago1630954856IN
0x3C2DbFaD...600873005
0 ETH0.00647922139.09579113
Approve131738962021-09-06 18:47:351668 days ago1630954055IN
0x3C2DbFaD...600873005
0 ETH0.0044628195.8076763
Approve131738722021-09-06 18:43:541668 days ago1630953834IN
0x3C2DbFaD...600873005
0 ETH0.00499382107.20728356
Approve131738682021-09-06 18:42:191668 days ago1630953739IN
0x3C2DbFaD...600873005
0 ETH0.0037836481.22714511
Approve131738102021-09-06 18:30:371668 days ago1630953037IN
0x3C2DbFaD...600873005
0 ETH0.00548258117.7
Approve131737712021-09-06 18:23:171668 days ago1630952597IN
0x3C2DbFaD...600873005
0 ETH0.0036027477.34357966
Approve131736852021-09-06 18:07:561668 days ago1630951676IN
0x3C2DbFaD...600873005
0 ETH0.00632667135.82085907
Approve131736852021-09-06 18:07:561668 days ago1630951676IN
0x3C2DbFaD...600873005
0 ETH0.00635364136.4
Approve131736232021-09-06 17:51:241668 days ago1630950684IN
0x3C2DbFaD...600873005
0 ETH0.00660984141.9
Approve131736212021-09-06 17:50:551668 days ago1630950655IN
0x3C2DbFaD...600873005
0 ETH0.0044251995
Approve131736022021-09-06 17:47:251668 days ago1630950445IN
0x3C2DbFaD...600873005
0 ETH0.00927427199.1
Approve131735292021-09-06 17:33:141668 days ago1630949594IN
0x3C2DbFaD...600873005
0 ETH0.0073623158.05375461
Approve131735182021-09-06 17:30:041668 days ago1630949404IN
0x3C2DbFaD...600873005
0 ETH0.01839483394.9
Approve131734812021-09-06 17:20:581668 days ago1630948858IN
0x3C2DbFaD...600873005
0 ETH0.00722471155.1
Approve131733852021-09-06 16:56:561668 days ago1630947416IN
0x3C2DbFaD...600873005
0 ETH0.00666108143
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
-132350842021-09-16 6:16:191658 days ago1631772979
0x3C2DbFaD...600873005
0.00424713 ETH
-132267692021-09-14 23:16:371659 days ago1631661397
0x3C2DbFaD...600873005
0.00461575 ETH
-132195412021-09-13 20:26:031661 days ago1631564763
0x3C2DbFaD...600873005
0.00290463 ETH
-132176422021-09-13 13:34:051661 days ago1631540045
0x3C2DbFaD...600873005
0.00290463 ETH
-132173102021-09-13 12:18:071661 days ago1631535487
0x3C2DbFaD...600873005
0.00352049 ETH
-132030692021-09-11 7:18:181663 days ago1631344698
0x3C2DbFaD...600873005
0.00580186 ETH
-132023222021-09-11 4:28:331663 days ago1631334513
0x3C2DbFaD...600873005
0.08871588 ETH
-132023222021-09-11 4:28:331663 days ago1631334513
0x3C2DbFaD...600873005
0.08871588 ETH
-132023222021-09-11 4:28:331663 days ago1631334513
0x3C2DbFaD...600873005
0.08871588 ETH
-132020412021-09-11 3:20:111663 days ago1631330411
0x3C2DbFaD...600873005
0.02820344 ETH
-131927782021-09-09 17:08:141665 days ago1631207294
0x3C2DbFaD...600873005
0.01463444 ETH
-131886812021-09-09 1:43:141665 days ago1631151794
0x3C2DbFaD...600873005
0.02491343 ETH
-131883752021-09-09 0:36:091665 days ago1631147769
0x3C2DbFaD...600873005
0.0115334 ETH
-131880662021-09-08 23:23:171665 days ago1631143397
0x3C2DbFaD...600873005
0.03225838 ETH
-131853722021-09-08 13:26:451666 days ago1631107605
0x3C2DbFaD...600873005
0.08209127 ETH
-131843702021-09-08 9:43:131666 days ago1631094193
0x3C2DbFaD...600873005
0.00489324 ETH
-131843502021-09-08 9:39:561666 days ago1631093996
0x3C2DbFaD...600873005
0.01283328 ETH
-131834672021-09-08 6:27:441666 days ago1631082464
0x3C2DbFaD...600873005
0.03053373 ETH
-131779612021-09-07 9:52:231667 days ago1631008343
0x3C2DbFaD...600873005
0.02425301 ETH
-131769882021-09-07 6:16:061667 days ago1630995366
0x3C2DbFaD...600873005
0.11229655 ETH
-131769882021-09-07 6:16:061667 days ago1630995366
0x3C2DbFaD...600873005
0.11229655 ETH
-131769882021-09-07 6:16:061667 days ago1630995366
0x3C2DbFaD...600873005
0.11229655 ETH
-131769882021-09-07 6:16:061667 days ago1630995366
0x3C2DbFaD...600873005
0.14895418 ETH
-131766902021-09-07 5:06:141667 days ago1630991174
0x3C2DbFaD...600873005
0.01109532 ETH
-131762612021-09-07 3:35:481667 days ago1630985748
0x3C2DbFaD...600873005
0.01230421 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:
CryptoGOLD

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2021-09-06
*/

/**

  ______   _______  __       _______  
 /      | /  _____||  |     |       \ 
|  ,----'|  |  __  |  |     |  .--.  |
|  |     |  | |_ | |  |     |  |  |  |
|  `----.|  |__| | |  `----.|  '--'  |
 \______| \______| |_______||_______/ 
                                       

---------------------------------------------------------------------------

t.me/CGLDofficial
https://www.cryptogolderc20.com

---------------------------------------------------------------------------

*/

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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;
    address private _previousOwner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

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

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

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

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

}  

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 CryptoGOLD  is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 75000000000  * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    address payable private _feeAddrWallet1;
    address payable private _feeAddrWallet2;
    address payable private _feeAddrWallet3;
    
    string private constant _name = "CryptoGOLD";
    string private constant _symbol = "$CGLD";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _feeAddrWallet1 = payable(0xc5be9AaFB738E3E0c31a5FF68304ceB2320989C8);
        _feeAddrWallet2 = payable(0xC32d6D47d85d92d4B54739d7817b02B17f755c82);
        _feeAddrWallet3 = payable(0xC32d6D47d85d92d4B54739d7817b02B17f755c82);
        _rOwned[address(this)] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        emit Transfer(address(0), address(this), _tTotal);
    }

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

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

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

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

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

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

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

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

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

    function setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    function _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(amount > 0, "Transfer amount must be greater than zero");
        require(!bots[from]);
        if (from != address(this)) {
            _feeAddr1 = 0;
            _feeAddr2 = 10;
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount);
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 300000000000000000) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
		
        _tokenTransfer(from,to,amount);
    }

    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 liftMaxTx() external onlyOwner{
        _maxTxAmount = _tTotal;
    }
    function sendETHToFee(uint256 amount) private {
        _feeAddrWallet1.transfer(amount/3);
        _feeAddrWallet2.transfer(amount/3);
        _feeAddrWallet3.transfer(amount/3);
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _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);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxTxAmount = 7500000000 * 10**9;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
        
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

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":"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":"liftMaxTx","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"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":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","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"}]

6080604052610019680410d586a20a4c00006000196101a8565b61002590600019610185565b6008556010805462ffffff60a81b19169055680410d586a20a4c000060115534801561005057600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600c80546001600160a01b031990811673c5be9aafb738e3e0c31a5ff68304ceb2320989c8178255600d8054821673c32d6d47d85d92d4b54739d7817b02b17f755c82908117909155600e80549092161790556008543060008181526002602090815260408083209490945581546001600160a01b03908116835260058252848320805460ff1990811660019081179092558585528685208054821683179055965490911683528483208054909616179094559151680410d586a20a4c0000815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36101c8565b6000828210156101a357634e487b7160e01b81526011600452602481fd5b500390565b6000826101c357634e487b7160e01b81526012600452602481fd5b500690565b6116ad806101d76000396000f3fe6080604052600436106100f75760003560e01c806370a082311161008a578063a9059cbb11610059578063a9059cbb146102b1578063c3c8cd80146102d1578063c9567bf9146102e6578063dd62ed3e146102fb57600080fd5b806370a0823114610226578063715018a6146102465780638da5cb5b1461025b57806395d89b411461028357600080fd5b80632ab30838116100c65780632ab30838146101be578063313ce567146101d55780635932ead1146101f15780636fc3eaec1461021157600080fd5b806306fdde0314610103578063095ea7b31461014857806318160ddd1461017857806323b872dd1461019e57600080fd5b366100fe57005b600080fd5b34801561010f57600080fd5b5060408051808201909152600a81526910dc9e5c1d1bd1d3d31160b21b60208201525b60405161013f91906114b0565b60405180910390f35b34801561015457600080fd5b50610168610163366004611420565b610341565b604051901515815260200161013f565b34801561018457600080fd5b50680410d586a20a4c00005b60405190815260200161013f565b3480156101aa57600080fd5b506101686101b93660046113e0565b610358565b3480156101ca57600080fd5b506101d36103c1565b005b3480156101e157600080fd5b506040516009815260200161013f565b3480156101fd57600080fd5b506101d361020c36600461144b565b610403565b34801561021d57600080fd5b506101d361044b565b34801561023257600080fd5b50610190610241366004611370565b610478565b34801561025257600080fd5b506101d361049a565b34801561026757600080fd5b506000546040516001600160a01b03909116815260200161013f565b34801561028f57600080fd5b506040805180820190915260058152640910d1d31160da1b6020820152610132565b3480156102bd57600080fd5b506101686102cc366004611420565b61050e565b3480156102dd57600080fd5b506101d361051b565b3480156102f257600080fd5b506101d3610551565b34801561030757600080fd5b506101906103163660046113a8565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b600061034e338484610918565b5060015b92915050565b6000610365848484610a3c565b6103b784336103b285604051806060016040528060288152602001611650602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610bde565b610918565b5060019392505050565b6000546001600160a01b031633146103f45760405162461bcd60e51b81526004016103eb90611503565b60405180910390fd5b680410d586a20a4c0000601155565b6000546001600160a01b0316331461042d5760405162461bcd60e51b81526004016103eb90611503565b60108054911515600160b81b0260ff60b81b19909216919091179055565b600c546001600160a01b0316336001600160a01b03161461046b57600080fd5b4761047581610c18565b50565b6001600160a01b03811660009081526002602052604081205461035290610ce0565b6000546001600160a01b031633146104c45760405162461bcd60e51b81526004016103eb90611503565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061034e338484610a3c565b600c546001600160a01b0316336001600160a01b03161461053b57600080fd5b600061054630610478565b905061047581610d64565b6000546001600160a01b0316331461057b5760405162461bcd60e51b81526004016103eb90611503565b601054600160a01b900460ff16156105d55760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016103eb565b600f80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106123082680410d586a20a4c0000610918565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561064b57600080fd5b505afa15801561065f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610683919061138c565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156106cb57600080fd5b505afa1580156106df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610703919061138c565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561074b57600080fd5b505af115801561075f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610783919061138c565b601080546001600160a01b0319166001600160a01b03928316179055600f541663f305d71947306107b381610478565b6000806107c86000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561082b57600080fd5b505af115801561083f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108649190611483565b5050601080546768155a43676e000060115563ffff00ff60a01b198116630101000160a01b17909155600f5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b1580156108dc57600080fd5b505af11580156108f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109149190611467565b5050565b6001600160a01b03831661097a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103eb565b6001600160a01b0382166109db5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103eb565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60008111610a9e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016103eb565b6001600160a01b03831660009081526006602052604090205460ff1615610ac457600080fd5b6001600160a01b0383163014610bce576000600a908155600b556010546001600160a01b038481169116148015610b095750600f546001600160a01b03838116911614155b8015610b2e57506001600160a01b03821660009081526005602052604090205460ff16155b8015610b435750601054600160b81b900460ff165b15610b5757601154811115610b5757600080fd5b6000610b6230610478565b601054909150600160a81b900460ff16158015610b8d57506010546001600160a01b03858116911614155b8015610ba25750601054600160b01b900460ff165b15610bcc57610bb081610d64565b47670429d069189e0000811115610bca57610bca47610c18565b505b505b610bd9838383610f09565b505050565b60008184841115610c025760405162461bcd60e51b81526004016103eb91906114b0565b506000610c0f84866115ff565b95945050505050565b600c546001600160a01b03166108fc610c326003846115c0565b6040518115909202916000818181858888f19350505050158015610c5a573d6000803e3d6000fd5b50600d546001600160a01b03166108fc610c756003846115c0565b6040518115909202916000818181858888f19350505050158015610c9d573d6000803e3d6000fd5b50600e546001600160a01b03166108fc610cb86003846115c0565b6040518115909202916000818181858888f19350505050158015610914573d6000803e3d6000fd5b6000600854821115610d475760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016103eb565b6000610d51610f14565b9050610d5d8382610f37565b9392505050565b6010805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610dba57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600f54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610e0e57600080fd5b505afa158015610e22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e46919061138c565b81600181518110610e6757634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600f54610e8d9130911684610918565b600f5460405163791ac94760e01b81526001600160a01b039091169063791ac94790610ec6908590600090869030904290600401611538565b600060405180830381600087803b158015610ee057600080fd5b505af1158015610ef4573d6000803e3d6000fd5b50506010805460ff60a81b1916905550505050565b610bd9838383610f79565b6000806000610f21611070565b9092509050610f308282610f37565b9250505090565b6000610d5d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506110b2565b600080600080600080610f8b876110e0565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150610fbd908761113d565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054610fec908661117f565b6001600160a01b03891660009081526002602052604090205561100e816111de565b6110188483611228565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161105d91815260200190565b60405180910390a3505050505050505050565b6008546000908190680410d586a20a4c000061108c8282610f37565b8210156110a957505060085492680410d586a20a4c000092509050565b90939092509050565b600081836110d35760405162461bcd60e51b81526004016103eb91906114b0565b506000610c0f84866115c0565b60008060008060008060008060006110fd8a600a54600b5461124c565b925092509250600061110d610f14565b905060008060006111208e8787876112a1565b919e509c509a509598509396509194505050505091939550919395565b6000610d5d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610bde565b60008061118c83856115a8565b905083811015610d5d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103eb565b60006111e8610f14565b905060006111f683836112f1565b30600090815260026020526040902054909150611213908261117f565b30600090815260026020526040902055505050565b600854611235908361113d565b600855600954611245908261117f565b6009555050565b6000808080611266606461126089896112f1565b90610f37565b9050600061127960646112608a896112f1565b905060006112918261128b8b8661113d565b9061113d565b9992985090965090945050505050565b60008080806112b088866112f1565b905060006112be88876112f1565b905060006112cc88886112f1565b905060006112de8261128b868661113d565b939b939a50919850919650505050505050565b60008261130057506000610352565b600061130c83856115e0565b90508261131985836115c0565b14610d5d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103eb565b600060208284031215611381578081fd5b8135610d5d8161162c565b60006020828403121561139d578081fd5b8151610d5d8161162c565b600080604083850312156113ba578081fd5b82356113c58161162c565b915060208301356113d58161162c565b809150509250929050565b6000806000606084860312156113f4578081fd5b83356113ff8161162c565b9250602084013561140f8161162c565b929592945050506040919091013590565b60008060408385031215611432578182fd5b823561143d8161162c565b946020939093013593505050565b60006020828403121561145c578081fd5b8135610d5d81611641565b600060208284031215611478578081fd5b8151610d5d81611641565b600080600060608486031215611497578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b818110156114dc578581018301518582016040015282016114c0565b818111156114ed5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156115875784516001600160a01b031683529383019391830191600101611562565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156115bb576115bb611616565b500190565b6000826115db57634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156115fa576115fa611616565b500290565b60008282101561161157611611611616565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461047557600080fd5b801515811461047557600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122050111f78b4f2f5506da962e11164874c0969ef7349238601b2c6f86809a5c6e064736f6c63430008040033

Deployed Bytecode

0x6080604052600436106100f75760003560e01c806370a082311161008a578063a9059cbb11610059578063a9059cbb146102b1578063c3c8cd80146102d1578063c9567bf9146102e6578063dd62ed3e146102fb57600080fd5b806370a0823114610226578063715018a6146102465780638da5cb5b1461025b57806395d89b411461028357600080fd5b80632ab30838116100c65780632ab30838146101be578063313ce567146101d55780635932ead1146101f15780636fc3eaec1461021157600080fd5b806306fdde0314610103578063095ea7b31461014857806318160ddd1461017857806323b872dd1461019e57600080fd5b366100fe57005b600080fd5b34801561010f57600080fd5b5060408051808201909152600a81526910dc9e5c1d1bd1d3d31160b21b60208201525b60405161013f91906114b0565b60405180910390f35b34801561015457600080fd5b50610168610163366004611420565b610341565b604051901515815260200161013f565b34801561018457600080fd5b50680410d586a20a4c00005b60405190815260200161013f565b3480156101aa57600080fd5b506101686101b93660046113e0565b610358565b3480156101ca57600080fd5b506101d36103c1565b005b3480156101e157600080fd5b506040516009815260200161013f565b3480156101fd57600080fd5b506101d361020c36600461144b565b610403565b34801561021d57600080fd5b506101d361044b565b34801561023257600080fd5b50610190610241366004611370565b610478565b34801561025257600080fd5b506101d361049a565b34801561026757600080fd5b506000546040516001600160a01b03909116815260200161013f565b34801561028f57600080fd5b506040805180820190915260058152640910d1d31160da1b6020820152610132565b3480156102bd57600080fd5b506101686102cc366004611420565b61050e565b3480156102dd57600080fd5b506101d361051b565b3480156102f257600080fd5b506101d3610551565b34801561030757600080fd5b506101906103163660046113a8565b6001600160a01b03918216600090815260046020908152604080832093909416825291909152205490565b600061034e338484610918565b5060015b92915050565b6000610365848484610a3c565b6103b784336103b285604051806060016040528060288152602001611650602891396001600160a01b038a1660009081526004602090815260408083203384529091529020549190610bde565b610918565b5060019392505050565b6000546001600160a01b031633146103f45760405162461bcd60e51b81526004016103eb90611503565b60405180910390fd5b680410d586a20a4c0000601155565b6000546001600160a01b0316331461042d5760405162461bcd60e51b81526004016103eb90611503565b60108054911515600160b81b0260ff60b81b19909216919091179055565b600c546001600160a01b0316336001600160a01b03161461046b57600080fd5b4761047581610c18565b50565b6001600160a01b03811660009081526002602052604081205461035290610ce0565b6000546001600160a01b031633146104c45760405162461bcd60e51b81526004016103eb90611503565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b600061034e338484610a3c565b600c546001600160a01b0316336001600160a01b03161461053b57600080fd5b600061054630610478565b905061047581610d64565b6000546001600160a01b0316331461057b5760405162461bcd60e51b81526004016103eb90611503565b601054600160a01b900460ff16156105d55760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016103eb565b600f80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d9081179091556106123082680410d586a20a4c0000610918565b806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561064b57600080fd5b505afa15801561065f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610683919061138c565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156106cb57600080fd5b505afa1580156106df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610703919061138c565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b15801561074b57600080fd5b505af115801561075f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610783919061138c565b601080546001600160a01b0319166001600160a01b03928316179055600f541663f305d71947306107b381610478565b6000806107c86000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c4016060604051808303818588803b15801561082b57600080fd5b505af115801561083f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906108649190611483565b5050601080546768155a43676e000060115563ffff00ff60a01b198116630101000160a01b17909155600f5460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b390604401602060405180830381600087803b1580156108dc57600080fd5b505af11580156108f0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109149190611467565b5050565b6001600160a01b03831661097a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103eb565b6001600160a01b0382166109db5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103eb565b6001600160a01b0383811660008181526004602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60008111610a9e5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016103eb565b6001600160a01b03831660009081526006602052604090205460ff1615610ac457600080fd5b6001600160a01b0383163014610bce576000600a908155600b556010546001600160a01b038481169116148015610b095750600f546001600160a01b03838116911614155b8015610b2e57506001600160a01b03821660009081526005602052604090205460ff16155b8015610b435750601054600160b81b900460ff165b15610b5757601154811115610b5757600080fd5b6000610b6230610478565b601054909150600160a81b900460ff16158015610b8d57506010546001600160a01b03858116911614155b8015610ba25750601054600160b01b900460ff165b15610bcc57610bb081610d64565b47670429d069189e0000811115610bca57610bca47610c18565b505b505b610bd9838383610f09565b505050565b60008184841115610c025760405162461bcd60e51b81526004016103eb91906114b0565b506000610c0f84866115ff565b95945050505050565b600c546001600160a01b03166108fc610c326003846115c0565b6040518115909202916000818181858888f19350505050158015610c5a573d6000803e3d6000fd5b50600d546001600160a01b03166108fc610c756003846115c0565b6040518115909202916000818181858888f19350505050158015610c9d573d6000803e3d6000fd5b50600e546001600160a01b03166108fc610cb86003846115c0565b6040518115909202916000818181858888f19350505050158015610914573d6000803e3d6000fd5b6000600854821115610d475760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b60648201526084016103eb565b6000610d51610f14565b9050610d5d8382610f37565b9392505050565b6010805460ff60a81b1916600160a81b1790556040805160028082526060820183526000926020830190803683370190505090503081600081518110610dba57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152600f54604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015610e0e57600080fd5b505afa158015610e22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e46919061138c565b81600181518110610e6757634e487b7160e01b600052603260045260246000fd5b6001600160a01b039283166020918202929092010152600f54610e8d9130911684610918565b600f5460405163791ac94760e01b81526001600160a01b039091169063791ac94790610ec6908590600090869030904290600401611538565b600060405180830381600087803b158015610ee057600080fd5b505af1158015610ef4573d6000803e3d6000fd5b50506010805460ff60a81b1916905550505050565b610bd9838383610f79565b6000806000610f21611070565b9092509050610f308282610f37565b9250505090565b6000610d5d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506110b2565b600080600080600080610f8b876110e0565b6001600160a01b038f16600090815260026020526040902054959b50939950919750955093509150610fbd908761113d565b6001600160a01b03808b1660009081526002602052604080822093909355908a1681522054610fec908661117f565b6001600160a01b03891660009081526002602052604090205561100e816111de565b6110188483611228565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161105d91815260200190565b60405180910390a3505050505050505050565b6008546000908190680410d586a20a4c000061108c8282610f37565b8210156110a957505060085492680410d586a20a4c000092509050565b90939092509050565b600081836110d35760405162461bcd60e51b81526004016103eb91906114b0565b506000610c0f84866115c0565b60008060008060008060008060006110fd8a600a54600b5461124c565b925092509250600061110d610f14565b905060008060006111208e8787876112a1565b919e509c509a509598509396509194505050505091939550919395565b6000610d5d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610bde565b60008061118c83856115a8565b905083811015610d5d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016103eb565b60006111e8610f14565b905060006111f683836112f1565b30600090815260026020526040902054909150611213908261117f565b30600090815260026020526040902055505050565b600854611235908361113d565b600855600954611245908261117f565b6009555050565b6000808080611266606461126089896112f1565b90610f37565b9050600061127960646112608a896112f1565b905060006112918261128b8b8661113d565b9061113d565b9992985090965090945050505050565b60008080806112b088866112f1565b905060006112be88876112f1565b905060006112cc88886112f1565b905060006112de8261128b868661113d565b939b939a50919850919650505050505050565b60008261130057506000610352565b600061130c83856115e0565b90508261131985836115c0565b14610d5d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016103eb565b600060208284031215611381578081fd5b8135610d5d8161162c565b60006020828403121561139d578081fd5b8151610d5d8161162c565b600080604083850312156113ba578081fd5b82356113c58161162c565b915060208301356113d58161162c565b809150509250929050565b6000806000606084860312156113f4578081fd5b83356113ff8161162c565b9250602084013561140f8161162c565b929592945050506040919091013590565b60008060408385031215611432578182fd5b823561143d8161162c565b946020939093013593505050565b60006020828403121561145c578081fd5b8135610d5d81611641565b600060208284031215611478578081fd5b8151610d5d81611641565b600080600060608486031215611497578283fd5b8351925060208401519150604084015190509250925092565b6000602080835283518082850152825b818110156114dc578581018301518582016040015282016114c0565b818111156114ed5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060a082018783526020878185015260a0604085015281875180845260c0860191508289019350845b818110156115875784516001600160a01b031683529383019391830191600101611562565b50506001600160a01b03969096166060850152505050608001529392505050565b600082198211156115bb576115bb611616565b500190565b6000826115db57634e487b7160e01b81526012600452602481fd5b500490565b60008160001904831182151516156115fa576115fa611616565b500290565b60008282101561161157611611611616565b500390565b634e487b7160e01b600052601160045260246000fd5b6001600160a01b038116811461047557600080fd5b801515811461047557600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122050111f78b4f2f5506da962e11164874c0969ef7349238601b2c6f86809a5c6e064736f6c63430008040033

Deployed Bytecode Sourcemap

4027:9748:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5955:83;;;;;;;;;;-1:-1:-1;6025:5:0;;;;;;;;;;;;-1:-1:-1;;;6025:5:0;;;;5955:83;;;;;;;:::i;:::-;;;;;;;;6807:161;;;;;;;;;;-1:-1:-1;6807:161:0;;;;;:::i;:::-;;:::i;:::-;;;4156:14:1;;4149:22;4131:41;;4119:2;4104:18;6807:161:0;4086:92:1;6232:95:0;;;;;;;;;;-1:-1:-1;4531:20:0;6232:95;;;8037:25:1;;;8025:2;8010:18;6232:95:0;7992:76:1;6976:313:0;;;;;;;;;;-1:-1:-1;6976:313:0;;;;;:::i;:::-;;:::i;9482:80::-;;;;;;;;;;;;;:::i;:::-;;6141:83;;;;;;;;;;-1:-1:-1;6141:83:0;;4995:1;9203:36:1;;9191:2;9176:18;6141:83:0;9158:87:1;7297:103:0;;;;;;;;;;-1:-1:-1;7297:103:0;;;;;:::i;:::-;;:::i;11879:194::-;;;;;;;;;;;;;:::i;6335:138::-;;;;;;;;;;-1:-1:-1;6335:138:0;;;;;:::i;:::-;;:::i;3106:148::-;;;;;;;;;;;;;:::i;2892:79::-;;;;;;;;;;-1:-1:-1;2930:7:0;2957:6;2892:79;;-1:-1:-1;;;;;2957:6:0;;;2729:51:1;;2717:2;2702:18;2892:79:0;2684:102:1;6046:87:0;;;;;;;;;;-1:-1:-1;6118:7:0;;;;;;;;;;;;-1:-1:-1;;;6118:7:0;;;;6046:87;;6481:167;;;;;;;;;;-1:-1:-1;6481:167:0;;;;;:::i;:::-;;:::i;11672:195::-;;;;;;;;;;;;;:::i;9769:815::-;;;;;;;;;;;;;:::i;6656:143::-;;;;;;;;;;-1:-1:-1;6656:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6764:18:0;;;6737:7;6764:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6656:143;6807:161;6882:4;6899:39;690:10;6922:7;6931:6;6899:8;:39::i;:::-;-1:-1:-1;6956:4:0;6807:161;;;;;:::o;6976:313::-;7074:4;7091:36;7101:6;7109:9;7120:6;7091:9;:36::i;:::-;7138:121;7147:6;690:10;7169:89;7207:6;7169:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7169:19:0;;;;;;:11;:19;;;;;;;;690:10;7169:33;;;;;;;;;;:37;:89::i;:::-;7138:8;:121::i;:::-;-1:-1:-1;7277:4:0;6976:313;;;;;:::o;9482:80::-;3019:6;;-1:-1:-1;;;;;3019:6:0;690:10;3019:22;3011:67;;;;-1:-1:-1;;;3011:67:0;;;;;;;:::i;:::-;;;;;;;;;4531:20:::1;9532:12;:22:::0;9482:80::o;7297:103::-;3019:6;;-1:-1:-1;;;;;3019:6:0;690:10;3019:22;3011:67;;;;-1:-1:-1;;;3011:67:0;;;;;;;:::i;:::-;7369:15:::1;:23:::0;;;::::1;;-1:-1:-1::0;;;7369:23:0::1;-1:-1:-1::0;;;;7369:23:0;;::::1;::::0;;;::::1;::::0;;7297:103::o;11879:194::-;11945:15;;-1:-1:-1;;;;;11945:15:0;690:10;-1:-1:-1;;;;;11929:31:0;;11921:40;;;;;;12001:21;12033:32;12001:21;12033:12;:32::i;:::-;11879:194;:::o;6335:138::-;-1:-1:-1;;;;;6448:16:0;;6401:7;6448:16;;;:7;:16;;;;;;6428:37;;:19;:37::i;3106:148::-;3019:6;;-1:-1:-1;;;;;3019:6:0;690:10;3019:22;3011:67;;;;-1:-1:-1;;;3011:67:0;;;;;;;:::i;:::-;3213:1:::1;3197:6:::0;;3176:40:::1;::::0;-1:-1:-1;;;;;3197:6:0;;::::1;::::0;3176:40:::1;::::0;3213:1;;3176:40:::1;3244:1;3227:19:::0;;-1:-1:-1;;;;;;3227:19:0::1;::::0;;3106:148::o;6481:167::-;6559:4;6576:42;690:10;6600:9;6611:6;6576:9;:42::i;11672:195::-;11738:15;;-1:-1:-1;;;;;11738:15:0;690:10;-1:-1:-1;;;;;11722:31:0;;11714:40;;;;;;11765:23;11791:24;11809:4;11791:9;:24::i;:::-;11765:50;;11826:33;11843:15;11826:16;:33::i;9769:815::-;3019:6;;-1:-1:-1;;;;;3019:6:0;690:10;3019:22;3011:67;;;;-1:-1:-1;;;3011:67:0;;;;;;;:::i;:::-;9833:11:::1;::::0;-1:-1:-1;;;9833:11:0;::::1;;;9832:12;9824:47;;;::::0;-1:-1:-1;;;9824:47:0;;7741:2:1;9824:47:0::1;::::0;::::1;7723:21:1::0;7780:2;7760:18;;;7753:30;7819:25;7799:18;;;7792:53;7862:18;;9824:47:0::1;7713:173:1::0;9824:47:0::1;9993:15;:34:::0;;-1:-1:-1;;;;;;9993:34:0::1;9939:42;9993:34:::0;;::::1;::::0;;;10038:58:::1;10055:4;9939:42:::0;4531:20:::1;10038:8;:58::i;:::-;10141:16;-1:-1:-1::0;;;;;10141:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;10123:56:0::1;;10188:4;10195:16;-1:-1:-1::0;;;;;10195:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10123:96;::::0;-1:-1:-1;;;;;;10123:96:0::1;::::0;;;;;;-1:-1:-1;;;;;3021:15:1;;;10123:96:0::1;::::0;::::1;3003:34:1::0;3073:15;;3053:18;;;3046:43;2938:18;;10123:96:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10107:13;:112:::0;;-1:-1:-1;;;;;;10107:112:0::1;-1:-1:-1::0;;;;;10107:112:0;;::::1;;::::0;;10230:15:::1;::::0;::::1;:31;10269:21;10300:4;10306:24;10300:4:::0;10306:9:::1;:24::i;:::-;10331:1;10333::::0;10335:7:::1;2930::::0;2957:6;-1:-1:-1;;;;;2957:6:0;;2892:79;10335:7:::1;10230:129;::::0;::::1;::::0;;;-1:-1:-1;;;;;;10230:129:0;;;-1:-1:-1;;;;;3738:15:1;;;10230:129:0::1;::::0;::::1;3720:34:1::0;3770:18;;;3763:34;;;;3813:18;;;3806:34;;;;3856:18;;;3849:34;3920:15;;;3899:19;;;3892:44;10343:15:0::1;3952:19:1::0;;;3945:35;3654:19;;10230:129:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;10370:11:0::1;:18:::0;;10447::::1;10432:12;:33:::0;-1:-1:-1;;;;10476:18:0;;-1:-1:-1;;;10476:18:0;;;;10543:15:::1;::::0;10505:71:::1;::::0;-1:-1:-1;;;10505:71:0;;-1:-1:-1;;;;;10543:15:0;;::::1;10505:71;::::0;::::1;3274:51:1::0;-1:-1:-1;;3341:18:1;;;3334:34;10512:13:0;;;-1:-1:-1;10505:29:0::1;::::0;3247:18:1;;10505:71:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3089:1;9769:815::o:0;7670:335::-;-1:-1:-1;;;;;7763:19:0;;7755:68;;;;-1:-1:-1;;;7755:68:0;;7336:2:1;7755:68:0;;;7318:21:1;7375:2;7355:18;;;7348:30;7414:34;7394:18;;;7387:62;-1:-1:-1;;;7465:18:1;;;7458:34;7509:19;;7755:68:0;7308:226:1;7755:68:0;-1:-1:-1;;;;;7842:21:0;;7834:68;;;;-1:-1:-1;;;7834:68:0;;5404:2:1;7834:68:0;;;5386:21:1;5443:2;5423:18;;;5416:30;5482:34;5462:18;;;5455:62;-1:-1:-1;;;5533:18:1;;;5526:32;5575:19;;7834:68:0;5376:224:1;7834:68:0;-1:-1:-1;;;;;7913:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7965:32;;8037:25:1;;;7965:32:0;;8010:18:1;7965:32:0;;;;;;;7670:335;;;:::o;8013:972::-;8110:1;8101:6;:10;8093:64;;;;-1:-1:-1;;;8093:64:0;;6926:2:1;8093:64:0;;;6908:21:1;6965:2;6945:18;;;6938:30;7004:34;6984:18;;;6977:62;-1:-1:-1;;;7055:18:1;;;7048:39;7104:19;;8093:64:0;6898:231:1;8093:64:0;-1:-1:-1;;;;;8177:10:0;;;;;;:4;:10;;;;;;;;8176:11;8168:20;;;;;;-1:-1:-1;;;;;8203:21:0;;8219:4;8203:21;8199:734;;8253:1;8241:9;:13;;;8269:9;:14;8310:13;;-1:-1:-1;;;;;8302:21:0;;;8310:13;;8302:21;:55;;;;-1:-1:-1;8341:15:0;;-1:-1:-1;;;;;8327:30:0;;;8341:15;;8327:30;;8302:55;:83;;;;-1:-1:-1;;;;;;8363:22:0;;;;;;:18;:22;;;;;;;;8361:24;8302:83;:102;;;;-1:-1:-1;8389:15:0;;-1:-1:-1;;;8389:15:0;;;;8302:102;8298:203;;;8472:12;;8462:6;:22;;8454:31;;;;;;8517:28;8548:24;8566:4;8548:9;:24::i;:::-;8592:6;;8517:55;;-1:-1:-1;;;;8592:6:0;;;;8591:7;:32;;;;-1:-1:-1;8610:13:0;;-1:-1:-1;;;;;8602:21:0;;;8610:13;;8602:21;;8591:32;:47;;;;-1:-1:-1;8627:11:0;;-1:-1:-1;;;8627:11:0;;;;8591:47;8587:335;;;8659:38;8676:20;8659:16;:38::i;:::-;8745:21;8809:18;8788:39;;8785:122;;;8852:35;8865:21;8852:12;:35::i;:::-;8587:335;;8199:734;;8947:30;8962:4;8967:2;8970:6;8947:14;:30::i;:::-;8013:972;;;:::o;1747:190::-;1833:7;1869:12;1861:6;;;;1853:29;;;;-1:-1:-1;;;1853:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1893:9:0;1905:5;1909:1;1905;:5;:::i;:::-;1893:17;1747:190;-1:-1:-1;;;;;1747:190:0:o;9568:189::-;9625:15;;-1:-1:-1;;;;;9625:15:0;:34;9650:8;9657:1;9650:6;:8;:::i;:::-;9625:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9670:15:0;;-1:-1:-1;;;;;9670:15:0;:34;9695:8;9702:1;9695:6;:8;:::i;:::-;9670:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9715:15:0;;-1:-1:-1;;;;;9715:15:0;:34;9740:8;9747:1;9740:6;:8;:::i;:::-;9715:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7408:254;7475:7;7514;;7503;:18;;7495:73;;;;-1:-1:-1;;;7495:73:0;;4993:2:1;7495:73:0;;;4975:21:1;5032:2;5012:18;;;5005:30;5071:34;5051:18;;;5044:62;-1:-1:-1;;;5122:18:1;;;5115:40;5172:19;;7495:73:0;4965:232:1;7495:73:0;7579:19;7602:10;:8;:10::i;:::-;7579:33;-1:-1:-1;7630:24:0;:7;7579:33;7630:11;:24::i;:::-;7623:31;7408:254;-1:-1:-1;;;7408:254:0:o;8993:483::-;5368:6;:13;;-1:-1:-1;;;;5368:13:0;-1:-1:-1;;;5368:13:0;;;9095:16:::1;::::0;;9109:1:::1;9095:16:::0;;;;;::::1;::::0;;-1:-1:-1;;9095:16:0::1;::::0;::::1;::::0;;::::1;::::0;::::1;;::::0;-1:-1:-1;9095:16:0::1;9071:40;;9140:4;9122;9127:1;9122:7;;;;;;-1:-1:-1::0;;;9122:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;9122:23:0;;::::1;:7;::::0;;::::1;::::0;;;;;;:23;;;;9166:15:::1;::::0;:22:::1;::::0;;-1:-1:-1;;;9166:22:0;;;;:15;;;::::1;::::0;:20:::1;::::0;:22:::1;::::0;;::::1;::::0;9122:7;;9166:22;;;;;:15;:22;::::1;;::::0;::::1;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9156:4;9161:1;9156:7;;;;;;-1:-1:-1::0;;;9156:7:0::1;;;;;;;;;-1:-1:-1::0;;;;;9156:32:0;;::::1;:7;::::0;;::::1;::::0;;;;;:32;9231:15:::1;::::0;9199:62:::1;::::0;9216:4:::1;::::0;9231:15:::1;9249:11:::0;9199:8:::1;:62::i;:::-;9272:15;::::0;:196:::1;::::0;-1:-1:-1;;;9272:196:0;;-1:-1:-1;;;;;9272:15:0;;::::1;::::0;:66:::1;::::0;:196:::1;::::0;9353:11;;9272:15:::1;::::0;9395:4;;9422::::1;::::0;9442:15:::1;::::0;9272:196:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;-1:-1:-1::0;;5404:6:0;:14;;-1:-1:-1;;;;5404:14:0;;;-1:-1:-1;;;;8993:483:0:o;10606:146::-;10700:44;10718:6;10726:9;10737:6;10700:17;:44::i;13339:163::-;13380:7;13401:15;13418;13437:19;:17;:19::i;:::-;13400:56;;-1:-1:-1;13400:56:0;-1:-1:-1;13474:20:0;13400:56;;13474:11;:20::i;:::-;13467:27;;;;13339:163;:::o;2199:132::-;2257:7;2284:39;2288:1;2291;2284:39;;;;;;;;;;;;;;;;;:3;:39::i;10760:488::-;10859:15;10876:23;10901:12;10915:23;10940:12;10954:13;10971:19;10982:7;10971:10;:19::i;:::-;-1:-1:-1;;;;;11019:15:0;;;;;;:7;:15;;;;;;10858:132;;-1:-1:-1;10858:132:0;;-1:-1:-1;10858:132:0;;-1:-1:-1;10858:132:0;-1:-1:-1;10858:132:0;-1:-1:-1;10858:132:0;-1:-1:-1;11019:28:0;;10858:132;11019:19;:28::i;:::-;-1:-1:-1;;;;;11001:15:0;;;;;;;:7;:15;;;;;;:46;;;;11079:18;;;;;;;:39;;11102:15;11079:22;:39::i;:::-;-1:-1:-1;;;;;11058:18:0;;;;;;:7;:18;;;;;:60;11130:16;11140:5;11130:9;:16::i;:::-;11157:23;11169:4;11175;11157:11;:23::i;:::-;11213:9;-1:-1:-1;;;;;11196:44:0;11205:6;-1:-1:-1;;;;;11196:44:0;;11224:15;11196:44;;;;8037:25:1;;8025:2;8010:18;;7992:76;11196:44:0;;;;;;;;10760:488;;;;;;;;;:::o;13510:262::-;13607:7;;13560;;;;4531:20;13681;13607:7;4531:20;13681:11;:20::i;:::-;13671:7;:30;13667:61;;;-1:-1:-1;;13711:7:0;;;4531:20;;-1:-1:-1;13510:262:0;-1:-1:-1;13510:262:0:o;13667:61::-;13747:7;;13756;;-1:-1:-1;13510:262:0;-1:-1:-1;13510:262:0:o;2339:189::-;2425:7;2460:12;2453:5;2445:28;;;;-1:-1:-1;;;2445:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2484:9:0;2496:5;2500:1;2496;:5;:::i;12087:471::-;12146:7;12155;12164;12173;12182;12191;12212:23;12237:12;12251:13;12268:42;12280:7;12289:9;;12300;;12268:11;:42::i;:::-;12211:99;;;;;;12321:19;12344:10;:8;:10::i;:::-;12321:33;;12366:15;12383:23;12408:12;12424:46;12436:7;12445:4;12451:5;12458:11;12424;:46::i;:::-;12365:105;;-1:-1:-1;12365:105:0;-1:-1:-1;12365:105:0;-1:-1:-1;12521:15:0;;-1:-1:-1;12538:4:0;;-1:-1:-1;12544:5:0;;-1:-1:-1;;;;;12087:471:0;;;;;;;:::o;1603:136::-;1661:7;1688:43;1692:1;1695;1688:43;;;;;;;;;;;;;;;;;:3;:43::i;1416:179::-;1474:7;;1506:5;1510:1;1506;:5;:::i;:::-;1494:17;;1535:1;1530;:6;;1522:46;;;;-1:-1:-1;;;1522:46:0;;5807:2:1;1522:46:0;;;5789:21:1;5846:2;5826:18;;;5819:30;5885:29;5865:18;;;5858:57;5932:18;;1522:46:0;5779:177:1;11256:212:0;11309:19;11332:10;:8;:10::i;:::-;11309:33;-1:-1:-1;11353:13:0;11369:22;:5;11309:33;11369:9;:22::i;:::-;11443:4;11427:22;;;;:7;:22;;;;;;11353:38;;-1:-1:-1;11427:33:0;;11353:38;11427:26;:33::i;:::-;11418:4;11402:22;;;;:7;:22;;;;;:58;-1:-1:-1;;;11256:212:0:o;11476:147::-;11554:7;;:17;;11566:4;11554:11;:17::i;:::-;11544:7;:27;11595:10;;:20;;11610:4;11595:14;:20::i;:::-;11582:10;:33;-1:-1:-1;;11476:147:0:o;12566:351::-;12659:7;;;;12712:28;12736:3;12712:19;:7;12724:6;12712:11;:19::i;:::-;:23;;:28::i;:::-;12697:43;-1:-1:-1;12751:13:0;12767:29;12792:3;12767:20;:7;12779;12767:11;:20::i;:29::-;12751:45;-1:-1:-1;12807:23:0;12833:28;12751:45;12833:17;:7;12845:4;12833:11;:17::i;:::-;:21;;:28::i;:::-;12807:54;12897:4;;-1:-1:-1;12903:5:0;;-1:-1:-1;12566:351:0;;-1:-1:-1;;;;;12566:351:0:o;12925:409::-;13035:7;;;;13091:24;:7;13103:11;13091;:24::i;:::-;13073:42;-1:-1:-1;13126:12:0;13141:21;:4;13150:11;13141:8;:21::i;:::-;13126:36;-1:-1:-1;13173:13:0;13189:22;:5;13199:11;13189:9;:22::i;:::-;13173:38;-1:-1:-1;13222:23:0;13248:28;13173:38;13248:17;:7;13260:4;13248:11;:17::i;:28::-;13295:7;;;;-1:-1:-1;13321:4:0;;-1:-1:-1;12925:409:0;;-1:-1:-1;;;;;;;12925:409:0:o;1945:246::-;2003:7;2027:6;2023:47;;-1:-1:-1;2057:1:0;2050:8;;2023:47;2080:9;2092:5;2096:1;2092;:5;:::i;:::-;2080:17;-1:-1:-1;2125:1:0;2116:5;2120:1;2080:17;2116:5;:::i;:::-;:10;2108:56;;;;-1:-1:-1;;;2108:56:0;;6163:2:1;2108:56:0;;;6145:21:1;6202:2;6182:18;;;6175:30;6241:34;6221:18;;;6214:62;-1:-1:-1;;;6292:18:1;;;6285:31;6333:19;;2108:56:0;6135:223:1;14:257;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;276:261::-;346:6;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:398::-;610:6;618;671:2;659:9;650:7;646:23;642:32;639:2;;;692:6;684;677:22;639:2;736:9;723:23;755:31;780:5;755:31;:::i;:::-;805:5;-1:-1:-1;862:2:1;847:18;;834:32;875:33;834:32;875:33;:::i;:::-;927:7;917:17;;;629:311;;;;;:::o;945:466::-;1022:6;1030;1038;1091:2;1079:9;1070:7;1066:23;1062:32;1059:2;;;1112:6;1104;1097:22;1059:2;1156:9;1143:23;1175:31;1200:5;1175:31;:::i;:::-;1225:5;-1:-1:-1;1282:2:1;1267:18;;1254:32;1295:33;1254:32;1295:33;:::i;:::-;1049:362;;1347:7;;-1:-1:-1;;;1401:2:1;1386:18;;;;1373:32;;1049:362::o;1416:325::-;1484:6;1492;1545:2;1533:9;1524:7;1520:23;1516:32;1513:2;;;1566:6;1558;1551:22;1513:2;1610:9;1597:23;1629:31;1654:5;1629:31;:::i;:::-;1679:5;1731:2;1716:18;;;;1703:32;;-1:-1:-1;;;1503:238:1:o;1746:251::-;1802:6;1855:2;1843:9;1834:7;1830:23;1826:32;1823:2;;;1876:6;1868;1861:22;1823:2;1920:9;1907:23;1939:28;1961:5;1939:28;:::i;2002:255::-;2069:6;2122:2;2110:9;2101:7;2097:23;2093:32;2090:2;;;2143:6;2135;2128:22;2090:2;2180:9;2174:16;2199:28;2221:5;2199:28;:::i;2262:316::-;2350:6;2358;2366;2419:2;2407:9;2398:7;2394:23;2390:32;2387:2;;;2440:6;2432;2425:22;2387:2;2474:9;2468:16;2458:26;;2524:2;2513:9;2509:18;2503:25;2493:35;;2568:2;2557:9;2553:18;2547:25;2537:35;;2377:201;;;;;:::o;4183:603::-;4295:4;4324:2;4353;4342:9;4335:21;4385:6;4379:13;4428:6;4423:2;4412:9;4408:18;4401:34;4453:4;4466:140;4480:6;4477:1;4474:13;4466:140;;;4575:14;;;4571:23;;4565:30;4541:17;;;4560:2;4537:26;4530:66;4495:10;;4466:140;;;4624:6;4621:1;4618:13;4615:2;;;4694:4;4689:2;4680:6;4669:9;4665:22;4661:31;4654:45;4615:2;-1:-1:-1;4770:2:1;4749:15;-1:-1:-1;;4745:29:1;4730:45;;;;4777:2;4726:54;;4304:482;-1:-1:-1;;;4304:482:1:o;6363:356::-;6565:2;6547:21;;;6584:18;;;6577:30;6643:34;6638:2;6623:18;;6616:62;6710:2;6695:18;;6537:182::o;8073:983::-;8335:4;8383:3;8372:9;8368:19;8414:6;8403:9;8396:25;8440:2;8478:6;8473:2;8462:9;8458:18;8451:34;8521:3;8516:2;8505:9;8501:18;8494:31;8545:6;8580;8574:13;8611:6;8603;8596:22;8649:3;8638:9;8634:19;8627:26;;8688:2;8680:6;8676:15;8662:29;;8709:4;8722:195;8736:6;8733:1;8730:13;8722:195;;;8801:13;;-1:-1:-1;;;;;8797:39:1;8785:52;;8892:15;;;;8857:12;;;;8833:1;8751:9;8722:195;;;-1:-1:-1;;;;;;;8973:32:1;;;;8968:2;8953:18;;8946:60;-1:-1:-1;;;9037:3:1;9022:19;9015:35;8934:3;8344:712;-1:-1:-1;;;8344:712:1:o;9250:128::-;9290:3;9321:1;9317:6;9314:1;9311:13;9308:2;;;9327:18;;:::i;:::-;-1:-1:-1;9363:9:1;;9298:80::o;9383:217::-;9423:1;9449;9439:2;;-1:-1:-1;;;9474:31:1;;9528:4;9525:1;9518:15;9556:4;9481:1;9546:15;9439:2;-1:-1:-1;9585:9:1;;9429:171::o;9605:168::-;9645:7;9711:1;9707;9703:6;9699:14;9696:1;9693:21;9688:1;9681:9;9674:17;9670:45;9667:2;;;9718:18;;:::i;:::-;-1:-1:-1;9758:9:1;;9657:116::o;9778:125::-;9818:4;9846:1;9843;9840:8;9837:2;;;9851:18;;:::i;:::-;-1:-1:-1;9888:9:1;;9827:76::o;9908:127::-;9969:10;9964:3;9960:20;9957:1;9950:31;10000:4;9997:1;9990:15;10024:4;10021:1;10014:15;10040:131;-1:-1:-1;;;;;10115:31:1;;10105:42;;10095:2;;10161:1;10158;10151:12;10176:118;10262:5;10255:13;10248:21;10241:5;10238:32;10228:2;;10284:1;10281;10274:12

Swarm Source

ipfs://50111f78b4f2f5506da962e11164874c0969ef7349238601b2c6f86809a5c6e0

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.