ETH Price: $3,708.92 (+3.07%)

Contract

0xE1fc803f1fF68432609fcFC7D2C25E4856DaF7d1
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve209538202024-10-13 2:54:2348 days ago1728788063IN
0xE1fc803f...856DaF7d1
0 ETH0.000193587.99261675
Transfer207843452024-09-19 11:28:4772 days ago1726745327IN
0xE1fc803f...856DaF7d1
0 ETH0.0009615613.68309714
Transfer207837032024-09-19 9:19:5972 days ago1726737599IN
0xE1fc803f...856DaF7d1
0 ETH0.0007269510.34454013
Approve203788402024-07-24 20:38:47129 days ago1721853527IN
0xE1fc803f...856DaF7d1
0 ETH0.000234875.05725593
Approve203024872024-07-14 4:55:11139 days ago1720932911IN
0xE1fc803f...856DaF7d1
0 ETH0.000125122.69401187
Transfer202446232024-07-06 2:55:47147 days ago1720234547IN
0xE1fc803f...856DaF7d1
0 ETH0.000090152.03118348
Approve202199302024-07-02 16:09:59151 days ago1719936599IN
0xE1fc803f...856DaF7d1
0 ETH0.000553711.92196224
Approve202196652024-07-02 15:16:23151 days ago1719933383IN
0xE1fc803f...856DaF7d1
0 ETH0.000401988.65518428
Approve201372002024-06-21 2:45:47162 days ago1718937947IN
0xE1fc803f...856DaF7d1
0 ETH0.000133532.87516036
Approve201281582024-06-19 20:25:47164 days ago1718828747IN
0xE1fc803f...856DaF7d1
0 ETH0.000384488.33219285
Approve201135602024-06-17 19:22:35166 days ago1718652155IN
0xE1fc803f...856DaF7d1
0 ETH0.0005340611.4991253
Approve201072822024-06-16 22:17:59167 days ago1718576279IN
0xE1fc803f...856DaF7d1
0 ETH0.000185574.01754359
Approve200973032024-06-15 12:50:47168 days ago1718455847IN
0xE1fc803f...856DaF7d1
0 ETH0.000307356.66085407
Approve200969722024-06-15 11:43:59168 days ago1718451839IN
0xE1fc803f...856DaF7d1
0 ETH0.00016943.64753191
Transfer200954542024-06-15 6:37:35168 days ago1718433455IN
0xE1fc803f...856DaF7d1
0 ETH0.000195034.23830123
Transfer200954512024-06-15 6:36:59168 days ago1718433419IN
0xE1fc803f...856DaF7d1
0 ETH0.0001934.19402551
Transfer200954472024-06-15 6:36:11168 days ago1718433371IN
0xE1fc803f...856DaF7d1
0 ETH0.000202944.41021606
Transfer200954432024-06-15 6:35:23168 days ago1718433323IN
0xE1fc803f...856DaF7d1
0 ETH0.000194624.2292698
Transfer200954262024-06-15 6:31:59168 days ago1718433119IN
0xE1fc803f...856DaF7d1
0 ETH0.000206954.49721682
Transfer200954222024-06-15 6:31:11168 days ago1718433071IN
0xE1fc803f...856DaF7d1
0 ETH0.000214664.66227197
Transfer200929862024-06-14 22:18:59169 days ago1718403539IN
0xE1fc803f...856DaF7d1
0 ETH0.000278566.05030461
Transfer200929502024-06-14 22:11:47169 days ago1718403107IN
0xE1fc803f...856DaF7d1
0 ETH0.000399068.66746923
Approve200924272024-06-14 20:26:47169 days ago1718396807IN
0xE1fc803f...856DaF7d1
0 ETH0.0005366811.5555344
Approve200894032024-06-14 10:19:47169 days ago1718360387IN
0xE1fc803f...856DaF7d1
0 ETH0.00030116.48320732
Approve200717552024-06-11 23:05:23171 days ago1718147123IN
0xE1fc803f...856DaF7d1
0 ETH0.0005434211.70055757
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
199929202024-05-31 22:53:59183 days ago1717196039
0xE1fc803f...856DaF7d1
0.02356332 ETH
199929202024-05-31 22:53:59183 days ago1717196039
0xE1fc803f...856DaF7d1
0.02356332 ETH
199929182024-05-31 22:53:35183 days ago1717196015
0xE1fc803f...856DaF7d1
0.00789767 ETH
199929182024-05-31 22:53:35183 days ago1717196015
0xE1fc803f...856DaF7d1
0.00789767 ETH
199929172024-05-31 22:53:23183 days ago1717196003
0xE1fc803f...856DaF7d1
0.02112285 ETH
199929172024-05-31 22:53:23183 days ago1717196003
0xE1fc803f...856DaF7d1
0.02112285 ETH
199929132024-05-31 22:52:23183 days ago1717195943
0xE1fc803f...856DaF7d1
0.01847324 ETH
199929132024-05-31 22:52:23183 days ago1717195943
0xE1fc803f...856DaF7d1
0.01847324 ETH
199929122024-05-31 22:52:11183 days ago1717195931
0xE1fc803f...856DaF7d1
0.01966891 ETH
199929122024-05-31 22:52:11183 days ago1717195931
0xE1fc803f...856DaF7d1
0.01966891 ETH
199929122024-05-31 22:52:11183 days ago1717195931
0xE1fc803f...856DaF7d1
0.02070896 ETH
199929122024-05-31 22:52:11183 days ago1717195931
0xE1fc803f...856DaF7d1
0.02070896 ETH
199929072024-05-31 22:51:11183 days ago1717195871
0xE1fc803f...856DaF7d1
0.01110312 ETH
199929072024-05-31 22:51:11183 days ago1717195871
0xE1fc803f...856DaF7d1
0.01110312 ETH
199929062024-05-31 22:50:59183 days ago1717195859
0xE1fc803f...856DaF7d1
0.01601065 ETH
199929062024-05-31 22:50:59183 days ago1717195859
0xE1fc803f...856DaF7d1
0.01601065 ETH
199929052024-05-31 22:50:47183 days ago1717195847
0xE1fc803f...856DaF7d1
0.05999316 ETH
199929052024-05-31 22:50:47183 days ago1717195847
0xE1fc803f...856DaF7d1
0.05999316 ETH
199929012024-05-31 22:49:59183 days ago1717195799
0xE1fc803f...856DaF7d1
0.03015307 ETH
199929012024-05-31 22:49:59183 days ago1717195799
0xE1fc803f...856DaF7d1
0.03015307 ETH
199929012024-05-31 22:49:59183 days ago1717195799
0xE1fc803f...856DaF7d1
0.03188439 ETH
199929012024-05-31 22:49:59183 days ago1717195799
0xE1fc803f...856DaF7d1
0.03188439 ETH
199929012024-05-31 22:49:59183 days ago1717195799
0xE1fc803f...856DaF7d1
0.03074029 ETH
199929012024-05-31 22:49:59183 days ago1717195799
0xE1fc803f...856DaF7d1
0.03074029 ETH
199928992024-05-31 22:49:35183 days ago1717195775
0xE1fc803f...856DaF7d1
0.0355833 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Pot

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-05-31
*/

//SPDX-License-Identifier: MIT
/*
$POT There is only one way to help president elect Trump, Fuse Blockchain & Blunts together!


Socials:

Webpage:
 https://ProofofTrump.Vip

Portal:
 https://t.me/ProofofTrumpCoin

X:
 https://x.com/ProofofTrumpEth

*/


pragma solidity 0.8.21;

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address __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);
}

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 WETH() external pure returns (address);
    function factory() 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);
}

abstract contract Auth {
    address internal _owner;
    constructor(address deployerWallet) { 
        _owner = deployerWallet; 
    }
    modifier onlyOwner() { 
        require(msg.sender == _owner, "Only owner can call this"); 
        _; 
    }
    function owner() public view returns (address) { 
        return _owner; 
    }
    function transferOwnership(address payable newOwner) external onlyOwner { 
        _owner = newOwner; 
        emit OwnershipTransferred(newOwner); 
    }
    function renounceOwnership() external onlyOwner { 
        _owner = address(0); 
        emit OwnershipTransferred(address(0)); 
    }
    event OwnershipTransferred(address _owner);
}

