ETH Price: $2,523.41 (-0.09%)

Contract

0x4179e45dcA5034474f705586320F940F1e054152
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve188256872023-12-20 7:39:11253 days ago1703057951IN
0x4179e45d...F1e054152
0 ETH0.0023513349.90635747
Approve181555282023-09-17 11:42:11347 days ago1694950931IN
0x4179e45d...F1e054152
0 ETH0.0005190911.00353752
Approve181554952023-09-17 11:35:23347 days ago1694950523IN
0x4179e45d...F1e054152
0 ETH0.00024578.25207863
Approve181554932023-09-17 11:34:59347 days ago1694950499IN
0x4179e45d...F1e054152
0 ETH0.000212997.89967389
Approve181554902023-09-17 11:34:23347 days ago1694950463IN
0x4179e45d...F1e054152
0 ETH0.000395258.43417822
Approve181554822023-09-17 11:32:47347 days ago1694950367IN
0x4179e45d...F1e054152
0 ETH0.000411918.798736
Approve181554752023-09-17 11:31:23347 days ago1694950283IN
0x4179e45d...F1e054152
0 ETH0.000384468.21247197
Approve181554752023-09-17 11:31:23347 days ago1694950283IN
0x4179e45d...F1e054152
0 ETH0.000386938.21247197
Set Fees181554692023-09-17 11:30:11347 days ago1694950211IN
0x4179e45d...F1e054152
0 ETH0.000414928.82567566
Set Fees181554682023-09-17 11:29:59347 days ago1694950199IN
0x4179e45d...F1e054152
0 ETH0.000430849.1644091
Approve181554662023-09-17 11:29:35347 days ago1694950175IN
0x4179e45d...F1e054152
0 ETH0.000232979.36427741
Set Fees181554562023-09-17 11:27:35347 days ago1694950055IN
0x4179e45d...F1e054152
0 ETH0.000442649.41545684
Approve181554492023-09-17 11:26:11347 days ago1694949971IN
0x4179e45d...F1e054152
0 ETH0.000443859.4111485
Approve181554452023-09-17 11:25:23347 days ago1694949923IN
0x4179e45d...F1e054152
0 ETH0.0005183810.98862003
Approve181554372023-09-17 11:23:47347 days ago1694949827IN
0x4179e45d...F1e054152
0 ETH0.0005479111.61451412
Approve181554352023-09-17 11:23:23347 days ago1694949803IN
0x4179e45d...F1e054152
0 ETH0.0005492711.64337252
Approve181554342023-09-17 11:23:11347 days ago1694949791IN
0x4179e45d...F1e054152
0 ETH0.0005168310.95569949
Approve181554322023-09-17 11:22:47347 days ago1694949767IN
0x4179e45d...F1e054152
0 ETH0.000456279.67205059
Approve181554322023-09-17 11:22:47347 days ago1694949767IN
0x4179e45d...F1e054152
0 ETH0.0005506211.67205059
Approve181554302023-09-17 11:22:23347 days ago1694949743IN
0x4179e45d...F1e054152
0 ETH0.0005186510.99419455
Approve181554302023-09-17 11:22:23347 days ago1694949743IN
0x4179e45d...F1e054152
0 ETH0.0005186510.99419455
Approve181554292023-09-17 11:22:11347 days ago1694949731IN
0x4179e45d...F1e054152
0 ETH0.0005083610.77616766
Approve181554292023-09-17 11:22:11347 days ago1694949731IN
0x4179e45d...F1e054152
0 ETH0.0005083610.77616766
Set Wallet Limit...181554282023-09-17 11:21:59347 days ago1694949719IN
0x4179e45d...F1e054152
0 ETH0.000492279.43824098
Set Fees181554262023-09-17 11:21:35347 days ago1694949695IN
0x4179e45d...F1e054152
0 ETH0.000625658.87293454
View all transactions

Latest 18 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
181555302023-09-17 11:42:35347 days ago1694950955
0x4179e45d...F1e054152
0 ETH
181555302023-09-17 11:42:35347 days ago1694950955
0x4179e45d...F1e054152
0 ETH
181555302023-09-17 11:42:35347 days ago1694950955
0x4179e45d...F1e054152
0 ETH
181555282023-09-17 11:42:11347 days ago1694950931
0x4179e45d...F1e054152
0.04105404 ETH
181555282023-09-17 11:42:11347 days ago1694950931
0x4179e45d...F1e054152
0.04064757 ETH
181555282023-09-17 11:42:11347 days ago1694950931
0x4179e45d...F1e054152
0.08170162 ETH
181555282023-09-17 11:42:11347 days ago1694950931
0x4179e45d...F1e054152
0.04351124 ETH
181555282023-09-17 11:42:11347 days ago1694950931
0x4179e45d...F1e054152
0.04308044 ETH
181555282023-09-17 11:42:11347 days ago1694950931
0x4179e45d...F1e054152
0.08659168 ETH
181554562023-09-17 11:27:35347 days ago1694950055
0x4179e45d...F1e054152
0.01314002 ETH
181554562023-09-17 11:27:35347 days ago1694950055
0x4179e45d...F1e054152
0.01300992 ETH
181554562023-09-17 11:27:35347 days ago1694950055
0x4179e45d...F1e054152
0.02614994 ETH
181554562023-09-17 11:27:35347 days ago1694950055
0x4179e45d...F1e054152
0.01371898 ETH
181554562023-09-17 11:27:35347 days ago1694950055
0x4179e45d...F1e054152
0.01358315 ETH
181554562023-09-17 11:27:35347 days ago1694950055
0x4179e45d...F1e054152
0.02730214 ETH
181554562023-09-17 11:27:35347 days ago1694950055
0x4179e45d...F1e054152
0.0143371 ETH
181554562023-09-17 11:27:35347 days ago1694950055
0x4179e45d...F1e054152
0.01419515 ETH
181554562023-09-17 11:27:35347 days ago1694950055
0x4179e45d...F1e054152
0.02853225 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Touche

Compiler Version
v0.8.16+commit.07a7930e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**

https://x.com/elonmusk/status/1703367685298631034?s=20

https://t.me/Toucheeth

*/

// SPDX-License-Identifier: MIT

pragma solidity 0.8.16;


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 Touche is IERC20, Ownable {
    using SafeMath for uint256;
    string private constant _name = unicode'Touché ';
    string private constant _symbol = unicode'Touché ';
    uint8 private constant _decimals = 9;
    uint256 private _totalSupply = 1000000000 * (10 ** _decimals);
    uint256 private _maxTxAmountPercent = 200; 
    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 = true;
    uint256 private liquidityFee = 1000;
    uint256 private marketingFee = 0;
    uint256 private developmentFee = 1000;
    uint256 private burnFee = 0;
    uint256 private totalFee = 2000;
    uint256 private sellFee = 2000;
    uint256 private transferFee = 2000;
    uint256 private denominator = 10000;
    bool private swapEnabled = true;
    uint256 private swapTimes;
    bool private swapping;
    uint256 swapAmount = 1;
    uint256 private swapThreshold = ( _totalSupply * 1000 ) / 100000;
    uint256 private minTokenAmount = ( _totalSupply * 20 ) / 100000;
    modifier lockTheSwap {swapping = true; _; swapping = false;}

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

    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 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 setFees(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 20%");
    }

    function setWalletLimits(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 >= swapAmount && aboveThreshold;
    }

    function setSwapbackSettings(uint256 _swapAmount, uint256 _swapThreshold, uint256 _minTokenAmount) external onlyOwner {
        swapAmount = _swapAmount; swapThreshold = _totalSupply.mul(_swapThreshold).div(uint256(100000)); 
        minTokenAmount = _totalSupply.mul(_minTokenAmount).div(uint256(100000));
    }

    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":"_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":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_swapAmount","type":"uint256"},{"internalType":"uint256","name":"_swapThreshold","type":"uint256"},{"internalType":"uint256","name":"_minTokenAmount","type":"uint256"}],"name":"setSwapbackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buy","type":"uint256"},{"internalType":"uint256","name":"_trans","type":"uint256"},{"internalType":"uint256","name":"_wallet","type":"uint256"}],"name":"setWalletLimits","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"}]

