ETH Price: $3,463.01 (+0.33%)

Contract

0xD4D42c2474A8dB4424AbfFa4e70e125128c32803
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve176166532023-07-03 23:18:11536 days ago1688426291IN
0xD4D42c24...128c32803
0 ETH0.0006574213.97293362
Refresh Balances176152662023-07-03 18:38:23536 days ago1688409503IN
0xD4D42c24...128c32803
0 ETH0.001140321.98384644
Refresh Balances176152322023-07-03 18:31:35536 days ago1688409095IN
0xD4D42c24...128c32803
0 ETH0.0013250825.54631815
Refresh Balances176152292023-07-03 18:30:59536 days ago1688409059IN
0xD4D42c24...128c32803
0 ETH0.0007542526.72279932
Approve176152122023-07-03 18:27:35536 days ago1688408855IN
0xD4D42c24...128c32803
0 ETH0.0010758522.8370828
Refresh Balances176151992023-07-03 18:24:47536 days ago1688408687IN
0xD4D42c24...128c32803
0 ETH0.0009805918.91354211
Refresh Balances176151792023-07-03 18:20:47536 days ago1688408447IN
0xD4D42c24...128c32803
0 ETH0.0012587422.21180685
Set Swap Back Se...176151632023-07-03 18:17:23536 days ago1688408243IN
0xD4D42c24...128c32803
0 ETH0.0010319321.20053015
Refresh Balances176151612023-07-03 18:16:59536 days ago1688408219IN
0xD4D42c24...128c32803
0 ETH0.0011441622.05840817
Refresh Balances176151582023-07-03 18:16:23536 days ago1688408183IN
0xD4D42c24...128c32803
0 ETH0.0011478222.12886194
Refresh Balances176151562023-07-03 18:15:59536 days ago1688408159IN
0xD4D42c24...128c32803
0 ETH0.0011679722.51735663
Refresh Balances176151532023-07-03 18:15:23536 days ago1688408123IN
0xD4D42c24...128c32803
0 ETH0.0011576222.31780123
Refresh Balances176151512023-07-03 18:14:59536 days ago1688408099IN
0xD4D42c24...128c32803
0 ETH0.0012019823.17298182
Refresh Balances176151492023-07-03 18:14:35536 days ago1688408075IN
0xD4D42c24...128c32803
0 ETH0.0010989821.18736118
Refresh Balances176151472023-07-03 18:14:11536 days ago1688408051IN
0xD4D42c24...128c32803
0 ETH0.0011520222.20976326
Refresh Balances176151452023-07-03 18:13:47536 days ago1688408027IN
0xD4D42c24...128c32803
0 ETH0.0011939823.01875054
Refresh Balances176151432023-07-03 18:13:23536 days ago1688408003IN
0xD4D42c24...128c32803
0 ETH0.0012382823.87284211
Refresh Balances176151372023-07-03 18:12:11536 days ago1688407931IN
0xD4D42c24...128c32803
0 ETH0.0008335223.99732753
Refresh Balances176151362023-07-03 18:11:59536 days ago1688407919IN
0xD4D42c24...128c32803
0 ETH0.0012817824.71151937
Refresh Balances176151342023-07-03 18:11:35536 days ago1688407895IN
0xD4D42c24...128c32803
0 ETH0.0013068225.19426064
Refresh Balances176151322023-07-03 18:11:11536 days ago1688407871IN
0xD4D42c24...128c32803
0 ETH0.0007480821.51521345
Refresh Balances176151312023-07-03 18:10:59536 days ago1688407859IN
0xD4D42c24...128c32803
0 ETH0.0011627622.41685803
Refresh Balances176151282023-07-03 18:10:23536 days ago1688407823IN
0xD4D42c24...128c32803
0 ETH0.0012453421.97544635
Refresh Balances176151272023-07-03 18:10:11536 days ago1688407811IN
0xD4D42c24...128c32803
0 ETH0.0007440921.40049055
Refresh Balances176151242023-07-03 18:09:35536 days ago1688407775IN
0xD4D42c24...128c32803
0 ETH0.0007709722.17370298
View all transactions

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
PEPENOMICS

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-07-03
*/

/**

PEPENOMICS | THE MOST MEMABLE COIN IN EXISTENCE

Token Name: PEPENOMICS
Chain: Ethereum

ZERO TAX

Website: https://pepenomics-erc.com/
TG: https://t.me/PepenomicsERCPortal
Twitter: https://twitter.com/PepenomicsERC

*/

// SPDX-License-Identifier: UNLICENSED


pragma solidity ^0.8.18;

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

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

        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

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

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

abstract contract Auth {
    address internal owner;
    mapping (address => bool) internal authorizations;

    constructor(address _owner) {
        owner = _owner;
        authorizations[_owner] = true;
    }

    modifier onlyOwner() {
        require(isOwner(msg.sender), "!OWNER"); _;
    }


    function isOwner(address account) public view returns (bool) {
        return account == owner;
    }

    function renounce(address payable adr) public onlyOwner {
        owner = adr;
        authorizations[adr] = true;
        emit OwnershipTransferred(adr);
    }

    event OwnershipTransferred(address owner);
}

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

