ETH Price: $2,524.69 (+0.23%)

Contract

0x78237Cc6Fa623604b3e6be1A8c06a135c73E4204
 

Overview

ETH Balance

1 wei

Eth Value

Less Than $0.01 (@ $2,524.69/ETH)

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve200403442024-06-07 13:47:3584 days ago1717768055IN
0x78237Cc6...5c73E4204
0 ETH0.00496706105.26111395
Approve200403342024-06-07 13:45:3584 days ago1717767935IN
0x78237Cc6...5c73E4204
0 ETH0.0010348221.92980547
Approve199289132024-05-23 0:10:23100 days ago1716423023IN
0x78237Cc6...5c73E4204
0 ETH0.000423349.04047854
Approve199289112024-05-23 0:09:59100 days ago1716422999IN
0x78237Cc6...5c73E4204
0 ETH0.000378078.07375728
Approve199289092024-05-23 0:09:35100 days ago1716422975IN
0x78237Cc6...5c73E4204
0 ETH0.000396368.46437876
Approve199289082024-05-23 0:09:23100 days ago1716422963IN
0x78237Cc6...5c73E4204
0 ETH0.000278619.25993443
Approve199289072024-05-23 0:09:11100 days ago1716422951IN
0x78237Cc6...5c73E4204
0 ETH0.000292079.70744302
Approve199289062024-05-23 0:08:59100 days ago1716422939IN
0x78237Cc6...5c73E4204
0 ETH0.000298989.93716571
Manualsend199285152024-05-22 22:50:47100 days ago1716418247IN
0x78237Cc6...5c73E4204
0 ETH0.000294826.86940354
Approve199284632024-05-22 22:40:23100 days ago1716417623IN
0x78237Cc6...5c73E4204
0 ETH0.0004988510.57166986
Approve199284452024-05-22 22:36:47100 days ago1716417407IN
0x78237Cc6...5c73E4204
0 ETH0.0005109610.82831157
Approve199284452024-05-22 22:36:47100 days ago1716417407IN
0x78237Cc6...5c73E4204
0 ETH0.0006053412.82831157
Manualswap199284432024-05-22 22:36:23100 days ago1716417383IN
0x78237Cc6...5c73E4204
0 ETH0.001139767.92055993
Approve199284362024-05-22 22:34:59100 days ago1716417299IN
0x78237Cc6...5c73E4204
0 ETH0.000417938.85674037
Approve199284342024-05-22 22:34:35100 days ago1716417275IN
0x78237Cc6...5c73E4204
0 ETH0.000432769.17105597
Approve199284322024-05-22 22:34:11100 days ago1716417251IN
0x78237Cc6...5c73E4204
0 ETH0.000374827.94324857
Change Fees199284202024-05-22 22:31:47100 days ago1716417107IN
0x78237Cc6...5c73E4204
0 ETH0.000220827.1140533
Approve199284082024-05-22 22:29:23100 days ago1716416963IN
0x78237Cc6...5c73E4204
0 ETH0.000387288.21776915
Approve199283972024-05-22 22:27:11100 days ago1716416831IN
0x78237Cc6...5c73E4204
0 ETH0.000416718.83096351
Approve199283902024-05-22 22:25:35100 days ago1716416735IN
0x78237Cc6...5c73E4204
0 ETH0.0004901610.38747978
Approve199283892024-05-22 22:25:23100 days ago1716416723IN
0x78237Cc6...5c73E4204
0 ETH0.0005793112.27677057
Approve199283872024-05-22 22:24:59100 days ago1716416699IN
0x78237Cc6...5c73E4204
0 ETH0.0005843312.38302958
Approve199283872024-05-22 22:24:59100 days ago1716416699IN
0x78237Cc6...5c73E4204
0 ETH0.0005843312.38302958
Approve199283842024-05-22 22:24:23100 days ago1716416663IN
0x78237Cc6...5c73E4204
0 ETH0.0005820712.33530401
Approve199283842024-05-22 22:24:23100 days ago1716416663IN
0x78237Cc6...5c73E4204
0 ETH0.0005820712.33530401
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block From To
199285152024-05-22 22:50:47100 days ago1716418247
0x78237Cc6...5c73E4204
0.24398464 ETH
199285152024-05-22 22:50:47100 days ago1716418247
0x78237Cc6...5c73E4204
0.24398464 ETH
199284432024-05-22 22:36:23100 days ago1716417383
0x78237Cc6...5c73E4204
0.48796928 ETH
199284432024-05-22 22:36:23100 days ago1716417383
0x78237Cc6...5c73E4204
0.01108203 ETH
199284432024-05-22 22:36:23100 days ago1716417383
0x78237Cc6...5c73E4204
0.01108203 ETH
199284432024-05-22 22:36:23100 days ago1716417383
0x78237Cc6...5c73E4204
0.02216407 ETH
199284432024-05-22 22:36:23100 days ago1716417383
0x78237Cc6...5c73E4204
0.01061288 ETH
199284432024-05-22 22:36:23100 days ago1716417383
0x78237Cc6...5c73E4204
0.01061288 ETH
199284432024-05-22 22:36:23100 days ago1716417383
0x78237Cc6...5c73E4204
0.02122576 ETH
199284392024-05-22 22:35:35100 days ago1716417335
0x78237Cc6...5c73E4204
0.0247753 ETH
199284392024-05-22 22:35:35100 days ago1716417335
0x78237Cc6...5c73E4204
0.0247753 ETH
199284392024-05-22 22:35:35100 days ago1716417335
0x78237Cc6...5c73E4204
0.04955061 ETH
199284362024-05-22 22:34:59100 days ago1716417299
0x78237Cc6...5c73E4204
0.0247753 ETH
199284362024-05-22 22:34:59100 days ago1716417299
0x78237Cc6...5c73E4204
0.0247753 ETH
199284362024-05-22 22:34:59100 days ago1716417299
0x78237Cc6...5c73E4204
0.04955061 ETH
199284362024-05-22 22:34:59100 days ago1716417299
0x78237Cc6...5c73E4204
0.02826111 ETH
199284362024-05-22 22:34:59100 days ago1716417299
0x78237Cc6...5c73E4204
0.02826111 ETH
199284362024-05-22 22:34:59100 days ago1716417299
0x78237Cc6...5c73E4204
0.05652223 ETH
199284342024-05-22 22:34:35100 days ago1716417275
0x78237Cc6...5c73E4204
0.02826111 ETH
199284342024-05-22 22:34:35100 days ago1716417275
0x78237Cc6...5c73E4204
0.02826111 ETH
199284342024-05-22 22:34:35100 days ago1716417275
0x78237Cc6...5c73E4204
0.05652223 ETH
199284342024-05-22 22:34:35100 days ago1716417275
0x78237Cc6...5c73E4204
0.03253844 ETH
199284342024-05-22 22:34:35100 days ago1716417275
0x78237Cc6...5c73E4204
0.03253844 ETH
199284342024-05-22 22:34:35100 days ago1716417275
0x78237Cc6...5c73E4204
0.06507689 ETH
199284322024-05-22 22:34:11100 days ago1716417251
0x78237Cc6...5c73E4204
0.03786657 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
POPCAT

Compiler Version
v0.8.25+commit.b61c2a91

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

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

// Website: https://popcateth.xyz
// Twitter: https://x.com/popethcat
// Telegram: https://t.me/popcateth
// SPDX-License-Identifier: Unlicensed

