ETH Price: $2,507.15 (+0.22%)

Contract

0xc56AA8032D2Cda3e401171B7787205F6640837d9
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

TokenTracker

Transaction Hash
Method
Block
From
To
Approve210675302024-10-28 23:51:594 days ago1730159519IN
Alpine: ALP Token
0 ETH0.0004269.14536437
Approve209252972024-10-09 3:18:5924 days ago1728443939IN
Alpine: ALP Token
0 ETH0.0010159221.92279973
Approve207496632024-09-14 15:12:4748 days ago1726326767IN
Alpine: ALP Token
0 ETH0.000237395.12276468
Approve207477962024-09-14 8:56:4748 days ago1726304207IN
Alpine: ALP Token
0 ETH0.000075441.63006745
Approve207043132024-09-08 7:11:1155 days ago1725779471IN
Alpine: ALP Token
0 ETH0.000078721.70182289
Approve206696902024-09-03 11:15:5959 days ago1725362159IN
Alpine: ALP Token
0 ETH0.000127652.74393368
Approve206576132024-09-01 18:48:2361 days ago1725216503IN
Alpine: ALP Token
0 ETH0.000056311.21871845
Approve204515142024-08-04 0:10:5990 days ago1722730259IN
Alpine: ALP Token
0 ETH0.000056921.231947
Approve204113362024-07-29 9:31:1195 days ago1722245471IN
Alpine: ALP Token
0 ETH0.000123474.63822981
Approve204113362024-07-29 9:31:1195 days ago1722245471IN
Alpine: ALP Token
0 ETH0.000215774.63822981
Approve203735312024-07-24 2:51:47101 days ago1721789507IN
Alpine: ALP Token
0 ETH0.000065972.72200352
Approve199672002024-05-28 8:33:59157 days ago1716885239IN
Alpine: ALP Token
0 ETH0.0003441414.19910809
Approve199562392024-05-26 19:48:11159 days ago1716752891IN
Alpine: ALP Token
0 ETH0.000192047.92347061
Approve197758682024-05-01 14:26:47184 days ago1714573607IN
Alpine: ALP Token
0 ETH0.0002818611.62961873
Approve196287642024-04-11 0:19:23205 days ago1712794763IN
Alpine: ALP Token
0 ETH0.0003133812.93012087
Approve196287572024-04-11 0:17:59205 days ago1712794679IN
Alpine: ALP Token
0 ETH0.0003151311.98356767
Approve196287552024-04-11 0:17:35205 days ago1712794655IN
Alpine: ALP Token
0 ETH0.0003351113.79255686
Approve195284642024-03-27 22:22:59219 days ago1711578179IN
Alpine: ALP Token
0 ETH0.0009087737.49519872
Approve193793132024-03-06 23:07:47240 days ago1709766467IN
Alpine: ALP Token
0 ETH0.0020098882.72170045
Approve193764562024-03-06 13:33:59240 days ago1709732039IN
Alpine: ALP Token
0 ETH0.0017660572.86625458
Approve190682992024-01-23 8:52:11283 days ago1705999931IN
Alpine: ALP Token
0 ETH0.0007245515.57479622
Approve190564412024-01-21 16:29:59285 days ago1705854599IN
Alpine: ALP Token
0 ETH0.0003764615.49430089
Approve189241182024-01-03 3:20:23304 days ago1704252023IN
Alpine: ALP Token
0 ETH0.0005886312.65314214
Approve189022842023-12-31 1:47:11307 days ago1703987231IN
Alpine: ALP Token
0 ETH0.0005986212.86784717
Approve189011492023-12-30 21:57:23307 days ago1703973443IN
Alpine: ALP Token
0 ETH0.000726715.62100515
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
209252972024-10-09 3:18:5924 days ago1728443939
Alpine: ALP Token
0.00350093 ETH
209252972024-10-09 3:18:5924 days ago1728443939
Alpine: ALP Token
0.00350093 ETH
207477962024-09-14 8:56:4748 days ago1726304207
Alpine: ALP Token
0.00868398 ETH
207477962024-09-14 8:56:4748 days ago1726304207
Alpine: ALP Token
0.00868398 ETH
207043182024-09-08 7:12:1155 days ago1725779531
Alpine: ALP Token
0.00475772 ETH
207043182024-09-08 7:12:1155 days ago1725779531
Alpine: ALP Token
0.00475772 ETH
206696962024-09-03 11:17:1159 days ago1725362231
Alpine: ALP Token
0.00205502 ETH
206696962024-09-03 11:17:1159 days ago1725362231
Alpine: ALP Token
0.00205502 ETH
206576172024-09-01 18:49:1161 days ago1725216551
Alpine: ALP Token
0.00054144 ETH
206576172024-09-01 18:49:1161 days ago1725216551
Alpine: ALP Token
0.00054144 ETH
191044102024-01-28 10:21:23278 days ago1706437283
Alpine: ALP Token
0.00000214 ETH
191044102024-01-28 10:21:23278 days ago1706437283
Alpine: ALP Token
0.00000214 ETH
189022862023-12-31 1:47:35307 days ago1703987255
Alpine: ALP Token
0.00067628 ETH
189022862023-12-31 1:47:35307 days ago1703987255
Alpine: ALP Token
0.00067628 ETH
189011512023-12-30 21:57:47307 days ago1703973467
Alpine: ALP Token
0.0007746 ETH
189011512023-12-30 21:57:47307 days ago1703973467
Alpine: ALP Token
0.0007746 ETH
189009722023-12-30 21:21:47307 days ago1703971307
Alpine: ALP Token
0.00213661 ETH
189009722023-12-30 21:21:47307 days ago1703971307
Alpine: ALP Token
0.00213661 ETH
187591262023-12-10 23:35:59327 days ago1702251359
Alpine: ALP Token
0.00357092 ETH
187591262023-12-10 23:35:59327 days ago1702251359
Alpine: ALP Token
0.00357092 ETH
187565592023-12-10 14:59:11327 days ago1702220351
Alpine: ALP Token
0.00150126 ETH
187565592023-12-10 14:59:11327 days ago1702220351
Alpine: ALP Token
0.00150126 ETH
187518522023-12-09 23:10:47328 days ago1702163447
Alpine: ALP Token
0.00259211 ETH
187518522023-12-09 23:10:47328 days ago1702163447
Alpine: ALP Token
0.00259211 ETH
187018702023-12-02 23:02:11335 days ago1701558131
Alpine: ALP Token
0.00578204 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
ALPINE

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-20
*/

/**
Alpine is a comprehensive blockchain ecosystem that combine cutting-edge technology with privacy. Alpine layer 2 solutions are crafted to enhance blockchain scalability, ensuring networks can handle increased global adoption.

Website    : https://alpinecoin.io
Twitter /X : https://twitter.com/Alpinecoin
Gitbook    : https://whitepaper.alpinecoin.io
Medium     : https://medium.com/@alpine.erc
Youtube    : https://youtube.com/@AlpineCoin-erc

*/

// SPDX-License-Identifier: MIT


pragma solidity 0.8.19;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address owner, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }

}

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

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

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

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

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

}

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

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

