ETH Price: $2,349.47 (-2.83%)
Gas: 0.99 Gwei

Contract

0x053A57741B1B61a64aCC14cf354b27721f19Bc90
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve163717342023-01-09 20:49:35615 days ago1673297375IN
0x053A5774...21f19Bc90
0 ETH0.0015865233.61078425
Approve163717192023-01-09 20:46:23615 days ago1673297183IN
0x053A5774...21f19Bc90
0 ETH0.001438730.47911676
Approve163717152023-01-09 20:45:35615 days ago1673297135IN
0x053A5774...21f19Bc90
0 ETH0.0015198532.19817706
Approve163717122023-01-09 20:44:59615 days ago1673297099IN
0x053A5774...21f19Bc90
0 ETH0.0023010248.74737164
Approve163717122023-01-09 20:44:59615 days ago1673297099IN
0x053A5774...21f19Bc90
0 ETH0.0023010248.74737164
Approve163717122023-01-09 20:44:59615 days ago1673297099IN
0x053A5774...21f19Bc90
0 ETH0.0023010248.74737164
Approve163717112023-01-09 20:44:35615 days ago1673297075IN
0x053A5774...21f19Bc90
0 ETH0.0013621128.8566247
Approve163717072023-01-09 20:43:47615 days ago1673297027IN
0x053A5774...21f19Bc90
0 ETH0.0013731729.0907809
Approve163717042023-01-09 20:43:11615 days ago1673296991IN
0x053A5774...21f19Bc90
0 ETH0.0014121729.91713388
Approve163717032023-01-09 20:42:59615 days ago1673296979IN
0x053A5774...21f19Bc90
0 ETH0.0013865729.37466912
Set Parameters163717032023-01-09 20:42:59615 days ago1673296979IN
0x053A5774...21f19Bc90
0 ETH0.0015553629.87466912
Approve163717032023-01-09 20:42:59615 days ago1673296979IN
0x053A5774...21f19Bc90
0 ETH0.0014573730.87466912
Set Structure163717012023-01-09 20:42:35615 days ago1673296955IN
0x053A5774...21f19Bc90
0 ETH0.01162225250
Approve163717002023-01-09 20:42:23615 days ago1673296943IN
0x053A5774...21f19Bc90
0 ETH0.0018037838.46752131
Approve163717002023-01-09 20:42:23615 days ago1673296943IN
0x053A5774...21f19Bc90
0 ETH0.0018037838.46752131
Approve163717002023-01-09 20:42:23615 days ago1673296943IN
0x053A5774...21f19Bc90
0 ETH0.002386250.55193262
Approve163717002023-01-09 20:42:23615 days ago1673296943IN
0x053A5774...21f19Bc90
0 ETH0.002386250.55193262
Approve163717002023-01-09 20:42:23615 days ago1673296943IN
0x053A5774...21f19Bc90
0 ETH0.002386250.55193262
Approve163717002023-01-09 20:42:23615 days ago1673296943IN
0x053A5774...21f19Bc90
0 ETH0.002386250.55193262
Approve163717002023-01-09 20:42:23615 days ago1673296943IN
0x053A5774...21f19Bc90
0 ETH0.002386250.55193262
Approve163717002023-01-09 20:42:23615 days ago1673296943IN
0x053A5774...21f19Bc90
0 ETH0.002386250.55193262
Approve163717002023-01-09 20:42:23615 days ago1673296943IN
0x053A5774...21f19Bc90
0 ETH0.002386250.55193262
Approve163716992023-01-09 20:42:11615 days ago1673296931IN
0x053A5774...21f19Bc90
0 ETH0.0013967529.590401
Approve163716992023-01-09 20:42:11615 days ago1673296931IN
0x053A5774...21f19Bc90
0 ETH0.0014632130.99834587
Approve163716992023-01-09 20:42:11615 days ago1673296931IN
0x053A5774...21f19Bc90
0 ETH0.0014632130.99834587
View all transactions

Latest 19 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
163717352023-01-09 20:49:47615 days ago1673297387
0x053A5774...21f19Bc90
0.01361738 ETH
163717352023-01-09 20:49:47615 days ago1673297387
0x053A5774...21f19Bc90
0.01361738 ETH
163717282023-01-09 20:48:23615 days ago1673297303
0x053A5774...21f19Bc90
0.01382374 ETH
163717282023-01-09 20:48:23615 days ago1673297303
0x053A5774...21f19Bc90
0.01382374 ETH
163717012023-01-09 20:42:35615 days ago1673296955
0x053A5774...21f19Bc90
0.0049763 ETH
163717012023-01-09 20:42:35615 days ago1673296955
0x053A5774...21f19Bc90
0.00744584 ETH
163717012023-01-09 20:42:35615 days ago1673296955
0x053A5774...21f19Bc90
0.01242215 ETH
163716982023-01-09 20:41:59615 days ago1673296919
0x053A5774...21f19Bc90
0.00385725 ETH
163716982023-01-09 20:41:59615 days ago1673296919
0x053A5774...21f19Bc90
0.00577145 ETH
163716982023-01-09 20:41:59615 days ago1673296919
0x053A5774...21f19Bc90
0.0096287 ETH
163716982023-01-09 20:41:59615 days ago1673296919
0x053A5774...21f19Bc90
0.00432184 ETH
163716982023-01-09 20:41:59615 days ago1673296919
0x053A5774...21f19Bc90
0.00646659 ETH
163716982023-01-09 20:41:59615 days ago1673296919
0x053A5774...21f19Bc90
0.01078844 ETH
163716982023-01-09 20:41:59615 days ago1673296919
0x053A5774...21f19Bc90
0.00487577 ETH
163716982023-01-09 20:41:59615 days ago1673296919
0x053A5774...21f19Bc90
0.00729542 ETH
163716982023-01-09 20:41:59615 days ago1673296919
0x053A5774...21f19Bc90
0.01217119 ETH
163716982023-01-09 20:41:59615 days ago1673296919
0x053A5774...21f19Bc90
0.00554351 ETH
163716982023-01-09 20:41:59615 days ago1673296919
0x053A5774...21f19Bc90
0.00829454 ETH
163716982023-01-09 20:41:59615 days ago1673296919
0x053A5774...21f19Bc90
0.01383806 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Yokai

Compiler Version
v0.8.11+commit.d7f03943

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2023-01-09
*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.11;


library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; }
    function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; }
    function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; }
    
    function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked { uint256 c = a + b; if(c < a) return(false, 0); return(true, c); }
    }

    function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked { if(b > a) return(false, 0); return(true, a - b); }
    }

    function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked { if (a == 0) return(true, 0); uint256 c = a * b;
        if(c / a != b) return(false, 0); return(true, c); }
    }

    function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked { if(b == 0) return(false, 0); return(true, a / b); }
    }

    function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) {
        unchecked { if(b == 0) return(false, 0); return(true, a % b); }
    }

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

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

    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        unchecked { require(b > 0, errorMessage); return a % b; }
    }
}

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 Ownable {
    address internal owner;
    constructor(address _owner) { owner = _owner; }
    modifier onlyOwner() { require(isOwner(msg.sender), "!OWNER"); _; }
    function isOwner(address account) public view returns (bool) { return account == owner; }
    function transferOwnership(address payable adr) public onlyOwner { owner = adr; emit OwnershipTransferred(adr); }
    event OwnershipTransferred(address owner);
}

interface IFactory{
        function createPair(address tokenA, address tokenB) external returns (address pair);
        function getPair(address tokenA, address tokenB) external view returns (address pair);
}