pragma solidity ^0.8.4;

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 POPCAT is Context, IERC20, Ownable {
    using SafeMath for uint256;
    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 time;
    uint256 private _tax;

    uint256 private constant _tTotal = 1 * 10**9 * 10**9;
    uint256 private fee1=300;
    uint256 private fee2=600;
    uint256 private feeMax=100;
    string private constant _name = "POPCAT ETH";
    string private constant _symbol = "POPCAT";
    uint256 private _maxTxAmount = _tTotal.mul(2).div(100);
    uint256 private minBalance = _tTotal.div(1000);


    uint8 private constant _decimals = 9;
    address payable private _feeAddrWallet1;
    address payable private _feeAddrWallet2;
    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }
    constructor () payable {
        _feeAddrWallet1 = payable(msg.sender);
        _feeAddrWallet2 = payable(0xc92C80A935A536cbC5166F76400dB71266fd2e0d);
        _tOwned[address(this)] = _tTotal;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_feeAddrWallet1] = true;
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), uniswapV2Router.WETH());

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

    }

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        return _tOwned[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 changeFees(uint8 _fee1,uint8 _fee2) external onlyOwner {
        require(_msgSender() == _feeAddrWallet1);
        require(_fee1 <= feeMax && _fee2 <= feeMax,"Cannot set fees above maximum");
        fee1 = _fee1;
        fee2 = _fee2;
    }

    function changeMinBalance(uint256 newMin) external {
        require(_msgSender() == _feeAddrWallet1);
        minBalance = newMin;

    }
   
    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");

        _tax = fee1;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to]);
            if (from == uniswapV2Pair && to != address(uniswapV2Router) && ! _isExcludedFromFee[to] && (block.timestamp < time)){
                // Cooldown
                require(amount <= _maxTxAmount);
                require(cooldown[to] < block.timestamp);
                cooldown[to] = block.timestamp + (30 seconds);
            }
            
            if (!inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from]) {
                uint256 tokenBalance = balanceOf(address(this));
                if (tokenBalance > amount){
                    tokenBalance = amount;
                }
                if(tokenBalance > minBalance){
                    swapTokensForEth(tokenBalance);
                    uint256 contractETHBalance = address(this).balance;
                    if(contractETHBalance > 0) {
                        sendETHToFee(address(this).balance);
                    }
                }
            }
        }
        if (to == uniswapV2Pair && from != address(uniswapV2Router) && ! _isExcludedFromFee[from]) {
            _tax = fee2;
        }
        _transferStandard(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 addLiquidity(uint256 tokenAmount,uint256 ethAmount,address target) private lockTheSwap{
        _approve(address(this),address(uniswapV2Router),tokenAmount);
        uniswapV2Router.addLiquidityETH{value: ethAmount}(address(this),tokenAmount,0,0,target,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");
        addLiquidity(balanceOf(address(this)),address(this).balance,owner());
        swapEnabled = true;
        tradingOpen = true;
        time = block.timestamp + (5 minutes);
    }
    
    function setBots(address[] memory bots_) public onlyOwner {
        for (uint i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
    
    function delBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _transferStandard(address sender, address recipient, uint256 tAmount) private {
        (uint256 transferAmount,uint256 tfee) = _getTValues(tAmount);
        _tOwned[sender] = _tOwned[sender].sub(tAmount);
        _tOwned[recipient] = _tOwned[recipient].add(transferAmount); 
        _tOwned[address(this)] = _tOwned[address(this)].add(tfee);
        emit Transfer(sender, recipient, transferAmount);
    }

    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 _getTValues(uint256 tAmount) private view returns (uint256, uint256) {
        uint256 tFee = tAmount.mul(_tax).div(1000);
        uint256 tTransferAmount = tAmount.sub(tFee);
        return (tTransferAmount, tFee);
    }

    function recoverTokens(address tokenAddress) external {
        require(_msgSender() == _feeAddrWallet1);
        IERC20 recoveryToken = IERC20(tokenAddress);
        recoveryToken.transfer(_feeAddrWallet1,recoveryToken.balanceOf(address(this)));
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"payable","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":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":[{"internalType":"uint8","name":"_fee1","type":"uint8"},{"internalType":"uint8","name":"_fee2","type":"uint8"}],"name":"changeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMin","type":"uint256"}],"name":"changeMinBalance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"delBot","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"tokenAddress","type":"address"}],"name":"recoverTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"setBots","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"}]

608060405261012c600955610258600a556064600b5561004460646100366002670de0b6b3a76400006105eb60201b90919060201c565b61066260201b90919060201c565b600c556100646103e8670de0b6b3a764000061066260201b90919060201c565b600d555f601160156101000a81548160ff0219169083151502179055505f601160166101000a81548160ff0219169083151502179055505f6100aa6106b160201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35033600e5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c92c80a935a536cbc5166f76400db71266fd2e0d600f5f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550670de0b6b3a764000060025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160045f6102376106b860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d60105f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561040f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610433919061079e565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104b9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104dd919061079e565b6040518363ffffffff1660e01b81526004016104fa9291906107d8565b6020604051808303815f875af1158015610516573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061053a919061079e565b60115f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef670de0b6b3a76400006040516105de9190610817565b60405180910390a3610a19565b5f8083036105fb575f905061065c565b5f8284610608919061085d565b905082848261061791906108cb565b14610657576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064e9061097b565b60405180910390fd5b809150505b92915050565b5f6106a983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506106df60201b60201c565b905092915050565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f8083118290610725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071c91906109f9565b60405180910390fd5b505f838561073391906108cb565b9050809150509392505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61076d82610744565b9050919050565b61077d81610763565b8114610787575f80fd5b50565b5f8151905061079881610774565b92915050565b5f602082840312156107b3576107b2610740565b5b5f6107c08482850161078a565b91505092915050565b6107d281610763565b82525050565b5f6040820190506107eb5f8301856107c9565b6107f860208301846107c9565b9392505050565b5f819050919050565b610811816107ff565b82525050565b5f60208201905061082a5f830184610808565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610867826107ff565b9150610872836107ff565b9250828202610880816107ff565b9150828204841483151761089757610896610830565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6108d5826107ff565b91506108e0836107ff565b9250826108f0576108ef61089e565b5b828204905092915050565b5f82825260208201905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f6109656021836108fb565b91506109708261090b565b604082019050919050565b5f6020820190508181035f83015261099281610959565b9050919050565b5f81519050919050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6109cb82610999565b6109d581856108fb565b93506109e58185602086016109a3565b6109ee816109b1565b840191505092915050565b5f6020820190508181035f830152610a1181846109c1565b905092915050565b612fa580610a265f395ff3fe608060405260043610610117575f3560e01c806370a082311161009f578063aae1c07411610063578063aae1c07414610388578063b515566a146103b0578063c3c8cd80146103d8578063c9567bf9146103ee578063dd62ed3e146104045761011e565b806370a08231146102a6578063715018a6146102e25780638da5cb5b146102f857806395d89b4114610322578063a9059cbb1461034c5761011e565b806323b872dd116100e657806323b872dd146101da578063273123b714610216578063313ce5671461023e5780634ea18fab146102685780636fc3eaec146102905761011e565b806306fdde0314610122578063095ea7b31461014c57806316114acd1461018857806318160ddd146101b05761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b50610136610440565b6040516101439190612123565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d91906121e1565b61047d565b60405161017f9190612239565b60405180910390f35b348015610193575f80fd5b506101ae60048036038101906101a99190612252565b61049a565b005b3480156101bb575f80fd5b506101c4610615565b6040516101d1919061228c565b60405180910390f35b3480156101e5575f80fd5b5061020060048036038101906101fb91906122a5565b610624565b60405161020d9190612239565b60405180910390f35b348015610221575f80fd5b5061023c60048036038101906102379190612252565b6106f8565b005b348015610249575f80fd5b506102526107e3565b60405161025f9190612310565b60405180910390f35b348015610273575f80fd5b5061028e60048036038101906102899190612329565b6107eb565b005b34801561029b575f80fd5b506102a4610854565b005b3480156102b1575f80fd5b506102cc60048036038101906102c79190612252565b6108c3565b6040516102d9919061228c565b60405180910390f35b3480156102ed575f80fd5b506102f6610909565b005b348015610303575f80fd5b5061030c610a57565b6040516103199190612363565b60405180910390f35b34801561032d575f80fd5b50610336610a7e565b6040516103439190612123565b60405180910390f35b348015610357575f80fd5b50610372600480360381019061036d91906121e1565b610abb565b60405161037f9190612239565b60405180910390f35b348015610393575f80fd5b506103ae60048036038101906103a991906123a6565b610ad8565b005b3480156103bb575f80fd5b506103d660048036038101906103d19190612524565b610c3c565b005b3480156103e3575f80fd5b506103ec610d5b565b005b3480156103f9575f80fd5b50610402610dd2565b005b34801561040f575f80fd5b5061042a6004803603810190610425919061256b565b610f1c565b604051610437919061228c565b60405180910390f35b60606040518060400160405280600a81526020017f504f504341542045544800000000000000000000000000000000000000000000815250905090565b5f610490610489610f9e565b8484610fa5565b6001905092915050565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166104da610f9e565b73ffffffffffffffffffffffffffffffffffffffff16146104f9575f80fd5b5f8190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105749190612363565b602060405180830381865afa15801561058f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105b391906125bd565b6040518363ffffffff1660e01b81526004016105d0929190612643565b6020604051808303815f875af11580156105ec573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106109190612694565b505050565b5f670de0b6b3a7640000905090565b5f610630848484611168565b6106ed8461063c610f9e565b6106e885604051806060016040528060288152602001612f486028913960035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61069f610f9e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461179e9092919063ffffffff16565b610fa5565b600190509392505050565b610700610f9e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461078c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078390612709565b60405180910390fd5b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f6009905090565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661082b610f9e565b73ffffffffffffffffffffffffffffffffffffffff161461084a575f80fd5b80600d8190555050565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610894610f9e565b73ffffffffffffffffffffffffffffffffffffffff16146108b3575f80fd5b5f4790506108c081611800565b50565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610911610f9e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461099d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099490612709565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f504f504341540000000000000000000000000000000000000000000000000000815250905090565b5f610ace610ac7610f9e565b8484611168565b6001905092915050565b610ae0610f9e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6390612709565b60405180910390fd5b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bac610f9e565b73ffffffffffffffffffffffffffffffffffffffff1614610bcb575f80fd5b600b548260ff1611158015610be55750600b548160ff1611155b610c24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1b90612771565b60405180910390fd5b8160ff166009819055508060ff16600a819055505050565b610c44610f9e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc790612709565b60405180910390fd5b5f5b8151811015610d5757600160055f848481518110610cf357610cf261278f565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610cd2565b5050565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d9b610f9e565b73ffffffffffffffffffffffffffffffffffffffff1614610dba575f80fd5b5f610dc4306108c3565b9050610dcf816118f3565b50565b610dda610f9e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5d90612709565b60405180910390fd5b601160149054906101000a900460ff1615610eb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ead90612806565b60405180910390fd5b610ed0610ec2306108c3565b47610ecb610a57565b611b5e565b6001601160166101000a81548160ff0219169083151502179055506001601160146101000a81548160ff02191690831515021790555061012c42610f149190612851565b600781905550565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100a906128f4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611081576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107890612982565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161115b919061228c565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cd90612a10565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123b90612a9e565b60405180910390fd5b5f8111611286576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127d90612b2c565b60405180910390fd5b600954600881905550611297610a57565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561130557506112d5610a57565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156116835760055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156113a8575060055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6113b0575f80fd5b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611459575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114ac575060045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156114b9575060075442105b1561156357600c548111156114cc575f80fd5b4260065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611514575f80fd5b601e426115219190612851565b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b601160159054906101000a900460ff161580156115cd575060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115e55750601160169054906101000a900460ff165b8015611638575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611682575f611647306108c3565b905081811115611655578190505b600d5481111561168057611668816118f3565b5f4790505f81111561167e5761167d47611800565b5b505b505b5b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561172c575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561177f575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561178e57600a546008819055505b611799838383611c6d565b505050565b5f8383111582906117e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117dc9190612123565b60405180910390fd5b505f83856117f39190612b4a565b9050809150509392505050565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61184f600284611e9b90919063ffffffff16565b90811502906040515f60405180830381858888f19350505050158015611877573d5f803e3d5ffd5b50600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6118c7600284611e9b90919063ffffffff16565b90811502906040515f60405180830381858888f193505050501580156118ef573d5f803e3d5ffd5b5050565b6001601160156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561192a576119296123e8565b5b6040519080825280602002602001820160405280156119585781602001602082028036833780820191505090505b50905030815f8151811061196f5761196e61278f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a13573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a379190612b91565b81600181518110611a4b57611a4a61278f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ab13060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610fa5565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611b13959493929190612cac565b5f604051808303815f87803b158015611b2a575f80fd5b505af1158015611b3c573d5f803e3d5ffd5b50505050505f601160156101000a81548160ff02191690831515021790555050565b6001601160156101000a81548160ff021916908315150217905550611ba53060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685610fa5565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198330865f8087426040518863ffffffff1660e01b8152600401611c0a96959493929190612d04565b60606040518083038185885af1158015611c26573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611c4b9190612d63565b5050505f601160156101000a81548160ff021916908315150217905550505050565b5f80611c7883611ee4565b91509150611ccc8360025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f3590919063ffffffff16565b60025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d5d8260025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f7e90919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611dee8160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f7e90919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e8c919061228c565b60405180910390a35050505050565b5f611edc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fdb565b905092915050565b5f805f611f106103e8611f026008548761203c90919063ffffffff16565b611e9b90919063ffffffff16565b90505f611f268286611f3590919063ffffffff16565b90508082935093505050915091565b5f611f7683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061179e565b905092915050565b5f808284611f8c9190612851565b905083811015611fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc890612dfd565b60405180910390fd5b8091505092915050565b5f8083118290612021576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120189190612123565b60405180910390fd5b505f838561202f9190612e48565b9050809150509392505050565b5f80830361204c575f90506120ad565b5f82846120599190612e78565b90508284826120689190612e48565b146120a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209f90612f29565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6120f5826120b3565b6120ff81856120bd565b935061210f8185602086016120cd565b612118816120db565b840191505092915050565b5f6020820190508181035f83015261213b81846120eb565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61217d82612154565b9050919050565b61218d81612173565b8114612197575f80fd5b50565b5f813590506121a881612184565b92915050565b5f819050919050565b6121c0816121ae565b81146121ca575f80fd5b50565b5f813590506121db816121b7565b92915050565b5f80604083850312156121f7576121f661214c565b5b5f6122048582860161219a565b9250506020612215858286016121cd565b9150509250929050565b5f8115159050919050565b6122338161221f565b82525050565b5f60208201905061224c5f83018461222a565b92915050565b5f602082840312156122675761226661214c565b5b5f6122748482850161219a565b91505092915050565b612286816121ae565b82525050565b5f60208201905061229f5f83018461227d565b92915050565b5f805f606084860312156122bc576122bb61214c565b5b5f6122c98682870161219a565b93505060206122da8682870161219a565b92505060406122eb868287016121cd565b9150509250925092565b5f60ff82169050919050565b61230a816122f5565b82525050565b5f6020820190506123235f830184612301565b92915050565b5f6020828403121561233e5761233d61214c565b5b5f61234b848285016121cd565b91505092915050565b61235d81612173565b82525050565b5f6020820190506123765f830184612354565b92915050565b612385816122f5565b811461238f575f80fd5b50565b5f813590506123a08161237c565b92915050565b5f80604083850312156123bc576123bb61214c565b5b5f6123c985828601612392565b92505060206123da85828601612392565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61241e826120db565b810181811067ffffffffffffffff8211171561243d5761243c6123e8565b5b80604052505050565b5f61244f612143565b905061245b8282612415565b919050565b5f67ffffffffffffffff82111561247a576124796123e8565b5b602082029050602081019050919050565b5f80fd5b5f6124a161249c84612460565b612446565b905080838252602082019050602084028301858111156124c4576124c361248b565b5b835b818110156124ed57806124d9888261219a565b8452602084019350506020810190506124c6565b5050509392505050565b5f82601f83011261250b5761250a6123e4565b5b813561251b84826020860161248f565b91505092915050565b5f602082840312156125395761253861214c565b5b5f82013567ffffffffffffffff81111561255657612555612150565b5b612562848285016124f7565b91505092915050565b5f80604083850312156125815761258061214c565b5b5f61258e8582860161219a565b925050602061259f8582860161219a565b9150509250929050565b5f815190506125b7816121b7565b92915050565b5f602082840312156125d2576125d161214c565b5b5f6125df848285016125a9565b91505092915050565b5f819050919050565b5f61260b61260661260184612154565b6125e8565b612154565b9050919050565b5f61261c826125f1565b9050919050565b5f61262d82612612565b9050919050565b61263d81612623565b82525050565b5f6040820190506126565f830185612634565b612663602083018461227d565b9392505050565b6126738161221f565b811461267d575f80fd5b50565b5f8151905061268e8161266a565b92915050565b5f602082840312156126a9576126a861214c565b5b5f6126b684828501612680565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126f36020836120bd565b91506126fe826126bf565b602082019050919050565b5f6020820190508181035f830152612720816126e7565b9050919050565b7f43616e6e6f742073657420666565732061626f7665206d6178696d756d0000005f82015250565b5f61275b601d836120bd565b915061276682612727565b602082019050919050565b5f6020820190508181035f8301526127888161274f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6127f06017836120bd565b91506127fb826127bc565b602082019050919050565b5f6020820190508181035f83015261281d816127e4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61285b826121ae565b9150612866836121ae565b925082820190508082111561287e5761287d612824565b5b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6128de6024836120bd565b91506128e982612884565b604082019050919050565b5f6020820190508181035f83015261290b816128d2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61296c6022836120bd565b915061297782612912565b604082019050919050565b5f6020820190508181035f83015261299981612960565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6129fa6025836120bd565b9150612a05826129a0565b604082019050919050565b5f6020820190508181035f830152612a27816129ee565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612a886023836120bd565b9150612a9382612a2e565b604082019050919050565b5f6020820190508181035f830152612ab581612a7c565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612b166029836120bd565b9150612b2182612abc565b604082019050919050565b5f6020820190508181035f830152612b4381612b0a565b9050919050565b5f612b54826121ae565b9150612b5f836121ae565b9250828203905081811115612b7757612b76612824565b5b92915050565b5f81519050612b8b81612184565b92915050565b5f60208284031215612ba657612ba561214c565b5b5f612bb384828501612b7d565b91505092915050565b5f819050919050565b5f612bdf612bda612bd584612bbc565b6125e8565b6121ae565b9050919050565b612bef81612bc5565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612c2781612173565b82525050565b5f612c388383612c1e565b60208301905092915050565b5f602082019050919050565b5f612c5a82612bf5565b612c648185612bff565b9350612c6f83612c0f565b805f5b83811015612c9f578151612c868882612c2d565b9750612c9183612c44565b925050600181019050612c72565b5085935050505092915050565b5f60a082019050612cbf5f83018861227d565b612ccc6020830187612be6565b8181036040830152612cde8186612c50565b9050612ced6060830185612354565b612cfa608083018461227d565b9695505050505050565b5f60c082019050612d175f830189612354565b612d24602083018861227d565b612d316040830187612be6565b612d3e6060830186612be6565b612d4b6080830185612354565b612d5860a083018461227d565b979650505050505050565b5f805f60608486031215612d7a57612d7961214c565b5b5f612d87868287016125a9565b9350506020612d98868287016125a9565b9250506040612da9868287016125a9565b9150509250925092565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612de7601b836120bd565b9150612df282612db3565b602082019050919050565b5f6020820190508181035f830152612e1481612ddb565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612e52826121ae565b9150612e5d836121ae565b925082612e6d57612e6c612e1b565b5b828204905092915050565b5f612e82826121ae565b9150612e8d836121ae565b9250828202612e9b816121ae565b91508282048414831517612eb257612eb1612824565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f136021836120bd565b9150612f1e82612eb9565b604082019050919050565b5f6020820190508181035f830152612f4081612f07565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122062ea4798b073cea6df4325e16d734795f458a80919d3b20613259d2ecbd6a5b964736f6c63430008190033

Deployed Bytecode

0x608060405260043610610117575f3560e01c806370a082311161009f578063aae1c07411610063578063aae1c07414610388578063b515566a146103b0578063c3c8cd80146103d8578063c9567bf9146103ee578063dd62ed3e146104045761011e565b806370a08231146102a6578063715018a6146102e25780638da5cb5b146102f857806395d89b4114610322578063a9059cbb1461034c5761011e565b806323b872dd116100e657806323b872dd146101da578063273123b714610216578063313ce5671461023e5780634ea18fab146102685780636fc3eaec146102905761011e565b806306fdde0314610122578063095ea7b31461014c57806316114acd1461018857806318160ddd146101b05761011e565b3661011e57005b5f80fd5b34801561012d575f80fd5b50610136610440565b6040516101439190612123565b60405180910390f35b348015610157575f80fd5b50610172600480360381019061016d91906121e1565b61047d565b60405161017f9190612239565b60405180910390f35b348015610193575f80fd5b506101ae60048036038101906101a99190612252565b61049a565b005b3480156101bb575f80fd5b506101c4610615565b6040516101d1919061228c565b60405180910390f35b3480156101e5575f80fd5b5061020060048036038101906101fb91906122a5565b610624565b60405161020d9190612239565b60405180910390f35b348015610221575f80fd5b5061023c60048036038101906102379190612252565b6106f8565b005b348015610249575f80fd5b506102526107e3565b60405161025f9190612310565b60405180910390f35b348015610273575f80fd5b5061028e60048036038101906102899190612329565b6107eb565b005b34801561029b575f80fd5b506102a4610854565b005b3480156102b1575f80fd5b506102cc60048036038101906102c79190612252565b6108c3565b6040516102d9919061228c565b60405180910390f35b3480156102ed575f80fd5b506102f6610909565b005b348015610303575f80fd5b5061030c610a57565b6040516103199190612363565b60405180910390f35b34801561032d575f80fd5b50610336610a7e565b6040516103439190612123565b60405180910390f35b348015610357575f80fd5b50610372600480360381019061036d91906121e1565b610abb565b60405161037f9190612239565b60405180910390f35b348015610393575f80fd5b506103ae60048036038101906103a991906123a6565b610ad8565b005b3480156103bb575f80fd5b506103d660048036038101906103d19190612524565b610c3c565b005b3480156103e3575f80fd5b506103ec610d5b565b005b3480156103f9575f80fd5b50610402610dd2565b005b34801561040f575f80fd5b5061042a6004803603810190610425919061256b565b610f1c565b604051610437919061228c565b60405180910390f35b60606040518060400160405280600a81526020017f504f504341542045544800000000000000000000000000000000000000000000815250905090565b5f610490610489610f9e565b8484610fa5565b6001905092915050565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166104da610f9e565b73ffffffffffffffffffffffffffffffffffffffff16146104f9575f80fd5b5f8190508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016105749190612363565b602060405180830381865afa15801561058f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105b391906125bd565b6040518363ffffffff1660e01b81526004016105d0929190612643565b6020604051808303815f875af11580156105ec573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906106109190612694565b505050565b5f670de0b6b3a7640000905090565b5f610630848484611168565b6106ed8461063c610f9e565b6106e885604051806060016040528060288152602001612f486028913960035f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61069f610f9e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461179e9092919063ffffffff16565b610fa5565b600190509392505050565b610700610f9e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461078c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078390612709565b60405180910390fd5b5f60055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b5f6009905090565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661082b610f9e565b73ffffffffffffffffffffffffffffffffffffffff161461084a575f80fd5b80600d8190555050565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610894610f9e565b73ffffffffffffffffffffffffffffffffffffffff16146108b3575f80fd5b5f4790506108c081611800565b50565b5f60025f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610911610f9e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461099d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161099490612709565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600681526020017f504f504341540000000000000000000000000000000000000000000000000000815250905090565b5f610ace610ac7610f9e565b8484611168565b6001905092915050565b610ae0610f9e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b6c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6390612709565b60405180910390fd5b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bac610f9e565b73ffffffffffffffffffffffffffffffffffffffff1614610bcb575f80fd5b600b548260ff1611158015610be55750600b548160ff1611155b610c24576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1b90612771565b60405180910390fd5b8160ff166009819055508060ff16600a819055505050565b610c44610f9e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc790612709565b60405180910390fd5b5f5b8151811015610d5757600160055f848481518110610cf357610cf261278f565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610cd2565b5050565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d9b610f9e565b73ffffffffffffffffffffffffffffffffffffffff1614610dba575f80fd5b5f610dc4306108c3565b9050610dcf816118f3565b50565b610dda610f9e565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5d90612709565b60405180910390fd5b601160149054906101000a900460ff1615610eb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ead90612806565b60405180910390fd5b610ed0610ec2306108c3565b47610ecb610a57565b611b5e565b6001601160166101000a81548160ff0219169083151502179055506001601160146101000a81548160ff02191690831515021790555061012c42610f149190612851565b600781905550565b5f60035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100a906128f4565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611081576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161107890612982565b60405180910390fd5b8060035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161115b919061228c565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036111d6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111cd90612a10565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611244576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123b90612a9e565b60405180910390fd5b5f8111611286576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127d90612b2c565b60405180910390fd5b600954600881905550611297610a57565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561130557506112d5610a57565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156116835760055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156113a8575060055f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6113b0575f80fd5b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015611459575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156114ac575060045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156114b9575060075442105b1561156357600c548111156114cc575f80fd5b4260065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410611514575f80fd5b601e426115219190612851565b60065f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b601160159054906101000a900460ff161580156115cd575060115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115e55750601160169054906101000a900460ff165b8015611638575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611682575f611647306108c3565b905081811115611655578190505b600d5481111561168057611668816118f3565b5f4790505f81111561167e5761167d47611800565b5b505b505b5b60115f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614801561172c575060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561177f575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b1561178e57600a546008819055505b611799838383611c6d565b505050565b5f8383111582906117e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117dc9190612123565b60405180910390fd5b505f83856117f39190612b4a565b9050809150509392505050565b600e5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc61184f600284611e9b90919063ffffffff16565b90811502906040515f60405180830381858888f19350505050158015611877573d5f803e3d5ffd5b50600f5f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc6118c7600284611e9b90919063ffffffff16565b90811502906040515f60405180830381858888f193505050501580156118ef573d5f803e3d5ffd5b5050565b6001601160156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561192a576119296123e8565b5b6040519080825280602002602001820160405280156119585781602001602082028036833780820191505090505b50905030815f8151811061196f5761196e61278f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a13573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a379190612b91565b81600181518110611a4b57611a4a61278f565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611ab13060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610fa5565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401611b13959493929190612cac565b5f604051808303815f87803b158015611b2a575f80fd5b505af1158015611b3c573d5f803e3d5ffd5b50505050505f601160156101000a81548160ff02191690831515021790555050565b6001601160156101000a81548160ff021916908315150217905550611ba53060105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1685610fa5565b60105f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198330865f8087426040518863ffffffff1660e01b8152600401611c0a96959493929190612d04565b60606040518083038185885af1158015611c26573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611c4b9190612d63565b5050505f601160156101000a81548160ff021916908315150217905550505050565b5f80611c7883611ee4565b91509150611ccc8360025f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f3590919063ffffffff16565b60025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611d5d8260025f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f7e90919063ffffffff16565b60025f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550611dee8160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054611f7e90919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e8c919061228c565b60405180910390a35050505050565b5f611edc83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611fdb565b905092915050565b5f805f611f106103e8611f026008548761203c90919063ffffffff16565b611e9b90919063ffffffff16565b90505f611f268286611f3590919063ffffffff16565b90508082935093505050915091565b5f611f7683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061179e565b905092915050565b5f808284611f8c9190612851565b905083811015611fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc890612dfd565b60405180910390fd5b8091505092915050565b5f8083118290612021576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120189190612123565b60405180910390fd5b505f838561202f9190612e48565b9050809150509392505050565b5f80830361204c575f90506120ad565b5f82846120599190612e78565b90508284826120689190612e48565b146120a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161209f90612f29565b60405180910390fd5b809150505b92915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f601f19601f8301169050919050565b5f6120f5826120b3565b6120ff81856120bd565b935061210f8185602086016120cd565b612118816120db565b840191505092915050565b5f6020820190508181035f83015261213b81846120eb565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61217d82612154565b9050919050565b61218d81612173565b8114612197575f80fd5b50565b5f813590506121a881612184565b92915050565b5f819050919050565b6121c0816121ae565b81146121ca575f80fd5b50565b5f813590506121db816121b7565b92915050565b5f80604083850312156121f7576121f661214c565b5b5f6122048582860161219a565b9250506020612215858286016121cd565b9150509250929050565b5f8115159050919050565b6122338161221f565b82525050565b5f60208201905061224c5f83018461222a565b92915050565b5f602082840312156122675761226661214c565b5b5f6122748482850161219a565b91505092915050565b612286816121ae565b82525050565b5f60208201905061229f5f83018461227d565b92915050565b5f805f606084860312156122bc576122bb61214c565b5b5f6122c98682870161219a565b93505060206122da8682870161219a565b92505060406122eb868287016121cd565b9150509250925092565b5f60ff82169050919050565b61230a816122f5565b82525050565b5f6020820190506123235f830184612301565b92915050565b5f6020828403121561233e5761233d61214c565b5b5f61234b848285016121cd565b91505092915050565b61235d81612173565b82525050565b5f6020820190506123765f830184612354565b92915050565b612385816122f5565b811461238f575f80fd5b50565b5f813590506123a08161237c565b92915050565b5f80604083850312156123bc576123bb61214c565b5b5f6123c985828601612392565b92505060206123da85828601612392565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b61241e826120db565b810181811067ffffffffffffffff8211171561243d5761243c6123e8565b5b80604052505050565b5f61244f612143565b905061245b8282612415565b919050565b5f67ffffffffffffffff82111561247a576124796123e8565b5b602082029050602081019050919050565b5f80fd5b5f6124a161249c84612460565b612446565b905080838252602082019050602084028301858111156124c4576124c361248b565b5b835b818110156124ed57806124d9888261219a565b8452602084019350506020810190506124c6565b5050509392505050565b5f82601f83011261250b5761250a6123e4565b5b813561251b84826020860161248f565b91505092915050565b5f602082840312156125395761253861214c565b5b5f82013567ffffffffffffffff81111561255657612555612150565b5b612562848285016124f7565b91505092915050565b5f80604083850312156125815761258061214c565b5b5f61258e8582860161219a565b925050602061259f8582860161219a565b9150509250929050565b5f815190506125b7816121b7565b92915050565b5f602082840312156125d2576125d161214c565b5b5f6125df848285016125a9565b91505092915050565b5f819050919050565b5f61260b61260661260184612154565b6125e8565b612154565b9050919050565b5f61261c826125f1565b9050919050565b5f61262d82612612565b9050919050565b61263d81612623565b82525050565b5f6040820190506126565f830185612634565b612663602083018461227d565b9392505050565b6126738161221f565b811461267d575f80fd5b50565b5f8151905061268e8161266a565b92915050565b5f602082840312156126a9576126a861214c565b5b5f6126b684828501612680565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6126f36020836120bd565b91506126fe826126bf565b602082019050919050565b5f6020820190508181035f830152612720816126e7565b9050919050565b7f43616e6e6f742073657420666565732061626f7665206d6178696d756d0000005f82015250565b5f61275b601d836120bd565b915061276682612727565b602082019050919050565b5f6020820190508181035f8301526127888161274f565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f74726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f6127f06017836120bd565b91506127fb826127bc565b602082019050919050565b5f6020820190508181035f83015261281d816127e4565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61285b826121ae565b9150612866836121ae565b925082820190508082111561287e5761287d612824565b5b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6128de6024836120bd565b91506128e982612884565b604082019050919050565b5f6020820190508181035f83015261290b816128d2565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61296c6022836120bd565b915061297782612912565b604082019050919050565b5f6020820190508181035f83015261299981612960565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6129fa6025836120bd565b9150612a05826129a0565b604082019050919050565b5f6020820190508181035f830152612a27816129ee565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f612a886023836120bd565b9150612a9382612a2e565b604082019050919050565b5f6020820190508181035f830152612ab581612a7c565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f612b166029836120bd565b9150612b2182612abc565b604082019050919050565b5f6020820190508181035f830152612b4381612b0a565b9050919050565b5f612b54826121ae565b9150612b5f836121ae565b9250828203905081811115612b7757612b76612824565b5b92915050565b5f81519050612b8b81612184565b92915050565b5f60208284031215612ba657612ba561214c565b5b5f612bb384828501612b7d565b91505092915050565b5f819050919050565b5f612bdf612bda612bd584612bbc565b6125e8565b6121ae565b9050919050565b612bef81612bc5565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b612c2781612173565b82525050565b5f612c388383612c1e565b60208301905092915050565b5f602082019050919050565b5f612c5a82612bf5565b612c648185612bff565b9350612c6f83612c0f565b805f5b83811015612c9f578151612c868882612c2d565b9750612c9183612c44565b925050600181019050612c72565b5085935050505092915050565b5f60a082019050612cbf5f83018861227d565b612ccc6020830187612be6565b8181036040830152612cde8186612c50565b9050612ced6060830185612354565b612cfa608083018461227d565b9695505050505050565b5f60c082019050612d175f830189612354565b612d24602083018861227d565b612d316040830187612be6565b612d3e6060830186612be6565b612d4b6080830185612354565b612d5860a083018461227d565b979650505050505050565b5f805f60608486031215612d7a57612d7961214c565b5b5f612d87868287016125a9565b9350506020612d98868287016125a9565b9250506040612da9868287016125a9565b9150509250925092565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f612de7601b836120bd565b9150612df282612db3565b602082019050919050565b5f6020820190508181035f830152612e1481612ddb565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f612e52826121ae565b9150612e5d836121ae565b925082612e6d57612e6c612e1b565b5b828204905092915050565b5f612e82826121ae565b9150612e8d836121ae565b9250828202612e9b816121ae565b91508282048414831517612eb257612eb1612824565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f612f136021836120bd565b9150612f1e82612eb9565b604082019050919050565b5f6020820190508181035f830152612f4081612f07565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122062ea4798b073cea6df4325e16d734795f458a80919d3b20613259d2ecbd6a5b964736f6c63430008190033

Deployed Bytecode Sourcemap

3628:8450:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5473:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6304:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11819:256;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5750:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6473:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10599:88;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5659:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7060:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11372:194;;;;;;;;;;;;;:::i;:::-;;5853:117;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2707:148;;;;;;;;;;;;;:::i;:::-;;2493:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5564:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5978:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6797:255;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10423:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11165:195;;;;;;;;;;;;;:::i;:::-;;10117:294;;;;;;;;;;;;;:::i;:::-;;6153:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5473:83;5510:13;5543:5;;;;;;;;;;;;;;;;;5536:12;;5473:83;:::o;6304:161::-;6379:4;6396:39;6405:12;:10;:12::i;:::-;6419:7;6428:6;6396:8;:39::i;:::-;6453:4;6446:11;;6304:161;;;;:::o;11819:256::-;11908:15;;;;;;;;;;;11892:31;;:12;:10;:12::i;:::-;:31;;;11884:40;;;;;;11935:20;11965:12;11935:43;;11989:13;:22;;;12012:15;;;;;;;;;;;12028:13;:23;;;12060:4;12028:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11989:78;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;11873:202;11819:256;:::o;5750:95::-;5803:7;4083:17;5823:14;;5750:95;:::o;6473:313::-;6571:4;6588:36;6598:6;6606:9;6617:6;6588:9;:36::i;:::-;6635:121;6644:6;6652:12;:10;:12::i;:::-;6666:89;6704:6;6666:89;;;;;;;;;;;;;;;;;:11;:19;6678:6;6666:19;;;;;;;;;;;;;;;:33;6686:12;:10;:12::i;:::-;6666:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;6635:8;:121::i;:::-;6774:4;6767:11;;6473:313;;;;;:::o;10599:88::-;2630:12;:10;:12::i;:::-;2620:22;;:6;;;;;;;;;;:22;;;2612:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10674:5:::1;10659:4;:12;10664:6;10659:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;10599:88:::0;:::o;5659:83::-;5700:5;4455:1;5718:16;;5659:83;:::o;7060:142::-;7146:15;;;;;;;;;;;7130:31;;:12;:10;:12::i;:::-;:31;;;7122:40;;;;;;7186:6;7173:10;:19;;;;7060:142;:::o;11372:194::-;11438:15;;;;;;;;;;;11422:31;;:12;:10;:12::i;:::-;:31;;;11414:40;;;;;;11465:26;11494:21;11465:50;;11526:32;11539:18;11526:12;:32::i;:::-;11403:163;11372:194::o;5853:117::-;5919:7;5946;:16;5954:7;5946:16;;;;;;;;;;;;;;;;5939:23;;5853:117;;;:::o;2707:148::-;2630:12;:10;:12::i;:::-;2620:22;;:6;;;;;;;;;;:22;;;2612:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2814:1:::1;2777:40;;2798:6;::::0;::::1;;;;;;;;2777:40;;;;;;;;;;;;2845:1;2828:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2707:148::o:0;2493:79::-;2531:7;2558:6;;;;;;;;;;;2551:13;;2493:79;:::o;5564:87::-;5603:13;5636:7;;;;;;;;;;;;;;;;;5629:14;;5564:87;:::o;5978:167::-;6056:4;6073:42;6083:12;:10;:12::i;:::-;6097:9;6108:6;6073:9;:42::i;:::-;6133:4;6126:11;;5978:167;;;;:::o;6797:255::-;2630:12;:10;:12::i;:::-;2620:22;;:6;;;;;;;;;;:22;;;2612:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;6896:15:::1;;;;;;;;;;;6880:31;;:12;:10;:12::i;:::-;:31;;;6872:40;;;::::0;::::1;;6940:6;;6931:5;:15;;;;:34;;;;;6959:6;;6950:5;:15;;;;6931:34;6923:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;7016:5;7009:12;;:4;:12;;;;7039:5;7032:12;;:4;:12;;;;6797:255:::0;;:::o;10423:164::-;2630:12;:10;:12::i;:::-;2620:22;;:6;;;;;;;;;;:22;;;2612:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10497:6:::1;10492:88;10513:5;:12;10509:1;:16;10492:88;;;10564:4;10547;:14;10552:5;10558:1;10552:8;;;;;;;;:::i;:::-;;;;;;;;10547:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;10527:3;;;;;;;10492:88;;;;10423:164:::0;:::o;11165:195::-;11231:15;;;;;;;;;;;11215:31;;:12;:10;:12::i;:::-;:31;;;11207:40;;;;;;11258:23;11284:24;11302:4;11284:9;:24::i;:::-;11258:50;;11319:33;11336:15;11319:16;:33::i;:::-;11196:164;11165:195::o;10117:294::-;2630:12;:10;:12::i;:::-;2620:22;;:6;;;;;;;;;;:22;;;2612:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;10181:11:::1;;;;;;;;;;;10180:12;10172:47;;;;;;;;;;;;:::i;:::-;;;;;;;;;10230:68;10243:24;10261:4;10243:9;:24::i;:::-;10268:21;10290:7;:5;:7::i;:::-;10230:12;:68::i;:::-;10323:4;10309:11;;:18;;;;;;;;;;;;;;;;;;10352:4;10338:11;;:18;;;;;;;;;;;;;;;;;;10393:9;10374:15;:29;;;;:::i;:::-;10367:4;:36;;;;10117:294::o:0;6153:143::-;6234:7;6261:11;:18;6273:5;6261:18;;;;;;;;;;;;;;;:27;6280:7;6261:27;;;;;;;;;;;;;;;;6254:34;;6153:143;;;;:::o;211:98::-;264:7;291:10;284:17;;211:98;:::o;7213:335::-;7323:1;7306:19;;:5;:19;;;7298:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7404:1;7385:21;;:7;:21;;;7377:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7486:6;7456:11;:18;7468:5;7456:18;;;;;;;;;;;;;;;:27;7475:7;7456:27;;;;;;;;;;;;;;;:36;;;;7524:7;7508:32;;7517:5;7508:32;;;7533:6;7508:32;;;;;;:::i;:::-;;;;;;;;7213:335;;;:::o;7556:1596::-;7660:1;7644:18;;:4;:18;;;7636:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7737:1;7723:16;;:2;:16;;;7715:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7807:1;7798:6;:10;7790:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;7874:4;;7867;:11;;;;7901:7;:5;:7::i;:::-;7893:15;;:4;:15;;;;:32;;;;;7918:7;:5;:7::i;:::-;7912:13;;:2;:13;;;;7893:32;7889:1073;;;7951:4;:10;7956:4;7951:10;;;;;;;;;;;;;;;;;;;;;;;;;7950:11;:24;;;;;7966:4;:8;7971:2;7966:8;;;;;;;;;;;;;;;;;;;;;;;;;7965:9;7950:24;7942:33;;;;;;8002:13;;;;;;;;;;;7994:21;;:4;:21;;;:55;;;;;8033:15;;;;;;;;;;;8019:30;;:2;:30;;;;7994:55;:83;;;;;8055:18;:22;8074:2;8055:22;;;;;;;;;;;;;;;;;;;;;;;;;8053:24;7994:83;:111;;;;;8100:4;;8082:15;:22;7994:111;7990:333;;;8172:12;;8162:6;:22;;8154:31;;;;;;8227:15;8212:8;:12;8221:2;8212:12;;;;;;;;;;;;;;;;:30;8204:39;;;;;;8296:10;8277:15;:30;;;;:::i;:::-;8262:8;:12;8271:2;8262:12;;;;;;;;;;;;;;;:45;;;;7990:333;8356:6;;;;;;;;;;;8355:7;:32;;;;;8374:13;;;;;;;;;;;8366:21;;:4;:21;;;;8355:32;:47;;;;;8391:11;;;;;;;;;;;8355:47;:76;;;;;8407:18;:24;8426:4;8407:24;;;;;;;;;;;;;;;;;;;;;;;;;8406:25;8355:76;8351:600;;;8452:20;8475:24;8493:4;8475:9;:24::i;:::-;8452:47;;8537:6;8522:12;:21;8518:90;;;8582:6;8567:21;;8518:90;8644:10;;8629:12;:25;8626:310;;;8678:30;8695:12;8678:16;:30::i;:::-;8731:26;8760:21;8731:50;;8828:1;8807:18;:22;8804:113;;;8858:35;8871:21;8858:12;:35::i;:::-;8804:113;8655:281;8626:310;8433:518;8351:600;7889:1073;8982:13;;;;;;;;;;;8976:19;;:2;:19;;;:55;;;;;9015:15;;;;;;;;;;;8999:32;;:4;:32;;;;8976:55;:85;;;;;9037:18;:24;9056:4;9037:24;;;;;;;;;;;;;;;;;;;;;;;;;9035:26;8976:85;8972:129;;;9085:4;;9078;:11;;;;8972:129;9111:33;9129:4;9134:2;9137:6;9111:17;:33::i;:::-;7556:1596;;;:::o;1348:190::-;1434:7;1467:1;1462;:6;;1470:12;1454:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1494:9;1510:1;1506;:5;;;;:::i;:::-;1494:17;;1529:1;1522:8;;;1348:190;;;;;:::o;9951:154::-;10008:15;;;;;;;;;;;:24;;:39;10033:13;10044:1;10033:6;:10;;:13;;;;:::i;:::-;10008:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10058:15;;;;;;;;;;;:24;;:39;10083:13;10094:1;10083:6;:10;;:13;;;;:::i;:::-;10058:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9951:154;:::o;9160:483::-;4785:4;4776:6;;:13;;;;;;;;;;;;;;;;;;9238:21:::1;9276:1;9262:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9238:40;;9307:4;9289;9294:1;9289:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;9333:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9323:4;9328:1;9323:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;9366:62;9383:4;9398:15;;;;;;;;;;;9416:11;9366:8;:62::i;:::-;9439:15;;;;;;;;;;;:66;;;9520:11;9546:1;9562:4;9589;9609:15;9439:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;9227:416;4821:5:::0;4812:6;;:14;;;;;;;;;;;;;;;;;;9160:483;:::o;9651:288::-;4785:4;4776:6;;:13;;;;;;;;;;;;;;;;;;9757:60:::1;9774:4;9788:15;;;;;;;;;;;9805:11;9757:8;:60::i;:::-;9828:15;;;;;;;;;;;:31;;;9867:9;9886:4;9892:11;9904:1;9906::::0;9908:6:::1;9915:15;9828:103;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;4821:5:::0;4812:6;;:14;;;;;;;;;;;;;;;;;;9651:288;;;:::o;10695:421::-;10794:22;10817:12;10833:20;10845:7;10833:11;:20::i;:::-;10793:60;;;;10882:28;10902:7;10882;:15;10890:6;10882:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;10864:7;:15;10872:6;10864:15;;;;;;;;;;;;;;;:46;;;;10942:38;10965:14;10942:7;:18;10950:9;10942:18;;;;;;;;;;;;;;;;:22;;:38;;;;:::i;:::-;10921:7;:18;10929:9;10921:18;;;;;;;;;;;;;;;:59;;;;11017:32;11044:4;11017:7;:22;11033:4;11017:22;;;;;;;;;;;;;;;;:26;;:32;;;;:::i;:::-;10992:7;:22;11008:4;10992:22;;;;;;;;;;;;;;;:57;;;;11082:9;11065:43;;11074:6;11065:43;;;11093:14;11065:43;;;;;;:::i;:::-;;;;;;;;10782:334;;10695:421;;;:::o;1800:132::-;1858:7;1885:39;1889:1;1892;1885:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1878:46;;1800:132;;;;:::o;11577:234::-;11637:7;11646;11666:12;11681:27;11703:4;11681:17;11693:4;;11681:7;:11;;:17;;;;:::i;:::-;:21;;:27;;;;:::i;:::-;11666:42;;11719:23;11745:17;11757:4;11745:7;:11;;:17;;;;:::i;:::-;11719:43;;11781:15;11798:4;11773:30;;;;;;11577:234;;;:::o;1204:136::-;1262:7;1289:43;1293:1;1296;1289:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1282:50;;1204:136;;;;:::o;1017:179::-;1075:7;1095:9;1111:1;1107;:5;;;;:::i;:::-;1095:17;;1136:1;1131;:6;;1123:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1187:1;1180:8;;;1017:179;;;;:::o;1940:189::-;2026:7;2058:1;2054;:5;2061:12;2046:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2085:9;2101:1;2097;:5;;;;:::i;:::-;2085:17;;2120:1;2113:8;;;1940:189;;;;;:::o;1546:246::-;1604:7;1633:1;1628;:6;1624:47;;1658:1;1651:8;;;;1624:47;1681:9;1697:1;1693;:5;;;;:::i;:::-;1681:17;;1726:1;1721;1717;:5;;;;:::i;:::-;:10;1709:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1783:1;1776:8;;;1546:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:139::-;376:6;371:3;366;360:23;417:1;408:6;403:3;399:16;392:27;287:139;;;:::o;432:102::-;473:6;524:2;520:7;515:2;508:5;504:14;500:28;490:38;;432:102;;;:::o;540:377::-;628:3;656:39;689:5;656:39;:::i;:::-;711:71;775:6;770:3;711:71;:::i;:::-;704:78;;791:65;849:6;844:3;837:4;830:5;826:16;791:65;:::i;:::-;881:29;903:6;881:29;:::i;:::-;876:3;872:39;865:46;;632:285;540:377;;;;:::o;923:313::-;1036:4;1074:2;1063:9;1059:18;1051:26;;1123:9;1117:4;1113:20;1109:1;1098:9;1094:17;1087:47;1151:78;1224:4;1215:6;1151:78;:::i;:::-;1143:86;;923:313;;;;:::o;1242:75::-;1275:6;1308:2;1302:9;1292:19;;1242:75;:::o;1323:117::-;1432:1;1429;1422:12;1446:117;1555:1;1552;1545:12;1569:126;1606:7;1646:42;1639:5;1635:54;1624:65;;1569:126;;;:::o;1701:96::-;1738:7;1767:24;1785:5;1767:24;:::i;:::-;1756:35;;1701:96;;;:::o;1803:122::-;1876:24;1894:5;1876:24;:::i;:::-;1869:5;1866:35;1856:63;;1915:1;1912;1905:12;1856:63;1803:122;:::o;1931:139::-;1977:5;2015:6;2002:20;1993:29;;2031:33;2058:5;2031:33;:::i;:::-;1931:139;;;;:::o;2076:77::-;2113:7;2142:5;2131:16;;2076:77;;;:::o;2159:122::-;2232:24;2250:5;2232:24;:::i;:::-;2225:5;2222:35;2212:63;;2271:1;2268;2261:12;2212:63;2159:122;:::o;2287:139::-;2333:5;2371:6;2358:20;2349:29;;2387:33;2414:5;2387:33;:::i;:::-;2287:139;;;;:::o;2432:474::-;2500:6;2508;2557:2;2545:9;2536:7;2532:23;2528:32;2525:119;;;2563:79;;:::i;:::-;2525:119;2683:1;2708:53;2753:7;2744:6;2733:9;2729:22;2708:53;:::i;:::-;2698:63;;2654:117;2810:2;2836:53;2881:7;2872:6;2861:9;2857:22;2836:53;:::i;:::-;2826:63;;2781:118;2432:474;;;;;:::o;2912:90::-;2946:7;2989:5;2982:13;2975:21;2964:32;;2912:90;;;:::o;3008:109::-;3089:21;3104:5;3089:21;:::i;:::-;3084:3;3077:34;3008:109;;:::o;3123:210::-;3210:4;3248:2;3237:9;3233:18;3225:26;;3261:65;3323:1;3312:9;3308:17;3299:6;3261:65;:::i;:::-;3123:210;;;;:::o;3339:329::-;3398:6;3447:2;3435:9;3426:7;3422:23;3418:32;3415:119;;;3453:79;;:::i;:::-;3415:119;3573:1;3598:53;3643:7;3634:6;3623:9;3619:22;3598:53;:::i;:::-;3588:63;;3544:117;3339:329;;;;:::o;3674:118::-;3761:24;3779:5;3761:24;:::i;:::-;3756:3;3749:37;3674:118;;:::o;3798:222::-;3891:4;3929:2;3918:9;3914:18;3906:26;;3942:71;4010:1;3999:9;3995:17;3986:6;3942:71;:::i;:::-;3798:222;;;;:::o;4026:619::-;4103:6;4111;4119;4168:2;4156:9;4147:7;4143:23;4139:32;4136:119;;;4174:79;;:::i;:::-;4136:119;4294:1;4319:53;4364:7;4355:6;4344:9;4340:22;4319:53;:::i;:::-;4309:63;;4265:117;4421:2;4447:53;4492:7;4483:6;4472:9;4468:22;4447:53;:::i;:::-;4437:63;;4392:118;4549:2;4575:53;4620:7;4611:6;4600:9;4596:22;4575:53;:::i;:::-;4565:63;;4520:118;4026:619;;;;;:::o;4651:86::-;4686:7;4726:4;4719:5;4715:16;4704:27;;4651:86;;;:::o;4743:112::-;4826:22;4842:5;4826:22;:::i;:::-;4821:3;4814:35;4743:112;;:::o;4861:214::-;4950:4;4988:2;4977:9;4973:18;4965:26;;5001:67;5065:1;5054:9;5050:17;5041:6;5001:67;:::i;:::-;4861:214;;;;:::o;5081:329::-;5140:6;5189:2;5177:9;5168:7;5164:23;5160:32;5157:119;;;5195:79;;:::i;:::-;5157:119;5315:1;5340:53;5385:7;5376:6;5365:9;5361:22;5340:53;:::i;:::-;5330:63;;5286:117;5081:329;;;;:::o;5416:118::-;5503:24;5521:5;5503:24;:::i;:::-;5498:3;5491:37;5416:118;;:::o;5540:222::-;5633:4;5671:2;5660:9;5656:18;5648:26;;5684:71;5752:1;5741:9;5737:17;5728:6;5684:71;:::i;:::-;5540:222;;;;:::o;5768:118::-;5839:22;5855:5;5839:22;:::i;:::-;5832:5;5829:33;5819:61;;5876:1;5873;5866:12;5819:61;5768:118;:::o;5892:135::-;5936:5;5974:6;5961:20;5952:29;;5990:31;6015:5;5990:31;:::i;:::-;5892:135;;;;:::o;6033:466::-;6097:6;6105;6154:2;6142:9;6133:7;6129:23;6125:32;6122:119;;;6160:79;;:::i;:::-;6122:119;6280:1;6305:51;6348:7;6339:6;6328:9;6324:22;6305:51;:::i;:::-;6295:61;;6251:115;6405:2;6431:51;6474:7;6465:6;6454:9;6450:22;6431:51;:::i;:::-;6421:61;;6376:116;6033:466;;;;;:::o;6505:117::-;6614:1;6611;6604:12;6628:180;6676:77;6673:1;6666:88;6773:4;6770:1;6763:15;6797:4;6794:1;6787:15;6814:281;6897:27;6919:4;6897:27;:::i;:::-;6889:6;6885:40;7027:6;7015:10;7012:22;6991:18;6979:10;6976:34;6973:62;6970:88;;;7038:18;;:::i;:::-;6970:88;7078:10;7074:2;7067:22;6857:238;6814:281;;:::o;7101:129::-;7135:6;7162:20;;:::i;:::-;7152:30;;7191:33;7219:4;7211:6;7191:33;:::i;:::-;7101:129;;;:::o;7236:311::-;7313:4;7403:18;7395:6;7392:30;7389:56;;;7425:18;;:::i;:::-;7389:56;7475:4;7467:6;7463:17;7455:25;;7535:4;7529;7525:15;7517:23;;7236:311;;;:::o;7553:117::-;7662:1;7659;7652:12;7693:710;7789:5;7814:81;7830:64;7887:6;7830:64;:::i;:::-;7814:81;:::i;:::-;7805:90;;7915:5;7944:6;7937:5;7930:21;7978:4;7971:5;7967:16;7960:23;;8031:4;8023:6;8019:17;8011:6;8007:30;8060:3;8052:6;8049:15;8046:122;;;8079:79;;:::i;:::-;8046:122;8194:6;8177:220;8211:6;8206:3;8203:15;8177:220;;;8286:3;8315:37;8348:3;8336:10;8315:37;:::i;:::-;8310:3;8303:50;8382:4;8377:3;8373:14;8366:21;;8253:144;8237:4;8232:3;8228:14;8221:21;;8177:220;;;8181:21;7795:608;;7693:710;;;;;:::o;8426:370::-;8497:5;8546:3;8539:4;8531:6;8527:17;8523:27;8513:122;;8554:79;;:::i;:::-;8513:122;8671:6;8658:20;8696:94;8786:3;8778:6;8771:4;8763:6;8759:17;8696:94;:::i;:::-;8687:103;;8503:293;8426:370;;;;:::o;8802:539::-;8886:6;8935:2;8923:9;8914:7;8910:23;8906:32;8903:119;;;8941:79;;:::i;:::-;8903:119;9089:1;9078:9;9074:17;9061:31;9119:18;9111:6;9108:30;9105:117;;;9141:79;;:::i;:::-;9105:117;9246:78;9316:7;9307:6;9296:9;9292:22;9246:78;:::i;:::-;9236:88;;9032:302;8802:539;;;;:::o;9347:474::-;9415:6;9423;9472:2;9460:9;9451:7;9447:23;9443:32;9440:119;;;9478:79;;:::i;:::-;9440:119;9598:1;9623:53;9668:7;9659:6;9648:9;9644:22;9623:53;:::i;:::-;9613:63;;9569:117;9725:2;9751:53;9796:7;9787:6;9776:9;9772:22;9751:53;:::i;:::-;9741:63;;9696:118;9347:474;;;;;:::o;9827:143::-;9884:5;9915:6;9909:13;9900:22;;9931:33;9958:5;9931:33;:::i;:::-;9827:143;;;;:::o;9976:351::-;10046:6;10095:2;10083:9;10074:7;10070:23;10066:32;10063:119;;;10101:79;;:::i;:::-;10063:119;10221:1;10246:64;10302:7;10293:6;10282:9;10278:22;10246:64;:::i;:::-;10236:74;;10192:128;9976:351;;;;:::o;10333:60::-;10361:3;10382:5;10375:12;;10333:60;;;:::o;10399:142::-;10449:9;10482:53;10500:34;10509:24;10527:5;10509:24;:::i;:::-;10500:34;:::i;:::-;10482:53;:::i;:::-;10469:66;;10399:142;;;:::o;10547:126::-;10597:9;10630:37;10661:5;10630:37;:::i;:::-;10617:50;;10547:126;;;:::o;10679:134::-;10737:9;10770:37;10801:5;10770:37;:::i;:::-;10757:50;;10679:134;;;:::o;10819:147::-;10914:45;10953:5;10914:45;:::i;:::-;10909:3;10902:58;10819:147;;:::o;10972:348::-;11101:4;11139:2;11128:9;11124:18;11116:26;;11152:79;11228:1;11217:9;11213:17;11204:6;11152:79;:::i;:::-;11241:72;11309:2;11298:9;11294:18;11285:6;11241:72;:::i;:::-;10972:348;;;;;:::o;11326:116::-;11396:21;11411:5;11396:21;:::i;:::-;11389:5;11386:32;11376:60;;11432:1;11429;11422:12;11376:60;11326:116;:::o;11448:137::-;11502:5;11533:6;11527:13;11518:22;;11549:30;11573:5;11549:30;:::i;:::-;11448:137;;;;:::o;11591:345::-;11658:6;11707:2;11695:9;11686:7;11682:23;11678:32;11675:119;;;11713:79;;:::i;:::-;11675:119;11833:1;11858:61;11911:7;11902:6;11891:9;11887:22;11858:61;:::i;:::-;11848:71;;11804:125;11591:345;;;;:::o;11942:182::-;12082:34;12078:1;12070:6;12066:14;12059:58;11942:182;:::o;12130:366::-;12272:3;12293:67;12357:2;12352:3;12293:67;:::i;:::-;12286:74;;12369:93;12458:3;12369:93;:::i;:::-;12487:2;12482:3;12478:12;12471:19;;12130:366;;;:::o;12502:419::-;12668:4;12706:2;12695:9;12691:18;12683:26;;12755:9;12749:4;12745:20;12741:1;12730:9;12726:17;12719:47;12783:131;12909:4;12783:131;:::i;:::-;12775:139;;12502:419;;;:::o;12927:179::-;13067:31;13063:1;13055:6;13051:14;13044:55;12927:179;:::o;13112:366::-;13254:3;13275:67;13339:2;13334:3;13275:67;:::i;:::-;13268:74;;13351:93;13440:3;13351:93;:::i;:::-;13469:2;13464:3;13460:12;13453:19;;13112:366;;;:::o;13484:419::-;13650:4;13688:2;13677:9;13673:18;13665:26;;13737:9;13731:4;13727:20;13723:1;13712:9;13708:17;13701:47;13765:131;13891:4;13765:131;:::i;:::-;13757:139;;13484:419;;;:::o;13909:180::-;13957:77;13954:1;13947:88;14054:4;14051:1;14044:15;14078:4;14075:1;14068:15;14095:173;14235:25;14231:1;14223:6;14219:14;14212:49;14095:173;:::o;14274:366::-;14416:3;14437:67;14501:2;14496:3;14437:67;:::i;:::-;14430:74;;14513:93;14602:3;14513:93;:::i;:::-;14631:2;14626:3;14622:12;14615:19;;14274:366;;;:::o;14646:419::-;14812:4;14850:2;14839:9;14835:18;14827:26;;14899:9;14893:4;14889:20;14885:1;14874:9;14870:17;14863:47;14927:131;15053:4;14927:131;:::i;:::-;14919:139;;14646:419;;;:::o;15071:180::-;15119:77;15116:1;15109:88;15216:4;15213:1;15206:15;15240:4;15237:1;15230:15;15257:191;15297:3;15316:20;15334:1;15316:20;:::i;:::-;15311:25;;15350:20;15368:1;15350:20;:::i;:::-;15345:25;;15393:1;15390;15386:9;15379:16;;15414:3;15411:1;15408:10;15405:36;;;15421:18;;:::i;:::-;15405:36;15257:191;;;;:::o;15454:223::-;15594:34;15590:1;15582:6;15578:14;15571:58;15663:6;15658:2;15650:6;15646:15;15639:31;15454:223;:::o;15683:366::-;15825:3;15846:67;15910:2;15905:3;15846:67;:::i;:::-;15839:74;;15922:93;16011:3;15922:93;:::i;:::-;16040:2;16035:3;16031:12;16024:19;;15683:366;;;:::o;16055:419::-;16221:4;16259:2;16248:9;16244:18;16236:26;;16308:9;16302:4;16298:20;16294:1;16283:9;16279:17;16272:47;16336:131;16462:4;16336:131;:::i;:::-;16328:139;;16055:419;;;:::o;16480:221::-;16620:34;16616:1;16608:6;16604:14;16597:58;16689:4;16684:2;16676:6;16672:15;16665:29;16480:221;:::o;16707:366::-;16849:3;16870:67;16934:2;16929:3;16870:67;:::i;:::-;16863:74;;16946:93;17035:3;16946:93;:::i;:::-;17064:2;17059:3;17055:12;17048:19;;16707:366;;;:::o;17079:419::-;17245:4;17283:2;17272:9;17268:18;17260:26;;17332:9;17326:4;17322:20;17318:1;17307:9;17303:17;17296:47;17360:131;17486:4;17360:131;:::i;:::-;17352:139;;17079:419;;;:::o;17504:224::-;17644:34;17640:1;17632:6;17628:14;17621:58;17713:7;17708:2;17700:6;17696:15;17689:32;17504:224;:::o;17734:366::-;17876:3;17897:67;17961:2;17956:3;17897:67;:::i;:::-;17890:74;;17973:93;18062:3;17973:93;:::i;:::-;18091:2;18086:3;18082:12;18075:19;;17734:366;;;:::o;18106:419::-;18272:4;18310:2;18299:9;18295:18;18287:26;;18359:9;18353:4;18349:20;18345:1;18334:9;18330:17;18323:47;18387:131;18513:4;18387:131;:::i;:::-;18379:139;;18106:419;;;:::o;18531:222::-;18671:34;18667:1;18659:6;18655:14;18648:58;18740:5;18735:2;18727:6;18723:15;18716:30;18531:222;:::o;18759:366::-;18901:3;18922:67;18986:2;18981:3;18922:67;:::i;:::-;18915:74;;18998:93;19087:3;18998:93;:::i;:::-;19116:2;19111:3;19107:12;19100:19;;18759:366;;;:::o;19131:419::-;19297:4;19335:2;19324:9;19320:18;19312:26;;19384:9;19378:4;19374:20;19370:1;19359:9;19355:17;19348:47;19412:131;19538:4;19412:131;:::i;:::-;19404:139;;19131:419;;;:::o;19556:228::-;19696:34;19692:1;19684:6;19680:14;19673:58;19765:11;19760:2;19752:6;19748:15;19741:36;19556:228;:::o;19790:366::-;19932:3;19953:67;20017:2;20012:3;19953:67;:::i;:::-;19946:74;;20029:93;20118:3;20029:93;:::i;:::-;20147:2;20142:3;20138:12;20131:19;;19790:366;;;:::o;20162:419::-;20328:4;20366:2;20355:9;20351:18;20343:26;;20415:9;20409:4;20405:20;20401:1;20390:9;20386:17;20379:47;20443:131;20569:4;20443:131;:::i;:::-;20435:139;;20162:419;;;:::o;20587:194::-;20627:4;20647:20;20665:1;20647:20;:::i;:::-;20642:25;;20681:20;20699:1;20681:20;:::i;:::-;20676:25;;20725:1;20722;20718:9;20710:17;;20749:1;20743:4;20740:11;20737:37;;;20754:18;;:::i;:::-;20737:37;20587:194;;;;:::o;20787:143::-;20844:5;20875:6;20869:13;20860:22;;20891:33;20918:5;20891:33;:::i;:::-;20787:143;;;;:::o;20936:351::-;21006:6;21055:2;21043:9;21034:7;21030:23;21026:32;21023:119;;;21061:79;;:::i;:::-;21023:119;21181:1;21206:64;21262:7;21253:6;21242:9;21238:22;21206:64;:::i;:::-;21196:74;;21152:128;20936:351;;;;:::o;21293:85::-;21338:7;21367:5;21356:16;;21293:85;;;:::o;21384:158::-;21442:9;21475:61;21493:42;21502:32;21528:5;21502:32;:::i;:::-;21493:42;:::i;:::-;21475:61;:::i;:::-;21462:74;;21384:158;;;:::o;21548:147::-;21643:45;21682:5;21643:45;:::i;:::-;21638:3;21631:58;21548:147;;:::o;21701:114::-;21768:6;21802:5;21796:12;21786:22;;21701:114;;;:::o;21821:184::-;21920:11;21954:6;21949:3;21942:19;21994:4;21989:3;21985:14;21970:29;;21821:184;;;;:::o;22011:132::-;22078:4;22101:3;22093:11;;22131:4;22126:3;22122:14;22114:22;;22011:132;;;:::o;22149:108::-;22226:24;22244:5;22226:24;:::i;:::-;22221:3;22214:37;22149:108;;:::o;22263:179::-;22332:10;22353:46;22395:3;22387:6;22353:46;:::i;:::-;22431:4;22426:3;22422:14;22408:28;;22263:179;;;;:::o;22448:113::-;22518:4;22550;22545:3;22541:14;22533:22;;22448:113;;;:::o;22597:732::-;22716:3;22745:54;22793:5;22745:54;:::i;:::-;22815:86;22894:6;22889:3;22815:86;:::i;:::-;22808:93;;22925:56;22975:5;22925:56;:::i;:::-;23004:7;23035:1;23020:284;23045:6;23042:1;23039:13;23020:284;;;23121:6;23115:13;23148:63;23207:3;23192:13;23148:63;:::i;:::-;23141:70;;23234:60;23287:6;23234:60;:::i;:::-;23224:70;;23080:224;23067:1;23064;23060:9;23055:14;;23020:284;;;23024:14;23320:3;23313:10;;22721:608;;;22597:732;;;;:::o;23335:831::-;23598:4;23636:3;23625:9;23621:19;23613:27;;23650:71;23718:1;23707:9;23703:17;23694:6;23650:71;:::i;:::-;23731:80;23807:2;23796:9;23792:18;23783:6;23731:80;:::i;:::-;23858:9;23852:4;23848:20;23843:2;23832:9;23828:18;23821:48;23886:108;23989:4;23980:6;23886:108;:::i;:::-;23878:116;;24004:72;24072:2;24061:9;24057:18;24048:6;24004:72;:::i;:::-;24086:73;24154:3;24143:9;24139:19;24130:6;24086:73;:::i;:::-;23335:831;;;;;;;;:::o;24172:807::-;24421:4;24459:3;24448:9;24444:19;24436:27;;24473:71;24541:1;24530:9;24526:17;24517:6;24473:71;:::i;:::-;24554:72;24622:2;24611:9;24607:18;24598:6;24554:72;:::i;:::-;24636:80;24712:2;24701:9;24697:18;24688:6;24636:80;:::i;:::-;24726;24802:2;24791:9;24787:18;24778:6;24726:80;:::i;:::-;24816:73;24884:3;24873:9;24869:19;24860:6;24816:73;:::i;:::-;24899;24967:3;24956:9;24952:19;24943:6;24899:73;:::i;:::-;24172:807;;;;;;;;;:::o;24985:663::-;25073:6;25081;25089;25138:2;25126:9;25117:7;25113:23;25109:32;25106:119;;;25144:79;;:::i;:::-;25106:119;25264:1;25289:64;25345:7;25336:6;25325:9;25321:22;25289:64;:::i;:::-;25279:74;;25235:128;25402:2;25428:64;25484:7;25475:6;25464:9;25460:22;25428:64;:::i;:::-;25418:74;;25373:129;25541:2;25567:64;25623:7;25614:6;25603:9;25599:22;25567:64;:::i;:::-;25557:74;;25512:129;24985:663;;;;;:::o;25654:177::-;25794:29;25790:1;25782:6;25778:14;25771:53;25654:177;:::o;25837:366::-;25979:3;26000:67;26064:2;26059:3;26000:67;:::i;:::-;25993:74;;26076:93;26165:3;26076:93;:::i;:::-;26194:2;26189:3;26185:12;26178:19;;25837:366;;;:::o;26209:419::-;26375:4;26413:2;26402:9;26398:18;26390:26;;26462:9;26456:4;26452:20;26448:1;26437:9;26433:17;26426:47;26490:131;26616:4;26490:131;:::i;:::-;26482:139;;26209:419;;;:::o;26634:180::-;26682:77;26679:1;26672:88;26779:4;26776:1;26769:15;26803:4;26800:1;26793:15;26820:185;26860:1;26877:20;26895:1;26877:20;:::i;:::-;26872:25;;26911:20;26929:1;26911:20;:::i;:::-;26906:25;;26950:1;26940:35;;26955:18;;:::i;:::-;26940:35;26997:1;26994;26990:9;26985:14;;26820:185;;;;:::o;27011:410::-;27051:7;27074:20;27092:1;27074:20;:::i;:::-;27069:25;;27108:20;27126:1;27108:20;:::i;:::-;27103:25;;27163:1;27160;27156:9;27185:30;27203:11;27185:30;:::i;:::-;27174:41;;27364:1;27355:7;27351:15;27348:1;27345:22;27325:1;27318:9;27298:83;27275:139;;27394:18;;:::i;:::-;27275:139;27059:362;27011:410;;;;:::o;27427:220::-;27567:34;27563:1;27555:6;27551:14;27544:58;27636:3;27631:2;27623:6;27619:15;27612:28;27427:220;:::o;27653:366::-;27795:3;27816:67;27880:2;27875:3;27816:67;:::i;:::-;27809:74;;27892:93;27981:3;27892:93;:::i;:::-;28010:2;28005:3;28001:12;27994:19;;27653:366;;;:::o;28025:419::-;28191:4;28229:2;28218:9;28214:18;28206:26;;28278:9;28272:4;28268:20;28264:1;28253:9;28249:17;28242:47;28306:131;28432:4;28306:131;:::i;:::-;28298:139;;28025:419;;;:::o

Swarm Source

ipfs://62ea4798b073cea6df4325e16d734795f458a80919d3b20613259d2ecbd6a5b9

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.