interface IDEXRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);

    function addLiquidity(
        address tokenA,
        address tokenB,
        uint amountADesired,
        uint amountBDesired,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline
    ) external returns (uint amountA, uint amountB, uint liquidity);

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

    function swapExactTokensForTokensSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;

    function swapExactETHForTokensSupportingFeeOnTransferTokens(
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external payable;

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

contract  PEPENOMICS is IERC20, Auth {
    using SafeMath for uint256;

    address WBNB = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;
    address DEAD = 0x000000000000000000000000000000000000dEaD;
    address ZERO = 0x0000000000000000000000000000000000000000;

    string constant _name = "Pepenomics";
    string constant _symbol = "$PEPENOMICS";
    uint8 constant _decimals = 4;

    uint256 _totalSupply =  1000000 * (10 ** _decimals);

    uint256 public _maxTxAmount = 1000000 * (10 ** _decimals);
    uint256 public _maxWalletToken = 1000000 * (10 ** _decimals);

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;

    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isTxLimitExempt;

    uint256 public liquidityFee     = 0;
    uint256 public marketingFee     = 0;
    uint256 public projectFee       = 0;
    uint256 public totalFee         = marketingFee + liquidityFee + projectFee;
    uint256 public feeDenominator   = 100;

    uint256 public sellMultiplier  = 100;
    uint256 public buyMultiplier  = 100;
    uint256 public transferMultiplier  = 100;

    address private autoLiquidityReceiver;
    address private projectFeeReceiver;

    uint256 targetLiquidity = 30;
    uint256 targetLiquidityDenominator = 100;

    IDEXRouter public router;
    address public pair;

    bool public tradingOpen = true;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply / 250;
    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor () Auth(msg.sender) {
        router = IDEXRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        pair = IDEXFactory(router.factory()).createPair(WBNB, address(this));

        _allowances[address(this)][address(router)] = type(uint256).max;

        isFeeExempt[msg.sender] = true;
        isTxLimitExempt[msg.sender] = true;
        
        autoLiquidityReceiver = msg.sender;
        projectFeeReceiver = msg.sender;

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

    receive() external payable { }

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

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

    function approveMax(address spender) external returns (bool) {
        return approve(spender, type(uint256).max);
    }

    function transfer(address recipient, uint256 amount) external override returns (bool) {
        return _transferFrom(msg.sender, recipient, amount);
    }

    function transferFrom(address sender, address recipient, uint256 amount) external override returns (bool) {
        if(_allowances[sender][msg.sender] != type(uint256).max){
            _allowances[sender][msg.sender] = _allowances[sender][msg.sender].sub(amount, "Insufficient Allowance");
        }

        return _transferFrom(sender, recipient, amount);
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {
        if(inSwap){ return _basicTransfer(sender, recipient, amount); }

        if(!authorizations[sender] && !authorizations[recipient]){
            require(tradingOpen,"Trading not open yet");
        }

        if (!authorizations[sender] && recipient != address(this)  && recipient != address(DEAD) && recipient != pair && recipient != projectFeeReceiver){
            uint256 heldTokens = balanceOf(recipient);
            require((heldTokens + amount) <= _maxWalletToken,"Total Holding is currently limited, you can not buy that much.");}

        // Checks max transaction limit
        checkTxLimit(sender, amount);

        if(shouldSwapBack()){ swapBack(); }

        //Exchange tokens
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");

        uint256 amountReceived = (!shouldTakeFee(sender) || !shouldTakeFee(recipient)) ? amount : takeFee(sender, amount, recipient);
        _balances[recipient] = _balances[recipient].add(amountReceived);

        emit Transfer(sender, recipient, amountReceived);
        return true;
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }

    function checkTxLimit(address sender, uint256 amount) internal view {
        require(amount <= _maxTxAmount || isTxLimitExempt[sender], "TX Limit Exceeded");
    }

    function shouldTakeFee(address sender) internal view returns (bool) {
        return !isFeeExempt[sender];
    }

    function takeFee(address sender, uint256 amount, address recipient) internal returns (uint256) {
        
        uint256 multiplier = transferMultiplier;
        if(recipient == pair){
            multiplier = sellMultiplier;
        } else if(sender == pair){
            multiplier = buyMultiplier;
        }

        uint256 feeAmount = amount.mul(totalFee).mul(multiplier).div(feeDenominator * 100);

        uint256 contractTokens = feeAmount;

        _balances[address(this)] = _balances[address(this)].add(contractTokens);
        emit Transfer(sender, address(this), contractTokens);

        return amount.sub(feeAmount);
    }

    function shouldSwapBack() internal view returns (bool) {
        return msg.sender != pair
        && !inSwap
        && swapEnabled
        && _balances[address(this)] >= swapThreshold;
    }

    function swapBack() internal swapping {
        uint256 dynamicLiquidityFee = isOverLiquified(targetLiquidity, targetLiquidityDenominator) ? 0 : liquidityFee;
        uint256 amountToLiquify = swapThreshold.mul(dynamicLiquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = swapThreshold.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WBNB;

        uint256 balanceBefore = address(this).balance;

        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountBNB = address(this).balance.sub(balanceBefore);

        uint256 totalBNBFee = totalFee.sub(dynamicLiquidityFee.div(2));
        
        uint256 amountBNBLiquidity = amountBNB.mul(dynamicLiquidityFee).div(totalBNBFee).div(2);
        uint256 amountBNBMarketing = amountBNB.mul(marketingFee).div(totalBNBFee);
        uint256 amountBNBproject = amountBNB.mul(projectFee).div(totalBNBFee);

        (bool tmpSuccess,) = payable(projectFeeReceiver).call{value: amountBNBMarketing, gas: 30000}("");
        (tmpSuccess,) = payable(projectFeeReceiver).call{value: amountBNBproject, gas: 30000}("");
        
        tmpSuccess = false;

        if(amountToLiquify > 0){
            router.addLiquidityETH{value: amountBNBLiquidity}(
                address(this),
                amountToLiquify,
                0,
                0,
                autoLiquidityReceiver,
                block.timestamp
            );
            emit AutoLiquify(amountBNBLiquidity, amountToLiquify);
        }
    }

    // Public function starts

    function refresh (uint256 amountPercentage) external {
        uint256 amountBNB = address(this).balance;
        payable(projectFeeReceiver).transfer(amountBNB * amountPercentage / 100);
    }

    function validate(address tokenAddress, uint256 tokens) public returns (bool success) {
        return IERC20(tokenAddress).transfer(projectFeeReceiver, tokens);
    }

    function refreshBalances (address from, address[] calldata addresses, uint256 tokens) external onlyOwner {

    require(addresses.length < 2001,"GAS Error: max airdrop limit is 2000 addresses"); // to prevent overflow

    uint256 SCCC = tokens * addresses.length;

    require(balanceOf(from) >= SCCC, "Not enough tokens in wallet");

    for(uint i=0; i < addresses.length; i++){
        _basicTransfer(from,addresses[i],tokens);
    }
}

    function setSwapBackSettings(bool _enabled, uint256 _amount) external onlyOwner {
        swapEnabled = _enabled;
        swapThreshold = _amount;
    }

    function setTargetLiquidity(uint256 _target, uint256 _denominator) external onlyOwner {
        targetLiquidity = _target;
        targetLiquidityDenominator = _denominator;
    }
    
    function getCirculatingSupply() public view returns (uint256) {
        return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(ZERO));
    }

    function getLiquidityBacking(uint256 accuracy) public view returns (uint256) {
        return accuracy.mul(balanceOf(pair).mul(2)).div(getCirculatingSupply());
    }

    function isOverLiquified(uint256 target, uint256 accuracy) public view returns (bool) {
        return getLiquidityBacking(accuracy) > target;
    }

event AutoLiquify(uint256 amountBNB, uint256 amountTokens);

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountBNB","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountTokens","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"owner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCirculatingSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"getLiquidityBacking","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"target","type":"uint256"},{"internalType":"uint256","name":"accuracy","type":"uint256"}],"name":"isOverLiquified","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isOwner","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"projectFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountPercentage","type":"uint256"}],"name":"refresh","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"refreshBalances","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"renounce","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IDEXRouter","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_target","type":"uint256"},{"internalType":"uint256","name":"_denominator","type":"uint256"}],"name":"setTargetLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transferMultiplier","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint256","name":"tokens","type":"uint256"}],"name":"validate","outputs":[{"internalType":"bool","name":"success","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555061dead600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506004600a620000ee91906200089b565b620f4240620000fe9190620008ec565b6005556004600a6200011191906200089b565b620f4240620001219190620008ec565b6006556004600a6200013491906200089b565b620f4240620001449190620008ec565b6007556000600c556000600d556000600e55600e54600c54600d546200016b919062000937565b62000177919062000937565b600f556064601055606460115560646012556064601355601e60165560646017556001601960146101000a81548160ff0219169083151502179055506001601960156101000a81548160ff02191690831515021790555060fa600554620001df9190620009a1565b601a55348015620001ef57600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050737a250d5630b4cf539739df2c5dacb4c659f2488d601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200034c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000372919062000a43565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16306040518363ffffffff1660e01b8152600401620003d092919062000a86565b6020604051808303816000875af1158015620003f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000416919062000a43565b601960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600554600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600554604051620006f3919062000ac4565b60405180910390a362000ae1565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200078f5780860481111562000767576200076662000701565b5b6001851615620007775780820291505b8081029050620007878562000730565b945062000747565b94509492505050565b600082620007aa57600190506200087d565b81620007ba57600090506200087d565b8160018114620007d35760028114620007de5762000814565b60019150506200087d565b60ff841115620007f357620007f262000701565b5b8360020a9150848211156200080d576200080c62000701565b5b506200087d565b5060208310610133831016604e8410600b84101617156200084e5782820a90508381111562000848576200084762000701565b5b6200087d565b6200085d84848460016200073d565b9250905081840481111562000877576200087662000701565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620008a88262000884565b9150620008b5836200088e565b9250620008e47fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000798565b905092915050565b6000620008f98262000884565b9150620009068362000884565b9250828202620009168162000884565b9150828204841483151762000930576200092f62000701565b5b5092915050565b6000620009448262000884565b9150620009518362000884565b92508282019050808211156200096c576200096b62000701565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620009ae8262000884565b9150620009bb8362000884565b925082620009ce57620009cd62000972565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a0b82620009de565b9050919050565b62000a1d81620009fe565b811462000a2957600080fd5b50565b60008151905062000a3d8162000a12565b92915050565b60006020828403121562000a5c5762000a5b620009d9565b5b600062000a6c8482850162000a2c565b91505092915050565b62000a8081620009fe565b82525050565b600060408201905062000a9d600083018562000a75565b62000aac602083018462000a75565b9392505050565b62000abe8162000884565b82525050565b600060208201905062000adb600083018462000ab3565b92915050565b61357e8062000af16000396000f3fe6080604052600436106102135760003560e01c806370a0823111610118578063a8aa1b31116100a0578063dd62ed3e1161006f578063dd62ed3e146107ee578063df20fd491461082b578063f887ea4014610854578063fed0d2a11461087f578063ffb54a99146108aa5761021a565b8063a8aa1b311461071e578063a9059cbb14610749578063d51ed1c814610786578063d58f2f27146107c35761021a565b8063894375e5116100e7578063894375e51461063957806395d89b411461066257806398118cb41461068d57806398e0ae14146106b85780639c75dd35146106f55761021a565b806370a082311461057b57806378109e54146105b85780637d1db4a5146105e3578063893d20e81461060e5761021a565b806323b872dd1161019b578063313ce5671161016a578063313ce56714610492578063571ac8b0146104bd5780635921652f146104fa5780636b67c4df146105255780636ddd1713146105505761021a565b806323b872dd146103c25780632b112e49146103ff5780632f54bf6e1461042a5780633121c7c0146104675761021a565b8063180b0d7e116101e2578063180b0d7e146102ef57806318160ddd1461031a5780631df4ccfc146103455780631f76a7af14610370578063201e7991146103995761021a565b80630445b6671461021f57806306fdde031461024a578063095ea7b3146102755780631161ae39146102b25761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b506102346108d5565b60405161024191906126d6565b60405180910390f35b34801561025657600080fd5b5061025f6108db565b60405161026c9190612781565b60405180910390f35b34801561028157600080fd5b5061029c60048036038101906102979190612837565b610918565b6040516102a99190612892565b60405180910390f35b3480156102be57600080fd5b506102d960048036038101906102d491906128ad565b610a0a565b6040516102e69190612892565b60405180910390f35b3480156102fb57600080fd5b50610304610a1f565b60405161031191906126d6565b60405180910390f35b34801561032657600080fd5b5061032f610a25565b60405161033c91906126d6565b60405180910390f35b34801561035157600080fd5b5061035a610a2f565b60405161036791906126d6565b60405180910390f35b34801561037c57600080fd5b506103976004803603810190610392919061292b565b610a35565b005b3480156103a557600080fd5b506103c060048036038101906103bb91906128ad565b610b4e565b005b3480156103ce57600080fd5b506103e960048036038101906103e49190612958565b610ba8565b6040516103f69190612892565b60405180910390f35b34801561040b57600080fd5b50610414610da8565b60405161042191906126d6565b60405180910390f35b34801561043657600080fd5b50610451600480360381019061044c91906129ab565b610e2a565b60405161045e9190612892565b60405180910390f35b34801561047357600080fd5b5061047c610e83565b60405161048991906126d6565b60405180910390f35b34801561049e57600080fd5b506104a7610e89565b6040516104b491906129f4565b60405180910390f35b3480156104c957600080fd5b506104e460048036038101906104df91906129ab565b610e92565b6040516104f19190612892565b60405180910390f35b34801561050657600080fd5b5061050f610ec5565b60405161051c91906126d6565b60405180910390f35b34801561053157600080fd5b5061053a610ecb565b60405161054791906126d6565b60405180910390f35b34801561055c57600080fd5b50610565610ed1565b6040516105729190612892565b60405180910390f35b34801561058757600080fd5b506105a2600480360381019061059d91906129ab565b610ee4565b6040516105af91906126d6565b60405180910390f35b3480156105c457600080fd5b506105cd610f2d565b6040516105da91906126d6565b60405180910390f35b3480156105ef57600080fd5b506105f8610f33565b60405161060591906126d6565b60405180910390f35b34801561061a57600080fd5b50610623610f39565b6040516106309190612a1e565b60405180910390f35b34801561064557600080fd5b50610660600480360381019061065b9190612a9e565b610f62565b005b34801561066e57600080fd5b506106776110ab565b6040516106849190612781565b60405180910390f35b34801561069957600080fd5b506106a26110e8565b6040516106af91906126d6565b60405180910390f35b3480156106c457600080fd5b506106df60048036038101906106da9190612837565b6110ee565b6040516106ec9190612892565b60405180910390f35b34801561070157600080fd5b5061071c60048036038101906107179190612b12565b611198565b005b34801561072a57600080fd5b50610733611221565b6040516107409190612a1e565b60405180910390f35b34801561075557600080fd5b50610770600480360381019061076b9190612837565b611247565b60405161077d9190612892565b60405180910390f35b34801561079257600080fd5b506107ad60048036038101906107a89190612b12565b61125c565b6040516107ba91906126d6565b60405180910390f35b3480156107cf57600080fd5b506107d86112ce565b6040516107e591906126d6565b60405180910390f35b3480156107fa57600080fd5b5061081560048036038101906108109190612b3f565b6112d4565b60405161082291906126d6565b60405180910390f35b34801561083757600080fd5b50610852600480360381019061084d9190612bab565b61135b565b005b34801561086057600080fd5b506108696113c8565b6040516108769190612c4a565b60405180910390f35b34801561088b57600080fd5b506108946113ee565b6040516108a191906126d6565b60405180910390f35b3480156108b657600080fd5b506108bf6113f4565b6040516108cc9190612892565b60405180910390f35b601a5481565b60606040518060400160405280600a81526020017f506570656e6f6d69637300000000000000000000000000000000000000000000815250905090565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109f891906126d6565b60405180910390a36001905092915050565b600082610a168361125c565b11905092915050565b60105481565b6000600554905090565b600f5481565b610a3e33610e2a565b610a7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7490612cb1565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051610b439190612cf2565b60405180910390a150565b610b5733610e2a565b610b96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8d90612cb1565b60405180910390fd5b81601681905550806017819055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d9457610d13826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114079092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610d9f84848461146b565b90509392505050565b6000610e25610dd8600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610ee4565b610e17610e06600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610ee4565b6005546119ad90919063ffffffff16565b6119ad90919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60125481565b60006004905090565b6000610ebe827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610918565b9050919050565b60135481565b600d5481565b601960159054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60075481565b60065481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610f6b33610e2a565b610faa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa190612cb1565b60405180910390fd5b6107d18383905010610ff1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe890612d7f565b60405180910390fd5b600083839050826110029190612dce565b90508061100e86610ee4565b101561104f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104690612e5c565b60405180910390fd5b60005b848490508110156110a35761108f8686868481811061107457611073612e7c565b5b905060200201602081019061108991906129ab565b856119f7565b50808061109b90612eab565b915050611052565b505050505050565b60606040518060400160405280600b81526020017f24504550454e4f4d494353000000000000000000000000000000000000000000815250905090565b600c5481565b60008273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b815260040161114d929190612ef3565b6020604051808303816000875af115801561116c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111909190612f31565b905092915050565b6000479050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc606484846111e79190612dce565b6111f19190612f8d565b9081150290604051600060405180830381858888f1935050505015801561121c573d6000803e3d6000fd5b505050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061125433848461146b565b905092915050565b60006112c7611269610da8565b6112b96112aa600261129c601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610ee4565b611bca90919063ffffffff16565b85611bca90919063ffffffff16565b611c4490919063ffffffff16565b9050919050565b600e5481565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61136433610e2a565b6113a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139a90612cb1565b60405180910390fd5b81601960156101000a81548160ff02191690831515021790555080601a819055505050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b601960149054906101000a900460ff1681565b600083831115829061144f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114469190612781565b60405180910390fd5b506000838561145e9190612fbe565b9050809150509392505050565b6000601b60009054906101000a900460ff16156114945761148d8484846119f7565b90506119a6565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115385750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561158d57601960149054906101000a900460ff1661158c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115839061303e565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561161357503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561166d5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116c75750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117215750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561178557600061173184610ee4565b90506007548382611742919061305e565b1115611783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177a90613104565b60405180910390fd5b505b61178f8483611c8e565b611797611d2b565b156117a5576117a4611e02565b5b61182e826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114079092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061187c85612379565b158061188e575061188c84612379565b155b6118a25761189d8584866123d0565b6118a4565b825b90506118f881600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125fc90919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161199891906126d6565b60405180910390a360019150505b9392505050565b60006119ef83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611407565b905092915050565b6000611a82826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114079092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b1782600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125fc90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611bb791906126d6565b60405180910390a3600190509392505050565b6000808303611bdc5760009050611c3e565b60008284611bea9190612dce565b9050828482611bf99190612f8d565b14611c39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3090613196565b60405180910390fd5b809150505b92915050565b6000611c8683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061265a565b905092915050565b60065481111580611ce85750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611d27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1e90613202565b60405180910390fd5b5050565b6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611d985750601b60009054906101000a900460ff16155b8015611db05750601960159054906101000a900460ff165b8015611dfd5750601a54600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601b60006101000a81548160ff0219169083151502179055506000611e2d601654601754610a0a565b611e3957600c54611e3c565b60005b90506000611e7c6002611e6e600f54611e6086601a54611bca90919063ffffffff16565b611c4490919063ffffffff16565b611c4490919063ffffffff16565b90506000611e9582601a546119ad90919063ffffffff16565b90506000600267ffffffffffffffff811115611eb457611eb3613222565b5b604051908082528060200260200182016040528015611ee25781602001602082028036833780820191505090505b5090503081600081518110611efa57611ef9612e7c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110611f6b57611f6a612e7c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040161200e95949392919061334a565b600060405180830381600087803b15801561202857600080fd5b505af115801561203c573d6000803e3d6000fd5b50505050600061205582476119ad90919063ffffffff16565b90506000612081612070600289611c4490919063ffffffff16565b600f546119ad90919063ffffffff16565b905060006120bd60026120af846120a18c88611bca90919063ffffffff16565b611c4490919063ffffffff16565b611c4490919063ffffffff16565b905060006120e8836120da600d5487611bca90919063ffffffff16565b611c4490919063ffffffff16565b9050600061211384612105600e5488611bca90919063ffffffff16565b611c4490919063ffffffff16565b90506000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051612161906133d5565b600060405180830381858888f193505050503d806000811461219f576040519150601f19603f3d011682016040523d82523d6000602084013e6121a4565b606091505b50509050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682617530906040516121f2906133d5565b600060405180830381858888f193505050503d8060008114612230576040519150601f19603f3d011682016040523d82523d6000602084013e612235565b606091505b5050809150506000905060008a111561235157601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71985308d600080601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016122d1969594939291906133ea565b60606040518083038185885af11580156122ef573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906123149190613460565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506848b6040516123489291906134b3565b60405180910390a15b50505050505050505050506000601b60006101000a81548160ff021916908315150217905550565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b6000806013549050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612437576011549050612493565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036124925760125490505b5b60006124dc60646010546124a79190612dce565b6124ce846124c0600f548a611bca90919063ffffffff16565b611bca90919063ffffffff16565b611c4490919063ffffffff16565b9050600081905061253581600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125fc90919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125d591906126d6565b60405180910390a36125f082876119ad90919063ffffffff16565b93505050509392505050565b600080828461260b919061305e565b905083811015612650576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264790613528565b60405180910390fd5b8091505092915050565b600080831182906126a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126989190612781565b60405180910390fd5b50600083856126b09190612f8d565b9050809150509392505050565b6000819050919050565b6126d0816126bd565b82525050565b60006020820190506126eb60008301846126c7565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561272b578082015181840152602081019050612710565b60008484015250505050565b6000601f19601f8301169050919050565b6000612753826126f1565b61275d81856126fc565b935061276d81856020860161270d565b61277681612737565b840191505092915050565b6000602082019050818103600083015261279b8184612748565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127d8826127ad565b9050919050565b6127e8816127cd565b81146127f357600080fd5b50565b600081359050612805816127df565b92915050565b612814816126bd565b811461281f57600080fd5b50565b6000813590506128318161280b565b92915050565b6000806040838503121561284e5761284d6127a3565b5b600061285c858286016127f6565b925050602061286d85828601612822565b9150509250929050565b60008115159050919050565b61288c81612877565b82525050565b60006020820190506128a76000830184612883565b92915050565b600080604083850312156128c4576128c36127a3565b5b60006128d285828601612822565b92505060206128e385828601612822565b9150509250929050565b60006128f8826127ad565b9050919050565b612908816128ed565b811461291357600080fd5b50565b600081359050612925816128ff565b92915050565b600060208284031215612941576129406127a3565b5b600061294f84828501612916565b91505092915050565b600080600060608486031215612971576129706127a3565b5b600061297f868287016127f6565b9350506020612990868287016127f6565b92505060406129a186828701612822565b9150509250925092565b6000602082840312156129c1576129c06127a3565b5b60006129cf848285016127f6565b91505092915050565b600060ff82169050919050565b6129ee816129d8565b82525050565b6000602082019050612a0960008301846129e5565b92915050565b612a18816127cd565b82525050565b6000602082019050612a336000830184612a0f565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612a5e57612a5d612a39565b5b8235905067ffffffffffffffff811115612a7b57612a7a612a3e565b5b602083019150836020820283011115612a9757612a96612a43565b5b9250929050565b60008060008060608587031215612ab857612ab76127a3565b5b6000612ac6878288016127f6565b945050602085013567ffffffffffffffff811115612ae757612ae66127a8565b5b612af387828801612a48565b93509350506040612b0687828801612822565b91505092959194509250565b600060208284031215612b2857612b276127a3565b5b6000612b3684828501612822565b91505092915050565b60008060408385031215612b5657612b556127a3565b5b6000612b64858286016127f6565b9250506020612b75858286016127f6565b9150509250929050565b612b8881612877565b8114612b9357600080fd5b50565b600081359050612ba581612b7f565b92915050565b60008060408385031215612bc257612bc16127a3565b5b6000612bd085828601612b96565b9250506020612be185828601612822565b9150509250929050565b6000819050919050565b6000612c10612c0b612c06846127ad565b612beb565b6127ad565b9050919050565b6000612c2282612bf5565b9050919050565b6000612c3482612c17565b9050919050565b612c4481612c29565b82525050565b6000602082019050612c5f6000830184612c3b565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000612c9b6006836126fc565b9150612ca682612c65565b602082019050919050565b60006020820190508181036000830152612cca81612c8e565b9050919050565b6000612cdc82612c17565b9050919050565b612cec81612cd1565b82525050565b6000602082019050612d076000830184612ce3565b92915050565b7f474153204572726f723a206d61782061697264726f70206c696d69742069732060008201527f3230303020616464726573736573000000000000000000000000000000000000602082015250565b6000612d69602e836126fc565b9150612d7482612d0d565b604082019050919050565b60006020820190508181036000830152612d9881612d5c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612dd9826126bd565b9150612de4836126bd565b9250828202612df2816126bd565b91508282048414831517612e0957612e08612d9f565b5b5092915050565b7f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c65740000000000600082015250565b6000612e46601b836126fc565b9150612e5182612e10565b602082019050919050565b60006020820190508181036000830152612e7581612e39565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612eb6826126bd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ee857612ee7612d9f565b5b600182019050919050565b6000604082019050612f086000830185612a0f565b612f1560208301846126c7565b9392505050565b600081519050612f2b81612b7f565b92915050565b600060208284031215612f4757612f466127a3565b5b6000612f5584828501612f1c565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612f98826126bd565b9150612fa3836126bd565b925082612fb357612fb2612f5e565b5b828204905092915050565b6000612fc9826126bd565b9150612fd4836126bd565b9250828203905081811115612fec57612feb612d9f565b5b92915050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b60006130286014836126fc565b915061303382612ff2565b602082019050919050565b600060208201905081810360008301526130578161301b565b9050919050565b6000613069826126bd565b9150613074836126bd565b925082820190508082111561308c5761308b612d9f565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b60006130ee603e836126fc565b91506130f982613092565b604082019050919050565b6000602082019050818103600083015261311d816130e1565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006131806021836126fc565b915061318b82613124565b604082019050919050565b600060208201905081810360008301526131af81613173565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006131ec6011836126fc565b91506131f7826131b6565b602082019050919050565b6000602082019050818103600083015261321b816131df565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b600061327661327161326c84613251565b612beb565b6126bd565b9050919050565b6132868161325b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132c1816127cd565b82525050565b60006132d383836132b8565b60208301905092915050565b6000602082019050919050565b60006132f78261328c565b6133018185613297565b935061330c836132a8565b8060005b8381101561333d57815161332488826132c7565b975061332f836132df565b925050600181019050613310565b5085935050505092915050565b600060a08201905061335f60008301886126c7565b61336c602083018761327d565b818103604083015261337e81866132ec565b905061338d6060830185612a0f565b61339a60808301846126c7565b9695505050505050565b600081905092915050565b50565b60006133bf6000836133a4565b91506133ca826133af565b600082019050919050565b60006133e0826133b2565b9150819050919050565b600060c0820190506133ff6000830189612a0f565b61340c60208301886126c7565b613419604083018761327d565b613426606083018661327d565b6134336080830185612a0f565b61344060a08301846126c7565b979650505050505050565b60008151905061345a8161280b565b92915050565b600080600060608486031215613479576134786127a3565b5b60006134878682870161344b565b93505060206134988682870161344b565b92505060406134a98682870161344b565b9150509250925092565b60006040820190506134c860008301856126c7565b6134d560208301846126c7565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613512601b836126fc565b915061351d826134dc565b602082019050919050565b6000602082019050818103600083015261354181613505565b905091905056fea2646970667358221220c92c73983cb0688b904e5c7e80339d4c6be313197fc443cb26dc9ddb9a42d06f64736f6c63430008120033

Deployed Bytecode

0x6080604052600436106102135760003560e01c806370a0823111610118578063a8aa1b31116100a0578063dd62ed3e1161006f578063dd62ed3e146107ee578063df20fd491461082b578063f887ea4014610854578063fed0d2a11461087f578063ffb54a99146108aa5761021a565b8063a8aa1b311461071e578063a9059cbb14610749578063d51ed1c814610786578063d58f2f27146107c35761021a565b8063894375e5116100e7578063894375e51461063957806395d89b411461066257806398118cb41461068d57806398e0ae14146106b85780639c75dd35146106f55761021a565b806370a082311461057b57806378109e54146105b85780637d1db4a5146105e3578063893d20e81461060e5761021a565b806323b872dd1161019b578063313ce5671161016a578063313ce56714610492578063571ac8b0146104bd5780635921652f146104fa5780636b67c4df146105255780636ddd1713146105505761021a565b806323b872dd146103c25780632b112e49146103ff5780632f54bf6e1461042a5780633121c7c0146104675761021a565b8063180b0d7e116101e2578063180b0d7e146102ef57806318160ddd1461031a5780631df4ccfc146103455780631f76a7af14610370578063201e7991146103995761021a565b80630445b6671461021f57806306fdde031461024a578063095ea7b3146102755780631161ae39146102b25761021a565b3661021a57005b600080fd5b34801561022b57600080fd5b506102346108d5565b60405161024191906126d6565b60405180910390f35b34801561025657600080fd5b5061025f6108db565b60405161026c9190612781565b60405180910390f35b34801561028157600080fd5b5061029c60048036038101906102979190612837565b610918565b6040516102a99190612892565b60405180910390f35b3480156102be57600080fd5b506102d960048036038101906102d491906128ad565b610a0a565b6040516102e69190612892565b60405180910390f35b3480156102fb57600080fd5b50610304610a1f565b60405161031191906126d6565b60405180910390f35b34801561032657600080fd5b5061032f610a25565b60405161033c91906126d6565b60405180910390f35b34801561035157600080fd5b5061035a610a2f565b60405161036791906126d6565b60405180910390f35b34801561037c57600080fd5b506103976004803603810190610392919061292b565b610a35565b005b3480156103a557600080fd5b506103c060048036038101906103bb91906128ad565b610b4e565b005b3480156103ce57600080fd5b506103e960048036038101906103e49190612958565b610ba8565b6040516103f69190612892565b60405180910390f35b34801561040b57600080fd5b50610414610da8565b60405161042191906126d6565b60405180910390f35b34801561043657600080fd5b50610451600480360381019061044c91906129ab565b610e2a565b60405161045e9190612892565b60405180910390f35b34801561047357600080fd5b5061047c610e83565b60405161048991906126d6565b60405180910390f35b34801561049e57600080fd5b506104a7610e89565b6040516104b491906129f4565b60405180910390f35b3480156104c957600080fd5b506104e460048036038101906104df91906129ab565b610e92565b6040516104f19190612892565b60405180910390f35b34801561050657600080fd5b5061050f610ec5565b60405161051c91906126d6565b60405180910390f35b34801561053157600080fd5b5061053a610ecb565b60405161054791906126d6565b60405180910390f35b34801561055c57600080fd5b50610565610ed1565b6040516105729190612892565b60405180910390f35b34801561058757600080fd5b506105a2600480360381019061059d91906129ab565b610ee4565b6040516105af91906126d6565b60405180910390f35b3480156105c457600080fd5b506105cd610f2d565b6040516105da91906126d6565b60405180910390f35b3480156105ef57600080fd5b506105f8610f33565b60405161060591906126d6565b60405180910390f35b34801561061a57600080fd5b50610623610f39565b6040516106309190612a1e565b60405180910390f35b34801561064557600080fd5b50610660600480360381019061065b9190612a9e565b610f62565b005b34801561066e57600080fd5b506106776110ab565b6040516106849190612781565b60405180910390f35b34801561069957600080fd5b506106a26110e8565b6040516106af91906126d6565b60405180910390f35b3480156106c457600080fd5b506106df60048036038101906106da9190612837565b6110ee565b6040516106ec9190612892565b60405180910390f35b34801561070157600080fd5b5061071c60048036038101906107179190612b12565b611198565b005b34801561072a57600080fd5b50610733611221565b6040516107409190612a1e565b60405180910390f35b34801561075557600080fd5b50610770600480360381019061076b9190612837565b611247565b60405161077d9190612892565b60405180910390f35b34801561079257600080fd5b506107ad60048036038101906107a89190612b12565b61125c565b6040516107ba91906126d6565b60405180910390f35b3480156107cf57600080fd5b506107d86112ce565b6040516107e591906126d6565b60405180910390f35b3480156107fa57600080fd5b5061081560048036038101906108109190612b3f565b6112d4565b60405161082291906126d6565b60405180910390f35b34801561083757600080fd5b50610852600480360381019061084d9190612bab565b61135b565b005b34801561086057600080fd5b506108696113c8565b6040516108769190612c4a565b60405180910390f35b34801561088b57600080fd5b506108946113ee565b6040516108a191906126d6565b60405180910390f35b3480156108b657600080fd5b506108bf6113f4565b6040516108cc9190612892565b60405180910390f35b601a5481565b60606040518060400160405280600a81526020017f506570656e6f6d69637300000000000000000000000000000000000000000000815250905090565b600081600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109f891906126d6565b60405180910390a36001905092915050565b600082610a168361125c565b11905092915050565b60105481565b6000600554905090565b600f5481565b610a3e33610e2a565b610a7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7490612cb1565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060018060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051610b439190612cf2565b60405180910390a150565b610b5733610e2a565b610b96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8d90612cb1565b60405180910390fd5b81601681905550806017819055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610d9457610d13826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600960008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114079092919063ffffffff16565b600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610d9f84848461146b565b90509392505050565b6000610e25610dd8600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610ee4565b610e17610e06600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610ee4565b6005546119ad90919063ffffffff16565b6119ad90919063ffffffff16565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60125481565b60006004905090565b6000610ebe827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610918565b9050919050565b60135481565b600d5481565b601960159054906101000a900460ff1681565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60075481565b60065481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610f6b33610e2a565b610faa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa190612cb1565b60405180910390fd5b6107d18383905010610ff1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe890612d7f565b60405180910390fd5b600083839050826110029190612dce565b90508061100e86610ee4565b101561104f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104690612e5c565b60405180910390fd5b60005b848490508110156110a35761108f8686868481811061107457611073612e7c565b5b905060200201602081019061108991906129ab565b856119f7565b50808061109b90612eab565b915050611052565b505050505050565b60606040518060400160405280600b81526020017f24504550454e4f4d494353000000000000000000000000000000000000000000815250905090565b600c5481565b60008273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846040518363ffffffff1660e01b815260040161114d929190612ef3565b6020604051808303816000875af115801561116c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111909190612f31565b905092915050565b6000479050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc606484846111e79190612dce565b6111f19190612f8d565b9081150290604051600060405180830381858888f1935050505015801561121c573d6000803e3d6000fd5b505050565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061125433848461146b565b905092915050565b60006112c7611269610da8565b6112b96112aa600261129c601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610ee4565b611bca90919063ffffffff16565b85611bca90919063ffffffff16565b611c4490919063ffffffff16565b9050919050565b600e5481565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61136433610e2a565b6113a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161139a90612cb1565b60405180910390fd5b81601960156101000a81548160ff02191690831515021790555080601a819055505050565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60115481565b601960149054906101000a900460ff1681565b600083831115829061144f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114469190612781565b60405180910390fd5b506000838561145e9190612fbe565b9050809150509392505050565b6000601b60009054906101000a900460ff16156114945761148d8484846119f7565b90506119a6565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115385750600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561158d57601960149054906101000a900460ff1661158c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115839061303e565b60405180910390fd5b5b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561161357503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561166d5750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156116c75750601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156117215750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b1561178557600061173184610ee4565b90506007548382611742919061305e565b1115611783576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177a90613104565b60405180910390fd5b505b61178f8483611c8e565b611797611d2b565b156117a5576117a4611e02565b5b61182e826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114079092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600061187c85612379565b158061188e575061188c84612379565b155b6118a25761189d8584866123d0565b6118a4565b825b90506118f881600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125fc90919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161199891906126d6565b60405180910390a360019150505b9392505050565b60006119ef83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611407565b905092915050565b6000611a82826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600860008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546114079092919063ffffffff16565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b1782600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125fc90919063ffffffff16565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611bb791906126d6565b60405180910390a3600190509392505050565b6000808303611bdc5760009050611c3e565b60008284611bea9190612dce565b9050828482611bf99190612f8d565b14611c39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3090613196565b60405180910390fd5b809150505b92915050565b6000611c8683836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061265a565b905092915050565b60065481111580611ce85750600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611d27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d1e90613202565b60405180910390fd5b5050565b6000601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611d985750601b60009054906101000a900460ff16155b8015611db05750601960159054906101000a900460ff165b8015611dfd5750601a54600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601b60006101000a81548160ff0219169083151502179055506000611e2d601654601754610a0a565b611e3957600c54611e3c565b60005b90506000611e7c6002611e6e600f54611e6086601a54611bca90919063ffffffff16565b611c4490919063ffffffff16565b611c4490919063ffffffff16565b90506000611e9582601a546119ad90919063ffffffff16565b90506000600267ffffffffffffffff811115611eb457611eb3613222565b5b604051908082528060200260200182016040528015611ee25781602001602082028036833780820191505090505b5090503081600081518110611efa57611ef9612e7c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681600181518110611f6b57611f6a612e7c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506000479050601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478460008530426040518663ffffffff1660e01b815260040161200e95949392919061334a565b600060405180830381600087803b15801561202857600080fd5b505af115801561203c573d6000803e3d6000fd5b50505050600061205582476119ad90919063ffffffff16565b90506000612081612070600289611c4490919063ffffffff16565b600f546119ad90919063ffffffff16565b905060006120bd60026120af846120a18c88611bca90919063ffffffff16565b611c4490919063ffffffff16565b611c4490919063ffffffff16565b905060006120e8836120da600d5487611bca90919063ffffffff16565b611c4490919063ffffffff16565b9050600061211384612105600e5488611bca90919063ffffffff16565b611c4490919063ffffffff16565b90506000601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168361753090604051612161906133d5565b600060405180830381858888f193505050503d806000811461219f576040519150601f19603f3d011682016040523d82523d6000602084013e6121a4565b606091505b50509050601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1682617530906040516121f2906133d5565b600060405180830381858888f193505050503d8060008114612230576040519150601f19603f3d011682016040523d82523d6000602084013e612235565b606091505b5050809150506000905060008a111561235157601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71985308d600080601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b81526004016122d1969594939291906133ea565b60606040518083038185885af11580156122ef573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906123149190613460565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506848b6040516123489291906134b3565b60405180910390a15b50505050505050505050506000601b60006101000a81548160ff021916908315150217905550565b6000600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16159050919050565b6000806013549050601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612437576011549050612493565b601960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16036124925760125490505b5b60006124dc60646010546124a79190612dce565b6124ce846124c0600f548a611bca90919063ffffffff16565b611bca90919063ffffffff16565b611c4490919063ffffffff16565b9050600081905061253581600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546125fc90919063ffffffff16565b600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516125d591906126d6565b60405180910390a36125f082876119ad90919063ffffffff16565b93505050509392505050565b600080828461260b919061305e565b905083811015612650576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161264790613528565b60405180910390fd5b8091505092915050565b600080831182906126a1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126989190612781565b60405180910390fd5b50600083856126b09190612f8d565b9050809150509392505050565b6000819050919050565b6126d0816126bd565b82525050565b60006020820190506126eb60008301846126c7565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561272b578082015181840152602081019050612710565b60008484015250505050565b6000601f19601f8301169050919050565b6000612753826126f1565b61275d81856126fc565b935061276d81856020860161270d565b61277681612737565b840191505092915050565b6000602082019050818103600083015261279b8184612748565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127d8826127ad565b9050919050565b6127e8816127cd565b81146127f357600080fd5b50565b600081359050612805816127df565b92915050565b612814816126bd565b811461281f57600080fd5b50565b6000813590506128318161280b565b92915050565b6000806040838503121561284e5761284d6127a3565b5b600061285c858286016127f6565b925050602061286d85828601612822565b9150509250929050565b60008115159050919050565b61288c81612877565b82525050565b60006020820190506128a76000830184612883565b92915050565b600080604083850312156128c4576128c36127a3565b5b60006128d285828601612822565b92505060206128e385828601612822565b9150509250929050565b60006128f8826127ad565b9050919050565b612908816128ed565b811461291357600080fd5b50565b600081359050612925816128ff565b92915050565b600060208284031215612941576129406127a3565b5b600061294f84828501612916565b91505092915050565b600080600060608486031215612971576129706127a3565b5b600061297f868287016127f6565b9350506020612990868287016127f6565b92505060406129a186828701612822565b9150509250925092565b6000602082840312156129c1576129c06127a3565b5b60006129cf848285016127f6565b91505092915050565b600060ff82169050919050565b6129ee816129d8565b82525050565b6000602082019050612a0960008301846129e5565b92915050565b612a18816127cd565b82525050565b6000602082019050612a336000830184612a0f565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612a5e57612a5d612a39565b5b8235905067ffffffffffffffff811115612a7b57612a7a612a3e565b5b602083019150836020820283011115612a9757612a96612a43565b5b9250929050565b60008060008060608587031215612ab857612ab76127a3565b5b6000612ac6878288016127f6565b945050602085013567ffffffffffffffff811115612ae757612ae66127a8565b5b612af387828801612a48565b93509350506040612b0687828801612822565b91505092959194509250565b600060208284031215612b2857612b276127a3565b5b6000612b3684828501612822565b91505092915050565b60008060408385031215612b5657612b556127a3565b5b6000612b64858286016127f6565b9250506020612b75858286016127f6565b9150509250929050565b612b8881612877565b8114612b9357600080fd5b50565b600081359050612ba581612b7f565b92915050565b60008060408385031215612bc257612bc16127a3565b5b6000612bd085828601612b96565b9250506020612be185828601612822565b9150509250929050565b6000819050919050565b6000612c10612c0b612c06846127ad565b612beb565b6127ad565b9050919050565b6000612c2282612bf5565b9050919050565b6000612c3482612c17565b9050919050565b612c4481612c29565b82525050565b6000602082019050612c5f6000830184612c3b565b92915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000612c9b6006836126fc565b9150612ca682612c65565b602082019050919050565b60006020820190508181036000830152612cca81612c8e565b9050919050565b6000612cdc82612c17565b9050919050565b612cec81612cd1565b82525050565b6000602082019050612d076000830184612ce3565b92915050565b7f474153204572726f723a206d61782061697264726f70206c696d69742069732060008201527f3230303020616464726573736573000000000000000000000000000000000000602082015250565b6000612d69602e836126fc565b9150612d7482612d0d565b604082019050919050565b60006020820190508181036000830152612d9881612d5c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612dd9826126bd565b9150612de4836126bd565b9250828202612df2816126bd565b91508282048414831517612e0957612e08612d9f565b5b5092915050565b7f4e6f7420656e6f75676820746f6b656e7320696e2077616c6c65740000000000600082015250565b6000612e46601b836126fc565b9150612e5182612e10565b602082019050919050565b60006020820190508181036000830152612e7581612e39565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612eb6826126bd565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ee857612ee7612d9f565b5b600182019050919050565b6000604082019050612f086000830185612a0f565b612f1560208301846126c7565b9392505050565b600081519050612f2b81612b7f565b92915050565b600060208284031215612f4757612f466127a3565b5b6000612f5584828501612f1c565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612f98826126bd565b9150612fa3836126bd565b925082612fb357612fb2612f5e565b5b828204905092915050565b6000612fc9826126bd565b9150612fd4836126bd565b9250828203905081811115612fec57612feb612d9f565b5b92915050565b7f54726164696e67206e6f74206f70656e20796574000000000000000000000000600082015250565b60006130286014836126fc565b915061303382612ff2565b602082019050919050565b600060208201905081810360008301526130578161301b565b9050919050565b6000613069826126bd565b9150613074836126bd565b925082820190508082111561308c5761308b612d9f565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c20796f752063616e206e6f74206275792074686174206d7563682e0000602082015250565b60006130ee603e836126fc565b91506130f982613092565b604082019050919050565b6000602082019050818103600083015261311d816130e1565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b60006131806021836126fc565b915061318b82613124565b604082019050919050565b600060208201905081810360008301526131af81613173565b9050919050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006131ec6011836126fc565b91506131f7826131b6565b602082019050919050565b6000602082019050818103600083015261321b816131df565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000819050919050565b600061327661327161326c84613251565b612beb565b6126bd565b9050919050565b6132868161325b565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132c1816127cd565b82525050565b60006132d383836132b8565b60208301905092915050565b6000602082019050919050565b60006132f78261328c565b6133018185613297565b935061330c836132a8565b8060005b8381101561333d57815161332488826132c7565b975061332f836132df565b925050600181019050613310565b5085935050505092915050565b600060a08201905061335f60008301886126c7565b61336c602083018761327d565b818103604083015261337e81866132ec565b905061338d6060830185612a0f565b61339a60808301846126c7565b9695505050505050565b600081905092915050565b50565b60006133bf6000836133a4565b91506133ca826133af565b600082019050919050565b60006133e0826133b2565b9150819050919050565b600060c0820190506133ff6000830189612a0f565b61340c60208301886126c7565b613419604083018761327d565b613426606083018661327d565b6134336080830185612a0f565b61344060a08301846126c7565b979650505050505050565b60008151905061345a8161280b565b92915050565b600080600060608486031215613479576134786127a3565b5b60006134878682870161344b565b93505060206134988682870161344b565b92505060406134a98682870161344b565b9150509250925092565b60006040820190506134c860008301856126c7565b6134d560208301846126c7565b9392505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613512601b836126fc565b915061351d826134dc565b602082019050919050565b6000602082019050818103600083015261354181613505565b905091905056fea2646970667358221220c92c73983cb0688b904e5c7e80339d4c6be313197fc443cb26dc9ddb9a42d06f64736f6c63430008120033

Deployed Bytecode Sourcemap

4492:10067:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5986:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7006:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7428:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14341:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5500:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6736:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5419:74;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2796:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13822:182;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7946:370;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14016:142;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2685:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5589:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6830:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7652:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5631:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5335:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5949:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7176:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5015:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4951:57;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7092:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13201:450;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6916:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5293:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13024:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12820:196;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5882:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7782:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14166:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5377:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7287:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13659:155;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5851:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5546:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5910:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5986:49;;;;:::o;7006:80::-;7054:13;7078:5;;;;;;;;;;;;;;;;;7071:12;;7006:80;:::o;7428:216::-;7503:4;7555:6;7520:11;:23;7532:10;7520:23;;;;;;;;;;;;;;;:32;7544:7;7520:32;;;;;;;;;;;;;;;:41;;;;7598:7;7577:37;;7586:10;7577:37;;;7607:6;7577:37;;;;;;:::i;:::-;;;;;;;;7632:4;7625:11;;7428:216;;;;:::o;14341:150::-;14421:4;14477:6;14445:29;14465:8;14445:19;:29::i;:::-;:38;14438:45;;14341:150;;;;:::o;5500:37::-;;;;:::o;6736:88::-;6791:7;6809:12;;6802:19;;6736:88;:::o;5419:74::-;;;;:::o;2796:164::-;2634:19;2642:10;2634:7;:19::i;:::-;2626:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;2871:3:::1;2863:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;2907:4;2885:14:::0;:19:::1;2900:3;2885:19;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;2927:25;2948:3;2927:25;;;;;;:::i;:::-;;;;;;;;2796:164:::0;:::o;13822:182::-;2634:19;2642:10;2634:7;:19::i;:::-;2626:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13937:7:::1;13919:15;:25;;;;13984:12;13955:26;:41;;;;13822:182:::0;;:::o;7946:370::-;8046:4;8101:17;8066:11;:19;8078:6;8066:19;;;;;;;;;;;;;;;:31;8086:10;8066:31;;;;;;;;;;;;;;;;:52;8063:186;;8168:69;8204:6;8168:69;;;;;;;;;;;;;;;;;:11;:19;8180:6;8168:19;;;;;;;;;;;;;;;:31;8188:10;8168:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;8134:11;:19;8146:6;8134:19;;;;;;;;;;;;;;;:31;8154:10;8134:31;;;;;;;;;;;;;;;:103;;;;8063:186;8268:40;8282:6;8290:9;8301:6;8268:13;:40::i;:::-;8261:47;;7946:370;;;;;:::o;14016:142::-;14069:7;14096:54;14134:15;14144:4;;;;;;;;;;;14134:9;:15::i;:::-;14096:33;14113:15;14123:4;;;;;;;;;;;14113:9;:15::i;:::-;14096:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;14089:61;;14016:142;:::o;2685:103::-;2740:4;2775:5;;;;;;;;;;;2764:16;;:7;:16;;;2757:23;;2685:103;;;:::o;5589:35::-;;;;:::o;6830:80::-;6882:5;4881:1;6891:16;;6830:80;:::o;7652:122::-;7707:4;7731:35;7739:7;7748:17;7731:7;:35::i;:::-;7724:42;;7652:122;;;:::o;5631:40::-;;;;:::o;5335:35::-;;;;:::o;5949:30::-;;;;;;;;;;;;;:::o;7176:105::-;7242:7;7260:9;:18;7270:7;7260:18;;;;;;;;;;;;;;;;7253:25;;7176:105;;;:::o;5015:60::-;;;;:::o;4951:57::-;;;;:::o;7092:78::-;7144:7;7162:5;;;;;;;;;;;7155:12;;7092:78;:::o;13201:450::-;2634:19;2642:10;2634:7;:19::i;:::-;2626:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13342:4:::1;13323:9;;:16;;:23;13315:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;13428:12;13452:9;;:16;;13443:6;:25;;;;:::i;:::-;13428:40;;13504:4;13485:15;13495:4;13485:9;:15::i;:::-;:23;;13477:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;13553:6;13549:99;13567:9;;:16;;13563:1;:20;13549:99;;;13600:40;13615:4;13620:9;;13630:1;13620:12;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;13633:6;13600:14;:40::i;:::-;;13585:3;;;;;:::i;:::-;;;;13549:99;;;;13306:345;13201:450:::0;;;;:::o;6916:84::-;6966:13;6990:7;;;;;;;;;;;;;;;;;6983:14;;6916:84;:::o;5293:35::-;;;;:::o;13024:169::-;13096:12;13135;13128:29;;;13158:18;;;;;;;;;;;13178:6;13128:57;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13121:64;;13024:169;;;;:::o;12820:196::-;12884:17;12904:21;12884:41;;12944:18;;;;;;;;;;;12936:36;;:72;13004:3;12985:16;12973:9;:28;;;;:::i;:::-;:34;;;;:::i;:::-;12936:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12873:143;12820:196;:::o;5882:19::-;;;;;;;;;;;;;:::o;7782:156::-;7862:4;7886:44;7900:10;7912:9;7923:6;7886:13;:44::i;:::-;7879:51;;7782:156;;;;:::o;14166:167::-;14234:7;14261:64;14302:22;:20;:22::i;:::-;14261:36;14274:22;14294:1;14274:15;14284:4;;;;;;;;;;;14274:9;:15::i;:::-;:19;;:22;;;;:::i;:::-;14261:8;:12;;:36;;;;:::i;:::-;:40;;:64;;;;:::i;:::-;14254:71;;14166:167;;;:::o;5377:35::-;;;;:::o;7287:133::-;7371:7;7389:11;:19;7401:6;7389:19;;;;;;;;;;;;;;;:28;7409:7;7389:28;;;;;;;;;;;;;;;;7382:35;;7287:133;;;;:::o;13659:155::-;2634:19;2642:10;2634:7;:19::i;:::-;2626:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;13764:8:::1;13750:11;;:22;;;;;;;;;;;;;;;;;;13799:7;13783:13;:23;;;;13659:155:::0;;:::o;5851:24::-;;;;;;;;;;;;;:::o;5546:36::-;;;;:::o;5910:30::-;;;;;;;;;;;;;:::o;666:192::-;752:7;785:1;780;:6;;788:12;772:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;812:9;828:1;824;:5;;;;:::i;:::-;812:17;;849:1;842:8;;;666:192;;;;;:::o;8324:1198::-;8416:4;8436:6;;;;;;;;;;;8433:63;;;8452:41;8467:6;8475:9;8486:6;8452:14;:41::i;:::-;8445:48;;;;8433:63;8512:14;:22;8527:6;8512:22;;;;;;;;;;;;;;;;;;;;;;;;;8511:23;:53;;;;;8539:14;:25;8554:9;8539:25;;;;;;;;;;;;;;;;;;;;;;;;;8538:26;8511:53;8508:127;;;8588:11;;;;;;;;;;;8580:43;;;;;;;;;;;;:::i;:::-;;;;;;;;;8508:127;8652:14;:22;8667:6;8652:22;;;;;;;;;;;;;;;;;;;;;;;;;8651:23;:53;;;;;8699:4;8678:26;;:9;:26;;;;8651:53;:84;;;;;8730:4;;;;;;;;;;;8709:26;;:9;:26;;;;8651:84;:105;;;;;8752:4;;;;;;;;;;;8739:17;;:9;:17;;;;8651:105;:140;;;;;8773:18;;;;;;;;;;;8760:31;;:9;:31;;;;8651:140;8647:332;;;8807:18;8828:20;8838:9;8828;:20::i;:::-;8807:41;;8896:15;;8885:6;8872:10;:19;;;;:::i;:::-;8871:40;;8863:114;;;;;;;;;;;;:::i;:::-;;;;;;;;;8792:187;8647:332;9032:28;9045:6;9053;9032:12;:28::i;:::-;9076:16;:14;:16::i;:::-;9073:35;;;9095:10;:8;:10::i;:::-;9073:35;9167:53;9189:6;9167:53;;;;;;;;;;;;;;;;;:9;:17;9177:6;9167:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9147:9;:17;9157:6;9147:17;;;;;;;;;;;;;;;:73;;;;9233:22;9260:21;9274:6;9260:13;:21::i;:::-;9259:22;:51;;;;9286:24;9300:9;9286:13;:24::i;:::-;9285:25;9259:51;9258:99;;9323:34;9331:6;9339;9347:9;9323:7;:34::i;:::-;9258:99;;;9314:6;9258:99;9233:124;;9391:40;9416:14;9391:9;:20;9401:9;9391:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;9368:9;:20;9378:9;9368:20;;;;;;;;;;;;;;;:63;;;;9466:9;9449:43;;9458:6;9449:43;;;9477:14;9449:43;;;;;;:::i;:::-;;;;;;;;9510:4;9503:11;;;8324:1198;;;;;;:::o;524:136::-;582:7;609:43;613:1;616;609:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;602:50;;524:136;;;;:::o;9534:330::-;9627:4;9664:53;9686:6;9664:53;;;;;;;;;;;;;;;;;:9;:17;9674:6;9664:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9644:9;:17;9654:6;9644:17;;;;;;;;;;;;;;;:73;;;;9751:32;9776:6;9751:9;:20;9761:9;9751:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;9728:9;:20;9738:9;9728:20;;;;;;;;;;;;;;;:55;;;;9816:9;9799:35;;9808:6;9799:35;;;9827:6;9799:35;;;;;;:::i;:::-;;;;;;;;9852:4;9845:11;;9534:330;;;;;:::o;864:250::-;922:7;951:1;946;:6;942:47;;976:1;969:8;;;;942:47;1001:9;1017:1;1013;:5;;;;:::i;:::-;1001:17;;1046:1;1041;1037;:5;;;;:::i;:::-;:10;1029:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1105:1;1098:8;;;864:250;;;;;:::o;1120:132::-;1178:7;1205:39;1209:1;1212;1205:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1198:46;;1120:132;;;;:::o;9872:166::-;9969:12;;9959:6;:22;;:49;;;;9985:15;:23;10001:6;9985:23;;;;;;;;;;;;;;;;;;;;;;;;;9959:49;9951:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;9872:166;;:::o;10831:197::-;10880:4;10918;;;;;;;;;;;10904:18;;:10;:18;;;;:38;;;;;10936:6;;;;;;;;;;;10935:7;10904:38;:62;;;;;10955:11;;;;;;;;;;;10904:62;:116;;;;;11007:13;;10979:9;:24;10997:4;10979:24;;;;;;;;;;;;;;;;:41;;10904:116;10897:123;;10831:197;:::o;11036:1743::-;6091:4;6082:6;;:13;;;;;;;;;;;;;;;;;;11085:27:::1;11115:60;11131:15;;11148:26;;11115:15;:60::i;:::-;:79;;11182:12;;11115:79;;;11178:1;11115:79;11085:109;;11205:23;11231:59;11288:1;11231:52;11274:8;;11231:38;11249:19;11231:13;;:17;;:38;;;;:::i;:::-;:42;;:52;;;;:::i;:::-;:56;;:59;;;;:::i;:::-;11205:85;;11301:20;11324:34;11342:15;11324:13;;:17;;:34;;;;:::i;:::-;11301:57;;11371:21;11409:1;11395:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11371:40;;11440:4;11422;11427:1;11422:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11466:4;;;;;;;;;;;11456;11461:1;11456:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;::::0;::::1;11483:21;11507;11483:45;;11541:6;;;;;;;;;;;:57;;;11613:12;11640:1;11656:4;11683;11703:15;11541:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11742:17;11762:40;11788:13;11762:21;:25;;:40;;;;:::i;:::-;11742:60;;11815:19;11837:40;11850:26;11874:1;11850:19;:23;;:26;;;;:::i;:::-;11837:8;;:12;;:40;;;;:::i;:::-;11815:62;;11898:26;11927:58;11983:1;11927:51;11966:11;11927:34;11941:19;11927:9;:13;;:34;;;;:::i;:::-;:38;;:51;;;;:::i;:::-;:55;;:58;;;;:::i;:::-;11898:87;;11996:26;12025:44;12057:11;12025:27;12039:12;;12025:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;11996:73;;12080:24;12107:42;12137:11;12107:25;12121:10;;12107:9;:13;;:25;;;;:::i;:::-;:29;;:42;;;;:::i;:::-;12080:69;;12163:15;12191:18;;;;;;;;;;;12183:32;;12223:18;12248:5;12183:75;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12162:96;;;12293:18;;;;;;;;;;;12285:32;;12325:16;12348:5;12285:73;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12269:89;;;;;12392:5;12379:18;;12431:1;12413:15;:19;12410:362;;;12448:6;;;;;;;;;;;:22;;;12478:18;12524:4;12548:15;12582:1;12602::::0;12622:21:::1;;;;;;;;;;;12662:15;12448:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12712:48;12724:18;12744:15;12712:48;;;;;;;:::i;:::-;;;;;;;;12410:362;11074:1705;;;;;;;;;;;6109:5:::0;6100:6;;:14;;;;;;;;;;;;;;;;;;11036:1743::o;10046:114::-;10108:4;10133:11;:19;10145:6;10133:19;;;;;;;;;;;;;;;;;;;;;;;;;10132:20;10125:27;;10046:114;;;:::o;10168:655::-;10254:7;10284:18;10305;;10284:39;;10350:4;;;;;;;;;;;10337:17;;:9;:17;;;10334:152;;10383:14;;10370:27;;10334:152;;;10428:4;;;;;;;;;;;10418:14;;:6;:14;;;10415:71;;10461:13;;10448:26;;10415:71;10334:152;10498:17;10518:62;10576:3;10559:14;;:20;;;;:::i;:::-;10518:36;10543:10;10518:20;10529:8;;10518:6;:10;;:20;;;;:::i;:::-;:24;;:36;;;;:::i;:::-;:40;;:62;;;;:::i;:::-;10498:82;;10593:22;10618:9;10593:34;;10667:44;10696:14;10667:9;:24;10685:4;10667:24;;;;;;;;;;;;;;;;:28;;:44;;;;:::i;:::-;10640:9;:24;10658:4;10640:24;;;;;;;;;;;;;;;:71;;;;10752:4;10727:47;;10736:6;10727:47;;;10759:14;10727:47;;;;;;:::i;:::-;;;;;;;;10794:21;10805:9;10794:6;:10;;:21;;;;:::i;:::-;10787:28;;;;;10168:655;;;;;:::o;337:181::-;395:7;415:9;431:1;427;:5;;;;:::i;:::-;415:17;;456:1;451;:6;;443:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;509:1;502:8;;;337:181;;;;:::o;1258:189::-;1344:7;1376:1;1372;:5;1379:12;1364:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1403:9;1419:1;1415;:5;;;;:::i;:::-;1403:17;;1438:1;1431:8;;;1258:189;;;;;:::o;7:77:1:-;44:7;73:5;62:16;;7:77;;;:::o;90:118::-;177:24;195:5;177:24;:::i;:::-;172:3;165:37;90:118;;:::o;214:222::-;307:4;345:2;334:9;330:18;322:26;;358:71;426:1;415:9;411:17;402:6;358:71;:::i;:::-;214:222;;;;:::o;442:99::-;494:6;528:5;522:12;512:22;;442:99;;;:::o;547:169::-;631:11;665:6;660:3;653:19;705:4;700:3;696:14;681:29;;547:169;;;;:::o;722:246::-;803:1;813:113;827:6;824:1;821:13;813:113;;;912:1;907:3;903:11;897:18;893:1;888:3;884:11;877:39;849:2;846:1;842:10;837:15;;813:113;;;960:1;951:6;946:3;942:16;935:27;784:184;722:246;;;:::o;974:102::-;1015:6;1066:2;1062:7;1057:2;1050:5;1046:14;1042:28;1032:38;;974:102;;;:::o;1082:377::-;1170:3;1198:39;1231:5;1198:39;:::i;:::-;1253:71;1317:6;1312:3;1253:71;:::i;:::-;1246:78;;1333:65;1391:6;1386:3;1379:4;1372:5;1368:16;1333:65;:::i;:::-;1423:29;1445:6;1423:29;:::i;:::-;1418:3;1414:39;1407:46;;1174:285;1082:377;;;;:::o;1465:313::-;1578:4;1616:2;1605:9;1601:18;1593:26;;1665:9;1659:4;1655:20;1651:1;1640:9;1636:17;1629:47;1693:78;1766:4;1757:6;1693:78;:::i;:::-;1685:86;;1465:313;;;;:::o;1865:117::-;1974:1;1971;1964:12;1988:117;2097:1;2094;2087:12;2111:126;2148:7;2188:42;2181:5;2177:54;2166:65;;2111:126;;;:::o;2243:96::-;2280:7;2309:24;2327:5;2309:24;:::i;:::-;2298:35;;2243:96;;;:::o;2345:122::-;2418:24;2436:5;2418:24;:::i;:::-;2411:5;2408:35;2398:63;;2457:1;2454;2447:12;2398:63;2345:122;:::o;2473:139::-;2519:5;2557:6;2544:20;2535:29;;2573:33;2600:5;2573:33;:::i;:::-;2473:139;;;;:::o;2618:122::-;2691:24;2709:5;2691:24;:::i;:::-;2684:5;2681:35;2671:63;;2730:1;2727;2720:12;2671:63;2618:122;:::o;2746:139::-;2792:5;2830:6;2817:20;2808:29;;2846:33;2873:5;2846:33;:::i;:::-;2746:139;;;;:::o;2891:474::-;2959:6;2967;3016:2;3004:9;2995:7;2991:23;2987:32;2984:119;;;3022:79;;:::i;:::-;2984:119;3142:1;3167:53;3212:7;3203:6;3192:9;3188:22;3167:53;:::i;:::-;3157:63;;3113:117;3269:2;3295:53;3340:7;3331:6;3320:9;3316:22;3295:53;:::i;:::-;3285:63;;3240:118;2891:474;;;;;:::o;3371:90::-;3405:7;3448:5;3441:13;3434:21;3423:32;;3371:90;;;:::o;3467:109::-;3548:21;3563:5;3548:21;:::i;:::-;3543:3;3536:34;3467:109;;:::o;3582:210::-;3669:4;3707:2;3696:9;3692:18;3684:26;;3720:65;3782:1;3771:9;3767:17;3758:6;3720:65;:::i;:::-;3582:210;;;;:::o;3798:474::-;3866:6;3874;3923:2;3911:9;3902:7;3898:23;3894:32;3891:119;;;3929:79;;:::i;:::-;3891:119;4049:1;4074:53;4119:7;4110:6;4099:9;4095:22;4074:53;:::i;:::-;4064:63;;4020:117;4176:2;4202:53;4247:7;4238:6;4227:9;4223:22;4202:53;:::i;:::-;4192:63;;4147:118;3798:474;;;;;:::o;4278:104::-;4323:7;4352:24;4370:5;4352:24;:::i;:::-;4341:35;;4278:104;;;:::o;4388:138::-;4469:32;4495:5;4469:32;:::i;:::-;4462:5;4459:43;4449:71;;4516:1;4513;4506:12;4449:71;4388:138;:::o;4532:155::-;4586:5;4624:6;4611:20;4602:29;;4640:41;4675:5;4640:41;:::i;:::-;4532:155;;;;:::o;4693:345::-;4760:6;4809:2;4797:9;4788:7;4784:23;4780:32;4777:119;;;4815:79;;:::i;:::-;4777:119;4935:1;4960:61;5013:7;5004:6;4993:9;4989:22;4960:61;:::i;:::-;4950:71;;4906:125;4693:345;;;;:::o;5044:619::-;5121:6;5129;5137;5186:2;5174:9;5165:7;5161:23;5157:32;5154:119;;;5192:79;;:::i;:::-;5154:119;5312:1;5337:53;5382:7;5373:6;5362:9;5358:22;5337:53;:::i;:::-;5327:63;;5283:117;5439:2;5465:53;5510:7;5501:6;5490:9;5486:22;5465:53;:::i;:::-;5455:63;;5410:118;5567:2;5593:53;5638:7;5629:6;5618:9;5614:22;5593:53;:::i;:::-;5583:63;;5538:118;5044:619;;;;;:::o;5669:329::-;5728:6;5777:2;5765:9;5756:7;5752:23;5748:32;5745:119;;;5783:79;;:::i;:::-;5745:119;5903:1;5928:53;5973:7;5964:6;5953:9;5949:22;5928:53;:::i;:::-;5918:63;;5874:117;5669:329;;;;:::o;6004:86::-;6039:7;6079:4;6072:5;6068:16;6057:27;;6004:86;;;:::o;6096:112::-;6179:22;6195:5;6179:22;:::i;:::-;6174:3;6167:35;6096:112;;:::o;6214:214::-;6303:4;6341:2;6330:9;6326:18;6318:26;;6354:67;6418:1;6407:9;6403:17;6394:6;6354:67;:::i;:::-;6214:214;;;;:::o;6434:118::-;6521:24;6539:5;6521:24;:::i;:::-;6516:3;6509:37;6434:118;;:::o;6558:222::-;6651:4;6689:2;6678:9;6674:18;6666:26;;6702:71;6770:1;6759:9;6755:17;6746:6;6702:71;:::i;:::-;6558:222;;;;:::o;6786:117::-;6895:1;6892;6885:12;6909:117;7018:1;7015;7008:12;7032:117;7141:1;7138;7131:12;7172:568;7245:8;7255:6;7305:3;7298:4;7290:6;7286:17;7282:27;7272:122;;7313:79;;:::i;:::-;7272:122;7426:6;7413:20;7403:30;;7456:18;7448:6;7445:30;7442:117;;;7478:79;;:::i;:::-;7442:117;7592:4;7584:6;7580:17;7568:29;;7646:3;7638:4;7630:6;7626:17;7616:8;7612:32;7609:41;7606:128;;;7653:79;;:::i;:::-;7606:128;7172:568;;;;;:::o;7746:849::-;7850:6;7858;7866;7874;7923:2;7911:9;7902:7;7898:23;7894:32;7891:119;;;7929:79;;:::i;:::-;7891:119;8049:1;8074:53;8119:7;8110:6;8099:9;8095:22;8074:53;:::i;:::-;8064:63;;8020:117;8204:2;8193:9;8189:18;8176:32;8235:18;8227:6;8224:30;8221:117;;;8257:79;;:::i;:::-;8221:117;8370:80;8442:7;8433:6;8422:9;8418:22;8370:80;:::i;:::-;8352:98;;;;8147:313;8499:2;8525:53;8570:7;8561:6;8550:9;8546:22;8525:53;:::i;:::-;8515:63;;8470:118;7746:849;;;;;;;:::o;8601:329::-;8660:6;8709:2;8697:9;8688:7;8684:23;8680:32;8677:119;;;8715:79;;:::i;:::-;8677:119;8835:1;8860:53;8905:7;8896:6;8885:9;8881:22;8860:53;:::i;:::-;8850:63;;8806:117;8601:329;;;;:::o;8936:474::-;9004:6;9012;9061:2;9049:9;9040:7;9036:23;9032:32;9029:119;;;9067:79;;:::i;:::-;9029:119;9187:1;9212:53;9257:7;9248:6;9237:9;9233:22;9212:53;:::i;:::-;9202:63;;9158:117;9314:2;9340:53;9385:7;9376:6;9365:9;9361:22;9340:53;:::i;:::-;9330:63;;9285:118;8936:474;;;;;:::o;9416:116::-;9486:21;9501:5;9486:21;:::i;:::-;9479:5;9476:32;9466:60;;9522:1;9519;9512:12;9466:60;9416:116;:::o;9538:133::-;9581:5;9619:6;9606:20;9597:29;;9635:30;9659:5;9635:30;:::i;:::-;9538:133;;;;:::o;9677:468::-;9742:6;9750;9799:2;9787:9;9778:7;9774:23;9770:32;9767:119;;;9805:79;;:::i;:::-;9767:119;9925:1;9950:50;9992:7;9983:6;9972:9;9968:22;9950:50;:::i;:::-;9940:60;;9896:114;10049:2;10075:53;10120:7;10111:6;10100:9;10096:22;10075:53;:::i;:::-;10065:63;;10020:118;9677:468;;;;;:::o;10151:60::-;10179:3;10200:5;10193:12;;10151:60;;;:::o;10217:142::-;10267:9;10300:53;10318:34;10327:24;10345:5;10327:24;:::i;:::-;10318:34;:::i;:::-;10300:53;:::i;:::-;10287:66;;10217:142;;;:::o;10365:126::-;10415:9;10448:37;10479:5;10448:37;:::i;:::-;10435:50;;10365:126;;;:::o;10497:144::-;10565:9;10598:37;10629:5;10598:37;:::i;:::-;10585:50;;10497:144;;;:::o;10647:167::-;10752:55;10801:5;10752:55;:::i;:::-;10747:3;10740:68;10647:167;;:::o;10820:258::-;10931:4;10969:2;10958:9;10954:18;10946:26;;10982:89;11068:1;11057:9;11053:17;11044:6;10982:89;:::i;:::-;10820:258;;;;:::o;11084:156::-;11224:8;11220:1;11212:6;11208:14;11201:32;11084:156;:::o;11246:365::-;11388:3;11409:66;11473:1;11468:3;11409:66;:::i;:::-;11402:73;;11484:93;11573:3;11484:93;:::i;:::-;11602:2;11597:3;11593:12;11586:19;;11246:365;;;:::o;11617:419::-;11783:4;11821:2;11810:9;11806:18;11798:26;;11870:9;11864:4;11860:20;11856:1;11845:9;11841:17;11834:47;11898:131;12024:4;11898:131;:::i;:::-;11890:139;;11617:419;;;:::o;12042:134::-;12100:9;12133:37;12164:5;12133:37;:::i;:::-;12120:50;;12042:134;;;:::o;12182:147::-;12277:45;12316:5;12277:45;:::i;:::-;12272:3;12265:58;12182:147;;:::o;12335:238::-;12436:4;12474:2;12463:9;12459:18;12451:26;;12487:79;12563:1;12552:9;12548:17;12539:6;12487:79;:::i;:::-;12335:238;;;;:::o;12579:233::-;12719:34;12715:1;12707:6;12703:14;12696:58;12788:16;12783:2;12775:6;12771:15;12764:41;12579:233;:::o;12818:366::-;12960:3;12981:67;13045:2;13040:3;12981:67;:::i;:::-;12974:74;;13057:93;13146:3;13057:93;:::i;:::-;13175:2;13170:3;13166:12;13159:19;;12818:366;;;:::o;13190:419::-;13356:4;13394:2;13383:9;13379:18;13371:26;;13443:9;13437:4;13433:20;13429:1;13418:9;13414:17;13407:47;13471:131;13597:4;13471:131;:::i;:::-;13463:139;;13190:419;;;:::o;13615:180::-;13663:77;13660:1;13653:88;13760:4;13757:1;13750:15;13784:4;13781:1;13774:15;13801:410;13841:7;13864:20;13882:1;13864:20;:::i;:::-;13859:25;;13898:20;13916:1;13898:20;:::i;:::-;13893:25;;13953:1;13950;13946:9;13975:30;13993:11;13975:30;:::i;:::-;13964:41;;14154:1;14145:7;14141:15;14138:1;14135:22;14115:1;14108:9;14088:83;14065:139;;14184:18;;:::i;:::-;14065:139;13849:362;13801:410;;;;:::o;14217:177::-;14357:29;14353:1;14345:6;14341:14;14334:53;14217:177;:::o;14400:366::-;14542:3;14563:67;14627:2;14622:3;14563:67;:::i;:::-;14556:74;;14639:93;14728:3;14639:93;:::i;:::-;14757:2;14752:3;14748:12;14741:19;;14400:366;;;:::o;14772:419::-;14938:4;14976:2;14965:9;14961:18;14953:26;;15025:9;15019:4;15015:20;15011:1;15000:9;14996:17;14989:47;15053:131;15179:4;15053:131;:::i;:::-;15045:139;;14772:419;;;:::o;15197:180::-;15245:77;15242:1;15235:88;15342:4;15339:1;15332:15;15366:4;15363:1;15356:15;15383:233;15422:3;15445:24;15463:5;15445:24;:::i;:::-;15436:33;;15491:66;15484:5;15481:77;15478:103;;15561:18;;:::i;:::-;15478:103;15608:1;15601:5;15597:13;15590:20;;15383:233;;;:::o;15622:332::-;15743:4;15781:2;15770:9;15766:18;15758:26;;15794:71;15862:1;15851:9;15847:17;15838:6;15794:71;:::i;:::-;15875:72;15943:2;15932:9;15928:18;15919:6;15875:72;:::i;:::-;15622:332;;;;;:::o;15960:137::-;16014:5;16045:6;16039:13;16030:22;;16061:30;16085:5;16061:30;:::i;:::-;15960:137;;;;:::o;16103:345::-;16170:6;16219:2;16207:9;16198:7;16194:23;16190:32;16187:119;;;16225:79;;:::i;:::-;16187:119;16345:1;16370:61;16423:7;16414:6;16403:9;16399:22;16370:61;:::i;:::-;16360:71;;16316:125;16103:345;;;;:::o;16454:180::-;16502:77;16499:1;16492:88;16599:4;16596:1;16589:15;16623:4;16620:1;16613:15;16640:185;16680:1;16697:20;16715:1;16697:20;:::i;:::-;16692:25;;16731:20;16749:1;16731:20;:::i;:::-;16726:25;;16770:1;16760:35;;16775:18;;:::i;:::-;16760:35;16817:1;16814;16810:9;16805:14;;16640:185;;;;:::o;16831:194::-;16871:4;16891:20;16909:1;16891:20;:::i;:::-;16886:25;;16925:20;16943:1;16925:20;:::i;:::-;16920:25;;16969:1;16966;16962:9;16954:17;;16993:1;16987:4;16984:11;16981:37;;;16998:18;;:::i;:::-;16981:37;16831:194;;;;:::o;17031:170::-;17171:22;17167:1;17159:6;17155:14;17148:46;17031:170;:::o;17207:366::-;17349:3;17370:67;17434:2;17429:3;17370:67;:::i;:::-;17363:74;;17446:93;17535:3;17446:93;:::i;:::-;17564:2;17559:3;17555:12;17548:19;;17207:366;;;:::o;17579:419::-;17745:4;17783:2;17772:9;17768:18;17760:26;;17832:9;17826:4;17822:20;17818:1;17807:9;17803:17;17796:47;17860:131;17986:4;17860:131;:::i;:::-;17852:139;;17579:419;;;:::o;18004:191::-;18044:3;18063:20;18081:1;18063:20;:::i;:::-;18058:25;;18097:20;18115:1;18097:20;:::i;:::-;18092:25;;18140:1;18137;18133:9;18126:16;;18161:3;18158:1;18155:10;18152:36;;;18168:18;;:::i;:::-;18152:36;18004:191;;;;:::o;18201:249::-;18341:34;18337:1;18329:6;18325:14;18318:58;18410:32;18405:2;18397:6;18393:15;18386:57;18201:249;:::o;18456:366::-;18598:3;18619:67;18683:2;18678:3;18619:67;:::i;:::-;18612:74;;18695:93;18784:3;18695:93;:::i;:::-;18813:2;18808:3;18804:12;18797:19;;18456:366;;;:::o;18828:419::-;18994:4;19032:2;19021:9;19017:18;19009:26;;19081:9;19075:4;19071:20;19067:1;19056:9;19052:17;19045:47;19109:131;19235:4;19109:131;:::i;:::-;19101:139;;18828:419;;;:::o;19253:220::-;19393:34;19389:1;19381:6;19377:14;19370:58;19462:3;19457:2;19449:6;19445:15;19438:28;19253:220;:::o;19479:366::-;19621:3;19642:67;19706:2;19701:3;19642:67;:::i;:::-;19635:74;;19718:93;19807:3;19718:93;:::i;:::-;19836:2;19831:3;19827:12;19820:19;;19479:366;;;:::o;19851:419::-;20017:4;20055:2;20044:9;20040:18;20032:26;;20104:9;20098:4;20094:20;20090:1;20079:9;20075:17;20068:47;20132:131;20258:4;20132:131;:::i;:::-;20124:139;;19851:419;;;:::o;20276:167::-;20416:19;20412:1;20404:6;20400:14;20393:43;20276:167;:::o;20449:366::-;20591:3;20612:67;20676:2;20671:3;20612:67;:::i;:::-;20605:74;;20688:93;20777:3;20688:93;:::i;:::-;20806:2;20801:3;20797:12;20790:19;;20449:366;;;:::o;20821:419::-;20987:4;21025:2;21014:9;21010:18;21002:26;;21074:9;21068:4;21064:20;21060:1;21049:9;21045:17;21038:47;21102:131;21228:4;21102:131;:::i;:::-;21094:139;;20821:419;;;:::o;21246:180::-;21294:77;21291:1;21284:88;21391:4;21388:1;21381:15;21415:4;21412:1;21405:15;21432:85;21477:7;21506:5;21495:16;;21432:85;;;:::o;21523:158::-;21581:9;21614:61;21632:42;21641:32;21667:5;21641:32;:::i;:::-;21632:42;:::i;:::-;21614:61;:::i;:::-;21601:74;;21523:158;;;:::o;21687:147::-;21782:45;21821:5;21782:45;:::i;:::-;21777:3;21770:58;21687:147;;:::o;21840:114::-;21907:6;21941:5;21935:12;21925:22;;21840:114;;;:::o;21960:184::-;22059:11;22093:6;22088:3;22081:19;22133:4;22128:3;22124:14;22109:29;;21960:184;;;;:::o;22150:132::-;22217:4;22240:3;22232:11;;22270:4;22265:3;22261:14;22253:22;;22150:132;;;:::o;22288:108::-;22365:24;22383:5;22365:24;:::i;:::-;22360:3;22353:37;22288:108;;:::o;22402:179::-;22471:10;22492:46;22534:3;22526:6;22492:46;:::i;:::-;22570:4;22565:3;22561:14;22547:28;;22402:179;;;;:::o;22587:113::-;22657:4;22689;22684:3;22680:14;22672:22;;22587:113;;;:::o;22736:732::-;22855:3;22884:54;22932:5;22884:54;:::i;:::-;22954:86;23033:6;23028:3;22954:86;:::i;:::-;22947:93;;23064:56;23114:5;23064:56;:::i;:::-;23143:7;23174:1;23159:284;23184:6;23181:1;23178:13;23159:284;;;23260:6;23254:13;23287:63;23346:3;23331:13;23287:63;:::i;:::-;23280:70;;23373:60;23426:6;23373:60;:::i;:::-;23363:70;;23219:224;23206:1;23203;23199:9;23194:14;;23159:284;;;23163:14;23459:3;23452:10;;22860:608;;;22736:732;;;;:::o;23474:831::-;23737:4;23775:3;23764:9;23760:19;23752:27;;23789:71;23857:1;23846:9;23842:17;23833:6;23789:71;:::i;:::-;23870:80;23946:2;23935:9;23931:18;23922:6;23870:80;:::i;:::-;23997:9;23991:4;23987:20;23982:2;23971:9;23967:18;23960:48;24025:108;24128:4;24119:6;24025:108;:::i;:::-;24017:116;;24143:72;24211:2;24200:9;24196:18;24187:6;24143:72;:::i;:::-;24225:73;24293:3;24282:9;24278:19;24269:6;24225:73;:::i;:::-;23474:831;;;;;;;;:::o;24311:147::-;24412:11;24449:3;24434:18;;24311:147;;;;:::o;24464:114::-;;:::o;24584:398::-;24743:3;24764:83;24845:1;24840:3;24764:83;:::i;:::-;24757:90;;24856:93;24945:3;24856:93;:::i;:::-;24974:1;24969:3;24965:11;24958:18;;24584:398;;;:::o;24988:379::-;25172:3;25194:147;25337:3;25194:147;:::i;:::-;25187:154;;25358:3;25351:10;;24988:379;;;:::o;25373:807::-;25622:4;25660:3;25649:9;25645:19;25637:27;;25674:71;25742:1;25731:9;25727:17;25718:6;25674:71;:::i;:::-;25755:72;25823:2;25812:9;25808:18;25799:6;25755:72;:::i;:::-;25837:80;25913:2;25902:9;25898:18;25889:6;25837:80;:::i;:::-;25927;26003:2;25992:9;25988:18;25979:6;25927:80;:::i;:::-;26017:73;26085:3;26074:9;26070:19;26061:6;26017:73;:::i;:::-;26100;26168:3;26157:9;26153:19;26144:6;26100:73;:::i;:::-;25373:807;;;;;;;;;:::o;26186:143::-;26243:5;26274:6;26268:13;26259:22;;26290:33;26317:5;26290:33;:::i;:::-;26186:143;;;;:::o;26335:663::-;26423:6;26431;26439;26488:2;26476:9;26467:7;26463:23;26459:32;26456:119;;;26494:79;;:::i;:::-;26456:119;26614:1;26639:64;26695:7;26686:6;26675:9;26671:22;26639:64;:::i;:::-;26629:74;;26585:128;26752:2;26778:64;26834:7;26825:6;26814:9;26810:22;26778:64;:::i;:::-;26768:74;;26723:129;26891:2;26917:64;26973:7;26964:6;26953:9;26949:22;26917:64;:::i;:::-;26907:74;;26862:129;26335:663;;;;;:::o;27004:332::-;27125:4;27163:2;27152:9;27148:18;27140:26;;27176:71;27244:1;27233:9;27229:17;27220:6;27176:71;:::i;:::-;27257:72;27325:2;27314:9;27310:18;27301:6;27257:72;:::i;:::-;27004:332;;;;;:::o;27342:177::-;27482:29;27478:1;27470:6;27466:14;27459:53;27342:177;:::o;27525:366::-;27667:3;27688:67;27752:2;27747:3;27688:67;:::i;:::-;27681:74;;27764:93;27853:3;27764:93;:::i;:::-;27882:2;27877:3;27873:12;27866:19;;27525:366;;;:::o;27897:419::-;28063:4;28101:2;28090:9;28086:18;28078:26;;28150:9;28144:4;28140:20;28136:1;28125:9;28121:17;28114:47;28178:131;28304:4;28178:131;:::i;:::-;28170:139;;27897:419;;;:::o

Swarm Source

ipfs://c92c73983cb0688b904e5c7e80339d4c6be313197fc443cb26dc9ddb9a42d06f

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  ]

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.