ETH Price: $3,112.75 (+1.72%)
Gas: 3 Gwei

Contract

0x13822C549b4f1E1E4A5C2566d8605E33c4faEaB3
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Value
Approve167088342023-02-26 0:25:23447 days ago1677371123IN
0x13822C54...3c4faEaB3
0 ETH0.0012748327
Approve167088272023-02-26 0:23:59447 days ago1677371039IN
0x13822C54...3c4faEaB3
0 ETH0.0010250221.70923105
Open Trading167088232023-02-26 0:23:11447 days ago1677370991IN
0x13822C54...3c4faEaB3
0 ETH0.0568262620.03534472
Transfer167088202023-02-26 0:22:35447 days ago1677370955IN
0x13822C54...3c4faEaB3
0 ETH0.002598219.72520399
Open Trading167088052023-02-26 0:19:35447 days ago1677370775IN
0x13822C54...3c4faEaB3
0 ETH0.0498722119.12587102
Transfer167087692023-02-26 0:12:11447 days ago1677370331IN
0x13822C54...3c4faEaB3
1.5 ETH0.0004409320.94193303
Transfer167087682023-02-26 0:11:59447 days ago1677370319IN
0x13822C54...3c4faEaB3
0 ETH0.0019431519.43152209
0x60806040167087612023-02-26 0:10:23447 days ago1677370223IN
 Create: NPC
0 ETH0.0587298720.28724031

Latest 5 internal transactions

Advanced mode:
Parent Transaction Hash Block From To Value
167088362023-02-26 0:25:47447 days ago1677371147
0x13822C54...3c4faEaB3
0.02417275 ETH
167088362023-02-26 0:25:47447 days ago1677371147
0x13822C54...3c4faEaB3
0.02417275 ETH
167088362023-02-26 0:25:47447 days ago1677371147
0x13822C54...3c4faEaB3
0.04834551 ETH
167088232023-02-26 0:23:11447 days ago1677370991
0x13822C54...3c4faEaB3
1.5 ETH
167088052023-02-26 0:19:35447 days ago1677370775
0x13822C54...3c4faEaB3
1.5 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
NPC

Compiler Version
v0.8.6+commit.11564f7e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-02-26
*/

// https://twitter.com/elonmusk/status/1629634142622334978

// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.6;

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

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

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

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

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

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

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

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

}

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

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

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

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

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

}  

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

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

