ETH Price: $2,520.27 (-5.23%)

Contract

0x4F987b0774E2b72eD731fEf6993398AB364C1c64
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve210810282024-10-30 21:05:5924 hrs ago1730322359IN
0x4F987b07...B364C1c64
0 ETH0.0008323417.63893403
Approve210794882024-10-30 15:57:1129 hrs ago1730303831IN
0x4F987b07...B364C1c64
0 ETH0.0015033931.90022025
Approve210792712024-10-30 15:13:4730 hrs ago1730301227IN
0x4F987b07...B364C1c64
0 ETH0.0014091229.9
Approve210758582024-10-30 3:44:4741 hrs ago1730259887IN
0x4F987b07...B364C1c64
0 ETH0.0007099415.04512705
Approve210748632024-10-30 0:24:5945 hrs ago1730247899IN
0x4F987b07...B364C1c64
0 ETH0.000375057.958156
Approve210744342024-10-29 22:58:5946 hrs ago1730242739IN
0x4F987b07...B364C1c64
0 ETH0.000433349.25645028
Transfer210737272024-10-29 20:36:592 days ago1730234219IN
0x4F987b07...B364C1c64
0 ETH0.0005616813.58428389
Approve210730182024-10-29 18:14:472 days ago1730225687IN
0x4F987b07...B364C1c64
0 ETH0.0007511115.93774712
Transfer210728012024-10-29 17:31:232 days ago1730223083IN
0x4F987b07...B364C1c64
0 ETH0.0008285621.51435785
Approve210724072024-10-29 16:12:352 days ago1730218355IN
0x4F987b07...B364C1c64
0 ETH0.0009035319.1475036
Approve210723192024-10-29 15:54:472 days ago1730217287IN
0x4F987b07...B364C1c64
0 ETH0.0004279515.68303194
Approve210723182024-10-29 15:54:352 days ago1730217275IN
0x4F987b07...B364C1c64
0 ETH0.0006964114.75824297
Approve210723182024-10-29 15:54:352 days ago1730217275IN
0x4F987b07...B364C1c64
0 ETH0.0004436216.25713835
Approve210723172024-10-29 15:54:232 days ago1730217263IN
0x4F987b07...B364C1c64
0 ETH0.0007725316.37134894
Approve210722522024-10-29 15:41:232 days ago1730216483IN
0x4F987b07...B364C1c64
0 ETH0.0007349715.57541823
Transfer210720862024-10-29 15:08:112 days ago1730214491IN
0x4F987b07...B364C1c64
0 ETH0.0008387514.3534104
Approve210718062024-10-29 14:11:592 days ago1730211119IN
0x4F987b07...B364C1c64
0 ETH0.0013516928.64485337
Approve210718042024-10-29 14:11:352 days ago1730211095IN
0x4F987b07...B364C1c64
0 ETH0.0007595116.09559085
Approve210717992024-10-29 14:10:352 days ago1730211035IN
0x4F987b07...B364C1c64
0 ETH0.000807817.11886645
Approve210716622024-10-29 13:43:112 days ago1730209391IN
0x4F987b07...B364C1c64
0 ETH0.0005848512.40996148
Approve210715772024-10-29 13:25:592 days ago1730208359IN
0x4F987b07...B364C1c64
0 ETH0.0006732714.2716311
Approve210713862024-10-29 12:47:352 days ago1730206055IN
0x4F987b07...B364C1c64
0 ETH0.0010785522.88555235
Approve210711372024-10-29 11:57:232 days ago1730203043IN
0x4F987b07...B364C1c64
0 ETH0.0004882410.43165116
Approve210709592024-10-29 11:21:112 days ago1730200871IN
0x4F987b07...B364C1c64
0 ETH0.000470599.98544972
Approve210700042024-10-29 8:09:472 days ago1730189387IN
0x4F987b07...B364C1c64
0 ETH0.000299596.38960681
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
209736372024-10-15 21:26:2316 days ago1729027583
0x4F987b07...B364C1c64
0.03479388 ETH
209736372024-10-15 21:26:2316 days ago1729027583
0x4F987b07...B364C1c64
0.03479388 ETH
209736142024-10-15 21:21:4716 days ago1729027307
0x4F987b07...B364C1c64
0.03152196 ETH
209736142024-10-15 21:21:4716 days ago1729027307
0x4F987b07...B364C1c64
0.03152196 ETH
209736082024-10-15 21:20:3516 days ago1729027235
0x4F987b07...B364C1c64
0.22442143 ETH
209736082024-10-15 21:20:3516 days ago1729027235
0x4F987b07...B364C1c64
0.22442143 ETH
209735212024-10-15 21:03:1116 days ago1729026191
0x4F987b07...B364C1c64
0.05085761 ETH
209735212024-10-15 21:03:1116 days ago1729026191
0x4F987b07...B364C1c64
0.05085761 ETH
209735162024-10-15 21:02:1116 days ago1729026131
0x4F987b07...B364C1c64
0.21687208 ETH
209735162024-10-15 21:02:1116 days ago1729026131
0x4F987b07...B364C1c64
0.21687208 ETH
209733942024-10-15 20:37:1116 days ago1729024631
0x4F987b07...B364C1c64
0.20157016 ETH
209733942024-10-15 20:37:1116 days ago1729024631
0x4F987b07...B364C1c64
0.20157016 ETH
209733772024-10-15 20:33:3516 days ago1729024415
0x4F987b07...B364C1c64
0.1342217 ETH
209733772024-10-15 20:33:3516 days ago1729024415
0x4F987b07...B364C1c64
0.1342217 ETH
209733712024-10-15 20:32:2316 days ago1729024343
0x4F987b07...B364C1c64
0.11904513 ETH
209733712024-10-15 20:32:2316 days ago1729024343
0x4F987b07...B364C1c64
0.11904513 ETH
209733572024-10-15 20:29:3516 days ago1729024175
0x4F987b07...B364C1c64
0.11904513 ETH
209733572024-10-15 20:29:3516 days ago1729024175
0x4F987b07...B364C1c64
0.11904513 ETH
209733552024-10-15 20:29:1116 days ago1729024151
0x4F987b07...B364C1c64
0.16299465 ETH
209733552024-10-15 20:29:1116 days ago1729024151
0x4F987b07...B364C1c64
0.16299465 ETH
209733522024-10-15 20:28:3516 days ago1729024115
0x4F987b07...B364C1c64
0.01373785 ETH
209733522024-10-15 20:28:3516 days ago1729024115
0x4F987b07...B364C1c64
0.01373785 ETH
209732912024-10-15 20:16:2316 days ago1729023383
0x4F987b07...B364C1c64
0.09416467 ETH
209732912024-10-15 20:16:2316 days ago1729023383
0x4F987b07...B364C1c64
0.09416467 ETH
209732912024-10-15 20:16:2316 days ago1729023383
0x4F987b07...B364C1c64
0.01892786 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Blinky

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
shanghai EvmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-10-15
*/

// SPDX-License-Identifier: MIT

/**

    💎 $BLINKY is a token based on the 3 eyed goldfish from the longest running animated series, 
    The Simpsons! Touted as the next step in the evolutionary ladder by Mister Burns, 
    $BLINKY will be the next evolution in crypto meme culture. With an experienced team 
    and an infinitely memeable token with a rich story, everyone will be shilling $BLINKY.

    website: https://www.blinky.vip/
    x: https://x.com/Blinky_ETH
    telegram: https://t.me/blinky_eth

*/

pragma solidity 0.8.26;


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

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

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

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

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

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



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

interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    )
        external
        payable
        returns (uint amountToken, uint amountETH, uint liquidity);
}



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

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

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

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

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), 'New owner cannot be the zero address');
        require(newOwner != _owner, 'New owner must be different');
        address prevOwner = _owner;
        _owner = newOwner;
        emit OwnershipTransferred(prevOwner, newOwner);
    }

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



interface IERC20 {
    function name() external view returns (string memory);
    function symbol() external view returns (string memory);
    function totalSupply() external view returns (uint256);
    function decimals() external view returns (uint8);
    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);
}