contract Pot is IERC20, Auth {
    uint8 private constant _decimals      = 9;
    uint256 private constant _totalSupply = 420690000 * (10**_decimals);
    string private constant _name         = "Proof of Trump";
    string private constant _symbol       = "POT";

    uint8 private antiSnipeTax1 = 35;
    uint8 private antiSnipeTax2 = 25;
    uint8 private antiSnipeBlocks1 = 2;
    uint8 private antiSnipeBlocks2 = 2;

    uint8 private _buyTaxRate  = 15;
    uint8 private _sellTaxRate = 25;

    address payable private _walletMarketing = payable(0x1b2b20A7B804b7CBD53BDA6DBB47eB2Ee4295A9d); 

    uint256 private _launchBlock;
    uint256 private _maxTxAmount     = _totalSupply; 
    uint256 private _maxWalletAmount = _totalSupply;
    uint256 private _taxSwapMin = _totalSupply * 10 / 100000;
    uint256 private _taxSwapMax = _totalSupply * 499 / 100000;

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

    address private _lpOwner;

    address private constant _swapRouterAddress = address(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    IUniswapV2Router02 private _primarySwapRouter = IUniswapV2Router02(_swapRouterAddress);
    address private _primaryLP;
    mapping (address => bool) private _isLP;

    bool private _tradingOpen;

    bool private _inTaxSwap = false;
    modifier lockTaxSwap { 
        _inTaxSwap = true; 
        _; 
        _inTaxSwap = false; 
    }

    event TokensAirdropped(uint256 totalWallets, uint256 totalTokens);
    event TokensBurned(address indexed burnedByWallet, uint256 tokenAmount);

    constructor() Auth(msg.sender) {
        _lpOwner = msg.sender;

        _balances[_owner] = _totalSupply;
        emit Transfer(address(0), _owner, _balances[_owner]);

        _noFees[_owner] = true;
        _noFees[address(this)] = true;
        _noFees[_swapRouterAddress] = true;
        _noFees[_walletMarketing] = true;
        _noLimits[_owner] = true;
        _noLimits[address(this)] = true;
        _noLimits[_swapRouterAddress] = true;
        _noLimits[_walletMarketing] = true;
    }

    receive() external payable {}
    
    function totalSupply() external pure override returns (uint256) { return _totalSupply; }
    function decimals() external pure override returns (uint8) { return _decimals; }
    function symbol() external pure override returns (string memory) { return _symbol; }
    function name() external pure override returns (string memory) { return _name; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function allowance(address holder, address spender) external view override returns (uint256) { return _allowances[holder][spender]; }

    function approve(address spender, uint256 amount) public override returns (bool) {
        _allowances[msg.sender][spender] = amount;
        emit Approval(msg.sender, spender, amount);
        return true;
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(msg.sender), "Trading not open");
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        require(_checkTradingOpen(sender), "Trading not open");
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] -= amount;
        }
        return _transferFrom(sender, recipient, amount);
    }

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

    function addLiquidity() external payable onlyOwner lockTaxSwap {
        require(_primaryLP == address(0), "LP exists");
        require(!_tradingOpen, "trading is open");
        require(msg.value > 0 || address(this).balance>0, "No ETH in contract or message");
        require(_balances[address(this)]>0, "No tokens in contract");
        _primaryLP = IUniswapV2Factory(_primarySwapRouter.factory()).createPair(address(this), _primarySwapRouter.WETH());
        _addLiquidity(_balances[address(this)], address(this).balance, false);
        _isLP[_primaryLP] = true;
    }

    function _addLiquidity(uint256 _tokenAmount, uint256 _ethAmountWei, bool autoburn) internal {
        address lpTokenRecipient = _lpOwner;
        if ( autoburn ) { lpTokenRecipient = address(0); }
        _approveRouter(_tokenAmount);
        _primarySwapRouter.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, lpTokenRecipient, block.timestamp );
    }

    function enableTrading() external onlyOwner {
        require(!_tradingOpen, "trading is open");
        _openTrading();
    }

    function _openTrading() internal {
        _maxTxAmount     = _totalSupply * 5 / 1000; 
        _maxWalletAmount = _totalSupply * 5 / 1000;
        _tradingOpen = true;
        _launchBlock = block.number;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(sender != address(0), "No transfers from Zero wallet");
        if (!_tradingOpen) { require(_noFees[sender] && _noLimits[sender], "Trading not open"); }
        if ( !_inTaxSwap && _isLP[recipient] ) { _swapTaxAndLiquify(); }
        
        if ( sender != address(this) && recipient != address(this) && sender != _owner ) { 
            require(_checkLimits(sender, recipient, amount), "TX exceeds limits"); 
        }
        uint256 _taxAmount = _calculateTax(sender, recipient, amount);
        uint256 _transferAmount = amount - _taxAmount;
        _balances[sender] = _balances[sender] - amount;
        if ( _taxAmount > 0 ) { _balances[address(this)] += _taxAmount; }
        _balances[recipient] += _transferAmount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function _checkLimits(address sender, address recipient, uint256 transferAmount) internal view returns (bool) {
        bool limitCheckPassed = true;
        if ( _tradingOpen && !_noLimits[sender] && !_noLimits[recipient] ) {
            if ( transferAmount > _maxTxAmount ) { 
                limitCheckPassed = false; 
            }
            else if ( !_isLP[recipient] && (_balances[recipient] + transferAmount > _maxWalletAmount) ) { 
                limitCheckPassed = false; 
            }
        }
        return limitCheckPassed;
    }

    function _checkTradingOpen(address sender) private view returns (bool){
        bool checkResult = false;
        if ( _tradingOpen ) { checkResult = true; } 
        else if (_noFees[sender] && _noLimits[sender]) { checkResult = true; } 
        return checkResult;
    }

    function _calculateTax(address sender, address recipient, uint256 amount) internal view returns (uint256) {
        uint256 taxAmount;
        if ( !_tradingOpen || _noFees[sender] || _noFees[recipient] ) { 
            taxAmount = 0; 
        } else if ( _isLP[sender] ) { 
            if ( block.number >= _launchBlock + antiSnipeBlocks1 + antiSnipeBlocks2 ) {
                taxAmount = amount * _buyTaxRate / 100; 
            } else if ( block.number >= _launchBlock + antiSnipeBlocks1 ) {
                taxAmount = amount * antiSnipeTax2 / 100;
            } else if ( block.number >= _launchBlock) {
                taxAmount = amount * antiSnipeTax1 / 100;
            }
        } else if ( _isLP[recipient] ) { 
            taxAmount = amount * _sellTaxRate / 100; 
        }
        return taxAmount;
    }

    function exemptFromFees(address wallet) external view returns (bool) {
        return _noFees[wallet];
    } 
    function exemptFromLimits(address wallet) external view returns (bool) {
        return _noLimits[wallet];
    } 
    function setExempt(address wallet, bool noFees, bool noLimits) external onlyOwner {
        if (noLimits || noFees) { require(!_isLP[wallet], "Cannot exempt LP"); }
        _noFees[ wallet ] = noFees;
        _noLimits[ wallet ] = noLimits;
    }

    function buyFee() external view returns(uint8) {
        return _buyTaxRate;
    }
    function sellFee() external view returns(uint8) {
        return _sellTaxRate;
    }

    function setFees(uint8 buy, uint8 sell) external onlyOwner {
        require(buy + sell <= 40, "Roundtrip too high");
        _buyTaxRate = buy;
        _sellTaxRate = sell;
    }  

    function marketingWallet() external view returns (address) {
        return _walletMarketing;
    }

    function updateWallet(address marketing) external onlyOwner {
        require(!_isLP[marketing], "LP cannot be tax wallet");
        _walletMarketing = payable(marketing);
        _noFees[marketing] = true;
        _noLimits[marketing] = true;
    }

    function maxWallet() external view returns (uint256) {
        return _maxWalletAmount;
    }
    function maxTransaction() external view returns (uint256) {
        return _maxTxAmount;
    }

    function swapAtMin() external view returns (uint256) {
        return _taxSwapMin;
    }
    function swapAtMax() external view returns (uint256) {
        return _taxSwapMax;
    }

    function setLimits(uint16 maxTransactionPermille, uint16 maxWalletPermille) external onlyOwner {
        uint256 newTxAmt = _totalSupply * maxTransactionPermille / 1000 + 1;
        require(newTxAmt >= _maxTxAmount, "tx too low");
        _maxTxAmount = newTxAmt;
        uint256 newWalletAmt = _totalSupply * maxWalletPermille / 1000 + 1;
        require(newWalletAmt >= _maxWalletAmount, "wallet too low");
        _maxWalletAmount = newWalletAmt;
    }

    function setTaxSwap(uint32 minValue, uint32 minDivider, uint32 maxValue, uint32 maxDivider) external onlyOwner {
        _taxSwapMin = _totalSupply * minValue / minDivider;
        _taxSwapMax = _totalSupply * maxValue / maxDivider;
        require(_taxSwapMax>=_taxSwapMin, "Min/Max error");
        require(_taxSwapMax>_totalSupply / 100000, "Max too low");
        require(_taxSwapMax<_totalSupply / 100, "Max too high");
    }

    function _swapTaxAndLiquify() private lockTaxSwap {
        uint256 _taxTokensAvailable = balanceOf(address(this));

        if ( _taxTokensAvailable >= _taxSwapMin && _tradingOpen ) {
            if ( _taxTokensAvailable >= _taxSwapMax ) { _taxTokensAvailable = _taxSwapMax; }
            uint256 _tokensToSwap = _taxTokensAvailable;
            if( _tokensToSwap > 10**_decimals ) {
                _swapTaxTokensForEth(_tokensToSwap);
            }
            uint256 _contractETHBalance = address(this).balance;
            if(_contractETHBalance > 0) { _walletMarketing.transfer(_contractETHBalance); }
        }
    }

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

    function manualTaxSwapAndSend(uint8 swapTokenPercent, bool sendEth) external onlyOwner lockTaxSwap {
        require(swapTokenPercent <= 100, "Cannot swap more than 100%");
        uint256 tokensToSwap = balanceOf(address(this)) * swapTokenPercent / 100;
        if (tokensToSwap > 10 ** _decimals) {
            _swapTaxTokensForEth(tokensToSwap);
        }
        if (sendEth) { 
            uint256 ethBalance = address(this).balance;
            require(ethBalance > 0, "No ETH");
            _walletMarketing.transfer(ethBalance);
        }
    }

    function burn(uint256 amount) external onlyOwner {
        uint256 _tokensAvailable = balanceOf(msg.sender);
        require(amount <= _tokensAvailable, "balance too low");
        if ( amount > 0 ) {
            _balances[msg.sender] -= amount;
            _balances[address(0)] += amount;
            emit Transfer(msg.sender, address(0), amount);
            emit TokensBurned(msg.sender, amount);
        }
    }
}

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":false,"internalType":"uint256","name":"totalWallets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalTokens","type":"uint256"}],"name":"TokensAirdropped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"burnedByWallet","type":"address"},{"indexed":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"TokensBurned","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":"addLiquidity","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"exemptFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"exemptFromLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint8","name":"swapTokenPercent","type":"uint8"},{"internalType":"bool","name":"sendEth","type":"bool"}],"name":"manualTaxSwapAndSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransaction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","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":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"},{"internalType":"bool","name":"noFees","type":"bool"},{"internalType":"bool","name":"noLimits","type":"bool"}],"name":"setExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"buy","type":"uint8"},{"internalType":"uint8","name":"sell","type":"uint8"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxTransactionPermille","type":"uint16"},{"internalType":"uint16","name":"maxWalletPermille","type":"uint16"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"minValue","type":"uint32"},{"internalType":"uint32","name":"minDivider","type":"uint32"},{"internalType":"uint32","name":"maxValue","type":"uint32"},{"internalType":"uint32","name":"maxDivider","type":"uint32"}],"name":"setTaxSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAtMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapAtMin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketing","type":"address"}],"name":"updateWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040525f805465190f0202192360a01b65ffffffffffff60a01b19909116179055600180546001600160a01b031916731b2b20a7b804b7cbd53bda6dbb47eb2ee4295a9d179055620000566009600a620003cf565b62000066906319133850620003e6565b600355620000776009600a620003cf565b62000087906319133850620003e6565b600455620186a06200009c6009600a620003cf565b620000ac906319133850620003e6565b620000b990600a620003e6565b620000c5919062000400565b600555620186a0620000da6009600a620003cf565b620000ea906319133850620003e6565b620000f8906101f3620003e6565b62000104919062000400565b600655600c80546001600160a01b031916737a250d5630b4cf539739df2c5dacb4c659f2488d179055600f805461ff001916905534801562000144575f80fd5b505f8054336001600160a01b03199182168117909255600b80549091169091179055620001746009600a620003cf565b62000184906319133850620003e6565b5f80546001600160a01b039081168252600760205260408083209390935581541680825282822054925190927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91620001df91815260200190565b60405180910390a35f80546001600160a01b0390811682526009602090815260408084208054600160ff1991821681179092553080875283872080548316841790557fbaa441ac52505693dd98c7dd2f5bbf8f9349b7da9de72f9d52e5cac70e7da8ce80548316841790558254861687528387208054831684179055865486168752600a909452828620805482168317905592855281852080548416821790557fc90215bb1b0ac6bfa50a3c02c4b559c695b6a8e828048a88e327592fc55c5d2c805484168217905580549093168452909220805490921617905562000420565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200031457815f1904821115620002f857620002f8620002c0565b808516156200030657918102915b93841c9390800290620002d9565b509250929050565b5f826200032c57506001620003c9565b816200033a57505f620003c9565b81600181146200035357600281146200035e576200037e565b6001915050620003c9565b60ff841115620003725762000372620002c0565b50506001821b620003c9565b5060208310610133831016604e8410600b8410161715620003a3575081810a620003c9565b620003af8383620002d4565b805f1904821115620003c557620003c5620002c0565b0290505b92915050565b5f620003df60ff8416836200031c565b9392505050565b8082028115828204841417620003c957620003c9620002c0565b5f826200041b57634e487b7160e01b5f52601260045260245ffd5b500490565b61224b806200042e5f395ff3fe6080604052600436106101c8575f3560e01c806370a08231116100f257806395d89b4111610092578063dd62ed3e11610062578063dd62ed3e1461055e578063e8078d94146105a2578063f2fde38b146105aa578063f8b45b05146105c9575f80fd5b806395d89b41146104e1578063a6097b0a1461050c578063a9059cbb1461052b578063c3f70b521461054a575f80fd5b8063848b86e3116100cd578063848b86e31461045b5780638a8c523c1461047a5780638d3e6e401461048e5780638da5cb5b146104c5575f80fd5b806370a08231146103e2578063715018a61461041657806375f0a8741461042a575f80fd5b8063368f4800116101685780634d4ce935116101385780634d4ce935146103595780634fcd24461461036d57806357ff135a1461038c5780635a90a49e146103ab575f80fd5b8063368f4800146102ea57806342966c681461030957806346b8983414610328578063470624021461033c575f80fd5b806323b872dd116101a357806323b872dd1461026c5780632b14ca561461028b5780632fb528ba146102b6578063313ce567146102d7575f80fd5b806306fdde03146101d3578063095ea7b31461021b57806318160ddd1461024a575f80fd5b366101cf57005b5f80fd5b3480156101de575f80fd5b5060408051808201909152600e81526d050726f6f66206f66205472756d760941b60208201525b6040516102129190611ce8565b60405180910390f35b348015610226575f80fd5b5061023a610235366004611d47565b6105dd565b6040519015158152602001610212565b348015610255575f80fd5b5061025e610649565b604051908152602001610212565b348015610277575f80fd5b5061023a610286366004611d71565b610669565b348015610296575f80fd5b505f54600160c81b900460ff165b60405160ff9091168152602001610212565b3480156102c1575f80fd5b506102d56102d0366004611dd3565b61070d565b005b3480156102e2575f80fd5b5060096102a4565b3480156102f5575f80fd5b506102d5610304366004611e15565b610868565b348015610314575f80fd5b506102d5610323366004611e3d565b6109a8565b348015610333575f80fd5b5060055461025e565b348015610347575f80fd5b505f54600160c01b900460ff166102a4565b348015610364575f80fd5b5060065461025e565b348015610378575f80fd5b506102d5610387366004611e54565b610afb565b348015610397575f80fd5b506102d56103a6366004611e7c565b610ba9565b3480156103b6575f80fd5b5061023a6103c5366004611ebe565b6001600160a01b03165f9081526009602052604090205460ff1690565b3480156103ed575f80fd5b5061025e6103fc366004611ebe565b6001600160a01b03165f9081526007602052604090205490565b348015610421575f80fd5b506102d5610c7c565b348015610435575f80fd5b506001546001600160a01b03165b6040516001600160a01b039091168152602001610212565b348015610466575f80fd5b506102d5610475366004611ebe565b610ce9565b348015610485575f80fd5b506102d5610dc8565b348015610499575f80fd5b5061023a6104a8366004611ebe565b6001600160a01b03165f908152600a602052604090205460ff1690565b3480156104d0575f80fd5b505f546001600160a01b0316610443565b3480156104ec575f80fd5b506040805180820190915260038152621413d560ea1b6020820152610205565b348015610517575f80fd5b506102d5610526366004611eec565b610e40565b348015610536575f80fd5b5061023a610545366004611d47565b610ff5565b348015610555575f80fd5b5060035461025e565b348015610569575f80fd5b5061025e610578366004611f3d565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b6102d561102d565b3480156105b5575f80fd5b506102d56105c4366004611ebe565b61136b565b3480156105d4575f80fd5b5060045461025e565b335f8181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106379086815260200190565b60405180910390a35060015b92915050565b5f6106566009600a612068565b610664906319133850612076565b905090565b5f610673846113e7565b6106985760405162461bcd60e51b815260040161068f9061208d565b60405180910390fd5b6001600160a01b0384165f9081526008602090815260408083203384529091529020545f19146106fa576001600160a01b0384165f908152600860209081526040808320338452909152812080548492906106f49084906120b7565b90915550505b61070584848461144a565b949350505050565b5f546001600160a01b031633146107365760405162461bcd60e51b815260040161068f906120ca565b600f805461ff001916610100179055606460ff831611156107995760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f742073776170206d6f7265207468616e2031303025000000000000604482015260640161068f565b305f908152600760205260408120546064906107b99060ff861690612076565b6107c39190612101565b90506107d16009600a612068565b8111156107e1576107e1816116d4565b811561085857478061081e5760405162461bcd60e51b815260206004820152600660248201526509cde408aa8960d31b604482015260640161068f565b6001546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610855573d5f803e3d5ffd5b50505b5050600f805461ff001916905550565b5f546001600160a01b031633146108915760405162461bcd60e51b815260040161068f906120ca565b5f6103e861ffff84166108a66009600a612068565b6108b4906319133850612076565b6108be9190612076565b6108c89190612101565b6108d3906001612120565b90506003548110156109145760405162461bcd60e51b815260206004820152600a602482015269747820746f6f206c6f7760b01b604482015260640161068f565b60038190555f6103e861ffff841661092e6009600a612068565b61093c906319133850612076565b6109469190612076565b6109509190612101565b61095b906001612120565b90506004548110156109a05760405162461bcd60e51b815260206004820152600e60248201526d77616c6c657420746f6f206c6f7760901b604482015260640161068f565b600455505050565b5f546001600160a01b031633146109d15760405162461bcd60e51b815260040161068f906120ca565b335f9081526007602052604090205480821115610a225760405162461bcd60e51b815260206004820152600f60248201526e62616c616e636520746f6f206c6f7760881b604482015260640161068f565b8115610af757335f9081526007602052604081208054849290610a469084906120b7565b90915550505f80805260076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df8054849290610a85908490612120565b90915550506040518281525f9033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a360405182815233907ffd38818f5291bf0bb3a2a48aadc06ba8757865d1dabd804585338aab3009dcb69060200160405180910390a25b5050565b5f546001600160a01b03163314610b245760405162461bcd60e51b815260040161068f906120ca565b6028610b308284612133565b60ff161115610b765760405162461bcd60e51b81526020600482015260126024820152710a4deeadcc8e8e4d2e040e8dede40d0d2ced60731b604482015260640161068f565b5f805461ffff60c01b1916600160c01b60ff9485160260ff60c81b191617600160c81b9290931691909102919091179055565b5f546001600160a01b03163314610bd25760405162461bcd60e51b815260040161068f906120ca565b8080610bdb5750815b15610c3b576001600160a01b0383165f908152600e602052604090205460ff1615610c3b5760405162461bcd60e51b815260206004820152601060248201526f043616e6e6f74206578656d7074204c560841b604482015260640161068f565b6001600160a01b039092165f908152600960209081526040808320805494151560ff19958616179055600a9091529020805492151592909116919091179055565b5f546001600160a01b03163314610ca55760405162461bcd60e51b815260040161068f906120ca565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b03163314610d125760405162461bcd60e51b815260040161068f906120ca565b6001600160a01b0381165f908152600e602052604090205460ff1615610d7a5760405162461bcd60e51b815260206004820152601760248201527f4c502063616e6e6f74206265207461782077616c6c6574000000000000000000604482015260640161068f565b600180546001600160a01b039092166001600160a01b0319909216821781555f918252600960209081526040808420805460ff199081168517909155600a9092529092208054909216179055565b5f546001600160a01b03163314610df15760405162461bcd60e51b815260040161068f906120ca565b600f5460ff1615610e365760405162461bcd60e51b815260206004820152600f60248201526e3a3930b234b7339034b99037b832b760891b604482015260640161068f565b610e3e611814565b565b5f546001600160a01b03163314610e695760405162461bcd60e51b815260040161068f906120ca565b63ffffffff808416908516610e806009600a612068565b610e8e906319133850612076565b610e989190612076565b610ea29190612101565b60055563ffffffff808216908316610ebc6009600a612068565b610eca906319133850612076565b610ed49190612076565b610ede9190612101565b60068190556005541115610f245760405162461bcd60e51b815260206004820152600d60248201526c26b4b717a6b0bc1032b93937b960991b604482015260640161068f565b620186a0610f346009600a612068565b610f42906319133850612076565b610f4c9190612101565b60065411610f8a5760405162461bcd60e51b815260206004820152600b60248201526a4d617820746f6f206c6f7760a81b604482015260640161068f565b6064610f986009600a612068565b610fa6906319133850612076565b610fb09190612101565b60065410610fef5760405162461bcd60e51b815260206004820152600c60248201526b09ac2f040e8dede40d0d2ced60a31b604482015260640161068f565b50505050565b5f610fff336113e7565b61101b5760405162461bcd60e51b815260040161068f9061208d565b61102633848461144a565b9392505050565b5f546001600160a01b031633146110565760405162461bcd60e51b815260040161068f906120ca565b600f805461ff001916610100179055600d546001600160a01b0316156110aa5760405162461bcd60e51b81526020600482015260096024820152684c502065786973747360b81b604482015260640161068f565b600f5460ff16156110ef5760405162461bcd60e51b815260206004820152600f60248201526e3a3930b234b7339034b99037b832b760891b604482015260640161068f565b5f3411806110fc57505f47115b6111485760405162461bcd60e51b815260206004820152601d60248201527f4e6f2045544820696e20636f6e7472616374206f72206d657373616765000000604482015260640161068f565b305f9081526007602052604090205461119b5760405162461bcd60e51b8152602060048201526015602482015274139bc81d1bdad95b9cc81a5b8818dbdb9d1c9858dd605a1b604482015260640161068f565b600c5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061120f919061214c565b6001600160a01b031663c9c6539630600c5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561126e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611292919061214c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156112dc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611300919061214c565b600d80546001600160a01b0319166001600160a01b0392909216919091179055305f9081526007602052604081205461133a914790611891565b600d546001600160a01b03165f908152600e60205260409020805460ff19166001179055600f805461ff0019169055565b5f546001600160a01b031633146113945760405162461bcd60e51b815260040161068f906120ca565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b600f545f90819060ff16156113fe57506001610643565b6001600160a01b0383165f9081526009602052604090205460ff16801561143c57506001600160a01b0383165f908152600a602052604090205460ff165b156106435750600192915050565b5f6001600160a01b0384166114a15760405162461bcd60e51b815260206004820152601d60248201527f4e6f207472616e73666572732066726f6d205a65726f2077616c6c6574000000604482015260640161068f565b600f5460ff16611505576001600160a01b0384165f9081526009602052604090205460ff1680156114e957506001600160a01b0384165f908152600a602052604090205460ff165b6115055760405162461bcd60e51b815260040161068f9061208d565b600f54610100900460ff1615801561153457506001600160a01b0383165f908152600e602052604090205460ff165b1561154157611541611948565b6001600160a01b038416301480159061156357506001600160a01b0383163014155b801561157c57505f546001600160a01b03858116911614155b156115cc5761158c8484846119fd565b6115cc5760405162461bcd60e51b815260206004820152601160248201527054582065786365656473206c696d69747360781b604482015260640161068f565b5f6115d8858585611ac0565b90505f6115e582856120b7565b6001600160a01b0387165f9081526007602052604090205490915061160b9085906120b7565b6001600160a01b0387165f90815260076020526040902055811561164d57305f9081526007602052604081208054849290611647908490612120565b90915550505b6001600160a01b0385165f9081526007602052604081208054839290611674908490612120565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516116c091815260200190565b60405180910390a350600195945050505050565b6116dd81611c46565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061171057611710612167565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611767573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061178b919061214c565b8160018151811061179e5761179e612167565b6001600160a01b039283166020918202929092010152600c5460405163791ac94760e01b815291169063791ac947906117e39085905f9086903090429060040161217b565b5f604051808303815f87803b1580156117fa575f80fd5b505af115801561180c573d5f803e3d5ffd5b505050505050565b6103e86118236009600a612068565b611831906319133850612076565b61183c906005612076565b6118469190612101565b6003556103e86118586009600a612068565b611866906319133850612076565b611871906005612076565b61187b9190612101565b600455600f805460ff1916600117905543600255565b600b546001600160a01b031681156118a657505f5b6118af84611c46565b600c5460405163f305d71960e01b8152306004820152602481018690525f6044820181905260648201526001600160a01b0383811660848301524260a48301529091169063f305d71990859060c40160606040518083038185885af115801561191a573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061193f91906121ea565b50505050505050565b600f805461ff001916610100179055305f908152600760205260408120549050600554811015801561197c5750600f5460ff165b156119ef57600654811061198f57506006545b8061199c6009600a612068565b8111156119ac576119ac816116d4565b4780156119ec576001546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156119ea573d5f803e3d5ffd5b505b50505b50600f805461ff0019169055565b600f545f9060019060ff168015611a2c57506001600160a01b0385165f908152600a602052604090205460ff16155b8015611a5057506001600160a01b0384165f908152600a602052604090205460ff16155b1561070557600354831115611a6657505f610705565b6001600160a01b0384165f908152600e602052604090205460ff16158015611ab157506004546001600160a01b0385165f90815260076020526040902054611aaf908590612120565b115b1561070557505f949350505050565b600f545f90819060ff161580611aed57506001600160a01b0385165f9081526009602052604090205460ff165b80611b0f57506001600160a01b0384165f9081526009602052604090205460ff165b15611b1b57505f610705565b6001600160a01b0385165f908152600e602052604090205460ff1615611bfa575f5460025460ff600160b81b8304811692611b6192600160b01b90910490911690612120565b611b6b9190612120565b4310611b9b575f54606490611b8a90600160c01b900460ff1685612076565b611b949190612101565b9050610705565b5f54600254611bb491600160b01b900460ff1690612120565b4310611bd3575f54606490611b8a90600160a81b900460ff1685612076565b6002544310611bf5575f54606490611b8a90600160a01b900460ff1685612076565b610705565b6001600160a01b0384165f908152600e602052604090205460ff1615610705575f54606490611c3390600160c81b900460ff1685612076565b611c3d9190612101565b95945050505050565b305f908152600860209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d8452909152902054811115611ce557305f818152600860209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190205f199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b50565b5f6020808352835180828501525f5b81811015611d1357858101830151858201604001528201611cf7565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611ce5575f80fd5b5f8060408385031215611d58575f80fd5b8235611d6381611d33565b946020939093013593505050565b5f805f60608486031215611d83575f80fd5b8335611d8e81611d33565b92506020840135611d9e81611d33565b929592945050506040919091013590565b803560ff81168114611dbf575f80fd5b919050565b80358015158114611dbf575f80fd5b5f8060408385031215611de4575f80fd5b611ded83611daf565b9150611dfb60208401611dc4565b90509250929050565b803561ffff81168114611dbf575f80fd5b5f8060408385031215611e26575f80fd5b611e2f83611e04565b9150611dfb60208401611e04565b5f60208284031215611e4d575f80fd5b5035919050565b5f8060408385031215611e65575f80fd5b611e6e83611daf565b9150611dfb60208401611daf565b5f805f60608486031215611e8e575f80fd5b8335611e9981611d33565b9250611ea760208501611dc4565b9150611eb560408501611dc4565b90509250925092565b5f60208284031215611ece575f80fd5b813561102681611d33565b803563ffffffff81168114611dbf575f80fd5b5f805f8060808587031215611eff575f80fd5b611f0885611ed9565b9350611f1660208601611ed9565b9250611f2460408601611ed9565b9150611f3260608601611ed9565b905092959194509250565b5f8060408385031215611f4e575f80fd5b8235611f5981611d33565b91506020830135611f6981611d33565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611fc257815f1904821115611fa857611fa8611f74565b80851615611fb557918102915b93841c9390800290611f8d565b509250929050565b5f82611fd857506001610643565b81611fe457505f610643565b8160018114611ffa576002811461200457612020565b6001915050610643565b60ff84111561201557612015611f74565b50506001821b610643565b5060208310610133831016604e8410600b8410161715612043575081810a610643565b61204d8383611f88565b805f190482111561206057612060611f74565b029392505050565b5f61102660ff841683611fca565b808202811582820484141761064357610643611f74565b60208082526010908201526f2a3930b234b733903737ba1037b832b760811b604082015260600190565b8181038181111561064357610643611f74565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b5f8261211b57634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561064357610643611f74565b60ff818116838216019081111561064357610643611f74565b5f6020828403121561215c575f80fd5b815161102681611d33565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156121c95784516001600160a01b0316835293830193918301916001016121a4565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f606084860312156121fc575f80fd5b835192506020840151915060408401519050925092509256fea264697066735822122064052950adbaa8def243662368279b42ea53f9ae6570ceaef7df45da90980a5c64736f6c63430008150033

Deployed Bytecode

0x6080604052600436106101c8575f3560e01c806370a08231116100f257806395d89b4111610092578063dd62ed3e11610062578063dd62ed3e1461055e578063e8078d94146105a2578063f2fde38b146105aa578063f8b45b05146105c9575f80fd5b806395d89b41146104e1578063a6097b0a1461050c578063a9059cbb1461052b578063c3f70b521461054a575f80fd5b8063848b86e3116100cd578063848b86e31461045b5780638a8c523c1461047a5780638d3e6e401461048e5780638da5cb5b146104c5575f80fd5b806370a08231146103e2578063715018a61461041657806375f0a8741461042a575f80fd5b8063368f4800116101685780634d4ce935116101385780634d4ce935146103595780634fcd24461461036d57806357ff135a1461038c5780635a90a49e146103ab575f80fd5b8063368f4800146102ea57806342966c681461030957806346b8983414610328578063470624021461033c575f80fd5b806323b872dd116101a357806323b872dd1461026c5780632b14ca561461028b5780632fb528ba146102b6578063313ce567146102d7575f80fd5b806306fdde03146101d3578063095ea7b31461021b57806318160ddd1461024a575f80fd5b366101cf57005b5f80fd5b3480156101de575f80fd5b5060408051808201909152600e81526d050726f6f66206f66205472756d760941b60208201525b6040516102129190611ce8565b60405180910390f35b348015610226575f80fd5b5061023a610235366004611d47565b6105dd565b6040519015158152602001610212565b348015610255575f80fd5b5061025e610649565b604051908152602001610212565b348015610277575f80fd5b5061023a610286366004611d71565b610669565b348015610296575f80fd5b505f54600160c81b900460ff165b60405160ff9091168152602001610212565b3480156102c1575f80fd5b506102d56102d0366004611dd3565b61070d565b005b3480156102e2575f80fd5b5060096102a4565b3480156102f5575f80fd5b506102d5610304366004611e15565b610868565b348015610314575f80fd5b506102d5610323366004611e3d565b6109a8565b348015610333575f80fd5b5060055461025e565b348015610347575f80fd5b505f54600160c01b900460ff166102a4565b348015610364575f80fd5b5060065461025e565b348015610378575f80fd5b506102d5610387366004611e54565b610afb565b348015610397575f80fd5b506102d56103a6366004611e7c565b610ba9565b3480156103b6575f80fd5b5061023a6103c5366004611ebe565b6001600160a01b03165f9081526009602052604090205460ff1690565b3480156103ed575f80fd5b5061025e6103fc366004611ebe565b6001600160a01b03165f9081526007602052604090205490565b348015610421575f80fd5b506102d5610c7c565b348015610435575f80fd5b506001546001600160a01b03165b6040516001600160a01b039091168152602001610212565b348015610466575f80fd5b506102d5610475366004611ebe565b610ce9565b348015610485575f80fd5b506102d5610dc8565b348015610499575f80fd5b5061023a6104a8366004611ebe565b6001600160a01b03165f908152600a602052604090205460ff1690565b3480156104d0575f80fd5b505f546001600160a01b0316610443565b3480156104ec575f80fd5b506040805180820190915260038152621413d560ea1b6020820152610205565b348015610517575f80fd5b506102d5610526366004611eec565b610e40565b348015610536575f80fd5b5061023a610545366004611d47565b610ff5565b348015610555575f80fd5b5060035461025e565b348015610569575f80fd5b5061025e610578366004611f3d565b6001600160a01b039182165f90815260086020908152604080832093909416825291909152205490565b6102d561102d565b3480156105b5575f80fd5b506102d56105c4366004611ebe565b61136b565b3480156105d4575f80fd5b5060045461025e565b335f8181526008602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906106379086815260200190565b60405180910390a35060015b92915050565b5f6106566009600a612068565b610664906319133850612076565b905090565b5f610673846113e7565b6106985760405162461bcd60e51b815260040161068f9061208d565b60405180910390fd5b6001600160a01b0384165f9081526008602090815260408083203384529091529020545f19146106fa576001600160a01b0384165f908152600860209081526040808320338452909152812080548492906106f49084906120b7565b90915550505b61070584848461144a565b949350505050565b5f546001600160a01b031633146107365760405162461bcd60e51b815260040161068f906120ca565b600f805461ff001916610100179055606460ff831611156107995760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f742073776170206d6f7265207468616e2031303025000000000000604482015260640161068f565b305f908152600760205260408120546064906107b99060ff861690612076565b6107c39190612101565b90506107d16009600a612068565b8111156107e1576107e1816116d4565b811561085857478061081e5760405162461bcd60e51b815260206004820152600660248201526509cde408aa8960d31b604482015260640161068f565b6001546040516001600160a01b039091169082156108fc029083905f818181858888f19350505050158015610855573d5f803e3d5ffd5b50505b5050600f805461ff001916905550565b5f546001600160a01b031633146108915760405162461bcd60e51b815260040161068f906120ca565b5f6103e861ffff84166108a66009600a612068565b6108b4906319133850612076565b6108be9190612076565b6108c89190612101565b6108d3906001612120565b90506003548110156109145760405162461bcd60e51b815260206004820152600a602482015269747820746f6f206c6f7760b01b604482015260640161068f565b60038190555f6103e861ffff841661092e6009600a612068565b61093c906319133850612076565b6109469190612076565b6109509190612101565b61095b906001612120565b90506004548110156109a05760405162461bcd60e51b815260206004820152600e60248201526d77616c6c657420746f6f206c6f7760901b604482015260640161068f565b600455505050565b5f546001600160a01b031633146109d15760405162461bcd60e51b815260040161068f906120ca565b335f9081526007602052604090205480821115610a225760405162461bcd60e51b815260206004820152600f60248201526e62616c616e636520746f6f206c6f7760881b604482015260640161068f565b8115610af757335f9081526007602052604081208054849290610a469084906120b7565b90915550505f80805260076020527f6d5257204ebe7d88fd91ae87941cb2dd9d8062b64ae5a2bd2d28ec40b9fbf6df8054849290610a85908490612120565b90915550506040518281525f9033907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a360405182815233907ffd38818f5291bf0bb3a2a48aadc06ba8757865d1dabd804585338aab3009dcb69060200160405180910390a25b5050565b5f546001600160a01b03163314610b245760405162461bcd60e51b815260040161068f906120ca565b6028610b308284612133565b60ff161115610b765760405162461bcd60e51b81526020600482015260126024820152710a4deeadcc8e8e4d2e040e8dede40d0d2ced60731b604482015260640161068f565b5f805461ffff60c01b1916600160c01b60ff9485160260ff60c81b191617600160c81b9290931691909102919091179055565b5f546001600160a01b03163314610bd25760405162461bcd60e51b815260040161068f906120ca565b8080610bdb5750815b15610c3b576001600160a01b0383165f908152600e602052604090205460ff1615610c3b5760405162461bcd60e51b815260206004820152601060248201526f043616e6e6f74206578656d7074204c560841b604482015260640161068f565b6001600160a01b039092165f908152600960209081526040808320805494151560ff19958616179055600a9091529020805492151592909116919091179055565b5f546001600160a01b03163314610ca55760405162461bcd60e51b815260040161068f906120ca565b5f80546001600160a01b03191681556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a1565b5f546001600160a01b03163314610d125760405162461bcd60e51b815260040161068f906120ca565b6001600160a01b0381165f908152600e602052604090205460ff1615610d7a5760405162461bcd60e51b815260206004820152601760248201527f4c502063616e6e6f74206265207461782077616c6c6574000000000000000000604482015260640161068f565b600180546001600160a01b039092166001600160a01b0319909216821781555f918252600960209081526040808420805460ff199081168517909155600a9092529092208054909216179055565b5f546001600160a01b03163314610df15760405162461bcd60e51b815260040161068f906120ca565b600f5460ff1615610e365760405162461bcd60e51b815260206004820152600f60248201526e3a3930b234b7339034b99037b832b760891b604482015260640161068f565b610e3e611814565b565b5f546001600160a01b03163314610e695760405162461bcd60e51b815260040161068f906120ca565b63ffffffff808416908516610e806009600a612068565b610e8e906319133850612076565b610e989190612076565b610ea29190612101565b60055563ffffffff808216908316610ebc6009600a612068565b610eca906319133850612076565b610ed49190612076565b610ede9190612101565b60068190556005541115610f245760405162461bcd60e51b815260206004820152600d60248201526c26b4b717a6b0bc1032b93937b960991b604482015260640161068f565b620186a0610f346009600a612068565b610f42906319133850612076565b610f4c9190612101565b60065411610f8a5760405162461bcd60e51b815260206004820152600b60248201526a4d617820746f6f206c6f7760a81b604482015260640161068f565b6064610f986009600a612068565b610fa6906319133850612076565b610fb09190612101565b60065410610fef5760405162461bcd60e51b815260206004820152600c60248201526b09ac2f040e8dede40d0d2ced60a31b604482015260640161068f565b50505050565b5f610fff336113e7565b61101b5760405162461bcd60e51b815260040161068f9061208d565b61102633848461144a565b9392505050565b5f546001600160a01b031633146110565760405162461bcd60e51b815260040161068f906120ca565b600f805461ff001916610100179055600d546001600160a01b0316156110aa5760405162461bcd60e51b81526020600482015260096024820152684c502065786973747360b81b604482015260640161068f565b600f5460ff16156110ef5760405162461bcd60e51b815260206004820152600f60248201526e3a3930b234b7339034b99037b832b760891b604482015260640161068f565b5f3411806110fc57505f47115b6111485760405162461bcd60e51b815260206004820152601d60248201527f4e6f2045544820696e20636f6e7472616374206f72206d657373616765000000604482015260640161068f565b305f9081526007602052604090205461119b5760405162461bcd60e51b8152602060048201526015602482015274139bc81d1bdad95b9cc81a5b8818dbdb9d1c9858dd605a1b604482015260640161068f565b600c5f9054906101000a90046001600160a01b03166001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061120f919061214c565b6001600160a01b031663c9c6539630600c5f9054906101000a90046001600160a01b03166001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561126e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611292919061214c565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303815f875af11580156112dc573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611300919061214c565b600d80546001600160a01b0319166001600160a01b0392909216919091179055305f9081526007602052604081205461133a914790611891565b600d546001600160a01b03165f908152600e60205260409020805460ff19166001179055600f805461ff0019169055565b5f546001600160a01b031633146113945760405162461bcd60e51b815260040161068f906120ca565b5f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861639060200160405180910390a150565b600f545f90819060ff16156113fe57506001610643565b6001600160a01b0383165f9081526009602052604090205460ff16801561143c57506001600160a01b0383165f908152600a602052604090205460ff165b156106435750600192915050565b5f6001600160a01b0384166114a15760405162461bcd60e51b815260206004820152601d60248201527f4e6f207472616e73666572732066726f6d205a65726f2077616c6c6574000000604482015260640161068f565b600f5460ff16611505576001600160a01b0384165f9081526009602052604090205460ff1680156114e957506001600160a01b0384165f908152600a602052604090205460ff165b6115055760405162461bcd60e51b815260040161068f9061208d565b600f54610100900460ff1615801561153457506001600160a01b0383165f908152600e602052604090205460ff165b1561154157611541611948565b6001600160a01b038416301480159061156357506001600160a01b0383163014155b801561157c57505f546001600160a01b03858116911614155b156115cc5761158c8484846119fd565b6115cc5760405162461bcd60e51b815260206004820152601160248201527054582065786365656473206c696d69747360781b604482015260640161068f565b5f6115d8858585611ac0565b90505f6115e582856120b7565b6001600160a01b0387165f9081526007602052604090205490915061160b9085906120b7565b6001600160a01b0387165f90815260076020526040902055811561164d57305f9081526007602052604081208054849290611647908490612120565b90915550505b6001600160a01b0385165f9081526007602052604081208054839290611674908490612120565b92505081905550846001600160a01b0316866001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516116c091815260200190565b60405180910390a350600195945050505050565b6116dd81611c46565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061171057611710612167565b6001600160a01b03928316602091820292909201810191909152600c54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015611767573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061178b919061214c565b8160018151811061179e5761179e612167565b6001600160a01b039283166020918202929092010152600c5460405163791ac94760e01b815291169063791ac947906117e39085905f9086903090429060040161217b565b5f604051808303815f87803b1580156117fa575f80fd5b505af115801561180c573d5f803e3d5ffd5b505050505050565b6103e86118236009600a612068565b611831906319133850612076565b61183c906005612076565b6118469190612101565b6003556103e86118586009600a612068565b611866906319133850612076565b611871906005612076565b61187b9190612101565b600455600f805460ff1916600117905543600255565b600b546001600160a01b031681156118a657505f5b6118af84611c46565b600c5460405163f305d71960e01b8152306004820152602481018690525f6044820181905260648201526001600160a01b0383811660848301524260a48301529091169063f305d71990859060c40160606040518083038185885af115801561191a573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061193f91906121ea565b50505050505050565b600f805461ff001916610100179055305f908152600760205260408120549050600554811015801561197c5750600f5460ff165b156119ef57600654811061198f57506006545b8061199c6009600a612068565b8111156119ac576119ac816116d4565b4780156119ec576001546040516001600160a01b039091169082156108fc029083905f818181858888f193505050501580156119ea573d5f803e3d5ffd5b505b50505b50600f805461ff0019169055565b600f545f9060019060ff168015611a2c57506001600160a01b0385165f908152600a602052604090205460ff16155b8015611a5057506001600160a01b0384165f908152600a602052604090205460ff16155b1561070557600354831115611a6657505f610705565b6001600160a01b0384165f908152600e602052604090205460ff16158015611ab157506004546001600160a01b0385165f90815260076020526040902054611aaf908590612120565b115b1561070557505f949350505050565b600f545f90819060ff161580611aed57506001600160a01b0385165f9081526009602052604090205460ff165b80611b0f57506001600160a01b0384165f9081526009602052604090205460ff165b15611b1b57505f610705565b6001600160a01b0385165f908152600e602052604090205460ff1615611bfa575f5460025460ff600160b81b8304811692611b6192600160b01b90910490911690612120565b611b6b9190612120565b4310611b9b575f54606490611b8a90600160c01b900460ff1685612076565b611b949190612101565b9050610705565b5f54600254611bb491600160b01b900460ff1690612120565b4310611bd3575f54606490611b8a90600160a81b900460ff1685612076565b6002544310611bf5575f54606490611b8a90600160a01b900460ff1685612076565b610705565b6001600160a01b0384165f908152600e602052604090205460ff1615610705575f54606490611c3390600160c81b900460ff1685612076565b611c3d9190612101565b95945050505050565b305f908152600860209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d8452909152902054811115611ce557305f818152600860209081526040808320737a250d5630b4cf539739df2c5dacb4c659f2488d808552908352928190205f199081905590519081529192917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35b50565b5f6020808352835180828501525f5b81811015611d1357858101830151858201604001528201611cf7565b505f604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114611ce5575f80fd5b5f8060408385031215611d58575f80fd5b8235611d6381611d33565b946020939093013593505050565b5f805f60608486031215611d83575f80fd5b8335611d8e81611d33565b92506020840135611d9e81611d33565b929592945050506040919091013590565b803560ff81168114611dbf575f80fd5b919050565b80358015158114611dbf575f80fd5b5f8060408385031215611de4575f80fd5b611ded83611daf565b9150611dfb60208401611dc4565b90509250929050565b803561ffff81168114611dbf575f80fd5b5f8060408385031215611e26575f80fd5b611e2f83611e04565b9150611dfb60208401611e04565b5f60208284031215611e4d575f80fd5b5035919050565b5f8060408385031215611e65575f80fd5b611e6e83611daf565b9150611dfb60208401611daf565b5f805f60608486031215611e8e575f80fd5b8335611e9981611d33565b9250611ea760208501611dc4565b9150611eb560408501611dc4565b90509250925092565b5f60208284031215611ece575f80fd5b813561102681611d33565b803563ffffffff81168114611dbf575f80fd5b5f805f8060808587031215611eff575f80fd5b611f0885611ed9565b9350611f1660208601611ed9565b9250611f2460408601611ed9565b9150611f3260608601611ed9565b905092959194509250565b5f8060408385031215611f4e575f80fd5b8235611f5981611d33565b91506020830135611f6981611d33565b809150509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115611fc257815f1904821115611fa857611fa8611f74565b80851615611fb557918102915b93841c9390800290611f8d565b509250929050565b5f82611fd857506001610643565b81611fe457505f610643565b8160018114611ffa576002811461200457612020565b6001915050610643565b60ff84111561201557612015611f74565b50506001821b610643565b5060208310610133831016604e8410600b8410161715612043575081810a610643565b61204d8383611f88565b805f190482111561206057612060611f74565b029392505050565b5f61102660ff841683611fca565b808202811582820484141761064357610643611f74565b60208082526010908201526f2a3930b234b733903737ba1037b832b760811b604082015260600190565b8181038181111561064357610643611f74565b60208082526018908201527f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000604082015260600190565b5f8261211b57634e487b7160e01b5f52601260045260245ffd5b500490565b8082018082111561064357610643611f74565b60ff818116838216019081111561064357610643611f74565b5f6020828403121561215c575f80fd5b815161102681611d33565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b818110156121c95784516001600160a01b0316835293830193918301916001016121a4565b50506001600160a01b03969096166060850152505050608001529392505050565b5f805f606084860312156121fc575f80fd5b835192506020840151915060408401519050925092509256fea264697066735822122064052950adbaa8def243662368279b42ea53f9ae6570ceaef7df45da90980a5c64736f6c63430008150033

Deployed Bytecode Sourcemap

2515:12649:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5111:80;;;;;;;;;;-1:-1:-1;5183:5:0;;;;;;;;;;;;-1:-1:-1;;;5183:5:0;;;;5111:80;;;;;;;:::i;:::-;;;;;;;;5449:216;;;;;;;;;;-1:-1:-1;5449:216:0;;;;;:::i;:::-;;:::i;:::-;;;1188:14:1;;1181:22;1163:41;;1151:2;1136:18;5449:216:0;1023:187:1;4841:88:0;;;;;;;;;;;;;:::i;:::-;;;1361:25:1;;;1349:2;1334:18;4841:88:0;1215:177:1;5906:371:0;;;;;;;;;;-1:-1:-1;5906:371:0;;;;;:::i;:::-;;:::i;11178:86::-;;;;;;;;;;-1:-1:-1;11219:5:0;11244:12;-1:-1:-1;;;11244:12:0;;;;11178:86;;;2030:4:1;2018:17;;;2000:36;;1988:2;1973:18;11178:86:0;1858:184:1;14165:563:0;;;;;;;;;;-1:-1:-1;14165:563:0;;;;;:::i;:::-;;:::i;:::-;;4935:80;;;;;;;;;;-1:-1:-1;2591:1:0;4935:80;;12235:462;;;;;;;;;;-1:-1:-1;12235:462:0;;;;;:::i;:::-;;:::i;14736:425::-;;;;;;;;;;-1:-1:-1;14736:425:0;;;;;:::i;:::-;;:::i;12041:90::-;;;;;;;;;;-1:-1:-1;12112:11:0;;12041:90;;11088:84;;;;;;;;;;-1:-1:-1;11128:5:0;11153:11;-1:-1:-1;;;11153:11:0;;;;11088:84;;12137:90;;;;;;;;;;-1:-1:-1;12208:11:0;;12137:90;;11272:183;;;;;;;;;;-1:-1:-1;11272:183:0;;;;;:::i;:::-;;:::i;10830:250::-;;;;;;;;;;-1:-1:-1;10830:250:0;;;;;:::i;:::-;;:::i;10592:110::-;;;;;;;;;;-1:-1:-1;10592:110:0;;;;;:::i;:::-;-1:-1:-1;;;;;10679:15:0;10655:4;10679:15;;;:7;:15;;;;;;;;;10592:110;5197:105;;;;;;;;;;-1:-1:-1;5197:105:0;;;;;:::i;:::-;-1:-1:-1;;;;;5281:18:0;5263:7;5281:18;;;:9;:18;;;;;;;5197:105;2322:137;;;;;;;;;;;;;:::i;11465:101::-;;;;;;;;;;-1:-1:-1;11542:16:0;;-1:-1:-1;;;;;11542:16:0;11465:101;;;-1:-1:-1;;;;;4299:32:1;;;4281:51;;4269:2;4254:18;11465:101:0;4135:203:1;11574:254:0;;;;;;;;;;-1:-1:-1;11574:254:0;;;;;:::i;:::-;;:::i;7594:129::-;;;;;;;;;;;;;:::i;10709:114::-;;;;;;;;;;-1:-1:-1;10709:114:0;;;;;:::i;:::-;-1:-1:-1;;;;;10798:17:0;10774:4;10798:17;;;:9;:17;;;;;;;;;10709:114;2072:81;;;;;;;;;;-1:-1:-1;2110:7:0;2138:6;-1:-1:-1;;;;;2138:6:0;2072:81;;5021:84;;;;;;;;;;-1:-1:-1;5095:7:0;;;;;;;;;;;;-1:-1:-1;;;5095:7:0;;;;5021:84;;12705:436;;;;;;;;;;-1:-1:-1;12705:436:0;;;;;:::i;:::-;;:::i;5673:225::-;;;;;;;;;;-1:-1:-1;5673:225:0;;;;;:::i;:::-;;:::i;11937:96::-;;;;;;;;;;-1:-1:-1;12013:12:0;;11937:96;;5308:133;;;;;;;;;;-1:-1:-1;5308:133:0;;;;;:::i;:::-;-1:-1:-1;;;;;5410:19:0;;;5392:7;5410:19;;;:11;:19;;;;;;;;:28;;;;;;;;;;;;;5308:133;6610:583;;;:::i;2159:157::-;;;;;;;;;;-1:-1:-1;2159:157:0;;;;;:::i;:::-;;:::i;11836:95::-;;;;;;;;;;-1:-1:-1;11907:16:0;;11836:95;;5449:216;5553:10;5524:4;5541:23;;;:11;:23;;;;;;;;-1:-1:-1;;;;;5541:32:0;;;;;;;;;;:41;;;5598:37;5524:4;;5541:32;;5598:37;;;;5576:6;1361:25:1;;1349:2;1334:18;;1215:177;5598:37:0;;;;;;;;-1:-1:-1;5653:4:0;5449:216;;;;;:::o;4841:88::-;4896:7;2652:13;2591:1;2652:2;:13;:::i;:::-;2639:27;;:9;:27;:::i;:::-;4907:19;;4841:88;:::o;5906:371::-;6006:4;6031:25;6049:6;6031:17;:25::i;:::-;6023:54;;;;-1:-1:-1;;;6023:54:0;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;;;6091:19:0;;;;;;:11;:19;;;;;;;;6111:10;6091:31;;;;;;;;-1:-1:-1;;6091:52:0;6088:124;;-1:-1:-1;;;;;6159:19:0;;;;;;:11;:19;;;;;;;;6179:10;6159:31;;;;;;;:41;;6194:6;;6159:19;:41;;6194:6;;6159:41;:::i;:::-;;;;-1:-1:-1;;6088:124:0;6229:40;6243:6;6251:9;6262:6;6229:13;:40::i;:::-;6222:47;5906:371;-1:-1:-1;;;;5906:371:0:o;14165:563::-;2009:6;;-1:-1:-1;;;;;2009:6:0;1995:10;:20;1987:57;;;;-1:-1:-1;;;1987:57:0;;;;;;;:::i;:::-;4052:10:::1;:17:::0;;-1:-1:-1;;4052:17:0::1;;;::::0;;14303:3:::2;4052:17:::1;14283:23:::0;::::2;;;14275:62;;;::::0;-1:-1:-1;;;14275:62:0;;8291:2:1;14275:62:0::2;::::0;::::2;8273:21:1::0;8330:2;8310:18;;;8303:30;8369:28;8349:18;;;8342:56;8415:18;;14275:62:0::2;8089:350:1::0;14275:62:0::2;14389:4;14348:20;5281:18:::0;;;:9;:18;;;;;;14417:3:::2;::::0;14371:43:::2;::::0;::::2;::::0;::::2;::::0;::::2;:::i;:::-;:49;;;;:::i;:::-;14348:72:::0;-1:-1:-1;14450:15:0::2;2591:1;14450:2;:15;:::i;:::-;14435:12;:30;14431:97;;;14482:34;14503:12;14482:20;:34::i;:::-;14542:7;14538:183;;;14588:21;14632:14:::0;14624:33:::2;;;::::0;-1:-1:-1;;;14624:33:0;;8868:2:1;14624:33:0::2;::::0;::::2;8850:21:1::0;8907:1;8887:18;;;8880:29;-1:-1:-1;;;8925:18:1;;;8918:36;8971:18;;14624:33:0::2;8666:329:1::0;14624:33:0::2;14672:16;::::0;:37:::2;::::0;-1:-1:-1;;;;;14672:16:0;;::::2;::::0;:37;::::2;;;::::0;14698:10;;14672:16:::2;:37:::0;:16;:37;14698:10;14672:16;:37;::::2;;;;;;;;;;;;;::::0;::::2;;;;;;14551:170;14538:183;-1:-1:-1::0;;4094:10:0::1;:18:::0;;-1:-1:-1;;4094:18:0::1;::::0;;-1:-1:-1;14165:563:0:o;12235:462::-;2009:6;;-1:-1:-1;;;;;2009:6:0;1995:10;:20;1987:57;;;;-1:-1:-1;;;1987:57:0;;;;;;;:::i;:::-;12341:16:::1;12400:4;12360:37;::::0;::::1;2652:13;2591:1;2652:2;:13;:::i;:::-;2639:27;::::0;:9:::1;:27;:::i;:::-;12360:37;;;;:::i;:::-;:44;;;;:::i;:::-;:48;::::0;12407:1:::1;12360:48;:::i;:::-;12341:67;;12439:12;;12427:8;:24;;12419:47;;;::::0;-1:-1:-1;;;12419:47:0;;9332:2:1;12419:47:0::1;::::0;::::1;9314:21:1::0;9371:2;9351:18;;;9344:30;-1:-1:-1;;;9390:18:1;;;9383:40;9440:18;;12419:47:0::1;9130:334:1::0;12419:47:0::1;12477:12;:23:::0;;;12511:20:::1;12569:4;12534:32;::::0;::::1;2652:13;2591:1;2652:2;:13;:::i;:::-;2639:27;::::0;:9:::1;:27;:::i;:::-;12534:32;;;;:::i;:::-;:39;;;;:::i;:::-;:43;::::0;12576:1:::1;12534:43;:::i;:::-;12511:66;;12612:16;;12596:12;:32;;12588:59;;;::::0;-1:-1:-1;;;12588:59:0;;9671:2:1;12588:59:0::1;::::0;::::1;9653:21:1::0;9710:2;9690:18;;;9683:30;-1:-1:-1;;;9729:18:1;;;9722:44;9783:18;;12588:59:0::1;9469:338:1::0;12588:59:0::1;12658:16;:31:::0;-1:-1:-1;;;12235:462:0:o;14736:425::-;2009:6;;-1:-1:-1;;;;;2009:6:0;1995:10;:20;1987:57;;;;-1:-1:-1;;;1987:57:0;;;;;;;:::i;:::-;14833:10:::1;14796:24;5281:18:::0;;;:9;:18;;;;;;14863:26;;::::1;;14855:54;;;::::0;-1:-1:-1;;;14855:54:0;;10014:2:1;14855:54:0::1;::::0;::::1;9996:21:1::0;10053:2;10033:18;;;10026:30;-1:-1:-1;;;10072:18:1;;;10065:45;10127:18;;14855:54:0::1;9812:339:1::0;14855:54:0::1;14925:10:::0;;14920:234:::1;;14963:10;14953:21;::::0;;;:9:::1;:21;::::0;;;;:31;;14978:6;;14953:21;:31:::1;::::0;14978:6;;14953:31:::1;:::i;:::-;::::0;;;-1:-1:-1;;14999:21:0::1;::::0;;;:9:::1;:21;::::0;;:31;;15024:6;;14999:21;:31:::1;::::0;15024:6;;14999:31:::1;:::i;:::-;::::0;;;-1:-1:-1;;15050:40:0::1;::::0;1361:25:1;;;15079:1:0::1;::::0;15059:10:::1;::::0;15050:40:::1;::::0;1349:2:1;1334:18;15050:40:0::1;;;;;;;15110:32;::::0;1361:25:1;;;15123:10:0::1;::::0;15110:32:::1;::::0;1349:2:1;1334:18;15110:32:0::1;;;;;;;14920:234;14785:376;14736:425:::0;:::o;11272:183::-;2009:6;;-1:-1:-1;;;;;2009:6:0;1995:10;:20;1987:57;;;;-1:-1:-1;;;1987:57:0;;;;;;;:::i;:::-;11364:2:::1;11350:10;11356:4:::0;11350:3;:10:::1;:::i;:::-;:16;;;;11342:47;;;::::0;-1:-1:-1;;;11342:47:0;;10511:2:1;11342:47:0::1;::::0;::::1;10493:21:1::0;10550:2;10530:18;;;10523:30;-1:-1:-1;;;10569:18:1;;;10562:48;10627:18;;11342:47:0::1;10309:342:1::0;11342:47:0::1;11400:11;:17:::0;;-1:-1:-1;;;;11428:19:0;-1:-1:-1;;;11400:17:0::1;::::0;;::::1;;-1:-1:-1::0;;;;11428:19:0;;-1:-1:-1;;;11428:19:0;;;::::1;::::0;;;::::1;::::0;;;::::1;::::0;;11272:183::o;10830:250::-;2009:6;;-1:-1:-1;;;;;2009:6:0;1995:10;:20;1987:57;;;;-1:-1:-1;;;1987:57:0;;;;;;;:::i;:::-;10927:8:::1;:18;;;;10939:6;10927:18;10923:72;;;-1:-1:-1::0;;;;;10958:13:0;::::1;;::::0;;;:5:::1;:13;::::0;;;;;::::1;;10957:14;10949:43;;;::::0;-1:-1:-1;;;10949:43:0;;10858:2:1;10949:43:0::1;::::0;::::1;10840:21:1::0;10897:2;10877:18;;;10870:30;-1:-1:-1;;;10916:18:1;;;10909:46;10972:18;;10949:43:0::1;10656:340:1::0;10949:43:0::1;-1:-1:-1::0;;;;;11005:17:0;;::::1;;::::0;;;:7:::1;:17;::::0;;;;;;;:26;;;::::1;;-1:-1:-1::0;;11005:26:0;;::::1;;::::0;;11042:9:::1;:19:::0;;;;;:30;;;::::1;;::::0;;;::::1;::::0;;;::::1;::::0;;10830:250::o;2322:137::-;2009:6;;-1:-1:-1;;;;;2009:6:0;1995:10;:20;1987:57;;;;-1:-1:-1;;;1987:57:0;;;;;;;:::i;:::-;2399:1:::1;2382:19:::0;;-1:-1:-1;;;;;;2382:19:0::1;::::0;;2418:32:::1;::::0;4281:51:1;;;2418:32:0::1;::::0;4269:2:1;4254:18;2418:32:0::1;;;;;;;2322:137::o:0;11574:254::-;2009:6;;-1:-1:-1;;;;;2009:6:0;1995:10;:20;1987:57;;;;-1:-1:-1;;;1987:57:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;11654:16:0;::::1;;::::0;;;:5:::1;:16;::::0;;;;;::::1;;11653:17;11645:53;;;::::0;-1:-1:-1;;;11645:53:0;;11203:2:1;11645:53:0::1;::::0;::::1;11185:21:1::0;11242:2;11222:18;;;11215:30;11281:25;11261:18;;;11254:53;11324:18;;11645:53:0::1;11001:347:1::0;11645:53:0::1;11709:16;:37:::0;;-1:-1:-1;;;;;11709:37:0;;::::1;-1:-1:-1::0;;;;;;11709:37:0;;::::1;::::0;::::1;::::0;;:16:::1;11757:18:::0;;;:7:::1;:18;::::0;;;;;;;:25;;-1:-1:-1;;11757:25:0;;::::1;::::0;::::1;::::0;;;11793:9:::1;:20:::0;;;;;;:27;;;;::::1;;::::0;;11574:254::o;7594:129::-;2009:6;;-1:-1:-1;;;;;2009:6:0;1995:10;:20;1987:57;;;;-1:-1:-1;;;1987:57:0;;;;;;;:::i;:::-;7658:12:::1;::::0;::::1;;7657:13;7649:41;;;::::0;-1:-1:-1;;;7649:41:0;;11555:2:1;7649:41:0::1;::::0;::::1;11537:21:1::0;11594:2;11574:18;;;11567:30;-1:-1:-1;;;11613:18:1;;;11606:45;11668:18;;7649:41:0::1;11353:339:1::0;7649:41:0::1;7701:14;:12;:14::i;:::-;7594:129::o:0;12705:436::-;2009:6;;-1:-1:-1;;;;;2009:6:0;1995:10;:20;1987:57;;;;-1:-1:-1;;;1987:57:0;;;;;;;:::i;:::-;12841:36:::1;::::0;;::::1;::::0;:23;::::1;2652:13;2591:1;2652:2;:13;:::i;:::-;2639:27;::::0;:9:::1;:27;:::i;:::-;12841:23;;;;:::i;:::-;:36;;;;:::i;:::-;12827:11;:50:::0;12902:36:::1;::::0;;::::1;::::0;:23;::::1;2652:13;2591:1;2652:2;:13;:::i;:::-;2639:27;::::0;:9:::1;:27;:::i;:::-;12902:23;;;;:::i;:::-;:36;;;;:::i;:::-;12888:11;:50:::0;;;12970:11:::1;::::0;-1:-1:-1;12957:24:0::1;12949:50;;;::::0;-1:-1:-1;;;12949:50:0;;11899:2:1;12949:50:0::1;::::0;::::1;11881:21:1::0;11938:2;11918:18;;;11911:30;-1:-1:-1;;;11957:18:1;;;11950:43;12010:18;;12949:50:0::1;11697:337:1::0;12949:50:0::1;13045:6;2652:13;2591:1;2652:2;:13;:::i;:::-;2639:27;::::0;:9:::1;:27;:::i;:::-;13030:21;;;;:::i;:::-;13018:11;;:33;13010:57;;;::::0;-1:-1:-1;;;13010:57:0;;12241:2:1;13010:57:0::1;::::0;::::1;12223:21:1::0;12280:2;12260:18;;;12253:30;-1:-1:-1;;;12299:18:1;;;12292:41;12350:18;;13010:57:0::1;12039:335:1::0;13010:57:0::1;13113:3;2652:13;2591:1;2652:2;:13;:::i;:::-;2639:27;::::0;:9:::1;:27;:::i;:::-;13098:18;;;;:::i;:::-;13086:11;;:30;13078:55;;;::::0;-1:-1:-1;;;13078:55:0;;12581:2:1;13078:55:0::1;::::0;::::1;12563:21:1::0;12620:2;12600:18;;;12593:30;-1:-1:-1;;;12639:18:1;;;12632:42;12691:18;;13078:55:0::1;12379:336:1::0;13078:55:0::1;12705:436:::0;;;;:::o;5673:225::-;5753:4;5778:29;5796:10;5778:17;:29::i;:::-;5770:58;;;;-1:-1:-1;;;5770:58:0;;;;;;;:::i;:::-;5846:44;5860:10;5872:9;5883:6;5846:13;:44::i;:::-;5839:51;5673:225;-1:-1:-1;;;5673:225:0:o;6610:583::-;2009:6;;-1:-1:-1;;;;;2009:6:0;1995:10;:20;1987:57;;;;-1:-1:-1;;;1987:57:0;;;;;;;:::i;:::-;4052:10:::1;:17:::0;;-1:-1:-1;;4052:17:0::1;;;::::0;;6692:10:::2;::::0;-1:-1:-1;;;;;6692:10:0::2;:24:::0;6684:46:::2;;;::::0;-1:-1:-1;;;6684:46:0;;12922:2:1;6684:46:0::2;::::0;::::2;12904:21:1::0;12961:1;12941:18;;;12934:29;-1:-1:-1;;;12979:18:1;;;12972:39;13028:18;;6684:46:0::2;12720:332:1::0;6684:46:0::2;6750:12;::::0;::::2;;6749:13;6741:41;;;::::0;-1:-1:-1;;;6741:41:0;;11555:2:1;6741:41:0::2;::::0;::::2;11537:21:1::0;11594:2;11574:18;;;11567:30;-1:-1:-1;;;11613:18:1;;;11606:45;11668:18;;6741:41:0::2;11353:339:1::0;6741:41:0::2;6813:1;6801:9;:13;:40;;;;6840:1;6818:21;:23;6801:40;6793:82;;;::::0;-1:-1:-1;;;6793:82:0;;13259:2:1;6793:82:0::2;::::0;::::2;13241:21:1::0;13298:2;13278:18;;;13271:30;13337:31;13317:18;;;13310:59;13386:18;;6793:82:0::2;13057:353:1::0;6793:82:0::2;6912:4;6919:1;6894:24:::0;;;:9:::2;:24;::::0;;;;;6886:60:::2;;;::::0;-1:-1:-1;;;6886:60:0;;13617:2:1;6886:60:0::2;::::0;::::2;13599:21:1::0;13656:2;13636:18;;;13629:30;-1:-1:-1;;;13675:18:1;;;13668:51;13736:18;;6886:60:0::2;13415:345:1::0;6886:60:0::2;6988:18;;;;;;;;;-1:-1:-1::0;;;;;6988:18:0::2;-1:-1:-1::0;;;;;6988:26:0::2;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;6970:58:0::2;;7037:4;7044:18;;;;;;;;;-1:-1:-1::0;;;;;7044:18:0::2;-1:-1:-1::0;;;;;7044:23:0::2;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6970:100;::::0;-1:-1:-1;;;;;;6970:100:0::2;::::0;;;;;;-1:-1:-1;;;;;14251:15:1;;;6970:100:0::2;::::0;::::2;14233:34:1::0;14303:15;;14283:18;;;14276:43;14168:18;;6970:100:0::2;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6957:10;:113:::0;;-1:-1:-1;;;;;;6957:113:0::2;-1:-1:-1::0;;;;;6957:113:0;;;::::2;::::0;;;::::2;::::0;;7113:4:::2;-1:-1:-1::0;7095:24:0;;;:9:::2;:24;::::0;;;;;7081:69:::2;::::0;7121:21:::2;::::0;7081:13:::2;:69::i;:::-;7167:10;::::0;-1:-1:-1;;;;;7167:10:0::2;7161:17;::::0;;;:5:::2;:17;::::0;;;;:24;;-1:-1:-1;;7161:24:0::2;7181:4;7161:24;::::0;;4094:10:::1;:18:::0;;-1:-1:-1;;4094:18:0::1;::::0;;6610:583::o;2159:157::-;2009:6;;-1:-1:-1;;;;;2009:6:0;1995:10;:20;1987:57;;;;-1:-1:-1;;;1987:57:0;;;;;;;:::i;:::-;2243:6:::1;:17:::0;;-1:-1:-1;;;;;;2243:17:0::1;-1:-1:-1::0;;;;;2243:17:0;::::1;::::0;;::::1;::::0;;;2277:30:::1;::::0;4281:51:1;;;2277:30:0::1;::::0;4269:2:1;4254:18;2277:30:0::1;;;;;;;2159:157:::0;:::o;9464:277::-;9585:12;;9529:4;;;;9585:12;;9580:124;;;-1:-1:-1;9616:4:0;9580:124;;;-1:-1:-1;;;;;9643:15:0;;;;;;:7;:15;;;;;;;;:36;;;;-1:-1:-1;;;;;;9662:17:0;;;;;;:9;:17;;;;;;;;9643:36;9639:65;;;-1:-1:-1;9697:4:0;9722:11;9464:277;-1:-1:-1;;9464:277:0:o;7955:934::-;8047:4;-1:-1:-1;;;;;8072:20:0;;8064:62;;;;-1:-1:-1;;;8064:62:0;;14748:2:1;8064:62:0;;;14730:21:1;14787:2;14767:18;;;14760:30;14826:31;14806:18;;;14799:59;14875:18;;8064:62:0;14546:353:1;8064:62:0;8142:12;;;;8137:89;;-1:-1:-1;;;;;8166:15:0;;;;;;:7;:15;;;;;;;;:36;;;;-1:-1:-1;;;;;;8185:17:0;;;;;;:9;:17;;;;;;;;8166:36;8158:65;;;;-1:-1:-1;;;8158:65:0;;;;;;;:::i;:::-;8242:10;;;;;;;8241:11;:31;;;;-1:-1:-1;;;;;;8256:16:0;;;;;;:5;:16;;;;;;;;8241:31;8236:64;;;8277:20;:18;:20::i;:::-;-1:-1:-1;;;;;8325:23:0;;8343:4;8325:23;;;;:53;;-1:-1:-1;;;;;;8352:26:0;;8373:4;8352:26;;8325:53;:73;;;;-1:-1:-1;8392:6:0;;-1:-1:-1;;;;;8382:16:0;;;8392:6;;8382:16;;8325:73;8320:179;;;8425:39;8438:6;8446:9;8457:6;8425:12;:39::i;:::-;8417:69;;;;-1:-1:-1;;;8417:69:0;;15106:2:1;8417:69:0;;;15088:21:1;15145:2;15125:18;;;15118:30;-1:-1:-1;;;15164:18:1;;;15157:47;15221:18;;8417:69:0;14904:341:1;8417:69:0;8509:18;8530:40;8544:6;8552:9;8563:6;8530:13;:40::i;:::-;8509:61;-1:-1:-1;8581:23:0;8607:19;8509:61;8607:6;:19;:::i;:::-;-1:-1:-1;;;;;8657:17:0;;;;;;:9;:17;;;;;;8581:45;;-1:-1:-1;8657:26:0;;8677:6;;8657:26;:::i;:::-;-1:-1:-1;;;;;8637:17:0;;;;;;:9;:17;;;;;:46;8699:14;;8694:65;;8736:4;8718:24;;;;:9;:24;;;;;:38;;8746:10;;8718:24;:38;;8746:10;;8718:38;:::i;:::-;;;;-1:-1:-1;;8694:65:0;-1:-1:-1;;;;;8769:20:0;;;;;;:9;:20;;;;;:39;;8793:15;;8769:20;:39;;8793:15;;8769:39;:::i;:::-;;;;;;;;8841:9;-1:-1:-1;;;;;8824:35:0;8833:6;-1:-1:-1;;;;;8824:35:0;;8852:6;8824:35;;;;1361:25:1;;1349:2;1334:18;;1215:177;8824:35:0;;;;;;;;-1:-1:-1;8877:4:0;;7955:934;-1:-1:-1;;;;;7955:934:0:o;13793:364::-;13860:24;13875:8;13860:14;:24::i;:::-;13923:16;;;13937:1;13923:16;;;;;;;;13895:25;;13923:16;;;;;;;;;;-1:-1:-1;13923:16:0;13895:44;;13972:4;13950:8;13959:1;13950:11;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13950:27:0;;;:11;;;;;;;;;;:27;;;;13993:18;;:25;;;-1:-1:-1;;;13993:25:0;;;;:18;;;;;:23;;:25;;;;;13950:11;;13993:25;;;;;:18;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13979:8;13988:1;13979:11;;;;;;;;:::i;:::-;-1:-1:-1;;;;;13979:39:0;;;:11;;;;;;;;;:39;14029:18;;:120;;-1:-1:-1;;;14029:120:0;;:18;;;:69;;:120;;14099:8;;14029:18;;14110:8;;14127:4;;14133:15;;14029:120;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13849:308;13793:364;:::o;7731:216::-;7813:4;2652:13;2591:1;2652:2;:13;:::i;:::-;2639:27;;:9;:27;:::i;:::-;7794:16;;7809:1;7794:16;:::i;:::-;:23;;;;:::i;:::-;7775:12;:42;7867:4;2652:13;2591:1;2652:2;:13;:::i;:::-;2639:27;;:9;:27;:::i;:::-;7848:16;;7863:1;7848:16;:::i;:::-;:23;;;;:::i;:::-;7829:16;:42;7882:12;:19;;-1:-1:-1;;7882:19:0;7897:4;7882:19;;;7927:12;7912;:27;7731:216::o;7201:385::-;7331:8;;-1:-1:-1;;;;;7331:8:0;7350:50;;;;-1:-1:-1;7395:1:0;7350:50;7410:28;7425:12;7410:14;:28::i;:::-;7449:18;;:129;;-1:-1:-1;;;7449:129:0;;7516:4;7449:129;;;16840:34:1;16890:18;;;16883:34;;;7449:18:0;16933::1;;;16926:34;;;16976:18;;;16969:34;-1:-1:-1;;;;;17040:15:1;;;17019:19;;;17012:44;7561:15:0;17072:19:1;;;17065:35;7449:18:0;;;;:34;;7491:13;;16774:19:1;;7449:129:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;7293:293;7201:385;;;:::o;13149:636::-;4052:10;:17;;-1:-1:-1;;4052:17:0;;;;;13258:4:::1;-1:-1:-1::0;5281:18:0;;;:9;:18;;;;;;13210:54:::1;;13305:11;;13282:19;:34;;:50;;;;-1:-1:-1::0;13320:12:0::1;::::0;::::1;;13282:50;13277:501;;;13378:11;;13355:19;:34;13350:80;;-1:-1:-1::0;13416:11:0::1;::::0;13350:80:::1;13468:19:::0;13522:13:::1;2591:1;13522:2;:13;:::i;:::-;13506;:29;13502:106;;;13557:35;13578:13;13557:20;:35::i;:::-;13652:21;13691:23:::0;;13688:79:::1;;13718:16;::::0;:46:::1;::::0;-1:-1:-1;;;;;13718:16:0;;::::1;::::0;:46;::::1;;;::::0;13744:19;;13718:16:::1;:46:::0;:16;:46;13744:19;13718:16;:46;::::1;;;;;;;;;;;;;::::0;::::1;;;;;;13688:79;13335:443;;13277:501;-1:-1:-1::0;4094:10:0;:18;;-1:-1:-1;;4094:18:0;;;13149:636::o;8897:559::-;9062:12;;9001:4;;9042;;9062:12;;:34;;;;-1:-1:-1;;;;;;9079:17:0;;;;;;:9;:17;;;;;;;;9078:18;9062:34;:59;;;;-1:-1:-1;;;;;;9101:20:0;;;;;;:9;:20;;;;;;;;9100:21;9062:59;9057:358;;;9161:12;;9144:14;:29;9139:265;;;-1:-1:-1;9215:5:0;9139:265;;;-1:-1:-1;;;;;9262:16:0;;;;;;:5;:16;;;;;;;;9261:17;:79;;;;-1:-1:-1;9323:16:0;;-1:-1:-1;;;;;9283:20:0;;;;;;:9;:20;;;;;;:37;;9306:14;;9283:37;:::i;:::-;:56;9261:79;9256:148;;;-1:-1:-1;9382:5:0;9432:16;8897:559;-1:-1:-1;;;;8897:559:0:o;9749:835::-;9900:12;;9846:7;;;;9900:12;;9899:13;;:32;;-1:-1:-1;;;;;;9916:15:0;;;;;;:7;:15;;;;;;;;9899:32;:54;;;-1:-1:-1;;;;;;9935:18:0;;;;;;:7;:18;;;;;;;;9899:54;9894:656;;;-1:-1:-1;9984:1:0;9894:656;;;-1:-1:-1;;;;;10009:13:0;;;;;;:5;:13;;;;;;;;10004:546;;;10096:16;;10062:12;;10096:16;-1:-1:-1;;;10096:16:0;;;;;10062:31;;-1:-1:-1;;;10077:16:0;;;;;;;10062:31;:::i;:::-;:50;;;;:::i;:::-;10046:12;:66;10041:400;;10155:11;;10169:3;;10146:20;;-1:-1:-1;;;10155:11:0;;;;10146:6;:20;:::i;:::-;:26;;;;:::i;:::-;10134:38;;10004:546;;10041:400;10231:16;;10216:12;;:31;;-1:-1:-1;;;10231:16:0;;;;;10216:31;:::i;:::-;10200:12;:47;10195:246;;10290:13;;10306:3;;10281:22;;-1:-1:-1;;;10290:13:0;;;;10281:6;:22;:::i;10195:246::-;10352:12;;10336;:28;10331:110;;10406:13;;10422:3;;10397:22;;-1:-1:-1;;;10406:13:0;;;;10397:6;:22;:::i;10331:110::-;10004:546;;;-1:-1:-1;;;;;10463:16:0;;;;;;:5;:16;;;;;;;;10458:92;;;10519:12;;10534:3;;10510:21;;-1:-1:-1;;;10519:12:0;;;;10510:6;:21;:::i;:::-;:27;;;;:::i;:::-;10498:39;9749:835;-1:-1:-1;;;;;9749:835:0:o;6285:317::-;6376:4;6356:26;;;;:11;:26;;;;;;;;3723:42;6356:46;;;;;;;;:61;-1:-1:-1;6351:244:0;;;6455:4;6435:26;;;;:11;:26;;;;;;;;3723:42;6435:46;;;;;;;;;;-1:-1:-1;;6435:66:0;;;;6521:62;;1361:25:1;;;3723:42:0;;6455:4;6521:62;;1334:18:1;6521:62:0;;;;;;;6351:244;6285:317;:::o;14:548:1:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:131::-;-1:-1:-1;;;;;642:31:1;;632:42;;622:70;;688:1;685;678:12;703:315;771:6;779;832:2;820:9;811:7;807:23;803:32;800:52;;;848:1;845;838:12;800:52;887:9;874:23;906:31;931:5;906:31;:::i;:::-;956:5;1008:2;993:18;;;;980:32;;-1:-1:-1;;;703:315:1:o;1397:456::-;1474:6;1482;1490;1543:2;1531:9;1522:7;1518:23;1514:32;1511:52;;;1559:1;1556;1549:12;1511:52;1598:9;1585:23;1617:31;1642:5;1617:31;:::i;:::-;1667:5;-1:-1:-1;1724:2:1;1709:18;;1696:32;1737:33;1696:32;1737:33;:::i;:::-;1397:456;;1789:7;;-1:-1:-1;;;1843:2:1;1828:18;;;;1815:32;;1397:456::o;2047:156::-;2113:20;;2173:4;2162:16;;2152:27;;2142:55;;2193:1;2190;2183:12;2142:55;2047:156;;;:::o;2208:160::-;2273:20;;2329:13;;2322:21;2312:32;;2302:60;;2358:1;2355;2348:12;2373:250;2436:6;2444;2497:2;2485:9;2476:7;2472:23;2468:32;2465:52;;;2513:1;2510;2503:12;2465:52;2536:27;2553:9;2536:27;:::i;:::-;2526:37;;2582:35;2613:2;2602:9;2598:18;2582:35;:::i;:::-;2572:45;;2373:250;;;;;:::o;2628:159::-;2695:20;;2755:6;2744:18;;2734:29;;2724:57;;2777:1;2774;2767:12;2792:256;2858:6;2866;2919:2;2907:9;2898:7;2894:23;2890:32;2887:52;;;2935:1;2932;2925:12;2887:52;2958:28;2976:9;2958:28;:::i;:::-;2948:38;;3005:37;3038:2;3027:9;3023:18;3005:37;:::i;3053:180::-;3112:6;3165:2;3153:9;3144:7;3140:23;3136:32;3133:52;;;3181:1;3178;3171:12;3133:52;-1:-1:-1;3204:23:1;;3053:180;-1:-1:-1;3053:180:1:o;3238:252::-;3302:6;3310;3363:2;3351:9;3342:7;3338:23;3334:32;3331:52;;;3379:1;3376;3369:12;3331:52;3402:27;3419:9;3402:27;:::i;:::-;3392:37;;3448:36;3480:2;3469:9;3465:18;3448:36;:::i;3495:383::-;3566:6;3574;3582;3635:2;3623:9;3614:7;3610:23;3606:32;3603:52;;;3651:1;3648;3641:12;3603:52;3690:9;3677:23;3709:31;3734:5;3709:31;:::i;:::-;3759:5;-1:-1:-1;3783:35:1;3814:2;3799:18;;3783:35;:::i;:::-;3773:45;;3837:35;3868:2;3857:9;3853:18;3837:35;:::i;:::-;3827:45;;3495:383;;;;;:::o;3883:247::-;3942:6;3995:2;3983:9;3974:7;3970:23;3966:32;3963:52;;;4011:1;4008;4001:12;3963:52;4050:9;4037:23;4069:31;4094:5;4069:31;:::i;4343:163::-;4410:20;;4470:10;4459:22;;4449:33;;4439:61;;4496:1;4493;4486:12;4511:401;4593:6;4601;4609;4617;4670:3;4658:9;4649:7;4645:23;4641:33;4638:53;;;4687:1;4684;4677:12;4638:53;4710:28;4728:9;4710:28;:::i;:::-;4700:38;;4757:37;4790:2;4779:9;4775:18;4757:37;:::i;:::-;4747:47;;4813:37;4846:2;4835:9;4831:18;4813:37;:::i;:::-;4803:47;;4869:37;4902:2;4891:9;4887:18;4869:37;:::i;:::-;4859:47;;4511:401;;;;;;;:::o;4917:388::-;4985:6;4993;5046:2;5034:9;5025:7;5021:23;5017:32;5014:52;;;5062:1;5059;5052:12;5014:52;5101:9;5088:23;5120:31;5145:5;5120:31;:::i;:::-;5170:5;-1:-1:-1;5227:2:1;5212:18;;5199:32;5240:33;5199:32;5240:33;:::i;:::-;5292:7;5282:17;;;4917:388;;;;;:::o;5570:127::-;5631:10;5626:3;5622:20;5619:1;5612:31;5662:4;5659:1;5652:15;5686:4;5683:1;5676:15;5702:422;5791:1;5834:5;5791:1;5848:270;5869:7;5859:8;5856:21;5848:270;;;5928:4;5924:1;5920:6;5916:17;5910:4;5907:27;5904:53;;;5937:18;;:::i;:::-;5987:7;5977:8;5973:22;5970:55;;;6007:16;;;;5970:55;6086:22;;;;6046:15;;;;5848:270;;;5852:3;5702:422;;;;;:::o;6129:806::-;6178:5;6208:8;6198:80;;-1:-1:-1;6249:1:1;6263:5;;6198:80;6297:4;6287:76;;-1:-1:-1;6334:1:1;6348:5;;6287:76;6379:4;6397:1;6392:59;;;;6465:1;6460:130;;;;6372:218;;6392:59;6422:1;6413:10;;6436:5;;;6460:130;6497:3;6487:8;6484:17;6481:43;;;6504:18;;:::i;:::-;-1:-1:-1;;6560:1:1;6546:16;;6575:5;;6372:218;;6674:2;6664:8;6661:16;6655:3;6649:4;6646:13;6642:36;6636:2;6626:8;6623:16;6618:2;6612:4;6609:12;6605:35;6602:77;6599:159;;;-1:-1:-1;6711:19:1;;;6743:5;;6599:159;6790:34;6815:8;6809:4;6790:34;:::i;:::-;6860:6;6856:1;6852:6;6848:19;6839:7;6836:32;6833:58;;;6871:18;;:::i;:::-;6909:20;;6129:806;-1:-1:-1;;;6129:806:1:o;6940:140::-;6998:5;7027:47;7068:4;7058:8;7054:19;7048:4;7027:47;:::i;7085:168::-;7158:9;;;7189;;7206:15;;;7200:22;;7186:37;7176:71;;7227:18;;:::i;7258:340::-;7460:2;7442:21;;;7499:2;7479:18;;;7472:30;-1:-1:-1;;;7533:2:1;7518:18;;7511:46;7589:2;7574:18;;7258:340::o;7603:128::-;7670:9;;;7691:11;;;7688:37;;;7705:18;;:::i;7736:348::-;7938:2;7920:21;;;7977:2;7957:18;;;7950:30;8016:26;8011:2;7996:18;;7989:54;8075:2;8060:18;;7736:348::o;8444:217::-;8484:1;8510;8500:132;;8554:10;8549:3;8545:20;8542:1;8535:31;8589:4;8586:1;8579:15;8617:4;8614:1;8607:15;8500:132;-1:-1:-1;8646:9:1;;8444:217::o;9000:125::-;9065:9;;;9086:10;;;9083:36;;;9099:18;;:::i;10156:148::-;10244:4;10223:12;;;10237;;;10219:31;;10262:13;;10259:39;;;10278:18;;:::i;13765:251::-;13835:6;13888:2;13876:9;13867:7;13863:23;13859:32;13856:52;;;13904:1;13901;13894:12;13856:52;13936:9;13930:16;13955:31;13980:5;13955:31;:::i;15382:127::-;15443:10;15438:3;15434:20;15431:1;15424:31;15474:4;15471:1;15464:15;15498:4;15495:1;15488:15;15514:980;15776:4;15824:3;15813:9;15809:19;15855:6;15844:9;15837:25;15881:2;15919:6;15914:2;15903:9;15899:18;15892:34;15962:3;15957:2;15946:9;15942:18;15935:31;15986:6;16021;16015:13;16052:6;16044;16037:22;16090:3;16079:9;16075:19;16068:26;;16129:2;16121:6;16117:15;16103:29;;16150:1;16160:195;16174:6;16171:1;16168:13;16160:195;;;16239:13;;-1:-1:-1;;;;;16235:39:1;16223:52;;16330:15;;;;16295:12;;;;16271:1;16189:9;16160:195;;;-1:-1:-1;;;;;;;16411:32:1;;;;16406:2;16391:18;;16384:60;-1:-1:-1;;;16475:3:1;16460:19;16453:35;16372:3;15514:980;-1:-1:-1;;;15514:980:1:o;17111:306::-;17199:6;17207;17215;17268:2;17256:9;17247:7;17243:23;17239:32;17236:52;;;17284:1;17281;17274:12;17236:52;17313:9;17307:16;17297:26;;17363:2;17352:9;17348:18;17342:25;17332:35;;17407:2;17396:9;17392:18;17386:25;17376:35;;17111:306;;;;;:::o

Swarm Source

ipfs://64052950adbaa8def243662368279b42ea53f9ae6570ceaef7df45da90980a5c

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.