60806040526009600a62000014919062000717565b633b9aca0062000025919062000768565b60015560c860025560c860035560c86004556001600a60146101000a81548160ff0219169083151502179055506103e8600b556000600c556103e8600d556000600e556107d0600f556107d06010556107d06011556127106012556001601360006101000a81548160ff0219169083151502179055506001601655620186a06103e8600154620000b6919062000768565b620000c29190620007f8565b601755620186a06014600154620000da919062000768565b620000e69190620007f8565b601855348015620000f657600080fd5b5033806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506000737a250d5630b4cf539739df2c5dacb4c659f2488d905060008173ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001a0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c691906200089a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308473ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200022e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025491906200089a565b6040518363ffffffff1660e01b815260040162000273929190620008dd565b6020604051808303816000875af115801562000293573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002b991906200089a565b905081600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000730a9ea501c5d76baea16b0c4ba6af21b8a9ccf1f673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160076000730a9ea501c5d76baea16b0c4ba6af21b8a9ccf1f673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600154600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6001546040516200056d91906200091b565b60405180910390a3505062000938565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b60018511156200060b57808604811115620005e357620005e26200057d565b5b6001851615620005f35780820291505b80810290506200060385620005ac565b9450620005c3565b94509492505050565b600082620006265760019050620006f9565b81620006365760009050620006f9565b81600181146200064f57600281146200065a5762000690565b6001915050620006f9565b60ff8411156200066f576200066e6200057d565b5b8360020a9150848211156200068957620006886200057d565b5b50620006f9565b5060208310610133831016604e8410600b8410161715620006ca5782820a905083811115620006c457620006c36200057d565b5b620006f9565b620006d98484846001620005b9565b92509050818404811115620006f357620006f26200057d565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b6000620007248262000700565b915062000731836200070a565b9250620007607fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000614565b905092915050565b6000620007758262000700565b9150620007828362000700565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620007be57620007bd6200057d565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620008058262000700565b9150620008128362000700565b925082620008255762000824620007c9565b5b828204905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620008628262000835565b9050919050565b620008748162000855565b81146200088057600080fd5b50565b600081519050620008948162000869565b92915050565b600060208284031215620008b357620008b262000830565b5b6000620008c38482850162000883565b91505092915050565b620008d78162000855565b82525050565b6000604082019050620008f46000830185620008cc565b620009036020830184620008cc565b9392505050565b620009158162000700565b82525050565b60006020820190506200093260008301846200090a565b92915050565b61349480620009486000396000f3fe6080604052600436106101395760003560e01c806370a08231116100ab578063a8aa1b311161006f578063a8aa1b3114610437578063a9059cbb14610462578063da2e3bad1461049f578063dd62ed3e146104c8578063e94dd17c14610505578063f2fde38b1461052e57610140565b806370a082311461034e57806378109e541461038b5780637d1db4a5146103b6578063893d20e8146103e157806395d89b411461040c57610140565b8063293230b8116100fd578063293230b8146102405780632f54bf6e14610257578063313ce567146102945780633f4218e0146102bf57806348ff2b8b146102fc57806366dc3e331461032557610140565b806306fdde0314610145578063095ea7b31461017057806318160ddd146101ad5780631f976b7e146101d857806323b872dd1461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a610557565b6040516101679190612527565b60405180910390f35b34801561017c57600080fd5b50610197600480360381019061019291906125e2565b610594565b6040516101a4919061263d565b60405180910390f35b3480156101b957600080fd5b506101c26105ab565b6040516101cf9190612667565b60405180910390f35b3480156101e457600080fd5b506101ed6105ec565b6040516101fa9190612667565b60405180910390f35b34801561020f57600080fd5b5061022a60048036038101906102259190612682565b610615565b604051610237919061263d565b60405180910390f35b34801561024c57600080fd5b506102556106e0565b005b34801561026357600080fd5b5061027e600480360381019061027991906126d5565b610745565b60405161028b919061263d565b60405180910390f35b3480156102a057600080fd5b506102a961079e565b6040516102b6919061271e565b60405180910390f35b3480156102cb57600080fd5b506102e660048036038101906102e191906126d5565b6107a7565b6040516102f3919061263d565b60405180910390f35b34801561030857600080fd5b50610323600480360381019061031e9190612765565b6107c7565b005b34801561033157600080fd5b5061034c600480360381019061034791906127a5565b61086a565b005b34801561035a57600080fd5b50610375600480360381019061037091906126d5565b6109ca565b6040516103829190612667565b60405180910390f35b34801561039757600080fd5b506103a0610a13565b6040516103ad9190612667565b60405180910390f35b3480156103c257600080fd5b506103cb610a3c565b6040516103d89190612667565b60405180910390f35b3480156103ed57600080fd5b506103f6610a65565b6040516104039190612807565b60405180910390f35b34801561041857600080fd5b50610421610a8e565b60405161042e9190612527565b60405180910390f35b34801561044357600080fd5b5061044c610acb565b6040516104599190612807565b60405180910390f35b34801561046e57600080fd5b50610489600480360381019061048491906125e2565b610af1565b604051610496919061263d565b60405180910390f35b3480156104ab57600080fd5b506104c660048036038101906104c19190612822565b610b08565b005b3480156104d457600080fd5b506104ef60048036038101906104ea91906128c4565b610c07565b6040516104fc9190612667565b60405180910390f35b34801561051157600080fd5b5061052c600480360381019061052791906127a5565b610c8e565b005b34801561053a57600080fd5b5061055560048036038101906105509190612942565b610d42565b005b60606040518060400160405280600881526020017f546f756368c3a920000000000000000000000000000000000000000000000000815250905090565b60006105a1338484610e04565b6001905092915050565b60006105e76105ba60006109ca565b6105d96105c861dead6109ca565b600154610fcd90919063ffffffff16565b610fcd90919063ffffffff16565b905090565b60006012546003546105fc6105ab565b610606919061299e565b6106109190612a27565b905090565b6000610622848484610fe3565b6106d584336106d08560405180606001604052806028815260200161343760289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111dc9092919063ffffffff16565b610e04565b600190509392505050565b6106e933610745565b610728576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071f90612aa4565b60405180910390fd5b6001600a60146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b60076020528060005260406000206000915054906101000a900460ff1681565b6107d033610745565b61080f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080690612aa4565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61087333610745565b6108b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a990612aa4565b60405180910390fd5b6000612710846108c06105ab565b6108ca919061299e565b6108d49190612a27565b90506000612710846108e46105ab565b6108ee919061299e565b6108f89190612a27565b90506000612710846109086105ab565b610912919061299e565b61091c9190612a27565b905085600281905550846003819055508360048190555060006109646103e861095660056109486105ab565b61123190919063ffffffff16565b61124790919063ffffffff16565b90508084101580156109765750808310155b80156109825750808210155b6109c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b890612b36565b60405180910390fd5b50505050505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000601254600454610a236105ab565b610a2d919061299e565b610a379190612a27565b905090565b6000601254600254610a4c6105ab565b610a56919061299e565b610a609190612a27565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f546f756368c3a920000000000000000000000000000000000000000000000000815250905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610afe338484610fe3565b6001905092915050565b610b1133610745565b610b50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4790612aa4565b60405180910390fd5b86600b8190555085600c8190555084600e8190555083600d8190555082600f819055508160108190555080601181905550610b97600160125461124790919063ffffffff16565b600f5411158015610bbf5750610bb9600160125461124790919063ffffffff16565b60105411155b610bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf590612bc8565b60405180910390fd5b50505050505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610c9733610745565b610cd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccd90612aa4565b60405180910390fd5b82601681905550610d07620186a0610cf98460015461123190919063ffffffff16565b61124790919063ffffffff16565b601781905550610d37620186a0610d298360015461123190919063ffffffff16565b61124790919063ffffffff16565b601881905550505050565b610d4b33610745565b610d8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8190612aa4565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051610df99190612c47565b60405180910390a150565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6a90612cd4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ee2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed990612d66565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610fc09190612667565b60405180910390a3505050565b60008183610fdb9190612d86565b905092915050565b610fee83838361125d565b610ff883836113ce565b6110038383836114cb565b61100d83836116a9565b611018838383611774565b6110238383836119b3565b61107581600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fcd90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006110c484846119dc565b6110ce57816110da565b6110d9848484611a8a565b5b905061112e81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c3290919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111ce9190612667565b60405180910390a350505050565b6000838311158290611224576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121b9190612527565b60405180910390fd5b5082840390509392505050565b6000818361123f919061299e565b905092915050565b600081836112559190612a27565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c390612e2c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361133b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133290612ebe565b60405180910390fd5b6000811161137e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137590612f50565b60405180910390fd5b611387836109ca565b8111156113c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c090612fe2565b60405180910390fd5b505050565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114725750600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156114c757600a60149054906101000a900460ff166114c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bd9061304e565b60405180910390fd5b5b5050565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561156f5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115c95750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611603575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156116a457611610610a13565b61166282600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c3290919063ffffffff16565b11156116a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169a906130ba565b60405180910390fd5b5b505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480156117505750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117705760016014600082825461176891906130da565b925050819055505b5050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146118bc576117d16105ec565b811115806118285750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061187c5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6118bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b29061315a565b60405180910390fd5b5b6118c4610a3c565b8111158061191b5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061196f5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6119ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a59061315a565b60405180910390fd5b505050565b6119be838383611c48565b156119d7576119ce601754611d82565b60006014819055505b505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a825750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b600080611a978585611fd3565b1115611c27576000611acf611aac8686611fd3565b611ac16012548661124790919063ffffffff16565b61123190919063ffffffff16565b9050611b2381600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c3290919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bc39190612667565b60405180910390a36000600e541115611c0c57611c0b3061dead611c06600e54611bf86012548961124790919063ffffffff16565b61123190919063ffffffff16565b610fe3565b5b611c1f8184610fcd90919063ffffffff16565b915050611c2b565b8190505b9392505050565b60008183611c4091906130da565b905092915050565b60008060185483101590506000601754611c61306109ca565b10159050601560009054906101000a900460ff16158015611c8e5750601360009054906101000a900460ff165b8015611ca65750600a60149054906101000a900460ff165b8015611caf5750815b8015611d055750600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d5e5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8015611d6e575060165460145410155b8015611d775750805b925050509392505050565b6001601560006101000a81548160ff0219169083151502179055506000611df06002611de2600d54611dd4600c54611dc66001600b54611c3290919063ffffffff16565b611c3290919063ffffffff16565b611c3290919063ffffffff16565b61123190919063ffffffff16565b90506000611e1b82611e0d600b548661123190919063ffffffff16565b61124790919063ffffffff16565b90506000611e328285610fcd90919063ffffffff16565b90506000479050611e4282612162565b6000611e578247610fcd90919063ffffffff16565b90506000611e82611e73600b5488610fcd90919063ffffffff16565b8361124790919063ffffffff16565b90506000611e9b600b548361123190919063ffffffff16565b90506000811115611eb157611eb086826123a5565b5b6000611edb600c54611ecd60028661123190919063ffffffff16565b61123190919063ffffffff16565b90506000811115611f4257730a9ea501c5d76baea16b0c4ba6af21b8a9ccf1f673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f40573d6000803e3d6000fd5b505b60004790506000811115611fac57730a9ea501c5d76baea16b0c4ba6af21b8a9ccf1f673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611faa573d6000803e3d6000fd5b505b5050505050505050506000601560006101000a81548160ff02191690831515021790555050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120765750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612098576120916064601254610fcd90919063ffffffff16565b905061215c565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120f757601054905061215c565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361215657600f54905061215c565b60115490505b92915050565b6000600267ffffffffffffffff81111561217f5761217e61317a565b5b6040519080825280602002602001820160405280156121ad5781602001602082028036833780820191505090505b50905030816000815181106121c5576121c46131a9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561226c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061229091906131ed565b816001815181106122a4576122a36131a9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061230b30600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610e04565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161236f959493929190613313565b600060405180830381600087803b15801561238957600080fd5b505af115801561239d573d6000803e3d6000fd5b505050505050565b6123d230600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610e04565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080730a9ea501c5d76baea16b0c4ba6af21b8a9ccf1f6426040518863ffffffff1660e01b815260040161244d9695949392919061336d565b60606040518083038185885af115801561246b573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061249091906133e3565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124d15780820151818401526020810190506124b6565b60008484015250505050565b6000601f19601f8301169050919050565b60006124f982612497565b61250381856124a2565b93506125138185602086016124b3565b61251c816124dd565b840191505092915050565b6000602082019050818103600083015261254181846124ee565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125798261254e565b9050919050565b6125898161256e565b811461259457600080fd5b50565b6000813590506125a681612580565b92915050565b6000819050919050565b6125bf816125ac565b81146125ca57600080fd5b50565b6000813590506125dc816125b6565b92915050565b600080604083850312156125f9576125f8612549565b5b600061260785828601612597565b9250506020612618858286016125cd565b9150509250929050565b60008115159050919050565b61263781612622565b82525050565b6000602082019050612652600083018461262e565b92915050565b612661816125ac565b82525050565b600060208201905061267c6000830184612658565b92915050565b60008060006060848603121561269b5761269a612549565b5b60006126a986828701612597565b93505060206126ba86828701612597565b92505060406126cb868287016125cd565b9150509250925092565b6000602082840312156126eb576126ea612549565b5b60006126f984828501612597565b91505092915050565b600060ff82169050919050565b61271881612702565b82525050565b6000602082019050612733600083018461270f565b92915050565b61274281612622565b811461274d57600080fd5b50565b60008135905061275f81612739565b92915050565b6000806040838503121561277c5761277b612549565b5b600061278a85828601612597565b925050602061279b85828601612750565b9150509250929050565b6000806000606084860312156127be576127bd612549565b5b60006127cc868287016125cd565b93505060206127dd868287016125cd565b92505060406127ee868287016125cd565b9150509250925092565b6128018161256e565b82525050565b600060208201905061281c60008301846127f8565b92915050565b600080600080600080600060e0888a03121561284157612840612549565b5b600061284f8a828b016125cd565b97505060206128608a828b016125cd565b96505060406128718a828b016125cd565b95505060606128828a828b016125cd565b94505060806128938a828b016125cd565b93505060a06128a48a828b016125cd565b92505060c06128b58a828b016125cd565b91505092959891949750929550565b600080604083850312156128db576128da612549565b5b60006128e985828601612597565b92505060206128fa85828601612597565b9150509250929050565b600061290f8261254e565b9050919050565b61291f81612904565b811461292a57600080fd5b50565b60008135905061293c81612916565b92915050565b60006020828403121561295857612957612549565b5b60006129668482850161292d565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006129a9826125ac565b91506129b4836125ac565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156129ed576129ec61296f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612a32826125ac565b9150612a3d836125ac565b925082612a4d57612a4c6129f8565b5b828204905092915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000612a8e6006836124a2565b9150612a9982612a58565b602082019050919050565b60006020820190508181036000830152612abd81612a81565b9050919050565b7f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560008201527f206c657373207468616e202e3525000000000000000000000000000000000000602082015250565b6000612b20602e836124a2565b9150612b2b82612ac4565b604082019050919050565b60006020820190508181036000830152612b4f81612b13565b9050919050565b7f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60008201527f6f7265207468616e203230250000000000000000000000000000000000000000602082015250565b6000612bb2602c836124a2565b9150612bbd82612b56565b604082019050919050565b60006020820190508181036000830152612be181612ba5565b9050919050565b6000819050919050565b6000612c0d612c08612c038461254e565b612be8565b61254e565b9050919050565b6000612c1f82612bf2565b9050919050565b6000612c3182612c14565b9050919050565b612c4181612c26565b82525050565b6000602082019050612c5c6000830184612c38565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612cbe6024836124a2565b9150612cc982612c62565b604082019050919050565b60006020820190508181036000830152612ced81612cb1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d506022836124a2565b9150612d5b82612cf4565b604082019050919050565b60006020820190508181036000830152612d7f81612d43565b9050919050565b6000612d91826125ac565b9150612d9c836125ac565b9250828203905081811115612db457612db361296f565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612e166025836124a2565b9150612e2182612dba565b604082019050919050565b60006020820190508181036000830152612e4581612e09565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612ea86023836124a2565b9150612eb382612e4c565b604082019050919050565b60006020820190508181036000830152612ed781612e9b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612f3a6029836124a2565b9150612f4582612ede565b604082019050919050565b60006020820190508181036000830152612f6981612f2d565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b6000612fcc6031836124a2565b9150612fd782612f70565b604082019050919050565b60006020820190508181036000830152612ffb81612fbf565b9050919050565b7f74726164696e67416c6c6f776564000000000000000000000000000000000000600082015250565b6000613038600e836124a2565b915061304382613002565b602082019050919050565b600060208201905081810360008301526130678161302b565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000600082015250565b60006130a4601e836124a2565b91506130af8261306e565b602082019050919050565b600060208201905081810360008301526130d381613097565b9050919050565b60006130e5826125ac565b91506130f0836125ac565b92508282019050808211156131085761310761296f565b5b92915050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006131446011836124a2565b915061314f8261310e565b602082019050919050565b6000602082019050818103600083015261317381613137565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506131e781612580565b92915050565b60006020828403121561320357613202612549565b5b6000613211848285016131d8565b91505092915050565b6000819050919050565b600061323f61323a6132358461321a565b612be8565b6125ac565b9050919050565b61324f81613224565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61328a8161256e565b82525050565b600061329c8383613281565b60208301905092915050565b6000602082019050919050565b60006132c082613255565b6132ca8185613260565b93506132d583613271565b8060005b838110156133065781516132ed8882613290565b97506132f8836132a8565b9250506001810190506132d9565b5085935050505092915050565b600060a0820190506133286000830188612658565b6133356020830187613246565b818103604083015261334781866132b5565b905061335660608301856127f8565b6133636080830184612658565b9695505050505050565b600060c08201905061338260008301896127f8565b61338f6020830188612658565b61339c6040830187613246565b6133a96060830186613246565b6133b660808301856127f8565b6133c360a0830184612658565b979650505050505050565b6000815190506133dd816125b6565b92915050565b6000806000606084860312156133fc576133fb612549565b5b600061340a868287016133ce565b935050602061341b868287016133ce565b925050604061342c868287016133ce565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122025f1b528b000d1fdaa2a8243c599a66a66312ac2d1324533ac25e82d32d00e2264736f6c63430008100033

