ETH Price: $1,594.27 (-2.97%)
 
Transaction Hash
Method
Block
From
To
Approve222514482025-04-12 7:41:1133 hrs ago1744443671IN
Monkeys: Old MONKEYS Token
0 ETH0.000113062.40542874
Approve222085372025-04-06 7:59:477 days ago1743926387IN
Monkeys: Old MONKEYS Token
0 ETH0.000020110.4274769
Approve222085242025-04-06 7:57:117 days ago1743926231IN
Monkeys: Old MONKEYS Token
0 ETH0.000259535.51446863
Approve222083272025-04-06 7:17:237 days ago1743923843IN
Monkeys: Old MONKEYS Token
0 ETH0.000251175.3368151
Approve222057732025-04-05 22:43:597 days ago1743893039IN
Monkeys: Old MONKEYS Token
0 ETH0.000025880.55
Transfer222055112025-04-05 21:51:117 days ago1743889871IN
Monkeys: Old MONKEYS Token
0 ETH0.000023040.53936171
Transfer222055052025-04-05 21:49:597 days ago1743889799IN
Monkeys: Old MONKEYS Token
0 ETH0.000023670.55431
Transfer222054412025-04-05 21:37:117 days ago1743889031IN
Monkeys: Old MONKEYS Token
0 ETH0.000020210.47318402
Transfer222054402025-04-05 21:36:597 days ago1743889019IN
Monkeys: Old MONKEYS Token
0 ETH0.000029360.49087938
Approve222041172025-04-05 17:10:357 days ago1743873035IN
Monkeys: Old MONKEYS Token
0 ETH0.000162513.4530726
Transfer221709532025-04-01 2:04:1112 days ago1743473051IN
Monkeys: Old MONKEYS Token
0 ETH0.000235773.64870481
Approve221552622025-03-29 21:31:3514 days ago1743283895IN
Monkeys: Old MONKEYS Token
0 ETH0.000021830.8832723
Approve221412032025-03-27 22:22:1116 days ago1743114131IN
Monkeys: Old MONKEYS Token
0 ETH0.000111182.36531066
Approve221332362025-03-26 19:40:4717 days ago1743018047IN
Monkeys: Old MONKEYS Token
0 ETH0.000037931.53446726
Approve221282892025-03-26 3:08:1118 days ago1742958491IN
Monkeys: Old MONKEYS Token
0 ETH0.000023490.94810871
Approve221278522025-03-26 1:40:2318 days ago1742953223IN
Monkeys: Old MONKEYS Token
0 ETH0.000022520.48160399
Approve220899532025-03-20 18:45:1123 days ago1742496311IN
Monkeys: Old MONKEYS Token
0 ETH0.000114712.43745706
Approve220857732025-03-20 4:45:4724 days ago1742445947IN
Monkeys: Old MONKEYS Token
0 ETH0.000044240.94582705
Transfer220805322025-03-19 11:10:4725 days ago1742382647IN
Monkeys: Old MONKEYS Token
0 ETH0.00015072.51930097
Approve220681322025-03-17 17:34:4726 days ago1742232887IN
Monkeys: Old MONKEYS Token
0 ETH0.000026671.0790898
Approve220601452025-03-16 14:48:5928 days ago1742136539IN
Monkeys: Old MONKEYS Token
0 ETH0.000014940.60466449
Approve220570472025-03-16 4:26:2328 days ago1742099183IN
Monkeys: Old MONKEYS Token
0 ETH0.000024110.51325982
Approve220462752025-03-14 16:21:5930 days ago1741969319IN
Monkeys: Old MONKEYS Token
0 ETH0.00004141.67081239
Approve220457542025-03-14 14:37:1130 days ago1741963031IN
Monkeys: Old MONKEYS Token
0 ETH0.000031331.26450723
Approve220273082025-03-12 0:48:5932 days ago1741740539IN
Monkeys: Old MONKEYS Token
0 ETH0.000075211.60801459
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer222189332025-04-07 18:52:595 days ago1744051979
Monkeys: Old MONKEYS Token
0.0011916 ETH
Transfer222189332025-04-07 18:52:595 days ago1744051979
Monkeys: Old MONKEYS Token
0.00029658 ETH
Add Liquidity ET...222189332025-04-07 18:52:595 days ago1744051979
Monkeys: Old MONKEYS Token
0.00089501 ETH
Transfer222189332025-04-07 18:52:595 days ago1744051979
Monkeys: Old MONKEYS Token
0.00179003 ETH
Transfer222090332025-04-06 9:39:237 days ago1743932363
Monkeys: Old MONKEYS Token
0.00099183 ETH
Transfer222090332025-04-06 9:39:237 days ago1743932363
Monkeys: Old MONKEYS Token
0.00024686 ETH
Add Liquidity ET...222090332025-04-06 9:39:237 days ago1743932363
Monkeys: Old MONKEYS Token
0.00074497 ETH
Transfer222090332025-04-06 9:39:237 days ago1743932363
Monkeys: Old MONKEYS Token
0.00148994 ETH
Transfer222088172025-04-06 8:56:117 days ago1743929771
Monkeys: Old MONKEYS Token
0.00380607 ETH
Transfer222088172025-04-06 8:56:117 days ago1743929771
Monkeys: Old MONKEYS Token
0.00094756 ETH
Add Liquidity ET...222088172025-04-06 8:56:117 days ago1743929771
Monkeys: Old MONKEYS Token
0.00285851 ETH
Transfer222088172025-04-06 8:56:117 days ago1743929771
Monkeys: Old MONKEYS Token
0.00571702 ETH
Transfer222082292025-04-06 6:57:357 days ago1743922655
Monkeys: Old MONKEYS Token
0.0231491 ETH
Transfer222082292025-04-06 6:57:357 days ago1743922655
Monkeys: Old MONKEYS Token
0.00577392 ETH
Add Liquidity ET...222082292025-04-06 6:57:357 days ago1743922655
Monkeys: Old MONKEYS Token
0.01737518 ETH
Transfer222082292025-04-06 6:57:357 days ago1743922655
Monkeys: Old MONKEYS Token
0.03475036 ETH
Transfer220899532025-03-20 18:45:1123 days ago1742496311
Monkeys: Old MONKEYS Token
0.00026908 ETH
Transfer220899532025-03-20 18:45:1123 days ago1742496311
Monkeys: Old MONKEYS Token
0.00006696 ETH
Add Liquidity ET...220899532025-03-20 18:45:1123 days ago1742496311
Monkeys: Old MONKEYS Token
0.00020211 ETH
Transfer220899532025-03-20 18:45:1123 days ago1742496311
Monkeys: Old MONKEYS Token
0.00040422 ETH
Transfer219740982025-03-04 14:23:4740 days ago1741098227
Monkeys: Old MONKEYS Token
0.00025771 ETH
Transfer219740982025-03-04 14:23:4740 days ago1741098227
Monkeys: Old MONKEYS Token
0.00006413 ETH
Add Liquidity ET...219740982025-03-04 14:23:4740 days ago1741098227
Monkeys: Old MONKEYS Token
0.00019357 ETH
Transfer219740982025-03-04 14:23:4740 days ago1741098227
Monkeys: Old MONKEYS Token
0.00038714 ETH
Transfer219663312025-03-03 12:23:2341 days ago1741004603
Monkeys: Old MONKEYS Token
0.00024951 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
MonkeysToken

Compiler Version
v0.8.19+commit.7dd6d404

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-04-08
*/

//SPDX-License-Identifier: MIT
pragma solidity 0.8.19;

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

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

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