contract NPC is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping (address => uint) private cooldown;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 1e10 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    
    uint256 private _feeAddr1;
    uint256 private _feeAddr2;
    address payable private _feeAddrWallet1;
    address payable private _feeAddrWallet2;
    
    string private constant _name = "Not Playable Character";
    string private constant _symbol = "NPC";
    uint8 private constant _decimals = 9;
    
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private cooldownEnabled = false;
    uint256 private _maxTxAmount = _tTotal;
    event MaxTxAmountUpdated(uint _maxTxAmount);
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () {
        _feeAddrWallet1 = payable(0x75b71ba36D90cDA0906B5634c0D3A6E65b062003);
        _feeAddrWallet2 = payable(0x75b71ba36D90cDA0906B5634c0D3A6E65b062003);
        _rOwned[_msgSender()] = _rTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        _isExcludedFromFee[_feeAddrWallet2] = true;
        emit Transfer(address(0x0000000000000000000000000000000000000000), _msgSender(), _tTotal);
    }

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return tokenFromReflection(_rOwned[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 setCooldownEnabled(bool onoff) external onlyOwner() {
        cooldownEnabled = onoff;
    }

    function tokenFromReflection(uint256 rAmount) private view returns(uint256) {
        require(rAmount <= _rTotal, "Amount must be less than total reflections");
        uint256 currentRate =  _getRate();
        return rAmount.div(currentRate);
    }

    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");
        _feeAddr1 = 2;
        _feeAddr2 = 3;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && cooldownEnabled) {
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            
            if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
                _feeAddr1 = 2;
                _feeAddr2 = 3;
            }
            uint256 contractTokenBalance = balanceOf(address(this));
            if (!inSwap && from != uniswapV2Pair && swapEnabled) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if(contractETHBalance > 0) {
                    sendETHToFee(address(this).balance);
                }
            }
        }
		
        _tokenTransfer(from,to,amount);
    }

    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 sendETHToFee(uint256 amount) private {
        _feeAddrWallet1.transfer(amount.div(2));
        _feeAddrWallet2.transfer(amount.div(2));
    }
    
    function openTrading() external onlyOwner() {
        require(!tradingOpen,"trading is already open");
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Router = _uniswapV2Router;
        _approve(address(this), address(uniswapV2Router), _tTotal);
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH());
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf(address(this)),0,0,owner(),block.timestamp);
        swapEnabled = true;
        cooldownEnabled = true;
        _maxTxAmount = 2e8 * 10**9;
        tradingOpen = true;
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
    }
    
    function removeStrictTxLimit() public onlyOwner {
        _maxTxAmount = 1e10 * 10**9;
    }
        
    function _tokenTransfer(address sender, address recipient, uint256 amount) private {
        _transferStandard(sender, recipient, amount);
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee, uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount); 
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate =  _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}
    
    function manualswap() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
    
    function manualsend() external {
        require(_msgSender() == _feeAddrWallet1);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
    

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(tAmount, _feeAddr1, _feeAddr2);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(uint256 tAmount, uint256 taxFee, uint256 TeamFee) private pure returns (uint256, uint256, uint256) {
        uint256 tFee = tAmount.mul(taxFee).div(100);
        uint256 tTeam = tAmount.mul(TeamFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 tTeam, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

	function _getRate() private view returns(uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns(uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;      
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"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":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeStrictTxLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"onoff","type":"bool"}],"name":"setCooldownEnabled","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"},{"stateMutability":"payable","type":"receive"}]

6080604052678ac7230489e800006000196200001c919062000524565b6000196200002b9190620004df565b6008556000600f60156101000a81548160ff0219169083151502179055506000600f60166101000a81548160ff0219169083151502179055506000600f60176101000a81548160ff021916908315150217905550678ac7230489e800006010553480156200009857600080fd5b506000620000ab6200048060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3507375b71ba36d90cda0906b5634c0d3a6e65b062003600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507375b71ba36d90cda0906b5634c0d3a6e65b062003600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600854600260006200020a6200048060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600560006200025e6200048860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200040b6200048060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef678ac7230489e80000604051620004729190620004c2565b60405180910390a3620005ba565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620004bc816200051a565b82525050565b6000602082019050620004d96000830184620004b1565b92915050565b6000620004ec826200051a565b9150620004f9836200051a565b9250828210156200050f576200050e6200055c565b5b828203905092915050565b6000819050919050565b600062000531826200051a565b91506200053e836200051a565b9250826200055157620005506200058b565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b612fd980620005ca6000396000f3fe6080604052600436106100f75760003560e01c8063715018a61161008a578063c3c8cd8011610059578063c3c8cd8014610325578063c9567bf91461033c578063dd62ed3e14610353578063ff87260214610390576100fe565b8063715018a61461027b5780638da5cb5b1461029257806395d89b41146102bd578063a9059cbb146102e8576100fe565b8063313ce567116100c6578063313ce567146101d35780635932ead1146101fe5780636fc3eaec1461022757806370a082311461023e576100fe565b806306fdde0314610103578063095ea7b31461012e57806318160ddd1461016b57806323b872dd14610196576100fe565b366100fe57005b600080fd5b34801561010f57600080fd5b506101186103a7565b60405161012591906127ca565b60405180910390f35b34801561013a57600080fd5b506101556004803603810190610150919061238d565b6103e4565b60405161016291906127af565b60405180910390f35b34801561017757600080fd5b50610180610402565b60405161018d919061292c565b60405180910390f35b3480156101a257600080fd5b506101bd60048036038101906101b8919061233a565b610412565b6040516101ca91906127af565b60405180910390f35b3480156101df57600080fd5b506101e86104eb565b6040516101f591906129a1565b60405180910390f35b34801561020a57600080fd5b50610225600480360381019061022091906123cd565b6104f4565b005b34801561023357600080fd5b5061023c6105a6565b005b34801561024a57600080fd5b50610265600480360381019061026091906122a0565b610618565b604051610272919061292c565b60405180910390f35b34801561028757600080fd5b50610290610669565b005b34801561029e57600080fd5b506102a76107bc565b6040516102b491906126e1565b60405180910390f35b3480156102c957600080fd5b506102d26107e5565b6040516102df91906127ca565b60405180910390f35b3480156102f457600080fd5b5061030f600480360381019061030a919061238d565b610822565b60405161031c91906127af565b60405180910390f35b34801561033157600080fd5b5061033a610840565b005b34801561034857600080fd5b506103516108ba565b005b34801561035f57600080fd5b5061037a600480360381019061037591906122fa565b610e15565b604051610387919061292c565b60405180910390f35b34801561039c57600080fd5b506103a5610e9c565b005b60606040518060400160405280601681526020017f4e6f7420506c617961626c652043686172616374657200000000000000000000815250905090565b60006103f86103f1610f42565b8484610f4a565b6001905092915050565b6000678ac7230489e80000905090565b600061041f848484611115565b6104e08461042b610f42565b6104db85604051806060016040528060288152602001612f7c60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610491610f42565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461171a9092919063ffffffff16565b610f4a565b600190509392505050565b60006009905090565b6104fc610f42565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610589576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105809061288c565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105e7610f42565b73ffffffffffffffffffffffffffffffffffffffff161461060757600080fd5b60004790506106158161177e565b50565b6000610662600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611879565b9050919050565b610671610f42565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f59061288c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4e50430000000000000000000000000000000000000000000000000000000000815250905090565b600061083661082f610f42565b8484611115565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610881610f42565b73ffffffffffffffffffffffffffffffffffffffff16146108a157600080fd5b60006108ac30610618565b90506108b7816118e7565b50565b6108c2610f42565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461094f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109469061288c565b60405180910390fd5b600f60149054906101000a900460ff161561099f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109969061290c565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a2e30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16678ac7230489e80000610f4a565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610a7457600080fd5b505afa158015610a88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aac91906122cd565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610b0e57600080fd5b505afa158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4691906122cd565b6040518363ffffffff1660e01b8152600401610b639291906126fc565b602060405180830381600087803b158015610b7d57600080fd5b505af1158015610b91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb591906122cd565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610c3e30610618565b600080610c496107bc565b426040518863ffffffff1660e01b8152600401610c6b9695949392919061274e565b6060604051808303818588803b158015610c8457600080fd5b505af1158015610c98573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610cbd9190612427565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff0219169083151502179055506702c68af0bb1400006010819055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610dbf929190612725565b602060405180830381600087803b158015610dd957600080fd5b505af1158015610ded573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1191906123fa565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ea4610f42565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f289061288c565b60405180910390fd5b678ac7230489e80000601081905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610fba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb1906128ec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561102a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110219061282c565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611108919061292c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117c906128cc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ec906127ec565b60405180910390fd5b60008111611238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122f906128ac565b60405180910390fd5b6002600a819055506003600b819055506112506107bc565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112be575061128e6107bc565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561170a57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156113675750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61137057600080fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561141b5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114715750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156114895750600f60179054906101000a900460ff165b156115395760105481111561149d57600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106114e857600080fd5b601e426114f59190612a11565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156115e45750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561163a5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611650576002600a819055506003600b819055505b600061165b30610618565b9050600f60159054906101000a900460ff161580156116c85750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156116e05750600f60169054906101000a900460ff165b15611708576116ee816118e7565b60004790506000811115611706576117054761177e565b5b505b505b611715838383611b6f565b505050565b6000838311158290611762576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175991906127ca565b60405180910390fd5b50600083856117719190612af2565b9050809150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6117ce600284611b7f90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156117f9573d6000803e3d6000fd5b50600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61184a600284611b7f90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611875573d6000803e3d6000fd5b5050565b60006008548211156118c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b79061280c565b60405180910390fd5b60006118ca611bc9565b90506118df8184611b7f90919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561191f5761191e612c4d565b5b60405190808252806020026020018201604052801561194d5781602001602082028036833780820191505090505b509050308160008151811061196557611964612c1e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611a0757600080fd5b505afa158015611a1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3f91906122cd565b81600181518110611a5357611a52612c1e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611aba30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f4a565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611b1e959493929190612947565b600060405180830381600087803b158015611b3857600080fd5b505af1158015611b4c573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b611b7a838383611bf4565b505050565b6000611bc183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611dbf565b905092915050565b6000806000611bd6611e22565b91509150611bed8183611b7f90919063ffffffff16565b9250505090565b600080600080600080611c0687611e81565b955095509550955095509550611c6486600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ee990919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cf985600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f3390919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d4581611f91565b611d4f848361204e565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611dac919061292c565b60405180910390a3505050505050505050565b60008083118290611e06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfd91906127ca565b60405180910390fd5b5060008385611e159190612a67565b9050809150509392505050565b600080600060085490506000678ac7230489e800009050611e56678ac7230489e80000600854611b7f90919063ffffffff16565b821015611e7457600854678ac7230489e80000935093505050611e7d565b81819350935050505b9091565b6000806000806000806000806000611e9e8a600a54600b54612088565b9250925092506000611eae611bc9565b90506000806000611ec18e87878761211e565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611f2b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061171a565b905092915050565b6000808284611f429190612a11565b905083811015611f87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7e9061284c565b60405180910390fd5b8091505092915050565b6000611f9b611bc9565b90506000611fb282846121a790919063ffffffff16565b905061200681600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f3390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61206382600854611ee990919063ffffffff16565b60088190555061207e81600954611f3390919063ffffffff16565b6009819055505050565b6000806000806120b460646120a6888a6121a790919063ffffffff16565b611b7f90919063ffffffff16565b905060006120de60646120d0888b6121a790919063ffffffff16565b611b7f90919063ffffffff16565b90506000612107826120f9858c611ee990919063ffffffff16565b611ee990919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061213785896121a790919063ffffffff16565b9050600061214e86896121a790919063ffffffff16565b9050600061216587896121a790919063ffffffff16565b9050600061218e826121808587611ee990919063ffffffff16565b611ee990919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156121ba576000905061221c565b600082846121c89190612a98565b90508284826121d79190612a67565b14612217576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220e9061286c565b60405180910390fd5b809150505b92915050565b60008135905061223181612f36565b92915050565b60008151905061224681612f36565b92915050565b60008135905061225b81612f4d565b92915050565b60008151905061227081612f4d565b92915050565b60008135905061228581612f64565b92915050565b60008151905061229a81612f64565b92915050565b6000602082840312156122b6576122b5612c7c565b5b60006122c484828501612222565b91505092915050565b6000602082840312156122e3576122e2612c7c565b5b60006122f184828501612237565b91505092915050565b6000806040838503121561231157612310612c7c565b5b600061231f85828601612222565b925050602061233085828601612222565b9150509250929050565b60008060006060848603121561235357612352612c7c565b5b600061236186828701612222565b935050602061237286828701612222565b925050604061238386828701612276565b9150509250925092565b600080604083850312156123a4576123a3612c7c565b5b60006123b285828601612222565b92505060206123c385828601612276565b9150509250929050565b6000602082840312156123e3576123e2612c7c565b5b60006123f18482850161224c565b91505092915050565b6000602082840312156124105761240f612c7c565b5b600061241e84828501612261565b91505092915050565b6000806000606084860312156124405761243f612c7c565b5b600061244e8682870161228b565b935050602061245f8682870161228b565b92505060406124708682870161228b565b9150509250925092565b60006124868383612492565b60208301905092915050565b61249b81612b26565b82525050565b6124aa81612b26565b82525050565b60006124bb826129cc565b6124c581856129ef565b93506124d0836129bc565b8060005b838110156125015781516124e8888261247a565b97506124f3836129e2565b9250506001810190506124d4565b5085935050505092915050565b61251781612b38565b82525050565b61252681612b7b565b82525050565b6000612537826129d7565b6125418185612a00565b9350612551818560208601612b8d565b61255a81612c81565b840191505092915050565b6000612572602383612a00565b915061257d82612c92565b604082019050919050565b6000612595602a83612a00565b91506125a082612ce1565b604082019050919050565b60006125b8602283612a00565b91506125c382612d30565b604082019050919050565b60006125db601b83612a00565b91506125e682612d7f565b602082019050919050565b60006125fe602183612a00565b915061260982612da8565b604082019050919050565b6000612621602083612a00565b915061262c82612df7565b602082019050919050565b6000612644602983612a00565b915061264f82612e20565b604082019050919050565b6000612667602583612a00565b915061267282612e6f565b604082019050919050565b600061268a602483612a00565b915061269582612ebe565b604082019050919050565b60006126ad601783612a00565b91506126b882612f0d565b602082019050919050565b6126cc81612b64565b82525050565b6126db81612b6e565b82525050565b60006020820190506126f660008301846124a1565b92915050565b600060408201905061271160008301856124a1565b61271e60208301846124a1565b9392505050565b600060408201905061273a60008301856124a1565b61274760208301846126c3565b9392505050565b600060c08201905061276360008301896124a1565b61277060208301886126c3565b61277d604083018761251d565b61278a606083018661251d565b61279760808301856124a1565b6127a460a08301846126c3565b979650505050505050565b60006020820190506127c4600083018461250e565b92915050565b600060208201905081810360008301526127e4818461252c565b905092915050565b6000602082019050818103600083015261280581612565565b9050919050565b6000602082019050818103600083015261282581612588565b9050919050565b60006020820190508181036000830152612845816125ab565b9050919050565b60006020820190508181036000830152612865816125ce565b9050919050565b60006020820190508181036000830152612885816125f1565b9050919050565b600060208201905081810360008301526128a581612614565b9050919050565b600060208201905081810360008301526128c581612637565b9050919050565b600060208201905081810360008301526128e58161265a565b9050919050565b600060208201905081810360008301526129058161267d565b9050919050565b60006020820190508181036000830152612925816126a0565b9050919050565b600060208201905061294160008301846126c3565b92915050565b600060a08201905061295c60008301886126c3565b612969602083018761251d565b818103604083015261297b81866124b0565b905061298a60608301856124a1565b61299760808301846126c3565b9695505050505050565b60006020820190506129b660008301846126d2565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612a1c82612b64565b9150612a2783612b64565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a5c57612a5b612bc0565b5b828201905092915050565b6000612a7282612b64565b9150612a7d83612b64565b925082612a8d57612a8c612bef565b5b828204905092915050565b6000612aa382612b64565b9150612aae83612b64565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ae757612ae6612bc0565b5b828202905092915050565b6000612afd82612b64565b9150612b0883612b64565b925082821015612b1b57612b1a612bc0565b5b828203905092915050565b6000612b3182612b44565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612b8682612b64565b9050919050565b60005b83811015612bab578082015181840152602081019050612b90565b83811115612bba576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b612f3f81612b26565b8114612f4a57600080fd5b50565b612f5681612b38565b8114612f6157600080fd5b50565b612f6d81612b64565b8114612f7857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b56f70450b6073022822af3e9c5022d7cbee3136ee77c184eaba2364688c89ff64736f6c63430008060033

Deployed Bytecode

0x6080604052600436106100f75760003560e01c8063715018a61161008a578063c3c8cd8011610059578063c3c8cd8014610325578063c9567bf91461033c578063dd62ed3e14610353578063ff87260214610390576100fe565b8063715018a61461027b5780638da5cb5b1461029257806395d89b41146102bd578063a9059cbb146102e8576100fe565b8063313ce567116100c6578063313ce567146101d35780635932ead1146101fe5780636fc3eaec1461022757806370a082311461023e576100fe565b806306fdde0314610103578063095ea7b31461012e57806318160ddd1461016b57806323b872dd14610196576100fe565b366100fe57005b600080fd5b34801561010f57600080fd5b506101186103a7565b60405161012591906127ca565b60405180910390f35b34801561013a57600080fd5b506101556004803603810190610150919061238d565b6103e4565b60405161016291906127af565b60405180910390f35b34801561017757600080fd5b50610180610402565b60405161018d919061292c565b60405180910390f35b3480156101a257600080fd5b506101bd60048036038101906101b8919061233a565b610412565b6040516101ca91906127af565b60405180910390f35b3480156101df57600080fd5b506101e86104eb565b6040516101f591906129a1565b60405180910390f35b34801561020a57600080fd5b50610225600480360381019061022091906123cd565b6104f4565b005b34801561023357600080fd5b5061023c6105a6565b005b34801561024a57600080fd5b50610265600480360381019061026091906122a0565b610618565b604051610272919061292c565b60405180910390f35b34801561028757600080fd5b50610290610669565b005b34801561029e57600080fd5b506102a76107bc565b6040516102b491906126e1565b60405180910390f35b3480156102c957600080fd5b506102d26107e5565b6040516102df91906127ca565b60405180910390f35b3480156102f457600080fd5b5061030f600480360381019061030a919061238d565b610822565b60405161031c91906127af565b60405180910390f35b34801561033157600080fd5b5061033a610840565b005b34801561034857600080fd5b506103516108ba565b005b34801561035f57600080fd5b5061037a600480360381019061037591906122fa565b610e15565b604051610387919061292c565b60405180910390f35b34801561039c57600080fd5b506103a5610e9c565b005b60606040518060400160405280601681526020017f4e6f7420506c617961626c652043686172616374657200000000000000000000815250905090565b60006103f86103f1610f42565b8484610f4a565b6001905092915050565b6000678ac7230489e80000905090565b600061041f848484611115565b6104e08461042b610f42565b6104db85604051806060016040528060288152602001612f7c60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610491610f42565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461171a9092919063ffffffff16565b610f4a565b600190509392505050565b60006009905090565b6104fc610f42565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610589576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105809061288c565b60405180910390fd5b80600f60176101000a81548160ff02191690831515021790555050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166105e7610f42565b73ffffffffffffffffffffffffffffffffffffffff161461060757600080fd5b60004790506106158161177e565b50565b6000610662600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611879565b9050919050565b610671610f42565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f59061288c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f4e50430000000000000000000000000000000000000000000000000000000000815250905090565b600061083661082f610f42565b8484611115565b6001905092915050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610881610f42565b73ffffffffffffffffffffffffffffffffffffffff16146108a157600080fd5b60006108ac30610618565b90506108b7816118e7565b50565b6108c2610f42565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461094f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109469061288c565b60405180910390fd5b600f60149054906101000a900460ff161561099f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109969061290c565b60405180910390fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610a2e30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16678ac7230489e80000610f4a565b8073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015610a7457600080fd5b505afa158015610a88573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aac91906122cd565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015610b0e57600080fd5b505afa158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b4691906122cd565b6040518363ffffffff1660e01b8152600401610b639291906126fc565b602060405180830381600087803b158015610b7d57600080fd5b505af1158015610b91573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb591906122cd565b600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730610c3e30610618565b600080610c496107bc565b426040518863ffffffff1660e01b8152600401610c6b9695949392919061274e565b6060604051808303818588803b158015610c8457600080fd5b505af1158015610c98573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610cbd9190612427565b5050506001600f60166101000a81548160ff0219169083151502179055506001600f60176101000a81548160ff0219169083151502179055506702c68af0bb1400006010819055506001600f60146101000a81548160ff021916908315150217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610dbf929190612725565b602060405180830381600087803b158015610dd957600080fd5b505af1158015610ded573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1191906123fa565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ea4610f42565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f31576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f289061288c565b60405180910390fd5b678ac7230489e80000601081905550565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610fba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb1906128ec565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561102a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110219061282c565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611108919061292c565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611185576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161117c906128cc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156111f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ec906127ec565b60405180910390fd5b60008111611238576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122f906128ac565b60405180910390fd5b6002600a819055506003600b819055506112506107bc565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156112be575061128e6107bc565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561170a57600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156113675750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b61137057600080fd5b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561141b5750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114715750600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156114895750600f60179054906101000a900460ff165b156115395760105481111561149d57600080fd5b42600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054106114e857600080fd5b601e426114f59190612a11565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480156115e45750600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561163a5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611650576002600a819055506003600b819055505b600061165b30610618565b9050600f60159054906101000a900460ff161580156116c85750600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156116e05750600f60169054906101000a900460ff165b15611708576116ee816118e7565b60004790506000811115611706576117054761177e565b5b505b505b611715838383611b6f565b505050565b6000838311158290611762576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175991906127ca565b60405180910390fd5b50600083856117719190612af2565b9050809150509392505050565b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6117ce600284611b7f90919063ffffffff16565b9081150290604051600060405180830381858888f193505050501580156117f9573d6000803e3d6000fd5b50600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61184a600284611b7f90919063ffffffff16565b9081150290604051600060405180830381858888f19350505050158015611875573d6000803e3d6000fd5b5050565b60006008548211156118c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b79061280c565b60405180910390fd5b60006118ca611bc9565b90506118df8184611b7f90919063ffffffff16565b915050919050565b6001600f60156101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561191f5761191e612c4d565b5b60405190808252806020026020018201604052801561194d5781602001602082028036833780820191505090505b509050308160008151811061196557611964612c1e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611a0757600080fd5b505afa158015611a1b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a3f91906122cd565b81600181518110611a5357611a52612c1e565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611aba30600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610f4a565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611b1e959493929190612947565b600060405180830381600087803b158015611b3857600080fd5b505af1158015611b4c573d6000803e3d6000fd5b50505050506000600f60156101000a81548160ff02191690831515021790555050565b611b7a838383611bf4565b505050565b6000611bc183836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611dbf565b905092915050565b6000806000611bd6611e22565b91509150611bed8183611b7f90919063ffffffff16565b9250505090565b600080600080600080611c0687611e81565b955095509550955095509550611c6486600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ee990919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611cf985600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f3390919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611d4581611f91565b611d4f848361204e565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051611dac919061292c565b60405180910390a3505050505050505050565b60008083118290611e06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dfd91906127ca565b60405180910390fd5b5060008385611e159190612a67565b9050809150509392505050565b600080600060085490506000678ac7230489e800009050611e56678ac7230489e80000600854611b7f90919063ffffffff16565b821015611e7457600854678ac7230489e80000935093505050611e7d565b81819350935050505b9091565b6000806000806000806000806000611e9e8a600a54600b54612088565b9250925092506000611eae611bc9565b90506000806000611ec18e87878761211e565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000611f2b83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061171a565b905092915050565b6000808284611f429190612a11565b905083811015611f87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f7e9061284c565b60405180910390fd5b8091505092915050565b6000611f9b611bc9565b90506000611fb282846121a790919063ffffffff16565b905061200681600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611f3390919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b61206382600854611ee990919063ffffffff16565b60088190555061207e81600954611f3390919063ffffffff16565b6009819055505050565b6000806000806120b460646120a6888a6121a790919063ffffffff16565b611b7f90919063ffffffff16565b905060006120de60646120d0888b6121a790919063ffffffff16565b611b7f90919063ffffffff16565b90506000612107826120f9858c611ee990919063ffffffff16565b611ee990919063ffffffff16565b905080838395509550955050505093509350939050565b60008060008061213785896121a790919063ffffffff16565b9050600061214e86896121a790919063ffffffff16565b9050600061216587896121a790919063ffffffff16565b9050600061218e826121808587611ee990919063ffffffff16565b611ee990919063ffffffff16565b9050838184965096509650505050509450945094915050565b6000808314156121ba576000905061221c565b600082846121c89190612a98565b90508284826121d79190612a67565b14612217576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220e9061286c565b60405180910390fd5b809150505b92915050565b60008135905061223181612f36565b92915050565b60008151905061224681612f36565b92915050565b60008135905061225b81612f4d565b92915050565b60008151905061227081612f4d565b92915050565b60008135905061228581612f64565b92915050565b60008151905061229a81612f64565b92915050565b6000602082840312156122b6576122b5612c7c565b5b60006122c484828501612222565b91505092915050565b6000602082840312156122e3576122e2612c7c565b5b60006122f184828501612237565b91505092915050565b6000806040838503121561231157612310612c7c565b5b600061231f85828601612222565b925050602061233085828601612222565b9150509250929050565b60008060006060848603121561235357612352612c7c565b5b600061236186828701612222565b935050602061237286828701612222565b925050604061238386828701612276565b9150509250925092565b600080604083850312156123a4576123a3612c7c565b5b60006123b285828601612222565b92505060206123c385828601612276565b9150509250929050565b6000602082840312156123e3576123e2612c7c565b5b60006123f18482850161224c565b91505092915050565b6000602082840312156124105761240f612c7c565b5b600061241e84828501612261565b91505092915050565b6000806000606084860312156124405761243f612c7c565b5b600061244e8682870161228b565b935050602061245f8682870161228b565b92505060406124708682870161228b565b9150509250925092565b60006124868383612492565b60208301905092915050565b61249b81612b26565b82525050565b6124aa81612b26565b82525050565b60006124bb826129cc565b6124c581856129ef565b93506124d0836129bc565b8060005b838110156125015781516124e8888261247a565b97506124f3836129e2565b9250506001810190506124d4565b5085935050505092915050565b61251781612b38565b82525050565b61252681612b7b565b82525050565b6000612537826129d7565b6125418185612a00565b9350612551818560208601612b8d565b61255a81612c81565b840191505092915050565b6000612572602383612a00565b915061257d82612c92565b604082019050919050565b6000612595602a83612a00565b91506125a082612ce1565b604082019050919050565b60006125b8602283612a00565b91506125c382612d30565b604082019050919050565b60006125db601b83612a00565b91506125e682612d7f565b602082019050919050565b60006125fe602183612a00565b915061260982612da8565b604082019050919050565b6000612621602083612a00565b915061262c82612df7565b602082019050919050565b6000612644602983612a00565b915061264f82612e20565b604082019050919050565b6000612667602583612a00565b915061267282612e6f565b604082019050919050565b600061268a602483612a00565b915061269582612ebe565b604082019050919050565b60006126ad601783612a00565b91506126b882612f0d565b602082019050919050565b6126cc81612b64565b82525050565b6126db81612b6e565b82525050565b60006020820190506126f660008301846124a1565b92915050565b600060408201905061271160008301856124a1565b61271e60208301846124a1565b9392505050565b600060408201905061273a60008301856124a1565b61274760208301846126c3565b9392505050565b600060c08201905061276360008301896124a1565b61277060208301886126c3565b61277d604083018761251d565b61278a606083018661251d565b61279760808301856124a1565b6127a460a08301846126c3565b979650505050505050565b60006020820190506127c4600083018461250e565b92915050565b600060208201905081810360008301526127e4818461252c565b905092915050565b6000602082019050818103600083015261280581612565565b9050919050565b6000602082019050818103600083015261282581612588565b9050919050565b60006020820190508181036000830152612845816125ab565b9050919050565b60006020820190508181036000830152612865816125ce565b9050919050565b60006020820190508181036000830152612885816125f1565b9050919050565b600060208201905081810360008301526128a581612614565b9050919050565b600060208201905081810360008301526128c581612637565b9050919050565b600060208201905081810360008301526128e58161265a565b9050919050565b600060208201905081810360008301526129058161267d565b9050919050565b60006020820190508181036000830152612925816126a0565b9050919050565b600060208201905061294160008301846126c3565b92915050565b600060a08201905061295c60008301886126c3565b612969602083018761251d565b818103604083015261297b81866124b0565b905061298a60608301856124a1565b61299760808301846126c3565b9695505050505050565b60006020820190506129b660008301846126d2565b92915050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612a1c82612b64565b9150612a2783612b64565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612a5c57612a5b612bc0565b5b828201905092915050565b6000612a7282612b64565b9150612a7d83612b64565b925082612a8d57612a8c612bef565b5b828204905092915050565b6000612aa382612b64565b9150612aae83612b64565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ae757612ae6612bc0565b5b828202905092915050565b6000612afd82612b64565b9150612b0883612b64565b925082821015612b1b57612b1a612bc0565b5b828203905092915050565b6000612b3182612b44565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000612b8682612b64565b9050919050565b60005b83811015612bab578082015181840152602081019050612b90565b83811115612bba576000848401525b50505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f74726164696e6720697320616c7265616479206f70656e000000000000000000600082015250565b612f3f81612b26565b8114612f4a57600080fd5b50565b612f5681612b38565b8114612f6157600080fd5b50565b612f6d81612b64565b8114612f7857600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b56f70450b6073022822af3e9c5022d7cbee3136ee77c184eaba2364688c89ff64736f6c63430008060033

Deployed Bytecode Sourcemap

3581:10179:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5469:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6321:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5746:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6490:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5655:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6811:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11864:194;;;;;;;;;;;;;:::i;:::-;;5849:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2660:148;;;;;;;;;;;;;:::i;:::-;;2446:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5560:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5995:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11657:195;;;;;;;;;;;;;:::i;:::-;;9661:808;;;;;;;;;;;;;:::i;:::-;;6170:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10481:94;;;;;;;;;;;;;:::i;:::-;;5469:83;5506:13;5539:5;;;;;;;;;;;;;;;;;5532:12;;5469:83;:::o;6321:161::-;6396:4;6413:39;6422:12;:10;:12::i;:::-;6436:7;6445:6;6413:8;:39::i;:::-;6470:4;6463:11;;6321:161;;;;:::o;5746:95::-;5799:7;4077:12;5819:14;;5746:95;:::o;6490:313::-;6588:4;6605:36;6615:6;6623:9;6634:6;6605:9;:36::i;:::-;6652:121;6661:6;6669:12;:10;:12::i;:::-;6683:89;6721:6;6683:89;;;;;;;;;;;;;;;;;:11;:19;6695:6;6683:19;;;;;;;;;;;;;;;:33;6703:12;:10;:12::i;:::-;6683:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6652:8;:121::i;:::-;6791:4;6784:11;;6490:313;;;;;:::o;5655:83::-;5696:5;4497:1;5714:16;;5655:83;:::o;6811:103::-;2583:12;:10;:12::i;:::-;2573:22;;:6;;;;;;;;;;:22;;;2565:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6901:5:::1;6883:15;;:23;;;;;;;;;;;;;;;;;;6811:103:::0;:::o;11864:194::-;11930:15;;;;;;;;;;;11914:31;;:12;:10;:12::i;:::-;:31;;;11906:40;;;;;;11957:26;11986:21;11957:50;;12018:32;12031:18;12018:12;:32::i;:::-;11895:163;11864:194::o;5849:138::-;5915:7;5942:37;5962:7;:16;5970:7;5962:16;;;;;;;;;;;;;;;;5942:19;:37::i;:::-;5935:44;;5849:138;;;:::o;2660:148::-;2583:12;:10;:12::i;:::-;2573:22;;:6;;;;;;;;;;:22;;;2565:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2767:1:::1;2730:40;;2751:6;::::0;::::1;;;;;;;;2730:40;;;;;;;;;;;;2798:1;2781:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2660:148::o:0;2446:79::-;2484:7;2511:6;;;;;;;;;;;2504:13;;2446:79;:::o;5560:87::-;5599:13;5632:7;;;;;;;;;;;;;;;;;5625:14;;5560:87;:::o;5995:167::-;6073:4;6090:42;6100:12;:10;:12::i;:::-;6114:9;6125:6;6090:9;:42::i;:::-;6150:4;6143:11;;5995:167;;;;:::o;11657:195::-;11723:15;;;;;;;;;;;11707:31;;:12;:10;:12::i;:::-;:31;;;11699:40;;;;;;11750:23;11776:24;11794:4;11776:9;:24::i;:::-;11750:50;;11811:33;11828:15;11811:16;:33::i;:::-;11688:164;11657:195::o;9661:808::-;2583:12;:10;:12::i;:::-;2573:22;;:6;;;;;;;;;;:22;;;2565:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9725:11:::1;;;;;;;;;;;9724:12;9716:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;9774:35;9831:42;9774:100;;9903:16;9885:15;;:34;;;;;;;;;;;;;;;;;;9930:58;9947:4;9962:15;;;;;;;;;;;4077:12;9930:8;:58::i;:::-;10033:16;:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10015:56;;;10080:4;10087:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10015:96;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9999:13;;:112;;;;;;;;;;;;;;;;;;10122:15;;;;;;;;;;;:31;;;10161:21;10192:4;10198:24;10216:4;10198:9;:24::i;:::-;10223:1;10225::::0;10227:7:::1;:5;:7::i;:::-;10235:15;10122:129;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;10276:4;10262:11;;:18;;;;;;;;;;;;;;;;;;10309:4;10291:15;;:22;;;;;;;;;;;;;;;;;;10339:11;10324:12;:26;;;;10375:4;10361:11;;:18;;;;;;;;;;;;;;;;;;10397:13;;;;;;;;;;;10390:29;;;10428:15;;;;;;;;;;;10446:14;10390:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;9705:764;9661:808::o:0;6170:143::-;6251:7;6278:11;:18;6290:5;6278:18;;;;;;;;;;;;;;;:27;6297:7;6278:27;;;;;;;;;;;;;;;;6271:34;;6170:143;;;;:::o;10481:94::-;2583:12;:10;:12::i;:::-;2573:22;;:6;;;;;;;;;;:22;;;2565:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10555:12:::1;10540;:27;;;;10481:94::o:0;164:98::-;217:7;244:10;237:17;;164:98;:::o;7184:335::-;7294:1;7277:19;;:5;:19;;;;7269:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7375:1;7356:21;;:7;:21;;;;7348:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7457:6;7427:11;:18;7439:5;7427:18;;;;;;;;;;;;;;;:27;7446:7;7427:27;;;;;;;;;;;;;;;:36;;;;7495:7;7479:32;;7488:5;7479:32;;;7504:6;7479:32;;;;;;:::i;:::-;;;;;;;;7184:335;;;:::o;7527:1461::-;7631:1;7615:18;;:4;:18;;;;7607:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7708:1;7694:16;;:2;:16;;;;7686:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7778:1;7769:6;:10;7761:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7848:1;7836:9;:13;;;;7872:1;7860:9;:13;;;;7896:7;:5;:7::i;:::-;7888:15;;:4;:15;;;;:32;;;;;7913:7;:5;:7::i;:::-;7907:13;;:2;:13;;;;7888:32;7884:1052;;;7946:4;:10;7951:4;7946:10;;;;;;;;;;;;;;;;;;;;;;;;;7945:11;:24;;;;;7961:4;:8;7966:2;7961:8;;;;;;;;;;;;;;;;;;;;;;;;;7960:9;7945:24;7937:33;;;;;;7997:13;;;;;;;;;;;7989:21;;:4;:21;;;:55;;;;;8028:15;;;;;;;;;;;8014:30;;:2;:30;;;;7989:55;:83;;;;;8050:18;:22;8069:2;8050:22;;;;;;;;;;;;;;;;;;;;;;;;;8048:24;7989:83;:102;;;;;8076:15;;;;;;;;;;;7989:102;7985:325;;;8159:12;;8149:6;:22;;8141:31;;;;;;8214:15;8199:8;:12;8208:2;8199:12;;;;;;;;;;;;;;;;:30;8191:39;;;;;;8283:10;8264:15;:30;;;;:::i;:::-;8249:8;:12;8258:2;8249:12;;;;;;;;;;;;;;;:45;;;;7985:325;8362:13;;;;;;;;;;;8356:19;;:2;:19;;;:55;;;;;8395:15;;;;;;;;;;;8379:32;;:4;:32;;;;8356:55;:85;;;;;8417:18;:24;8436:4;8417:24;;;;;;;;;;;;;;;;;;;;;;;;;8415:26;8356:85;8352:171;;;8474:1;8462:9;:13;;;;8506:1;8494:9;:13;;;;8352:171;8537:28;8568:24;8586:4;8568:9;:24::i;:::-;8537:55;;8612:6;;;;;;;;;;;8611:7;:32;;;;;8630:13;;;;;;;;;;;8622:21;;:4;:21;;;;8611:32;:47;;;;;8647:11;;;;;;;;;;;8611:47;8607:318;;;8679:38;8696:20;8679:16;:38::i;:::-;8736:26;8765:21;8736:50;;8829:1;8808:18;:22;8805:105;;;8855:35;8868:21;8855:12;:35::i;:::-;8805:105;8660:265;8607:318;7922:1014;7884:1052;8950:30;8965:4;8970:2;8973:6;8950:14;:30::i;:::-;7527:1461;;;:::o;1301:190::-;1387:7;1420:1;1415;:6;;1423:12;1407:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1447:9;1463:1;1459;:5;;;;:::i;:::-;1447:17;;1482:1;1475:8;;;1301:190;;;;;:::o;9495:154::-;9552:15;;;;;;;;;;;:24;;:39;9577:13;9588:1;9577:6;:10;;:13;;;;:::i;:::-;9552:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9602:15;;;;;;;;;;;:24;;:39;9627:13;9638:1;9627:6;:10;;:13;;;;:::i;:::-;9602:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9495:154;:::o;6922:254::-;6989:7;7028;;7017;:18;;7009:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;7093:19;7116:10;:8;:10::i;:::-;7093:33;;7144:24;7156:11;7144:7;:11;;:24;;;;:::i;:::-;7137:31;;;6922:254;;;:::o;8996:483::-;4879:4;4870:6;;:13;;;;;;;;;;;;;;;;;;9074:21:::1;9112:1;9098:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9074:40;;9143:4;9125;9130:1;9125:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9169:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9159:4;9164:1;9159:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9202:62;9219:4;9234:15;;;;;;;;;;;9252:11;9202:8;:62::i;:::-;9275:15;;;;;;;;;;;:66;;;9356:11;9382:1;9398:4;9425;9445:15;9275:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9063:416;4915:5:::0;4906:6;;:14;;;;;;;;;;;;;;;;;;8996:483;:::o;10591:146::-;10685:44;10703:6;10711:9;10722:6;10685:17;:44::i;:::-;10591:146;;;:::o;1753:132::-;1811:7;1838:39;1842:1;1845;1838:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1831:46;;1753:132;;;;:::o;13324:163::-;13365:7;13386:15;13403;13422:19;:17;:19::i;:::-;13385:56;;;;13459:20;13471:7;13459;:11;;:20;;;;:::i;:::-;13452:27;;;;13324:163;:::o;10745:488::-;10844:15;10861:23;10886:12;10900:23;10925:12;10939:13;10956:19;10967:7;10956:10;:19::i;:::-;10843:132;;;;;;;;;;;;11004:28;11024:7;11004;:15;11012:6;11004:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;10986:7;:15;10994:6;10986:15;;;;;;;;;;;;;;;:46;;;;11064:39;11087:15;11064:7;:18;11072:9;11064:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;11043:7;:18;11051:9;11043:18;;;;;;;;;;;;;;;:60;;;;11115:16;11125:5;11115:9;:16::i;:::-;11142:23;11154:4;11160;11142:11;:23::i;:::-;11198:9;11181:44;;11190:6;11181:44;;;11209:15;11181:44;;;;;;:::i;:::-;;;;;;;;10832:401;;;;;;10745:488;;;:::o;1893:189::-;1979:7;2011:1;2007;:5;2014:12;1999:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2038:9;2054:1;2050;:5;;;;:::i;:::-;2038:17;;2073:1;2066:8;;;1893:189;;;;;:::o;13495:262::-;13545:7;13554;13574:15;13592:7;;13574:25;;13610:15;4077:12;13610:25;;13666:20;4077:12;13666:7;;:11;;:20;;;;:::i;:::-;13656:7;:30;13652:61;;;13696:7;;4077:12;13688:25;;;;;;;;13652:61;13732:7;13741;13724:25;;;;;;13495:262;;;:::o;12072:471::-;12131:7;12140;12149;12158;12167;12176;12197:23;12222:12;12236:13;12253:42;12265:7;12274:9;;12285;;12253:11;:42::i;:::-;12196:99;;;;;;12306:19;12329:10;:8;:10::i;:::-;12306:33;;12351:15;12368:23;12393:12;12409:46;12421:7;12430:4;12436:5;12443:11;12409;:46::i;:::-;12350:105;;;;;;12474:7;12483:15;12500:4;12506:15;12523:4;12529:5;12466:69;;;;;;;;;;;;;;;;;;;12072:471;;;;;;;:::o;1157:136::-;1215:7;1242:43;1246:1;1249;1242:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1235:50;;1157:136;;;;:::o;970:179::-;1028:7;1048:9;1064:1;1060;:5;;;;:::i;:::-;1048:17;;1089:1;1084;:6;;1076:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1140:1;1133:8;;;970:179;;;;:::o;11241:212::-;11294:19;11317:10;:8;:10::i;:::-;11294:33;;11338:13;11354:22;11364:11;11354:5;:9;;:22;;;;:::i;:::-;11338:38;;11412:33;11439:5;11412:7;:22;11428:4;11412:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;11387:7;:22;11403:4;11387:22;;;;;;;;;;;;;;;:58;;;;11283:170;;11241:212;:::o;11461:147::-;11539:17;11551:4;11539:7;;:11;;:17;;;;:::i;:::-;11529:7;:27;;;;11580:20;11595:4;11580:10;;:14;;:20;;;;:::i;:::-;11567:10;:33;;;;11461:147;;:::o;12551:351::-;12644:7;12653;12662;12682:12;12697:28;12721:3;12697:19;12709:6;12697:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;12682:43;;12736:13;12752:29;12777:3;12752:20;12764:7;12752;:11;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;12736:45;;12792:23;12818:28;12840:5;12818:17;12830:4;12818:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;12792:54;;12865:15;12882:4;12888:5;12857:37;;;;;;;;;12551:351;;;;;;;:::o;12910:409::-;13020:7;13029;13038;13058:15;13076:24;13088:11;13076:7;:11;;:24;;;;:::i;:::-;13058:42;;13111:12;13126:21;13135:11;13126:4;:8;;:21;;;;:::i;:::-;13111:36;;13158:13;13174:22;13184:11;13174:5;:9;;:22;;;;:::i;:::-;13158:38;;13207:23;13233:28;13255:5;13233:17;13245:4;13233:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;13207:54;;13280:7;13289:15;13306:4;13272:39;;;;;;;;;;12910:409;;;;;;;;:::o;1499:246::-;1557:7;1586:1;1581;:6;1577:47;;;1611:1;1604:8;;;;1577:47;1634:9;1650:1;1646;:5;;;;:::i;:::-;1634:17;;1679:1;1674;1670;:5;;;;:::i;:::-;:10;1662:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1736:1;1729:8;;;1499:246;;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:133::-;344:5;382:6;369:20;360:29;;398:30;422:5;398:30;:::i;:::-;350:84;;;;:::o;440:137::-;494:5;525:6;519:13;510:22;;541:30;565:5;541:30;:::i;:::-;500:77;;;;:::o;583:139::-;629:5;667:6;654:20;645:29;;683:33;710:5;683:33;:::i;:::-;635:87;;;;:::o;728:143::-;785:5;816:6;810:13;801:22;;832:33;859:5;832:33;:::i;:::-;791:80;;;;:::o;877:329::-;936:6;985:2;973:9;964:7;960:23;956:32;953:2;;;991:79;;:::i;:::-;953:2;1111:1;1136:53;1181:7;1172:6;1161:9;1157:22;1136:53;:::i;:::-;1126:63;;1082:117;943:263;;;;:::o;1212:351::-;1282:6;1331:2;1319:9;1310:7;1306:23;1302:32;1299:2;;;1337:79;;:::i;:::-;1299:2;1457:1;1482:64;1538:7;1529:6;1518:9;1514:22;1482:64;:::i;:::-;1472:74;;1428:128;1289:274;;;;:::o;1569:474::-;1637:6;1645;1694:2;1682:9;1673:7;1669:23;1665:32;1662:2;;;1700:79;;:::i;:::-;1662:2;1820:1;1845:53;1890:7;1881:6;1870:9;1866:22;1845:53;:::i;:::-;1835:63;;1791:117;1947:2;1973:53;2018:7;2009:6;1998:9;1994:22;1973:53;:::i;:::-;1963:63;;1918:118;1652:391;;;;;:::o;2049:619::-;2126:6;2134;2142;2191:2;2179:9;2170:7;2166:23;2162:32;2159:2;;;2197:79;;:::i;:::-;2159:2;2317:1;2342:53;2387:7;2378:6;2367:9;2363:22;2342:53;:::i;:::-;2332:63;;2288:117;2444:2;2470:53;2515:7;2506:6;2495:9;2491:22;2470:53;:::i;:::-;2460:63;;2415:118;2572:2;2598:53;2643:7;2634:6;2623:9;2619:22;2598:53;:::i;:::-;2588:63;;2543:118;2149:519;;;;;:::o;2674:474::-;2742:6;2750;2799:2;2787:9;2778:7;2774:23;2770:32;2767:2;;;2805:79;;:::i;:::-;2767:2;2925:1;2950:53;2995:7;2986:6;2975:9;2971:22;2950:53;:::i;:::-;2940:63;;2896:117;3052:2;3078:53;3123:7;3114:6;3103:9;3099:22;3078:53;:::i;:::-;3068:63;;3023:118;2757:391;;;;;:::o;3154:323::-;3210:6;3259:2;3247:9;3238:7;3234:23;3230:32;3227:2;;;3265:79;;:::i;:::-;3227:2;3385:1;3410:50;3452:7;3443:6;3432:9;3428:22;3410:50;:::i;:::-;3400:60;;3356:114;3217:260;;;;:::o;3483:345::-;3550:6;3599:2;3587:9;3578:7;3574:23;3570:32;3567:2;;;3605:79;;:::i;:::-;3567:2;3725:1;3750:61;3803:7;3794:6;3783:9;3779:22;3750:61;:::i;:::-;3740:71;;3696:125;3557:271;;;;:::o;3834:663::-;3922:6;3930;3938;3987:2;3975:9;3966:7;3962:23;3958:32;3955:2;;;3993:79;;:::i;:::-;3955:2;4113:1;4138:64;4194:7;4185:6;4174:9;4170:22;4138:64;:::i;:::-;4128:74;;4084:128;4251:2;4277:64;4333:7;4324:6;4313:9;4309:22;4277:64;:::i;:::-;4267:74;;4222:129;4390:2;4416:64;4472:7;4463:6;4452:9;4448:22;4416:64;:::i;:::-;4406:74;;4361:129;3945:552;;;;;:::o;4503:179::-;4572:10;4593:46;4635:3;4627:6;4593:46;:::i;:::-;4671:4;4666:3;4662:14;4648:28;;4583:99;;;;:::o;4688:108::-;4765:24;4783:5;4765:24;:::i;:::-;4760:3;4753:37;4743:53;;:::o;4802:118::-;4889:24;4907:5;4889:24;:::i;:::-;4884:3;4877:37;4867:53;;:::o;4956:732::-;5075:3;5104:54;5152:5;5104:54;:::i;:::-;5174:86;5253:6;5248:3;5174:86;:::i;:::-;5167:93;;5284:56;5334:5;5284:56;:::i;:::-;5363:7;5394:1;5379:284;5404:6;5401:1;5398:13;5379:284;;;5480:6;5474:13;5507:63;5566:3;5551:13;5507:63;:::i;:::-;5500:70;;5593:60;5646:6;5593:60;:::i;:::-;5583:70;;5439:224;5426:1;5423;5419:9;5414:14;;5379:284;;;5383:14;5679:3;5672:10;;5080:608;;;;;;;:::o;5694:109::-;5775:21;5790:5;5775:21;:::i;:::-;5770:3;5763:34;5753:50;;:::o;5809:147::-;5904:45;5943:5;5904:45;:::i;:::-;5899:3;5892:58;5882:74;;:::o;5962:364::-;6050:3;6078:39;6111:5;6078:39;:::i;:::-;6133:71;6197:6;6192:3;6133:71;:::i;:::-;6126:78;;6213:52;6258:6;6253:3;6246:4;6239:5;6235:16;6213:52;:::i;:::-;6290:29;6312:6;6290:29;:::i;:::-;6285:3;6281:39;6274:46;;6054:272;;;;;:::o;6332:366::-;6474:3;6495:67;6559:2;6554:3;6495:67;:::i;:::-;6488:74;;6571:93;6660:3;6571:93;:::i;:::-;6689:2;6684:3;6680:12;6673:19;;6478:220;;;:::o;6704:366::-;6846:3;6867:67;6931:2;6926:3;6867:67;:::i;:::-;6860:74;;6943:93;7032:3;6943:93;:::i;:::-;7061:2;7056:3;7052:12;7045:19;;6850:220;;;:::o;7076:366::-;7218:3;7239:67;7303:2;7298:3;7239:67;:::i;:::-;7232:74;;7315:93;7404:3;7315:93;:::i;:::-;7433:2;7428:3;7424:12;7417:19;;7222:220;;;:::o;7448:366::-;7590:3;7611:67;7675:2;7670:3;7611:67;:::i;:::-;7604:74;;7687:93;7776:3;7687:93;:::i;:::-;7805:2;7800:3;7796:12;7789:19;;7594:220;;;:::o;7820:366::-;7962:3;7983:67;8047:2;8042:3;7983:67;:::i;:::-;7976:74;;8059:93;8148:3;8059:93;:::i;:::-;8177:2;8172:3;8168:12;8161:19;;7966:220;;;:::o;8192:366::-;8334:3;8355:67;8419:2;8414:3;8355:67;:::i;:::-;8348:74;;8431:93;8520:3;8431:93;:::i;:::-;8549:2;8544:3;8540:12;8533:19;;8338:220;;;:::o;8564:366::-;8706:3;8727:67;8791:2;8786:3;8727:67;:::i;:::-;8720:74;;8803:93;8892:3;8803:93;:::i;:::-;8921:2;8916:3;8912:12;8905:19;;8710:220;;;:::o;8936:366::-;9078:3;9099:67;9163:2;9158:3;9099:67;:::i;:::-;9092:74;;9175:93;9264:3;9175:93;:::i;:::-;9293:2;9288:3;9284:12;9277:19;;9082:220;;;:::o;9308:366::-;9450:3;9471:67;9535:2;9530:3;9471:67;:::i;:::-;9464:74;;9547:93;9636:3;9547:93;:::i;:::-;9665:2;9660:3;9656:12;9649:19;;9454:220;;;:::o;9680:366::-;9822:3;9843:67;9907:2;9902:3;9843:67;:::i;:::-;9836:74;;9919:93;10008:3;9919:93;:::i;:::-;10037:2;10032:3;10028:12;10021:19;;9826:220;;;:::o;10052:118::-;10139:24;10157:5;10139:24;:::i;:::-;10134:3;10127:37;10117:53;;:::o;10176:112::-;10259:22;10275:5;10259:22;:::i;:::-;10254:3;10247:35;10237:51;;:::o;10294:222::-;10387:4;10425:2;10414:9;10410:18;10402:26;;10438:71;10506:1;10495:9;10491:17;10482:6;10438:71;:::i;:::-;10392:124;;;;:::o;10522:332::-;10643:4;10681:2;10670:9;10666:18;10658:26;;10694:71;10762:1;10751:9;10747:17;10738:6;10694:71;:::i;:::-;10775:72;10843:2;10832:9;10828:18;10819:6;10775:72;:::i;:::-;10648:206;;;;;:::o;10860:332::-;10981:4;11019:2;11008:9;11004:18;10996:26;;11032:71;11100:1;11089:9;11085:17;11076:6;11032:71;:::i;:::-;11113:72;11181:2;11170:9;11166:18;11157:6;11113:72;:::i;:::-;10986:206;;;;;:::o;11198:807::-;11447:4;11485:3;11474:9;11470:19;11462:27;;11499:71;11567:1;11556:9;11552:17;11543:6;11499:71;:::i;:::-;11580:72;11648:2;11637:9;11633:18;11624:6;11580:72;:::i;:::-;11662:80;11738:2;11727:9;11723:18;11714:6;11662:80;:::i;:::-;11752;11828:2;11817:9;11813:18;11804:6;11752:80;:::i;:::-;11842:73;11910:3;11899:9;11895:19;11886:6;11842:73;:::i;:::-;11925;11993:3;11982:9;11978:19;11969:6;11925:73;:::i;:::-;11452:553;;;;;;;;;:::o;12011:210::-;12098:4;12136:2;12125:9;12121:18;12113:26;;12149:65;12211:1;12200:9;12196:17;12187:6;12149:65;:::i;:::-;12103:118;;;;:::o;12227:313::-;12340:4;12378:2;12367:9;12363:18;12355:26;;12427:9;12421:4;12417:20;12413:1;12402:9;12398:17;12391:47;12455:78;12528:4;12519:6;12455:78;:::i;:::-;12447:86;;12345:195;;;;:::o;12546:419::-;12712:4;12750:2;12739:9;12735:18;12727:26;;12799:9;12793:4;12789:20;12785:1;12774:9;12770:17;12763:47;12827:131;12953:4;12827:131;:::i;:::-;12819:139;;12717:248;;;:::o;12971:419::-;13137:4;13175:2;13164:9;13160:18;13152:26;;13224:9;13218:4;13214:20;13210:1;13199:9;13195:17;13188:47;13252:131;13378:4;13252:131;:::i;:::-;13244:139;;13142:248;;;:::o;13396:419::-;13562:4;13600:2;13589:9;13585:18;13577:26;;13649:9;13643:4;13639:20;13635:1;13624:9;13620:17;13613:47;13677:131;13803:4;13677:131;:::i;:::-;13669:139;;13567:248;;;:::o;13821:419::-;13987:4;14025:2;14014:9;14010:18;14002:26;;14074:9;14068:4;14064:20;14060:1;14049:9;14045:17;14038:47;14102:131;14228:4;14102:131;:::i;:::-;14094:139;;13992:248;;;:::o;14246:419::-;14412:4;14450:2;14439:9;14435:18;14427:26;;14499:9;14493:4;14489:20;14485:1;14474:9;14470:17;14463:47;14527:131;14653:4;14527:131;:::i;:::-;14519:139;;14417:248;;;:::o;14671:419::-;14837:4;14875:2;14864:9;14860:18;14852:26;;14924:9;14918:4;14914:20;14910:1;14899:9;14895:17;14888:47;14952:131;15078:4;14952:131;:::i;:::-;14944:139;;14842:248;;;:::o;15096:419::-;15262:4;15300:2;15289:9;15285:18;15277:26;;15349:9;15343:4;15339:20;15335:1;15324:9;15320:17;15313:47;15377:131;15503:4;15377:131;:::i;:::-;15369:139;;15267:248;;;:::o;15521:419::-;15687:4;15725:2;15714:9;15710:18;15702:26;;15774:9;15768:4;15764:20;15760:1;15749:9;15745:17;15738:47;15802:131;15928:4;15802:131;:::i;:::-;15794:139;;15692:248;;;:::o;15946:419::-;16112:4;16150:2;16139:9;16135:18;16127:26;;16199:9;16193:4;16189:20;16185:1;16174:9;16170:17;16163:47;16227:131;16353:4;16227:131;:::i;:::-;16219:139;;16117:248;;;:::o;16371:419::-;16537:4;16575:2;16564:9;16560:18;16552:26;;16624:9;16618:4;16614:20;16610:1;16599:9;16595:17;16588:47;16652:131;16778:4;16652:131;:::i;:::-;16644:139;;16542:248;;;:::o;16796:222::-;16889:4;16927:2;16916:9;16912:18;16904:26;;16940:71;17008:1;16997:9;16993:17;16984:6;16940:71;:::i;:::-;16894:124;;;;:::o;17024:831::-;17287:4;17325:3;17314:9;17310:19;17302:27;;17339:71;17407:1;17396:9;17392:17;17383:6;17339:71;:::i;:::-;17420:80;17496:2;17485:9;17481:18;17472:6;17420:80;:::i;:::-;17547:9;17541:4;17537:20;17532:2;17521:9;17517:18;17510:48;17575:108;17678:4;17669:6;17575:108;:::i;:::-;17567:116;;17693:72;17761:2;17750:9;17746:18;17737:6;17693:72;:::i;:::-;17775:73;17843:3;17832:9;17828:19;17819:6;17775:73;:::i;:::-;17292:563;;;;;;;;:::o;17861:214::-;17950:4;17988:2;17977:9;17973:18;17965:26;;18001:67;18065:1;18054:9;18050:17;18041:6;18001:67;:::i;:::-;17955:120;;;;:::o;18162:132::-;18229:4;18252:3;18244:11;;18282:4;18277:3;18273:14;18265:22;;18234:60;;;:::o;18300:114::-;18367:6;18401:5;18395:12;18385:22;;18374:40;;;:::o;18420:99::-;18472:6;18506:5;18500:12;18490:22;;18479:40;;;:::o;18525:113::-;18595:4;18627;18622:3;18618:14;18610:22;;18600:38;;;:::o;18644:184::-;18743:11;18777:6;18772:3;18765:19;18817:4;18812:3;18808:14;18793:29;;18755:73;;;;:::o;18834:169::-;18918:11;18952:6;18947:3;18940:19;18992:4;18987:3;18983:14;18968:29;;18930:73;;;;:::o;19009:305::-;19049:3;19068:20;19086:1;19068:20;:::i;:::-;19063:25;;19102:20;19120:1;19102:20;:::i;:::-;19097:25;;19256:1;19188:66;19184:74;19181:1;19178:81;19175:2;;;19262:18;;:::i;:::-;19175:2;19306:1;19303;19299:9;19292:16;;19053:261;;;;:::o;19320:185::-;19360:1;19377:20;19395:1;19377:20;:::i;:::-;19372:25;;19411:20;19429:1;19411:20;:::i;:::-;19406:25;;19450:1;19440:2;;19455:18;;:::i;:::-;19440:2;19497:1;19494;19490:9;19485:14;;19362:143;;;;:::o;19511:348::-;19551:7;19574:20;19592:1;19574:20;:::i;:::-;19569:25;;19608:20;19626:1;19608:20;:::i;:::-;19603:25;;19796:1;19728:66;19724:74;19721:1;19718:81;19713:1;19706:9;19699:17;19695:105;19692:2;;;19803:18;;:::i;:::-;19692:2;19851:1;19848;19844:9;19833:20;;19559:300;;;;:::o;19865:191::-;19905:4;19925:20;19943:1;19925:20;:::i;:::-;19920:25;;19959:20;19977:1;19959:20;:::i;:::-;19954:25;;19998:1;19995;19992:8;19989:2;;;20003:18;;:::i;:::-;19989:2;20048:1;20045;20041:9;20033:17;;19910:146;;;;:::o;20062:96::-;20099:7;20128:24;20146:5;20128:24;:::i;:::-;20117:35;;20107:51;;;:::o;20164:90::-;20198:7;20241:5;20234:13;20227:21;20216:32;;20206:48;;;:::o;20260:126::-;20297:7;20337:42;20330:5;20326:54;20315:65;;20305:81;;;:::o;20392:77::-;20429:7;20458:5;20447:16;;20437:32;;;:::o;20475:86::-;20510:7;20550:4;20543:5;20539:16;20528:27;;20518:43;;;:::o;20567:121::-;20625:9;20658:24;20676:5;20658:24;:::i;:::-;20645:37;;20635:53;;;:::o;20694:307::-;20762:1;20772:113;20786:6;20783:1;20780:13;20772:113;;;20871:1;20866:3;20862:11;20856:18;20852:1;20847:3;20843:11;20836:39;20808:2;20805:1;20801:10;20796:15;;20772:113;;;20903:6;20900:1;20897:13;20894:2;;;20983:1;20974:6;20969:3;20965:16;20958:27;20894:2;20743:258;;;;:::o;21007:180::-;21055:77;21052:1;21045:88;21152:4;21149:1;21142:15;21176:4;21173:1;21166:15;21193:180;21241:77;21238:1;21231:88;21338:4;21335:1;21328:15;21362:4;21359:1;21352:15;21379:180;21427:77;21424:1;21417:88;21524:4;21521:1;21514:15;21548:4;21545:1;21538:15;21565:180;21613:77;21610:1;21603:88;21710:4;21707:1;21700:15;21734:4;21731:1;21724:15;21874:117;21983:1;21980;21973:12;21997:102;22038:6;22089:2;22085:7;22080:2;22073:5;22069:14;22065:28;22055:38;;22045:54;;;:::o;22105:222::-;22245:34;22241:1;22233:6;22229:14;22222:58;22314:5;22309:2;22301:6;22297:15;22290:30;22211:116;:::o;22333:229::-;22473:34;22469:1;22461:6;22457:14;22450:58;22542:12;22537:2;22529:6;22525:15;22518:37;22439:123;:::o;22568:221::-;22708:34;22704:1;22696:6;22692:14;22685:58;22777:4;22772:2;22764:6;22760:15;22753:29;22674:115;:::o;22795:177::-;22935:29;22931:1;22923:6;22919:14;22912:53;22901:71;:::o;22978:220::-;23118:34;23114:1;23106:6;23102:14;23095:58;23187:3;23182:2;23174:6;23170:15;23163:28;23084:114;:::o;23204:182::-;23344:34;23340:1;23332:6;23328:14;23321:58;23310:76;:::o;23392:228::-;23532:34;23528:1;23520:6;23516:14;23509:58;23601:11;23596:2;23588:6;23584:15;23577:36;23498:122;:::o;23626:224::-;23766:34;23762:1;23754:6;23750:14;23743:58;23835:7;23830:2;23822:6;23818:15;23811:32;23732:118;:::o;23856:223::-;23996:34;23992:1;23984:6;23980:14;23973:58;24065:6;24060:2;24052:6;24048:15;24041:31;23962:117;:::o;24085:173::-;24225:25;24221:1;24213:6;24209:14;24202:49;24191:67;:::o;24264:122::-;24337:24;24355:5;24337:24;:::i;:::-;24330:5;24327:35;24317:2;;24376:1;24373;24366:12;24317:2;24307:79;:::o;24392:116::-;24462:21;24477:5;24462:21;:::i;:::-;24455:5;24452:32;24442:2;;24498:1;24495;24488:12;24442:2;24432:76;:::o;24514:122::-;24587:24;24605:5;24587:24;:::i;:::-;24580:5;24577:35;24567:2;;24626:1;24623;24616:12;24567:2;24557:79;:::o

Swarm Source

ipfs://b56f70450b6073022822af3e9c5022d7cbee3136ee77c184eaba2364688c89ff

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.