Deployed Bytecode

0x6080604052600436106101395760003560e01c806370a08231116100ab578063a8aa1b311161006f578063a8aa1b3114610437578063a9059cbb14610462578063da2e3bad1461049f578063dd62ed3e146104c8578063e94dd17c14610505578063f2fde38b1461052e57610140565b806370a082311461034e57806378109e541461038b5780637d1db4a5146103b6578063893d20e8146103e157806395d89b411461040c57610140565b8063293230b8116100fd578063293230b8146102405780632f54bf6e14610257578063313ce567146102945780633f4218e0146102bf57806348ff2b8b146102fc57806366dc3e331461032557610140565b806306fdde0314610145578063095ea7b31461017057806318160ddd146101ad5780631f976b7e146101d857806323b872dd1461020357610140565b3661014057005b600080fd5b34801561015157600080fd5b5061015a610557565b6040516101679190612527565b60405180910390f35b34801561017c57600080fd5b50610197600480360381019061019291906125e2565b610594565b6040516101a4919061263d565b60405180910390f35b3480156101b957600080fd5b506101c26105ab565b6040516101cf9190612667565b60405180910390f35b3480156101e457600080fd5b506101ed6105ec565b6040516101fa9190612667565b60405180910390f35b34801561020f57600080fd5b5061022a60048036038101906102259190612682565b610615565b604051610237919061263d565b60405180910390f35b34801561024c57600080fd5b506102556106e0565b005b34801561026357600080fd5b5061027e600480360381019061027991906126d5565b610745565b60405161028b919061263d565b60405180910390f35b3480156102a057600080fd5b506102a961079e565b6040516102b6919061271e565b60405180910390f35b3480156102cb57600080fd5b506102e660048036038101906102e191906126d5565b6107a7565b6040516102f3919061263d565b60405180910390f35b34801561030857600080fd5b50610323600480360381019061031e9190612765565b6107c7565b005b34801561033157600080fd5b5061034c600480360381019061034791906127a5565b61086a565b005b34801561035a57600080fd5b50610375600480360381019061037091906126d5565b6109ca565b6040516103829190612667565b60405180910390f35b34801561039757600080fd5b506103a0610a13565b6040516103ad9190612667565b60405180910390f35b3480156103c257600080fd5b506103cb610a3c565b6040516103d89190612667565b60405180910390f35b3480156103ed57600080fd5b506103f6610a65565b6040516104039190612807565b60405180910390f35b34801561041857600080fd5b50610421610a8e565b60405161042e9190612527565b60405180910390f35b34801561044357600080fd5b5061044c610acb565b6040516104599190612807565b60405180910390f35b34801561046e57600080fd5b50610489600480360381019061048491906125e2565b610af1565b604051610496919061263d565b60405180910390f35b3480156104ab57600080fd5b506104c660048036038101906104c19190612822565b610b08565b005b3480156104d457600080fd5b506104ef60048036038101906104ea91906128c4565b610c07565b6040516104fc9190612667565b60405180910390f35b34801561051157600080fd5b5061052c600480360381019061052791906127a5565b610c8e565b005b34801561053a57600080fd5b5061055560048036038101906105509190612942565b610d42565b005b60606040518060400160405280600881526020017f546f756368c3a920000000000000000000000000000000000000000000000000815250905090565b60006105a1338484610e04565b6001905092915050565b60006105e76105ba60006109ca565b6105d96105c861dead6109ca565b600154610fcd90919063ffffffff16565b610fcd90919063ffffffff16565b905090565b60006012546003546105fc6105ab565b610606919061299e565b6106109190612a27565b905090565b6000610622848484610fe3565b6106d584336106d08560405180606001604052806028815260200161343760289139600660008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546111dc9092919063ffffffff16565b610e04565b600190509392505050565b6106e933610745565b610728576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161071f90612aa4565b60405180910390fd5b6001600a60146101000a81548160ff021916908315150217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b60006009905090565b60076020528060005260406000206000915054906101000a900460ff1681565b6107d033610745565b61080f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080690612aa4565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b61087333610745565b6108b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108a990612aa4565b60405180910390fd5b6000612710846108c06105ab565b6108ca919061299e565b6108d49190612a27565b90506000612710846108e46105ab565b6108ee919061299e565b6108f89190612a27565b90506000612710846109086105ab565b610912919061299e565b61091c9190612a27565b905085600281905550846003819055508360048190555060006109646103e861095660056109486105ab565b61123190919063ffffffff16565b61124790919063ffffffff16565b90508084101580156109765750808310155b80156109825750808210155b6109c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109b890612b36565b60405180910390fd5b50505050505050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6000601254600454610a236105ab565b610a2d919061299e565b610a379190612a27565b905090565b6000601254600254610a4c6105ab565b610a56919061299e565b610a609190612a27565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600881526020017f546f756368c3a920000000000000000000000000000000000000000000000000815250905090565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000610afe338484610fe3565b6001905092915050565b610b1133610745565b610b50576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4790612aa4565b60405180910390fd5b86600b8190555085600c8190555084600e8190555083600d8190555082600f819055508160108190555080601181905550610b97600160125461124790919063ffffffff16565b600f5411158015610bbf5750610bb9600160125461124790919063ffffffff16565b60105411155b610bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf590612bc8565b60405180910390fd5b50505050505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610c9733610745565b610cd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ccd90612aa4565b60405180910390fd5b82601681905550610d07620186a0610cf98460015461123190919063ffffffff16565b61124790919063ffffffff16565b601781905550610d37620186a0610d298360015461123190919063ffffffff16565b61124790919063ffffffff16565b601881905550505050565b610d4b33610745565b610d8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8190612aa4565b60405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f04dba622d284ed0014ee4b9a6a68386be1a4c08a4913ae272de89199cc68616381604051610df99190612c47565b60405180910390a150565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610e73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6a90612cd4565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ee2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ed990612d66565b60405180910390fd5b80600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610fc09190612667565b60405180910390a3505050565b60008183610fdb9190612d86565b905092915050565b610fee83838361125d565b610ff883836113ce565b6110038383836114cb565b61100d83836116a9565b611018838383611774565b6110238383836119b3565b61107581600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fcd90919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555060006110c484846119dc565b6110ce57816110da565b6110d9848484611a8a565b5b905061112e81600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c3290919063ffffffff16565b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516111ce9190612667565b60405180910390a350505050565b6000838311158290611224576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121b9190612527565b60405180910390fd5b5082840390509392505050565b6000818361123f919061299e565b905092915050565b600081836112559190612a27565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c390612e2c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361133b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161133290612ebe565b60405180910390fd5b6000811161137e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137590612f50565b60405180910390fd5b611387836109ca565b8111156113c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c090612fe2565b60405180910390fd5b505050565b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114725750600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156114c757600a60149054906101000a900460ff166114c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bd9061304e565b60405180910390fd5b5b5050565b600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615801561156f5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b80156115c95750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611603575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156116a457611610610a13565b61166282600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c3290919063ffffffff16565b11156116a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161169a906130ba565b60405180910390fd5b5b505050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161480156117505750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156117705760016014600082825461176891906130da565b925050819055505b5050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146118bc576117d16105ec565b811115806118285750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061187c5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6118bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b29061315a565b60405180910390fd5b5b6118c4610a3c565b8111158061191b5750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b8061196f5750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b6119ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119a59061315a565b60405180910390fd5b505050565b6119be838383611c48565b156119d7576119ce601754611d82565b60006014819055505b505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611a825750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b600080611a978585611fd3565b1115611c27576000611acf611aac8686611fd3565b611ac16012548661124790919063ffffffff16565b61123190919063ffffffff16565b9050611b2381600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611c3290919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bc39190612667565b60405180910390a36000600e541115611c0c57611c0b3061dead611c06600e54611bf86012548961124790919063ffffffff16565b61123190919063ffffffff16565b610fe3565b5b611c1f8184610fcd90919063ffffffff16565b915050611c2b565b8190505b9392505050565b60008183611c4091906130da565b905092915050565b60008060185483101590506000601754611c61306109ca565b10159050601560009054906101000a900460ff16158015611c8e5750601360009054906101000a900460ff165b8015611ca65750600a60149054906101000a900460ff165b8015611caf5750815b8015611d055750600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d5e5750600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b8015611d6e575060165460145410155b8015611d775750805b925050509392505050565b6001601560006101000a81548160ff0219169083151502179055506000611df06002611de2600d54611dd4600c54611dc66001600b54611c3290919063ffffffff16565b611c3290919063ffffffff16565b611c3290919063ffffffff16565b61123190919063ffffffff16565b90506000611e1b82611e0d600b548661123190919063ffffffff16565b61124790919063ffffffff16565b90506000611e328285610fcd90919063ffffffff16565b90506000479050611e4282612162565b6000611e578247610fcd90919063ffffffff16565b90506000611e82611e73600b5488610fcd90919063ffffffff16565b8361124790919063ffffffff16565b90506000611e9b600b548361123190919063ffffffff16565b90506000811115611eb157611eb086826123a5565b5b6000611edb600c54611ecd60028661123190919063ffffffff16565b61123190919063ffffffff16565b90506000811115611f4257730a9ea501c5d76baea16b0c4ba6af21b8a9ccf1f673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611f40573d6000803e3d6000fd5b505b60004790506000811115611fac57730a9ea501c5d76baea16b0c4ba6af21b8a9ccf1f673ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611faa573d6000803e3d6000fd5b505b5050505050505050506000601560006101000a81548160ff02191690831515021790555050565b6000600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120765750600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612098576120916064601254610fcd90919063ffffffff16565b905061215c565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120f757601054905061215c565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361215657600f54905061215c565b60115490505b92915050565b6000600267ffffffffffffffff81111561217f5761217e61317a565b5b6040519080825280602002602001820160405280156121ad5781602001602082028036833780820191505090505b50905030816000815181106121c5576121c46131a9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561226c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061229091906131ed565b816001815181106122a4576122a36131a9565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061230b30600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610e04565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161236f959493929190613313565b600060405180830381600087803b15801561238957600080fd5b505af115801561239d573d6000803e3d6000fd5b505050505050565b6123d230600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684610e04565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d719823085600080730a9ea501c5d76baea16b0c4ba6af21b8a9ccf1f6426040518863ffffffff1660e01b815260040161244d9695949392919061336d565b60606040518083038185885af115801561246b573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061249091906133e3565b5050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156124d15780820151818401526020810190506124b6565b60008484015250505050565b6000601f19601f8301169050919050565b60006124f982612497565b61250381856124a2565b93506125138185602086016124b3565b61251c816124dd565b840191505092915050565b6000602082019050818103600083015261254181846124ee565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125798261254e565b9050919050565b6125898161256e565b811461259457600080fd5b50565b6000813590506125a681612580565b92915050565b6000819050919050565b6125bf816125ac565b81146125ca57600080fd5b50565b6000813590506125dc816125b6565b92915050565b600080604083850312156125f9576125f8612549565b5b600061260785828601612597565b9250506020612618858286016125cd565b9150509250929050565b60008115159050919050565b61263781612622565b82525050565b6000602082019050612652600083018461262e565b92915050565b612661816125ac565b82525050565b600060208201905061267c6000830184612658565b92915050565b60008060006060848603121561269b5761269a612549565b5b60006126a986828701612597565b93505060206126ba86828701612597565b92505060406126cb868287016125cd565b9150509250925092565b6000602082840312156126eb576126ea612549565b5b60006126f984828501612597565b91505092915050565b600060ff82169050919050565b61271881612702565b82525050565b6000602082019050612733600083018461270f565b92915050565b61274281612622565b811461274d57600080fd5b50565b60008135905061275f81612739565b92915050565b6000806040838503121561277c5761277b612549565b5b600061278a85828601612597565b925050602061279b85828601612750565b9150509250929050565b6000806000606084860312156127be576127bd612549565b5b60006127cc868287016125cd565b93505060206127dd868287016125cd565b92505060406127ee868287016125cd565b9150509250925092565b6128018161256e565b82525050565b600060208201905061281c60008301846127f8565b92915050565b600080600080600080600060e0888a03121561284157612840612549565b5b600061284f8a828b016125cd565b97505060206128608a828b016125cd565b96505060406128718a828b016125cd565b95505060606128828a828b016125cd565b94505060806128938a828b016125cd565b93505060a06128a48a828b016125cd565b92505060c06128b58a828b016125cd565b91505092959891949750929550565b600080604083850312156128db576128da612549565b5b60006128e985828601612597565b92505060206128fa85828601612597565b9150509250929050565b600061290f8261254e565b9050919050565b61291f81612904565b811461292a57600080fd5b50565b60008135905061293c81612916565b92915050565b60006020828403121561295857612957612549565b5b60006129668482850161292d565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006129a9826125ac565b91506129b4836125ac565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156129ed576129ec61296f565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612a32826125ac565b9150612a3d836125ac565b925082612a4d57612a4c6129f8565b5b828204905092915050565b7f214f574e45520000000000000000000000000000000000000000000000000000600082015250565b6000612a8e6006836124a2565b9150612a9982612a58565b602082019050919050565b60006020820190508181036000830152612abd81612a81565b9050919050565b7f4d61782054587320616e64204d61782057616c6c65742063616e6e6f7420626560008201527f206c657373207468616e202e3525000000000000000000000000000000000000602082015250565b6000612b20602e836124a2565b9150612b2b82612ac4565b604082019050919050565b60006020820190508181036000830152612b4f81612b13565b9050919050565b7f746f74616c46656520616e642073656c6c4665652063616e6e6f74206265206d60008201527f6f7265207468616e203230250000000000000000000000000000000000000000602082015250565b6000612bb2602c836124a2565b9150612bbd82612b56565b604082019050919050565b60006020820190508181036000830152612be181612ba5565b9050919050565b6000819050919050565b6000612c0d612c08612c038461254e565b612be8565b61254e565b9050919050565b6000612c1f82612bf2565b9050919050565b6000612c3182612c14565b9050919050565b612c4181612c26565b82525050565b6000602082019050612c5c6000830184612c38565b92915050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612cbe6024836124a2565b9150612cc982612c62565b604082019050919050565b60006020820190508181036000830152612ced81612cb1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612d506022836124a2565b9150612d5b82612cf4565b604082019050919050565b60006020820190508181036000830152612d7f81612d43565b9050919050565b6000612d91826125ac565b9150612d9c836125ac565b9250828203905081811115612db457612db361296f565b5b92915050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612e166025836124a2565b9150612e2182612dba565b604082019050919050565b60006020820190508181036000830152612e4581612e09565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612ea86023836124a2565b9150612eb382612e4c565b604082019050919050565b60006020820190508181036000830152612ed781612e9b565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b6000612f3a6029836124a2565b9150612f4582612ede565b604082019050919050565b60006020820190508181036000830152612f6981612f2d565b9050919050565b7f596f752061726520747279696e6720746f207472616e73666572206d6f72652060008201527f7468616e20796f75722062616c616e6365000000000000000000000000000000602082015250565b6000612fcc6031836124a2565b9150612fd782612f70565b604082019050919050565b60006020820190508181036000830152612ffb81612fbf565b9050919050565b7f74726164696e67416c6c6f776564000000000000000000000000000000000000600082015250565b6000613038600e836124a2565b915061304382613002565b602082019050919050565b600060208201905081810360008301526130678161302b565b9050919050565b7f45786365656473206d6178696d756d2077616c6c657420616d6f756e742e0000600082015250565b60006130a4601e836124a2565b91506130af8261306e565b602082019050919050565b600060208201905081810360008301526130d381613097565b9050919050565b60006130e5826125ac565b91506130f0836125ac565b92508282019050808211156131085761310761296f565b5b92915050565b7f5458204c696d6974204578636565646564000000000000000000000000000000600082015250565b60006131446011836124a2565b915061314f8261310e565b602082019050919050565b6000602082019050818103600083015261317381613137565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506131e781612580565b92915050565b60006020828403121561320357613202612549565b5b6000613211848285016131d8565b91505092915050565b6000819050919050565b600061323f61323a6132358461321a565b612be8565b6125ac565b9050919050565b61324f81613224565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61328a8161256e565b82525050565b600061329c8383613281565b60208301905092915050565b6000602082019050919050565b60006132c082613255565b6132ca8185613260565b93506132d583613271565b8060005b838110156133065781516132ed8882613290565b97506132f8836132a8565b9250506001810190506132d9565b5085935050505092915050565b600060a0820190506133286000830188612658565b6133356020830187613246565b818103604083015261334781866132b5565b905061335660608301856127f8565b6133636080830184612658565b9695505050505050565b600060c08201905061338260008301896127f8565b61338f6020830188612658565b61339c6040830187613246565b6133a96060830186613246565b6133b660808301856127f8565b6133c360a0830184612658565b979650505050505050565b6000815190506133dd816125b6565b92915050565b6000806000606084860312156133fc576133fb612549565b5b600061340a868287016133ce565b935050602061341b868287016133ce565b925050604061342c868287016133ce565b915050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122025f1b528b000d1fdaa2a8243c599a66a66312ac2d1324533ac25e82d32d00e2264736f6c63430008100033