contract MonkeysToken is IERC20, Auth {
    string private constant _name         = "Monkeys Token";
    string private constant _symbol       = "MONKEYS";
    uint8 private constant _decimals      = 9;
    uint256 private constant _totalSupply = 500_000_000_000 * (10**_decimals);
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;

    uint32 private _tradeCount;

    address payable private constant _walletMarketing = payable(0x2911BadDba4a2753391265B125C65A50e3d61cBE);
    uint256 private constant _taxSwapMin = _totalSupply / 200000;
    uint256 private constant _taxSwapMax = _totalSupply / 1000;

    mapping (address => bool) private _noFees;

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

    bool private _tradingOpen;

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

    event TokensAirdropped(uint256 totalWallets, uint256 totalTokens);

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

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

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

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

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

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

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

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

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

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        require(sender != address(0), "No transfers from Zero wallet");
        require(sender != address(0xAb5801a7D398351b8bE11C439e05C5B3259aeC9B), "Vitalik NEVER SELLING");  // Tokens in VB wallet are burned

        if (!_tradingOpen) { require(_noFees[sender], "Trading not open"); }
        if ( !_inTaxSwap && _isLP[recipient] ) { _swapTaxAndLiquify(); }

        uint256 _taxAmount = _calculateTax(sender, recipient, amount);
        uint256 _transferAmount = amount - _taxAmount;
        _balances[sender] -= amount;
        if ( _taxAmount > 0 ) { 
            _balances[address(this)] += _taxAmount; 
            incrementTradeCount();
        }
        _balances[recipient] += _transferAmount;
        emit Transfer(sender, recipient, amount);
        return true;
    }

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

        return checkResult;
    }

    function incrementTradeCount() private {
        if ( _tradeCount <= 100_001 ) {
            // tax is finalized after 100,000 trades
            _tradeCount += 1;
        } 
    }

    function tax() external view returns (uint32 taxNumerator, uint32 taxDenominator) {
        (uint32 numerator, uint32 denominator) = _getTaxPercentages();
        return (numerator, denominator);
    }

    function _getTaxPercentages() private view returns (uint32 numerator, uint32 denominator) {
        uint32 taxNumerator;
        uint32 taxDenominator = 100_000;

        if ( _tradeCount <= 20_000 ) {
            taxNumerator = 3000;    // up to 20,000 trades the tax is 3.0 %
        } else if ( _tradeCount <= 100_000 ) {
            taxNumerator = 1000;    // from 20,001 to 100,000 trades the tax is 1.0 %
        } else {
            taxNumerator = 225;     // above 100,000 trades the tax is 0.225 %
        }

        return (taxNumerator, taxDenominator);
    }

    function _calculateTax(address sender, address recipient, uint256 amount) internal view returns (uint256) {
        uint256 taxAmount;
        
        if ( _tradingOpen && !_noFees[sender] && !_noFees[recipient] ) { 
            if ( _isLP[sender] || _isLP[recipient] ) {
                (uint32 numerator, uint32 denominator) = _getTaxPercentages();
                taxAmount = amount * numerator / denominator;
            }
        }

        return taxAmount;
    }

    function marketingMultisig() external pure returns (address) {
        return _walletMarketing;
    }

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

        if ( _taxTokensAvailable >= _taxSwapMin && _tradingOpen ) {
            if ( _taxTokensAvailable >= _taxSwapMax ) { _taxTokensAvailable = _taxSwapMax; }

            uint256 _tokensForLP = 0;
            if ( _tradeCount < 100_000 ) {
                // before 100,000 trades are reached half of the tax goes to LP
                _tokensForLP = _taxTokensAvailable / 4;
            }
            
            uint256 _tokensToSwap = _taxTokensAvailable - _tokensForLP;
            if( _tokensToSwap > 10**_decimals ) {
                uint256 _ethPreSwap = address(this).balance;
                _swapTaxTokensForEth(_tokensToSwap);
                uint256 _ethSwapped = address(this).balance - _ethPreSwap;
                if ( _tokensForLP > 0 ) {
                    uint256 _ethWeiAmount = _ethSwapped / 2 ;
                    _approveRouter(_tokensForLP);
                    _addLiquidity(_tokensForLP, _ethWeiAmount);
                }
            }
            uint256 _contractETHBalance = address(this).balance;
            if(_contractETHBalance > 0) { 
                (bool sent, bytes memory data) = _walletMarketing.call{value: _contractETHBalance}("");
            }
        }
    }

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

    function airdrop(address[] calldata addresses, uint256[] calldata tokenAmounts) external onlyOwner {
        require(addresses.length <= 250,"More than 250 wallets");
        require(addresses.length == tokenAmounts.length,"List length mismatch");

        uint256 airdropTotal = 0;
        for(uint i=0; i < addresses.length; i++){
            airdropTotal += (tokenAmounts[i] * 10**_decimals);
        }
        require(_balances[msg.sender] >= airdropTotal, "Token balance too low");

        for(uint i=0; i < addresses.length; i++){
            _balances[msg.sender] -= (tokenAmounts[i] * 10**_decimals);
            _balances[addresses[i]] += (tokenAmounts[i] * 10**_decimals);
            emit Transfer(msg.sender, addresses[i], (tokenAmounts[i] * 10**_decimals) );       
        }

        emit TokensAirdropped(addresses.length, airdropTotal);
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"totalWallets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"totalTokens","type":"uint256"}],"name":"TokensAirdropped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"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":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokenAmounts","type":"uint256[]"}],"name":"airdrop","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"marketingMultisig","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","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":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"tax","outputs":[{"internalType":"uint32","name":"taxNumerator","type":"uint32"},{"internalType":"uint32","name":"taxDenominator","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052737a250d5630b4cf539739df2c5dacb4c659f2488d600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600860016101000a81548160ff0219169083151502179055503480156200008157600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506009600a620000d491906200057b565b64746a528800620000e69190620005cc565b600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600160008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546040516200022a919062000628565b60405180910390a36001600460008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000732911baddba4a2753391265b125c65a50e3d61cbe73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000645565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200046f57808604811115620004475762000446620003e1565b5b6001851615620004575780820291505b8081029050620004678562000410565b945062000427565b94509492505050565b6000826200048a57600190506200055d565b816200049a57600090506200055d565b8160018114620004b35760028114620004be57620004f4565b60019150506200055d565b60ff841115620004d357620004d2620003e1565b5b8360020a915084821115620004ed57620004ec620003e1565b5b506200055d565b5060208310610133831016604e8410600b84101617156200052e5782820a905083811115620005285762000527620003e1565b5b6200055d565b6200053d84848460016200041d565b92509050818404811115620005575762000556620003e1565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620005888262000564565b915062000595836200056e565b9250620005c47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000478565b905092915050565b6000620005d98262000564565b9150620005e68362000564565b9250828202620005f68162000564565b9150828204841483151762000610576200060f620003e1565b5b5092915050565b620006228162000564565b82525050565b60006020820190506200063f600083018462000617565b92915050565b61315d80620006556000396000f3fe6080604052600436106100ec5760003560e01c806370a082311161008a57806399c8d5561161005957806399c8d556146102f1578063a9059cbb1461031d578063dd62ed3e1461035a578063e8078d9414610397576100f3565b806370a0823114610247578063715018a6146102845780638da5cb5b1461029b57806395d89b41146102c6576100f3565b806318160ddd116100c657806318160ddd1461018b57806323b872dd146101b6578063313ce567146101f3578063672434821461021e576100f3565b806306fdde03146100f8578063095ea7b3146101235780631046128a14610160576100f3565b366100f357005b600080fd5b34801561010457600080fd5b5061010d6103a1565b60405161011a91906121e9565b60405180910390f35b34801561012f57600080fd5b5061014a600480360381019061014591906122a9565b6103de565b6040516101579190612304565b60405180910390f35b34801561016c57600080fd5b506101756104d0565b604051610182919061232e565b60405180910390f35b34801561019757600080fd5b506101a06104ec565b6040516101ad9190612358565b60405180910390f35b3480156101c257600080fd5b506101dd60048036038101906101d89190612373565b610511565b6040516101ea9190612304565b60405180910390f35b3480156101ff57600080fd5b5061020861071b565b60405161021591906123e2565b60405180910390f35b34801561022a57600080fd5b50610245600480360381019061024091906124b8565b610724565b005b34801561025357600080fd5b5061026e60048036038101906102699190612539565b610b7c565b60405161027b9190612358565b60405180910390f35b34801561029057600080fd5b50610299610bc5565b005b3480156102a757600080fd5b506102b0610cce565b6040516102bd919061232e565b60405180910390f35b3480156102d257600080fd5b506102db610cf7565b6040516102e891906121e9565b60405180910390f35b3480156102fd57600080fd5b50610306610d34565b604051610314929190612585565b60405180910390f35b34801561032957600080fd5b50610344600480360381019061033f91906122a9565b610d52565b6040516103519190612304565b60405180910390f35b34801561036657600080fd5b50610381600480360381019061037c91906125ae565b610daf565b60405161038e9190612358565b60405180910390f35b61039f610e36565b005b60606040518060400160405280600d81526020017f4d6f6e6b65797320546f6b656e00000000000000000000000000000000000000815250905090565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104be9190612358565b60405180910390a36001905092915050565b6000732911baddba4a2753391265b125c65a50e3d61cbe905090565b60006009600a6104fc9190612750565b64746a52880061050c919061279b565b905090565b600061051c8461138b565b61055b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055290612829565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146107075781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106869190612849565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610712848484611411565b90509392505050565b60006009905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a9906128c9565b60405180910390fd5b60fa8484905011156107f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f090612935565b60405180910390fd5b818190508484905014610841576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610838906129a1565b60405180910390fd5b6000805b858590508110156108a2576009600a61085e9190612750565b848483818110610871576108706129c1565b5b90506020020135610882919061279b565b8261088d91906129f0565b9150808061089a90612a24565b915050610845565b5080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091c90612ab8565b60405180910390fd5b60005b85859050811015610b38576009600a6109419190612750565b848483818110610954576109536129c1565b5b90506020020135610965919061279b565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109b39190612849565b925050819055506009600a6109c89190612750565b8484838181106109db576109da6129c1565b5b905060200201356109ec919061279b565b60016000888885818110610a0357610a026129c1565b5b9050602002016020810190610a189190612539565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a6191906129f0565b92505081905550858582818110610a7b57610a7a6129c1565b5b9050602002016020810190610a909190612539565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a610aec9190612750565b878786818110610aff57610afe6129c1565b5b90506020020135610b10919061279b565b604051610b1d9190612358565b60405180910390a38080610b3090612a24565b915050610928565b507f71cc7095cc35ed4701c217a8efb440732eb0737da67f6548c008ac26fba954648585905082604051610b6d929190612ad8565b60405180910390a15050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4a906128c9565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610cc4919061232e565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f4d4f4e4b45595300000000000000000000000000000000000000000000000000815250905090565b600080600080610d426117bd565b9150915081819350935050509091565b6000610d5d3361138b565b610d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9390612829565b60405180910390fd5b610da7338484611411565b905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ec4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebb906128c9565b60405180910390fd5b6001600860016101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6790612b4d565b60405180910390fd5b600860009054906101000a900460ff1615610fc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb790612bb9565b60405180910390fd5b6000341180610fcf5750600047115b61100e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100590612c25565b60405180910390fd5b6000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611090576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108790612c91565b60405180910390fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111219190612cc6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ce9190612cc6565b6040518363ffffffff1660e01b81526004016111eb929190612cf3565b6020604051808303816000875af115801561120a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122e9190612cc6565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506112b7600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205447611832565b600160076000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600360006101000a81548163ffffffff021916908363ffffffff1602179055506001600860006101000a81548160ff0219169083151502179055506000600860016101000a81548160ff021916908315150217905550565b60008060009050600860009054906101000a900460ff16156113b05760019050611408565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561140757600190505b5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147890612d68565b60405180910390fd5b73ab5801a7d398351b8be11c439e05c5b3259aec9b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611503576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fa90612dd4565b60405180910390fd5b600860009054906101000a900460ff166115a457600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166115a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159a90612829565b60405180910390fd5b5b600860019054906101000a900460ff1615801561160a5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156116185761161761190c565b5b6000611625858585611b3e565b9050600081846116359190612849565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116869190612849565b9250508190555060008211156116f55781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116e591906129f0565b925050819055506116f4611ceb565b5b80600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461174491906129f0565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516117a89190612358565b60405180910390a36001925050509392505050565b600080600080620186a09050614e20600360009054906101000a900463ffffffff1663ffffffff16116117f457610bb89150611826565b620186a0600360009054906101000a900463ffffffff1663ffffffff1611611820576103e89150611825565b60e191505b5b81819350935050509091565b61183b82611d50565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016118c296959493929190612e39565b60606040518083038185885af11580156118e0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119059190612eaf565b5050505050565b6001600860016101000a81548160ff021916908315150217905550600061193230610b7c565b905062030d406009600a6119469190612750565b64746a528800611956919061279b565b6119609190612f31565b811015801561197b5750600860009054906101000a900460ff165b15611b20576103e86009600a6119919190612750565b64746a5288006119a1919061279b565b6119ab9190612f31565b81106119df576103e86009600a6119c29190612750565b64746a5288006119d2919061279b565b6119dc9190612f31565b90505b6000620186a0600360009054906101000a900463ffffffff1663ffffffff161015611a1457600482611a119190612f31565b90505b60008183611a229190612849565b90506009600a611a329190612750565b811115611a89576000479050611a4782611f3a565b60008147611a559190612849565b90506000841115611a86576000600282611a6f9190612f31565b9050611a7a85611d50565b611a848582611832565b505b50505b60004790506000811115611b1c57600080732911baddba4a2753391265b125c65a50e3d61cbe73ffffffffffffffffffffffffffffffffffffffff1683604051611ad290612f93565b60006040518083038185875af1925050503d8060008114611b0f576040519150601f19603f3d011682016040523d82523d6000602084013e611b14565b606091505b509150915050505b5050505b506000600860016101000a81548160ff021916908315150217905550565b600080600860009054906101000a900460ff168015611ba75750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611bfd5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ce057600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ca35750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611cdf57600080611cb36117bd565b915091508063ffffffff168263ffffffff1686611cd0919061279b565b611cda9190612f31565b925050505b5b809150509392505050565b620186a1600360009054906101000a900463ffffffff1663ffffffff1611611d4e576001600360008282829054906101000a900463ffffffff16611d2f9190612fa8565b92506101000a81548163ffffffff021916908363ffffffff1602179055505b565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611f37577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051611f2e9190612358565b60405180910390a35b50565b611f4381611d50565b6000600267ffffffffffffffff811115611f6057611f5f612fe0565b5b604051908082528060200260200182016040528015611f8e5781602001602082028036833780820191505090505b5090503081600081518110611fa657611fa56129c1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561204d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120719190612cc6565b81600181518110612085576120846129c1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121239594939291906130cd565b600060405180830381600087803b15801561213d57600080fd5b505af1158015612151573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612193578082015181840152602081019050612178565b60008484015250505050565b6000601f19601f8301169050919050565b60006121bb82612159565b6121c58185612164565b93506121d5818560208601612175565b6121de8161219f565b840191505092915050565b6000602082019050818103600083015261220381846121b0565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061224082612215565b9050919050565b61225081612235565b811461225b57600080fd5b50565b60008135905061226d81612247565b92915050565b6000819050919050565b61228681612273565b811461229157600080fd5b50565b6000813590506122a38161227d565b92915050565b600080604083850312156122c0576122bf61220b565b5b60006122ce8582860161225e565b92505060206122df85828601612294565b9150509250929050565b60008115159050919050565b6122fe816122e9565b82525050565b600060208201905061231960008301846122f5565b92915050565b61232881612235565b82525050565b6000602082019050612343600083018461231f565b92915050565b61235281612273565b82525050565b600060208201905061236d6000830184612349565b92915050565b60008060006060848603121561238c5761238b61220b565b5b600061239a8682870161225e565b93505060206123ab8682870161225e565b92505060406123bc86828701612294565b9150509250925092565b600060ff82169050919050565b6123dc816123c6565b82525050565b60006020820190506123f760008301846123d3565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612422576124216123fd565b5b8235905067ffffffffffffffff81111561243f5761243e612402565b5b60208301915083602082028301111561245b5761245a612407565b5b9250929050565b60008083601f840112612478576124776123fd565b5b8235905067ffffffffffffffff81111561249557612494612402565b5b6020830191508360208202830111156124b1576124b0612407565b5b9250929050565b600080600080604085870312156124d2576124d161220b565b5b600085013567ffffffffffffffff8111156124f0576124ef612210565b5b6124fc8782880161240c565b9450945050602085013567ffffffffffffffff81111561251f5761251e612210565b5b61252b87828801612462565b925092505092959194509250565b60006020828403121561254f5761254e61220b565b5b600061255d8482850161225e565b91505092915050565b600063ffffffff82169050919050565b61257f81612566565b82525050565b600060408201905061259a6000830185612576565b6125a76020830184612576565b9392505050565b600080604083850312156125c5576125c461220b565b5b60006125d38582860161225e565b92505060206125e48582860161225e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612674578086048111156126505761264f6125ee565b5b600185161561265f5780820291505b808102905061266d8561261d565b9450612634565b94509492505050565b60008261268d5760019050612749565b8161269b5760009050612749565b81600181146126b157600281146126bb576126ea565b6001915050612749565b60ff8411156126cd576126cc6125ee565b5b8360020a9150848211156126e4576126e36125ee565b5b50612749565b5060208310610133831016604e8410600b841016171561271f5782820a90508381111561271a576127196125ee565b5b612749565b61272c848484600161262a565b92509050818404811115612743576127426125ee565b5b81810290505b9392505050565b600061275b82612273565b9150612766836123c6565b92506127937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461267d565b905092915050565b60006127a682612273565b91506127b183612273565b92508282026127bf81612273565b915082820484148315176127d6576127d56125ee565b5b5092915050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000612813601083612164565b915061281e826127dd565b602082019050919050565b6000602082019050818103600083015261284281612806565b9050919050565b600061285482612273565b915061285f83612273565b9250828203905081811115612877576128766125ee565b5b92915050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000600082015250565b60006128b3601883612164565b91506128be8261287d565b602082019050919050565b600060208201905081810360008301526128e2816128a6565b9050919050565b7f4d6f7265207468616e203235302077616c6c6574730000000000000000000000600082015250565b600061291f601583612164565b915061292a826128e9565b602082019050919050565b6000602082019050818103600083015261294e81612912565b9050919050565b7f4c697374206c656e677468206d69736d61746368000000000000000000000000600082015250565b600061298b601483612164565b915061299682612955565b602082019050919050565b600060208201905081810360008301526129ba8161297e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006129fb82612273565b9150612a0683612273565b9250828201905080821115612a1e57612a1d6125ee565b5b92915050565b6000612a2f82612273565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a6157612a606125ee565b5b600182019050919050565b7f546f6b656e2062616c616e636520746f6f206c6f770000000000000000000000600082015250565b6000612aa2601583612164565b9150612aad82612a6c565b602082019050919050565b60006020820190508181036000830152612ad181612a95565b9050919050565b6000604082019050612aed6000830185612349565b612afa6020830184612349565b9392505050565b7f4c50206578697374730000000000000000000000000000000000000000000000600082015250565b6000612b37600983612164565b9150612b4282612b01565b602082019050919050565b60006020820190508181036000830152612b6681612b2a565b9050919050565b7f74726164696e67206973206f70656e0000000000000000000000000000000000600082015250565b6000612ba3600f83612164565b9150612bae82612b6d565b602082019050919050565b60006020820190508181036000830152612bd281612b96565b9050919050565b7f4e6f2045544820696e20636f6e7472616374206f72206d657373616765000000600082015250565b6000612c0f601d83612164565b9150612c1a82612bd9565b602082019050919050565b60006020820190508181036000830152612c3e81612c02565b9050919050565b7f4e6f20746f6b656e7320696e20636f6e74726163740000000000000000000000600082015250565b6000612c7b601583612164565b9150612c8682612c45565b602082019050919050565b60006020820190508181036000830152612caa81612c6e565b9050919050565b600081519050612cc081612247565b92915050565b600060208284031215612cdc57612cdb61220b565b5b6000612cea84828501612cb1565b91505092915050565b6000604082019050612d08600083018561231f565b612d15602083018461231f565b9392505050565b7f4e6f207472616e73666572732066726f6d205a65726f2077616c6c6574000000600082015250565b6000612d52601d83612164565b9150612d5d82612d1c565b602082019050919050565b60006020820190508181036000830152612d8181612d45565b9050919050565b7f566974616c696b204e455645522053454c4c494e470000000000000000000000600082015250565b6000612dbe601583612164565b9150612dc982612d88565b602082019050919050565b60006020820190508181036000830152612ded81612db1565b9050919050565b6000819050919050565b6000819050919050565b6000612e23612e1e612e1984612df4565b612dfe565b612273565b9050919050565b612e3381612e08565b82525050565b600060c082019050612e4e600083018961231f565b612e5b6020830188612349565b612e686040830187612e2a565b612e756060830186612e2a565b612e82608083018561231f565b612e8f60a0830184612349565b979650505050505050565b600081519050612ea98161227d565b92915050565b600080600060608486031215612ec857612ec761220b565b5b6000612ed686828701612e9a565b9350506020612ee786828701612e9a565b9250506040612ef886828701612e9a565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612f3c82612273565b9150612f4783612273565b925082612f5757612f56612f02565b5b828204905092915050565b600081905092915050565b50565b6000612f7d600083612f62565b9150612f8882612f6d565b600082019050919050565b6000612f9e82612f70565b9150819050919050565b6000612fb382612566565b9150612fbe83612566565b9250828201905063ffffffff811115612fda57612fd96125ee565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61304481612235565b82525050565b6000613056838361303b565b60208301905092915050565b6000602082019050919050565b600061307a8261300f565b613084818561301a565b935061308f8361302b565b8060005b838110156130c05781516130a7888261304a565b97506130b283613062565b925050600181019050613093565b5085935050505092915050565b600060a0820190506130e26000830188612349565b6130ef6020830187612e2a565b8181036040830152613101818661306f565b9050613110606083018561231f565b61311d6080830184612349565b969550505050505056fea26469706673582212201916b82982dd19113c2eea2dbbeb092b6a57affd0e33faa5f0f0ca937f00f7e664736f6c63430008130033

Deployed Bytecode

0x6080604052600436106100ec5760003560e01c806370a082311161008a57806399c8d5561161005957806399c8d556146102f1578063a9059cbb1461031d578063dd62ed3e1461035a578063e8078d9414610397576100f3565b806370a0823114610247578063715018a6146102845780638da5cb5b1461029b57806395d89b41146102c6576100f3565b806318160ddd116100c657806318160ddd1461018b57806323b872dd146101b6578063313ce567146101f3578063672434821461021e576100f3565b806306fdde03146100f8578063095ea7b3146101235780631046128a14610160576100f3565b366100f357005b600080fd5b34801561010457600080fd5b5061010d6103a1565b60405161011a91906121e9565b60405180910390f35b34801561012f57600080fd5b5061014a600480360381019061014591906122a9565b6103de565b6040516101579190612304565b60405180910390f35b34801561016c57600080fd5b506101756104d0565b604051610182919061232e565b60405180910390f35b34801561019757600080fd5b506101a06104ec565b6040516101ad9190612358565b60405180910390f35b3480156101c257600080fd5b506101dd60048036038101906101d89190612373565b610511565b6040516101ea9190612304565b60405180910390f35b3480156101ff57600080fd5b5061020861071b565b60405161021591906123e2565b60405180910390f35b34801561022a57600080fd5b50610245600480360381019061024091906124b8565b610724565b005b34801561025357600080fd5b5061026e60048036038101906102699190612539565b610b7c565b60405161027b9190612358565b60405180910390f35b34801561029057600080fd5b50610299610bc5565b005b3480156102a757600080fd5b506102b0610cce565b6040516102bd919061232e565b60405180910390f35b3480156102d257600080fd5b506102db610cf7565b6040516102e891906121e9565b60405180910390f35b3480156102fd57600080fd5b50610306610d34565b604051610314929190612585565b60405180910390f35b34801561032957600080fd5b50610344600480360381019061033f91906122a9565b610d52565b6040516103519190612304565b60405180910390f35b34801561036657600080fd5b50610381600480360381019061037c91906125ae565b610daf565b60405161038e9190612358565b60405180910390f35b61039f610e36565b005b60606040518060400160405280600d81526020017f4d6f6e6b65797320546f6b656e00000000000000000000000000000000000000815250905090565b600081600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516104be9190612358565b60405180910390a36001905092915050565b6000732911baddba4a2753391265b125c65a50e3d61cbe905090565b60006009600a6104fc9190612750565b64746a52880061050c919061279b565b905090565b600061051c8461138b565b61055b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055290612829565b60405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054146107075781600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106869190612849565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610712848484611411565b90509392505050565b60006009905090565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146107b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107a9906128c9565b60405180910390fd5b60fa8484905011156107f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107f090612935565b60405180910390fd5b818190508484905014610841576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610838906129a1565b60405180910390fd5b6000805b858590508110156108a2576009600a61085e9190612750565b848483818110610871576108706129c1565b5b90506020020135610882919061279b565b8261088d91906129f0565b9150808061089a90612a24565b915050610845565b5080600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610925576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091c90612ab8565b60405180910390fd5b60005b85859050811015610b38576009600a6109419190612750565b848483818110610954576109536129c1565b5b90506020020135610965919061279b565b600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546109b39190612849565b925050819055506009600a6109c89190612750565b8484838181106109db576109da6129c1565b5b905060200201356109ec919061279b565b60016000888885818110610a0357610a026129c1565b5b9050602002016020810190610a189190612539565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610a6191906129f0565b92505081905550858582818110610a7b57610a7a6129c1565b5b9050602002016020810190610a909190612539565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a610aec9190612750565b878786818110610aff57610afe6129c1565b5b90506020020135610b10919061279b565b604051610b1d9190612358565b60405180910390a38080610b3090612a24565b915050610928565b507f71cc7095cc35ed4701c217a8efb440732eb0737da67f6548c008ac26fba954648585905082604051610b6d929190612ad8565b60405180910390a15050505050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c4a906128c9565b60405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc6861636000604051610cc4919061232e565b60405180910390a1565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600781526020017f4d4f4e4b45595300000000000000000000000000000000000000000000000000815250905090565b600080600080610d426117bd565b9150915081819350935050509091565b6000610d5d3361138b565b610d9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d9390612829565b60405180910390fd5b610da7338484611411565b905092915050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ec4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebb906128c9565b60405180910390fd5b6001600860016101000a81548160ff021916908315150217905550600073ffffffffffffffffffffffffffffffffffffffff16600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f6790612b4d565b60405180910390fd5b600860009054906101000a900460ff1615610fc0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb790612bb9565b60405180910390fd5b6000341180610fcf5750600047115b61100e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100590612c25565b60405180910390fd5b6000600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411611090576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108790612c91565b60405180910390fd5b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111219190612cc6565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111ce9190612cc6565b6040518363ffffffff1660e01b81526004016111eb929190612cf3565b6020604051808303816000875af115801561120a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122e9190612cc6565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506112b7600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205447611832565b600160076000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506000600360006101000a81548163ffffffff021916908363ffffffff1602179055506001600860006101000a81548160ff0219169083151502179055506000600860016101000a81548160ff021916908315150217905550565b60008060009050600860009054906101000a900460ff16156113b05760019050611408565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561140757600190505b5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147890612d68565b60405180910390fd5b73ab5801a7d398351b8be11c439e05c5b3259aec9b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603611503576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114fa90612dd4565b60405180910390fd5b600860009054906101000a900460ff166115a457600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166115a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159a90612829565b60405180910390fd5b5b600860019054906101000a900460ff1615801561160a5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156116185761161761190c565b5b6000611625858585611b3e565b9050600081846116359190612849565b905083600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116869190612849565b9250508190555060008211156116f55781600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116e591906129f0565b925050819055506116f4611ceb565b5b80600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461174491906129f0565b925050819055508473ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef866040516117a89190612358565b60405180910390a36001925050509392505050565b600080600080620186a09050614e20600360009054906101000a900463ffffffff1663ffffffff16116117f457610bb89150611826565b620186a0600360009054906101000a900463ffffffff1663ffffffff1611611820576103e89150611825565b60e191505b5b81819350935050509091565b61183b82611d50565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016118c296959493929190612e39565b60606040518083038185885af11580156118e0573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906119059190612eaf565b5050505050565b6001600860016101000a81548160ff021916908315150217905550600061193230610b7c565b905062030d406009600a6119469190612750565b64746a528800611956919061279b565b6119609190612f31565b811015801561197b5750600860009054906101000a900460ff165b15611b20576103e86009600a6119919190612750565b64746a5288006119a1919061279b565b6119ab9190612f31565b81106119df576103e86009600a6119c29190612750565b64746a5288006119d2919061279b565b6119dc9190612f31565b90505b6000620186a0600360009054906101000a900463ffffffff1663ffffffff161015611a1457600482611a119190612f31565b90505b60008183611a229190612849565b90506009600a611a329190612750565b811115611a89576000479050611a4782611f3a565b60008147611a559190612849565b90506000841115611a86576000600282611a6f9190612f31565b9050611a7a85611d50565b611a848582611832565b505b50505b60004790506000811115611b1c57600080732911baddba4a2753391265b125c65a50e3d61cbe73ffffffffffffffffffffffffffffffffffffffff1683604051611ad290612f93565b60006040518083038185875af1925050503d8060008114611b0f576040519150601f19603f3d011682016040523d82523d6000602084013e611b14565b606091505b509150915050505b5050505b506000600860016101000a81548160ff021916908315150217905550565b600080600860009054906101000a900460ff168015611ba75750600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611bfd5750600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ce057600760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611ca35750600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611cdf57600080611cb36117bd565b915091508063ffffffff168263ffffffff1686611cd0919061279b565b611cda9190612f31565b925050505b5b809150509392505050565b620186a1600360009054906101000a900463ffffffff1663ffffffff1611611d4e576001600360008282829054906101000a900463ffffffff16611d2f9190612fa8565b92506101000a81548163ffffffff021916908363ffffffff1602179055505b565b80600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611f37577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9257fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff604051611f2e9190612358565b60405180910390a35b50565b611f4381611d50565b6000600267ffffffffffffffff811115611f6057611f5f612fe0565b5b604051908082528060200260200182016040528015611f8e5781602001602082028036833780820191505090505b5090503081600081518110611fa657611fa56129c1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561204d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120719190612cc6565b81600181518110612085576120846129c1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b81526004016121239594939291906130cd565b600060405180830381600087803b15801561213d57600080fd5b505af1158015612151573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612193578082015181840152602081019050612178565b60008484015250505050565b6000601f19601f8301169050919050565b60006121bb82612159565b6121c58185612164565b93506121d5818560208601612175565b6121de8161219f565b840191505092915050565b6000602082019050818103600083015261220381846121b0565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061224082612215565b9050919050565b61225081612235565b811461225b57600080fd5b50565b60008135905061226d81612247565b92915050565b6000819050919050565b61228681612273565b811461229157600080fd5b50565b6000813590506122a38161227d565b92915050565b600080604083850312156122c0576122bf61220b565b5b60006122ce8582860161225e565b92505060206122df85828601612294565b9150509250929050565b60008115159050919050565b6122fe816122e9565b82525050565b600060208201905061231960008301846122f5565b92915050565b61232881612235565b82525050565b6000602082019050612343600083018461231f565b92915050565b61235281612273565b82525050565b600060208201905061236d6000830184612349565b92915050565b60008060006060848603121561238c5761238b61220b565b5b600061239a8682870161225e565b93505060206123ab8682870161225e565b92505060406123bc86828701612294565b9150509250925092565b600060ff82169050919050565b6123dc816123c6565b82525050565b60006020820190506123f760008301846123d3565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612422576124216123fd565b5b8235905067ffffffffffffffff81111561243f5761243e612402565b5b60208301915083602082028301111561245b5761245a612407565b5b9250929050565b60008083601f840112612478576124776123fd565b5b8235905067ffffffffffffffff81111561249557612494612402565b5b6020830191508360208202830111156124b1576124b0612407565b5b9250929050565b600080600080604085870312156124d2576124d161220b565b5b600085013567ffffffffffffffff8111156124f0576124ef612210565b5b6124fc8782880161240c565b9450945050602085013567ffffffffffffffff81111561251f5761251e612210565b5b61252b87828801612462565b925092505092959194509250565b60006020828403121561254f5761254e61220b565b5b600061255d8482850161225e565b91505092915050565b600063ffffffff82169050919050565b61257f81612566565b82525050565b600060408201905061259a6000830185612576565b6125a76020830184612576565b9392505050565b600080604083850312156125c5576125c461220b565b5b60006125d38582860161225e565b92505060206125e48582860161225e565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115612674578086048111156126505761264f6125ee565b5b600185161561265f5780820291505b808102905061266d8561261d565b9450612634565b94509492505050565b60008261268d5760019050612749565b8161269b5760009050612749565b81600181146126b157600281146126bb576126ea565b6001915050612749565b60ff8411156126cd576126cc6125ee565b5b8360020a9150848211156126e4576126e36125ee565b5b50612749565b5060208310610133831016604e8410600b841016171561271f5782820a90508381111561271a576127196125ee565b5b612749565b61272c848484600161262a565b92509050818404811115612743576127426125ee565b5b81810290505b9392505050565b600061275b82612273565b9150612766836123c6565b92506127937fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461267d565b905092915050565b60006127a682612273565b91506127b183612273565b92508282026127bf81612273565b915082820484148315176127d6576127d56125ee565b5b5092915050565b7f54726164696e67206e6f74206f70656e00000000000000000000000000000000600082015250565b6000612813601083612164565b915061281e826127dd565b602082019050919050565b6000602082019050818103600083015261284281612806565b9050919050565b600061285482612273565b915061285f83612273565b9250828203905081811115612877576128766125ee565b5b92915050565b7f4f6e6c79206f776e65722063616e2063616c6c20746869730000000000000000600082015250565b60006128b3601883612164565b91506128be8261287d565b602082019050919050565b600060208201905081810360008301526128e2816128a6565b9050919050565b7f4d6f7265207468616e203235302077616c6c6574730000000000000000000000600082015250565b600061291f601583612164565b915061292a826128e9565b602082019050919050565b6000602082019050818103600083015261294e81612912565b9050919050565b7f4c697374206c656e677468206d69736d61746368000000000000000000000000600082015250565b600061298b601483612164565b915061299682612955565b602082019050919050565b600060208201905081810360008301526129ba8161297e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006129fb82612273565b9150612a0683612273565b9250828201905080821115612a1e57612a1d6125ee565b5b92915050565b6000612a2f82612273565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a6157612a606125ee565b5b600182019050919050565b7f546f6b656e2062616c616e636520746f6f206c6f770000000000000000000000600082015250565b6000612aa2601583612164565b9150612aad82612a6c565b602082019050919050565b60006020820190508181036000830152612ad181612a95565b9050919050565b6000604082019050612aed6000830185612349565b612afa6020830184612349565b9392505050565b7f4c50206578697374730000000000000000000000000000000000000000000000600082015250565b6000612b37600983612164565b9150612b4282612b01565b602082019050919050565b60006020820190508181036000830152612b6681612b2a565b9050919050565b7f74726164696e67206973206f70656e0000000000000000000000000000000000600082015250565b6000612ba3600f83612164565b9150612bae82612b6d565b602082019050919050565b60006020820190508181036000830152612bd281612b96565b9050919050565b7f4e6f2045544820696e20636f6e7472616374206f72206d657373616765000000600082015250565b6000612c0f601d83612164565b9150612c1a82612bd9565b602082019050919050565b60006020820190508181036000830152612c3e81612c02565b9050919050565b7f4e6f20746f6b656e7320696e20636f6e74726163740000000000000000000000600082015250565b6000612c7b601583612164565b9150612c8682612c45565b602082019050919050565b60006020820190508181036000830152612caa81612c6e565b9050919050565b600081519050612cc081612247565b92915050565b600060208284031215612cdc57612cdb61220b565b5b6000612cea84828501612cb1565b91505092915050565b6000604082019050612d08600083018561231f565b612d15602083018461231f565b9392505050565b7f4e6f207472616e73666572732066726f6d205a65726f2077616c6c6574000000600082015250565b6000612d52601d83612164565b9150612d5d82612d1c565b602082019050919050565b60006020820190508181036000830152612d8181612d45565b9050919050565b7f566974616c696b204e455645522053454c4c494e470000000000000000000000600082015250565b6000612dbe601583612164565b9150612dc982612d88565b602082019050919050565b60006020820190508181036000830152612ded81612db1565b9050919050565b6000819050919050565b6000819050919050565b6000612e23612e1e612e1984612df4565b612dfe565b612273565b9050919050565b612e3381612e08565b82525050565b600060c082019050612e4e600083018961231f565b612e5b6020830188612349565b612e686040830187612e2a565b612e756060830186612e2a565b612e82608083018561231f565b612e8f60a0830184612349565b979650505050505050565b600081519050612ea98161227d565b92915050565b600080600060608486031215612ec857612ec761220b565b5b6000612ed686828701612e9a565b9350506020612ee786828701612e9a565b9250506040612ef886828701612e9a565b9150509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612f3c82612273565b9150612f4783612273565b925082612f5757612f56612f02565b5b828204905092915050565b600081905092915050565b50565b6000612f7d600083612f62565b9150612f8882612f6d565b600082019050919050565b6000612f9e82612f70565b9150819050919050565b6000612fb382612566565b9150612fbe83612566565b9250828201905063ffffffff811115612fda57612fd96125ee565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61304481612235565b82525050565b6000613056838361303b565b60208301905092915050565b6000602082019050919050565b600061307a8261300f565b613084818561301a565b935061308f8361302b565b8060005b838110156130c05781516130a7888261304a565b97506130b283613062565b925050600181019050613093565b5085935050505092915050565b600060a0820190506130e26000830188612349565b6130ef6020830187612e2a565b8181036040830152613101818661306f565b9050613110606083018561231f565b61311d6080830184612349565b969550505050505056fea26469706673582212201916b82982dd19113c2eea2dbbeb092b6a57affd0e33faa5f0f0ca937f00f7e664736f6c63430008130033

Deployed Bytecode Sourcemap

2046:9730:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3958:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4296:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9051:103;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3688:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4753:404;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3782:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10897:876;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4044:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1902:137;;;;;;;;;;;;;:::i;:::-;;1831:65;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3868:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7759:204;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;4520:225;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4155:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5490:632;;;:::i;:::-;;3958:80;4006:13;4030:5;;;;;;;;;;;;;;;;;4023:12;;3958:80;:::o;4296:216::-;4371:4;4423:6;4388:11;:23;4400:10;4388:23;;;;;;;;;;;;;;;:32;4412:7;4388:32;;;;;;;;;;;;;;;:41;;;;4466:7;4445:37;;4454:10;4445:37;;;4475:6;4445:37;;;;;;:::i;:::-;;;;;;;;4500:4;4493:11;;4296:216;;;;:::o;9051:103::-;9103:7;2563:42;9123:23;;9051:103;:::o;3688:88::-;3743:7;2249:1;2316:2;:13;;;;:::i;:::-;2297:15;:33;;;;:::i;:::-;3754:19;;3688:88;:::o;4753:404::-;4853:4;4878:25;4896:6;4878:17;:25::i;:::-;4870:54;;;;;;;;;;;;:::i;:::-;;;;;;;;;4973:17;4938:11;:19;4950:6;4938:19;;;;;;;;;;;;;;;:31;4958:10;4938:31;;;;;;;;;;;;;;;;:52;4935:157;;5074:6;5040:11;:19;5052:6;5040:19;;;;;;;;;;;;;;;:31;5060:10;5040:31;;;;;;;;;;;;;;;;:40;;;;:::i;:::-;5006:11;:19;5018:6;5006:19;;;;;;;;;;;;;;;:31;5026:10;5006:31;;;;;;;;;;;;;;;:74;;;;4935:157;5109:40;5123:6;5131:9;5142:6;5109:13;:40::i;:::-;5102:47;;4753:404;;;;;:::o;3782:80::-;3834:5;2249:1;3843:16;;3782:80;:::o;10897:876::-;1784:6;;;;;;;;;;1770:20;;:10;:20;;;1762:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;11035:3:::1;11015:9;;:16;;:23;;11007:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;11102:12;;:19;;11082:9;;:16;;:39;11074:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11158:20;11197:6:::0;11193:116:::1;11211:9;;:16;;11207:1;:20;11193:116;;;2249:1;11283:2;:13;;;;:::i;:::-;11265:12;;11278:1;11265:15;;;;;;;:::i;:::-;;;;;;;;:31;;;;:::i;:::-;11248:49;;;;;:::i;:::-;;;11229:3;;;;;:::i;:::-;;;;11193:116;;;;11352:12;11327:9;:21;11337:10;11327:21;;;;;;;;;;;;;;;;:37;;11319:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;11407:6;11403:297;11421:9;;:16;;11417:1;:20;11403:297;;;2249:1;11502:2;:13;;;;:::i;:::-;11484:12;;11497:1;11484:15;;;;;;;:::i;:::-;;;;;;;;:31;;;;:::i;:::-;11458:9;:21;11468:10;11458:21;;;;;;;;;;;;;;;;:58;;;;;;;:::i;:::-;;;;;;;;2249:1;11577:2;:13;;;;:::i;:::-;11559:12;;11572:1;11559:15;;;;;;;:::i;:::-;;;;;;;;:31;;;;:::i;:::-;11531:9;:23;11541:9;;11551:1;11541:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11531:23;;;;;;;;;;;;;;;;:60;;;;;;;:::i;:::-;;;;;;;;11632:9;;11642:1;11632:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;11611:70;;11620:10;11611:70;;;2249:1;11665:2;:13;;;;:::i;:::-;11647:12;;11660:1;11647:15;;;;;;;:::i;:::-;;;;;;;;:31;;;;:::i;:::-;11611:70;;;;;;:::i;:::-;;;;;;;;11439:3;;;;;:::i;:::-;;;;11403:297;;;;11717:48;11734:9;;:16;;11752:12;11717:48;;;;;;;:::i;:::-;;;;;;;;10996:777;10897:876:::0;;;;:::o;4044:105::-;4110:7;4128:9;:18;4138:7;4128:18;;;;;;;;;;;;;;;;4121:25;;4044:105;;;:::o;1902:137::-;1784:6;;;;;;;;;;1770:20;;:10;:20;;;1762:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;1979:1:::1;1962:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1998:32;2027:1;1998:32;;;;;;:::i;:::-;;;;;;;;1902:137::o:0;1831:65::-;1869:7;1887:6;;;;;;;;;;;1880:13;;1831:65;:::o;3868:84::-;3918:13;3942:7;;;;;;;;;;;;;;;;;3935:14;;3868:84;:::o;7759:204::-;7797:19;7818:21;7853:16;7871:18;7893:20;:18;:20::i;:::-;7852:61;;;;7932:9;7943:11;7924:31;;;;;;7759:204;;:::o;4520:225::-;4600:4;4625:29;4643:10;4625:17;:29::i;:::-;4617:58;;;;;;;;;;;;:::i;:::-;;;;;;;;;4693:44;4707:10;4719:9;4730:6;4693:13;:44::i;:::-;4686:51;;4520:225;;;;:::o;4155:133::-;4239:7;4257:11;:19;4269:6;4257:19;;;;;;;;;;;;;;;:28;4277:7;4257:28;;;;;;;;;;;;;;;;4250:35;;4155:133;;;;:::o;5490:632::-;1784:6;;;;;;;;;;1770:20;;:10;:20;;;1762:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;3193:4:::1;3180:10;;:17;;;;;;;;;;;;;;;;;;5594:1:::2;5572:24;;:10;;;;;;;;;;;:24;;;5564:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;5630:12;;;;;;;;;;;5629:13;5621:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;5693:1;5681:9;:13;:40;;;;5720:1;5698:21;:23;5681:40;5673:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;5799:1;5774:9;:24;5792:4;5774:24;;;;;;;;;;;;;;;;:26;5766:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;5868:18;;;;;;;;;;;:26;;;:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5850:58;;;5917:4;5924:18;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5850:100;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5837:10;;:113;;;;;;;;;;;;;;;;;;5961:62;5975:9;:24;5993:4;5975:24;;;;;;;;;;;;;;;;6001:21;5961:13;:62::i;:::-;6054:4;6034:5;:17;6040:10;;;;;;;;;;;6034:17;;;;;;;;;;;;;;;;:24;;;;;;;;;;;;;;;;;;6083:1;6069:11;;:15;;;;;;;;;;;;;;;;;;6110:4;6095:12;;:19;;;;;;;;;;;;;;;;;;3235:5:::1;3222:10;;:18;;;;;;;;;;;;;;;;;;5490:632::o:0;7300:258::-;7365:4;7381:16;7400:5;7381:24;;7421:12;;;;;;;;;;;7416:103;;;7452:4;7438:18;;7416:103;;;7479:7;:15;7487:6;7479:15;;;;;;;;;;;;;;;;;;;;;;;;;7475:44;;;7512:4;7498:18;;7475:44;7416:103;7539:11;7532:18;;;7300:258;;;:::o;6392:900::-;6484:4;6527:1;6509:20;;:6;:20;;;6501:62;;;;;;;;;;;;:::i;:::-;;;;;;;;;6600:42;6582:61;;:6;:61;;;6574:95;;;;;;;;;;;;:::i;:::-;;;;;;;;;6722:12;;;;;;;;;;;6717:68;;6746:7;:15;6754:6;6746:15;;;;;;;;;;;;;;;;;;;;;;;;;6738:44;;;;;;;;;;;;:::i;:::-;;;;;;;;;6717:68;6801:10;;;;;;;;;;;6800:11;:31;;;;;6815:5;:16;6821:9;6815:16;;;;;;;;;;;;;;;;;;;;;;;;;6800:31;6795:64;;;6836:20;:18;:20::i;:::-;6795:64;6871:18;6892:40;6906:6;6914:9;6925:6;6892:13;:40::i;:::-;6871:61;;6943:23;6978:10;6969:6;:19;;;;:::i;:::-;6943:45;;7020:6;6999:9;:17;7009:6;6999:17;;;;;;;;;;;;;;;;:27;;;;;;;:::i;:::-;;;;;;;;7055:1;7042:10;:14;7037:125;;;7103:10;7075:9;:24;7093:4;7075:24;;;;;;;;;;;;;;;;:38;;;;;;;:::i;:::-;;;;;;;;7129:21;:19;:21::i;:::-;7037:125;7196:15;7172:9;:20;7182:9;7172:20;;;;;;;;;;;;;;;;:39;;;;;;;:::i;:::-;;;;;;;;7244:9;7227:35;;7236:6;7227:35;;;7255:6;7227:35;;;;;;:::i;:::-;;;;;;;;7280:4;7273:11;;;;6392:900;;;;;:::o;7971:583::-;8023:16;8041:18;8072:19;8102:21;8126:7;8102:31;;8166:6;8151:11;;;;;;;;;;;:21;;;8146:351;;8205:4;8190:19;;8146:351;;;8290:7;8275:11;;;;;;;;;;;:22;;;8270:227;;8330:4;8315:19;;8270:227;;;8435:3;8420:18;;8270:227;8146:351;8517:12;8531:14;8509:37;;;;;;7971:583;;:::o;6130:254::-;6218:28;6233:12;6218:14;:28::i;:::-;6257:18;;;;;;;;;;;:34;;;6299:13;6324:4;6331:12;6345:1;6348;6351:6;;;;;;;;;;6359:15;6257:119;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;6130:254;;:::o;9162:1353::-;3193:4;3180:10;;:17;;;;;;;;;;;;;;;;;;9223:27:::1;9253:24;9271:4;9253:9;:24::i;:::-;9223:54;;2667:6;2249:1;2316:2;:13;;;;:::i;:::-;2297:15;:33;;;;:::i;:::-;2652:21;;;;:::i;:::-;9295:19;:34;;:50;;;;;9333:12;;;;;;;;;;;9295:50;9290:1218;;;2734:4;2249:1;2316:2;:13;;;;:::i;:::-;2297:15;:33;;;;:::i;:::-;2719:19;;;;:::i;:::-;9368;:34;9363:80;;2734:4;2249:1;2316:2;:13;;;;:::i;:::-;2297:15;:33;;;;:::i;:::-;2719:19;;;;:::i;:::-;9407:33;;9363:80;9459:20;9517:7;9503:11;;;;;;;;;;;:21;;;9498:183;;;9664:1;9642:19;:23;;;;:::i;:::-;9627:38;;9498:183;9709:21;9755:12;9733:19;:34;;;;:::i;:::-;9709:58;;2249:1;9802:2;:13;;;;:::i;:::-;9786;:29;9782:485;;;9837:19;9859:21;9837:43;;9899:35;9920:13;9899:20;:35::i;:::-;9953:19;9999:11;9975:21;:35;;;;:::i;:::-;9953:57;;10049:1;10034:12;:16;10029:223;;;10076:21;10114:1;10100:11;:15;;;;:::i;:::-;10076:39;;10139:28;10154:12;10139:14;:28::i;:::-;10190:42;10204:12;10218:13;10190;:42::i;:::-;10053:199;10029:223;9818:449;;9782:485;10281:27;10311:21;10281:51;;10372:1;10350:19;:23;10347:150;;;10396:9;10407:17:::0;2563:42:::1;10428:21;;10457:19;10428:53;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10395:86;;;;10375:122;;10347:150;9348:1160;;;9290:1218;9212:1303;3235:5:::0;3222:10;;:18;;;;;;;;;;;;;;;;;;9162:1353::o;8562:481::-;8659:7;8679:17;8722:12;;;;;;;;;;;:32;;;;;8739:7;:15;8747:6;8739:15;;;;;;;;;;;;;;;;;;;;;;;;;8738:16;8722:32;:55;;;;;8759:7;:18;8767:9;8759:18;;;;;;;;;;;;;;;;;;;;;;;;;8758:19;8722:55;8717:290;;;8801:5;:13;8807:6;8801:13;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;;8818:5;:16;8824:9;8818:16;;;;;;;;;;;;;;;;;;;;;;;;;8801:33;8796:200;;;8857:16;8875:18;8897:20;:18;:20::i;:::-;8856:61;;;;8969:11;8948:32;;8957:9;8948:18;;:6;:18;;;;:::i;:::-;:32;;;;:::i;:::-;8936:44;;8837:159;;8796:200;8717:290;9026:9;9019:16;;;8562:481;;;;;:::o;7566:185::-;7636:7;7621:11;;;;;;;;;;;:22;;;7616:127;;7730:1;7715:11;;:16;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;7616:127;7566:185::o;5165:317::-;5285:12;5236:11;:26;5256:4;5236:26;;;;;;;;;;;;;;;:46;2851:42;5236:46;;;;;;;;;;;;;;;;:61;5231:244;;;5364:17;5315:11;:26;5335:4;5315:26;;;;;;;;;;;;;;;:46;2851:42;5315:46;;;;;;;;;;;;;;;:66;;;;2851:42;5401:62;;5418:4;5401:62;;;5445:17;5401:62;;;;;;:::i;:::-;;;;;;;;5231:244;5165:317;:::o;10523:366::-;10593:27;10608:11;10593:14;:27::i;:::-;10631:21;10669:1;10655:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10631:40;;10700:4;10682;10687:1;10682:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;10726:18;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10716:4;10721:1;10716:7;;;;;;;;:::i;:::-;;;;;;;:35;;;;;;;;;;;10762:18;;;;;;;;;;;:69;;;10832:11;10844:1;10846:4;10859;10865:15;10762:119;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10582:307;10523:366;:::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;1553:117;1662:1;1659;1652: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:118::-;3885:24;3903:5;3885:24;:::i;:::-;3880:3;3873:37;3798:118;;:::o;3922:222::-;4015:4;4053:2;4042:9;4038:18;4030:26;;4066:71;4134:1;4123:9;4119:17;4110:6;4066:71;:::i;:::-;3922:222;;;;:::o;4150:619::-;4227:6;4235;4243;4292:2;4280:9;4271:7;4267:23;4263:32;4260:119;;;4298:79;;:::i;:::-;4260:119;4418:1;4443:53;4488:7;4479:6;4468:9;4464:22;4443:53;:::i;:::-;4433:63;;4389:117;4545:2;4571:53;4616:7;4607:6;4596:9;4592:22;4571:53;:::i;:::-;4561:63;;4516:118;4673:2;4699:53;4744:7;4735:6;4724:9;4720:22;4699:53;:::i;:::-;4689:63;;4644:118;4150:619;;;;;:::o;4775:86::-;4810:7;4850:4;4843:5;4839:16;4828:27;;4775:86;;;:::o;4867:112::-;4950:22;4966:5;4950:22;:::i;:::-;4945:3;4938:35;4867:112;;:::o;4985:214::-;5074:4;5112:2;5101:9;5097:18;5089:26;;5125:67;5189:1;5178:9;5174:17;5165:6;5125:67;:::i;:::-;4985:214;;;;:::o;5205:117::-;5314:1;5311;5304:12;5328:117;5437:1;5434;5427:12;5451:117;5560:1;5557;5550:12;5591:568;5664:8;5674:6;5724:3;5717:4;5709:6;5705:17;5701:27;5691:122;;5732:79;;:::i;:::-;5691:122;5845:6;5832:20;5822:30;;5875:18;5867:6;5864:30;5861:117;;;5897:79;;:::i;:::-;5861:117;6011:4;6003:6;5999:17;5987:29;;6065:3;6057:4;6049:6;6045:17;6035:8;6031:32;6028:41;6025:128;;;6072:79;;:::i;:::-;6025:128;5591:568;;;;;:::o;6182:::-;6255:8;6265:6;6315:3;6308:4;6300:6;6296:17;6292:27;6282:122;;6323:79;;:::i;:::-;6282:122;6436:6;6423:20;6413:30;;6466:18;6458:6;6455:30;6452:117;;;6488:79;;:::i;:::-;6452:117;6602:4;6594:6;6590:17;6578:29;;6656:3;6648:4;6640:6;6636:17;6626:8;6622:32;6619:41;6616:128;;;6663:79;;:::i;:::-;6616:128;6182:568;;;;;:::o;6756:934::-;6878:6;6886;6894;6902;6951:2;6939:9;6930:7;6926:23;6922:32;6919:119;;;6957:79;;:::i;:::-;6919:119;7105:1;7094:9;7090:17;7077:31;7135:18;7127:6;7124:30;7121:117;;;7157:79;;:::i;:::-;7121:117;7270:80;7342:7;7333:6;7322:9;7318:22;7270:80;:::i;:::-;7252:98;;;;7048:312;7427:2;7416:9;7412:18;7399:32;7458:18;7450:6;7447:30;7444:117;;;7480:79;;:::i;:::-;7444:117;7593:80;7665:7;7656:6;7645:9;7641:22;7593:80;:::i;:::-;7575:98;;;;7370:313;6756:934;;;;;;;:::o;7696:329::-;7755:6;7804:2;7792:9;7783:7;7779:23;7775:32;7772:119;;;7810:79;;:::i;:::-;7772:119;7930:1;7955:53;8000:7;7991:6;7980:9;7976:22;7955:53;:::i;:::-;7945:63;;7901:117;7696:329;;;;:::o;8031:93::-;8067:7;8107:10;8100:5;8096:22;8085:33;;8031:93;;;:::o;8130:115::-;8215:23;8232:5;8215:23;:::i;:::-;8210:3;8203:36;8130:115;;:::o;8251:324::-;8368:4;8406:2;8395:9;8391:18;8383:26;;8419:69;8485:1;8474:9;8470:17;8461:6;8419:69;:::i;:::-;8498:70;8564:2;8553:9;8549:18;8540:6;8498:70;:::i;:::-;8251:324;;;;;:::o;8581:474::-;8649:6;8657;8706:2;8694:9;8685:7;8681:23;8677:32;8674:119;;;8712:79;;:::i;:::-;8674:119;8832:1;8857:53;8902:7;8893:6;8882:9;8878:22;8857:53;:::i;:::-;8847:63;;8803:117;8959:2;8985:53;9030:7;9021:6;9010:9;9006:22;8985:53;:::i;:::-;8975:63;;8930:118;8581:474;;;;;:::o;9061:180::-;9109:77;9106:1;9099:88;9206:4;9203:1;9196:15;9230:4;9227:1;9220:15;9247:102;9289:8;9336:5;9333:1;9329:13;9308:34;;9247:102;;;:::o;9355:848::-;9416:5;9423:4;9447:6;9438:15;;9471:5;9462:14;;9485:712;9506:1;9496:8;9493:15;9485:712;;;9601:4;9596:3;9592:14;9586:4;9583:24;9580:50;;;9610:18;;:::i;:::-;9580:50;9660:1;9650:8;9646:16;9643:451;;;10075:4;10068:5;10064:16;10055:25;;9643:451;10125:4;10119;10115:15;10107:23;;10155:32;10178:8;10155:32;:::i;:::-;10143:44;;9485:712;;;9355:848;;;;;;;:::o;10209:1073::-;10263:5;10454:8;10444:40;;10475:1;10466:10;;10477:5;;10444:40;10503:4;10493:36;;10520:1;10511:10;;10522:5;;10493:36;10589:4;10637:1;10632:27;;;;10673:1;10668:191;;;;10582:277;;10632:27;10650:1;10641:10;;10652:5;;;10668:191;10713:3;10703:8;10700:17;10697:43;;;10720:18;;:::i;:::-;10697:43;10769:8;10766:1;10762:16;10753:25;;10804:3;10797:5;10794:14;10791:40;;;10811:18;;:::i;:::-;10791:40;10844:5;;;10582:277;;10968:2;10958:8;10955:16;10949:3;10943:4;10940:13;10936:36;10918:2;10908:8;10905:16;10900:2;10894:4;10891:12;10887:35;10871:111;10868:246;;;11024:8;11018:4;11014:19;11005:28;;11059:3;11052:5;11049:14;11046:40;;;11066:18;;:::i;:::-;11046:40;11099:5;;10868:246;11139:42;11177:3;11167:8;11161:4;11158:1;11139:42;:::i;:::-;11124:57;;;;11213:4;11208:3;11204:14;11197:5;11194:25;11191:51;;;11222:18;;:::i;:::-;11191:51;11271:4;11264:5;11260:16;11251:25;;10209:1073;;;;;;:::o;11288:281::-;11346:5;11370:23;11388:4;11370:23;:::i;:::-;11362:31;;11414:25;11430:8;11414:25;:::i;:::-;11402:37;;11458:104;11495:66;11485:8;11479:4;11458:104;:::i;:::-;11449:113;;11288:281;;;;:::o;11575:410::-;11615:7;11638:20;11656:1;11638:20;:::i;:::-;11633:25;;11672:20;11690:1;11672:20;:::i;:::-;11667:25;;11727:1;11724;11720:9;11749:30;11767:11;11749:30;:::i;:::-;11738:41;;11928:1;11919:7;11915:15;11912:1;11909:22;11889:1;11882:9;11862:83;11839:139;;11958:18;;:::i;:::-;11839:139;11623:362;11575:410;;;;:::o;11991:166::-;12131:18;12127:1;12119:6;12115:14;12108:42;11991:166;:::o;12163:366::-;12305:3;12326:67;12390:2;12385:3;12326:67;:::i;:::-;12319:74;;12402:93;12491:3;12402:93;:::i;:::-;12520:2;12515:3;12511:12;12504:19;;12163:366;;;:::o;12535:419::-;12701:4;12739:2;12728:9;12724:18;12716:26;;12788:9;12782:4;12778:20;12774:1;12763:9;12759:17;12752:47;12816:131;12942:4;12816:131;:::i;:::-;12808:139;;12535:419;;;:::o;12960:194::-;13000:4;13020:20;13038:1;13020:20;:::i;:::-;13015:25;;13054:20;13072:1;13054:20;:::i;:::-;13049:25;;13098:1;13095;13091:9;13083:17;;13122:1;13116:4;13113:11;13110:37;;;13127:18;;:::i;:::-;13110:37;12960:194;;;;:::o;13160:174::-;13300:26;13296:1;13288:6;13284:14;13277:50;13160:174;:::o;13340:366::-;13482:3;13503:67;13567:2;13562:3;13503:67;:::i;:::-;13496:74;;13579:93;13668:3;13579:93;:::i;:::-;13697:2;13692:3;13688:12;13681:19;;13340:366;;;:::o;13712:419::-;13878:4;13916:2;13905:9;13901:18;13893:26;;13965:9;13959:4;13955:20;13951:1;13940:9;13936:17;13929:47;13993:131;14119:4;13993:131;:::i;:::-;13985:139;;13712:419;;;:::o;14137:171::-;14277:23;14273:1;14265:6;14261:14;14254:47;14137:171;:::o;14314:366::-;14456:3;14477:67;14541:2;14536:3;14477:67;:::i;:::-;14470:74;;14553:93;14642:3;14553:93;:::i;:::-;14671:2;14666:3;14662:12;14655:19;;14314:366;;;:::o;14686:419::-;14852:4;14890:2;14879:9;14875:18;14867:26;;14939:9;14933:4;14929:20;14925:1;14914:9;14910:17;14903:47;14967:131;15093:4;14967:131;:::i;:::-;14959:139;;14686:419;;;:::o;15111:170::-;15251:22;15247:1;15239:6;15235:14;15228:46;15111:170;:::o;15287:366::-;15429:3;15450:67;15514:2;15509:3;15450:67;:::i;:::-;15443:74;;15526:93;15615:3;15526:93;:::i;:::-;15644:2;15639:3;15635:12;15628:19;;15287:366;;;:::o;15659:419::-;15825:4;15863:2;15852:9;15848:18;15840:26;;15912:9;15906:4;15902:20;15898:1;15887:9;15883:17;15876:47;15940:131;16066:4;15940:131;:::i;:::-;15932:139;;15659:419;;;:::o;16084:180::-;16132:77;16129:1;16122:88;16229:4;16226:1;16219:15;16253:4;16250:1;16243:15;16270:191;16310:3;16329:20;16347:1;16329:20;:::i;:::-;16324:25;;16363:20;16381:1;16363:20;:::i;:::-;16358:25;;16406:1;16403;16399:9;16392:16;;16427:3;16424:1;16421:10;16418:36;;;16434:18;;:::i;:::-;16418:36;16270:191;;;;:::o;16467:233::-;16506:3;16529:24;16547:5;16529:24;:::i;:::-;16520:33;;16575:66;16568:5;16565:77;16562:103;;16645:18;;:::i;:::-;16562:103;16692:1;16685:5;16681:13;16674:20;;16467:233;;;:::o;16706:171::-;16846:23;16842:1;16834:6;16830:14;16823:47;16706:171;:::o;16883:366::-;17025:3;17046:67;17110:2;17105:3;17046:67;:::i;:::-;17039:74;;17122:93;17211:3;17122:93;:::i;:::-;17240:2;17235:3;17231:12;17224:19;;16883:366;;;:::o;17255:419::-;17421:4;17459:2;17448:9;17444:18;17436:26;;17508:9;17502:4;17498:20;17494:1;17483:9;17479:17;17472:47;17536:131;17662:4;17536:131;:::i;:::-;17528:139;;17255:419;;;:::o;17680:332::-;17801:4;17839:2;17828:9;17824:18;17816:26;;17852:71;17920:1;17909:9;17905:17;17896:6;17852:71;:::i;:::-;17933:72;18001:2;17990:9;17986:18;17977:6;17933:72;:::i;:::-;17680:332;;;;;:::o;18018:159::-;18158:11;18154:1;18146:6;18142:14;18135:35;18018:159;:::o;18183:365::-;18325:3;18346:66;18410:1;18405:3;18346:66;:::i;:::-;18339:73;;18421:93;18510:3;18421:93;:::i;:::-;18539:2;18534:3;18530:12;18523:19;;18183:365;;;:::o;18554:419::-;18720:4;18758:2;18747:9;18743:18;18735:26;;18807:9;18801:4;18797:20;18793:1;18782:9;18778:17;18771:47;18835:131;18961:4;18835:131;:::i;:::-;18827:139;;18554:419;;;:::o;18979:165::-;19119:17;19115:1;19107:6;19103:14;19096:41;18979:165;:::o;19150:366::-;19292:3;19313:67;19377:2;19372:3;19313:67;:::i;:::-;19306:74;;19389:93;19478:3;19389:93;:::i;:::-;19507:2;19502:3;19498:12;19491:19;;19150:366;;;:::o;19522:419::-;19688:4;19726:2;19715:9;19711:18;19703:26;;19775:9;19769:4;19765:20;19761:1;19750:9;19746:17;19739:47;19803:131;19929:4;19803:131;:::i;:::-;19795:139;;19522:419;;;:::o;19947:179::-;20087:31;20083:1;20075:6;20071:14;20064:55;19947:179;:::o;20132:366::-;20274:3;20295:67;20359:2;20354:3;20295:67;:::i;:::-;20288:74;;20371:93;20460:3;20371:93;:::i;:::-;20489:2;20484:3;20480:12;20473:19;;20132:366;;;:::o;20504:419::-;20670:4;20708:2;20697:9;20693:18;20685:26;;20757:9;20751:4;20747:20;20743:1;20732:9;20728:17;20721:47;20785:131;20911:4;20785:131;:::i;:::-;20777:139;;20504:419;;;:::o;20929:171::-;21069:23;21065:1;21057:6;21053:14;21046:47;20929:171;:::o;21106:366::-;21248:3;21269:67;21333:2;21328:3;21269:67;:::i;:::-;21262:74;;21345:93;21434:3;21345:93;:::i;:::-;21463:2;21458:3;21454:12;21447:19;;21106:366;;;:::o;21478:419::-;21644:4;21682:2;21671:9;21667:18;21659:26;;21731:9;21725:4;21721:20;21717:1;21706:9;21702:17;21695:47;21759:131;21885:4;21759:131;:::i;:::-;21751:139;;21478:419;;;:::o;21903:143::-;21960:5;21991:6;21985:13;21976:22;;22007:33;22034:5;22007:33;:::i;:::-;21903:143;;;;:::o;22052:351::-;22122:6;22171:2;22159:9;22150:7;22146:23;22142:32;22139:119;;;22177:79;;:::i;:::-;22139:119;22297:1;22322:64;22378:7;22369:6;22358:9;22354:22;22322:64;:::i;:::-;22312:74;;22268:128;22052:351;;;;:::o;22409:332::-;22530:4;22568:2;22557:9;22553:18;22545:26;;22581:71;22649:1;22638:9;22634:17;22625:6;22581:71;:::i;:::-;22662:72;22730:2;22719:9;22715:18;22706:6;22662:72;:::i;:::-;22409:332;;;;;:::o;22747:179::-;22887:31;22883:1;22875:6;22871:14;22864:55;22747:179;:::o;22932:366::-;23074:3;23095:67;23159:2;23154:3;23095:67;:::i;:::-;23088:74;;23171:93;23260:3;23171:93;:::i;:::-;23289:2;23284:3;23280:12;23273:19;;22932:366;;;:::o;23304:419::-;23470:4;23508:2;23497:9;23493:18;23485:26;;23557:9;23551:4;23547:20;23543:1;23532:9;23528:17;23521:47;23585:131;23711:4;23585:131;:::i;:::-;23577:139;;23304:419;;;:::o;23729:171::-;23869:23;23865:1;23857:6;23853:14;23846:47;23729:171;:::o;23906:366::-;24048:3;24069:67;24133:2;24128:3;24069:67;:::i;:::-;24062:74;;24145:93;24234:3;24145:93;:::i;:::-;24263:2;24258:3;24254:12;24247:19;;23906:366;;;:::o;24278:419::-;24444:4;24482:2;24471:9;24467:18;24459:26;;24531:9;24525:4;24521:20;24517:1;24506:9;24502:17;24495:47;24559:131;24685:4;24559:131;:::i;:::-;24551:139;;24278:419;;;:::o;24703:85::-;24748:7;24777:5;24766:16;;24703:85;;;:::o;24794:60::-;24822:3;24843:5;24836:12;;24794:60;;;:::o;24860:158::-;24918:9;24951:61;24969:42;24978:32;25004:5;24978:32;:::i;:::-;24969:42;:::i;:::-;24951:61;:::i;:::-;24938:74;;24860:158;;;:::o;25024:147::-;25119:45;25158:5;25119:45;:::i;:::-;25114:3;25107:58;25024:147;;:::o;25177:807::-;25426:4;25464:3;25453:9;25449:19;25441:27;;25478:71;25546:1;25535:9;25531:17;25522:6;25478:71;:::i;:::-;25559:72;25627:2;25616:9;25612:18;25603:6;25559:72;:::i;:::-;25641:80;25717:2;25706:9;25702:18;25693:6;25641:80;:::i;:::-;25731;25807:2;25796:9;25792:18;25783:6;25731:80;:::i;:::-;25821:73;25889:3;25878:9;25874:19;25865:6;25821:73;:::i;:::-;25904;25972:3;25961:9;25957:19;25948:6;25904:73;:::i;:::-;25177:807;;;;;;;;;:::o;25990:143::-;26047:5;26078:6;26072:13;26063:22;;26094:33;26121:5;26094:33;:::i;:::-;25990:143;;;;:::o;26139:663::-;26227:6;26235;26243;26292:2;26280:9;26271:7;26267:23;26263:32;26260:119;;;26298:79;;:::i;:::-;26260:119;26418:1;26443:64;26499:7;26490:6;26479:9;26475:22;26443:64;:::i;:::-;26433:74;;26389:128;26556:2;26582:64;26638:7;26629:6;26618:9;26614:22;26582:64;:::i;:::-;26572:74;;26527:129;26695:2;26721:64;26777:7;26768:6;26757:9;26753:22;26721:64;:::i;:::-;26711:74;;26666:129;26139:663;;;;;:::o;26808:180::-;26856:77;26853:1;26846:88;26953:4;26950:1;26943:15;26977:4;26974:1;26967:15;26994:185;27034:1;27051:20;27069:1;27051:20;:::i;:::-;27046:25;;27085:20;27103:1;27085:20;:::i;:::-;27080:25;;27124:1;27114:35;;27129:18;;:::i;:::-;27114:35;27171:1;27168;27164:9;27159:14;;26994:185;;;;:::o;27185:147::-;27286:11;27323:3;27308:18;;27185:147;;;;:::o;27338:114::-;;:::o;27458:398::-;27617:3;27638:83;27719:1;27714:3;27638:83;:::i;:::-;27631:90;;27730:93;27819:3;27730:93;:::i;:::-;27848:1;27843:3;27839:11;27832:18;;27458:398;;;:::o;27862:379::-;28046:3;28068:147;28211:3;28068:147;:::i;:::-;28061:154;;28232:3;28225:10;;27862:379;;;:::o;28247:197::-;28286:3;28305:19;28322:1;28305:19;:::i;:::-;28300:24;;28338:19;28355:1;28338:19;:::i;:::-;28333:24;;28380:1;28377;28373:9;28366:16;;28403:10;28398:3;28395:19;28392:45;;;28417:18;;:::i;:::-;28392:45;28247:197;;;;:::o;28450:180::-;28498:77;28495:1;28488:88;28595:4;28592:1;28585:15;28619:4;28616:1;28609:15;28636:114;28703:6;28737:5;28731:12;28721:22;;28636:114;;;:::o;28756:184::-;28855:11;28889:6;28884:3;28877:19;28929:4;28924:3;28920:14;28905:29;;28756:184;;;;:::o;28946:132::-;29013:4;29036:3;29028:11;;29066:4;29061:3;29057:14;29049:22;;28946:132;;;:::o;29084:108::-;29161:24;29179:5;29161:24;:::i;:::-;29156:3;29149:37;29084:108;;:::o;29198:179::-;29267:10;29288:46;29330:3;29322:6;29288:46;:::i;:::-;29366:4;29361:3;29357:14;29343:28;;29198:179;;;;:::o;29383:113::-;29453:4;29485;29480:3;29476:14;29468:22;;29383:113;;;:::o;29532:732::-;29651:3;29680:54;29728:5;29680:54;:::i;:::-;29750:86;29829:6;29824:3;29750:86;:::i;:::-;29743:93;;29860:56;29910:5;29860:56;:::i;:::-;29939:7;29970:1;29955:284;29980:6;29977:1;29974:13;29955:284;;;30056:6;30050:13;30083:63;30142:3;30127:13;30083:63;:::i;:::-;30076:70;;30169:60;30222:6;30169:60;:::i;:::-;30159:70;;30015:224;30002:1;29999;29995:9;29990:14;;29955:284;;;29959:14;30255:3;30248:10;;29656:608;;;29532:732;;;;:::o;30270:831::-;30533:4;30571:3;30560:9;30556:19;30548:27;;30585:71;30653:1;30642:9;30638:17;30629:6;30585:71;:::i;:::-;30666:80;30742:2;30731:9;30727:18;30718:6;30666:80;:::i;:::-;30793:9;30787:4;30783:20;30778:2;30767:9;30763:18;30756:48;30821:108;30924:4;30915:6;30821:108;:::i;:::-;30813:116;;30939:72;31007:2;30996:9;30992:18;30983:6;30939:72;:::i;:::-;31021:73;31089:3;31078:9;31074:19;31065:6;31021:73;:::i;:::-;30270:831;;;;;;;;:::o

Swarm Source

ipfs://1916b82982dd19113c2eea2dbbeb092b6a57affd0e33faa5f0f0ca937f00f7e6

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

OVERVIEW

Monkeys Token contract has migrated to a 0x9CE07410673206c693BCEC9b07710767637A564c.

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.