contract ALPINE is Context , IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping(address => uint256) private _holderLastTransferTimestamp;
    bool public transferDelayEnabled = true;
    address payable private _taxWallet;

    /// initial buy, sell fee till first 10 buys
    uint256 private _initialBuyTax=20;
    uint256 private _initialSellTax=20;

    ///final buy, sell fee
    uint256 private _finalBuyTax=5;
    uint256 private _finalSellTax=5;

    /// fee split info
    uint256 private _marketingFee = 5; 
    uint256 private _lpFee = 0;
    
    ///after how many buy sell should reduce to final tax.
    uint256 private _reduceBuyTaxAt=30;
    uint256 private _reduceSellTaxAt=30;
    uint256 private _preventSwapBefore=10;
    uint256 private _buyCount=0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100000000 * 10**_decimals; // 100 million max supply
    string private constant _name = "ALPINE" ;
    string private constant _symbol = "ALP" ;
    uint256 public _maxTxAmount = 2000000 * 10**_decimals; // 2% of the supply
    uint256 public _maxWalletSize = 2000000 * 10**_decimals; // 2% of the supply
    uint256 public _taxSwapThreshold= 20000 * 10**_decimals;
    uint256 public _maxTaxSwap= 500000 * 10**_decimals;

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

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

    constructor () {
        _taxWallet = payable(_msgSender());
        _balances[_msgSender()] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner() && from != address(this)) {
            

            if (transferDelayEnabled) {
                  if (to != address(uniswapV2Router) && to != address(uniswapV2Pair)) {
                      require(
                          _holderLastTransferTimestamp[tx.origin] <
                              block.number,
                          "_transfer:: Transfer Delay enabled.  Only one purchase per block allowed."
                      );
                      _holderLastTransferTimestamp[tx.origin] = block.number;
                  }
              }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] ) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                _buyCount++;
            }

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

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

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


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

    function swapAndLiquify (uint256 tokens) private lockTheSwap {
      uint256 lpTokens = (tokens * _lpFee) / 2;
      uint256 swapTokens = tokens - lpTokens;
      swapTokensForEth (swapTokens);
      uint256 ethBalance = address(this).balance;
      uint256 marketingPart = (ethBalance * _marketingFee) / (_marketingFee + _lpFee);
      if(marketingPart > 0){
      (bool success,) = _taxWallet.call{value: marketingPart}("");
      if (success && lpTokens > 0){
      addLiquidity(lpTokens, address(this).balance);
       }
      }
    }

    function swapTokensForEth(uint256 tokenAmount) private  {
        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 addLiquidity (uint256 tokens, uint256 eth) private {
        uint256 allowedTokens = allowance(address(this), address(uniswapV2Router));
        if(allowedTokens < tokens){
         _approve(address(this), address(uniswapV2Router), ~uint256(0));
        }
        uniswapV2Router.addLiquidityETH{value: eth}(
            address(this),
            tokens,
            0,
            0,
            _taxWallet,
            block.timestamp);
    }

    function removeLimits() external onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize=_tTotal;
        transferDelayEnabled=false;
        emit MaxTxAmountUpdated(_tTotal);
    }


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

    
    function reduceFee(uint256 marketingFee, uint256 liquidityFee) external onlyOwner{
      uint256 totalFee = marketingFee + liquidityFee;
      require(totalFee<=_finalBuyTax &&totalFee <=_finalSellTax);
      _marketingFee = marketingFee;
      _lpFee = liquidityFee;
      _finalBuyTax= totalFee;
      _finalSellTax= totalFee;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapAndLiquify(tokenBalance);
        }
      
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"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":"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":[{"internalType":"uint256","name":"marketingFee","type":"uint256"},{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]

60806040526005805460ff191660011781556014600681905560075560088190556009818155600a9182556000600b819055601e600c819055600d55600e839055600f556200004e9162000356565b6200005d90621e84806200036e565b6010556200006e6009600a62000356565b6200007d90621e84806200036e565b6011556200008e6009600a62000356565b6200009c90614e206200036e565b601255620000ad6009600a62000356565b620000bc906207a1206200036e565b6013556015805461ffff60a81b19169055348015620000da57600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060058054610100600160a81b0319166101003302179055620001416009600a62000356565b62000151906305f5e1006200036e565b3360009081526001602081905260408220929092556003906200017c6000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff1996871617905530815260039093528183208054851660019081179091556005546101009004909116835291208054909216179055620001e03390565b6001600160a01b031660007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6200021a6009600a62000356565b6200022a906305f5e1006200036e565b60405190815260200160405180910390a362000388565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620002985781600019048211156200027c576200027c62000241565b808516156200028a57918102915b93841c93908002906200025c565b509250929050565b600082620002b15750600162000350565b81620002c05750600062000350565b8160018114620002d95760028114620002e45762000304565b600191505062000350565b60ff841115620002f857620002f862000241565b50506001821b62000350565b5060208310610133831016604e8410600b841016171562000329575081810a62000350565b62000335838362000257565b80600019048211156200034c576200034c62000241565b0290505b92915050565b60006200036760ff841683620002a0565b9392505050565b808202811582820484141762000350576200035062000241565b611aaa80620003986000396000f3fe6080604052600436106101235760003560e01c8063751039fc116100a0578063a9059cbb11610064578063a9059cbb1461032c578063bf474bed1461034c578063c876d0b914610362578063c9567bf91461037c578063dd62ed3e1461039157600080fd5b8063751039fc146102975780637d1db4a5146102ac5780638da5cb5b146102c25780638f9a55c0146102ea57806395d89b411461030057600080fd5b8063313ce567116100e7578063313ce567146101f957806351bc3c851461021557806370a082311461022c578063715018a614610262578063723333561461027757600080fd5b806306fdde031461012f578063095ea7b3146101705780630faee56f146101a057806318160ddd146101c457806323b872dd146101d957600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b50604080518082019091526006815265414c50494e4560d01b60208201525b604051610167919061161f565b60405180910390f35b34801561017c57600080fd5b5061019061018b366004611682565b6103d7565b6040519015158152602001610167565b3480156101ac57600080fd5b506101b660135481565b604051908152602001610167565b3480156101d057600080fd5b506101b66103ee565b3480156101e557600080fd5b506101906101f43660046116ae565b61040f565b34801561020557600080fd5b5060405160098152602001610167565b34801561022157600080fd5b5061022a610478565b005b34801561023857600080fd5b506101b66102473660046116ef565b6001600160a01b031660009081526001602052604090205490565b34801561026e57600080fd5b5061022a6104bf565b34801561028357600080fd5b5061022a61029236600461170c565b61053c565b3480156102a357600080fd5b5061022a6105a4565b3480156102b857600080fd5b506101b660105481565b3480156102ce57600080fd5b506000546040516001600160a01b039091168152602001610167565b3480156102f657600080fd5b506101b660115481565b34801561030c57600080fd5b506040805180820190915260038152620414c560ec1b602082015261015a565b34801561033857600080fd5b50610190610347366004611682565b610660565b34801561035857600080fd5b506101b660125481565b34801561036e57600080fd5b506005546101909060ff1681565b34801561038857600080fd5b5061022a61066d565b34801561039d57600080fd5b506101b66103ac36600461172e565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60006103e4338484610a01565b5060015b92915050565b60006103fc6009600a611861565b61040a906305f5e100611870565b905090565b600061041c848484610b25565b61046e843361046985604051806060016040528060288152602001611a4d602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611101565b610a01565b5060019392505050565b60055461010090046001600160a01b0316336001600160a01b03161461049d57600080fd5b3060009081526001602052604090205480156104bc576104bc8161113b565b50565b6000546001600160a01b031633146104f25760405162461bcd60e51b81526004016104e990611887565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105665760405162461bcd60e51b81526004016104e990611887565b600061057282846118bc565b9050600854811115801561058857506009548111155b61059157600080fd5b600a92909255600b556008819055600955565b6000546001600160a01b031633146105ce5760405162461bcd60e51b81526004016104e990611887565b6105da6009600a611861565b6105e8906305f5e100611870565b6010556105f76009600a611861565b610605906305f5e100611870565b6011556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61063f6009600a611861565b61064d906305f5e100611870565b60405190815260200160405180910390a1565b60006103e4338484610b25565b6000546001600160a01b031633146106975760405162461bcd60e51b81526004016104e990611887565b601554600160a01b900460ff16156106f15760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104e9565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561073a90309061072c6009600a611861565b610469906305f5e100611870565b601460009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561078d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b191906118cf565b6001600160a01b031663c9c6539630601460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610813573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083791906118cf565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610884573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a891906118cf565b601580546001600160a01b039283166001600160a01b03199091161790556014541663f305d71947306108f0816001600160a01b031660009081526001602052604090205490565b6000806109056000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610927969594939291906118ec565b60606040518083038185885af1158015610945573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061096a9190611927565b505060155460145460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af11580156109c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e79190611955565b506015805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610a635760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104e9565b6001600160a01b038216610ac45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104e9565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b895760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104e9565b6001600160a01b038216610beb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104e9565b60008111610c4d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104e9565b600080546001600160a01b03858116911614801590610c7a57506000546001600160a01b03848116911614155b8015610c8f57506001600160a01b0384163014155b15610fbe5760055460ff1615610d79576014546001600160a01b03848116911614801590610ccb57506015546001600160a01b03848116911614155b15610d7957326000908152600460205260409020544311610d665760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a4016104e9565b3260009081526004602052604090204390555b6015546001600160a01b038581169116148015610da457506014546001600160a01b03848116911614155b8015610dc957506001600160a01b03831660009081526003602052604090205460ff16155b15610edf57601054821115610e205760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104e9565b610e4c6064610e46600c54600f5411610e3b57600654610e3f565b6008545b8590611245565b906112ce565b905060115482610e71856001600160a01b031660009081526001602052604090205490565b610e7b91906118bc565b1115610ec95760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104e9565b600f8054906000610ed983611977565b91905055505b6015546001600160a01b038481169116148015610f0557506001600160a01b0384163014155b15610f3257610f2f6064610e46600d54600f5411610f2557600754610e3f565b6009548590611245565b90505b30600090815260016020526040902054601554600160a81b900460ff16158015610f6957506015546001600160a01b038581169116145b8015610f7e5750601554600160b01b900460ff165b8015610f8b575060125481115b8015610f9a5750600e54600f54115b15610fbc57610fbc610fb784610fb284601354611310565b611310565b61113b565b505b80156110385730600090815260016020526040902054610fde9082611325565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061102f9085815260200190565b60405180910390a35b6001600160a01b03841660009081526001602052604090205461105b9083611384565b6001600160a01b0385166000908152600160205260409020556110a06110818383611384565b6001600160a01b03851660009081526001602052604090205490611325565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6110ea8585611384565b60405190815260200160405180910390a350505050565b600081848411156111255760405162461bcd60e51b81526004016104e9919061161f565b5060006111328486611990565b95945050505050565b6015805460ff60a81b1916600160a81b179055600b546000906002906111619084611870565b61116b91906119a3565b905060006111798284611990565b9050611184816113c6565b600b54600a54479160009161119991906118bc565b600a546111a69084611870565b6111b091906119a3565b905080156112315760055460405160009161010090046001600160a01b03169083908381818185875af1925050503d806000811461120a576040519150601f19603f3d011682016040523d82523d6000602084013e61120f565b606091505b505090508080156112205750600085115b1561122f5761122f8547611520565b505b50506015805460ff60a81b19169055505050565b600082600003611257575060006103e8565b60006112638385611870565b90508261127085836119a3565b146112c75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104e9565b9392505050565b60006112c783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115f1565b600081831161131f57826112c7565b50919050565b60008061133283856118bc565b9050838110156112c75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104e9565b60006112c783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611101565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106113fb576113fb6119c5565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611454573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147891906118cf565b8160018151811061148b5761148b6119c5565b6001600160a01b0392831660209182029290920101526014546114b19130911684610a01565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906114ea9085906000908690309042906004016119db565b600060405180830381600087803b15801561150457600080fd5b505af1158015611518573d6000803e3d6000fd5b505050505050565b6014543060009081526002602090815260408083206001600160a01b039094168352929052205482811015611569576014546115699030906001600160a01b0316600019610a01565b60145460055460405163f305d71960e01b81526001600160a01b039283169263f305d7199286926115ae9230928a9260009283926101009004169042906004016118ec565b60606040518083038185885af11580156115cc573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115189190611927565b600081836116125760405162461bcd60e51b81526004016104e9919061161f565b50600061113284866119a3565b600060208083528351808285015260005b8181101561164c57858101830151858201604001528201611630565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146104bc57600080fd5b6000806040838503121561169557600080fd5b82356116a08161166d565b946020939093013593505050565b6000806000606084860312156116c357600080fd5b83356116ce8161166d565b925060208401356116de8161166d565b929592945050506040919091013590565b60006020828403121561170157600080fd5b81356112c78161166d565b6000806040838503121561171f57600080fd5b50508035926020909101359150565b6000806040838503121561174157600080fd5b823561174c8161166d565b9150602083013561175c8161166d565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156117b857816000190482111561179e5761179e611767565b808516156117ab57918102915b93841c9390800290611782565b509250929050565b6000826117cf575060016103e8565b816117dc575060006103e8565b81600181146117f257600281146117fc57611818565b60019150506103e8565b60ff84111561180d5761180d611767565b50506001821b6103e8565b5060208310610133831016604e8410600b841016171561183b575081810a6103e8565b611845838361177d565b806000190482111561185957611859611767565b029392505050565b60006112c760ff8416836117c0565b80820281158282048414176103e8576103e8611767565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b808201808211156103e8576103e8611767565b6000602082840312156118e157600080fd5b81516112c78161166d565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b60008060006060848603121561193c57600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561196757600080fd5b815180151581146112c757600080fd5b60006001820161198957611989611767565b5060010190565b818103818111156103e8576103e8611767565b6000826119c057634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a2b5784516001600160a01b031683529383019391830191600101611a06565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ca92eaed2aa9dd5fd407015d429cacd8d76a4b93e4ad8a76eba8262309f504b164736f6c63430008130033

Deployed Bytecode

0x6080604052600436106101235760003560e01c8063751039fc116100a0578063a9059cbb11610064578063a9059cbb1461032c578063bf474bed1461034c578063c876d0b914610362578063c9567bf91461037c578063dd62ed3e1461039157600080fd5b8063751039fc146102975780637d1db4a5146102ac5780638da5cb5b146102c25780638f9a55c0146102ea57806395d89b411461030057600080fd5b8063313ce567116100e7578063313ce567146101f957806351bc3c851461021557806370a082311461022c578063715018a614610262578063723333561461027757600080fd5b806306fdde031461012f578063095ea7b3146101705780630faee56f146101a057806318160ddd146101c457806323b872dd146101d957600080fd5b3661012a57005b600080fd5b34801561013b57600080fd5b50604080518082019091526006815265414c50494e4560d01b60208201525b604051610167919061161f565b60405180910390f35b34801561017c57600080fd5b5061019061018b366004611682565b6103d7565b6040519015158152602001610167565b3480156101ac57600080fd5b506101b660135481565b604051908152602001610167565b3480156101d057600080fd5b506101b66103ee565b3480156101e557600080fd5b506101906101f43660046116ae565b61040f565b34801561020557600080fd5b5060405160098152602001610167565b34801561022157600080fd5b5061022a610478565b005b34801561023857600080fd5b506101b66102473660046116ef565b6001600160a01b031660009081526001602052604090205490565b34801561026e57600080fd5b5061022a6104bf565b34801561028357600080fd5b5061022a61029236600461170c565b61053c565b3480156102a357600080fd5b5061022a6105a4565b3480156102b857600080fd5b506101b660105481565b3480156102ce57600080fd5b506000546040516001600160a01b039091168152602001610167565b3480156102f657600080fd5b506101b660115481565b34801561030c57600080fd5b506040805180820190915260038152620414c560ec1b602082015261015a565b34801561033857600080fd5b50610190610347366004611682565b610660565b34801561035857600080fd5b506101b660125481565b34801561036e57600080fd5b506005546101909060ff1681565b34801561038857600080fd5b5061022a61066d565b34801561039d57600080fd5b506101b66103ac36600461172e565b6001600160a01b03918216600090815260026020908152604080832093909416825291909152205490565b60006103e4338484610a01565b5060015b92915050565b60006103fc6009600a611861565b61040a906305f5e100611870565b905090565b600061041c848484610b25565b61046e843361046985604051806060016040528060288152602001611a4d602891396001600160a01b038a1660009081526002602090815260408083203384529091529020549190611101565b610a01565b5060019392505050565b60055461010090046001600160a01b0316336001600160a01b03161461049d57600080fd5b3060009081526001602052604090205480156104bc576104bc8161113b565b50565b6000546001600160a01b031633146104f25760405162461bcd60e51b81526004016104e990611887565b60405180910390fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000546001600160a01b031633146105665760405162461bcd60e51b81526004016104e990611887565b600061057282846118bc565b9050600854811115801561058857506009548111155b61059157600080fd5b600a92909255600b556008819055600955565b6000546001600160a01b031633146105ce5760405162461bcd60e51b81526004016104e990611887565b6105da6009600a611861565b6105e8906305f5e100611870565b6010556105f76009600a611861565b610605906305f5e100611870565b6011556005805460ff191690557f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf61063f6009600a611861565b61064d906305f5e100611870565b60405190815260200160405180910390a1565b60006103e4338484610b25565b6000546001600160a01b031633146106975760405162461bcd60e51b81526004016104e990611887565b601554600160a01b900460ff16156106f15760405162461bcd60e51b815260206004820152601760248201527f74726164696e6720697320616c7265616479206f70656e00000000000000000060448201526064016104e9565b601480546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d90811790915561073a90309061072c6009600a611861565b610469906305f5e100611870565b601460009054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561078d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b191906118cf565b6001600160a01b031663c9c6539630601460009054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610813573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083791906118cf565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015610884573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108a891906118cf565b601580546001600160a01b039283166001600160a01b03199091161790556014541663f305d71947306108f0816001600160a01b031660009081526001602052604090205490565b6000806109056000546001600160a01b031690565b426040518863ffffffff1660e01b8152600401610927969594939291906118ec565b60606040518083038185885af1158015610945573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061096a9190611927565b505060155460145460405163095ea7b360e01b81526001600160a01b03918216600482015260001960248201529116915063095ea7b3906044016020604051808303816000875af11580156109c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109e79190611955565b506015805462ff00ff60a01b19166201000160a01b179055565b6001600160a01b038316610a635760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104e9565b6001600160a01b038216610ac45760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104e9565b6001600160a01b0383811660008181526002602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610b895760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104e9565b6001600160a01b038216610beb5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104e9565b60008111610c4d5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b60648201526084016104e9565b600080546001600160a01b03858116911614801590610c7a57506000546001600160a01b03848116911614155b8015610c8f57506001600160a01b0384163014155b15610fbe5760055460ff1615610d79576014546001600160a01b03848116911614801590610ccb57506015546001600160a01b03848116911614155b15610d7957326000908152600460205260409020544311610d665760405162461bcd60e51b815260206004820152604960248201527f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60448201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b6064820152681030b63637bbb2b21760b91b608482015260a4016104e9565b3260009081526004602052604090204390555b6015546001600160a01b038581169116148015610da457506014546001600160a01b03848116911614155b8015610dc957506001600160a01b03831660009081526003602052604090205460ff16155b15610edf57601054821115610e205760405162461bcd60e51b815260206004820152601960248201527f4578636565647320746865205f6d61785478416d6f756e742e0000000000000060448201526064016104e9565b610e4c6064610e46600c54600f5411610e3b57600654610e3f565b6008545b8590611245565b906112ce565b905060115482610e71856001600160a01b031660009081526001602052604090205490565b610e7b91906118bc565b1115610ec95760405162461bcd60e51b815260206004820152601a60248201527f4578636565647320746865206d617857616c6c657453697a652e00000000000060448201526064016104e9565b600f8054906000610ed983611977565b91905055505b6015546001600160a01b038481169116148015610f0557506001600160a01b0384163014155b15610f3257610f2f6064610e46600d54600f5411610f2557600754610e3f565b6009548590611245565b90505b30600090815260016020526040902054601554600160a81b900460ff16158015610f6957506015546001600160a01b038581169116145b8015610f7e5750601554600160b01b900460ff165b8015610f8b575060125481115b8015610f9a5750600e54600f54115b15610fbc57610fbc610fb784610fb284601354611310565b611310565b61113b565b505b80156110385730600090815260016020526040902054610fde9082611325565b30600081815260016020526040908190209290925590516001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061102f9085815260200190565b60405180910390a35b6001600160a01b03841660009081526001602052604090205461105b9083611384565b6001600160a01b0385166000908152600160205260409020556110a06110818383611384565b6001600160a01b03851660009081526001602052604090205490611325565b6001600160a01b0380851660008181526001602052604090209290925585167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6110ea8585611384565b60405190815260200160405180910390a350505050565b600081848411156111255760405162461bcd60e51b81526004016104e9919061161f565b5060006111328486611990565b95945050505050565b6015805460ff60a81b1916600160a81b179055600b546000906002906111619084611870565b61116b91906119a3565b905060006111798284611990565b9050611184816113c6565b600b54600a54479160009161119991906118bc565b600a546111a69084611870565b6111b091906119a3565b905080156112315760055460405160009161010090046001600160a01b03169083908381818185875af1925050503d806000811461120a576040519150601f19603f3d011682016040523d82523d6000602084013e61120f565b606091505b505090508080156112205750600085115b1561122f5761122f8547611520565b505b50506015805460ff60a81b19169055505050565b600082600003611257575060006103e8565b60006112638385611870565b90508261127085836119a3565b146112c75760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b60648201526084016104e9565b9392505050565b60006112c783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506115f1565b600081831161131f57826112c7565b50919050565b60008061133283856118bc565b9050838110156112c75760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f77000000000060448201526064016104e9565b60006112c783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611101565b60408051600280825260608201835260009260208301908036833701905050905030816000815181106113fb576113fb6119c5565b6001600160a01b03928316602091820292909201810191909152601454604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611454573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147891906118cf565b8160018151811061148b5761148b6119c5565b6001600160a01b0392831660209182029290920101526014546114b19130911684610a01565b60145460405163791ac94760e01b81526001600160a01b039091169063791ac947906114ea9085906000908690309042906004016119db565b600060405180830381600087803b15801561150457600080fd5b505af1158015611518573d6000803e3d6000fd5b505050505050565b6014543060009081526002602090815260408083206001600160a01b039094168352929052205482811015611569576014546115699030906001600160a01b0316600019610a01565b60145460055460405163f305d71960e01b81526001600160a01b039283169263f305d7199286926115ae9230928a9260009283926101009004169042906004016118ec565b60606040518083038185885af11580156115cc573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115189190611927565b600081836116125760405162461bcd60e51b81526004016104e9919061161f565b50600061113284866119a3565b600060208083528351808285015260005b8181101561164c57858101830151858201604001528201611630565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b03811681146104bc57600080fd5b6000806040838503121561169557600080fd5b82356116a08161166d565b946020939093013593505050565b6000806000606084860312156116c357600080fd5b83356116ce8161166d565b925060208401356116de8161166d565b929592945050506040919091013590565b60006020828403121561170157600080fd5b81356112c78161166d565b6000806040838503121561171f57600080fd5b50508035926020909101359150565b6000806040838503121561174157600080fd5b823561174c8161166d565b9150602083013561175c8161166d565b809150509250929050565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156117b857816000190482111561179e5761179e611767565b808516156117ab57918102915b93841c9390800290611782565b509250929050565b6000826117cf575060016103e8565b816117dc575060006103e8565b81600181146117f257600281146117fc57611818565b60019150506103e8565b60ff84111561180d5761180d611767565b50506001821b6103e8565b5060208310610133831016604e8410600b841016171561183b575081810a6103e8565b611845838361177d565b806000190482111561185957611859611767565b029392505050565b60006112c760ff8416836117c0565b80820281158282048414176103e8576103e8611767565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b808201808211156103e8576103e8611767565b6000602082840312156118e157600080fd5b81516112c78161166d565b6001600160a01b039687168152602081019590955260408501939093526060840191909152909216608082015260a081019190915260c00190565b60008060006060848603121561193c57600080fd5b8351925060208401519150604084015190509250925092565b60006020828403121561196757600080fd5b815180151581146112c757600080fd5b60006001820161198957611989611767565b5060010190565b818103818111156103e8576103e8611767565b6000826119c057634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060a082018783526020878185015260a0604085015281875180845260c086019150828901935060005b81811015611a2b5784516001600160a01b031683529383019391830191600101611a06565b50506001600160a01b0396909616606085015250505060800152939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ca92eaed2aa9dd5fd407015d429cacd8d76a4b93e4ad8a76eba8262309f504b164736f6c63430008130033

Deployed Bytecode Sourcemap

3940:9225:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6116:83;;;;;;;;;;-1:-1:-1;6186:5:0;;;;;;;;;;;;-1:-1:-1;;;6186:5:0;;;;6116:83;;;;;;;:::i;:::-;;;;;;;;6949:161;;;;;;;;;;-1:-1:-1;6949:161:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;6949:161:0;1023:187:1;5393:50:0;;;;;;;;;;;;;;;;;;;1361:25:1;;;1349:2;1334:18;5393:50:0;1215:177:1;6393:95:0;;;;;;;;;;;;;:::i;7118:313::-;;;;;;;;;;-1:-1:-1;7118:313:0;;;;;:::i;:::-;;:::i;6302:83::-;;;;;;;;;;-1:-1:-1;6302:83:0;;4973:1;2000:36:1;;1988:2;1973:18;6302:83:0;1858:184:1;12934:228:0;;;;;;;;;;;;;:::i;:::-;;6496:119;;;;;;;;;;-1:-1:-1;6496:119:0;;;;;:::i;:::-;-1:-1:-1;;;;;6589:18:0;6562:7;6589:18;;;:9;:18;;;;;;;6496:119;3021:148;;;;;;;;;;;;;:::i;12548:341::-;;;;;;;;;;-1:-1:-1;12548:341:0;;;;;:::i;:::-;;:::i;11657:196::-;;;;;;;;;;;;;:::i;5169:53::-;;;;;;;;;;;;;;;;2807:79;;;;;;;;;;-1:-1:-1;2845:7:0;2872:6;2807:79;;-1:-1:-1;;;;;2872:6:0;;;2698:51:1;;2686:2;2671:18;2807:79:0;2552:203:1;5249:55:0;;;;;;;;;;;;;;;;6207:87;;;;;;;;;;-1:-1:-1;6279:7:0;;;;;;;;;;;;-1:-1:-1;;;6279:7:0;;;;6207:87;;6623:167;;;;;;;;;;-1:-1:-1;6623:167:0;;;;;:::i;:::-;;:::i;5331:55::-;;;;;;;;;;;;;;;;4284:39;;;;;;;;;;-1:-1:-1;4284:39:0;;;;;;;;11863:671;;;;;;;;;;;;;:::i;6798:143::-;;;;;;;;;;-1:-1:-1;6798:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;6906:18:0;;;6879:7;6906:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;6798:143;6949:161;7024:4;7041:39;642:10;7064:7;7073:6;7041:8;:39::i;:::-;-1:-1:-1;7098:4:0;6949:161;;;;;:::o;6393:95::-;6446:7;5028:13;4973:1;5028:2;:13;:::i;:::-;5016:25;;:9;:25;:::i;:::-;6466:14;;6393:95;:::o;7118:313::-;7216:4;7233:36;7243:6;7251:9;7262:6;7233:9;:36::i;:::-;7280:121;7289:6;642:10;7311:89;7349:6;7311:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7311:19:0;;;;;;:11;:19;;;;;;;;642:10;7311:33;;;;;;;;;;:37;:89::i;:::-;7280:8;:121::i;:::-;-1:-1:-1;7419:4:0;7118:313;;;;;:::o;12934:228::-;12998:10;;;;;-1:-1:-1;;;;;12998:10:0;642;-1:-1:-1;;;;;12984:24:0;;12976:33;;;;;;13059:4;13020:20;6589:18;;;:9;:18;;;;;;13079:14;;13076:71;;13107:28;13122:12;13107:14;:28::i;:::-;12965:197;12934:228::o;3021:148::-;2934:6;;-1:-1:-1;;;;;2934:6:0;642:10;2934:22;2926:67;;;;-1:-1:-1;;;2926:67:0;;;;;;;:::i;:::-;;;;;;;;;3128:1:::1;3112:6:::0;;3091:40:::1;::::0;-1:-1:-1;;;;;3112:6:0;;::::1;::::0;3091:40:::1;::::0;3128:1;;3091:40:::1;3159:1;3142:19:::0;;-1:-1:-1;;;;;;3142:19:0::1;::::0;;3021:148::o;12548:341::-;2934:6;;-1:-1:-1;;;;;2934:6:0;642:10;2934:22;2926:67;;;;-1:-1:-1;;;2926:67:0;;;;;;;:::i;:::-;12638:16:::1;12657:27;12672:12:::0;12657;:27:::1;:::i;:::-;12638:46;;12711:12;;12701:8;:22;;:49;;;;;12737:13;;12726:8;:24;;12701:49;12693:58;;;::::0;::::1;;12760:13;:28:::0;;;;12797:6:::1;:21:::0;12827:12:::1;:22:::0;;;12858:13:::1;:23:::0;12548:341::o;11657:196::-;2934:6;;-1:-1:-1;;;;;2934:6:0;642:10;2934:22;2926:67;;;;-1:-1:-1;;;2926:67:0;;;;;;;:::i;:::-;5028:13:::1;4973:1;5028:2;:13;:::i;:::-;5016:25;::::0;:9:::1;:25;:::i;:::-;11710:12;:22:::0;5028:13:::1;4973:1;5028:2;:13;:::i;:::-;5016:25;::::0;:9:::1;:25;:::i;:::-;11743:14;:22:::0;11776:20:::1;:26:::0;;-1:-1:-1;;11776:26:0::1;::::0;;11818:27:::1;5028:13;4973:1;5028:2;:13;:::i;:::-;5016:25;::::0;:9:::1;:25;:::i;:::-;11818:27;::::0;1361:25:1;;;1349:2;1334:18;11818:27:0::1;;;;;;;11657:196::o:0;6623:167::-;6701:4;6718:42;642:10;6742:9;6753:6;6718:9;:42::i;11863:671::-;2934:6;;-1:-1:-1;;;;;2934:6:0;642:10;2934:22;2926:67;;;;-1:-1:-1;;;2926:67:0;;;;;;;:::i;:::-;11927:11:::1;::::0;-1:-1:-1;;;11927:11:0;::::1;;;11926:12;11918:47;;;::::0;-1:-1:-1;;;11918:47:0;;5534:2:1;11918:47:0::1;::::0;::::1;5516:21:1::0;5573:2;5553:18;;;5546:30;5612:25;5592:18;;;5585:53;5655:18;;11918:47:0::1;5332:347:1::0;11918:47:0::1;11976:15;:80:::0;;-1:-1:-1;;;;;;11976:80:0::1;12013:42;11976:80:::0;;::::1;::::0;;;12067:58:::1;::::0;12084:4:::1;::::0;5028:13:::1;4973:1;5028:2;:13;:::i;:::-;5016:25;::::0;:9:::1;:25;:::i;12067:58::-;12170:15;;;;;;;;;-1:-1:-1::0;;;;;12170:15:0::1;-1:-1:-1::0;;;;;12170:23:0::1;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;12152:55:0::1;;12216:4;12223:15;;;;;;;;;-1:-1:-1::0;;;;;12223:15:0::1;-1:-1:-1::0;;;;;12223:20:0::1;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12152:94;::::0;-1:-1:-1;;;;;;12152:94:0::1;::::0;;;;;;-1:-1:-1;;;;;6170:15:1;;;12152:94:0::1;::::0;::::1;6152:34:1::0;6222:15;;6202:18;;;6195:43;6087:18;;12152:94:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12136:13;:110:::0;;-1:-1:-1;;;;;12136:110:0;;::::1;-1:-1:-1::0;;;;;;12136:110:0;;::::1;;::::0;;12257:15:::1;::::0;::::1;:31;12296:21;12327:4;12333:24;12327:4:::0;-1:-1:-1;;;;;6589:18:0;6562:7;6589:18;;;:9;:18;;;;;;;6496:119;12333:24:::1;12358:1;12360::::0;12362:7:::1;2845::::0;2872:6;-1:-1:-1;;;;;2872:6:0;;2807:79;12362:7:::1;12370:15;12257:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;12404:13:0::1;::::0;12435:15:::1;::::0;12397:71:::1;::::0;-1:-1:-1;;;12397:71:0;;-1:-1:-1;;;;;12435:15:0;;::::1;12397:71;::::0;::::1;7346:51:1::0;-1:-1:-1;;7413:18:1;;;7406:34;12404:13:0;::::1;::::0;-1:-1:-1;12397:29:0::1;::::0;7319:18:1;;12397:71:0::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;12479:11:0::1;:18:::0;;-1:-1:-1;;;;12508:18:0;-1:-1:-1;;;12508:18:0;;;11863:671::o;7439:335::-;-1:-1:-1;;;;;7532:19:0;;7524:68;;;;-1:-1:-1;;;7524:68:0;;7935:2:1;7524:68:0;;;7917:21:1;7974:2;7954:18;;;7947:30;8013:34;7993:18;;;7986:62;-1:-1:-1;;;8064:18:1;;;8057:34;8108:19;;7524:68:0;7733:400:1;7524:68:0;-1:-1:-1;;;;;7611:21:0;;7603:68;;;;-1:-1:-1;;;7603:68:0;;8340:2:1;7603:68:0;;;8322:21:1;8379:2;8359:18;;;8352:30;8418:34;8398:18;;;8391:62;-1:-1:-1;;;8469:18:1;;;8462:32;8511:19;;7603:68:0;8138:398:1;7603:68:0;-1:-1:-1;;;;;7682:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;7734:32;;1361:25:1;;;7734:32:0;;1334:18:1;7734:32:0;;;;;;;7439:335;;;:::o;7782:2247::-;-1:-1:-1;;;;;7870:18:0;;7862:68;;;;-1:-1:-1;;;7862:68:0;;8743:2:1;7862:68:0;;;8725:21:1;8782:2;8762:18;;;8755:30;8821:34;8801:18;;;8794:62;-1:-1:-1;;;8872:18:1;;;8865:35;8917:19;;7862:68:0;8541:401:1;7862:68:0;-1:-1:-1;;;;;7949:16:0;;7941:64;;;;-1:-1:-1;;;7941:64:0;;9149:2:1;7941:64:0;;;9131:21:1;9188:2;9168:18;;;9161:30;9227:34;9207:18;;;9200:62;-1:-1:-1;;;9278:18:1;;;9271:33;9321:19;;7941:64:0;8947:399:1;7941:64:0;8033:1;8024:6;:10;8016:64;;;;-1:-1:-1;;;8016:64:0;;9553:2:1;8016:64:0;;;9535:21:1;9592:2;9572:18;;;9565:30;9631:34;9611:18;;;9604:62;-1:-1:-1;;;9682:18:1;;;9675:39;9731:19;;8016:64:0;9351:405:1;8016:64:0;8091:17;2872:6;;-1:-1:-1;;;;;8125:15:0;;;2872:6;;8125:15;;;;:32;;-1:-1:-1;2845:7:0;2872:6;-1:-1:-1;;;;;8144:13:0;;;2872:6;;8144:13;;8125:32;:57;;;;-1:-1:-1;;;;;;8161:21:0;;8177:4;8161:21;;8125:57;8121:1552;;;8219:20;;;;8215:508;;;8280:15;;-1:-1:-1;;;;;8266:30:0;;;8280:15;;8266:30;;;;:62;;-1:-1:-1;8314:13:0;;-1:-1:-1;;;;;8300:28:0;;;8314:13;;8300:28;;8266:62;8262:444;;;8420:9;8391:39;;;;:28;:39;;;;;;8464:12;-1:-1:-1;8355:250:0;;;;-1:-1:-1;;;8355:250:0;;9963:2:1;8355:250:0;;;9945:21:1;10002:2;9982:18;;;9975:30;10041:34;10021:18;;;10014:62;10112:34;10092:18;;;10085:62;-1:-1:-1;;;10163:19:1;;;10156:40;10213:19;;8355:250:0;9761:477:1;8355:250:0;8659:9;8630:39;;;;:28;:39;;;;;8672:12;8630:54;;8262:444;8751:13;;-1:-1:-1;;;;;8743:21:0;;;8751:13;;8743:21;:55;;;;-1:-1:-1;8782:15:0;;-1:-1:-1;;;;;8768:30:0;;;8782:15;;8768:30;;8743:55;:83;;;;-1:-1:-1;;;;;;8804:22:0;;;;;;:18;:22;;;;;;;;8802:24;8743:83;8739:420;;;8866:12;;8856:6;:22;;8848:60;;;;-1:-1:-1;;;8848:60:0;;10445:2:1;8848:60:0;;;10427:21:1;10484:2;10464:18;;;10457:30;10523:27;10503:18;;;10496:55;10568:18;;8848:60:0;10243:349:1;8848:60:0;8939:76;9011:3;8939:67;8961:15;;8951:9;;:25;8950:55;;8991:14;;8950:55;;;8978:12;;8950:55;8939:6;;:10;:67::i;:::-;:71;;:76::i;:::-;8927:88;;9068:14;;9058:6;9042:13;9052:2;-1:-1:-1;;;;;6589:18:0;6562:7;6589:18;;;:9;:18;;;;;;;6496:119;9042:13;:22;;;;:::i;:::-;:40;;9034:79;;;;-1:-1:-1;;;9034:79:0;;10799:2:1;9034:79:0;;;10781:21:1;10838:2;10818:18;;;10811:30;10877:28;10857:18;;;10850:56;10923:18;;9034:79:0;10597:350:1;9034:79:0;9132:9;:11;;;:9;:11;;;:::i;:::-;;;;;;8739:420;9184:13;;-1:-1:-1;;;;;9178:19:0;;;9184:13;;9178:19;:43;;;;-1:-1:-1;;;;;;9201:20:0;;9216:4;9201:20;;9178:43;9175:174;;;9254:79;9329:3;9254:70;9276:16;;9266:9;;:26;9265:58;;9308:15;;9265:58;;;9294:13;;9254:6;;:10;:70::i;:79::-;9242:91;;9175:174;9414:4;9365:28;6589:18;;;:9;:18;;;;;;9440:6;;-1:-1:-1;;;9440:6:0;;;;9439:7;:32;;;;-1:-1:-1;9458:13:0;;-1:-1:-1;;;;;9450:21:0;;;9458:13;;9450:21;9439:32;:47;;;;-1:-1:-1;9475:11:0;;-1:-1:-1;;;9475:11:0;;;;9439:47;:89;;;;;9511:17;;9490:20;:38;9439:89;:121;;;;;9542:18;;9532:9;;:28;9439:121;9435:227;;;9581:65;9596:49;9600:6;9607:37;9611:20;9632:11;;9607:3;:37::i;:::-;9596:3;:49::i;:::-;9581:14;:65::i;:::-;8184:1489;8121:1552;9688:11;;9685:161;;9756:4;9738:24;;;;:9;:24;;;;;;:39;;9767:9;9738:28;:39::i;:::-;9731:4;9713:24;;;;:9;:24;;;;;;;:64;;;;9795:39;;-1:-1:-1;;;;;9795:39:0;;;;;;;9824:9;1361:25:1;;1349:2;1334:18;;1215:177;9795:39:0;;;;;;;;9685:161;-1:-1:-1;;;;;9872:15:0;;;;;;:9;:15;;;;;;:27;;9892:6;9872:19;:27::i;:::-;-1:-1:-1;;;;;9856:15:0;;;;;;:9;:15;;;;;:43;9924:40;9942:21;:6;9953:9;9942:10;:21::i;:::-;-1:-1:-1;;;;;9924:13:0;;;;;;:9;:13;;;;;;;:17;:40::i;:::-;-1:-1:-1;;;;;9910:13:0;;;;;;;:9;:13;;;;;:54;;;;9980:41;;;9999:21;:6;10010:9;9999:10;:21::i;:::-;9980:41;;1361:25:1;;;1349:2;1334:18;9980:41:0;;;;;;;7851:2178;7782:2247;;;:::o;1699:190::-;1785:7;1821:12;1813:6;;;;1805:29;;;;-1:-1:-1;;;1805:29:0;;;;;;;;:::i;:::-;-1:-1:-1;1845:9:0;1857:5;1861:1;1857;:5;:::i;:::-;1845:17;1699:190;-1:-1:-1;;;;;1699:190:0:o;10145:550::-;5725:6;:13;;-1:-1:-1;;;;5725:13:0;-1:-1:-1;;;5725:13:0;;;10244:6:::1;::::0;5725:13;;10254:1:::1;::::0;10235:15:::1;::::0;:6;:15:::1;:::i;:::-;10234:21;;;;:::i;:::-;10215:40:::0;-1:-1:-1;10264:18:0::1;10285:17;10215:40:::0;10285:6;:17:::1;:::i;:::-;10264:38;;10311:29;10329:10;10311:16;:29::i;:::-;10472:6;::::0;10456:13:::1;::::0;10370:21:::1;::::0;10349:18:::1;::::0;10456:22:::1;::::0;10472:6;10456:22:::1;:::i;:::-;10438:13;::::0;10425:26:::1;::::0;:10;:26:::1;:::i;:::-;10424:55;;;;:::i;:::-;10400:79:::0;-1:-1:-1;10491:17:0;;10488:200:::1;;10536:10;::::0;:41:::1;::::0;10519:12:::1;::::0;10536:10:::1;::::0;::::1;-1:-1:-1::0;;;;;10536:10:0::1;::::0;10559:13;;10519:12;10536:41;10519:12;10536:41;10559:13;10536:10;:41:::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10518:59;;;10590:7;:23;;;;;10612:1;10601:8;:12;10590:23;10586:93;;;10623:45;10636:8;10646:21;10623:12;:45::i;:::-;10509:179;10488:200;-1:-1:-1::0;;5761:6:0;:14;;-1:-1:-1;;;;5761:14:0;;;-1:-1:-1;;;10145:550:0:o;1897:246::-;1955:7;1979:1;1984;1979:6;1975:47;;-1:-1:-1;2009:1:0;2002:8;;1975:47;2032:9;2044:5;2048:1;2044;:5;:::i;:::-;2032:17;-1:-1:-1;2077:1:0;2068:5;2072:1;2032:17;2068:5;:::i;:::-;:10;2060:56;;;;-1:-1:-1;;;2060:56:0;;11859:2:1;2060:56:0;;;11841:21:1;11898:2;11878:18;;;11871:30;11937:34;11917:18;;;11910:62;-1:-1:-1;;;11988:18:1;;;11981:31;12029:19;;2060:56:0;11657:397:1;2060:56:0;2134:1;1897:246;-1:-1:-1;;;1897:246:0:o;2151:132::-;2209:7;2236:39;2240:1;2243;2236:39;;;;;;;;;;;;;;;;;:3;:39::i;10039:98::-;10096:7;10123:1;10121;:3;10120:9;;10128:1;10120:9;;;-1:-1:-1;10126:1:0;10039:98;-1:-1:-1;10039:98:0:o;1368:179::-;1426:7;;1458:5;1462:1;1458;:5;:::i;:::-;1446:17;;1487:1;1482;:6;;1474:46;;;;-1:-1:-1;;;1474:46:0;;12261:2:1;1474:46:0;;;12243:21:1;12300:2;12280:18;;;12273:30;12339:29;12319:18;;;12312:57;12386:18;;1474:46:0;12059:351:1;1555:136:0;1613:7;1640:43;1644:1;1647;1640:43;;;;;;;;;;;;;;;;;:3;:43::i;10703:472::-;10794:16;;;10808:1;10794:16;;;;;;;;10770:21;;10794:16;;;;;;;;;;-1:-1:-1;10794:16:0;10770:40;;10839:4;10821;10826:1;10821:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10821:23:0;;;:7;;;;;;;;;;:23;;;;10865:15;;:22;;;-1:-1:-1;;;10865:22:0;;;;:15;;;;;:20;;:22;;;;;10821:7;;10865:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10855:4;10860:1;10855:7;;;;;;;;:::i;:::-;-1:-1:-1;;;;;10855:32:0;;;:7;;;;;;;;;:32;10930:15;;10898:62;;10915:4;;10930:15;10948:11;10898:8;:62::i;:::-;10971:15;;:196;;-1:-1:-1;;;10971:196:0;;-1:-1:-1;;;;;10971:15:0;;;;:66;;:196;;11052:11;;10971:15;;11094:4;;11121;;11141:15;;10971:196;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10759:416;10703:472;:::o;11183:466::-;11311:15;;11296:4;11254:21;6906:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;11311:15:0;;;6906:27;;;;;;;11342:22;;;11339:112;;;11409:15;;11377:62;;11394:4;;-1:-1:-1;;;;;11409:15:0;-1:-1:-1;;11377:8:0;:62::i;:::-;11461:15;;11600:10;;11461:180;;-1:-1:-1;;;11461:180:0;;-1:-1:-1;;;;;11461:15:0;;;;:31;;11500:3;;11461:180;;11527:4;;11547:6;;11461:15;;;;;11600:10;;;;11625:15;;11461:180;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;2291:189::-;2377:7;2412:12;2405:5;2397:28;;;;-1:-1:-1;;;2397:28:0;;;;;;;;:::i;:::-;-1:-1:-1;2436:9:0;2448:5;2452:1;2448;:5;:::i;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:247::-;2106:6;2159:2;2147:9;2138:7;2134:23;2130:32;2127:52;;;2175:1;2172;2165:12;2127:52;2214:9;2201:23;2233:31;2258:5;2233:31;:::i;2299:248::-;2367:6;2375;2428:2;2416:9;2407:7;2403:23;2399:32;2396:52;;;2444:1;2441;2434:12;2396:52;-1:-1:-1;;2467:23:1;;;2537:2;2522:18;;;2509:32;;-1:-1:-1;2299:248:1:o;2760:388::-;2828:6;2836;2889:2;2877:9;2868:7;2864:23;2860:32;2857:52;;;2905:1;2902;2895:12;2857:52;2944:9;2931:23;2963:31;2988:5;2963:31;:::i;:::-;3013:5;-1:-1:-1;3070:2:1;3055:18;;3042:32;3083:33;3042:32;3083:33;:::i;:::-;3135:7;3125:17;;;2760:388;;;;;:::o;3153:127::-;3214:10;3209:3;3205:20;3202:1;3195:31;3245:4;3242:1;3235:15;3269:4;3266:1;3259:15;3285:422;3374:1;3417:5;3374:1;3431:270;3452:7;3442:8;3439:21;3431:270;;;3511:4;3507:1;3503:6;3499:17;3493:4;3490:27;3487:53;;;3520:18;;:::i;:::-;3570:7;3560:8;3556:22;3553:55;;;3590:16;;;;3553:55;3669:22;;;;3629:15;;;;3431:270;;;3435:3;3285:422;;;;;:::o;3712:806::-;3761:5;3791:8;3781:80;;-1:-1:-1;3832:1:1;3846:5;;3781:80;3880:4;3870:76;;-1:-1:-1;3917:1:1;3931:5;;3870:76;3962:4;3980:1;3975:59;;;;4048:1;4043:130;;;;3955:218;;3975:59;4005:1;3996:10;;4019:5;;;4043:130;4080:3;4070:8;4067:17;4064:43;;;4087:18;;:::i;:::-;-1:-1:-1;;4143:1:1;4129:16;;4158:5;;3955:218;;4257:2;4247:8;4244:16;4238:3;4232:4;4229:13;4225:36;4219:2;4209:8;4206:16;4201:2;4195:4;4192:12;4188:35;4185:77;4182:159;;;-1:-1:-1;4294:19:1;;;4326:5;;4182:159;4373:34;4398:8;4392:4;4373:34;:::i;:::-;4443:6;4439:1;4435:6;4431:19;4422:7;4419:32;4416:58;;;4454:18;;:::i;:::-;4492:20;;3712:806;-1:-1:-1;;;3712:806:1:o;4523:140::-;4581:5;4610:47;4651:4;4641:8;4637:19;4631:4;4610:47;:::i;4668:168::-;4741:9;;;4772;;4789:15;;;4783:22;;4769:37;4759:71;;4810:18;;:::i;4841:356::-;5043:2;5025:21;;;5062:18;;;5055:30;5121:34;5116:2;5101:18;;5094:62;5188:2;5173:18;;4841:356::o;5202:125::-;5267:9;;;5288:10;;;5285:36;;;5301:18;;:::i;5684:251::-;5754:6;5807:2;5795:9;5786:7;5782:23;5778:32;5775:52;;;5823:1;5820;5813:12;5775:52;5855:9;5849:16;5874:31;5899:5;5874:31;:::i;6249:607::-;-1:-1:-1;;;;;6608:15:1;;;6590:34;;6655:2;6640:18;;6633:34;;;;6698:2;6683:18;;6676:34;;;;6741:2;6726:18;;6719:34;;;;6790:15;;;6784:3;6769:19;;6762:44;6570:3;6822:19;;6815:35;;;;6539:3;6524:19;;6249:607::o;6861:306::-;6949:6;6957;6965;7018:2;7006:9;6997:7;6993:23;6989:32;6986:52;;;7034:1;7031;7024:12;6986:52;7063:9;7057:16;7047:26;;7113:2;7102:9;7098:18;7092:25;7082:35;;7157:2;7146:9;7142:18;7136:25;7126:35;;6861:306;;;;;:::o;7451:277::-;7518:6;7571:2;7559:9;7550:7;7546:23;7542:32;7539:52;;;7587:1;7584;7577:12;7539:52;7619:9;7613:16;7672:5;7665:13;7658:21;7651:5;7648:32;7638:60;;7694:1;7691;7684:12;10952:135;10991:3;11012:17;;;11009:43;;11032:18;;:::i;:::-;-1:-1:-1;11079:1:1;11068:13;;10952:135::o;11092:128::-;11159:9;;;11180:11;;;11177:37;;;11194:18;;:::i;11225:217::-;11265:1;11291;11281:132;;11335:10;11330:3;11326:20;11323:1;11316:31;11370:4;11367:1;11360:15;11398:4;11395:1;11388:15;11281:132;-1:-1:-1;11427:9:1;;11225:217::o;12547:127::-;12608:10;12603:3;12599:20;12596:1;12589:31;12639:4;12636:1;12629:15;12663:4;12660:1;12653:15;12679:980;12941:4;12989:3;12978:9;12974:19;13020:6;13009:9;13002:25;13046:2;13084:6;13079:2;13068:9;13064:18;13057:34;13127:3;13122:2;13111:9;13107:18;13100:31;13151:6;13186;13180:13;13217:6;13209;13202:22;13255:3;13244:9;13240:19;13233:26;;13294:2;13286:6;13282:15;13268:29;;13315:1;13325:195;13339:6;13336:1;13333:13;13325:195;;;13404:13;;-1:-1:-1;;;;;13400:39:1;13388:52;;13495:15;;;;13460:12;;;;13436:1;13354:9;13325:195;;;-1:-1:-1;;;;;;;13576:32:1;;;;13571:2;13556:18;;13549:60;-1:-1:-1;;;13640:3:1;13625:19;13618:35;13537:3;12679:980;-1:-1:-1;;;12679:980:1:o

Swarm Source

ipfs://ca92eaed2aa9dd5fd407015d429cacd8d76a4b93e4ad8a76eba8262309f504b1

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

OVERVIEW

Alpine is a comprehensive blockchain ecosystem that combine cutting-edge technology with privacy. Alpine layer 2 solutions are crafted to enhance blockchain scalability, ensuring networks can handle increased global adoption.

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.