Deployed Bytecode Sourcemap

4707:11865:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7087:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8102:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8241:132;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8618:119;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15915:309;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7310:67;;;;;;;;;;;;;:::i;:::-;;3087:87;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7237:67;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5271:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7988:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10416:586;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7467:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8379:114;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8499:113;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7383:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7160:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5389:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7576:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9886:522;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7721:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14352:315;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3180:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7087:67;7124:13;7147:5;;;;;;;;;;;;;;;;;7140:12;;7087:67;:::o;8102:133::-;8177:4;8184:37;8193:10;8205:7;8214:6;8184:8;:37::i;:::-;8229:4;8222:11;;8102:133;;;;:::o;8241:132::-;8294:7;8311:60;8349:21;8367:1;8349:9;:21::i;:::-;8311:33;8328:15;6142:42;8328:9;:15::i;:::-;8311:12;;:16;;:33;;;;:::i;:::-;:37;;:60;;;;:::i;:::-;8304:67;;8241:132;:::o;8618:119::-;8669:7;8724:11;;8702:19;;8686:13;:11;:13::i;:::-;:35;;;;:::i;:::-;:49;;;;:::i;:::-;8679:56;;8618:119;:::o;15915:309::-;16013:4;16030:36;16040:6;16048:9;16059:6;16030:9;:36::i;:::-;16077:117;16086:6;16094:10;16106:87;16142:6;16106:87;;;;;;;;;;;;;;;;;:11;:19;16118:6;16106:19;;;;;;;;;;;;;;;:31;16126:10;16106:31;;;;;;;;;;;;;;;;:35;;:87;;;;;:::i;:::-;16077:8;:117::i;:::-;16212:4;16205:11;;15915:309;;;;;:::o;7310:67::-;3046:19;3054:10;3046:7;:19::i;:::-;3038:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;7371:4:::1;7354:14;;:21;;;;;;;;;;;;;;;;;;7310:67::o:0;3087:87::-;3142:4;3167:5;;;;;;;;;;;3156:16;;:7;:16;;;3149:23;;3087:87;;;:::o;7237:67::-;7278:5;4931:1;7286:16;;7237:67;:::o;5271:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;7988:108::-;3046:19;3054:10;3046:7;:19::i;:::-;3038:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;8086:8:::1;8062:11;:21;8074:8;8062:21;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;7988:108:::0;;:::o;10416:586::-;3046:19;3054:10;3046:7;:19::i;:::-;3038:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;10518:13:::1;10559:5;10551:4;10535:13;:11;:13::i;:::-;:20;;;;:::i;:::-;10534:30;;;;:::i;:::-;10518:46;;10575:19;10624:5;10614:6;10598:13;:11;:13::i;:::-;:22;;;;:::i;:::-;10597:32;;;;:::i;:::-;10575:54;;10640:17;10688:5;10677:7;10661:13;:11;:13::i;:::-;:23;;;;:::i;:::-;10660:33;;;;:::i;:::-;10640:53;;10726:4;10704:19;:26;;;;10763:6;10741:19;:28;;;;10800:7;10780:17;:27;;;;10818:13;10834:30;10859:4;10834:20;10852:1;10834:13;:11;:13::i;:::-;:17;;:20;;;;:::i;:::-;:24;;:30;;;;:::i;:::-;10818:46;;10892:5;10883;:14;;:38;;;;;10916:5;10901:11;:20;;10883:38;:60;;;;;10938:5;10925:9;:18;;10883:60;10875:119;;;;;;;;;;;;:::i;:::-;;;;;;;;;10507:495;;;;10416:586:::0;;;:::o;7467:103::-;7533:7;7550:9;:18;7560:7;7550:18;;;;;;;;;;;;;;;;7543:25;;7467:103;;;:::o;8379:114::-;8427:7;8480:11;;8460:17;;8444:13;:11;:13::i;:::-;:33;;;;:::i;:::-;:47;;;;:::i;:::-;8437:54;;8379:114;:::o;8499:113::-;8544:7;8599:11;;8577:19;;8561:13;:11;:13::i;:::-;:35;;;;:::i;:::-;:49;;;;:::i;:::-;8554:56;;8499:113;:::o;7383:78::-;7435:7;7453:5;;;;;;;;;;;7446:12;;7383:78;:::o;7160:71::-;7199:13;7222:7;;;;;;;;;;;;;;;;;7215:14;;7160:71;:::o;5389:19::-;;;;;;;;;;;;;:::o;7576:139::-;7654:4;7661:40;7671:10;7683:9;7694:6;7661:9;:40::i;:::-;7709:4;7702:11;;7576:139;;;;:::o;9886:522::-;3046:19;3054:10;3046:7;:19::i;:::-;3038:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;10072:10:::1;10057:12;:25;;;;10108:10;10093:12;:25;;;;10139:5;10129:7;:15;;;;10172:12;10155:14;:29;;;;10206:6;10195:8;:17;;;;10233:5;10223:7;:15;;;;10263:6;10249:11;:20;;;;10300:18;10316:1;10300:11;;:15;;:18;;;;:::i;:::-;10288:8;;:30;;:63;;;;;10333:18;10349:1;10333:11;;:15;;:18;;;;:::i;:::-;10322:7;;:29;;10288:63;10280:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;9886:522:::0;;;;;;;:::o;7721:127::-;7802:7;7819:11;:18;7831:5;7819:18;;;;;;;;;;;;;;;:27;7838:7;7819:27;;;;;;;;;;;;;;;;7812:34;;7721:127;;;;:::o;14352:315::-;3046:19;3054:10;3046:7;:19::i;:::-;3038:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;14494:11:::1;14481:10;:24;;;;14523:53;14568:6;14523:32;14540:14;14523:12;;:16;;:32;;;;:::i;:::-;:36;;:53;;;;:::i;:::-;14507:13;:69;;;;14605:54;14651:6;14605:33;14622:15;14605:12;;:16;;:33;;;;:::i;:::-;:37;;:54;;;;:::i;:::-;14588:14;:71;;;;14352:315:::0;;;:::o;3180:111::-;3046:19;3054:10;3046:7;:19::i;:::-;3038:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3254:3:::1;3246:5;::::0;:11:::1;;;;;;;;;;;;;;;;;;3264:25;3285:3;3264:25;;;;;;:::i;:::-;;;;;;;;3180:111:::0;:::o;16232:335::-;16342:1;16325:19;;:5;:19;;;16317:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16423:1;16404:21;;:7;:21;;;16396:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16505:6;16475:11;:18;16487:5;16475:18;;;;;;;;;;;;;;;:27;16494:7;16475:27;;;;;;;;;;;;;;;:36;;;;16543:7;16527:32;;16536:5;16527:32;;;16552:6;16527:32;;;;;;:::i;:::-;;;;;;;;16232:335;;;:::o;273:82::-;331:7;352:1;348;:5;;;;:::i;:::-;341:12;;273:82;;;;:::o;9192:686::-;9281:37;9292:6;9300:9;9311:6;9281:10;:37::i;:::-;9329:38;9349:6;9357:9;9329:19;:38::i;:::-;9378:41;9393:6;9401:9;9412:6;9378:14;:41::i;:::-;9431:35;9448:6;9456:9;9431:16;:35::i;:::-;9477:39;9490:6;9498:9;9509:6;9477:12;:39::i;:::-;9528:35;9537:6;9545:9;9556:6;9528:8;:35::i;:::-;9594:29;9616:6;9594:9;:17;9604:6;9594:17;;;;;;;;;;;;;;;;:21;;:29;;;;:::i;:::-;9574:9;:17;9584:6;9574:17;;;;;;;;;;;;;;;:49;;;;9634:22;9659:32;9673:6;9681:9;9659:13;:32::i;:::-;:78;;9731:6;9659:78;;;9694:34;9702:6;9710:9;9721:6;9694:7;:34::i;:::-;9659:78;9634:103;;9771:40;9796:14;9771:9;:20;9781:9;9771:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;9748:9;:20;9758:9;9748:20;;;;;;;;;;;;;;;:63;;;;9844:9;9827:43;;9836:6;9827:43;;;9855:14;9827:43;;;;;;:::i;:::-;;;;;;;;9270:608;9192:686;;;:::o;1486:162::-;1572:7;1615:1;1610;:6;;1618:12;1602:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1644:1;1640;:5;1633:12;;1486:162;;;;;:::o;361:82::-;419:7;440:1;436;:5;;;;:::i;:::-;429:12;;361:82;;;;:::o;449:::-;507:7;528:1;524;:5;;;;:::i;:::-;517:12;;449:82;;;;:::o;8745:439::-;8867:1;8849:20;;:6;:20;;;8841:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;8951:1;8930:23;;:9;:23;;;8922:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;9029:1;9012:6;:19;9004:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;9106:17;9116:6;9106:9;:17::i;:::-;9096:6;:27;;9088:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;8745:439;;;:::o;11010:191::-;11103:11;:19;11115:6;11103:19;;;;;;;;;;;;;;;;;;;;;;;;;11102:20;:47;;;;;11127:11;:22;11139:9;11127:22;;;;;;;;;;;;;;;;;;;;;;;;;11126:23;11102:47;11099:95;;;11159:14;;;;;;;;;;;11151:41;;;;;;;;;;;;:::i;:::-;;;;;;;;;11099:95;11010:191;;:::o;11213:333::-;11317:11;:19;11329:6;11317:19;;;;;;;;;;;;;;;;;;;;;;;;;11316:20;:47;;;;;11341:11;:22;11353:9;11341:22;;;;;;;;;;;;;;;;;;;;;;;;;11340:23;11316:47;:77;;;;;11388:4;;;;;;;;;;;11367:26;;:9;:26;;;;11316:77;:107;;;;;6142:42;11397:26;;:9;:26;;;;11316:107;11313:226;;;11485:17;:15;:17::i;:::-;11448:32;11473:6;11448:9;:20;11458:9;11448:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;11447:55;;11439:98;;;;;;;;;;;;:::i;:::-;;;;;;;;;11313:226;11213:333;;;:::o;11554:159::-;11651:4;;;;;;;;;;;11638:17;;:9;:17;;;:41;;;;;11660:11;:19;11672:6;11660:19;;;;;;;;;;;;;;;;;;;;;;;;;11659:20;11638:41;11635:71;;;11702:1;11681:9;;:23;;;;;;;:::i;:::-;;;;;;;;11635:71;11554:159;;:::o;11721:349::-;11832:4;;;;;;;;;;;11822:14;;:6;:14;;;11819:130;;11856:20;:18;:20::i;:::-;11846:6;:30;;:53;;;;11880:11;:19;11892:6;11880:19;;;;;;;;;;;;;;;;;;;;;;;;;11846:53;:79;;;;11903:11;:22;11915:9;11903:22;;;;;;;;;;;;;;;;;;;;;;;;;11846:79;11838:109;;;;;;;;;;;;:::i;:::-;;;;;;;;;11819:130;11977:14;:12;:14::i;:::-;11967:6;:24;;:47;;;;11995:11;:19;12007:6;11995:19;;;;;;;;;;;;;;;;;;;;;;;;;11967:47;:73;;;;12018:11;:22;12030:9;12018:22;;;;;;;;;;;;;;;;;;;;;;;;;11967:73;11959:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;11721:349;;;:::o;14675:197::-;14767:41;14782:6;14790:9;14801:6;14767:14;:41::i;:::-;14764:101;;;14810:29;14825:13;;14810:14;:29::i;:::-;14861:1;14841:9;:22;;;;14764:101;14675:197;;;:::o;14880:160::-;14961:4;14986:11;:19;14998:6;14986:19;;;;;;;;;;;;;;;;;;;;;;;;;14985:20;:47;;;;;15010:11;:22;15022:9;15010:22;;;;;;;;;;;;;;;;;;;;;;;;;15009:23;14985:47;14978:54;;14880:160;;;;:::o;15361:546::-;15447:7;15503:1;15470:30;15482:6;15490:9;15470:11;:30::i;:::-;:34;15467:418;;;15516:17;15536:59;15564:30;15576:6;15584:9;15564:11;:30::i;:::-;15536:23;15547:11;;15536:6;:10;;:23;;;;:::i;:::-;:27;;:59;;;;:::i;:::-;15516:79;;15633:39;15662:9;15633;:24;15651:4;15633:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;15606:9;:24;15624:4;15606:24;;;;;;;;;;;;;;;:66;;;;15713:4;15688:42;;15697:6;15688:42;;;15720:9;15688:42;;;;;;:::i;:::-;;;;;;;;15762:1;15744:7;;:20;15741:104;;;15766:77;15784:4;6142:42;15806:36;15834:7;;15806:23;15817:11;;15806:6;:10;;:23;;;;:::i;:::-;:27;;:36;;;;:::i;:::-;15766:9;:77::i;:::-;15741:104;15862:21;15873:9;15862:6;:10;;:21;;;;:::i;:::-;15855:28;;;;;15467:418;15893:6;15886:13;;15361:546;;;;;;:::o;185:82::-;243:7;264:1;260;:5;;;;:::i;:::-;253:12;;185:82;;;;:::o;13945:399::-;14043:4;14060:13;14086:14;;14076:6;:24;;14060:40;;14111:19;14161:13;;14133:24;14151:4;14133:9;:24::i;:::-;:41;;14111:63;;14193:8;;;;;;;;;;;14192:9;:24;;;;;14205:11;;;;;;;;;;;14192:24;:42;;;;;14220:14;;;;;;;;;;;14192:42;:54;;;;;14238:8;14192:54;:78;;;;;14251:11;:19;14263:6;14251:19;;;;;;;;;;;;;;;;;;;;;;;;;14250:20;14192:78;:99;;;;;14287:4;;;;;;;;;;;14274:17;;:9;:17;;;14192:99;:126;;;;;14308:10;;14295:9;;:23;;14192:126;:144;;;;;14322:14;14192:144;14185:151;;;;13945:399;;;;;:::o;12078:1066::-;6074:4;6063:8;;:15;;;;;;;;;;;;;;;;;;12149:20:::1;12172:66;12236:1;12173:57;12215:14;;12173:37;12197:12;;12173:19;12190:1;12173:12;;:16;;:19;;;;:::i;:::-;:23;;:37;;;;:::i;:::-;:41;;:57;;;;:::i;:::-;12172:63;;:66;;;;:::i;:::-;12149:89;;12249:32;12284:42;12313:12;12284:24;12295:12;;12284:6;:10;;:24;;;;:::i;:::-;:28;;:42;;;;:::i;:::-;12249:77;;12337:14;12354:36;12365:24;12354:6;:10;;:36;;;;:::i;:::-;12337:53;;12401:22;12426:21;12401:46;;12458:24;12475:6;12458:16;:24::i;:::-;12493:20;12516:41;12542:14;12516:21;:25;;:41;;;;:::i;:::-;12493:64;;12568:19;12589:48;12606:30;12623:12;;12606;:16;;:30;;;;:::i;:::-;12589:12;:16;;:48;;;;:::i;:::-;12568:69;;12648:29;12680;12696:12;;12680:11;:15;;:29;;;;:::i;:::-;12648:61;;12755:1;12723:21;:34;12720:103;;;12759:61;12772:24;12798:21;12759:12;:61::i;:::-;12720:103;12833:20;12856:36;12879:12;;12856:18;12872:1;12856:11;:15;;:18;;;;:::i;:::-;:22;;:36;;;;:::i;:::-;12833:59;;12921:1;12906:12;:16;12903:73;;;6337:42;12924:36;;:50;12961:12;12924:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;12903:73;12986:24;13013:21;12986:48;;13075:1;13048:16;:29;13045:92;;;6240:42;13079:38;;:56;13118:16;13079:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;13045:92;12138:1006;;;;;;;;;6094:5:::0;6083:8;;:16;;;;;;;;;;;;;;;;;;12078:1066;:::o;15048:305::-;15127:7;15150:5;:13;15156:6;15150:13;;;;;;;;;;;;;;;;;;;;;;;;;:33;;;;15167:5;:16;15173:9;15167:16;;;;;;;;;;;;;;;;;;;;;;;;;15150:33;15147:76;;;15192:29;15216:3;15192:11;;:15;;:29;;;;:::i;:::-;15185:36;;;;15147:76;15249:4;;;;;;;;;;;15236:17;;:9;:17;;;15233:38;;15262:7;;15255:14;;;;15233:38;15294:4;;;;;;;;;;;15284:14;;:6;:14;;;15281:36;;15307:8;;15300:15;;;;15281:36;15334:11;;15327:18;;15048:305;;;;;:::o;13503:434::-;13569:21;13607:1;13593:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13569:40;;13638:4;13620;13625:1;13620:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;13664:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13654:4;13659:1;13654:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;13688:53;13705:4;13720:6;;;;;;;;;;;13729:11;13688:8;:53::i;:::-;13752:6;;;;;;;;;;;:57;;;13824:11;13850:1;13866:4;13893;13913:15;13752:177;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13558:379;13503:434;:::o;13152:343::-;13233:53;13250:4;13265:6;;;;;;;;;;;13274:11;13233:8;:53::i;:::-;13297:6;;;;;;;;;;;:22;;;13327:9;13360:4;13380:11;13406:1;13422;6433:42;13471:15;13297:190;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;13152:343;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:329::-;4482:6;4531:2;4519:9;4510:7;4506:23;4502:32;4499:119;;;4537:79;;:::i;:::-;4499:119;4657:1;4682:53;4727:7;4718:6;4707:9;4703:22;4682:53;:::i;:::-;4672:63;;4628:117;4423:329;;;;:::o;4758:86::-;4793:7;4833:4;4826:5;4822:16;4811:27;;4758:86;;;:::o;4850:112::-;4933:22;4949:5;4933:22;:::i;:::-;4928:3;4921:35;4850:112;;:::o;4968:214::-;5057:4;5095:2;5084:9;5080:18;5072:26;;5108:67;5172:1;5161:9;5157:17;5148:6;5108:67;:::i;:::-;4968:214;;;;:::o;5188:116::-;5258:21;5273:5;5258:21;:::i;:::-;5251:5;5248:32;5238:60;;5294:1;5291;5284:12;5238:60;5188:116;:::o;5310:133::-;5353:5;5391:6;5378:20;5369:29;;5407:30;5431:5;5407:30;:::i;:::-;5310:133;;;;:::o;5449:468::-;5514:6;5522;5571:2;5559:9;5550:7;5546:23;5542:32;5539:119;;;5577:79;;:::i;:::-;5539:119;5697:1;5722:53;5767:7;5758:6;5747:9;5743:22;5722:53;:::i;:::-;5712:63;;5668:117;5824:2;5850:50;5892:7;5883:6;5872:9;5868:22;5850:50;:::i;:::-;5840:60;;5795:115;5449:468;;;;;:::o;5923:619::-;6000:6;6008;6016;6065:2;6053:9;6044:7;6040:23;6036:32;6033:119;;;6071:79;;:::i;:::-;6033:119;6191:1;6216:53;6261:7;6252:6;6241:9;6237:22;6216:53;:::i;:::-;6206:63;;6162:117;6318:2;6344:53;6389:7;6380:6;6369:9;6365:22;6344:53;:::i;:::-;6334:63;;6289:118;6446:2;6472:53;6517:7;6508:6;6497:9;6493:22;6472:53;:::i;:::-;6462:63;;6417:118;5923:619;;;;;:::o;6548:118::-;6635:24;6653:5;6635:24;:::i;:::-;6630:3;6623:37;6548:118;;:::o;6672:222::-;6765:4;6803:2;6792:9;6788:18;6780:26;;6816:71;6884:1;6873:9;6869:17;6860:6;6816:71;:::i;:::-;6672:222;;;;:::o;6900:1203::-;7013:6;7021;7029;7037;7045;7053;7061;7110:3;7098:9;7089:7;7085:23;7081:33;7078:120;;;7117:79;;:::i;:::-;7078:120;7237:1;7262:53;7307:7;7298:6;7287:9;7283:22;7262:53;:::i;:::-;7252:63;;7208:117;7364:2;7390:53;7435:7;7426:6;7415:9;7411:22;7390:53;:::i;:::-;7380:63;;7335:118;7492:2;7518:53;7563:7;7554:6;7543:9;7539:22;7518:53;:::i;:::-;7508:63;;7463:118;7620:2;7646:53;7691:7;7682:6;7671:9;7667:22;7646:53;:::i;:::-;7636:63;;7591:118;7748:3;7775:53;7820:7;7811:6;7800:9;7796:22;7775:53;:::i;:::-;7765:63;;7719:119;7877:3;7904:53;7949:7;7940:6;7929:9;7925:22;7904:53;:::i;:::-;7894:63;;7848:119;8006:3;8033:53;8078:7;8069:6;8058:9;8054:22;8033:53;:::i;:::-;8023:63;;7977:119;6900:1203;;;;;;;;;;:::o;8109:474::-;8177:6;8185;8234:2;8222:9;8213:7;8209:23;8205:32;8202:119;;;8240:79;;:::i;:::-;8202:119;8360:1;8385:53;8430:7;8421:6;8410:9;8406:22;8385:53;:::i;:::-;8375:63;;8331:117;8487:2;8513:53;8558:7;8549:6;8538:9;8534:22;8513:53;:::i;:::-;8503:63;;8458:118;8109:474;;;;;:::o;8589:104::-;8634:7;8663:24;8681:5;8663:24;:::i;:::-;8652:35;;8589:104;;;:::o;8699:138::-;8780:32;8806:5;8780:32;:::i;:::-;8773:5;8770:43;8760:71;;8827:1;8824;8817:12;8760:71;8699:138;:::o;8843:155::-;8897:5;8935:6;8922:20;8913:29;;8951:41;8986:5;8951:41;:::i;:::-;8843:155;;;;:::o;9004:345::-;9071:6;9120:2;9108:9;9099:7;9095:23;9091:32;9088:119;;;9126:79;;:::i;:::-;9088:119;9246:1;9271:61;9324:7;9315:6;9304:9;9300:22;9271:61;:::i;:::-;9261:71;;9217:125;9004:345;;;;:::o;9355:180::-;9403:77;9400:1;9393:88;9500:4;9497:1;9490:15;9524:4;9521:1;9514:15;9541:348;9581:7;9604:20;9622:1;9604:20;:::i;:::-;9599:25;;9638:20;9656:1;9638:20;:::i;:::-;9633:25;;9826:1;9758:66;9754:74;9751:1;9748:81;9743:1;9736:9;9729:17;9725:105;9722:131;;;9833:18;;:::i;:::-;9722:131;9881:1;9878;9874:9;9863:20;;9541:348;;;;:::o;9895:180::-;9943:77;9940:1;9933:88;10040:4;10037:1;10030:15;10064:4;10061:1;10054:15;10081:185;10121:1;10138:20;10156:1;10138:20;:::i;:::-;10133:25;;10172:20;10190:1;10172:20;:::i;:::-;10167:25;;10211:1;10201:35;;10216:18;;:::i;:::-;10201:35;10258:1;10255;10251:9;10246:14;;10081:185;;;;:::o;10272:156::-;10412:8;10408:1;10400:6;10396:14;10389:32;10272:156;:::o;10434:365::-;10576:3;10597:66;10661:1;10656:3;10597:66;:::i;:::-;10590:73;;10672:93;10761:3;10672:93;:::i;:::-;10790:2;10785:3;10781:12;10774:19;;10434:365;;;:::o;10805:419::-;10971:4;11009:2;10998:9;10994:18;10986:26;;11058:9;11052:4;11048:20;11044:1;11033:9;11029:17;11022:47;11086:131;11212:4;11086:131;:::i;:::-;11078:139;;10805:419;;;:::o;11230:233::-;11370:34;11366:1;11358:6;11354:14;11347:58;11439:16;11434:2;11426:6;11422:15;11415:41;11230:233;:::o;11469:366::-;11611:3;11632:67;11696:2;11691:3;11632:67;:::i;:::-;11625:74;;11708:93;11797:3;11708:93;:::i;:::-;11826:2;11821:3;11817:12;11810:19;;11469:366;;;:::o;11841:419::-;12007:4;12045:2;12034:9;12030:18;12022:26;;12094:9;12088:4;12084:20;12080:1;12069:9;12065:17;12058:47;12122:131;12248:4;12122:131;:::i;:::-;12114:139;;11841:419;;;:::o;12266:231::-;12406:34;12402:1;12394:6;12390:14;12383:58;12475:14;12470:2;12462:6;12458:15;12451:39;12266:231;:::o;12503:366::-;12645:3;12666:67;12730:2;12725:3;12666:67;:::i;:::-;12659:74;;12742:93;12831:3;12742:93;:::i;:::-;12860:2;12855:3;12851:12;12844:19;;12503:366;;;:::o;12875:419::-;13041:4;13079:2;13068:9;13064:18;13056:26;;13128:9;13122:4;13118:20;13114:1;13103:9;13099:17;13092:47;13156:131;13282:4;13156:131;:::i;:::-;13148:139;;12875:419;;;:::o;13300:60::-;13328:3;13349:5;13342:12;;13300:60;;;:::o;13366:142::-;13416:9;13449:53;13467:34;13476:24;13494:5;13476:24;:::i;:::-;13467:34;:::i;:::-;13449:53;:::i;:::-;13436:66;;13366:142;;;:::o;13514:126::-;13564:9;13597:37;13628:5;13597:37;:::i;:::-;13584:50;;13514:126;;;:::o;13646:134::-;13704:9;13737:37;13768:5;13737:37;:::i;:::-;13724:50;;13646:134;;;:::o;13786:147::-;13881:45;13920:5;13881:45;:::i;:::-;13876:3;13869:58;13786:147;;:::o;13939:238::-;14040:4;14078:2;14067:9;14063:18;14055:26;;14091:79;14167:1;14156:9;14152:17;14143:6;14091:79;:::i;:::-;13939:238;;;;:::o;14183:223::-;14323:34;14319:1;14311:6;14307:14;14300:58;14392:6;14387:2;14379:6;14375:15;14368:31;14183:223;:::o;14412:366::-;14554:3;14575:67;14639:2;14634:3;14575:67;:::i;:::-;14568:74;;14651:93;14740:3;14651:93;:::i;:::-;14769:2;14764:3;14760:12;14753:19;;14412:366;;;:::o;14784:419::-;14950:4;14988:2;14977:9;14973:18;14965:26;;15037:9;15031:4;15027:20;15023:1;15012:9;15008:17;15001:47;15065:131;15191:4;15065:131;:::i;:::-;15057:139;;14784:419;;;:::o;15209:221::-;15349:34;15345:1;15337:6;15333:14;15326:58;15418:4;15413:2;15405:6;15401:15;15394:29;15209:221;:::o;15436:366::-;15578:3;15599:67;15663:2;15658:3;15599:67;:::i;:::-;15592:74;;15675:93;15764:3;15675:93;:::i;:::-;15793:2;15788:3;15784:12;15777:19;;15436:366;;;:::o;15808:419::-;15974:4;16012:2;16001:9;15997:18;15989:26;;16061:9;16055:4;16051:20;16047:1;16036:9;16032:17;16025:47;16089:131;16215:4;16089:131;:::i;:::-;16081:139;;15808:419;;;:::o;16233:194::-;16273:4;16293:20;16311:1;16293:20;:::i;:::-;16288:25;;16327:20;16345:1;16327:20;:::i;:::-;16322:25;;16371:1;16368;16364:9;16356:17;;16395:1;16389:4;16386:11;16383:37;;;16400:18;;:::i;:::-;16383:37;16233:194;;;;:::o;16433:224::-;16573:34;16569:1;16561:6;16557:14;16550:58;16642:7;16637:2;16629:6;16625:15;16618:32;16433:224;:::o;16663:366::-;16805:3;16826:67;16890:2;16885:3;16826:67;:::i;:::-;16819:74;;16902:93;16991:3;16902:93;:::i;:::-;17020:2;17015:3;17011:12;17004:19;;16663:366;;;:::o;17035:419::-;17201:4;17239:2;17228:9;17224:18;17216:26;;17288:9;17282:4;17278:20;17274:1;17263:9;17259:17;17252:47;17316:131;17442:4;17316:131;:::i;:::-;17308:139;;17035:419;;;:::o;17460:222::-;17600:34;17596:1;17588:6;17584:14;17577:58;17669:5;17664:2;17656:6;17652:15;17645:30;17460:222;:::o;17688:366::-;17830:3;17851:67;17915:2;17910:3;17851:67;:::i;:::-;17844:74;;17927:93;18016:3;17927:93;:::i;:::-;18045:2;18040:3;18036:12;18029:19;;17688:366;;;:::o;18060:419::-;18226:4;18264:2;18253:9;18249:18;18241:26;;18313:9;18307:4;18303:20;18299:1;18288:9;18284:17;18277:47;18341:131;18467:4;18341:131;:::i;:::-;18333:139;;18060:419;;;:::o;18485:228::-;18625:34;18621:1;18613:6;18609:14;18602:58;18694:11;18689:2;18681:6;18677:15;18670:36;18485:228;:::o;18719:366::-;18861:3;18882:67;18946:2;18941:3;18882:67;:::i;:::-;18875:74;;18958:93;19047:3;18958:93;:::i;:::-;19076:2;19071:3;19067:12;19060:19;;18719:366;;;:::o;19091:419::-;19257:4;19295:2;19284:9;19280:18;19272:26;;19344:9;19338:4;19334:20;19330:1;19319:9;19315:17;19308:47;19372:131;19498:4;19372:131;:::i;:::-;19364:139;;19091:419;;;:::o;19516:236::-;19656:34;19652:1;19644:6;19640:14;19633:58;19725:19;19720:2;19712:6;19708:15;19701:44;19516:236;:::o;19758:366::-;19900:3;19921:67;19985:2;19980:3;19921:67;:::i;:::-;19914:74;;19997:93;20086:3;19997:93;:::i;:::-;20115:2;20110:3;20106:12;20099:19;;19758:366;;;:::o;20130:419::-;20296:4;20334:2;20323:9;20319:18;20311:26;;20383:9;20377:4;20373:20;20369:1;20358:9;20354:17;20347:47;20411:131;20537:4;20411:131;:::i;:::-;20403:139;;20130:419;;;:::o;20555:164::-;20695:16;20691:1;20683:6;20679:14;20672:40;20555:164;:::o;20725:366::-;20867:3;20888:67;20952:2;20947:3;20888:67;:::i;:::-;20881:74;;20964:93;21053:3;20964:93;:::i;:::-;21082:2;21077:3;21073:12;21066:19;;20725:366;;;:::o;21097:419::-;21263:4;21301:2;21290:9;21286:18;21278:26;;21350:9;21344:4;21340:20;21336:1;21325:9;21321:17;21314:47;21378:131;21504:4;21378:131;:::i;:::-;21370:139;;21097:419;;;:::o;21522:180::-;21662:32;21658:1;21650:6;21646:14;21639:56;21522:180;:::o;21708:366::-;21850:3;21871:67;21935:2;21930:3;21871:67;:::i;:::-;21864:74;;21947:93;22036:3;21947:93;:::i;:::-;22065:2;22060:3;22056:12;22049:19;;21708:366;;;:::o;22080:419::-;22246:4;22284:2;22273:9;22269:18;22261:26;;22333:9;22327:4;22323:20;22319:1;22308:9;22304:17;22297:47;22361:131;22487:4;22361:131;:::i;:::-;22353:139;;22080:419;;;:::o;22505:191::-;22545:3;22564:20;22582:1;22564:20;:::i;:::-;22559:25;;22598:20;22616:1;22598:20;:::i;:::-;22593:25;;22641:1;22638;22634:9;22627:16;;22662:3;22659:1;22656:10;22653:36;;;22669:18;;:::i;:::-;22653:36;22505:191;;;;:::o;22702:167::-;22842:19;22838:1;22830:6;22826:14;22819:43;22702:167;:::o;22875:366::-;23017:3;23038:67;23102:2;23097:3;23038:67;:::i;:::-;23031:74;;23114:93;23203:3;23114:93;:::i;:::-;23232:2;23227:3;23223:12;23216:19;;22875:366;;;:::o;23247:419::-;23413:4;23451:2;23440:9;23436:18;23428:26;;23500:9;23494:4;23490:20;23486:1;23475:9;23471:17;23464:47;23528:131;23654:4;23528:131;:::i;:::-;23520:139;;23247:419;;;:::o;23672:180::-;23720:77;23717:1;23710:88;23817:4;23814:1;23807:15;23841:4;23838:1;23831:15;23858:180;23906:77;23903:1;23896:88;24003:4;24000:1;23993:15;24027:4;24024:1;24017:15;24044:143;24101:5;24132:6;24126:13;24117:22;;24148:33;24175:5;24148:33;:::i;:::-;24044:143;;;;:::o;24193:351::-;24263:6;24312:2;24300:9;24291:7;24287:23;24283:32;24280:119;;;24318:79;;:::i;:::-;24280:119;24438:1;24463:64;24519:7;24510:6;24499:9;24495:22;24463:64;:::i;:::-;24453:74;;24409:128;24193:351;;;;:::o;24550:85::-;24595:7;24624:5;24613:16;;24550:85;;;:::o;24641:158::-;24699:9;24732:61;24750:42;24759:32;24785:5;24759:32;:::i;:::-;24750:42;:::i;:::-;24732:61;:::i;:::-;24719:74;;24641:158;;;:::o;24805:147::-;24900:45;24939:5;24900:45;:::i;:::-;24895:3;24888:58;24805:147;;:::o;24958:114::-;25025:6;25059:5;25053:12;25043:22;;24958:114;;;:::o;25078:184::-;25177:11;25211:6;25206:3;25199:19;25251:4;25246:3;25242:14;25227:29;;25078:184;;;;:::o;25268:132::-;25335:4;25358:3;25350:11;;25388:4;25383:3;25379:14;25371:22;;25268:132;;;:::o;25406:108::-;25483:24;25501:5;25483:24;:::i;:::-;25478:3;25471:37;25406:108;;:::o;25520:179::-;25589:10;25610:46;25652:3;25644:6;25610:46;:::i;:::-;25688:4;25683:3;25679:14;25665:28;;25520:179;;;;:::o;25705:113::-;25775:4;25807;25802:3;25798:14;25790:22;;25705:113;;;:::o;25854:732::-;25973:3;26002:54;26050:5;26002:54;:::i;:::-;26072:86;26151:6;26146:3;26072:86;:::i;:::-;26065:93;;26182:56;26232:5;26182:56;:::i;:::-;26261:7;26292:1;26277:284;26302:6;26299:1;26296:13;26277:284;;;26378:6;26372:13;26405:63;26464:3;26449:13;26405:63;:::i;:::-;26398:70;;26491:60;26544:6;26491:60;:::i;:::-;26481:70;;26337:224;26324:1;26321;26317:9;26312:14;;26277:284;;;26281:14;26577:3;26570:10;;25978:608;;;25854:732;;;;:::o;26592:831::-;26855:4;26893:3;26882:9;26878:19;26870:27;;26907:71;26975:1;26964:9;26960:17;26951:6;26907:71;:::i;:::-;26988:80;27064:2;27053:9;27049:18;27040:6;26988:80;:::i;:::-;27115:9;27109:4;27105:20;27100:2;27089:9;27085:18;27078:48;27143:108;27246:4;27237:6;27143:108;:::i;:::-;27135:116;;27261:72;27329:2;27318:9;27314:18;27305:6;27261:72;:::i;:::-;27343:73;27411:3;27400:9;27396:19;27387:6;27343:73;:::i;:::-;26592:831;;;;;;;;:::o;27429:807::-;27678:4;27716:3;27705:9;27701:19;27693:27;;27730:71;27798:1;27787:9;27783:17;27774:6;27730:71;:::i;:::-;27811:72;27879:2;27868:9;27864:18;27855:6;27811:72;:::i;:::-;27893:80;27969:2;27958:9;27954:18;27945:6;27893:80;:::i;:::-;27983;28059:2;28048:9;28044:18;28035:6;27983:80;:::i;:::-;28073:73;28141:3;28130:9;28126:19;28117:6;28073:73;:::i;:::-;28156;28224:3;28213:9;28209:19;28200:6;28156:73;:::i;:::-;27429:807;;;;;;;;;:::o;28242:143::-;28299:5;28330:6;28324:13;28315:22;;28346:33;28373:5;28346:33;:::i;:::-;28242:143;;;;:::o;28391:663::-;28479:6;28487;28495;28544:2;28532:9;28523:7;28519:23;28515:32;28512:119;;;28550:79;;:::i;:::-;28512:119;28670:1;28695:64;28751:7;28742:6;28731:9;28727:22;28695:64;:::i;:::-;28685:74;;28641:128;28808:2;28834:64;28890:7;28881:6;28870:9;28866:22;28834:64;:::i;:::-;28824:74;;28779:129;28947:2;28973:64;29029:7;29020:6;29009:9;29005:22;28973:64;:::i;:::-;28963:74;;28918:129;28391:663;;;;;:::o

Swarm Source

ipfs://25f1b528b000d1fdaa2a8243c599a66a66312ac2d1324533ac25e82d32d00e22

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.