contract Blinky is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcluded;
    address payable private _taxWallet;

    uint256 private _initialBuyTax = 15;
    uint256 private _initialSellTax = 15;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 20;
    uint256 private _reduceSellTaxAt = 20;
    uint256 private _preventSwapBefore = 20;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 100000000 * 10**_decimals;
    string private constant _name = unicode"blinky";
    string private constant _symbol = unicode"BLINKY";
    uint256 public _maxTxAmount = 2000000 * 10**_decimals;
    uint256 public _maxWalletSize = 2000000 * 10**_decimals;
    uint256 public _taxSwapThreshold= 1000000 * 10**_decimals;
    uint256 public _maxTaxSwap= 1000000 * 10**_decimals;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

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

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

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

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

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

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

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

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

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

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

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        uint256 taxAmount=0;
        if (from != owner() && to != owner()) {
            if(_buyCount==0){
                taxAmount = amount.mul((_buyCount>_reduceBuyTaxAt)?_finalBuyTax:_initialBuyTax).div(100);
            }

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

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

            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }
                require(sellCount < 3, "Only 3 sells per block!");
                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
                sellCount++;
                lastSellBlock = block.number;
            }
        }

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


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

    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }

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

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function addLiquidityEth() external payable onlyOwner {
        require(!tradingOpen, "Trading is already open.");
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        IUniswapV2Factory uniswapV2Factory = IUniswapV2Factory(
            uniswapV2Router.factory()
        );
        uniswapV2Pair = uniswapV2Factory.createPair(
            address(this), 
            uniswapV2Router.WETH()
        );
        _isExcluded[address(uniswapV2Pair)] = true;
        _approve(address(this), address(uniswapV2Router), totalSupply());
        uniswapV2Router.addLiquidityETH{ value: msg.value }(
            address(this),
            totalSupply(),
            0,
            0,
            owner(),
            block.timestamp
        );
        tradingOpen = true;
        swapEnabled = true;
    }

    receive() external payable {}

    function recover() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          _transfer(address(this), _taxWallet, tokenBalance);
        }
    }

    function manualSwap() external {
        require(_msgSender()==_taxWallet);
        uint256 tokenBalance=balanceOf(address(this));
        if(tokenBalance>0){
          swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance=address(this).balance;
        if(ethBalance>0){
          sendETHToFee(ethBalance);
        }
    }

    function manualsend() external {
        require(_msgSender()==_taxWallet);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"addLiquidityEth","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","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":"recover","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

6080604052600f600555600f6006555f6007555f60085560146009556014600a556014600b555f600c556009600a6100379190610595565b621e848061004591906105df565b600d556009600a6100569190610595565b621e848061006491906105df565b600e556009600a6100759190610595565b620f424061008391906105df565b600f556009600a6100949190610595565b620f42406100a291906105df565b6010555f601260156101000a81548160ff0219169083151502179055505f601260166101000a81548160ff0219169083151502179055505f6013555f6014553480156100ec575f80fd5b505f6100fc6103f660201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506101a66103f660201b60201c565b60045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506009600a6101f39190610595565b6305f5e10061020291906105df565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6102566103fd60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6009600a6103cd9190610595565b6305f5e1006103dc91906105df565b6040516103e9919061062f565b60405180910390a3610648565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156104a65780860481111561048257610481610424565b5b60018516156104915780820291505b808102905061049f85610451565b9450610466565b94509492505050565b5f826104be5760019050610579565b816104cb575f9050610579565b81600181146104e157600281146104eb5761051a565b6001915050610579565b60ff8411156104fd576104fc610424565b5b8360020a91508482111561051457610513610424565b5b50610579565b5060208310610133831016604e8410600b841016171561054f5782820a90508381111561054a57610549610424565b5b610579565b61055c848484600161045d565b9250905081840481111561057357610572610424565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f61059f82610580565b91506105aa83610589565b92506105d77fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846104af565b905092915050565b5f6105e982610580565b91506105f483610580565b925082820261060281610580565b9150828204841483151761061957610618610424565b5b5092915050565b61062981610580565b82525050565b5f6020820190506106425f830184610620565b92915050565b6131a7806106555f395ff3fe60806040526004361061012d575f3560e01c8063715018a6116100aa57806395d89b411161006e57806395d89b4114610374578063a9059cbb1461039e578063bf474bed146103da578063ce74602414610404578063dd62ed3e1461041a578063f2fde38b1461045657610134565b8063715018a6146102ca578063751039fc146102e05780637d1db4a5146102f65780638da5cb5b146103205780638f9a55c01461034a57610134565b806324e34443116100f157806324e344431461022e578063313ce5671461023857806351bc3c85146102625780636fc3eaec1461027857806370a082311461028e57610134565b806306fdde0314610138578063095ea7b3146101625780630faee56f1461019e57806318160ddd146101c857806323b872dd146101f257610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c61047e565b604051610159919061226b565b60405180910390f35b34801561016d575f80fd5b506101886004803603810190610183919061231c565b6104bb565b6040516101959190612374565b60405180910390f35b3480156101a9575f80fd5b506101b26104d8565b6040516101bf919061239c565b60405180910390f35b3480156101d3575f80fd5b506101dc6104de565b6040516101e9919061239c565b60405180910390f35b3480156101fd575f80fd5b50610218600480360381019061021391906123b5565b610501565b6040516102259190612374565b60405180910390f35b6102366105d5565b005b348015610243575f80fd5b5061024c610a7e565b6040516102599190612420565b60405180910390f35b34801561026d575f80fd5b50610276610a86565b005b348015610283575f80fd5b5061028c610b1d565b005b348015610299575f80fd5b506102b460048036038101906102af9190612439565b610b8c565b6040516102c1919061239c565b60405180910390f35b3480156102d5575f80fd5b506102de610bd2565b005b3480156102eb575f80fd5b506102f4610d20565b005b348015610301575f80fd5b5061030a610e4f565b604051610317919061239c565b60405180910390f35b34801561032b575f80fd5b50610334610e55565b6040516103419190612473565b60405180910390f35b348015610355575f80fd5b5061035e610e7c565b60405161036b919061239c565b60405180910390f35b34801561037f575f80fd5b50610388610e82565b604051610395919061226b565b60405180910390f35b3480156103a9575f80fd5b506103c460048036038101906103bf919061231c565b610ebf565b6040516103d19190612374565b60405180910390f35b3480156103e5575f80fd5b506103ee610edc565b6040516103fb919061239c565b60405180910390f35b34801561040f575f80fd5b50610418610ee2565b005b348015610425575f80fd5b50610440600480360381019061043b919061248c565b610f85565b60405161044d919061239c565b60405180910390f35b348015610461575f80fd5b5061047c60048036038101906104779190612439565b611007565b005b60606040518060400160405280600681526020017f626c696e6b790000000000000000000000000000000000000000000000000000815250905090565b5f6104ce6104c7611257565b848461125e565b6001905092915050565b60105481565b5f6009600a6104ed9190612626565b6305f5e1006104fc9190612670565b905090565b5f61050d848484611421565b6105ca84610519611257565b6105c58560405180606001604052806028815260200161314a6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61057c611257565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ccd9092919063ffffffff16565b61125e565b600190509392505050565b6105dd611257565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610669576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610660906126fb565b60405180910390fd5b601260149054906101000a900460ff16156106b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b090612763565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610778573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061079c9190612795565b90508073ffffffffffffffffffffffffffffffffffffffff1663c9c653963060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610825573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108499190612795565b6040518363ffffffff1660e01b81526004016108669291906127c0565b6020604051808303815f875af1158015610882573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a69190612795565b60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160035f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061098e3060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166109896104de565b61125e565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71934306109d56104de565b5f806109df610e55565b426040518863ffffffff1660e01b8152600401610a0196959493929190612829565b60606040518083038185885af1158015610a1d573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a42919061289c565b5050506001601260146101000a81548160ff0219169083151502179055506001601260166101000a81548160ff02191690831515021790555050565b5f6009905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ac6611257565b73ffffffffffffffffffffffffffffffffffffffff1614610ae5575f80fd5b5f610aef30610b8c565b90505f811115610b0357610b0281611d2f565b5b5f4790505f811115610b1957610b1881611f9a565b5b5050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b5d611257565b73ffffffffffffffffffffffffffffffffffffffff1614610b7c575f80fd5b5f479050610b8981611f9a565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610bda611257565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5d906126fb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d28611257565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610db4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dab906126fb565b60405180910390fd5b6009600a610dc29190612626565b6305f5e100610dd19190612670565b600d819055506009600a610de59190612626565b6305f5e100610df49190612670565b600e819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610e299190612626565b6305f5e100610e389190612670565b604051610e45919061239c565b60405180910390a1565b600d5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e5481565b60606040518060400160405280600681526020017f424c494e4b590000000000000000000000000000000000000000000000000000815250905090565b5f610ed2610ecb611257565b8484611421565b6001905092915050565b600f5481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f22611257565b73ffffffffffffffffffffffffffffffffffffffff1614610f41575f80fd5b5f610f4b30610b8c565b90505f811115610f8257610f813060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611421565b5b50565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61100f611257565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461109b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611092906126fb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611109576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111009061295c565b60405180910390fd5b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118d906129c4565b60405180910390fd5b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c390612a52565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361133a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133190612ae0565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611414919061239c565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361148f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148690612b6e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f490612bfc565b60405180910390fd5b5f811161153f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153690612c8a565b60405180910390fd5b5f611548610e55565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115b65750611586610e55565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a1d575f600c54036116035761160060646115f2600954600c54116115df576005546115e3565b6007545b8561200290919063ffffffff16565b61207990919063ffffffff16565b90505b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116ac575060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116ff575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156117f757600d54821115611749576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174090612cf2565b60405180910390fd5b600e548261175685610b8c565b6117609190612d10565b11156117a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179890612d8d565b60405180910390fd5b6117dd60646117cf600954600c54116117bc576005546117c0565b6007545b8561200290919063ffffffff16565b61207990919063ffffffff16565b9050600c5f8154809291906117f190612dab565b91905055505b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561187f57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118c3576118c060646118b2600a54600c541161189f576006546118a3565b6008545b8561200290919063ffffffff16565b61207990919063ffffffff16565b90505b5f6118cd30610b8c565b9050601260159054906101000a900460ff16158015611938575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156119505750601260169054906101000a900460ff165b801561195d5750600f5481115b801561196c5750600b54600c54115b15611a1b57601454431115611983575f6013819055505b6003601354106119c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bf90612e3c565b60405180910390fd5b6119e56119e0846119db846010546120c2565b6120c2565b611d2f565b5f4790505f8111156119fb576119fa47611f9a565b5b60135f815480929190611a0d90612dab565b919050555043601481905550505b505b5f811115611b1c57611a758160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120da90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b13919061239c565b60405180910390a35b611b6c8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461213790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611c0f611bc3828461213790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120da90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611cb2848661213790919063ffffffff16565b604051611cbf919061239c565b60405180910390a350505050565b5f838311158290611d14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0b919061226b565b60405180910390fd5b505f8385611d229190612e5a565b9050809150509392505050565b6001601260156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611d6657611d65612e8d565b5b604051908082528060200260200182016040528015611d945781602001602082028036833780820191505090505b50905030815f81518110611dab57611daa612eba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e4f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e739190612795565b81600181518110611e8757611e86612eba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611eed3060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461125e565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611f4f959493929190612f9e565b5f604051808303815f87803b158015611f66575f80fd5b505af1158015611f78573d5f803e3d5ffd5b50505050505f601260156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611ffe573d5f803e3d5ffd5b5050565b5f808303612012575f9050612073565b5f828461201f9190612670565b905082848261202e9190613023565b1461206e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612065906130c3565b60405180910390fd5b809150505b92915050565b5f6120ba83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612180565b905092915050565b5f8183116120d057826120d2565b815b905092915050565b5f8082846120e89190612d10565b90508381101561212d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121249061312b565b60405180910390fd5b8091505092915050565b5f61217883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ccd565b905092915050565b5f80831182906121c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121bd919061226b565b60405180910390fd5b505f83856121d49190613023565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156122185780820151818401526020810190506121fd565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61223d826121e1565b61224781856121eb565b93506122578185602086016121fb565b61226081612223565b840191505092915050565b5f6020820190508181035f8301526122838184612233565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6122b88261228f565b9050919050565b6122c8816122ae565b81146122d2575f80fd5b50565b5f813590506122e3816122bf565b92915050565b5f819050919050565b6122fb816122e9565b8114612305575f80fd5b50565b5f81359050612316816122f2565b92915050565b5f80604083850312156123325761233161228b565b5b5f61233f858286016122d5565b925050602061235085828601612308565b9150509250929050565b5f8115159050919050565b61236e8161235a565b82525050565b5f6020820190506123875f830184612365565b92915050565b612396816122e9565b82525050565b5f6020820190506123af5f83018461238d565b92915050565b5f805f606084860312156123cc576123cb61228b565b5b5f6123d9868287016122d5565b93505060206123ea868287016122d5565b92505060406123fb86828701612308565b9150509250925092565b5f60ff82169050919050565b61241a81612405565b82525050565b5f6020820190506124335f830184612411565b92915050565b5f6020828403121561244e5761244d61228b565b5b5f61245b848285016122d5565b91505092915050565b61246d816122ae565b82525050565b5f6020820190506124865f830184612464565b92915050565b5f80604083850312156124a2576124a161228b565b5b5f6124af858286016122d5565b92505060206124c0858286016122d5565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561254c57808604811115612528576125276124ca565b5b60018516156125375780820291505b8081029050612545856124f7565b945061250c565b94509492505050565b5f82612564576001905061261f565b81612571575f905061261f565b81600181146125875760028114612591576125c0565b600191505061261f565b60ff8411156125a3576125a26124ca565b5b8360020a9150848211156125ba576125b96124ca565b5b5061261f565b5060208310610133831016604e8410600b84101617156125f55782820a9050838111156125f0576125ef6124ca565b5b61261f565b6126028484846001612503565b92509050818404811115612619576126186124ca565b5b81810290505b9392505050565b5f612630826122e9565b915061263b83612405565b92506126687fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612555565b905092915050565b5f61267a826122e9565b9150612685836122e9565b9250828202612693816122e9565b915082820484148315176126aa576126a96124ca565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126e56020836121eb565b91506126f0826126b1565b602082019050919050565b5f6020820190508181035f830152612712816126d9565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e2e00000000000000005f82015250565b5f61274d6018836121eb565b915061275882612719565b602082019050919050565b5f6020820190508181035f83015261277a81612741565b9050919050565b5f8151905061278f816122bf565b92915050565b5f602082840312156127aa576127a961228b565b5b5f6127b784828501612781565b91505092915050565b5f6040820190506127d35f830185612464565b6127e06020830184612464565b9392505050565b5f819050919050565b5f819050919050565b5f61281361280e612809846127e7565b6127f0565b6122e9565b9050919050565b612823816127f9565b82525050565b5f60c08201905061283c5f830189612464565b612849602083018861238d565b612856604083018761281a565b612863606083018661281a565b6128706080830185612464565b61287d60a083018461238d565b979650505050505050565b5f81519050612896816122f2565b92915050565b5f805f606084860312156128b3576128b261228b565b5b5f6128c086828701612888565b93505060206128d186828701612888565b92505060406128e286828701612888565b9150509250925092565b7f4e6577206f776e65722063616e6e6f7420626520746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6129466024836121eb565b9150612951826128ec565b604082019050919050565b5f6020820190508181035f8301526129738161293a565b9050919050565b7f4e6577206f776e6572206d75737420626520646966666572656e7400000000005f82015250565b5f6129ae601b836121eb565b91506129b98261297a565b602082019050919050565b5f6020820190508181035f8301526129db816129a2565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612a3c6024836121eb565b9150612a47826129e2565b604082019050919050565b5f6020820190508181035f830152612a6981612a30565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612aca6022836121eb565b9150612ad582612a70565b604082019050919050565b5f6020820190508181035f830152612af781612abe565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612b586025836121eb565b9150612b6382612afe565b604082019050919050565b5f6020820190508181035f830152612b8581612b4c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612be66023836121eb565b9150612bf182612b8c565b604082019050919050565b5f6020820190508181035f830152612c1381612bda565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612c746029836121eb565b9150612c7f82612c1a565b604082019050919050565b5f6020820190508181035f830152612ca181612c68565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612cdc6019836121eb565b9150612ce782612ca8565b602082019050919050565b5f6020820190508181035f830152612d0981612cd0565b9050919050565b5f612d1a826122e9565b9150612d25836122e9565b9250828201905080821115612d3d57612d3c6124ca565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612d77601a836121eb565b9150612d8282612d43565b602082019050919050565b5f6020820190508181035f830152612da481612d6b565b9050919050565b5f612db5826122e9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612de757612de66124ca565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612e266017836121eb565b9150612e3182612df2565b602082019050919050565b5f6020820190508181035f830152612e5381612e1a565b9050919050565b5f612e64826122e9565b9150612e6f836122e9565b9250828203905081811115612e8757612e866124ca565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612f19816122ae565b82525050565b5f612f2a8383612f10565b60208301905092915050565b5f602082019050919050565b5f612f4c82612ee7565b612f568185612ef1565b9350612f6183612f01565b805f5b83811015612f91578151612f788882612f1f565b9750612f8383612f36565b925050600181019050612f64565b5085935050505092915050565b5f60a082019050612fb15f83018861238d565b612fbe602083018761281a565b8181036040830152612fd08186612f42565b9050612fdf6060830185612464565b612fec608083018461238d565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61302d826122e9565b9150613038836122e9565b92508261304857613047612ff6565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130ad6021836121eb565b91506130b882613053565b604082019050919050565b5f6020820190508181035f8301526130da816130a1565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613115601b836121eb565b9150613120826130e1565b602082019050919050565b5f6020820190508181035f83015261314281613109565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a334cb87c360551c48ac2067e33f9c8fc74c321f1e30bdb4d81b88b45b096ac364736f6c634300081a0033

Deployed Bytecode

0x60806040526004361061012d575f3560e01c8063715018a6116100aa57806395d89b411161006e57806395d89b4114610374578063a9059cbb1461039e578063bf474bed146103da578063ce74602414610404578063dd62ed3e1461041a578063f2fde38b1461045657610134565b8063715018a6146102ca578063751039fc146102e05780637d1db4a5146102f65780638da5cb5b146103205780638f9a55c01461034a57610134565b806324e34443116100f157806324e344431461022e578063313ce5671461023857806351bc3c85146102625780636fc3eaec1461027857806370a082311461028e57610134565b806306fdde0314610138578063095ea7b3146101625780630faee56f1461019e57806318160ddd146101c857806323b872dd146101f257610134565b3661013457005b5f80fd5b348015610143575f80fd5b5061014c61047e565b604051610159919061226b565b60405180910390f35b34801561016d575f80fd5b506101886004803603810190610183919061231c565b6104bb565b6040516101959190612374565b60405180910390f35b3480156101a9575f80fd5b506101b26104d8565b6040516101bf919061239c565b60405180910390f35b3480156101d3575f80fd5b506101dc6104de565b6040516101e9919061239c565b60405180910390f35b3480156101fd575f80fd5b50610218600480360381019061021391906123b5565b610501565b6040516102259190612374565b60405180910390f35b6102366105d5565b005b348015610243575f80fd5b5061024c610a7e565b6040516102599190612420565b60405180910390f35b34801561026d575f80fd5b50610276610a86565b005b348015610283575f80fd5b5061028c610b1d565b005b348015610299575f80fd5b506102b460048036038101906102af9190612439565b610b8c565b6040516102c1919061239c565b60405180910390f35b3480156102d5575f80fd5b506102de610bd2565b005b3480156102eb575f80fd5b506102f4610d20565b005b348015610301575f80fd5b5061030a610e4f565b604051610317919061239c565b60405180910390f35b34801561032b575f80fd5b50610334610e55565b6040516103419190612473565b60405180910390f35b348015610355575f80fd5b5061035e610e7c565b60405161036b919061239c565b60405180910390f35b34801561037f575f80fd5b50610388610e82565b604051610395919061226b565b60405180910390f35b3480156103a9575f80fd5b506103c460048036038101906103bf919061231c565b610ebf565b6040516103d19190612374565b60405180910390f35b3480156103e5575f80fd5b506103ee610edc565b6040516103fb919061239c565b60405180910390f35b34801561040f575f80fd5b50610418610ee2565b005b348015610425575f80fd5b50610440600480360381019061043b919061248c565b610f85565b60405161044d919061239c565b60405180910390f35b348015610461575f80fd5b5061047c60048036038101906104779190612439565b611007565b005b60606040518060400160405280600681526020017f626c696e6b790000000000000000000000000000000000000000000000000000815250905090565b5f6104ce6104c7611257565b848461125e565b6001905092915050565b60105481565b5f6009600a6104ed9190612626565b6305f5e1006104fc9190612670565b905090565b5f61050d848484611421565b6105ca84610519611257565b6105c58560405180606001604052806028815260200161314a6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61057c611257565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611ccd9092919063ffffffff16565b61125e565b600190509392505050565b6105dd611257565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610669576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610660906126fb565b60405180910390fd5b601260149054906101000a900460ff16156106b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106b090612763565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610778573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061079c9190612795565b90508073ffffffffffffffffffffffffffffffffffffffff1663c9c653963060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610825573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108499190612795565b6040518363ffffffff1660e01b81526004016108669291906127c0565b6020604051808303815f875af1158015610882573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108a69190612795565b60125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160035f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555061098e3060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166109896104de565b61125e565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71934306109d56104de565b5f806109df610e55565b426040518863ffffffff1660e01b8152600401610a0196959493929190612829565b60606040518083038185885af1158015610a1d573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610a42919061289c565b5050506001601260146101000a81548160ff0219169083151502179055506001601260166101000a81548160ff02191690831515021790555050565b5f6009905090565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ac6611257565b73ffffffffffffffffffffffffffffffffffffffff1614610ae5575f80fd5b5f610aef30610b8c565b90505f811115610b0357610b0281611d2f565b5b5f4790505f811115610b1957610b1881611f9a565b5b5050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b5d611257565b73ffffffffffffffffffffffffffffffffffffffff1614610b7c575f80fd5b5f479050610b8981611f9a565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610bda611257565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5d906126fb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d28611257565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610db4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dab906126fb565b60405180910390fd5b6009600a610dc29190612626565b6305f5e100610dd19190612670565b600d819055506009600a610de59190612626565b6305f5e100610df49190612670565b600e819055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a610e299190612626565b6305f5e100610e389190612670565b604051610e45919061239c565b60405180910390a1565b600d5481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600e5481565b60606040518060400160405280600681526020017f424c494e4b590000000000000000000000000000000000000000000000000000815250905090565b5f610ed2610ecb611257565b8484611421565b6001905092915050565b600f5481565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610f22611257565b73ffffffffffffffffffffffffffffffffffffffff1614610f41575f80fd5b5f610f4b30610b8c565b90505f811115610f8257610f813060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683611421565b5b50565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61100f611257565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461109b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611092906126fb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611109576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111009061295c565b60405180910390fd5b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118d906129c4565b60405180910390fd5b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c390612a52565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361133a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133190612ae0565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611414919061239c565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361148f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161148690612b6e565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036114fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114f490612bfc565b60405180910390fd5b5f811161153f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153690612c8a565b60405180910390fd5b5f611548610e55565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156115b65750611586610e55565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611a1d575f600c54036116035761160060646115f2600954600c54116115df576005546115e3565b6007545b8561200290919063ffffffff16565b61207990919063ffffffff16565b90505b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156116ac575060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116ff575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156117f757600d54821115611749576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174090612cf2565b60405180910390fd5b600e548261175685610b8c565b6117609190612d10565b11156117a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179890612d8d565b60405180910390fd5b6117dd60646117cf600954600c54116117bc576005546117c0565b6007545b8561200290919063ffffffff16565b61207990919063ffffffff16565b9050600c5f8154809291906117f190612dab565b91905055505b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561187f57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156118c3576118c060646118b2600a54600c541161189f576006546118a3565b6008545b8561200290919063ffffffff16565b61207990919063ffffffff16565b90505b5f6118cd30610b8c565b9050601260159054906101000a900460ff16158015611938575060125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b80156119505750601260169054906101000a900460ff165b801561195d5750600f5481115b801561196c5750600b54600c54115b15611a1b57601454431115611983575f6013819055505b6003601354106119c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119bf90612e3c565b60405180910390fd5b6119e56119e0846119db846010546120c2565b6120c2565b611d2f565b5f4790505f8111156119fb576119fa47611f9a565b5b60135f815480929190611a0d90612dab565b919050555043601481905550505b505b5f811115611b1c57611a758160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120da90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611b13919061239c565b60405180910390a35b611b6c8260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461213790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611c0f611bc3828461213790919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120da90919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef611cb2848661213790919063ffffffff16565b604051611cbf919061239c565b60405180910390a350505050565b5f838311158290611d14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0b919061226b565b60405180910390fd5b505f8385611d229190612e5a565b9050809150509392505050565b6001601260156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff811115611d6657611d65612e8d565b5b604051908082528060200260200182016040528015611d945781602001602082028036833780820191505090505b50905030815f81518110611dab57611daa612eba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611e4f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611e739190612795565b81600181518110611e8757611e86612eba565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611eed3060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461125e565b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611f4f959493929190612f9e565b5f604051808303815f87803b158015611f66575f80fd5b505af1158015611f78573d5f803e3d5ffd5b50505050505f601260156101000a81548160ff02191690831515021790555050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015611ffe573d5f803e3d5ffd5b5050565b5f808303612012575f9050612073565b5f828461201f9190612670565b905082848261202e9190613023565b1461206e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612065906130c3565b60405180910390fd5b809150505b92915050565b5f6120ba83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612180565b905092915050565b5f8183116120d057826120d2565b815b905092915050565b5f8082846120e89190612d10565b90508381101561212d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121249061312b565b60405180910390fd5b8091505092915050565b5f61217883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611ccd565b905092915050565b5f80831182906121c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121bd919061226b565b60405180910390fd5b505f83856121d49190613023565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156122185780820151818401526020810190506121fd565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61223d826121e1565b61224781856121eb565b93506122578185602086016121fb565b61226081612223565b840191505092915050565b5f6020820190508181035f8301526122838184612233565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6122b88261228f565b9050919050565b6122c8816122ae565b81146122d2575f80fd5b50565b5f813590506122e3816122bf565b92915050565b5f819050919050565b6122fb816122e9565b8114612305575f80fd5b50565b5f81359050612316816122f2565b92915050565b5f80604083850312156123325761233161228b565b5b5f61233f858286016122d5565b925050602061235085828601612308565b9150509250929050565b5f8115159050919050565b61236e8161235a565b82525050565b5f6020820190506123875f830184612365565b92915050565b612396816122e9565b82525050565b5f6020820190506123af5f83018461238d565b92915050565b5f805f606084860312156123cc576123cb61228b565b5b5f6123d9868287016122d5565b93505060206123ea868287016122d5565b92505060406123fb86828701612308565b9150509250925092565b5f60ff82169050919050565b61241a81612405565b82525050565b5f6020820190506124335f830184612411565b92915050565b5f6020828403121561244e5761244d61228b565b5b5f61245b848285016122d5565b91505092915050565b61246d816122ae565b82525050565b5f6020820190506124865f830184612464565b92915050565b5f80604083850312156124a2576124a161228b565b5b5f6124af858286016122d5565b92505060206124c0858286016122d5565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b600185111561254c57808604811115612528576125276124ca565b5b60018516156125375780820291505b8081029050612545856124f7565b945061250c565b94509492505050565b5f82612564576001905061261f565b81612571575f905061261f565b81600181146125875760028114612591576125c0565b600191505061261f565b60ff8411156125a3576125a26124ca565b5b8360020a9150848211156125ba576125b96124ca565b5b5061261f565b5060208310610133831016604e8410600b84101617156125f55782820a9050838111156125f0576125ef6124ca565b5b61261f565b6126028484846001612503565b92509050818404811115612619576126186124ca565b5b81810290505b9392505050565b5f612630826122e9565b915061263b83612405565b92506126687fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612555565b905092915050565b5f61267a826122e9565b9150612685836122e9565b9250828202612693816122e9565b915082820484148315176126aa576126a96124ca565b5b5092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126e56020836121eb565b91506126f0826126b1565b602082019050919050565b5f6020820190508181035f830152612712816126d9565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e2e00000000000000005f82015250565b5f61274d6018836121eb565b915061275882612719565b602082019050919050565b5f6020820190508181035f83015261277a81612741565b9050919050565b5f8151905061278f816122bf565b92915050565b5f602082840312156127aa576127a961228b565b5b5f6127b784828501612781565b91505092915050565b5f6040820190506127d35f830185612464565b6127e06020830184612464565b9392505050565b5f819050919050565b5f819050919050565b5f61281361280e612809846127e7565b6127f0565b6122e9565b9050919050565b612823816127f9565b82525050565b5f60c08201905061283c5f830189612464565b612849602083018861238d565b612856604083018761281a565b612863606083018661281a565b6128706080830185612464565b61287d60a083018461238d565b979650505050505050565b5f81519050612896816122f2565b92915050565b5f805f606084860312156128b3576128b261228b565b5b5f6128c086828701612888565b93505060206128d186828701612888565b92505060406128e286828701612888565b9150509250925092565b7f4e6577206f776e65722063616e6e6f7420626520746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6129466024836121eb565b9150612951826128ec565b604082019050919050565b5f6020820190508181035f8301526129738161293a565b9050919050565b7f4e6577206f776e6572206d75737420626520646966666572656e7400000000005f82015250565b5f6129ae601b836121eb565b91506129b98261297a565b602082019050919050565b5f6020820190508181035f8301526129db816129a2565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f612a3c6024836121eb565b9150612a47826129e2565b604082019050919050565b5f6020820190508181035f830152612a6981612a30565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f612aca6022836121eb565b9150612ad582612a70565b604082019050919050565b5f6020820190508181035f830152612af781612abe565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f612b586025836121eb565b9150612b6382612afe565b604082019050919050565b5f6020820190508181035f830152612b8581612b4c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612be66023836121eb565b9150612bf182612b8c565b604082019050919050565b5f6020820190508181035f830152612c1381612bda565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612c746029836121eb565b9150612c7f82612c1a565b604082019050919050565b5f6020820190508181035f830152612ca181612c68565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f612cdc6019836121eb565b9150612ce782612ca8565b602082019050919050565b5f6020820190508181035f830152612d0981612cd0565b9050919050565b5f612d1a826122e9565b9150612d25836122e9565b9250828201905080821115612d3d57612d3c6124ca565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f612d77601a836121eb565b9150612d8282612d43565b602082019050919050565b5f6020820190508181035f830152612da481612d6b565b9050919050565b5f612db5826122e9565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612de757612de66124ca565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f612e266017836121eb565b9150612e3182612df2565b602082019050919050565b5f6020820190508181035f830152612e5381612e1a565b9050919050565b5f612e64826122e9565b9150612e6f836122e9565b9250828203905081811115612e8757612e866124ca565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612f19816122ae565b82525050565b5f612f2a8383612f10565b60208301905092915050565b5f602082019050919050565b5f612f4c82612ee7565b612f568185612ef1565b9350612f6183612f01565b805f5b83811015612f91578151612f788882612f1f565b9750612f8383612f36565b925050600181019050612f64565b5085935050505092915050565b5f60a082019050612fb15f83018861238d565b612fbe602083018761281a565b8181036040830152612fd08186612f42565b9050612fdf6060830185612464565b612fec608083018461238d565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61302d826122e9565b9150613038836122e9565b92508261304857613047612ff6565b5b828204905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6130ad6021836121eb565b91506130b882613053565b604082019050919050565b5f6020820190508181035f8301526130da816130a1565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613115601b836121eb565b9150613120826130e1565b602082019050919050565b5f6020820190508181035f83015261314281613109565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a334cb87c360551c48ac2067e33f9c8fc74c321f1e30bdb4d81b88b45b096ac364736f6c634300081a0033

Deployed Bytecode Sourcemap

4579:8393:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6453:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7286:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5628:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6730:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7455:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11275:859;;;:::i;:::-;;6639:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12426:348;;;;;;;;;;;;;:::i;:::-;;12782:187;;;;;;;;;;;;;:::i;:::-;;6833:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3562:148;;;;;;;;;;;;;:::i;:::-;;11008:159;;;;;;;;;;;;;:::i;:::-;;5442:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2989:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5502:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6544:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6960:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5564:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12179:239;;;;;;;;;;;;;:::i;:::-;;7135:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3203:351;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6453:83;6490:13;6523:5;;;;;;;;;;;;;;;;;6516:12;;6453:83;:::o;7286:161::-;7361:4;7378:39;7387:12;:10;:12::i;:::-;7401:7;7410:6;7378:8;:39::i;:::-;7435:4;7428:11;;7286:161;;;;:::o;5628:51::-;;;;:::o;6730:95::-;6783:7;5257:1;5312:2;:13;;;;:::i;:::-;5300:9;:25;;;;:::i;:::-;6803:14;;6730:95;:::o;7455:313::-;7553:4;7570:36;7580:6;7588:9;7599:6;7570:9;:36::i;:::-;7617:121;7626:6;7634:12;:10;:12::i;:::-;7648:89;7686:6;7648:89;;;;;;;;;;;;;;;;;:11;:19;7660:6;7648:19;;;;;;;;;;;;;;;:33;7668:12;:10;:12::i;:::-;7648:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;7617:8;:121::i;:::-;7756:4;7749:11;;7455:313;;;;;:::o;11275:859::-;3126:12;:10;:12::i;:::-;3116:22;;:6;;;;;;;;;;:22;;;3108:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;11349:11:::1;;;;;;;;;;;11348:12;11340:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;11437:42;11400:15;;:80;;;;;;;;;;;;;;;;;;11491:34;11560:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11491:105;;11623:16;:27;;;11673:4;11694:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11623:104;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11607:13;;:120;;;;;;;;;;;;;;;;;;11776:4;11738:11;:35;11758:13;;;;;;;;;;;11738:35;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;11791:64;11808:4;11823:15;;;;;;;;;;;11841:13;:11;:13::i;:::-;11791:8;:64::i;:::-;11866:15;;;;;;;;;;;:31;;;11906:9;11940:4;11960:13;:11;:13::i;:::-;11988:1;12004::::0;12020:7:::1;:5;:7::i;:::-;12042:15;11866:202;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12093:4;12079:11;;:18;;;;;;;;;;;;;;;;;;12122:4;12108:11;;:18;;;;;;;;;;;;;;;;;;11329:805;11275:859::o:0;6639:83::-;6680:5;5257:1;6698:16;;6639:83;:::o;12426:348::-;12490:10;;;;;;;;;;;12476:24;;:12;:10;:12::i;:::-;:24;;;12468:33;;;;;;12512:20;12533:24;12551:4;12533:9;:24::i;:::-;12512:45;;12584:1;12571:12;:14;12568:73;;;12599:30;12616:12;12599:16;:30::i;:::-;12568:73;12651:18;12670:21;12651:40;;12716:1;12705:10;:12;12702:65;;;12731:24;12744:10;12731:12;:24::i;:::-;12702:65;12457:317;;12426:348::o;12782:187::-;12846:10;;;;;;;;;;;12832:24;;:12;:10;:12::i;:::-;:24;;;12824:33;;;;;;12868:26;12897:21;12868:50;;12929:32;12942:18;12929:12;:32::i;:::-;12813:156;12782:187::o;6833:119::-;6899:7;6926:9;:18;6936:7;6926:18;;;;;;;;;;;;;;;;6919:25;;6833:119;;;:::o;3562:148::-;3126:12;:10;:12::i;:::-;3116:22;;:6;;;;;;;;;;:22;;;3108:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3669:1:::1;3632:40;;3653:6;::::0;::::1;;;;;;;;3632:40;;;;;;;;;;;;3700:1;3683:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;3562:148::o:0;11008:159::-;3126:12;:10;:12::i;:::-;3116:22;;:6;;;;;;;;;;:22;;;3108:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;5257:1:::1;5312:2;:13;;;;:::i;:::-;5300:9;:25;;;;:::i;:::-;11061:12;:22;;;;5257:1;5312:2;:13;;;;:::i;:::-;5300:9;:25;;;;:::i;:::-;11094:14;:22;;;;11132:27;5257:1;5312:2;:13;;;;:::i;:::-;5300:9;:25;;;;:::i;:::-;11132:27;;;;;;:::i;:::-;;;;;;;;11008:159::o:0;5442:53::-;;;;:::o;2989:79::-;3027:7;3054:6;;;;;;;;;;;3047:13;;2989:79;:::o;5502:55::-;;;;:::o;6544:87::-;6583:13;6616:7;;;;;;;;;;;;;;;;;6609:14;;6544:87;:::o;6960:167::-;7038:4;7055:42;7065:12;:10;:12::i;:::-;7079:9;7090:6;7055:9;:42::i;:::-;7115:4;7108:11;;6960:167;;;;:::o;5564:57::-;;;;:::o;12179:239::-;12240:10;;;;;;;;;;;12226:24;;:12;:10;:12::i;:::-;:24;;;12218:33;;;;;;12262:20;12283:24;12301:4;12283:9;:24::i;:::-;12262:45;;12334:1;12321:12;:14;12318:93;;;12349:50;12367:4;12374:10;;;;;;;;;;;12386:12;12349:9;:50::i;:::-;12318:93;12207:211;12179:239::o;7135:143::-;7216:7;7243:11;:18;7255:5;7243:18;;;;;;;;;;;;;;;:27;7262:7;7243:27;;;;;;;;;;;;;;;;7236:34;;7135:143;;;;:::o;3203:351::-;3126:12;:10;:12::i;:::-;3116:22;;:6;;;;;;;;;;:22;;;3108:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3312:1:::1;3292:22;;:8;:22;;::::0;3284:71:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3386:6;::::0;::::1;;;;;;;;3374:18;;:8;:18;;::::0;3366:58:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3435:17;3455:6:::0;::::1;;;;;;;;;;3435:26;;3481:8;3472:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;3537:8;3505:41;;3526:9;3505:41;;;;;;;;;;;;3273:281;3203:351:::0;:::o;2566:98::-;2619:7;2646:10;2639:17;;2566:98;:::o;7776:335::-;7886:1;7869:19;;:5;:19;;;7861:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7967:1;7948:21;;:7;:21;;;7940:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8049:6;8019:11;:18;8031:5;8019:18;;;;;;;;;;;;;;;:27;8038:7;8019:27;;;;;;;;;;;;;;;:36;;;;8087:7;8071:32;;8080:5;8071:32;;;8096:6;8071:32;;;;;;:::i;:::-;;;;;;;;7776:335;;;:::o;8119:2282::-;8223:1;8207:18;;:4;:18;;;8199:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8300:1;8286:16;;:2;:16;;;8278:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8370:1;8361:6;:10;8353:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8428:17;8470:7;:5;:7::i;:::-;8462:15;;:4;:15;;;;:32;;;;;8487:7;:5;:7::i;:::-;8481:13;;:2;:13;;;;8462:32;8458:1587;;;8525:1;8514:9;;:12;8511:139;;8558:76;8630:3;8558:67;8580:15;;8570:9;;:25;8569:55;;8610:14;;8569:55;;;8597:12;;8569:55;8558:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8546:88;;8511:139;8678:13;;;;;;;;;;;8670:21;;:4;:21;;;:55;;;;;8709:15;;;;;;;;;;;8695:30;;:2;:30;;;;8670:55;:76;;;;;8731:11;:15;8743:2;8731:15;;;;;;;;;;;;;;;;;;;;;;;;;8729:17;8670:76;8666:413;;;8786:12;;8776:6;:22;;8768:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;8881:14;;8871:6;8855:13;8865:2;8855:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;8847:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;8957:76;9029:3;8957:67;8979:15;;8969:9;;:25;8968:55;;9009:14;;8968:55;;;8996:12;;8968:55;8957:6;:10;;:67;;;;:::i;:::-;:71;;:76;;;;:::i;:::-;8945:88;;9052:9;;:11;;;;;;;;;:::i;:::-;;;;;;8666:413;9104:13;;;;;;;;;;;9098:19;;:2;:19;;;:43;;;;;9136:4;9121:20;;:4;:20;;;;9098:43;9095:174;;;9174:79;9249:3;9174:70;9196:16;;9186:9;;:26;9185:58;;9228:15;;9185:58;;;9214:13;;9185:58;9174:6;:10;;:70;;;;:::i;:::-;:74;;:79;;;;:::i;:::-;9162:91;;9095:174;9285:28;9316:24;9334:4;9316:9;:24::i;:::-;9285:55;;9360:6;;;;;;;;;;;9359:7;:30;;;;;9376:13;;;;;;;;;;;9370:19;;:2;:19;;;9359:30;:45;;;;;9393:11;;;;;;;;;;;9359:45;:89;;;;;9431:17;;9408:20;:40;9359:89;:123;;;;;9464:18;;9452:9;;:30;9359:123;9355:679;;;9522:13;;9507:12;:28;9503:90;;;9572:1;9560:9;:13;;;;9503:90;9631:1;9619:9;;:13;9611:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;9679:69;9696:51;9700:6;9708:38;9712:20;9734:11;;9708:3;:38::i;:::-;9696:3;:51::i;:::-;9679:16;:69::i;:::-;9767:26;9796:21;9767:50;;9861:1;9840:18;:22;9836:106;;;9887:35;9900:21;9887:12;:35::i;:::-;9836:106;9960:9;;:11;;;;;;;;;:::i;:::-;;;;;;10006:12;9990:13;:28;;;;9484:550;9355:679;8496:1549;8458:1587;10070:1;10060:9;:11;10057:161;;;10110:39;10139:9;10110;:24;10128:4;10110:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10085:9;:24;10103:4;10085:24;;;;;;;;;;;;;;;:64;;;;10190:4;10167:39;;10176:4;10167:39;;;10196:9;10167:39;;;;;;:::i;:::-;;;;;;;;10057:161;10244:27;10264:6;10244:9;:15;10254:4;10244:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;10228:9;:15;10238:4;10228:15;;;;;;;;;;;;;;;:43;;;;10296:40;10314:21;10325:9;10314:6;:10;;:21;;;;:::i;:::-;10296:9;:13;10306:2;10296:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;10282:9;:13;10292:2;10282:13;;;;;;;;;;;;;;;:54;;;;10367:2;10352:41;;10361:4;10352:41;;;10371:21;10382:9;10371:6;:10;;:21;;;;:::i;:::-;10352:41;;;;;;:::i;:::-;;;;;;;;8188:2213;8119:2282;;;:::o;917:190::-;1003:7;1036:1;1031;:6;;1039:12;1023:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1063:9;1079:1;1075;:5;;;;:::i;:::-;1063:17;;1098:1;1091:8;;;917:190;;;;;:::o;10517:483::-;6090:4;6081:6;;:13;;;;;;;;;;;;;;;;;;10595:21:::1;10633:1;10619:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10595:40;;10664:4;10646;10651:1;10646:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;10690:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10680:4;10685:1;10680:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;10723:62;10740:4;10755:15;;;;;;;;;;;10773:11;10723:8;:62::i;:::-;10796:15;;;;;;;;;;;:66;;;10877:11;10903:1;10919:4;10946;10966:15;10796:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;10584:416;6126:5:::0;6117:6;;:14;;;;;;;;;;;;;;;;;;10517:483;:::o;11175:92::-;11232:10;;;;;;;;;;;:19;;:27;11252:6;11232:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11175:92;:::o;1115:246::-;1173:7;1202:1;1197;:6;1193:47;;1227:1;1220:8;;;;1193:47;1250:9;1266:1;1262;:5;;;;:::i;:::-;1250:17;;1295:1;1290;1286;:5;;;;:::i;:::-;:10;1278:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1352:1;1345:8;;;1115:246;;;;;:::o;1369:132::-;1427:7;1454:39;1458:1;1461;1454:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1447:46;;1369:132;;;;:::o;10411:98::-;10468:7;10495:1;10493;:3;10492:9;;10500:1;10492:9;;;10498:1;10492:9;10485:16;;10411:98;;;;:::o;586:179::-;644:7;664:9;680:1;676;:5;;;;:::i;:::-;664:17;;705:1;700;:6;;692:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;756:1;749:8;;;586:179;;;;:::o;773:136::-;831:7;858:43;862:1;865;858:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;851:50;;773:136;;;;:::o;1509:189::-;1595:7;1627:1;1623;:5;1630:12;1615:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1654:9;1670:1;1666;:5;;;;:::i;:::-;1654:17;;1689:1;1682:8;;;1509:189;;;;;:::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:248::-;369:1;379:113;393:6;390:1;387:13;379:113;;;478:1;473:3;469:11;463:18;459:1;454:3;450:11;443:39;415:2;412:1;408:10;403:15;;379:113;;;526:1;517:6;512:3;508:16;501:27;349:186;287:248;;;:::o;541:102::-;582:6;633:2;629:7;624:2;617:5;613:14;609:28;599:38;;541:102;;;:::o;649:377::-;737:3;765:39;798:5;765:39;:::i;:::-;820:71;884:6;879:3;820:71;:::i;:::-;813:78;;900:65;958:6;953:3;946:4;939:5;935:16;900:65;:::i;:::-;990:29;1012:6;990:29;:::i;:::-;985:3;981:39;974:46;;741:285;649:377;;;;:::o;1032:313::-;1145:4;1183:2;1172:9;1168:18;1160:26;;1232:9;1226:4;1222:20;1218:1;1207:9;1203:17;1196:47;1260:78;1333:4;1324:6;1260:78;:::i;:::-;1252:86;;1032:313;;;;:::o;1432:117::-;1541:1;1538;1531:12;1678:126;1715:7;1755:42;1748:5;1744:54;1733:65;;1678:126;;;:::o;1810:96::-;1847:7;1876:24;1894:5;1876:24;:::i;:::-;1865:35;;1810:96;;;:::o;1912:122::-;1985:24;2003:5;1985:24;:::i;:::-;1978:5;1975:35;1965:63;;2024:1;2021;2014:12;1965:63;1912:122;:::o;2040:139::-;2086:5;2124:6;2111:20;2102:29;;2140:33;2167:5;2140:33;:::i;:::-;2040:139;;;;:::o;2185:77::-;2222:7;2251:5;2240:16;;2185:77;;;:::o;2268:122::-;2341:24;2359:5;2341:24;:::i;:::-;2334:5;2331:35;2321:63;;2380:1;2377;2370:12;2321:63;2268:122;:::o;2396:139::-;2442:5;2480:6;2467:20;2458:29;;2496:33;2523:5;2496:33;:::i;:::-;2396:139;;;;:::o;2541:474::-;2609:6;2617;2666:2;2654:9;2645:7;2641:23;2637:32;2634:119;;;2672:79;;:::i;:::-;2634:119;2792:1;2817:53;2862:7;2853:6;2842:9;2838:22;2817:53;:::i;:::-;2807:63;;2763:117;2919:2;2945:53;2990:7;2981:6;2970:9;2966:22;2945:53;:::i;:::-;2935:63;;2890:118;2541:474;;;;;:::o;3021:90::-;3055:7;3098:5;3091:13;3084:21;3073:32;;3021:90;;;:::o;3117:109::-;3198:21;3213:5;3198:21;:::i;:::-;3193:3;3186:34;3117:109;;:::o;3232:210::-;3319:4;3357:2;3346:9;3342:18;3334:26;;3370:65;3432:1;3421:9;3417:17;3408:6;3370:65;:::i;:::-;3232:210;;;;:::o;3448:118::-;3535:24;3553:5;3535:24;:::i;:::-;3530:3;3523:37;3448:118;;:::o;3572:222::-;3665:4;3703:2;3692:9;3688:18;3680:26;;3716:71;3784:1;3773:9;3769:17;3760:6;3716:71;:::i;:::-;3572:222;;;;:::o;3800:619::-;3877:6;3885;3893;3942:2;3930:9;3921:7;3917:23;3913:32;3910:119;;;3948:79;;:::i;:::-;3910:119;4068:1;4093:53;4138:7;4129:6;4118:9;4114:22;4093:53;:::i;:::-;4083:63;;4039:117;4195:2;4221:53;4266:7;4257:6;4246:9;4242:22;4221:53;:::i;:::-;4211:63;;4166:118;4323:2;4349:53;4394:7;4385:6;4374:9;4370:22;4349:53;:::i;:::-;4339:63;;4294:118;3800:619;;;;;:::o;4425:86::-;4460:7;4500:4;4493:5;4489:16;4478:27;;4425:86;;;:::o;4517:112::-;4600:22;4616:5;4600:22;:::i;:::-;4595:3;4588:35;4517:112;;:::o;4635:214::-;4724:4;4762:2;4751:9;4747:18;4739:26;;4775:67;4839:1;4828:9;4824:17;4815:6;4775:67;:::i;:::-;4635:214;;;;:::o;4855:329::-;4914:6;4963:2;4951:9;4942:7;4938:23;4934:32;4931:119;;;4969:79;;:::i;:::-;4931:119;5089:1;5114:53;5159:7;5150:6;5139:9;5135:22;5114:53;:::i;:::-;5104:63;;5060:117;4855:329;;;;:::o;5190:118::-;5277:24;5295:5;5277:24;:::i;:::-;5272:3;5265:37;5190:118;;:::o;5314:222::-;5407:4;5445:2;5434:9;5430:18;5422:26;;5458:71;5526:1;5515:9;5511:17;5502:6;5458:71;:::i;:::-;5314:222;;;;:::o;5542:474::-;5610:6;5618;5667:2;5655:9;5646:7;5642:23;5638:32;5635:119;;;5673:79;;:::i;:::-;5635:119;5793:1;5818:53;5863:7;5854:6;5843:9;5839:22;5818:53;:::i;:::-;5808:63;;5764:117;5920:2;5946:53;5991:7;5982:6;5971:9;5967:22;5946:53;:::i;:::-;5936:63;;5891:118;5542:474;;;;;:::o;6022:180::-;6070:77;6067:1;6060:88;6167:4;6164:1;6157:15;6191:4;6188:1;6181:15;6208:102;6250:8;6297:5;6294:1;6290:13;6269:34;;6208:102;;;:::o;6316:848::-;6377:5;6384:4;6408:6;6399:15;;6432:5;6423:14;;6446:712;6467:1;6457:8;6454:15;6446:712;;;6562:4;6557:3;6553:14;6547:4;6544:24;6541:50;;;6571:18;;:::i;:::-;6541:50;6621:1;6611:8;6607:16;6604:451;;;7036:4;7029:5;7025:16;7016:25;;6604:451;7086:4;7080;7076:15;7068:23;;7116:32;7139:8;7116:32;:::i;:::-;7104:44;;6446:712;;;6316:848;;;;;;;:::o;7170:1073::-;7224:5;7415:8;7405:40;;7436:1;7427:10;;7438:5;;7405:40;7464:4;7454:36;;7481:1;7472:10;;7483:5;;7454:36;7550:4;7598:1;7593:27;;;;7634:1;7629:191;;;;7543:277;;7593:27;7611:1;7602:10;;7613:5;;;7629:191;7674:3;7664:8;7661:17;7658:43;;;7681:18;;:::i;:::-;7658:43;7730:8;7727:1;7723:16;7714:25;;7765:3;7758:5;7755:14;7752:40;;;7772:18;;:::i;:::-;7752:40;7805:5;;;7543:277;;7929:2;7919:8;7916:16;7910:3;7904:4;7901:13;7897:36;7879:2;7869:8;7866:16;7861:2;7855:4;7852:12;7848:35;7832:111;7829:246;;;7985:8;7979:4;7975:19;7966:28;;8020:3;8013:5;8010:14;8007:40;;;8027:18;;:::i;:::-;8007:40;8060:5;;7829:246;8100:42;8138:3;8128:8;8122:4;8119:1;8100:42;:::i;:::-;8085:57;;;;8174:4;8169:3;8165:14;8158:5;8155:25;8152:51;;;8183:18;;:::i;:::-;8152:51;8232:4;8225:5;8221:16;8212:25;;7170:1073;;;;;;:::o;8249:281::-;8307:5;8331:23;8349:4;8331:23;:::i;:::-;8323:31;;8375:25;8391:8;8375:25;:::i;:::-;8363:37;;8419:104;8456:66;8446:8;8440:4;8419:104;:::i;:::-;8410:113;;8249:281;;;;:::o;8536:410::-;8576:7;8599:20;8617:1;8599:20;:::i;:::-;8594:25;;8633:20;8651:1;8633:20;:::i;:::-;8628:25;;8688:1;8685;8681:9;8710:30;8728:11;8710:30;:::i;:::-;8699:41;;8889:1;8880:7;8876:15;8873:1;8870:22;8850:1;8843:9;8823:83;8800:139;;8919:18;;:::i;:::-;8800:139;8584:362;8536:410;;;;:::o;8952:182::-;9092:34;9088:1;9080:6;9076:14;9069:58;8952:182;:::o;9140:366::-;9282:3;9303:67;9367:2;9362:3;9303:67;:::i;:::-;9296:74;;9379:93;9468:3;9379:93;:::i;:::-;9497:2;9492:3;9488:12;9481:19;;9140:366;;;:::o;9512:419::-;9678:4;9716:2;9705:9;9701:18;9693:26;;9765:9;9759:4;9755:20;9751:1;9740:9;9736:17;9729:47;9793:131;9919:4;9793:131;:::i;:::-;9785:139;;9512:419;;;:::o;9937:174::-;10077:26;10073:1;10065:6;10061:14;10054:50;9937:174;:::o;10117:366::-;10259:3;10280:67;10344:2;10339:3;10280:67;:::i;:::-;10273:74;;10356:93;10445:3;10356:93;:::i;:::-;10474:2;10469:3;10465:12;10458:19;;10117:366;;;:::o;10489:419::-;10655:4;10693:2;10682:9;10678:18;10670:26;;10742:9;10736:4;10732:20;10728:1;10717:9;10713:17;10706:47;10770:131;10896:4;10770:131;:::i;:::-;10762:139;;10489:419;;;:::o;10914:143::-;10971:5;11002:6;10996:13;10987:22;;11018:33;11045:5;11018:33;:::i;:::-;10914:143;;;;:::o;11063:351::-;11133:6;11182:2;11170:9;11161:7;11157:23;11153:32;11150:119;;;11188:79;;:::i;:::-;11150:119;11308:1;11333:64;11389:7;11380:6;11369:9;11365:22;11333:64;:::i;:::-;11323:74;;11279:128;11063:351;;;;:::o;11420:332::-;11541:4;11579:2;11568:9;11564:18;11556:26;;11592:71;11660:1;11649:9;11645:17;11636:6;11592:71;:::i;:::-;11673:72;11741:2;11730:9;11726:18;11717:6;11673:72;:::i;:::-;11420:332;;;;;:::o;11758:85::-;11803:7;11832:5;11821:16;;11758:85;;;:::o;11849:60::-;11877:3;11898:5;11891:12;;11849:60;;;:::o;11915:158::-;11973:9;12006:61;12024:42;12033:32;12059:5;12033:32;:::i;:::-;12024:42;:::i;:::-;12006:61;:::i;:::-;11993:74;;11915:158;;;:::o;12079:147::-;12174:45;12213:5;12174:45;:::i;:::-;12169:3;12162:58;12079:147;;:::o;12232:807::-;12481:4;12519:3;12508:9;12504:19;12496:27;;12533:71;12601:1;12590:9;12586:17;12577:6;12533:71;:::i;:::-;12614:72;12682:2;12671:9;12667:18;12658:6;12614:72;:::i;:::-;12696:80;12772:2;12761:9;12757:18;12748:6;12696:80;:::i;:::-;12786;12862:2;12851:9;12847:18;12838:6;12786:80;:::i;:::-;12876:73;12944:3;12933:9;12929:19;12920:6;12876:73;:::i;:::-;12959;13027:3;13016:9;13012:19;13003:6;12959:73;:::i;:::-;12232:807;;;;;;;;;:::o;13045:143::-;13102:5;13133:6;13127:13;13118:22;;13149:33;13176:5;13149:33;:::i;:::-;13045:143;;;;:::o;13194:663::-;13282:6;13290;13298;13347:2;13335:9;13326:7;13322:23;13318:32;13315:119;;;13353:79;;:::i;:::-;13315:119;13473:1;13498:64;13554:7;13545:6;13534:9;13530:22;13498:64;:::i;:::-;13488:74;;13444:128;13611:2;13637:64;13693:7;13684:6;13673:9;13669:22;13637:64;:::i;:::-;13627:74;;13582:129;13750:2;13776:64;13832:7;13823:6;13812:9;13808:22;13776:64;:::i;:::-;13766:74;;13721:129;13194:663;;;;;:::o;13863:223::-;14003:34;13999:1;13991:6;13987:14;13980:58;14072:6;14067:2;14059:6;14055:15;14048:31;13863:223;:::o;14092:366::-;14234:3;14255:67;14319:2;14314:3;14255:67;:::i;:::-;14248:74;;14331:93;14420:3;14331:93;:::i;:::-;14449:2;14444:3;14440:12;14433:19;;14092:366;;;:::o;14464:419::-;14630:4;14668:2;14657:9;14653:18;14645:26;;14717:9;14711:4;14707:20;14703:1;14692:9;14688:17;14681:47;14745:131;14871:4;14745:131;:::i;:::-;14737:139;;14464:419;;;:::o;14889:177::-;15029:29;15025:1;15017:6;15013:14;15006:53;14889:177;:::o;15072:366::-;15214:3;15235:67;15299:2;15294:3;15235:67;:::i;:::-;15228:74;;15311:93;15400:3;15311:93;:::i;:::-;15429:2;15424:3;15420:12;15413:19;;15072:366;;;:::o;15444:419::-;15610:4;15648:2;15637:9;15633:18;15625:26;;15697:9;15691:4;15687:20;15683:1;15672:9;15668:17;15661:47;15725:131;15851:4;15725:131;:::i;:::-;15717:139;;15444:419;;;:::o;15869:223::-;16009:34;16005:1;15997:6;15993:14;15986:58;16078:6;16073:2;16065:6;16061:15;16054:31;15869:223;:::o;16098:366::-;16240:3;16261:67;16325:2;16320:3;16261:67;:::i;:::-;16254:74;;16337:93;16426:3;16337:93;:::i;:::-;16455:2;16450:3;16446:12;16439:19;;16098:366;;;:::o;16470:419::-;16636:4;16674:2;16663:9;16659:18;16651:26;;16723:9;16717:4;16713:20;16709:1;16698:9;16694:17;16687:47;16751:131;16877:4;16751:131;:::i;:::-;16743:139;;16470:419;;;:::o;16895:221::-;17035:34;17031:1;17023:6;17019:14;17012:58;17104:4;17099:2;17091:6;17087:15;17080:29;16895:221;:::o;17122:366::-;17264:3;17285:67;17349:2;17344:3;17285:67;:::i;:::-;17278:74;;17361:93;17450:3;17361:93;:::i;:::-;17479:2;17474:3;17470:12;17463:19;;17122:366;;;:::o;17494:419::-;17660:4;17698:2;17687:9;17683:18;17675:26;;17747:9;17741:4;17737:20;17733:1;17722:9;17718:17;17711:47;17775:131;17901:4;17775:131;:::i;:::-;17767:139;;17494:419;;;:::o;17919:224::-;18059:34;18055:1;18047:6;18043:14;18036:58;18128:7;18123:2;18115:6;18111:15;18104:32;17919:224;:::o;18149:366::-;18291:3;18312:67;18376:2;18371:3;18312:67;:::i;:::-;18305:74;;18388:93;18477:3;18388:93;:::i;:::-;18506:2;18501:3;18497:12;18490:19;;18149:366;;;:::o;18521:419::-;18687:4;18725:2;18714:9;18710:18;18702:26;;18774:9;18768:4;18764:20;18760:1;18749:9;18745:17;18738:47;18802:131;18928:4;18802:131;:::i;:::-;18794:139;;18521:419;;;:::o;18946:222::-;19086:34;19082:1;19074:6;19070:14;19063:58;19155:5;19150:2;19142:6;19138:15;19131:30;18946:222;:::o;19174:366::-;19316:3;19337:67;19401:2;19396:3;19337:67;:::i;:::-;19330:74;;19413:93;19502:3;19413:93;:::i;:::-;19531:2;19526:3;19522:12;19515:19;;19174:366;;;:::o;19546:419::-;19712:4;19750:2;19739:9;19735:18;19727:26;;19799:9;19793:4;19789:20;19785:1;19774:9;19770:17;19763:47;19827:131;19953:4;19827:131;:::i;:::-;19819:139;;19546:419;;;:::o;19971:228::-;20111:34;20107:1;20099:6;20095:14;20088:58;20180:11;20175:2;20167:6;20163:15;20156:36;19971:228;:::o;20205:366::-;20347:3;20368:67;20432:2;20427:3;20368:67;:::i;:::-;20361:74;;20444:93;20533:3;20444:93;:::i;:::-;20562:2;20557:3;20553:12;20546:19;;20205:366;;;:::o;20577:419::-;20743:4;20781:2;20770:9;20766:18;20758:26;;20830:9;20824:4;20820:20;20816:1;20805:9;20801:17;20794:47;20858:131;20984:4;20858:131;:::i;:::-;20850:139;;20577:419;;;:::o;21002:175::-;21142:27;21138:1;21130:6;21126:14;21119:51;21002:175;:::o;21183:366::-;21325:3;21346:67;21410:2;21405:3;21346:67;:::i;:::-;21339:74;;21422:93;21511:3;21422:93;:::i;:::-;21540:2;21535:3;21531:12;21524:19;;21183:366;;;:::o;21555:419::-;21721:4;21759:2;21748:9;21744:18;21736:26;;21808:9;21802:4;21798:20;21794:1;21783:9;21779:17;21772:47;21836:131;21962:4;21836:131;:::i;:::-;21828:139;;21555:419;;;:::o;21980:191::-;22020:3;22039:20;22057:1;22039:20;:::i;:::-;22034:25;;22073:20;22091:1;22073:20;:::i;:::-;22068:25;;22116:1;22113;22109:9;22102:16;;22137:3;22134:1;22131:10;22128:36;;;22144:18;;:::i;:::-;22128:36;21980:191;;;;:::o;22177:176::-;22317:28;22313:1;22305:6;22301:14;22294:52;22177:176;:::o;22359:366::-;22501:3;22522:67;22586:2;22581:3;22522:67;:::i;:::-;22515:74;;22598:93;22687:3;22598:93;:::i;:::-;22716:2;22711:3;22707:12;22700:19;;22359:366;;;:::o;22731:419::-;22897:4;22935:2;22924:9;22920:18;22912:26;;22984:9;22978:4;22974:20;22970:1;22959:9;22955:17;22948:47;23012:131;23138:4;23012:131;:::i;:::-;23004:139;;22731:419;;;:::o;23156:233::-;23195:3;23218:24;23236:5;23218:24;:::i;:::-;23209:33;;23264:66;23257:5;23254:77;23251:103;;23334:18;;:::i;:::-;23251:103;23381:1;23374:5;23370:13;23363:20;;23156:233;;;:::o;23395:173::-;23535:25;23531:1;23523:6;23519:14;23512:49;23395:173;:::o;23574:366::-;23716:3;23737:67;23801:2;23796:3;23737:67;:::i;:::-;23730:74;;23813:93;23902:3;23813:93;:::i;:::-;23931:2;23926:3;23922:12;23915:19;;23574:366;;;:::o;23946:419::-;24112:4;24150:2;24139:9;24135:18;24127:26;;24199:9;24193:4;24189:20;24185:1;24174:9;24170:17;24163:47;24227:131;24353:4;24227:131;:::i;:::-;24219:139;;23946:419;;;:::o;24371:194::-;24411:4;24431:20;24449:1;24431:20;:::i;:::-;24426:25;;24465:20;24483:1;24465:20;:::i;:::-;24460:25;;24509:1;24506;24502:9;24494:17;;24533:1;24527:4;24524:11;24521:37;;;24538:18;;:::i;:::-;24521:37;24371:194;;;;:::o;24571:180::-;24619:77;24616:1;24609:88;24716:4;24713:1;24706:15;24740:4;24737:1;24730:15;24757:180;24805:77;24802:1;24795:88;24902:4;24899:1;24892:15;24926:4;24923:1;24916:15;24943:114;25010:6;25044:5;25038:12;25028:22;;24943:114;;;:::o;25063:184::-;25162:11;25196:6;25191:3;25184:19;25236:4;25231:3;25227:14;25212:29;;25063:184;;;;:::o;25253:132::-;25320:4;25343:3;25335:11;;25373:4;25368:3;25364:14;25356:22;;25253:132;;;:::o;25391:108::-;25468:24;25486:5;25468:24;:::i;:::-;25463:3;25456:37;25391:108;;:::o;25505:179::-;25574:10;25595:46;25637:3;25629:6;25595:46;:::i;:::-;25673:4;25668:3;25664:14;25650:28;;25505:179;;;;:::o;25690:113::-;25760:4;25792;25787:3;25783:14;25775:22;;25690:113;;;:::o;25839:732::-;25958:3;25987:54;26035:5;25987:54;:::i;:::-;26057:86;26136:6;26131:3;26057:86;:::i;:::-;26050:93;;26167:56;26217:5;26167:56;:::i;:::-;26246:7;26277:1;26262:284;26287:6;26284:1;26281:13;26262:284;;;26363:6;26357:13;26390:63;26449:3;26434:13;26390:63;:::i;:::-;26383:70;;26476:60;26529:6;26476:60;:::i;:::-;26466:70;;26322:224;26309:1;26306;26302:9;26297:14;;26262:284;;;26266:14;26562:3;26555:10;;25963:608;;;25839:732;;;;:::o;26577:831::-;26840:4;26878:3;26867:9;26863:19;26855:27;;26892:71;26960:1;26949:9;26945:17;26936:6;26892:71;:::i;:::-;26973:80;27049:2;27038:9;27034:18;27025:6;26973:80;:::i;:::-;27100:9;27094:4;27090:20;27085:2;27074:9;27070:18;27063:48;27128:108;27231:4;27222:6;27128:108;:::i;:::-;27120:116;;27246:72;27314:2;27303:9;27299:18;27290:6;27246:72;:::i;:::-;27328:73;27396:3;27385:9;27381:19;27372:6;27328:73;:::i;:::-;26577:831;;;;;;;;:::o;27414:180::-;27462:77;27459:1;27452:88;27559:4;27556:1;27549:15;27583:4;27580:1;27573:15;27600:185;27640:1;27657:20;27675:1;27657:20;:::i;:::-;27652:25;;27691:20;27709:1;27691:20;:::i;:::-;27686:25;;27730:1;27720:35;;27735:18;;:::i;:::-;27720:35;27777:1;27774;27770:9;27765:14;;27600:185;;;;:::o;27791:220::-;27931:34;27927:1;27919:6;27915:14;27908:58;28000:3;27995:2;27987:6;27983:15;27976:28;27791:220;:::o;28017:366::-;28159:3;28180:67;28244:2;28239:3;28180:67;:::i;:::-;28173:74;;28256:93;28345:3;28256:93;:::i;:::-;28374:2;28369:3;28365:12;28358:19;;28017:366;;;:::o;28389:419::-;28555:4;28593:2;28582:9;28578:18;28570:26;;28642:9;28636:4;28632:20;28628:1;28617:9;28613:17;28606:47;28670:131;28796:4;28670:131;:::i;:::-;28662:139;;28389:419;;;:::o;28814:177::-;28954:29;28950:1;28942:6;28938:14;28931:53;28814:177;:::o;28997:366::-;29139:3;29160:67;29224:2;29219:3;29160:67;:::i;:::-;29153:74;;29236:93;29325:3;29236:93;:::i;:::-;29354:2;29349:3;29345:12;29338:19;;28997:366;;;:::o;29369:419::-;29535:4;29573:2;29562:9;29558:18;29550:26;;29622:9;29616:4;29612:20;29608:1;29597:9;29593:17;29586:47;29650:131;29776:4;29650:131;:::i;:::-;29642:139;;29369:419;;;:::o

Swarm Source

ipfs://a334cb87c360551c48ac2067e33f9c8fc74c321f1e30bdb4d81b88b45b096ac3

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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