interface IRouter {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);

    function removeLiquidityWithPermit(
        address tokenA,
        address tokenB,
        uint liquidity,
        uint amountAMin,
        uint amountBMin,
        address to,
        uint deadline,
        bool approveMax, uint8 v, bytes32 r, bytes32 s
    ) external returns (uint amountA, uint amountB);

    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 Yokai is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = 'Obake Yokai';
    string private constant _symbol = 'YOKAI';
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 1000000 * (10 ** _decimals);
    uint256 private _maxTxAmountPercent = 200; // 10000;
    uint256 private _maxTransferPercent = 200;
    uint256 private _maxWalletPercent = 200;
    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) public isFeeExempt;
    mapping (address => bool) private isBot;
    IRouter router;
    address public pair;
    bool private tradingAllowed = false;
    uint256 private liquidityFee = 0;
    uint256 private marketingFee = 600;
    uint256 private developmentFee = 400;
    uint256 private burnFee = 0;
    uint256 private totalFee = 1000;
    uint256 private sellFee = 1400;
    uint256 private transferFee = 1400;
    uint256 private denominator = 10000;
    bool private swapEnabled = true;
    uint256 private swapTimes;
    bool private swapping; 
    uint256 private swapThreshold = ( _totalSupply * 350 ) / 100000;
    uint256 private _minTokenAmount = ( _totalSupply * 10 ) / 100000;
    modifier lockTheSwap { swapping = true; _; swapping = false; }

    address internal constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address internal constant development_receiver = 0xc55242eA0C3547a7FbadB1b54FfB890da0D5aaaB; 
    address internal constant marketing_receiver = 0xc55242eA0C3547a7FbadB1b54FfB890da0D5aaaB;
    address internal constant liquidity_receiver = 0xc55242eA0C3547a7FbadB1b54FfB890da0D5aaaB;

    constructor() Ownable(msg.sender) {
        IRouter _router = IRouter(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address _pair = IFactory(_router.factory()).createPair(address(this), _router.WETH());
        router = _router;
        pair = _pair;
        isFeeExempt[address(this)] = true;
        isFeeExempt[liquidity_receiver] = true;
        isFeeExempt[marketing_receiver] = true;
        isFeeExempt[msg.sender] = true;
        _balances[msg.sender] = _totalSupply;
        emit Transfer(address(0), msg.sender, _totalSupply);
    }

    receive() external payable {}
    function name() public pure returns (string memory) { return _name; }
    function symbol() public pure returns (string memory) { return _symbol; }
    function decimals() public pure returns (uint8) { return _decimals; }
    function startTrading() external onlyOwner { tradingAllowed = true; }
    function getOwner() external view override returns (address) { return owner; }
    function balanceOf(address account) public view override returns (uint256) { return _balances[account]; }
    function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(msg.sender, recipient, amount); return true; }
    function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; }
    function isCont(address addr) internal view returns (bool) { uint size; assembly { size := extcodesize(addr) } return size > 0; }
    function setisBot(address _address, bool _enabled) external onlyOwner { isBot[_address] = _enabled; }
    function setisExempt(address _address, bool _enabled) external onlyOwner { isFeeExempt[_address] = _enabled; }
    function approve(address spender, uint256 amount) public override returns (bool) { _approve(msg.sender, spender, amount); return true; }
    function totalSupply() public view override returns (uint256) { return _totalSupply.sub(balanceOf(DEAD)).sub(balanceOf(address(0))); }
    function _maxWalletToken() public view returns (uint256) { return totalSupply() * _maxWalletPercent / denominator; }
    function _maxTxAmount() public view returns (uint256) { return totalSupply() * _maxTxAmountPercent / denominator; }
    function _maxTransferAmount() public view returns (uint256) { return totalSupply() * _maxTransferPercent / denominator; }

    function preTxCheck(address sender, address recipient, uint256 amount) internal view {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > uint256(0), "Transfer amount must be greater than zero");
        require(amount <= balanceOf(sender),"You are trying to transfer more than your balance");
    }

    function _transfer(address sender, address recipient, uint256 amount) private {
        preTxCheck(sender, recipient, amount);
        checkTradingAllowed(sender, recipient);
        checkMaxWallet(sender, recipient, amount); 
        swapbackCounters(sender, recipient);
        checkTxLimit(sender, recipient, amount); 
        swapBack(sender, recipient, amount);
        _balances[sender] = _balances[sender].sub(amount);
        uint256 amountReceived = shouldTakeFee(sender, recipient) ? takeFee(sender, recipient, amount) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);
        emit Transfer(sender, recipient, amountReceived);
    }

    function setStructure(uint256 _liquidity, uint256 _marketing, uint256 _burn, uint256 _development, uint256 _total, uint256 _sell, uint256 _trans) external onlyOwner {
        liquidityFee = _liquidity;
        marketingFee = _marketing;
        burnFee = _burn;
        developmentFee = _development;
        totalFee = _total;
        sellFee = _sell;
        transferFee = _trans;
        require(totalFee <= denominator.div(1) && sellFee <= denominator.div(1), "totalFee and sellFee cannot be more than 10%");
    }

    function setParameters(uint256 _buy, uint256 _trans, uint256 _wallet) external onlyOwner {
        uint256 newTx = (totalSupply() * _buy) / 10000;
        uint256 newTransfer = (totalSupply() * _trans) / 10000;
        uint256 newWallet = (totalSupply() * _wallet) / 10000;
        _maxTxAmountPercent = _buy;
        _maxTransferPercent = _trans;
        _maxWalletPercent = _wallet;
        uint256 limit = totalSupply().mul(5).div(1000);
        require(newTx >= limit && newTransfer >= limit && newWallet >= limit, "Max TXs and Max Wallet cannot be less than .5%");
    }

    function checkTradingAllowed(address sender, address recipient) internal view {
        if(!isFeeExempt[sender] && !isFeeExempt[recipient]) { require(tradingAllowed, "tradingAllowed"); }
    }
    
    function checkMaxWallet(address sender, address recipient, uint256 amount) internal view {
        if(!isFeeExempt[sender] && !isFeeExempt[recipient] && recipient != address(pair) && recipient != address(DEAD)) {
            require((_balances[recipient].add(amount)) <= _maxWalletToken(), "Exceeds maximum wallet amount.");
        }
    }

    function swapbackCounters(address sender, address recipient) internal {
        if(recipient == pair && !isFeeExempt[sender]) { swapTimes += uint256(1); }
    }

    function checkTxLimit(address sender, address recipient, uint256 amount) internal view {
        if(sender != pair) { require(amount <= _maxTransferAmount() || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded"); }
        require(amount <= _maxTxAmount() || isFeeExempt[sender] || isFeeExempt[recipient], "TX Limit Exceeded");
    }

    function swapAndLiquify(uint256 tokens) private lockTheSwap {
        uint256 _denominator = (liquidityFee.add(1).add(marketingFee).add(developmentFee)).mul(2);
        uint256 tokensToAddLiquidityWith = tokens.mul(liquidityFee).div(_denominator);
        uint256 toSwap = tokens.sub(tokensToAddLiquidityWith);
        uint256 initialBalance = address(this).balance;
        swapTokensForETH(toSwap);
        uint256 deltaBalance = address(this).balance.sub(initialBalance);
        uint256 unitBalance = deltaBalance.div(_denominator.sub(liquidityFee));
        uint256 ETHToAddLiquidityWith = unitBalance.mul(liquidityFee);
        if(ETHToAddLiquidityWith > uint256(0)) { addLiquidity(tokensToAddLiquidityWith, ETHToAddLiquidityWith); }
        uint256 marketingAmt = unitBalance.mul(2).mul(marketingFee);
        if(marketingAmt > 0) { payable(marketing_receiver).transfer(marketingAmt); }
        uint256 remainingBalance = address(this).balance;
        if(remainingBalance > uint256(0)) { payable(development_receiver).transfer(remainingBalance); }
    }

    function addLiquidity(uint256 tokenAmount, uint256 ETHAmount) private {
        _approve(address(this), address(router), tokenAmount);
        router.addLiquidityETH{value: ETHAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            liquidity_receiver,
            block.timestamp);
    }

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

    function shouldSwapBack(address sender, address recipient, uint256 amount) internal view returns (bool) {
        bool aboveMin = amount >= _minTokenAmount;
        bool aboveThreshold = balanceOf(address(this)) >= swapThreshold;
        return !swapping && swapEnabled && tradingAllowed && aboveMin && !isFeeExempt[sender] && recipient == pair && swapTimes >= uint256(2) && aboveThreshold;
    }

    function swapBack(address sender, address recipient, uint256 amount) internal {
        if(shouldSwapBack(sender, recipient, amount)) { swapAndLiquify(swapThreshold); swapTimes = uint256(0); }
    }

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

    function getTotalFee(address sender, address recipient) internal view returns (uint256) {
        if(isBot[sender] || isBot[recipient]) { return denominator.sub(uint256(100)); }
        if(recipient == pair) { return sellFee; }
        if(sender == pair) { return totalFee; }
        return transferFee;
    }

    function takeFee(address sender, address recipient, uint256 amount) internal returns (uint256) {
        if(getTotalFee(sender, recipient) > 0) {
            uint256 feeAmount = amount.div(denominator).mul(getTotalFee(sender, recipient));
            _balances[address(this)] = _balances[address(this)].add(feeAmount);
            emit Transfer(sender, address(this), feeAmount);
            if(burnFee > uint256(0)) { _transfer(address(this), address(DEAD), amount.div(denominator).mul(burnFee)); }
            return amount.sub(feeAmount); 
        }   
        return amount;
    }

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

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

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":"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":"_maxTransferAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isFeeExempt","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":"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":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidity","type":"uint256"},{"internalType":"uint256","name":"_marketing","type":"uint256"},{"internalType":"uint256","name":"_burn","type":"uint256"},{"internalType":"uint256","name":"_development","type":"uint256"},{"internalType":"uint256","name":"_total","type":"uint256"},{"internalType":"uint256","name":"_sell","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"}],"name":"setStructure","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setisExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"startTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"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":[{"internalType":"address payable","name":"adr","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526009600a62000014919062000711565b620f424062000024919062000762565b60015560c860025560c860035560c86004556000600a60146101000a81548160ff0219169083151502179055506000600b55610258600c55610190600d556000600e556103e8600f556105786010556105786011556127106012556001601360006101000a81548160ff021916908315150217905550620186a061015e600154620000b0919062000762565b620000bc9190620007f2565b601655620186a0600a600154620000d4919062000762565b620000e09190620007f2565b601755348015620000f057600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200019a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c0919062000894565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000228573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200024e919062000894565b6040518363ffffffff1660e01b81526004016200026d929190620008d7565b6020604051808303816000875af11580156200028d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b3919062000894565b905081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016007600073c55242ea0c3547a7fbadb1b54ffb890da0d5aaab73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016007600073c55242ea0c3547a7fbadb1b54ffb890da0d5aaab73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600154600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60015460405162000567919062000915565b60405180910390a3505062000932565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200060557808604811115620005dd57620005dc62000577565b5b6001851615620005ed5780820291505b8081029050620005fd85620005a6565b9450620005bd565b94509492505050565b600082620006205760019050620006f3565b81620006305760009050620006f3565b816001811462000649576002811462000654576200068a565b6001915050620006f3565b60ff84111562000669576200066862000577565b5b8360020a91508482111562000683576200068262000577565b5b50620006f3565b5060208310610133831016604e8410600b8410161715620006c45782820a905083811115620006be57620006bd62000577565b5b620006f3565b620006d38484846001620005b3565b92509050818404811115620006ed57620006ec62000577565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b60006200071e82620006fa565b91506200072b8362000704565b92506200075a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84846200060e565b905092915050565b60006200076f82620006fa565b91506200077c83620006fa565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620007b857620007b762000577565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620007ff82620006fa565b91506200080c83620006fa565b9250826200081f576200081e620007c3565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200085c826200082f565b9050919050565b6200086e816200084f565b81146200087a57600080fd5b50565b6000815190506200088e8162000863565b92915050565b600060208284031215620008ad57620008ac6200082a565b5b6000620008bd848285016200087d565b91505092915050565b620008d1816200084f565b82525050565b6000604082019050620008ee6000830185620008c6565b620008fd6020830184620008c6565b9392505050565b6200090f81620006fa565b82525050565b60006020820190506200092c600083018462000904565b92915050565b6134b380620009426000396000f3fe6080604052600436106101395760003560e01c806348ff2b8b116100ab5780638c41180e1161006f5780638c41180e1461043557806395d89b411461045e578063a8aa1b3114610489578063a9059cbb146104b4578063dd62ed3e146104f1578063f2fde38b1461052e57610140565b806348ff2b8b1461034e57806370a082311461037757806378109e54146103b45780637d1db4a5146103df578063893d20e81461040a57610140565b806323b872dd116100fd57806323b872dd1461022c578063293230b8146102695780632f54bf6e14610280578063313ce567146102bd57806334c5d2ce146102e85780633f4218e01461031157610140565b8063044019301461014557806306fdde031461016e578063095ea7b31461019957806318160ddd146101d65780631f976b7e1461020157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061016c600480360381019061016791906124c6565b610557565b005b34801561017a57600080fd5b50610183610656565b6040516101909190612601565b60405180910390f35b3480156101a557600080fd5b506101c060048036038101906101bb9190612681565b610693565b6040516101cd91906126dc565b60405180910390f35b3480156101e257600080fd5b506101eb6106aa565b6040516101f89190612706565b60405180910390f35b34801561020d57600080fd5b506102166106eb565b6040516102239190612706565b60405180910390f35b34801561023857600080fd5b50610253600480360381019061024e9190612721565b610714565b60405161026091906126dc565b60405180910390f35b34801561027557600080fd5b5061027e6107df565b005b34801561028c57600080fd5b506102a760048036038101906102a29190612774565b610844565b6040516102b491906126dc565b60405180910390f35b3480156102c957600080fd5b506102d261089d565b6040516102df91906127bd565b60405180910390f35b3480156102f457600080fd5b5061030f600480360381019061030a91906127d8565b6108a6565b005b34801561031d57600080fd5b5061033860048036038101906103339190612774565b610a06565b60405161034591906126dc565b60405180910390f35b34801561035a57600080fd5b5061037560048036038101906103709190612857565b610a26565b005b34801561038357600080fd5b5061039e60048036038101906103999190612774565b610ac9565b6040516103ab9190612706565b60405180910390f35b3480156103c057600080fd5b506103c9610b12565b6040516103d69190612706565b60405180910390f35b3480156103eb57600080fd5b506103f4610b3b565b6040516104019190612706565b60405180910390f35b34801561041657600080fd5b5061041f610b64565b60405161042c91906128a6565b60405180910390f35b34801561044157600080fd5b5061045c60048036038101906104579190612857565b610b8d565b005b34801561046a57600080fd5b50610473610c30565b6040516104809190612601565b60405180910390f35b34801561049557600080fd5b5061049e610c6d565b6040516104ab91906128a6565b60405180910390f35b3480156104c057600080fd5b506104db60048036038101906104d69190612681565b610c93565b6040516104e891906126dc565b60405180910390f35b3480156104fd57600080fd5b50610518600480360381019061051391906128c1565b610caa565b6040516105259190612706565b60405180910390f35b34801561053a57600080fd5b506105556004803603810190610550919061293f565b610d31565b005b61056033610844565b61059f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610596906129b8565b60405180910390fd5b86600b8190555085600c8190555084600e8190555083600d8190555082600f8190555081601081905550806011819055506105e66001601254610df390919063ffffffff16565b600f541115801561060e57506106086001601254610df390919063ffffffff16565b60105411155b61064d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064490612a4a565b60405180910390fd5b50505050505050565b60606040518060400160405280600b81526020017f4f62616b6520596f6b6169000000000000000000000000000000000000000000815250905090565b60006106a0338484610e09565b6001905092915050565b60006106e66106b96000610ac9565b6106d86106c761dead610ac9565b600154610fd490919063ffffffff16565b610fd490919063ffffffff16565b905090565b60006012546003546106fb6106aa565b6107059190612a99565b61070f9190612b22565b905090565b6000610721848484610fea565b6107d484336107cf8560405180606001604052806028815260200161345660289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111e39092919063ffffffff16565b610e09565b600190509392505050565b6107e833610844565b610827576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081e906129b8565b60405180910390fd5b6001600a60146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b6108af33610844565b6108ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e5906129b8565b60405180910390fd5b6000612710846108fc6106aa565b6109069190612a99565b6109109190612b22565b90506000612710846109206106aa565b61092a9190612a99565b6109349190612b22565b90506000612710846109446106aa565b61094e9190612a99565b6109589190612b22565b905085600281905550846003819055508360048190555060006109a06103e861099260056109846106aa565b61123890919063ffffffff16565b610df390919063ffffffff16565b90508084101580156109b25750808310155b80156109be5750808210155b6109fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f490612bc5565b60405180910390fd5b50505050505050565b60076020528060005260406000206000915054906101000a900460ff1681565b610a2f33610844565b610a6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a65906129b8565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000601254600454610b226106aa565b610b2c9190612a99565b610b369190612b22565b905090565b6000601254600254610b4b6106aa565b610b559190612a99565b610b5f9190612b22565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610b9633610844565b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcc906129b8565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60606040518060400160405280600581526020017f594f4b4149000000000000000000000000000000000000000000000000000000815250905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ca0338484610fea565b6001905092915050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610d3a33610844565b610d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d70906129b8565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051610de89190612c44565b60405180910390a150565b60008183610e019190612b22565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7090612cd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ee9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee090612d63565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610fc79190612706565b60405180910390a3505050565b60008183610fe29190612d83565b905092915050565b610ff583838361124e565b610fff83836113c1565b61100a8383836114be565b611014838361169c565b61101f838383611767565b61102a8383836119a6565b61107c81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd490919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006110cb84846119cf565b6110d557816110e1565b6110e0848484611a7d565b5b905061113581600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c2590919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111d59190612706565b60405180910390a350505050565b600083831115829061122b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112229190612601565b60405180910390fd5b5082840390509392505050565b600081836112469190612a99565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b590612e29565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561132e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132590612ebb565b60405180910390fd5b60008111611371576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136890612f4d565b60405180910390fd5b61137a83610ac9565b8111156113bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b390612fdf565b60405180910390fd5b505050565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114655750600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156114ba57600a60149054906101000a900460ff166114b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b09061304b565b60405180910390fd5b5b5050565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115625750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115bc5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115f6575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561169757611603610b12565b61165582600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c2590919063ffffffff16565b1115611696576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168d906130b7565b60405180910390fd5b5b505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480156117435750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117635760016014600082825461175b91906130d7565b925050819055505b5050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146118af576117c46106eb565b8111158061181b5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061186f5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6118ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a590613179565b60405180910390fd5b5b6118b7610b3b565b8111158061190e5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806119625750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6119a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199890613179565b60405180910390fd5b505050565b6119b1838383611c3b565b156119ca576119c1601654611d74565b60006014819055505b505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a755750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b600080611a8a8585611fc5565b1115611c1a576000611ac2611a9f8686611fc5565b611ab460125486610df390919063ffffffff16565b61123890919063ffffffff16565b9050611b1681600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c2590919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bb69190612706565b60405180910390a36000600e541115611bff57611bfe3061dead611bf9600e54611beb60125489610df390919063ffffffff16565b61123890919063ffffffff16565b610fea565b5b611c128184610fd490919063ffffffff16565b915050611c1e565b8190505b9392505050565b60008183611c3391906130d7565b905092915050565b60008060175483101590506000601654611c5430610ac9565b10159050601560009054906101000a900460ff16158015611c815750601360009054906101000a900460ff165b8015611c995750600a60149054906101000a900460ff165b8015611ca25750815b8015611cf85750600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d515750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8015611d605750600260145410155b8015611d695750805b925050509392505050565b6001601560006101000a81548160ff0219169083151502179055506000611de26002611dd4600d54611dc6600c54611db86001600b54611c2590919063ffffffff16565b611c2590919063ffffffff16565b611c2590919063ffffffff16565b61123890919063ffffffff16565b90506000611e0d82611dff600b548661123890919063ffffffff16565b610df390919063ffffffff16565b90506000611e248285610fd490919063ffffffff16565b90506000479050611e3482612156565b6000611e498247610fd490919063ffffffff16565b90506000611e74611e65600b5488610fd490919063ffffffff16565b83610df390919063ffffffff16565b90506000611e8d600b548361123890919063ffffffff16565b90506000811115611ea357611ea28682612399565b5b6000611ecd600c54611ebf60028661123890919063ffffffff16565b61123890919063ffffffff16565b90506000811115611f345773c55242ea0c3547a7fbadb1b54ffb890da0d5aaab73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f32573d6000803e3d6000fd5b505b60004790506000811115611f9e5773c55242ea0c3547a7fbadb1b54ffb890da0d5aaab73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f9c573d6000803e3d6000fd5b505b5050505050505050506000601560006101000a81548160ff02191690831515021790555050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120685750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561208a576120836064601254610fd490919063ffffffff16565b9050612150565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156120ea576010549050612150565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561214a57600f549050612150565b60115490505b92915050565b6000600267ffffffffffffffff81111561217357612172613199565b5b6040519080825280602002602001820160405280156121a15781602001602082028036833780820191505090505b50905030816000815181106121b9576121b86131c8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612260573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612284919061320c565b81600181518110612298576122976131c8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122ff30600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610e09565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612363959493929190613332565b600060405180830381600087803b15801561237d57600080fd5b505af1158015612391573d6000803e3d6000fd5b505050505050565b6123c630600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610e09565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008073c55242ea0c3547a7fbadb1b54ffb890da0d5aaab426040518863ffffffff1660e01b81526004016124419695949392919061338c565b60606040518083038185885af115801561245f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906124849190613402565b5050505050565b600080fd5b6000819050919050565b6124a381612490565b81146124ae57600080fd5b50565b6000813590506124c08161249a565b92915050565b600080600080600080600060e0888a0312156124e5576124e461248b565b5b60006124f38a828b016124b1565b97505060206125048a828b016124b1565b96505060406125158a828b016124b1565b95505060606125268a828b016124b1565b94505060806125378a828b016124b1565b93505060a06125488a828b016124b1565b92505060c06125598a828b016124b1565b91505092959891949750929550565b600081519050919050565b600082825260208201905092915050565b60005b838110156125a2578082015181840152602081019050612587565b838111156125b1576000848401525b50505050565b6000601f19601f8301169050919050565b60006125d382612568565b6125dd8185612573565b93506125ed818560208601612584565b6125f6816125b7565b840191505092915050565b6000602082019050818103600083015261261b81846125c8565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061264e82612623565b9050919050565b61265e81612643565b811461266957600080fd5b50565b60008135905061267b81612655565b92915050565b600080604083850312156126985761269761248b565b5b60006126a68582860161266c565b92505060206126b7858286016124b1565b9150509250929050565b60008115159050919050565b6126d6816126c1565b82525050565b60006020820190506126f160008301846126cd565b92915050565b61270081612490565b82525050565b600060208201905061271b60008301846126f7565b92915050565b60008060006060848603121561273a5761273961248b565b5b60006127488682870161266c565b93505060206127598682870161266c565b925050604061276a868287016124b1565b9150509250925092565b60006020828403121561278a5761278961248b565b5b60006127988482850161266c565b91505092915050565b600060ff82169050919050565b6127b7816127a1565b82525050565b60006020820190506127d260008301846127ae565b92915050565b6000806000606084860312156127f1576127f061248b565b5b60006127ff868287016124b1565b9350506020612810868287016124b1565b9250506040612821868287016124b1565b9150509250925092565b612834816126c1565b811461283f57600080fd5b50565b6000813590506128518161282b565b92915050565b6000806040838503121561286e5761286d61248b565b5b600061287c8582860161266c565b925050602061288d85828601612842565b9150509250929050565b6128a081612643565b82525050565b60006020820190506128bb6000830184612897565b92915050565b600080604083850312156128d8576128d761248b565b5b60006128e68582860161266c565b92505060206128f78582860161266c565b9150509250929050565b600061290c82612623565b9050919050565b61291c81612901565b811461292757600080fd5b50565b60008135905061293981612913565b92915050565b6000602082840312156129555761295461248b565b5b60006129638482850161292a565b91505092915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b60006129a2600683612573565b91506129ad8261296c565b602082019050919050565b600060208201905081810360008301526129d181612995565b9050919050565b7f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60008201527f6f7265207468616e203130250000000000000000000000000000000000000000602082015250565b6000612a34602c83612573565b9150612a3f826129d8565b604082019050919050565b60006020820190508181036000830152612a6381612a27565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612aa482612490565b9150612aaf83612490565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ae857612ae7612a6a565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612b2d82612490565b9150612b3883612490565b925082612b4857612b47612af3565b5b828204905092915050565b7f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560008201527f206c657373207468616e202e3525000000000000000000000000000000000000602082015250565b6000612baf602e83612573565b9150612bba82612b53565b604082019050919050565b60006020820190508181036000830152612bde81612ba2565b9050919050565b6000819050919050565b6000612c0a612c05612c0084612623565b612be5565b612623565b9050919050565b6000612c1c82612bef565b9050919050565b6000612c2e82612c11565b9050919050565b612c3e81612c23565b82525050565b6000602082019050612c596000830184612c35565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612cbb602483612573565b9150612cc682612c5f565b604082019050919050565b60006020820190508181036000830152612cea81612cae565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d4d602283612573565b9150612d5882612cf1565b604082019050919050565b60006020820190508181036000830152612d7c81612d40565b9050919050565b6000612d8e82612490565b9150612d9983612490565b925082821015612dac57612dab612a6a565b5b828203905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612e13602583612573565b9150612e1e82612db7565b604082019050919050565b60006020820190508181036000830152612e4281612e06565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612ea5602383612573565b9150612eb082612e49565b604082019050919050565b60006020820190508181036000830152612ed481612e98565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612f37602983612573565b9150612f4282612edb565b604082019050919050565b60006020820190508181036000830152612f6681612f2a565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b6000612fc9603183612573565b9150612fd482612f6d565b604082019050919050565b60006020820190508181036000830152612ff881612fbc565b9050919050565b7f74726164696e67416c6c6f776564000000000000000000000000000000000000600082015250565b6000613035600e83612573565b915061304082612fff565b602082019050919050565b6000602082019050818103600083015261306481613028565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000600082015250565b60006130a1601e83612573565b91506130ac8261306b565b602082019050919050565b600060208201905081810360008301526130d081613094565b9050919050565b60006130e282612490565b91506130ed83612490565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561312257613121612a6a565b5b828201905092915050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000613163601183612573565b915061316e8261312d565b602082019050919050565b6000602082019050818103600083015261319281613156565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061320681612655565b92915050565b6000602082840312156132225761322161248b565b5b6000613230848285016131f7565b91505092915050565b6000819050919050565b600061325e61325961325484613239565b612be5565b612490565b9050919050565b61326e81613243565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132a981612643565b82525050565b60006132bb83836132a0565b60208301905092915050565b6000602082019050919050565b60006132df82613274565b6132e9818561327f565b93506132f483613290565b8060005b8381101561332557815161330c88826132af565b9750613317836132c7565b9250506001810190506132f8565b5085935050505092915050565b600060a08201905061334760008301886126f7565b6133546020830187613265565b818103604083015261336681866132d4565b90506133756060830185612897565b61338260808301846126f7565b9695505050505050565b600060c0820190506133a16000830189612897565b6133ae60208301886126f7565b6133bb6040830187613265565b6133c86060830186613265565b6133d56080830185612897565b6133e260a08301846126f7565b979650505050505050565b6000815190506133fc8161249a565b92915050565b60008060006060848603121561341b5761341a61248b565b5b6000613429868287016133ed565b935050602061343a868287016133ed565b925050604061344b868287016133ed565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207e0fc51f30a9245856aff1f1480f28301da4e2988641903b69e7ac939a41faa664736f6c634300080b0033

Deployed Bytecode

0x6080604052600436106101395760003560e01c806348ff2b8b116100ab5780638c41180e1161006f5780638c41180e1461043557806395d89b411461045e578063a8aa1b3114610489578063a9059cbb146104b4578063dd62ed3e146104f1578063f2fde38b1461052e57610140565b806348ff2b8b1461034e57806370a082311461037757806378109e54146103b45780637d1db4a5146103df578063893d20e81461040a57610140565b806323b872dd116100fd57806323b872dd1461022c578063293230b8146102695780632f54bf6e14610280578063313ce567146102bd57806334c5d2ce146102e85780633f4218e01461031157610140565b8063044019301461014557806306fdde031461016e578063095ea7b31461019957806318160ddd146101d65780631f976b7e1461020157610140565b3661014057005b600080fd5b34801561015157600080fd5b5061016c600480360381019061016791906124c6565b610557565b005b34801561017a57600080fd5b50610183610656565b6040516101909190612601565b60405180910390f35b3480156101a557600080fd5b506101c060048036038101906101bb9190612681565b610693565b6040516101cd91906126dc565b60405180910390f35b3480156101e257600080fd5b506101eb6106aa565b6040516101f89190612706565b60405180910390f35b34801561020d57600080fd5b506102166106eb565b6040516102239190612706565b60405180910390f35b34801561023857600080fd5b50610253600480360381019061024e9190612721565b610714565b60405161026091906126dc565b60405180910390f35b34801561027557600080fd5b5061027e6107df565b005b34801561028c57600080fd5b506102a760048036038101906102a29190612774565b610844565b6040516102b491906126dc565b60405180910390f35b3480156102c957600080fd5b506102d261089d565b6040516102df91906127bd565b60405180910390f35b3480156102f457600080fd5b5061030f600480360381019061030a91906127d8565b6108a6565b005b34801561031d57600080fd5b5061033860048036038101906103339190612774565b610a06565b60405161034591906126dc565b60405180910390f35b34801561035a57600080fd5b5061037560048036038101906103709190612857565b610a26565b005b34801561038357600080fd5b5061039e60048036038101906103999190612774565b610ac9565b6040516103ab9190612706565b60405180910390f35b3480156103c057600080fd5b506103c9610b12565b6040516103d69190612706565b60405180910390f35b3480156103eb57600080fd5b506103f4610b3b565b6040516104019190612706565b60405180910390f35b34801561041657600080fd5b5061041f610b64565b60405161042c91906128a6565b60405180910390f35b34801561044157600080fd5b5061045c60048036038101906104579190612857565b610b8d565b005b34801561046a57600080fd5b50610473610c30565b6040516104809190612601565b60405180910390f35b34801561049557600080fd5b5061049e610c6d565b6040516104ab91906128a6565b60405180910390f35b3480156104c057600080fd5b506104db60048036038101906104d69190612681565b610c93565b6040516104e891906126dc565b60405180910390f35b3480156104fd57600080fd5b50610518600480360381019061051391906128c1565b610caa565b6040516105259190612706565b60405180910390f35b34801561053a57600080fd5b506105556004803603810190610550919061293f565b610d31565b005b61056033610844565b61059f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610596906129b8565b60405180910390fd5b86600b8190555085600c8190555084600e8190555083600d8190555082600f8190555081601081905550806011819055506105e66001601254610df390919063ffffffff16565b600f541115801561060e57506106086001601254610df390919063ffffffff16565b60105411155b61064d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161064490612a4a565b60405180910390fd5b50505050505050565b60606040518060400160405280600b81526020017f4f62616b6520596f6b6169000000000000000000000000000000000000000000815250905090565b60006106a0338484610e09565b6001905092915050565b60006106e66106b96000610ac9565b6106d86106c761dead610ac9565b600154610fd490919063ffffffff16565b610fd490919063ffffffff16565b905090565b60006012546003546106fb6106aa565b6107059190612a99565b61070f9190612b22565b905090565b6000610721848484610fea565b6107d484336107cf8560405180606001604052806028815260200161345660289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111e39092919063ffffffff16565b610e09565b600190509392505050565b6107e833610844565b610827576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161081e906129b8565b60405180910390fd5b6001600a60146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b6108af33610844565b6108ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e5906129b8565b60405180910390fd5b6000612710846108fc6106aa565b6109069190612a99565b6109109190612b22565b90506000612710846109206106aa565b61092a9190612a99565b6109349190612b22565b90506000612710846109446106aa565b61094e9190612a99565b6109589190612b22565b905085600281905550846003819055508360048190555060006109a06103e861099260056109846106aa565b61123890919063ffffffff16565b610df390919063ffffffff16565b90508084101580156109b25750808310155b80156109be5750808210155b6109fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f490612bc5565b60405180910390fd5b50505050505050565b60076020528060005260406000206000915054906101000a900460ff1681565b610a2f33610844565b610a6e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a65906129b8565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000601254600454610b226106aa565b610b2c9190612a99565b610b369190612b22565b905090565b6000601254600254610b4b6106aa565b610b559190612a99565b610b5f9190612b22565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610b9633610844565b610bd5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bcc906129b8565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60606040518060400160405280600581526020017f594f4b4149000000000000000000000000000000000000000000000000000000815250905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610ca0338484610fea565b6001905092915050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610d3a33610844565b610d79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d70906129b8565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051610de89190612c44565b60405180910390a150565b60008183610e019190612b22565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610e79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7090612cd1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ee9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee090612d63565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610fc79190612706565b60405180910390a3505050565b60008183610fe29190612d83565b905092915050565b610ff583838361124e565b610fff83836113c1565b61100a8383836114be565b611014838361169c565b61101f838383611767565b61102a8383836119a6565b61107c81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fd490919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006110cb84846119cf565b6110d557816110e1565b6110e0848484611a7d565b5b905061113581600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c2590919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111d59190612706565b60405180910390a350505050565b600083831115829061122b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112229190612601565b60405180910390fd5b5082840390509392505050565b600081836112469190612a99565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156112be576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b590612e29565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561132e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132590612ebb565b60405180910390fd5b60008111611371576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136890612f4d565b60405180910390fd5b61137a83610ac9565b8111156113bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b390612fdf565b60405180910390fd5b505050565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114655750600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156114ba57600a60149054906101000a900460ff166114b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b09061304b565b60405180910390fd5b5b5050565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156115625750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115bc5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156115f6575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b1561169757611603610b12565b61165582600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c2590919063ffffffff16565b1115611696576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168d906130b7565b60405180910390fd5b5b505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480156117435750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117635760016014600082825461175b91906130d7565b925050819055505b5050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146118af576117c46106eb565b8111158061181b5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061186f5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6118ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a590613179565b60405180910390fd5b5b6118b7610b3b565b8111158061190e5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806119625750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6119a1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199890613179565b60405180910390fd5b505050565b6119b1838383611c3b565b156119ca576119c1601654611d74565b60006014819055505b505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a755750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b600080611a8a8585611fc5565b1115611c1a576000611ac2611a9f8686611fc5565b611ab460125486610df390919063ffffffff16565b61123890919063ffffffff16565b9050611b1681600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c2590919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bb69190612706565b60405180910390a36000600e541115611bff57611bfe3061dead611bf9600e54611beb60125489610df390919063ffffffff16565b61123890919063ffffffff16565b610fea565b5b611c128184610fd490919063ffffffff16565b915050611c1e565b8190505b9392505050565b60008183611c3391906130d7565b905092915050565b60008060175483101590506000601654611c5430610ac9565b10159050601560009054906101000a900460ff16158015611c815750601360009054906101000a900460ff165b8015611c995750600a60149054906101000a900460ff165b8015611ca25750815b8015611cf85750600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d515750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8015611d605750600260145410155b8015611d695750805b925050509392505050565b6001601560006101000a81548160ff0219169083151502179055506000611de26002611dd4600d54611dc6600c54611db86001600b54611c2590919063ffffffff16565b611c2590919063ffffffff16565b611c2590919063ffffffff16565b61123890919063ffffffff16565b90506000611e0d82611dff600b548661123890919063ffffffff16565b610df390919063ffffffff16565b90506000611e248285610fd490919063ffffffff16565b90506000479050611e3482612156565b6000611e498247610fd490919063ffffffff16565b90506000611e74611e65600b5488610fd490919063ffffffff16565b83610df390919063ffffffff16565b90506000611e8d600b548361123890919063ffffffff16565b90506000811115611ea357611ea28682612399565b5b6000611ecd600c54611ebf60028661123890919063ffffffff16565b61123890919063ffffffff16565b90506000811115611f345773c55242ea0c3547a7fbadb1b54ffb890da0d5aaab73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f32573d6000803e3d6000fd5b505b60004790506000811115611f9e5773c55242ea0c3547a7fbadb1b54ffb890da0d5aaab73ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f9c573d6000803e3d6000fd5b505b5050505050505050506000601560006101000a81548160ff02191690831515021790555050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120685750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b1561208a576120836064601254610fd490919063ffffffff16565b9050612150565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156120ea576010549050612150565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561214a57600f549050612150565b60115490505b92915050565b6000600267ffffffffffffffff81111561217357612172613199565b5b6040519080825280602002602001820160405280156121a15781602001602082028036833780820191505090505b50905030816000815181106121b9576121b86131c8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612260573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612284919061320c565b81600181518110612298576122976131c8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506122ff30600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610e09565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401612363959493929190613332565b600060405180830381600087803b15801561237d57600080fd5b505af1158015612391573d6000803e3d6000fd5b505050505050565b6123c630600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610e09565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71982308560008073c55242ea0c3547a7fbadb1b54ffb890da0d5aaab426040518863ffffffff1660e01b81526004016124419695949392919061338c565b60606040518083038185885af115801561245f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906124849190613402565b5050505050565b600080fd5b6000819050919050565b6124a381612490565b81146124ae57600080fd5b50565b6000813590506124c08161249a565b92915050565b600080600080600080600060e0888a0312156124e5576124e461248b565b5b60006124f38a828b016124b1565b97505060206125048a828b016124b1565b96505060406125158a828b016124b1565b95505060606125268a828b016124b1565b94505060806125378a828b016124b1565b93505060a06125488a828b016124b1565b92505060c06125598a828b016124b1565b91505092959891949750929550565b600081519050919050565b600082825260208201905092915050565b60005b838110156125a2578082015181840152602081019050612587565b838111156125b1576000848401525b50505050565b6000601f19601f8301169050919050565b60006125d382612568565b6125dd8185612573565b93506125ed818560208601612584565b6125f6816125b7565b840191505092915050565b6000602082019050818103600083015261261b81846125c8565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061264e82612623565b9050919050565b61265e81612643565b811461266957600080fd5b50565b60008135905061267b81612655565b92915050565b600080604083850312156126985761269761248b565b5b60006126a68582860161266c565b92505060206126b7858286016124b1565b9150509250929050565b60008115159050919050565b6126d6816126c1565b82525050565b60006020820190506126f160008301846126cd565b92915050565b61270081612490565b82525050565b600060208201905061271b60008301846126f7565b92915050565b60008060006060848603121561273a5761273961248b565b5b60006127488682870161266c565b93505060206127598682870161266c565b925050604061276a868287016124b1565b9150509250925092565b60006020828403121561278a5761278961248b565b5b60006127988482850161266c565b91505092915050565b600060ff82169050919050565b6127b7816127a1565b82525050565b60006020820190506127d260008301846127ae565b92915050565b6000806000606084860312156127f1576127f061248b565b5b60006127ff868287016124b1565b9350506020612810868287016124b1565b9250506040612821868287016124b1565b9150509250925092565b612834816126c1565b811461283f57600080fd5b50565b6000813590506128518161282b565b92915050565b6000806040838503121561286e5761286d61248b565b5b600061287c8582860161266c565b925050602061288d85828601612842565b9150509250929050565b6128a081612643565b82525050565b60006020820190506128bb6000830184612897565b92915050565b600080604083850312156128d8576128d761248b565b5b60006128e68582860161266c565b92505060206128f78582860161266c565b9150509250929050565b600061290c82612623565b9050919050565b61291c81612901565b811461292757600080fd5b50565b60008135905061293981612913565b92915050565b6000602082840312156129555761295461248b565b5b60006129638482850161292a565b91505092915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b60006129a2600683612573565b91506129ad8261296c565b602082019050919050565b600060208201905081810360008301526129d181612995565b9050919050565b7f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60008201527f6f7265207468616e203130250000000000000000000000000000000000000000602082015250565b6000612a34602c83612573565b9150612a3f826129d8565b604082019050919050565b60006020820190508181036000830152612a6381612a27565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612aa482612490565b9150612aaf83612490565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612ae857612ae7612a6a565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612b2d82612490565b9150612b3883612490565b925082612b4857612b47612af3565b5b828204905092915050565b7f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560008201527f206c657373207468616e202e3525000000000000000000000000000000000000602082015250565b6000612baf602e83612573565b9150612bba82612b53565b604082019050919050565b60006020820190508181036000830152612bde81612ba2565b9050919050565b6000819050919050565b6000612c0a612c05612c0084612623565b612be5565b612623565b9050919050565b6000612c1c82612bef565b9050919050565b6000612c2e82612c11565b9050919050565b612c3e81612c23565b82525050565b6000602082019050612c596000830184612c35565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612cbb602483612573565b9150612cc682612c5f565b604082019050919050565b60006020820190508181036000830152612cea81612cae565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d4d602283612573565b9150612d5882612cf1565b604082019050919050565b60006020820190508181036000830152612d7c81612d40565b9050919050565b6000612d8e82612490565b9150612d9983612490565b925082821015612dac57612dab612a6a565b5b828203905092915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612e13602583612573565b9150612e1e82612db7565b604082019050919050565b60006020820190508181036000830152612e4281612e06565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612ea5602383612573565b9150612eb082612e49565b604082019050919050565b60006020820190508181036000830152612ed481612e98565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612f37602983612573565b9150612f4282612edb565b604082019050919050565b60006020820190508181036000830152612f6681612f2a565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b6000612fc9603183612573565b9150612fd482612f6d565b604082019050919050565b60006020820190508181036000830152612ff881612fbc565b9050919050565b7f74726164696e67416c6c6f776564000000000000000000000000000000000000600082015250565b6000613035600e83612573565b915061304082612fff565b602082019050919050565b6000602082019050818103600083015261306481613028565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000600082015250565b60006130a1601e83612573565b91506130ac8261306b565b602082019050919050565b600060208201905081810360008301526130d081613094565b9050919050565b60006130e282612490565b91506130ed83612490565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561312257613121612a6a565b5b828201905092915050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b6000613163601183612573565b915061316e8261312d565b602082019050919050565b6000602082019050818103600083015261319281613156565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60008151905061320681612655565b92915050565b6000602082840312156132225761322161248b565b5b6000613230848285016131f7565b91505092915050565b6000819050919050565b600061325e61325961325484613239565b612be5565b612490565b9050919050565b61326e81613243565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6132a981612643565b82525050565b60006132bb83836132a0565b60208301905092915050565b6000602082019050919050565b60006132df82613274565b6132e9818561327f565b93506132f483613290565b8060005b8381101561332557815161330c88826132af565b9750613317836132c7565b9250506001810190506132f8565b5085935050505092915050565b600060a08201905061334760008301886126f7565b6133546020830187613265565b818103604083015261336681866132d4565b90506133756060830185612897565b61338260808301846126f7565b9695505050505050565b600060c0820190506133a16000830189612897565b6133ae60208301886126f7565b6133bb6040830187613265565b6133c86060830186613265565b6133d56080830185612897565b6133e260a08301846126f7565b979650505050505050565b6000815190506133fc8161249a565b92915050565b60008060006060848603121561341b5761341a61248b565b5b6000613429868287016133ed565b935050602061343a868287016133ed565b925050604061344b868287016133ed565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212207e0fc51f30a9245856aff1f1480f28301da4e2988641903b69e7ac939a41faa664736f6c634300080b0033

Deployed Bytecode Sourcemap

4705:11732:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9984:527;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7049:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8189:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8331:134;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8714:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15782:309;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7278:69;;;;;;;;;;;;;:::i;:::-;;3075:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7203:69;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10519:584;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5260:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8073:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7437:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8471:116;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8593:115;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7353:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7966:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7124:73;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5378:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7548:142;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7696:129;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3170:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9984:527;3033:19;3041:10;3033:7;:19::i;:::-;3025:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;10175:10:::1;10160:12;:25;;;;10211:10;10196:12;:25;;;;10242:5;10232:7;:15;;;;10275:12;10258:14;:29;;;;10309:6;10298:8;:17;;;;10336:5;10326:7;:15;;;;10366:6;10352:11;:20;;;;10403:18;10419:1;10403:11;;:15;;:18;;;;:::i;:::-;10391:8;;:30;;:63;;;;;10436:18;10452:1;10436:11;;:15;;:18;;;;:::i;:::-;10425:7;;:29;;10391:63;10383:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;9984:527:::0;;;;;;;:::o;7049:69::-;7086:13;7110:5;;;;;;;;;;;;;;;;;7103:12;;7049:69;:::o;8189:136::-;8264:4;8272:37;8281:10;8293:7;8302:6;8272:8;:37::i;:::-;8318:4;8311:11;;8189:136;;;;:::o;8331:134::-;8384:7;8402:60;8440:21;8458:1;8440:9;:21::i;:::-;8402:33;8419:15;6104:42;8419:9;:15::i;:::-;8402:12;;:16;;:33;;;;:::i;:::-;:37;;:60;;;;:::i;:::-;8395:67;;8331:134;:::o;8714:121::-;8765:7;8821:11;;8799:19;;8783:13;:11;:13::i;:::-;:35;;;;:::i;:::-;:49;;;;:::i;:::-;8776:56;;8714:121;:::o;15782:309::-;15880:4;15897:36;15907:6;15915:9;15926:6;15897:9;:36::i;:::-;15944:117;15953:6;15961:10;15973:87;16009:6;15973:87;;;;;;;;;;;;;;;;;:11;:19;15985:6;15973:19;;;;;;;;;;;;;;;:31;15993:10;15973:31;;;;;;;;;;;;;;;;:35;;:87;;;;;:::i;:::-;15944:8;:117::i;:::-;16079:4;16072:11;;15782:309;;;;;:::o;7278:69::-;3033:19;3041:10;3033:7;:19::i;:::-;3025:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;7340:4:::1;7323:14;;:21;;;;;;;;;;;;;;;;;;7278:69::o:0;3075:89::-;3130:4;3156:5;;;;;;;;;;;3145:16;;:7;:16;;;3138:23;;3075:89;;;:::o;7203:69::-;7244:5;4914:1;7253:16;;7203:69;:::o;10519:584::-;3033:19;3041:10;3033:7;:19::i;:::-;3025:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;10619:13:::1;10660:5;10652:4;10636:13;:11;:13::i;:::-;:20;;;;:::i;:::-;10635:30;;;;:::i;:::-;10619:46;;10676:19;10725:5;10715:6;10699:13;:11;:13::i;:::-;:22;;;;:::i;:::-;10698:32;;;;:::i;:::-;10676:54;;10741:17;10789:5;10778:7;10762:13;:11;:13::i;:::-;:23;;;;:::i;:::-;10761:33;;;;:::i;:::-;10741:53;;10827:4;10805:19;:26;;;;10864:6;10842:19;:28;;;;10901:7;10881:17;:27;;;;10919:13;10935:30;10960:4;10935:20;10953:1;10935:13;:11;:13::i;:::-;:17;;:20;;;;:::i;:::-;:24;;:30;;;;:::i;:::-;10919:46;;10993:5;10984;:14;;:38;;;;;11017:5;11002:11;:20;;10984:38;:60;;;;;11039:5;11026:9;:18;;10984:60;10976:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;10608:495;;;;10519:584:::0;;;:::o;5260:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;8073:110::-;3033:19;3041:10;3033:7;:19::i;:::-;3025:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8172:8:::1;8148:11;:21;8160:8;8148:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;8073:110:::0;;:::o;7437:105::-;7503:7;7521:9;:18;7531:7;7521:18;;;;;;;;;;;;;;;;7514:25;;7437:105;;;:::o;8471:116::-;8519:7;8573:11;;8553:17;;8537:13;:11;:13::i;:::-;:33;;;;:::i;:::-;:47;;;;:::i;:::-;8530:54;;8471:116;:::o;8593:115::-;8638:7;8694:11;;8672:19;;8656:13;:11;:13::i;:::-;:35;;;;:::i;:::-;:49;;;;:::i;:::-;8649:56;;8593:115;:::o;7353:78::-;7405:7;7423:5;;;;;;;;;;;7416:12;;7353:78;:::o;7966:101::-;3033:19;3041:10;3033:7;:19::i;:::-;3025:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8056:8:::1;8038:5;:15;8044:8;8038:15;;;;;;;;;;;;;;;;:26;;;;;;;;;;;;;;;;;;7966:101:::0;;:::o;7124:73::-;7163:13;7187:7;;;;;;;;;;;;;;;;;7180:14;;7124:73;:::o;5378:19::-;;;;;;;;;;;;;:::o;7548:142::-;7626:4;7634:40;7644:10;7656:9;7667:6;7634:9;:40::i;:::-;7683:4;7676:11;;7548:142;;;;:::o;7696:129::-;7777:7;7795:11;:18;7807:5;7795:18;;;;;;;;;;;;;;;:27;7814:7;7795:27;;;;;;;;;;;;;;;;7788:34;;7696:129;;;;:::o;3170:113::-;3033:19;3041:10;3033:7;:19::i;:::-;3025:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3245:3:::1;3237:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3255:25;3276:3;3255:25;;;;;;:::i;:::-;;;;;;;;3170:113:::0;:::o;358:84::-;416:7;438:1;434;:5;;;;:::i;:::-;427:12;;358:84;;;;:::o;16099:335::-;16209:1;16192:19;;:5;:19;;;;16184:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16290:1;16271:21;;:7;:21;;;;16263:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16372:6;16342:11;:18;16354:5;16342:18;;;;;;;;;;;;;;;:27;16361:7;16342:27;;;;;;;;;;;;;;;:36;;;;16410:7;16394:32;;16403:5;16394:32;;;16419:6;16394:32;;;;;;:::i;:::-;;;;;;;;16099:335;;;:::o;178:84::-;236:7;258:1;254;:5;;;;:::i;:::-;247:12;;178:84;;;;:::o;9290:686::-;9379:37;9390:6;9398:9;9409:6;9379:10;:37::i;:::-;9427:38;9447:6;9455:9;9427:19;:38::i;:::-;9476:41;9491:6;9499:9;9510:6;9476:14;:41::i;:::-;9529:35;9546:6;9554:9;9529:16;:35::i;:::-;9575:39;9588:6;9596:9;9607:6;9575:12;:39::i;:::-;9626:35;9635:6;9643:9;9654:6;9626:8;:35::i;:::-;9692:29;9714:6;9692:9;:17;9702:6;9692:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;9672:9;:17;9682:6;9672:17;;;;;;;;;;;;;;;:49;;;;9732:22;9757:32;9771:6;9779:9;9757:13;:32::i;:::-;:78;;9829:6;9757:78;;;9792:34;9800:6;9808:9;9819:6;9792:7;:34::i;:::-;9757:78;9732:103;;9869:40;9894:14;9869:9;:20;9879:9;9869:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;9846:9;:20;9856:9;9846:20;;;;;;;;;;;;;;;:63;;;;9942:9;9925:43;;9934:6;9925:43;;;9953:14;9925:43;;;;;;:::i;:::-;;;;;;;;9368:608;9290:686;;;:::o;1439:171::-;1525:7;1570:1;1565;:6;;1573:12;1557:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1599:1;1595;:5;1588:12;;1439:171;;;;;:::o;268:84::-;326:7;348:1;344;:5;;;;:::i;:::-;337:12;;268:84;;;;:::o;8843:439::-;8965:1;8947:20;;:6;:20;;;;8939:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;9049:1;9028:23;;:9;:23;;;;9020:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9127:1;9110:6;:19;9102:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;9204:17;9214:6;9204:9;:17::i;:::-;9194:6;:27;;9186:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;8843:439;;;:::o;11111:194::-;11204:11;:19;11216:6;11204:19;;;;;;;;;;;;;;;;;;;;;;;;;11203:20;:47;;;;;11228:11;:22;11240:9;11228:22;;;;;;;;;;;;;;;;;;;;;;;;;11227:23;11203:47;11200:98;;;11262:14;;;;;;;;;;;11254:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;11200:98;11111:194;;:::o;11317:344::-;11421:11;:19;11433:6;11421:19;;;;;;;;;;;;;;;;;;;;;;;;;11420:20;:47;;;;;11445:11;:22;11457:9;11445:22;;;;;;;;;;;;;;;;;;;;;;;;;11444:23;11420:47;:77;;;;;11492:4;;;;;;;;;;;11471:26;;:9;:26;;;;11420:77;:107;;;;;6104:42;11501:26;;:9;:26;;;;11420:107;11417:237;;;11590:17;:15;:17::i;:::-;11553:32;11578:6;11553:9;:20;11563:9;11553:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;11552:55;;11544:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;11417:237;11317:344;;;:::o;11669:162::-;11766:4;;;;;;;;;;;11753:17;;:9;:17;;;:41;;;;;11775:11;:19;11787:6;11775:19;;;;;;;;;;;;;;;;;;;;;;;;;11774:20;11753:41;11750:74;;;11819:1;11798:9;;:23;;;;;;;:::i;:::-;;;;;;;;11750:74;11669:162;;:::o;11839:352::-;11950:4;;;;;;;;;;;11940:14;;:6;:14;;;11937:133;;11976:20;:18;:20::i;:::-;11966:6;:30;;:53;;;;12000:11;:19;12012:6;12000:19;;;;;;;;;;;;;;;;;;;;;;;;;11966:53;:79;;;;12023:11;:22;12035:9;12023:22;;;;;;;;;;;;;;;;;;;;;;;;;11966:79;11958:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;11937:133;12098:14;:12;:14::i;:::-;12088:6;:24;;:47;;;;12116:11;:19;12128:6;12116:19;;;;;;;;;;;;;;;;;;;;;;;;;12088:47;:73;;;;12139:11;:22;12151:9;12139:22;;;;;;;;;;;;;;;;;;;;;;;;;12088:73;12080:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;11839:352;;;:::o;14483:200::-;14575:41;14590:6;14598:9;14609:6;14575:14;:41::i;:::-;14572:104;;;14620:29;14635:13;;14620:14;:29::i;:::-;14671:1;14651:9;:22;;;;14572:104;14483:200;;;:::o;14691:160::-;14772:4;14797:11;:19;14809:6;14797:19;;;;;;;;;;;;;;;;;;;;;;;;;14796:20;:47;;;;;14821:11;:22;14833:9;14821:22;;;;;;;;;;;;;;;;;;;;;;;;;14820:23;14796:47;14789:54;;14691:160;;;;:::o;15181:593::-;15267:7;15323:1;15290:30;15302:6;15310:9;15290:11;:30::i;:::-;:34;15287:453;;;15341:17;15361:59;15389:30;15401:6;15409:9;15389:11;:30::i;:::-;15361:23;15372:11;;15361:6;:10;;:23;;;;:::i;:::-;:27;;:59;;;;:::i;:::-;15341:79;;15462:39;15491:9;15462;:24;15480:4;15462:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;15435:9;:24;15453:4;15435:24;;;;;;;;;;;;;;;:66;;;;15546:4;15521:42;;15530:6;15521:42;;;15553:9;15521:42;;;;;;:::i;:::-;;;;;;;;15599:1;15581:7;;:20;15578:107;;;15605:77;15623:4;6104:42;15645:36;15673:7;;15645:23;15656:11;;15645:6;:10;;:23;;;;:::i;:::-;:27;;:36;;;;:::i;:::-;15605:9;:77::i;:::-;15578:107;15706:21;15717:9;15706:6;:10;;:21;;;;:::i;:::-;15699:28;;;;;15287:453;15760:6;15753:13;;15181:593;;;;;;:::o;88:84::-;146:7;168:1;164;:5;;;;:::i;:::-;157:12;;88:84;;;;:::o;14075:400::-;14173:4;14190:13;14216:15;;14206:6;:25;;14190:41;;14242:19;14292:13;;14264:24;14282:4;14264:9;:24::i;:::-;:41;;14242:63;;14324:8;;;;;;;;;;;14323:9;:24;;;;;14336:11;;;;;;;;;;;14323:24;:42;;;;;14351:14;;;;;;;;;;;14323:42;:54;;;;;14369:8;14323:54;:78;;;;;14382:11;:19;14394:6;14382:19;;;;;;;;;;;;;;;;;;;;;;;;;14381:20;14323:78;:99;;;;;14418:4;;;;;;;;;;;14405:17;;:9;:17;;;14323:99;:126;;;;;14447:1;14426:9;;:23;;14323:126;:144;;;;;14453:14;14323:144;14316:151;;;;14075:400;;;;;:::o;12199:1075::-;6035:4;6024:8;;:15;;;;;;;;;;;;;;;;;;12270:20:::1;12293:66;12357:1;12294:57;12336:14;;12294:37;12318:12;;12294:19;12311:1;12294:12;;:16;;:19;;;;:::i;:::-;:23;;:37;;;;:::i;:::-;:41;;:57;;;;:::i;:::-;12293:63;;:66;;;;:::i;:::-;12270:89;;12370:32;12405:42;12434:12;12405:24;12416:12;;12405:6;:10;;:24;;;;:::i;:::-;:28;;:42;;;;:::i;:::-;12370:77;;12458:14;12475:36;12486:24;12475:6;:10;;:36;;;;:::i;:::-;12458:53;;12522:22;12547:21;12522:46;;12579:24;12596:6;12579:16;:24::i;:::-;12614:20;12637:41;12663:14;12637:21;:25;;:41;;;;:::i;:::-;12614:64;;12689:19;12711:48;12728:30;12745:12;;12728;:16;;:30;;;;:::i;:::-;12711:12;:16;;:48;;;;:::i;:::-;12689:70;;12770:29;12802;12818:12;;12802:11;:15;;:29;;;;:::i;:::-;12770:61;;12877:1;12845:21;:34;12842:105;;;12883:61;12896:24;12922:21;12883:12;:61::i;:::-;12842:105;12957:20;12980:36;13003:12;;12980:18;12996:1;12980:11;:15;;:18;;;;:::i;:::-;:22;;:36;;;;:::i;:::-;12957:59;;13045:1;13030:12;:16;13027:76;;;6299:42;13050:36;;:50;13087:12;13050:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13027:76;13113:24;13140:21;13113:48;;13202:1;13175:16;:29;13172:95;;;6202:42;13208:38;;:56;13247:16;13208:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13172:95;12259:1015;;;;;;;;;6055:5:::0;6044:8;;:16;;;;;;;;;;;;;;;;;;12199:1075;:::o;14859:314::-;14938:7;14961:5;:13;14967:6;14961:13;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;;14978:5;:16;14984:9;14978:16;;;;;;;;;;;;;;;;;;;;;;;;;14961:33;14958:79;;;15005:29;15029:3;15005:11;;:15;;:29;;;;:::i;:::-;14998:36;;;;14958:79;15063:4;;;;;;;;;;;15050:17;;:9;:17;;;15047:41;;;15078:7;;15071:14;;;;15047:41;15111:4;;;;;;;;;;;15101:14;;:6;:14;;;15098:39;;;15126:8;;15119:15;;;;15098:39;15154:11;;15147:18;;14859:314;;;;;:::o;13633:434::-;13699:21;13737:1;13723:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13699:40;;13768:4;13750;13755:1;13750:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;13794:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13784:4;13789:1;13784:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;13818:53;13835:4;13850:6;;;;;;;;;;;13859:11;13818:8;:53::i;:::-;13882:6;;;;;;;;;;;:57;;;13954:11;13980:1;13996:4;14023;14043:15;13882:177;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13688:379;13633:434;:::o;13282:343::-;13363:53;13380:4;13395:6;;;;;;;;;;;13404:11;13363:8;:53::i;:::-;13427:6;;;;;;;;;;;:22;;;13457:9;13490:4;13510:11;13536:1;13552;6395:42;13601:15;13427:190;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13282:343;;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:1203::-;803:6;811;819;827;835;843;851;900:3;888:9;879:7;875:23;871:33;868:120;;;907:79;;:::i;:::-;868:120;1027:1;1052:53;1097:7;1088:6;1077:9;1073:22;1052:53;:::i;:::-;1042:63;;998:117;1154:2;1180:53;1225:7;1216:6;1205:9;1201:22;1180:53;:::i;:::-;1170:63;;1125:118;1282:2;1308:53;1353:7;1344:6;1333:9;1329:22;1308:53;:::i;:::-;1298:63;;1253:118;1410:2;1436:53;1481:7;1472:6;1461:9;1457:22;1436:53;:::i;:::-;1426:63;;1381:118;1538:3;1565:53;1610:7;1601:6;1590:9;1586:22;1565:53;:::i;:::-;1555:63;;1509:119;1667:3;1694:53;1739:7;1730:6;1719:9;1715:22;1694:53;:::i;:::-;1684:63;;1638:119;1796:3;1823:53;1868:7;1859:6;1848:9;1844:22;1823:53;:::i;:::-;1813:63;;1767:119;690:1203;;;;;;;;;;:::o;1899:99::-;1951:6;1985:5;1979:12;1969:22;;1899:99;;;:::o;2004:169::-;2088:11;2122:6;2117:3;2110:19;2162:4;2157:3;2153:14;2138:29;;2004:169;;;;:::o;2179:307::-;2247:1;2257:113;2271:6;2268:1;2265:13;2257:113;;;2356:1;2351:3;2347:11;2341:18;2337:1;2332:3;2328:11;2321:39;2293:2;2290:1;2286:10;2281:15;;2257:113;;;2388:6;2385:1;2382:13;2379:101;;;2468:1;2459:6;2454:3;2450:16;2443:27;2379:101;2228:258;2179:307;;;:::o;2492:102::-;2533:6;2584:2;2580:7;2575:2;2568:5;2564:14;2560:28;2550:38;;2492:102;;;:::o;2600:364::-;2688:3;2716:39;2749:5;2716:39;:::i;:::-;2771:71;2835:6;2830:3;2771:71;:::i;:::-;2764:78;;2851:52;2896:6;2891:3;2884:4;2877:5;2873:16;2851:52;:::i;:::-;2928:29;2950:6;2928:29;:::i;:::-;2923:3;2919:39;2912:46;;2692:272;2600:364;;;;:::o;2970:313::-;3083:4;3121:2;3110:9;3106:18;3098:26;;3170:9;3164:4;3160:20;3156:1;3145:9;3141:17;3134:47;3198:78;3271:4;3262:6;3198:78;:::i;:::-;3190:86;;2970:313;;;;:::o;3289:126::-;3326:7;3366:42;3359:5;3355:54;3344:65;;3289:126;;;:::o;3421:96::-;3458:7;3487:24;3505:5;3487:24;:::i;:::-;3476:35;;3421:96;;;:::o;3523:122::-;3596:24;3614:5;3596:24;:::i;:::-;3589:5;3586:35;3576:63;;3635:1;3632;3625:12;3576:63;3523:122;:::o;3651:139::-;3697:5;3735:6;3722:20;3713:29;;3751:33;3778:5;3751:33;:::i;:::-;3651:139;;;;:::o;3796:474::-;3864:6;3872;3921:2;3909:9;3900:7;3896:23;3892:32;3889:119;;;3927:79;;:::i;:::-;3889:119;4047:1;4072:53;4117:7;4108:6;4097:9;4093:22;4072:53;:::i;:::-;4062:63;;4018:117;4174:2;4200:53;4245:7;4236:6;4225:9;4221:22;4200:53;:::i;:::-;4190:63;;4145:118;3796:474;;;;;:::o;4276:90::-;4310:7;4353:5;4346:13;4339:21;4328:32;;4276:90;;;:::o;4372:109::-;4453:21;4468:5;4453:21;:::i;:::-;4448:3;4441:34;4372:109;;:::o;4487:210::-;4574:4;4612:2;4601:9;4597:18;4589:26;;4625:65;4687:1;4676:9;4672:17;4663:6;4625:65;:::i;:::-;4487:210;;;;:::o;4703:118::-;4790:24;4808:5;4790:24;:::i;:::-;4785:3;4778:37;4703:118;;:::o;4827:222::-;4920:4;4958:2;4947:9;4943:18;4935:26;;4971:71;5039:1;5028:9;5024:17;5015:6;4971:71;:::i;:::-;4827:222;;;;:::o;5055:619::-;5132:6;5140;5148;5197:2;5185:9;5176:7;5172:23;5168:32;5165:119;;;5203:79;;:::i;:::-;5165:119;5323:1;5348:53;5393:7;5384:6;5373:9;5369:22;5348:53;:::i;:::-;5338:63;;5294:117;5450:2;5476:53;5521:7;5512:6;5501:9;5497:22;5476:53;:::i;:::-;5466:63;;5421:118;5578:2;5604:53;5649:7;5640:6;5629:9;5625:22;5604:53;:::i;:::-;5594:63;;5549:118;5055:619;;;;;:::o;5680:329::-;5739:6;5788:2;5776:9;5767:7;5763:23;5759:32;5756:119;;;5794:79;;:::i;:::-;5756:119;5914:1;5939:53;5984:7;5975:6;5964:9;5960:22;5939:53;:::i;:::-;5929:63;;5885:117;5680:329;;;;:::o;6015:86::-;6050:7;6090:4;6083:5;6079:16;6068:27;;6015:86;;;:::o;6107:112::-;6190:22;6206:5;6190:22;:::i;:::-;6185:3;6178:35;6107:112;;:::o;6225:214::-;6314:4;6352:2;6341:9;6337:18;6329:26;;6365:67;6429:1;6418:9;6414:17;6405:6;6365:67;:::i;:::-;6225:214;;;;:::o;6445:619::-;6522:6;6530;6538;6587:2;6575:9;6566:7;6562:23;6558:32;6555:119;;;6593:79;;:::i;:::-;6555:119;6713:1;6738:53;6783:7;6774:6;6763:9;6759:22;6738:53;:::i;:::-;6728:63;;6684:117;6840:2;6866:53;6911:7;6902:6;6891:9;6887:22;6866:53;:::i;:::-;6856:63;;6811:118;6968:2;6994:53;7039:7;7030:6;7019:9;7015:22;6994:53;:::i;:::-;6984:63;;6939:118;6445:619;;;;;:::o;7070:116::-;7140:21;7155:5;7140:21;:::i;:::-;7133:5;7130:32;7120:60;;7176:1;7173;7166:12;7120:60;7070:116;:::o;7192:133::-;7235:5;7273:6;7260:20;7251:29;;7289:30;7313:5;7289:30;:::i;:::-;7192:133;;;;:::o;7331:468::-;7396:6;7404;7453:2;7441:9;7432:7;7428:23;7424:32;7421:119;;;7459:79;;:::i;:::-;7421:119;7579:1;7604:53;7649:7;7640:6;7629:9;7625:22;7604:53;:::i;:::-;7594:63;;7550:117;7706:2;7732:50;7774:7;7765:6;7754:9;7750:22;7732:50;:::i;:::-;7722:60;;7677:115;7331:468;;;;;:::o;7805:118::-;7892:24;7910:5;7892:24;:::i;:::-;7887:3;7880:37;7805:118;;:::o;7929:222::-;8022:4;8060:2;8049:9;8045:18;8037:26;;8073:71;8141:1;8130:9;8126:17;8117:6;8073:71;:::i;:::-;7929:222;;;;:::o;8157:474::-;8225:6;8233;8282:2;8270:9;8261:7;8257:23;8253:32;8250:119;;;8288:79;;:::i;:::-;8250:119;8408:1;8433:53;8478:7;8469:6;8458:9;8454:22;8433:53;:::i;:::-;8423:63;;8379:117;8535:2;8561:53;8606:7;8597:6;8586:9;8582:22;8561:53;:::i;:::-;8551:63;;8506:118;8157:474;;;;;:::o;8637:104::-;8682:7;8711:24;8729:5;8711:24;:::i;:::-;8700:35;;8637:104;;;:::o;8747:138::-;8828:32;8854:5;8828:32;:::i;:::-;8821:5;8818:43;8808:71;;8875:1;8872;8865:12;8808:71;8747:138;:::o;8891:155::-;8945:5;8983:6;8970:20;8961:29;;8999:41;9034:5;8999:41;:::i;:::-;8891:155;;;;:::o;9052:345::-;9119:6;9168:2;9156:9;9147:7;9143:23;9139:32;9136:119;;;9174:79;;:::i;:::-;9136:119;9294:1;9319:61;9372:7;9363:6;9352:9;9348:22;9319:61;:::i;:::-;9309:71;;9265:125;9052:345;;;;:::o;9403:156::-;9543:8;9539:1;9531:6;9527:14;9520:32;9403:156;:::o;9565:365::-;9707:3;9728:66;9792:1;9787:3;9728:66;:::i;:::-;9721:73;;9803:93;9892:3;9803:93;:::i;:::-;9921:2;9916:3;9912:12;9905:19;;9565:365;;;:::o;9936:419::-;10102:4;10140:2;10129:9;10125:18;10117:26;;10189:9;10183:4;10179:20;10175:1;10164:9;10160:17;10153:47;10217:131;10343:4;10217:131;:::i;:::-;10209:139;;9936:419;;;:::o;10361:231::-;10501:34;10497:1;10489:6;10485:14;10478:58;10570:14;10565:2;10557:6;10553:15;10546:39;10361:231;:::o;10598:366::-;10740:3;10761:67;10825:2;10820:3;10761:67;:::i;:::-;10754:74;;10837:93;10926:3;10837:93;:::i;:::-;10955:2;10950:3;10946:12;10939:19;;10598:366;;;:::o;10970:419::-;11136:4;11174:2;11163:9;11159:18;11151:26;;11223:9;11217:4;11213:20;11209:1;11198:9;11194:17;11187:47;11251:131;11377:4;11251:131;:::i;:::-;11243:139;;10970:419;;;:::o;11395:180::-;11443:77;11440:1;11433:88;11540:4;11537:1;11530:15;11564:4;11561:1;11554:15;11581:348;11621:7;11644:20;11662:1;11644:20;:::i;:::-;11639:25;;11678:20;11696:1;11678:20;:::i;:::-;11673:25;;11866:1;11798:66;11794:74;11791:1;11788:81;11783:1;11776:9;11769:17;11765:105;11762:131;;;11873:18;;:::i;:::-;11762:131;11921:1;11918;11914:9;11903:20;;11581:348;;;;:::o;11935:180::-;11983:77;11980:1;11973:88;12080:4;12077:1;12070:15;12104:4;12101:1;12094:15;12121:185;12161:1;12178:20;12196:1;12178:20;:::i;:::-;12173:25;;12212:20;12230:1;12212:20;:::i;:::-;12207:25;;12251:1;12241:35;;12256:18;;:::i;:::-;12241:35;12298:1;12295;12291:9;12286:14;;12121:185;;;;:::o;12312:233::-;12452:34;12448:1;12440:6;12436:14;12429:58;12521:16;12516:2;12508:6;12504:15;12497:41;12312:233;:::o;12551:366::-;12693:3;12714:67;12778:2;12773:3;12714:67;:::i;:::-;12707:74;;12790:93;12879:3;12790:93;:::i;:::-;12908:2;12903:3;12899:12;12892:19;;12551:366;;;:::o;12923:419::-;13089:4;13127:2;13116:9;13112:18;13104:26;;13176:9;13170:4;13166:20;13162:1;13151:9;13147:17;13140:47;13204:131;13330:4;13204:131;:::i;:::-;13196:139;;12923:419;;;:::o;13348:60::-;13376:3;13397:5;13390:12;;13348:60;;;:::o;13414:142::-;13464:9;13497:53;13515:34;13524:24;13542:5;13524:24;:::i;:::-;13515:34;:::i;:::-;13497:53;:::i;:::-;13484:66;;13414:142;;;:::o;13562:126::-;13612:9;13645:37;13676:5;13645:37;:::i;:::-;13632:50;;13562:126;;;:::o;13694:134::-;13752:9;13785:37;13816:5;13785:37;:::i;:::-;13772:50;;13694:134;;;:::o;13834:147::-;13929:45;13968:5;13929:45;:::i;:::-;13924:3;13917:58;13834:147;;:::o;13987:238::-;14088:4;14126:2;14115:9;14111:18;14103:26;;14139:79;14215:1;14204:9;14200:17;14191:6;14139:79;:::i;:::-;13987:238;;;;:::o;14231:223::-;14371:34;14367:1;14359:6;14355:14;14348:58;14440:6;14435:2;14427:6;14423:15;14416:31;14231:223;:::o;14460:366::-;14602:3;14623:67;14687:2;14682:3;14623:67;:::i;:::-;14616:74;;14699:93;14788:3;14699:93;:::i;:::-;14817:2;14812:3;14808:12;14801:19;;14460:366;;;:::o;14832:419::-;14998:4;15036:2;15025:9;15021:18;15013:26;;15085:9;15079:4;15075:20;15071:1;15060:9;15056:17;15049:47;15113:131;15239:4;15113:131;:::i;:::-;15105:139;;14832:419;;;:::o;15257:221::-;15397:34;15393:1;15385:6;15381:14;15374:58;15466:4;15461:2;15453:6;15449:15;15442:29;15257:221;:::o;15484:366::-;15626:3;15647:67;15711:2;15706:3;15647:67;:::i;:::-;15640:74;;15723:93;15812:3;15723:93;:::i;:::-;15841:2;15836:3;15832:12;15825:19;;15484:366;;;:::o;15856:419::-;16022:4;16060:2;16049:9;16045:18;16037:26;;16109:9;16103:4;16099:20;16095:1;16084:9;16080:17;16073:47;16137:131;16263:4;16137:131;:::i;:::-;16129:139;;15856:419;;;:::o;16281:191::-;16321:4;16341:20;16359:1;16341:20;:::i;:::-;16336:25;;16375:20;16393:1;16375:20;:::i;:::-;16370:25;;16414:1;16411;16408:8;16405:34;;;16419:18;;:::i;:::-;16405:34;16464:1;16461;16457:9;16449:17;;16281:191;;;;:::o;16478:224::-;16618:34;16614:1;16606:6;16602:14;16595:58;16687:7;16682:2;16674:6;16670:15;16663:32;16478:224;:::o;16708:366::-;16850:3;16871:67;16935:2;16930:3;16871:67;:::i;:::-;16864:74;;16947:93;17036:3;16947:93;:::i;:::-;17065:2;17060:3;17056:12;17049:19;;16708:366;;;:::o;17080:419::-;17246:4;17284:2;17273:9;17269:18;17261:26;;17333:9;17327:4;17323:20;17319:1;17308:9;17304:17;17297:47;17361:131;17487:4;17361:131;:::i;:::-;17353:139;;17080:419;;;:::o;17505:222::-;17645:34;17641:1;17633:6;17629:14;17622:58;17714:5;17709:2;17701:6;17697:15;17690:30;17505:222;:::o;17733:366::-;17875:3;17896:67;17960:2;17955:3;17896:67;:::i;:::-;17889:74;;17972:93;18061:3;17972:93;:::i;:::-;18090:2;18085:3;18081:12;18074:19;;17733:366;;;:::o;18105:419::-;18271:4;18309:2;18298:9;18294:18;18286:26;;18358:9;18352:4;18348:20;18344:1;18333:9;18329:17;18322:47;18386:131;18512:4;18386:131;:::i;:::-;18378:139;;18105:419;;;:::o;18530:228::-;18670:34;18666:1;18658:6;18654:14;18647:58;18739:11;18734:2;18726:6;18722:15;18715:36;18530:228;:::o;18764:366::-;18906:3;18927:67;18991:2;18986:3;18927:67;:::i;:::-;18920:74;;19003:93;19092:3;19003:93;:::i;:::-;19121:2;19116:3;19112:12;19105:19;;18764:366;;;:::o;19136:419::-;19302:4;19340:2;19329:9;19325:18;19317:26;;19389:9;19383:4;19379:20;19375:1;19364:9;19360:17;19353:47;19417:131;19543:4;19417:131;:::i;:::-;19409:139;;19136:419;;;:::o;19561:236::-;19701:34;19697:1;19689:6;19685:14;19678:58;19770:19;19765:2;19757:6;19753:15;19746:44;19561:236;:::o;19803:366::-;19945:3;19966:67;20030:2;20025:3;19966:67;:::i;:::-;19959:74;;20042:93;20131:3;20042:93;:::i;:::-;20160:2;20155:3;20151:12;20144:19;;19803:366;;;:::o;20175:419::-;20341:4;20379:2;20368:9;20364:18;20356:26;;20428:9;20422:4;20418:20;20414:1;20403:9;20399:17;20392:47;20456:131;20582:4;20456:131;:::i;:::-;20448:139;;20175:419;;;:::o;20600:164::-;20740:16;20736:1;20728:6;20724:14;20717:40;20600:164;:::o;20770:366::-;20912:3;20933:67;20997:2;20992:3;20933:67;:::i;:::-;20926:74;;21009:93;21098:3;21009:93;:::i;:::-;21127:2;21122:3;21118:12;21111:19;;20770:366;;;:::o;21142:419::-;21308:4;21346:2;21335:9;21331:18;21323:26;;21395:9;21389:4;21385:20;21381:1;21370:9;21366:17;21359:47;21423:131;21549:4;21423:131;:::i;:::-;21415:139;;21142:419;;;:::o;21567:180::-;21707:32;21703:1;21695:6;21691:14;21684:56;21567:180;:::o;21753:366::-;21895:3;21916:67;21980:2;21975:3;21916:67;:::i;:::-;21909:74;;21992:93;22081:3;21992:93;:::i;:::-;22110:2;22105:3;22101:12;22094:19;;21753:366;;;:::o;22125:419::-;22291:4;22329:2;22318:9;22314:18;22306:26;;22378:9;22372:4;22368:20;22364:1;22353:9;22349:17;22342:47;22406:131;22532:4;22406:131;:::i;:::-;22398:139;;22125:419;;;:::o;22550:305::-;22590:3;22609:20;22627:1;22609:20;:::i;:::-;22604:25;;22643:20;22661:1;22643:20;:::i;:::-;22638:25;;22797:1;22729:66;22725:74;22722:1;22719:81;22716:107;;;22803:18;;:::i;:::-;22716:107;22847:1;22844;22840:9;22833:16;;22550:305;;;;:::o;22861:167::-;23001:19;22997:1;22989:6;22985:14;22978:43;22861:167;:::o;23034:366::-;23176:3;23197:67;23261:2;23256:3;23197:67;:::i;:::-;23190:74;;23273:93;23362:3;23273:93;:::i;:::-;23391:2;23386:3;23382:12;23375:19;;23034:366;;;:::o;23406:419::-;23572:4;23610:2;23599:9;23595:18;23587:26;;23659:9;23653:4;23649:20;23645:1;23634:9;23630:17;23623:47;23687:131;23813:4;23687:131;:::i;:::-;23679:139;;23406:419;;;:::o;23831:180::-;23879:77;23876:1;23869:88;23976:4;23973:1;23966:15;24000:4;23997:1;23990:15;24017:180;24065:77;24062:1;24055:88;24162:4;24159:1;24152:15;24186:4;24183:1;24176:15;24203:143;24260:5;24291:6;24285:13;24276:22;;24307:33;24334:5;24307:33;:::i;:::-;24203:143;;;;:::o;24352:351::-;24422:6;24471:2;24459:9;24450:7;24446:23;24442:32;24439:119;;;24477:79;;:::i;:::-;24439:119;24597:1;24622:64;24678:7;24669:6;24658:9;24654:22;24622:64;:::i;:::-;24612:74;;24568:128;24352:351;;;;:::o;24709:85::-;24754:7;24783:5;24772:16;;24709:85;;;:::o;24800:158::-;24858:9;24891:61;24909:42;24918:32;24944:5;24918:32;:::i;:::-;24909:42;:::i;:::-;24891:61;:::i;:::-;24878:74;;24800:158;;;:::o;24964:147::-;25059:45;25098:5;25059:45;:::i;:::-;25054:3;25047:58;24964:147;;:::o;25117:114::-;25184:6;25218:5;25212:12;25202:22;;25117:114;;;:::o;25237:184::-;25336:11;25370:6;25365:3;25358:19;25410:4;25405:3;25401:14;25386:29;;25237:184;;;;:::o;25427:132::-;25494:4;25517:3;25509:11;;25547:4;25542:3;25538:14;25530:22;;25427:132;;;:::o;25565:108::-;25642:24;25660:5;25642:24;:::i;:::-;25637:3;25630:37;25565:108;;:::o;25679:179::-;25748:10;25769:46;25811:3;25803:6;25769:46;:::i;:::-;25847:4;25842:3;25838:14;25824:28;;25679:179;;;;:::o;25864:113::-;25934:4;25966;25961:3;25957:14;25949:22;;25864:113;;;:::o;26013:732::-;26132:3;26161:54;26209:5;26161:54;:::i;:::-;26231:86;26310:6;26305:3;26231:86;:::i;:::-;26224:93;;26341:56;26391:5;26341:56;:::i;:::-;26420:7;26451:1;26436:284;26461:6;26458:1;26455:13;26436:284;;;26537:6;26531:13;26564:63;26623:3;26608:13;26564:63;:::i;:::-;26557:70;;26650:60;26703:6;26650:60;:::i;:::-;26640:70;;26496:224;26483:1;26480;26476:9;26471:14;;26436:284;;;26440:14;26736:3;26729:10;;26137:608;;;26013:732;;;;:::o;26751:831::-;27014:4;27052:3;27041:9;27037:19;27029:27;;27066:71;27134:1;27123:9;27119:17;27110:6;27066:71;:::i;:::-;27147:80;27223:2;27212:9;27208:18;27199:6;27147:80;:::i;:::-;27274:9;27268:4;27264:20;27259:2;27248:9;27244:18;27237:48;27302:108;27405:4;27396:6;27302:108;:::i;:::-;27294:116;;27420:72;27488:2;27477:9;27473:18;27464:6;27420:72;:::i;:::-;27502:73;27570:3;27559:9;27555:19;27546:6;27502:73;:::i;:::-;26751:831;;;;;;;;:::o;27588:807::-;27837:4;27875:3;27864:9;27860:19;27852:27;;27889:71;27957:1;27946:9;27942:17;27933:6;27889:71;:::i;:::-;27970:72;28038:2;28027:9;28023:18;28014:6;27970:72;:::i;:::-;28052:80;28128:2;28117:9;28113:18;28104:6;28052:80;:::i;:::-;28142;28218:2;28207:9;28203:18;28194:6;28142:80;:::i;:::-;28232:73;28300:3;28289:9;28285:19;28276:6;28232:73;:::i;:::-;28315;28383:3;28372:9;28368:19;28359:6;28315:73;:::i;:::-;27588:807;;;;;;;;;:::o;28401:143::-;28458:5;28489:6;28483:13;28474:22;;28505:33;28532:5;28505:33;:::i;:::-;28401:143;;;;:::o;28550:663::-;28638:6;28646;28654;28703:2;28691:9;28682:7;28678:23;28674:32;28671:119;;;28709:79;;:::i;:::-;28671:119;28829:1;28854:64;28910:7;28901:6;28890:9;28886:22;28854:64;:::i;:::-;28844:74;;28800:128;28967:2;28993:64;29049:7;29040:6;29029:9;29025:22;28993:64;:::i;:::-;28983:74;;28938:129;29106:2;29132:64;29188:7;29179:6;29168:9;29164:22;29132:64;:::i;:::-;29122:74;;29077:129;28550:663;;;;;:::o

Swarm Source

ipfs://7e0fc51f30a9245856aff1f1480f28301da4e2988641903b69e7ac939a41faa6

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

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

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