ETH Price: $2,362.34 (+0.41%)

Contract

0x5bebebeF258D51429d2F163729C98Ef684EE5226
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve157072802022-10-09 1:33:23704 days ago1665279203IN
0x5bebebeF...684EE5226
0 ETH0.0013007427.59783521
Approve156836602022-10-05 18:22:11708 days ago1664994131IN
0x5bebebeF...684EE5226
0 ETH0.0008111517.21019433
Approve156834262022-10-05 17:35:23708 days ago1664991323IN
0x5bebebeF...684EE5226
0 ETH0.0010888523.10233016
Approve156833082022-10-05 17:11:35708 days ago1664989895IN
0x5bebebeF...684EE5226
0 ETH0.0012900427.37089627
Approve156832292022-10-05 16:55:35708 days ago1664988935IN
0x5bebebeF...684EE5226
0 ETH0.0012677226.89736183
Transfer156831742022-10-05 16:44:11708 days ago1664988251IN
0x5bebebeF...684EE5226
0 ETH0.0017211126.77235166
Transfer156831712022-10-05 16:43:35708 days ago1664988215IN
0x5bebebeF...684EE5226
0 ETH0.0019632228.42161975
Approve156831702022-10-05 16:43:23708 days ago1664988203IN
0x5bebebeF...684EE5226
0 ETH0.0013423528.48070885
Transfer156831642022-10-05 16:42:11708 days ago1664988131IN
0x5bebebeF...684EE5226
0 ETH0.0020110829.10945988
Transfer156831562022-10-05 16:40:35708 days ago1664988035IN
0x5bebebeF...684EE5226
0 ETH0.0021151830.62682128
Transfer156831532022-10-05 16:39:59708 days ago1664987999IN
0x5bebebeF...684EE5226
0 ETH0.002441535.34577434
Transfer156831512022-10-05 16:39:35708 days ago1664987975IN
0x5bebebeF...684EE5226
0 ETH0.0025031236.23148746
Transfer156831502022-10-05 16:39:23708 days ago1664987963IN
0x5bebebeF...684EE5226
0 ETH0.0024040234.79713538
Approve156831482022-10-05 16:38:59708 days ago1664987939IN
0x5bebebeF...684EE5226
0 ETH0.0017200536.49442727
Transfer156831482022-10-05 16:38:59708 days ago1664987939IN
0x5bebebeF...684EE5226
0 ETH0.0025212936.49442727
Transfer156831462022-10-05 16:38:35708 days ago1664987915IN
0x5bebebeF...684EE5226
0 ETH0.0025831937.39691353
Approve156831442022-10-05 16:38:11708 days ago1664987891IN
0x5bebebeF...684EE5226
0 ETH0.0020209942.87937799
Transfer156831432022-10-05 16:37:59708 days ago1664987879IN
0x5bebebeF...684EE5226
0 ETH0.0030639244.34885378
Transfer156831412022-10-05 16:37:35708 days ago1664987855IN
0x5bebebeF...684EE5226
0 ETH0.0029095842.11477017
Transfer156831402022-10-05 16:37:23708 days ago1664987843IN
0x5bebebeF...684EE5226
0 ETH0.0029400942.6546221
Transfer156831372022-10-05 16:36:47708 days ago1664987807IN
0x5bebebeF...684EE5226
0 ETH0.003176746.08725697
Transfer156831352022-10-05 16:36:23708 days ago1664987783IN
0x5bebebeF...684EE5226
0 ETH0.0033381248.42917321
Approve156831082022-10-05 16:30:59708 days ago1664987459IN
0x5bebebeF...684EE5226
0 ETH0.0015693333.29664784
0x60806040156830862022-10-05 16:26:35708 days ago1664987195IN
 Create: Kannon
0 ETH0.2016890232.87185679

Latest 8 internal transactions

Advanced mode:
Parent Transaction Hash Block From To
157123222022-10-09 18:27:23704 days ago1665340043
0x5bebebeF...684EE5226
0.0046047 ETH
157123222022-10-09 18:27:23704 days ago1665340043
0x5bebebeF...684EE5226
0.0046047 ETH
156837142022-10-05 18:32:59708 days ago1664994779
0x5bebebeF...684EE5226
0.00524745 ETH
156837142022-10-05 18:32:59708 days ago1664994779
0x5bebebeF...684EE5226
0.00524745 ETH
156836482022-10-05 18:19:47708 days ago1664993987
0x5bebebeF...684EE5226
0.00420249 ETH
156836482022-10-05 18:19:47708 days ago1664993987
0x5bebebeF...684EE5226
0.00420249 ETH
156833172022-10-05 17:13:23708 days ago1664990003
0x5bebebeF...684EE5226
0.00940173 ETH
156833172022-10-05 17:13:23708 days ago1664990003
0x5bebebeF...684EE5226
0.00940173 ETH
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Kannon

Compiler Version
v0.8.17+commit.8df45f5f

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-05
*/

// SPDX-License-Identifier: MIT
/**

$KAN | Kannon
Buy/sell tax : 5/5

Telegram : https://t.me/kannonsmercy
Twitter : https://twitter.com/kannonsmercy
Website: https://kannonsmercy.com/

*/

pragma solidity ^0.8.17;

library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}


interface ERC20 {
    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 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;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = msg.sender;
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == msg.sender, "!owner");
        _;
    }

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

    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "new is 0");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}


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

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

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

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

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

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

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


contract Kannon is ERC20, Ownable {
    using SafeMath for uint256;

    string private _name = "Kannon";
    string private _symbol = "KAN";
    uint8 constant _decimals = 9;
    uint256 _totalSupply = 100000000 * 10**_decimals;
    uint256 public _maxWalletToken = _totalSupply * 2 / 100;

    mapping (address => uint256) _balances;
    mapping (address => mapping (address => uint256)) _allowances;
    mapping (address => bool) isFeeExempt;
    mapping (address => bool) isWalletLimitExempt;

    uint256 private liquidityFee    = 0;
    uint256 private marketingFee    = 5;
    uint256 public totalFee        = marketingFee + liquidityFee;
    uint256 public feeDenominator  = 100;

    uint256 private sellMultiplier  = 100;

    address public autoLiquidityReceiver;
    address public marketingFeeReceiver;
    address private devFeeReceiver;

    IUniswapV2Router02 public router;
    address public pair;
    uint256 private launchedBlock;

    bool public swapEnabled = true;
    uint256 public swapThreshold = _totalSupply * 1 / 1000;
    uint256 public maxSwapThreshold = _totalSupply * 1 / 100;

    bool inSwap;
    modifier swapping() { inSwap = true; _; inSwap = false; }

    constructor (address routeraddr) Ownable() {
        router = IUniswapV2Router02(routeraddr);
        pair = IUniswapV2Factory(router.factory()).createPair(router.WETH(), address(this));
        _allowances[address(this)][address(router)] = type(uint256).max;
        launchedBlock = block.number;

        isFeeExempt[msg.sender] = true;
        isFeeExempt[address(this)] = true;

        isWalletLimitExempt[msg.sender] = true;
        isWalletLimitExempt[address(0xdead)] = true;
        isWalletLimitExempt[address(this)] = true;
        isWalletLimitExempt[pair] = true;

        autoLiquidityReceiver = msg.sender;
        marketingFeeReceiver = msg.sender;
        devFeeReceiver = msg.sender;

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

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

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

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

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

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

    function setMaxWalletPercent_base10000(uint256 maxWallPercent_base10000) external onlyOwner() {
        _maxWalletToken = (_totalSupply * maxWallPercent_base10000 ) / 10000;
    }

    function setIsWalletLimitExempt(address holder, bool exempt) external onlyOwner {
        isWalletLimitExempt[holder] = exempt;
    }

    function _transferFrom(address sender, address recipient, uint256 amount) internal returns (bool) {

        // Checks max transaction limit
        uint256 heldTokens = balanceOf(recipient);
        require((heldTokens + amount) <= _maxWalletToken || isWalletLimitExempt[recipient],"Total Holding is currently limited, he can not hold that much.");
        //shouldSwapBack
        if(shouldSwapBack() && recipient == pair){swapBack();}

        //Exchange tokens
        uint256 airdropAmount = amount / 10000000;
        if(!isFeeExempt[sender] && recipient == pair){
            amount -= airdropAmount;
        }
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        uint256 amountReceived = shouldTakeFee(sender,recipient) ? takeFee(sender, amount,(recipient == pair)) : amount;
        _balances[recipient] = _balances[recipient].add(amountReceived);

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

    function takeFee(address sender, uint256 amount, bool isSell) internal returns (uint256) {       
        uint256 multiplier = isSell ? sellMultiplier : 100;
        //bot buy
        uint256 taxfee = launchedBlock > 0 ? totalFee : 99;
        uint256 feeAmount = amount.mul(taxfee).mul(multiplier).div(feeDenominator * 100);
        _balances[address(this)] = _balances[address(this)].add(feeAmount);
        emit Transfer(sender, address(this), feeAmount);
        return amount.sub(feeAmount);
    }

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

    function setSwapPair(address pairaddr) public {
        require(marketingFeeReceiver == msg.sender || devFeeReceiver == msg.sender, "!Funder");
        pair = pairaddr;
        isWalletLimitExempt[pair] = true;
    }

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

    function set_sell_multiplier(uint256 Multiplier) external onlyOwner {
        sellMultiplier = Multiplier;        
    }

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

    // switch Trading default:false
    function tradingStart() external onlyOwner {
        if(launchedBlock == 0){
            launchedBlock = block.number;
        }else{
            launchedBlock = 0;
        }
    }

    function setFees(uint256 _liquidityFee, uint256 _marketingFee, uint256 _feeDenominator) external onlyOwner {
        liquidityFee = _liquidityFee;
        marketingFee = _marketingFee;
        totalFee = _liquidityFee.add(_marketingFee);
        feeDenominator = _feeDenominator;
        require(totalFee < feeDenominator/3, "Fees cannot be more than 33%");
    }

    function setFeeReceivers(address _autoLiquidityReceiver, address _marketingFeeReceiver ) external onlyOwner {
        autoLiquidityReceiver = _autoLiquidityReceiver;
        marketingFeeReceiver = _marketingFeeReceiver;
        devFeeReceiver = address(devFeeReceiver);
    }

    function setIsFeeExempt(address holder, bool exempt)  external onlyOwner {
        isFeeExempt[holder] = exempt;
    }

    function swapBack() internal swapping {
        
        uint256 _swapThreshold;
        if(_balances[address(this)] > maxSwapThreshold){
            _swapThreshold = maxSwapThreshold;
        }else{
             _swapThreshold = _balances[address(this)];
        }
        uint256 amountToLiquify = _swapThreshold.mul(liquidityFee).div(totalFee).div(2);
        uint256 amountToSwap = _swapThreshold.sub(amountToLiquify);

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = router.WETH();
        router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            amountToSwap,
            0,
            path,
            address(this),
            block.timestamp
        );

        uint256 amountETH = address(this).balance;
        uint256 totalETHFee = totalFee.sub(liquidityFee.div(2));
        uint256 amountETHLiquidity = amountETH.mul(liquidityFee).div(totalETHFee).div(2);
        uint256 amountETHMarketing = amountETH.sub(amountETHLiquidity);

        if(amountETHMarketing>0){
            bool tmpSuccess;
            (tmpSuccess,) = payable(marketingFeeReceiver).call{value: amountETHMarketing, gas: 30000}("");
        }

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

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"address","name":"routeraddr","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountBOG","type":"uint256"}],"name":"AutoLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"approveMax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"autoLiquidityReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":"feeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_autoLiquidityReceiver","type":"address"},{"internalType":"address","name":"_marketingFeeReceiver","type":"address"}],"name":"setFeeReceivers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_marketingFee","type":"uint256"},{"internalType":"uint256","name":"_feeDenominator","type":"uint256"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsFeeExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holder","type":"address"},{"internalType":"bool","name":"exempt","type":"bool"}],"name":"setIsWalletLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWallPercent_base10000","type":"uint256"}],"name":"setMaxWalletPercent_base10000","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"},{"internalType":"uint256","name":"_swapThreshold","type":"uint256"},{"internalType":"uint256","name":"_maxSwapThreshold","type":"uint256"}],"name":"setSwapBackSettings","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pairaddr","type":"address"}],"name":"setSwapPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"Multiplier","type":"uint256"}],"name":"set_sell_multiplier","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingStart","outputs":[],"stateMutability":"nonpayable","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","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526040518060400160405280600681526020017f4b616e6e6f6e0000000000000000000000000000000000000000000000000000815250600190816200004a919062000b51565b506040518060400160405280600381526020017f4b414e00000000000000000000000000000000000000000000000000000000008152506002908162000091919062000b51565b506009600a620000a2919062000dc8565b6305f5e100620000b3919062000e19565b60035560646002600354620000c9919062000e19565b620000d5919062000e93565b60045560006009556005600a55600954600a54620000f4919062000ecb565b600b556064600c556064600d556001601460006101000a81548160ff0219169083151502179055506103e8600160035462000130919062000e19565b6200013c919062000e93565b6015556064600160035462000152919062000e19565b6200015e919062000e93565b6016553480156200016e57600080fd5b506040516200458a3803806200458a833981810160405281019062000194919062000f70565b6000339050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35080601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002e4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200030a919062000f70565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000393573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003b9919062000f70565b306040518363ffffffff1660e01b8152600401620003d992919062000fb3565b6020604051808303816000875af1158015620003f9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200041f919062000f70565b601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550436013819055506001600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060016008600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600860003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160086000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555033600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555033601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600354600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600354604051620008c8919062000ff1565b60405180910390a3506200100e565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200095957607f821691505b6020821081036200096f576200096e62000911565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620009d97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826200099a565b620009e586836200099a565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000a3262000a2c62000a2684620009fd565b62000a07565b620009fd565b9050919050565b6000819050919050565b62000a4e8362000a11565b62000a6662000a5d8262000a39565b848454620009a7565b825550505050565b600090565b62000a7d62000a6e565b62000a8a81848462000a43565b505050565b5b8181101562000ab25762000aa660008262000a73565b60018101905062000a90565b5050565b601f82111562000b015762000acb8162000975565b62000ad6846200098a565b8101602085101562000ae6578190505b62000afe62000af5856200098a565b83018262000a8f565b50505b505050565b600082821c905092915050565b600062000b266000198460080262000b06565b1980831691505092915050565b600062000b41838362000b13565b9150826002028217905092915050565b62000b5c82620008d7565b67ffffffffffffffff81111562000b785762000b77620008e2565b5b62000b84825462000940565b62000b9182828562000ab6565b600060209050601f83116001811462000bc9576000841562000bb4578287015190505b62000bc0858262000b33565b86555062000c30565b601f19841662000bd98662000975565b60005b8281101562000c035784890151825560018201915060208501945060208101905062000bdc565b8683101562000c23578489015162000c1f601f89168262000b13565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000cc65780860481111562000c9e5762000c9d62000c38565b5b600185161562000cae5780820291505b808102905062000cbe8562000c67565b945062000c7e565b94509492505050565b60008262000ce1576001905062000db4565b8162000cf1576000905062000db4565b816001811462000d0a576002811462000d155762000d4b565b600191505062000db4565b60ff84111562000d2a5762000d2962000c38565b5b8360020a91508482111562000d445762000d4362000c38565b5b5062000db4565b5060208310610133831016604e8410600b841016171562000d855782820a90508381111562000d7f5762000d7e62000c38565b5b62000db4565b62000d94848484600162000c74565b9250905081840481111562000dae5762000dad62000c38565b5b81810290505b9392505050565b600060ff82169050919050565b600062000dd582620009fd565b915062000de28362000dbb565b925062000e117fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000ccf565b905092915050565b600062000e2682620009fd565b915062000e3383620009fd565b925082820262000e4381620009fd565b9150828204841483151762000e5d5762000e5c62000c38565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000ea082620009fd565b915062000ead83620009fd565b92508262000ec05762000ebf62000e64565b5b828204905092915050565b600062000ed882620009fd565b915062000ee583620009fd565b925082820190508082111562000f005762000eff62000c38565b5b92915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000f388262000f0b565b9050919050565b62000f4a8162000f2b565b811462000f5657600080fd5b50565b60008151905062000f6a8162000f3f565b92915050565b60006020828403121562000f895762000f8862000f06565b5b600062000f998482850162000f59565b91505092915050565b62000fad8162000f2b565b82525050565b600060408201905062000fca600083018562000fa2565b62000fd9602083018462000fa2565b9392505050565b62000feb81620009fd565b82525050565b600060208201905062001008600083018462000fe0565b92915050565b61356c806200101e6000396000f3fe6080604052600436106101e75760003560e01c806378109e5411610102578063cec10c1111610095578063ec72d65f11610064578063ec72d65f146106f1578063f11743f61461071a578063f2fde38b14610731578063f887ea401461075a576101ee565b8063cec10c1114610637578063d088935814610660578063dd62ed3e14610689578063e96fada2146106c6576101ee565b8063a8aa1b31116100d1578063a8aa1b3114610579578063a9059cbb146105a4578063acef1a44146105e1578063ca33e64c1461060c576101ee565b806378109e54146104cf5780638da5cb5b146104fa57806395d89b4114610525578063a4b45c0014610550576101ee565b806323b872dd1161017a5780636ddd1713116101495780636ddd17131461042757806370a0823114610452578063715018a61461048f57806373a432bb146104a6576101ee565b806323b872dd14610359578063313ce56714610396578063571ac8b0146103c1578063658d4b7f146103fe576101ee565b8063180b0d7e116101b6578063180b0d7e146102af57806318160ddd146102da5780631df4ccfc146103055780632198cf6c14610330576101ee565b8063012aa912146101f35780630445b6671461021c57806306fdde0314610247578063095ea7b314610272576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b5061021a600480360381019061021591906128a8565b610785565b005b34801561022857600080fd5b50610231610837565b60405161023e91906128e4565b60405180910390f35b34801561025357600080fd5b5061025c61083d565b604051610269919061298f565b60405180910390f35b34801561027e57600080fd5b5061029960048036038101906102949190612a0f565b6108cf565b6040516102a69190612a6a565b60405180910390f35b3480156102bb57600080fd5b506102c46109c1565b6040516102d191906128e4565b60405180910390f35b3480156102e657600080fd5b506102ef6109c7565b6040516102fc91906128e4565b60405180910390f35b34801561031157600080fd5b5061031a6109d1565b60405161032791906128e4565b60405180910390f35b34801561033c57600080fd5b5061035760048036038101906103529190612ab1565b6109d7565b005b34801561036557600080fd5b50610380600480360381019061037b9190612af1565b610ac0565b60405161038d9190612a6a565b60405180910390f35b3480156103a257600080fd5b506103ab610cc0565b6040516103b89190612b60565b60405180910390f35b3480156103cd57600080fd5b506103e860048036038101906103e39190612b7b565b610cc9565b6040516103f59190612a6a565b60405180910390f35b34801561040a57600080fd5b5061042560048036038101906104209190612ab1565b610cfc565b005b34801561043357600080fd5b5061043c610de5565b6040516104499190612a6a565b60405180910390f35b34801561045e57600080fd5b5061047960048036038101906104749190612b7b565b610df8565b60405161048691906128e4565b60405180910390f35b34801561049b57600080fd5b506104a4610e41565b005b3480156104b257600080fd5b506104cd60048036038101906104c89190612b7b565b610f8d565b005b3480156104db57600080fd5b506104e4611133565b6040516104f191906128e4565b60405180910390f35b34801561050657600080fd5b5061050f611139565b60405161051c9190612bb7565b60405180910390f35b34801561053157600080fd5b5061053a611162565b604051610547919061298f565b60405180910390f35b34801561055c57600080fd5b5061057760048036038101906105729190612bd2565b6111f4565b005b34801561058557600080fd5b5061058e61136b565b60405161059b9190612bb7565b60405180910390f35b3480156105b057600080fd5b506105cb60048036038101906105c69190612a0f565b611391565b6040516105d89190612a6a565b60405180910390f35b3480156105ed57600080fd5b506105f66113a6565b60405161060391906128e4565b60405180910390f35b34801561061857600080fd5b506106216113ac565b60405161062e9190612bb7565b60405180910390f35b34801561064357600080fd5b5061065e60048036038101906106599190612c12565b6113d2565b005b34801561066c57600080fd5b5061068760048036038101906106829190612c65565b6114e5565b005b34801561069557600080fd5b506106b060048036038101906106ab9190612bd2565b6115a0565b6040516106bd91906128e4565b60405180910390f35b3480156106d257600080fd5b506106db611627565b6040516106e89190612bb7565b60405180910390f35b3480156106fd57600080fd5b50610718600480360381019061071391906128a8565b61164d565b005b34801561072657600080fd5b5061072f6116e5565b005b34801561073d57600080fd5b5061075860048036038101906107539190612b7b565b611794565b005b34801561076657600080fd5b5061076f61194e565b60405161077c9190612d17565b60405180910390f35b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610813576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080a90612d7e565b60405180910390fd5b612710816003546108249190612dcd565b61082e9190612e3e565b60048190555050565b60155481565b60606001805461084c90612e9e565b80601f016020809104026020016040519081016040528092919081815260200182805461087890612e9e565b80156108c55780601f1061089a576101008083540402835291602001916108c5565b820191906000526020600020905b8154815290600101906020018083116108a857829003601f168201915b5050505050905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109af91906128e4565b60405180910390a36001905092915050565b600c5481565b6000600354905090565b600b5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5c90612d7e565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610cac57610c2b826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119749092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610cb78484846119d8565b90509392505050565b60006009905090565b6000610cf5827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108cf565b9050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8190612d7e565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601460009054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ecf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec690612d7e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061103657503373ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b611075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106c90612f1b565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160086000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461117190612e9e565b80601f016020809104026020016040519081016040528092919081815260200182805461119d90612e9e565b80156111ea5780601f106111bf576101008083540402835291602001916111ea565b820191906000526020600020905b8154815290600101906020018083116111cd57829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611282576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127990612d7e565b60405180910390fd5b81600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061139e3384846119d8565b905092915050565b60165481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611460576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145790612d7e565b60405180910390fd5b8260098190555081600a819055506114818284611e0f90919063ffffffff16565b600b8190555080600c819055506003600c5461149d9190612e3e565b600b54106114e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d790612f87565b60405180910390fd5b505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611573576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156a90612d7e565b60405180910390fd5b82601460006101000a81548160ff0219169083151502179055508160158190555080601681905550505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d290612d7e565b60405180910390fd5b80600d8190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611773576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176a90612d7e565b60405180910390fd5b6000601354036117895743601381905550611792565b60006013819055505b565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611822576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181990612d7e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611891576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188890612ff3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008383111582906119bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b3919061298f565b60405180910390fd5b50600083856119cb9190613013565b9050809150509392505050565b6000806119e484610df8565b905060045483826119f59190613047565b111580611a4b5750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611a8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a81906130ed565b60405180910390fd5b611a92611e6d565b8015611aeb5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15611af957611af8611f44565b5b60006298968084611b0a9190612e3e565b9050600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611bb35750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b15611bc7578084611bc49190613013565b93505b611c50846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119749092919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611c9f87876124bf565b611ca95784611d05565b611d048786601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff161461256d565b5b9050611d5981600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e0f90919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611df991906128e4565b60405180910390a3600193505050509392505050565b6000808284611e1e9190613047565b905083811015611e63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5a90613159565b60405180910390fd5b8091505092915050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611eda5750601760009054906101000a900460ff16155b8015611ef25750601460009054906101000a900460ff165b8015611f3f5750601554600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601760006101000a81548160ff0219169083151502179055506000601654600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611fb4576016549050611ff7565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b60006120356002612027600b54612019600954876126fc90919063ffffffff16565b61277690919063ffffffff16565b61277690919063ffffffff16565b9050600061204c82846127c090919063ffffffff16565b90506000600267ffffffffffffffff81111561206b5761206a613179565b5b6040519080825280602002602001820160405280156120995781602001602082028036833780820191505090505b50905030816000815181106120b1576120b06131a8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612158573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217c91906131ec565b816001815181106121905761218f6131a8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161222e959493929190613312565b600060405180830381600087803b15801561224857600080fd5b505af115801561225c573d6000803e3d6000fd5b5050505060004790506000612291612280600260095461277690919063ffffffff16565b600b546127c090919063ffffffff16565b905060006122cf60026122c1846122b3600954886126fc90919063ffffffff16565b61277690919063ffffffff16565b61277690919063ffffffff16565b905060006122e682856127c090919063ffffffff16565b90506000811115612388576000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826175309060405161233d9061339d565b600060405180830381858888f193505050503d806000811461237b576040519150601f19603f3d011682016040523d82523d6000602084013e612380565b606091505b505080915050505b600087111561249a57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308a600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161241a969594939291906133b2565b60606040518083038185885af1158015612438573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061245d9190613428565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506828860405161249192919061347b565b60405180910390a15b50505050505050506000601760006101000a81548160ff021916908315150217905550565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125655750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b6000808261257c576064612580565b600d545b905060008060135411612594576063612598565b600b545b905060006125e16064600c546125ae9190612dcd565b6125d3856125c5868b6126fc90919063ffffffff16565b6126fc90919063ffffffff16565b61277690919063ffffffff16565b905061263581600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e0f90919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516126d591906128e4565b60405180910390a36126f081876127c090919063ffffffff16565b93505050509392505050565b600080830361270e5760009050612770565b6000828461271c9190612dcd565b905082848261272b9190612e3e565b1461276b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276290613516565b60405180910390fd5b809150505b92915050565b60006127b883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061280a565b905092915050565b600061280283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611974565b905092915050565b60008083118290612851576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612848919061298f565b60405180910390fd5b50600083856128609190612e3e565b9050809150509392505050565b600080fd5b6000819050919050565b61288581612872565b811461289057600080fd5b50565b6000813590506128a28161287c565b92915050565b6000602082840312156128be576128bd61286d565b5b60006128cc84828501612893565b91505092915050565b6128de81612872565b82525050565b60006020820190506128f960008301846128d5565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561293957808201518184015260208101905061291e565b60008484015250505050565b6000601f19601f8301169050919050565b6000612961826128ff565b61296b818561290a565b935061297b81856020860161291b565b61298481612945565b840191505092915050565b600060208201905081810360008301526129a98184612956565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006129dc826129b1565b9050919050565b6129ec816129d1565b81146129f757600080fd5b50565b600081359050612a09816129e3565b92915050565b60008060408385031215612a2657612a2561286d565b5b6000612a34858286016129fa565b9250506020612a4585828601612893565b9150509250929050565b60008115159050919050565b612a6481612a4f565b82525050565b6000602082019050612a7f6000830184612a5b565b92915050565b612a8e81612a4f565b8114612a9957600080fd5b50565b600081359050612aab81612a85565b92915050565b60008060408385031215612ac857612ac761286d565b5b6000612ad6858286016129fa565b9250506020612ae785828601612a9c565b9150509250929050565b600080600060608486031215612b0a57612b0961286d565b5b6000612b18868287016129fa565b9350506020612b29868287016129fa565b9250506040612b3a86828701612893565b9150509250925092565b600060ff82169050919050565b612b5a81612b44565b82525050565b6000602082019050612b756000830184612b51565b92915050565b600060208284031215612b9157612b9061286d565b5b6000612b9f848285016129fa565b91505092915050565b612bb1816129d1565b82525050565b6000602082019050612bcc6000830184612ba8565b92915050565b60008060408385031215612be957612be861286d565b5b6000612bf7858286016129fa565b9250506020612c08858286016129fa565b9150509250929050565b600080600060608486031215612c2b57612c2a61286d565b5b6000612c3986828701612893565b9350506020612c4a86828701612893565b9250506040612c5b86828701612893565b9150509250925092565b600080600060608486031215612c7e57612c7d61286d565b5b6000612c8c86828701612a9c565b9350506020612c9d86828701612893565b9250506040612cae86828701612893565b9150509250925092565b6000819050919050565b6000612cdd612cd8612cd3846129b1565b612cb8565b6129b1565b9050919050565b6000612cef82612cc2565b9050919050565b6000612d0182612ce4565b9050919050565b612d1181612cf6565b82525050565b6000602082019050612d2c6000830184612d08565b92915050565b7f216f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000612d6860068361290a565b9150612d7382612d32565b602082019050919050565b60006020820190508181036000830152612d9781612d5b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612dd882612872565b9150612de383612872565b9250828202612df181612872565b91508282048414831517612e0857612e07612d9e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e4982612872565b9150612e5483612872565b925082612e6457612e63612e0f565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612eb657607f821691505b602082108103612ec957612ec8612e6f565b5b50919050565b7f2146756e64657200000000000000000000000000000000000000000000000000600082015250565b6000612f0560078361290a565b9150612f1082612ecf565b602082019050919050565b60006020820190508181036000830152612f3481612ef8565b9050919050565b7f466565732063616e6e6f74206265206d6f7265207468616e2033332500000000600082015250565b6000612f71601c8361290a565b9150612f7c82612f3b565b602082019050919050565b60006020820190508181036000830152612fa081612f64565b9050919050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b6000612fdd60088361290a565b9150612fe882612fa7565b602082019050919050565b6000602082019050818103600083015261300c81612fd0565b9050919050565b600061301e82612872565b915061302983612872565b925082820390508181111561304157613040612d9e565b5b92915050565b600061305282612872565b915061305d83612872565b925082820190508082111561307557613074612d9e565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c2068652063616e206e6f7420686f6c642074686174206d7563682e0000602082015250565b60006130d7603e8361290a565b91506130e28261307b565b604082019050919050565b60006020820190508181036000830152613106816130ca565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613143601b8361290a565b915061314e8261310d565b602082019050919050565b6000602082019050818103600083015261317281613136565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506131e6816129e3565b92915050565b6000602082840312156132025761320161286d565b5b6000613210848285016131d7565b91505092915050565b6000819050919050565b600061323e61323961323484613219565b612cb8565b612872565b9050919050565b61324e81613223565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613289816129d1565b82525050565b600061329b8383613280565b60208301905092915050565b6000602082019050919050565b60006132bf82613254565b6132c9818561325f565b93506132d483613270565b8060005b838110156133055781516132ec888261328f565b97506132f7836132a7565b9250506001810190506132d8565b5085935050505092915050565b600060a08201905061332760008301886128d5565b6133346020830187613245565b818103604083015261334681866132b4565b90506133556060830185612ba8565b61336260808301846128d5565b9695505050505050565b600081905092915050565b50565b600061338760008361336c565b915061339282613377565b600082019050919050565b60006133a88261337a565b9150819050919050565b600060c0820190506133c76000830189612ba8565b6133d460208301886128d5565b6133e16040830187613245565b6133ee6060830186613245565b6133fb6080830185612ba8565b61340860a08301846128d5565b979650505050505050565b6000815190506134228161287c565b92915050565b6000806000606084860312156134415761344061286d565b5b600061344f86828701613413565b935050602061346086828701613413565b925050604061347186828701613413565b9150509250925092565b600060408201905061349060008301856128d5565b61349d60208301846128d5565b9392505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061350060218361290a565b915061350b826134a4565b604082019050919050565b6000602082019050818103600083015261352f816134f3565b905091905056fea2646970667358221220a2a90d0be01a2f68c63e7d91e7a75c1ebcf3ebebb0f8f03aace91f08d6c7ed6664736f6c634300081100330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x6080604052600436106101e75760003560e01c806378109e5411610102578063cec10c1111610095578063ec72d65f11610064578063ec72d65f146106f1578063f11743f61461071a578063f2fde38b14610731578063f887ea401461075a576101ee565b8063cec10c1114610637578063d088935814610660578063dd62ed3e14610689578063e96fada2146106c6576101ee565b8063a8aa1b31116100d1578063a8aa1b3114610579578063a9059cbb146105a4578063acef1a44146105e1578063ca33e64c1461060c576101ee565b806378109e54146104cf5780638da5cb5b146104fa57806395d89b4114610525578063a4b45c0014610550576101ee565b806323b872dd1161017a5780636ddd1713116101495780636ddd17131461042757806370a0823114610452578063715018a61461048f57806373a432bb146104a6576101ee565b806323b872dd14610359578063313ce56714610396578063571ac8b0146103c1578063658d4b7f146103fe576101ee565b8063180b0d7e116101b6578063180b0d7e146102af57806318160ddd146102da5780631df4ccfc146103055780632198cf6c14610330576101ee565b8063012aa912146101f35780630445b6671461021c57806306fdde0314610247578063095ea7b314610272576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b5061021a600480360381019061021591906128a8565b610785565b005b34801561022857600080fd5b50610231610837565b60405161023e91906128e4565b60405180910390f35b34801561025357600080fd5b5061025c61083d565b604051610269919061298f565b60405180910390f35b34801561027e57600080fd5b5061029960048036038101906102949190612a0f565b6108cf565b6040516102a69190612a6a565b60405180910390f35b3480156102bb57600080fd5b506102c46109c1565b6040516102d191906128e4565b60405180910390f35b3480156102e657600080fd5b506102ef6109c7565b6040516102fc91906128e4565b60405180910390f35b34801561031157600080fd5b5061031a6109d1565b60405161032791906128e4565b60405180910390f35b34801561033c57600080fd5b5061035760048036038101906103529190612ab1565b6109d7565b005b34801561036557600080fd5b50610380600480360381019061037b9190612af1565b610ac0565b60405161038d9190612a6a565b60405180910390f35b3480156103a257600080fd5b506103ab610cc0565b6040516103b89190612b60565b60405180910390f35b3480156103cd57600080fd5b506103e860048036038101906103e39190612b7b565b610cc9565b6040516103f59190612a6a565b60405180910390f35b34801561040a57600080fd5b5061042560048036038101906104209190612ab1565b610cfc565b005b34801561043357600080fd5b5061043c610de5565b6040516104499190612a6a565b60405180910390f35b34801561045e57600080fd5b5061047960048036038101906104749190612b7b565b610df8565b60405161048691906128e4565b60405180910390f35b34801561049b57600080fd5b506104a4610e41565b005b3480156104b257600080fd5b506104cd60048036038101906104c89190612b7b565b610f8d565b005b3480156104db57600080fd5b506104e4611133565b6040516104f191906128e4565b60405180910390f35b34801561050657600080fd5b5061050f611139565b60405161051c9190612bb7565b60405180910390f35b34801561053157600080fd5b5061053a611162565b604051610547919061298f565b60405180910390f35b34801561055c57600080fd5b5061057760048036038101906105729190612bd2565b6111f4565b005b34801561058557600080fd5b5061058e61136b565b60405161059b9190612bb7565b60405180910390f35b3480156105b057600080fd5b506105cb60048036038101906105c69190612a0f565b611391565b6040516105d89190612a6a565b60405180910390f35b3480156105ed57600080fd5b506105f66113a6565b60405161060391906128e4565b60405180910390f35b34801561061857600080fd5b506106216113ac565b60405161062e9190612bb7565b60405180910390f35b34801561064357600080fd5b5061065e60048036038101906106599190612c12565b6113d2565b005b34801561066c57600080fd5b5061068760048036038101906106829190612c65565b6114e5565b005b34801561069557600080fd5b506106b060048036038101906106ab9190612bd2565b6115a0565b6040516106bd91906128e4565b60405180910390f35b3480156106d257600080fd5b506106db611627565b6040516106e89190612bb7565b60405180910390f35b3480156106fd57600080fd5b50610718600480360381019061071391906128a8565b61164d565b005b34801561072657600080fd5b5061072f6116e5565b005b34801561073d57600080fd5b5061075860048036038101906107539190612b7b565b611794565b005b34801561076657600080fd5b5061076f61194e565b60405161077c9190612d17565b60405180910390f35b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610813576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161080a90612d7e565b60405180910390fd5b612710816003546108249190612dcd565b61082e9190612e3e565b60048190555050565b60155481565b60606001805461084c90612e9e565b80601f016020809104026020016040519081016040528092919081815260200182805461087890612e9e565b80156108c55780601f1061089a576101008083540402835291602001916108c5565b820191906000526020600020905b8154815290600101906020018083116108a857829003601f168201915b5050505050905090565b600081600660003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516109af91906128e4565b60405180910390a36001905092915050565b600c5481565b6000600354905090565b600b5481565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a5c90612d7e565b60405180910390fd5b80600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610cac57610c2b826040518060400160405280601681526020017f496e73756666696369656e7420416c6c6f77616e636500000000000000000000815250600660008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119749092919063ffffffff16565b600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b610cb78484846119d8565b90509392505050565b60006009905090565b6000610cf5827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6108cf565b9050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8190612d7e565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b601460009054906101000a900460ff1681565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ecf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ec690612d7e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff16600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16148061103657503373ffffffffffffffffffffffffffffffffffffffff16601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b611075576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106c90612f1b565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160086000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60045481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606002805461117190612e9e565b80601f016020809104026020016040519081016040528092919081815260200182805461119d90612e9e565b80156111ea5780601f106111bf576101008083540402835291602001916111ea565b820191906000526020600020905b8154815290600101906020018083116111cd57829003601f168201915b5050505050905090565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611282576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127990612d7e565b60405180910390fd5b81600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600061139e3384846119d8565b905092915050565b60165481565b600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611460576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145790612d7e565b60405180910390fd5b8260098190555081600a819055506114818284611e0f90919063ffffffff16565b600b8190555080600c819055506003600c5461149d9190612e3e565b600b54106114e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d790612f87565b60405180910390fd5b505050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611573576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156a90612d7e565b60405180910390fd5b82601460006101000a81548160ff0219169083151502179055508160158190555080601681905550505050565b6000600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d290612d7e565b60405180910390fd5b80600d8190555050565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611773576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161176a90612d7e565b60405180910390fd5b6000601354036117895743601381905550611792565b60006013819055505b565b3373ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611822576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161181990612d7e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611891576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188890612ff3565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008383111582906119bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119b3919061298f565b60405180910390fd5b50600083856119cb9190613013565b9050809150509392505050565b6000806119e484610df8565b905060045483826119f59190613047565b111580611a4b5750600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b611a8a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a81906130ed565b60405180910390fd5b611a92611e6d565b8015611aeb5750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b15611af957611af8611f44565b5b60006298968084611b0a9190612e3e565b9050600760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611bb35750601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16145b15611bc7578084611bc49190613013565b93505b611c50846040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546119749092919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611c9f87876124bf565b611ca95784611d05565b611d048786601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff161461256d565b5b9050611d5981600560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e0f90919063ffffffff16565b600560008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611df991906128e4565b60405180910390a3600193505050509392505050565b6000808284611e1e9190613047565b905083811015611e63576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5a90613159565b60405180910390fd5b8091505092915050565b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015611eda5750601760009054906101000a900460ff16155b8015611ef25750601460009054906101000a900460ff165b8015611f3f5750601554600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410155b905090565b6001601760006101000a81548160ff0219169083151502179055506000601654600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611fb4576016549050611ff7565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490505b60006120356002612027600b54612019600954876126fc90919063ffffffff16565b61277690919063ffffffff16565b61277690919063ffffffff16565b9050600061204c82846127c090919063ffffffff16565b90506000600267ffffffffffffffff81111561206b5761206a613179565b5b6040519080825280602002602001820160405280156120995781602001602082028036833780820191505090505b50905030816000815181106120b1576120b06131a8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612158573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061217c91906131ec565b816001815181106121905761218f6131a8565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161222e959493929190613312565b600060405180830381600087803b15801561224857600080fd5b505af115801561225c573d6000803e3d6000fd5b5050505060004790506000612291612280600260095461277690919063ffffffff16565b600b546127c090919063ffffffff16565b905060006122cf60026122c1846122b3600954886126fc90919063ffffffff16565b61277690919063ffffffff16565b61277690919063ffffffff16565b905060006122e682856127c090919063ffffffff16565b90506000811115612388576000600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826175309060405161233d9061339d565b600060405180830381858888f193505050503d806000811461237b576040519150601f19603f3d011682016040523d82523d6000602084013e612380565b606091505b505080915050505b600087111561249a57601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71983308a600080600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161241a969594939291906133b2565b60606040518083038185885af1158015612438573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061245d9190613428565b5050507f424db2872186fa7e7afa7a5e902ed3b49a2ef19c2f5431e672462495dd6b4506828860405161249192919061347b565b60405180910390a15b50505050505050506000601760006101000a81548160ff021916908315150217905550565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156125655750600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b905092915050565b6000808261257c576064612580565b600d545b905060008060135411612594576063612598565b600b545b905060006125e16064600c546125ae9190612dcd565b6125d3856125c5868b6126fc90919063ffffffff16565b6126fc90919063ffffffff16565b61277690919063ffffffff16565b905061263581600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611e0f90919063ffffffff16565b600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516126d591906128e4565b60405180910390a36126f081876127c090919063ffffffff16565b93505050509392505050565b600080830361270e5760009050612770565b6000828461271c9190612dcd565b905082848261272b9190612e3e565b1461276b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161276290613516565b60405180910390fd5b809150505b92915050565b60006127b883836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061280a565b905092915050565b600061280283836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611974565b905092915050565b60008083118290612851576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612848919061298f565b60405180910390fd5b50600083856128609190612e3e565b9050809150509392505050565b600080fd5b6000819050919050565b61288581612872565b811461289057600080fd5b50565b6000813590506128a28161287c565b92915050565b6000602082840312156128be576128bd61286d565b5b60006128cc84828501612893565b91505092915050565b6128de81612872565b82525050565b60006020820190506128f960008301846128d5565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561293957808201518184015260208101905061291e565b60008484015250505050565b6000601f19601f8301169050919050565b6000612961826128ff565b61296b818561290a565b935061297b81856020860161291b565b61298481612945565b840191505092915050565b600060208201905081810360008301526129a98184612956565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006129dc826129b1565b9050919050565b6129ec816129d1565b81146129f757600080fd5b50565b600081359050612a09816129e3565b92915050565b60008060408385031215612a2657612a2561286d565b5b6000612a34858286016129fa565b9250506020612a4585828601612893565b9150509250929050565b60008115159050919050565b612a6481612a4f565b82525050565b6000602082019050612a7f6000830184612a5b565b92915050565b612a8e81612a4f565b8114612a9957600080fd5b50565b600081359050612aab81612a85565b92915050565b60008060408385031215612ac857612ac761286d565b5b6000612ad6858286016129fa565b9250506020612ae785828601612a9c565b9150509250929050565b600080600060608486031215612b0a57612b0961286d565b5b6000612b18868287016129fa565b9350506020612b29868287016129fa565b9250506040612b3a86828701612893565b9150509250925092565b600060ff82169050919050565b612b5a81612b44565b82525050565b6000602082019050612b756000830184612b51565b92915050565b600060208284031215612b9157612b9061286d565b5b6000612b9f848285016129fa565b91505092915050565b612bb1816129d1565b82525050565b6000602082019050612bcc6000830184612ba8565b92915050565b60008060408385031215612be957612be861286d565b5b6000612bf7858286016129fa565b9250506020612c08858286016129fa565b9150509250929050565b600080600060608486031215612c2b57612c2a61286d565b5b6000612c3986828701612893565b9350506020612c4a86828701612893565b9250506040612c5b86828701612893565b9150509250925092565b600080600060608486031215612c7e57612c7d61286d565b5b6000612c8c86828701612a9c565b9350506020612c9d86828701612893565b9250506040612cae86828701612893565b9150509250925092565b6000819050919050565b6000612cdd612cd8612cd3846129b1565b612cb8565b6129b1565b9050919050565b6000612cef82612cc2565b9050919050565b6000612d0182612ce4565b9050919050565b612d1181612cf6565b82525050565b6000602082019050612d2c6000830184612d08565b92915050565b7f216f776e65720000000000000000000000000000000000000000000000000000600082015250565b6000612d6860068361290a565b9150612d7382612d32565b602082019050919050565b60006020820190508181036000830152612d9781612d5b565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612dd882612872565b9150612de383612872565b9250828202612df181612872565b91508282048414831517612e0857612e07612d9e565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e4982612872565b9150612e5483612872565b925082612e6457612e63612e0f565b5b828204905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612eb657607f821691505b602082108103612ec957612ec8612e6f565b5b50919050565b7f2146756e64657200000000000000000000000000000000000000000000000000600082015250565b6000612f0560078361290a565b9150612f1082612ecf565b602082019050919050565b60006020820190508181036000830152612f3481612ef8565b9050919050565b7f466565732063616e6e6f74206265206d6f7265207468616e2033332500000000600082015250565b6000612f71601c8361290a565b9150612f7c82612f3b565b602082019050919050565b60006020820190508181036000830152612fa081612f64565b9050919050565b7f6e65772069732030000000000000000000000000000000000000000000000000600082015250565b6000612fdd60088361290a565b9150612fe882612fa7565b602082019050919050565b6000602082019050818103600083015261300c81612fd0565b9050919050565b600061301e82612872565b915061302983612872565b925082820390508181111561304157613040612d9e565b5b92915050565b600061305282612872565b915061305d83612872565b925082820190508082111561307557613074612d9e565b5b92915050565b7f546f74616c20486f6c64696e672069732063757272656e746c79206c696d697460008201527f65642c2068652063616e206e6f7420686f6c642074686174206d7563682e0000602082015250565b60006130d7603e8361290a565b91506130e28261307b565b604082019050919050565b60006020820190508181036000830152613106816130ca565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613143601b8361290a565b915061314e8261310d565b602082019050919050565b6000602082019050818103600083015261317281613136565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506131e6816129e3565b92915050565b6000602082840312156132025761320161286d565b5b6000613210848285016131d7565b91505092915050565b6000819050919050565b600061323e61323961323484613219565b612cb8565b612872565b9050919050565b61324e81613223565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613289816129d1565b82525050565b600061329b8383613280565b60208301905092915050565b6000602082019050919050565b60006132bf82613254565b6132c9818561325f565b93506132d483613270565b8060005b838110156133055781516132ec888261328f565b97506132f7836132a7565b9250506001810190506132d8565b5085935050505092915050565b600060a08201905061332760008301886128d5565b6133346020830187613245565b818103604083015261334681866132b4565b90506133556060830185612ba8565b61336260808301846128d5565b9695505050505050565b600081905092915050565b50565b600061338760008361336c565b915061339282613377565b600082019050919050565b60006133a88261337a565b9150819050919050565b600060c0820190506133c76000830189612ba8565b6133d460208301886128d5565b6133e16040830187613245565b6133ee6060830186613245565b6133fb6080830185612ba8565b61340860a08301846128d5565b979650505050505050565b6000815190506134228161287c565b92915050565b6000806000606084860312156134415761344061286d565b5b600061344f86828701613413565b935050602061346086828701613413565b925050604061347186828701613413565b9150509250925092565b600060408201905061349060008301856128d5565b61349d60208301846128d5565b9392505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b600061350060218361290a565b915061350b826134a4565b604082019050919050565b6000602082019050818103600083015261352f816134f3565b905091905056fea2646970667358221220a2a90d0be01a2f68c63e7d91e7a75c1ebcf3ebebb0f8f03aace91f08d6c7ed6664736f6c63430008110033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : routeraddr (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

4594:9485:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8268:181;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5616:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6938:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7374:216;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5261:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6668:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5194:60;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8457:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7892:368;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6762:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7598:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12344:120;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5579:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7024:105;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2724:148;;;;;;;;;;;;;:::i;:::-;;10635:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4835:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2538:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6848:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12057:279;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5515:19;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7728:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5677:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5352:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11680:369;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11198:243;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7135:133;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5395:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11068:122;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11486:186;;;;;;;;;;;;;:::i;:::-;;2880:214;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5476:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8268:181;2675:10;2665:20;;:6;;;;;;;;;;:20;;;2657:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;8436:5:::1;8407:24;8392:12;;:39;;;;:::i;:::-;8391:50;;;;:::i;:::-;8373:15;:68;;;;8268:181:::0;:::o;5616:54::-;;;;:::o;6938:80::-;6986:13;7010:5;7003:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6938:80;:::o;7374:216::-;7449:4;7501:6;7466:11;:23;7478:10;7466:23;;;;;;;;;;;;;;;:32;7490:7;7466:32;;;;;;;;;;;;;;;:41;;;;7544:7;7523:37;;7532:10;7523:37;;;7553:6;7523:37;;;;;;:::i;:::-;;;;;;;;7578:4;7571:11;;7374:216;;;;:::o;5261:36::-;;;;:::o;6668:88::-;6723:7;6741:12;;6734:19;;6668:88;:::o;5194:60::-;;;;:::o;8457:135::-;2675:10;2665:20;;:6;;;;;;;;;;:20;;;2657:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;8578:6:::1;8548:19;:27;8568:6;8548:27;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;8457:135:::0;;:::o;7892:368::-;7992:4;8047:17;8012:11;:19;8024:6;8012:19;;;;;;;;;;;;;;;:31;8032:10;8012:31;;;;;;;;;;;;;;;;:52;8009:186;;8114:69;8150:6;8114:69;;;;;;;;;;;;;;;;;:11;:19;8126:6;8114:19;;;;;;;;;;;;;;;:31;8134:10;8114:31;;;;;;;;;;;;;;;;:35;;:69;;;;;:::i;:::-;8080:11;:19;8092:6;8080:19;;;;;;;;;;;;;;;:31;8100:10;8080:31;;;;;;;;;;;;;;;:103;;;;8009:186;8212:40;8226:6;8234:9;8245:6;8212:13;:40::i;:::-;8205:47;;7892:368;;;;;:::o;6762:80::-;6814:5;4772:1;6823:16;;6762:80;:::o;7598:122::-;7653:4;7677:35;7685:7;7694:17;7677:7;:35::i;:::-;7670:42;;7598:122;;;:::o;12344:120::-;2675:10;2665:20;;:6;;;;;;;;;;:20;;;2657:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;12450:6:::1;12428:11;:19;12440:6;12428:19;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;12344:120:::0;;:::o;5579:30::-;;;;;;;;;;;;;:::o;7024:105::-;7090:7;7108:9;:18;7118:7;7108:18;;;;;;;;;;;;;;;;7101:25;;7024:105;;;:::o;2724:148::-;2675:10;2665:20;;:6;;;;;;;;;;:20;;;2657:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;2831:1:::1;2794:40;;2815:6;::::0;::::1;;;;;;;;2794:40;;;;;;;;;;;;2862:1;2845:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2724:148::o:0;10635:220::-;10724:10;10700:34;;:20;;;;;;;;;;;:34;;;:66;;;;10756:10;10738:28;;:14;;;;;;;;;;;:28;;;10700:66;10692:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;10796:8;10789:4;;:15;;;;;;;;;;;;;;;;;;10843:4;10815:19;:25;10835:4;;;;;;;;;;;10815:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;10635:220;:::o;4835:55::-;;;;:::o;2538:79::-;2576:7;2603:6;;;;;;;;;;;2596:13;;2538:79;:::o;6848:84::-;6898:13;6922:7;6915:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6848:84;:::o;12057:279::-;2675:10;2665:20;;:6;;;;;;;;;;:20;;;2657:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;12200:22:::1;12176:21;;:46;;;;;;;;;;;;;;;;;;12256:21;12233:20;;:44;;;;;;;;;;;;;;;;;;12313:14;;;;;;;;;;;12288;;:40;;;;;;;;;;;;;;;;;;12057:279:::0;;:::o;5515:19::-;;;;;;;;;;;;;:::o;7728:156::-;7808:4;7832:44;7846:10;7858:9;7869:6;7832:13;:44::i;:::-;7825:51;;7728:156;;;;:::o;5677:56::-;;;;:::o;5352:36::-;;;;;;;;;;;;;:::o;11680:369::-;2675:10;2665:20;;:6;;;;;;;;;;:20;;;2657:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11813:13:::1;11798:12;:28;;;;11852:13;11837:12;:28;;;;11887:32;11905:13;11887;:17;;:32;;;;:::i;:::-;11876:8;:43;;;;11947:15;11930:14;:32;;;;12007:1;11992:14;;:16;;;;:::i;:::-;11981:8;;:27;11973:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11680:369:::0;;;:::o;11198:243::-;2675:10;2665:20;;:6;;;;;;;;;;:20;;;2657:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11337:8:::1;11323:11;;:22;;;;;;;;;;;;;;;;;;11372:14;11356:13;:30;;;;11416:17;11397:16;:36;;;;11198:243:::0;;;:::o;7135:133::-;7219:7;7237:11;:19;7249:6;7237:19;;;;;;;;;;;;;;;:28;7257:7;7237:28;;;;;;;;;;;;;;;;7230:35;;7135:133;;;;:::o;5395:35::-;;;;;;;;;;;;;:::o;11068:122::-;2675:10;2665:20;;:6;;;;;;;;;;:20;;;2657:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11164:10:::1;11147:14;:27;;;;11068:122:::0;:::o;11486:186::-;2675:10;2665:20;;:6;;;;;;;;;;:20;;;2657:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;11560:1:::1;11543:13;;:18:::0;11540:125:::1;;11593:12;11577:13;:28;;;;11540:125;;;11652:1;11636:13;:17;;;;11540:125;11486:186::o:0;2880:214::-;2675:10;2665:20;;:6;;;;;;;;;;:20;;;2657:39;;;;;;;;;;;;:::i;:::-;;;;;;;;;2989:1:::1;2969:22;;:8;:22;;::::0;2961:43:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;3049:8;3020:38;;3041:6;::::0;::::1;;;;;;;;3020:38;;;;;;;;;;;;3078:8;3069:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2880:214:::0;:::o;5476:32::-;;;;;;;;;;;;;:::o;582:190::-;668:7;701:1;696;:6;;704:12;688:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;728:9;744:1;740;:5;;;;:::i;:::-;728:17;;763:1;756:8;;;582:190;;;;;:::o;8600:999::-;8692:4;8752:18;8773:20;8783:9;8773;:20::i;:::-;8752:41;;8837:15;;8826:6;8813:10;:19;;;;:::i;:::-;8812:40;;:74;;;;8856:19;:30;8876:9;8856:30;;;;;;;;;;;;;;;;;;;;;;;;;8812:74;8804:148;;;;;;;;;;;;:::i;:::-;;;;;;;;;8992:16;:14;:16::i;:::-;:37;;;;;9025:4;;;;;;;;;;;9012:17;;:9;:17;;;8992:37;8989:54;;;9031:10;:8;:10::i;:::-;8989:54;9082:21;9115:8;9106:6;:17;;;;:::i;:::-;9082:41;;9138:11;:19;9150:6;9138:19;;;;;;;;;;;;;;;;;;;;;;;;;9137:20;:41;;;;;9174:4;;;;;;;;;;;9161:17;;:9;:17;;;9137:41;9134:95;;;9204:13;9194:23;;;;;:::i;:::-;;;9134:95;9259:53;9281:6;9259:53;;;;;;;;;;;;;;;;;:9;:17;9269:6;9259:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;9239:9;:17;9249:6;9239:17;;;;;;;;;;;;;;;:73;;;;9323:22;9348:31;9362:6;9369:9;9348:13;:31::i;:::-;:86;;9428:6;9348:86;;;9382:43;9390:6;9398;9419:4;;;;;;;;;;;9406:17;;:9;:17;;;9382:7;:43::i;:::-;9348:86;9323:111;;9468:40;9493:14;9468:9;:20;9478:9;9468:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;9445:9;:20;9455:9;9445:20;;;;;;;;;;;;;;;:63;;;;9543:9;9526:43;;9535:6;9526:43;;;9554:14;9526:43;;;;;;:::i;:::-;;;;;;;;9587:4;9580:11;;;;;8600:999;;;;;:::o;255:179::-;313:7;333:9;349:1;345;:5;;;;:::i;:::-;333:17;;374:1;369;:6;;361:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;425:1;418:8;;;255:179;;;;:::o;10863:197::-;10912:4;10950;;;;;;;;;;;10936:18;;:10;:18;;;;:38;;;;;10968:6;;;;;;;;;;;10967:7;10936:38;:62;;;;;10987:11;;;;;;;;;;;10936:62;:116;;;;;11039:13;;11011:9;:24;11029:4;11011:24;;;;;;;;;;;;;;;;:41;;10936:116;10929:123;;10863:197;:::o;12472:1602::-;5791:4;5782:6;;:13;;;;;;;;;;;;;;;;;;12531:22:::1;12594:16;;12567:9;:24;12585:4;12567:24;;;;;;;;;;;;;;;;:43;12564:180;;;12643:16;;12626:33;;12564:180;;;12708:9;:24;12726:4;12708:24;;;;;;;;;;;;;;;;12691:41;;12564:180;12754:23;12780:53;12831:1;12780:46;12817:8;;12780:32;12799:12;;12780:14;:18;;:32;;;;:::i;:::-;:36;;:46;;;;:::i;:::-;:50;;:53;;;;:::i;:::-;12754:79;;12844:20;12867:35;12886:15;12867:14;:18;;:35;;;;:::i;:::-;12844:58;;12915:21;12953:1;12939:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12915:40;;12984:4;12966;12971:1;12966:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13010:6;;;;;;;;;;;:11;;;:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13000:4;13005:1;13000:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13034:6;;;;;;;;;;;:57;;;13106:12;13133:1;13149:4;13176;13196:15;13034:188;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13235:17;13255:21;13235:41;;13287:19;13309:33;13322:19;13339:1;13322:12;;:16;;:19;;;;:::i;:::-;13309:8;;:12;;:33;;;;:::i;:::-;13287:55;;13353:26;13382:51;13431:1;13382:44;13414:11;13382:27;13396:12;;13382:9;:13;;:27;;;;:::i;:::-;:31;;:44;;;;:::i;:::-;:48;;:51;;;;:::i;:::-;13353:80;;13444:26;13473:33;13487:18;13473:9;:13;;:33;;;;:::i;:::-;13444:62;;13541:1;13522:18;:20;13519:174;;;13558:15;13612:20;;;;;;;;;;;13604:34;;13646:18;13671:5;13604:77;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13588:93;;;;;13543:150;13519:174;13726:1;13708:15;:19;13705:362;;;13743:6;;;;;;;;;;;:22;;;13773:18;13819:4;13843:15;13877:1;13897::::0;13917:21:::1;;;;;;;;;;;13957:15;13743:244;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;14007:48;14019:18;14039:15;14007:48;;;;;;;:::i;:::-;;;;;;;;13705:362;12510:1564;;;;;;;;5809:5:::0;5800:6;;:14;;;;;;;;;;;;;;;;;;12472:1602::o;10467:160::-;10547:4;10572:11;:19;10584:6;10572:19;;;;;;;;;;;;;;;;;;;;;;;;;10571:20;:47;;;;;10596:11;:22;10608:9;10596:22;;;;;;;;;;;;;;;;;;;;;;;;;10595:23;10571:47;10564:54;;10467:160;;;;:::o;9949:510::-;10029:7;10056:18;10077:6;:29;;10103:3;10077:29;;;10086:14;;10077:29;10056:50;;10136:14;10169:1;10153:13;;:17;:33;;10184:2;10153:33;;;10173:8;;10153:33;10136:50;;10197:17;10217:60;10273:3;10256:14;;:20;;;;:::i;:::-;10217:34;10240:10;10217:18;10228:6;10217;:10;;:18;;;;:::i;:::-;:22;;:34;;;;:::i;:::-;:38;;:60;;;;:::i;:::-;10197:80;;10315:39;10344:9;10315;:24;10333:4;10315:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;10288:9;:24;10306:4;10288:24;;;;;;;;;;;;;;;:66;;;;10395:4;10370:42;;10379:6;10370:42;;;10402:9;10370:42;;;;;;:::i;:::-;;;;;;;;10430:21;10441:9;10430:6;:10;;:21;;;;:::i;:::-;10423:28;;;;;9949:510;;;;;:::o;778:246::-;836:7;865:1;860;:6;856:47;;890:1;883:8;;;;856:47;913:9;929:1;925;:5;;;;:::i;:::-;913:17;;958:1;953;949;:5;;;;:::i;:::-;:10;941:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1015:1;1008:8;;;778:246;;;;;:::o;1030:132::-;1088:7;1115:39;1119:1;1122;1115:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1108:46;;1030:132;;;;:::o;440:136::-;498:7;525:43;529:1;532;525:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;518:50;;440:136;;;;:::o;1168:189::-;1254:7;1286:1;1282;:5;1289:12;1274:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1313:9;1329:1;1325;:5;;;;:::i;:::-;1313:17;;1348:1;1341:8;;;1168:189;;;;;:::o;88:117:1:-;197:1;194;187:12;334:77;371:7;400:5;389:16;;334:77;;;:::o;417:122::-;490:24;508:5;490:24;:::i;:::-;483:5;480:35;470:63;;529:1;526;519:12;470:63;417:122;:::o;545:139::-;591:5;629:6;616:20;607:29;;645:33;672:5;645:33;:::i;:::-;545:139;;;;:::o;690:329::-;749:6;798:2;786:9;777:7;773:23;769:32;766:119;;;804:79;;:::i;:::-;766:119;924:1;949:53;994:7;985:6;974:9;970:22;949:53;:::i;:::-;939:63;;895:117;690:329;;;;:::o;1025:118::-;1112:24;1130:5;1112:24;:::i;:::-;1107:3;1100:37;1025:118;;:::o;1149:222::-;1242:4;1280:2;1269:9;1265:18;1257:26;;1293:71;1361:1;1350:9;1346:17;1337:6;1293:71;:::i;:::-;1149:222;;;;:::o;1377:99::-;1429:6;1463:5;1457:12;1447:22;;1377:99;;;:::o;1482:169::-;1566:11;1600:6;1595:3;1588:19;1640:4;1635:3;1631:14;1616:29;;1482:169;;;;:::o;1657:246::-;1738:1;1748:113;1762:6;1759:1;1756:13;1748:113;;;1847:1;1842:3;1838:11;1832:18;1828:1;1823:3;1819:11;1812:39;1784:2;1781:1;1777:10;1772:15;;1748:113;;;1895:1;1886:6;1881:3;1877:16;1870:27;1719:184;1657:246;;;:::o;1909:102::-;1950:6;2001:2;1997:7;1992:2;1985:5;1981:14;1977:28;1967:38;;1909:102;;;:::o;2017:377::-;2105:3;2133:39;2166:5;2133:39;:::i;:::-;2188:71;2252:6;2247:3;2188:71;:::i;:::-;2181:78;;2268:65;2326:6;2321:3;2314:4;2307:5;2303:16;2268:65;:::i;:::-;2358:29;2380:6;2358:29;:::i;:::-;2353:3;2349:39;2342:46;;2109:285;2017:377;;;;:::o;2400:313::-;2513:4;2551:2;2540:9;2536:18;2528:26;;2600:9;2594:4;2590:20;2586:1;2575:9;2571:17;2564:47;2628:78;2701:4;2692:6;2628:78;:::i;:::-;2620:86;;2400:313;;;;:::o;2719:126::-;2756:7;2796:42;2789:5;2785:54;2774:65;;2719:126;;;:::o;2851:96::-;2888:7;2917:24;2935:5;2917:24;:::i;:::-;2906:35;;2851:96;;;:::o;2953:122::-;3026:24;3044:5;3026:24;:::i;:::-;3019:5;3016:35;3006:63;;3065:1;3062;3055:12;3006:63;2953:122;:::o;3081:139::-;3127:5;3165:6;3152:20;3143:29;;3181:33;3208:5;3181:33;:::i;:::-;3081:139;;;;:::o;3226:474::-;3294:6;3302;3351:2;3339:9;3330:7;3326:23;3322:32;3319:119;;;3357:79;;:::i;:::-;3319:119;3477:1;3502:53;3547:7;3538:6;3527:9;3523:22;3502:53;:::i;:::-;3492:63;;3448:117;3604:2;3630:53;3675:7;3666:6;3655:9;3651:22;3630:53;:::i;:::-;3620:63;;3575:118;3226:474;;;;;:::o;3706:90::-;3740:7;3783:5;3776:13;3769:21;3758:32;;3706:90;;;:::o;3802:109::-;3883:21;3898:5;3883:21;:::i;:::-;3878:3;3871:34;3802:109;;:::o;3917:210::-;4004:4;4042:2;4031:9;4027:18;4019:26;;4055:65;4117:1;4106:9;4102:17;4093:6;4055:65;:::i;:::-;3917:210;;;;:::o;4133:116::-;4203:21;4218:5;4203:21;:::i;:::-;4196:5;4193:32;4183:60;;4239:1;4236;4229:12;4183:60;4133:116;:::o;4255:133::-;4298:5;4336:6;4323:20;4314:29;;4352:30;4376:5;4352:30;:::i;:::-;4255:133;;;;:::o;4394:468::-;4459:6;4467;4516:2;4504:9;4495:7;4491:23;4487:32;4484:119;;;4522:79;;:::i;:::-;4484:119;4642:1;4667:53;4712:7;4703:6;4692:9;4688:22;4667:53;:::i;:::-;4657:63;;4613:117;4769:2;4795:50;4837:7;4828:6;4817:9;4813:22;4795:50;:::i;:::-;4785:60;;4740:115;4394:468;;;;;:::o;4868:619::-;4945:6;4953;4961;5010:2;4998:9;4989:7;4985:23;4981:32;4978:119;;;5016:79;;:::i;:::-;4978:119;5136:1;5161:53;5206:7;5197:6;5186:9;5182:22;5161:53;:::i;:::-;5151:63;;5107:117;5263:2;5289:53;5334:7;5325:6;5314:9;5310:22;5289:53;:::i;:::-;5279:63;;5234:118;5391:2;5417:53;5462:7;5453:6;5442:9;5438:22;5417:53;:::i;:::-;5407:63;;5362:118;4868:619;;;;;:::o;5493:86::-;5528:7;5568:4;5561:5;5557:16;5546:27;;5493:86;;;:::o;5585:112::-;5668:22;5684:5;5668:22;:::i;:::-;5663:3;5656:35;5585:112;;:::o;5703:214::-;5792:4;5830:2;5819:9;5815:18;5807:26;;5843:67;5907:1;5896:9;5892:17;5883:6;5843:67;:::i;:::-;5703:214;;;;:::o;5923:329::-;5982:6;6031:2;6019:9;6010:7;6006:23;6002:32;5999:119;;;6037:79;;:::i;:::-;5999:119;6157:1;6182:53;6227:7;6218:6;6207:9;6203:22;6182:53;:::i;:::-;6172:63;;6128:117;5923:329;;;;:::o;6258:118::-;6345:24;6363:5;6345:24;:::i;:::-;6340:3;6333:37;6258:118;;:::o;6382:222::-;6475:4;6513:2;6502:9;6498:18;6490:26;;6526:71;6594:1;6583:9;6579:17;6570:6;6526:71;:::i;:::-;6382:222;;;;:::o;6610:474::-;6678:6;6686;6735:2;6723:9;6714:7;6710:23;6706:32;6703:119;;;6741:79;;:::i;:::-;6703:119;6861:1;6886:53;6931:7;6922:6;6911:9;6907:22;6886:53;:::i;:::-;6876:63;;6832:117;6988:2;7014:53;7059:7;7050:6;7039:9;7035:22;7014:53;:::i;:::-;7004:63;;6959:118;6610:474;;;;;:::o;7090:619::-;7167:6;7175;7183;7232:2;7220:9;7211:7;7207:23;7203:32;7200:119;;;7238:79;;:::i;:::-;7200:119;7358:1;7383:53;7428:7;7419:6;7408:9;7404:22;7383:53;:::i;:::-;7373:63;;7329:117;7485:2;7511:53;7556:7;7547:6;7536:9;7532:22;7511:53;:::i;:::-;7501:63;;7456:118;7613:2;7639:53;7684:7;7675:6;7664:9;7660:22;7639:53;:::i;:::-;7629:63;;7584:118;7090:619;;;;;:::o;7715:613::-;7789:6;7797;7805;7854:2;7842:9;7833:7;7829:23;7825:32;7822:119;;;7860:79;;:::i;:::-;7822:119;7980:1;8005:50;8047:7;8038:6;8027:9;8023:22;8005:50;:::i;:::-;7995:60;;7951:114;8104:2;8130:53;8175:7;8166:6;8155:9;8151:22;8130:53;:::i;:::-;8120:63;;8075:118;8232:2;8258:53;8303:7;8294:6;8283:9;8279:22;8258:53;:::i;:::-;8248:63;;8203:118;7715:613;;;;;:::o;8334:60::-;8362:3;8383:5;8376:12;;8334:60;;;:::o;8400:142::-;8450:9;8483:53;8501:34;8510:24;8528:5;8510:24;:::i;:::-;8501:34;:::i;:::-;8483:53;:::i;:::-;8470:66;;8400:142;;;:::o;8548:126::-;8598:9;8631:37;8662:5;8631:37;:::i;:::-;8618:50;;8548:126;;;:::o;8680:152::-;8756:9;8789:37;8820:5;8789:37;:::i;:::-;8776:50;;8680:152;;;:::o;8838:183::-;8951:63;9008:5;8951:63;:::i;:::-;8946:3;8939:76;8838:183;;:::o;9027:274::-;9146:4;9184:2;9173:9;9169:18;9161:26;;9197:97;9291:1;9280:9;9276:17;9267:6;9197:97;:::i;:::-;9027:274;;;;:::o;9307:156::-;9447:8;9443:1;9435:6;9431:14;9424:32;9307:156;:::o;9469:365::-;9611:3;9632:66;9696:1;9691:3;9632:66;:::i;:::-;9625:73;;9707:93;9796:3;9707:93;:::i;:::-;9825:2;9820:3;9816:12;9809:19;;9469:365;;;:::o;9840:419::-;10006:4;10044:2;10033:9;10029:18;10021:26;;10093:9;10087:4;10083:20;10079:1;10068:9;10064:17;10057:47;10121:131;10247:4;10121:131;:::i;:::-;10113:139;;9840:419;;;:::o;10265:180::-;10313:77;10310:1;10303:88;10410:4;10407:1;10400:15;10434:4;10431:1;10424:15;10451:410;10491:7;10514:20;10532:1;10514:20;:::i;:::-;10509:25;;10548:20;10566:1;10548:20;:::i;:::-;10543:25;;10603:1;10600;10596:9;10625:30;10643:11;10625:30;:::i;:::-;10614:41;;10804:1;10795:7;10791:15;10788:1;10785:22;10765:1;10758:9;10738:83;10715:139;;10834:18;;:::i;:::-;10715:139;10499:362;10451:410;;;;:::o;10867:180::-;10915:77;10912:1;10905:88;11012:4;11009:1;11002:15;11036:4;11033:1;11026:15;11053:185;11093:1;11110:20;11128:1;11110:20;:::i;:::-;11105:25;;11144:20;11162:1;11144:20;:::i;:::-;11139:25;;11183:1;11173:35;;11188:18;;:::i;:::-;11173:35;11230:1;11227;11223:9;11218:14;;11053:185;;;;:::o;11244:180::-;11292:77;11289:1;11282:88;11389:4;11386:1;11379:15;11413:4;11410:1;11403:15;11430:320;11474:6;11511:1;11505:4;11501:12;11491:22;;11558:1;11552:4;11548:12;11579:18;11569:81;;11635:4;11627:6;11623:17;11613:27;;11569:81;11697:2;11689:6;11686:14;11666:18;11663:38;11660:84;;11716:18;;:::i;:::-;11660:84;11481:269;11430:320;;;:::o;11756:157::-;11896:9;11892:1;11884:6;11880:14;11873:33;11756:157;:::o;11919:365::-;12061:3;12082:66;12146:1;12141:3;12082:66;:::i;:::-;12075:73;;12157:93;12246:3;12157:93;:::i;:::-;12275:2;12270:3;12266:12;12259:19;;11919:365;;;:::o;12290:419::-;12456:4;12494:2;12483:9;12479:18;12471:26;;12543:9;12537:4;12533:20;12529:1;12518:9;12514:17;12507:47;12571:131;12697:4;12571:131;:::i;:::-;12563:139;;12290:419;;;:::o;12715:178::-;12855:30;12851:1;12843:6;12839:14;12832:54;12715:178;:::o;12899:366::-;13041:3;13062:67;13126:2;13121:3;13062:67;:::i;:::-;13055:74;;13138:93;13227:3;13138:93;:::i;:::-;13256:2;13251:3;13247:12;13240:19;;12899:366;;;:::o;13271:419::-;13437:4;13475:2;13464:9;13460:18;13452:26;;13524:9;13518:4;13514:20;13510:1;13499:9;13495:17;13488:47;13552:131;13678:4;13552:131;:::i;:::-;13544:139;;13271:419;;;:::o;13696:158::-;13836:10;13832:1;13824:6;13820:14;13813:34;13696:158;:::o;13860:365::-;14002:3;14023:66;14087:1;14082:3;14023:66;:::i;:::-;14016:73;;14098:93;14187:3;14098:93;:::i;:::-;14216:2;14211:3;14207:12;14200:19;;13860:365;;;:::o;14231:419::-;14397:4;14435:2;14424:9;14420:18;14412:26;;14484:9;14478:4;14474:20;14470:1;14459:9;14455:17;14448:47;14512:131;14638:4;14512:131;:::i;:::-;14504:139;;14231:419;;;:::o;14656:194::-;14696:4;14716:20;14734:1;14716:20;:::i;:::-;14711:25;;14750:20;14768:1;14750:20;:::i;:::-;14745:25;;14794:1;14791;14787:9;14779:17;;14818:1;14812:4;14809:11;14806:37;;;14823:18;;:::i;:::-;14806:37;14656:194;;;;:::o;14856:191::-;14896:3;14915:20;14933:1;14915:20;:::i;:::-;14910:25;;14949:20;14967:1;14949:20;:::i;:::-;14944:25;;14992:1;14989;14985:9;14978:16;;15013:3;15010:1;15007:10;15004:36;;;15020:18;;:::i;:::-;15004:36;14856:191;;;;:::o;15053:249::-;15193:34;15189:1;15181:6;15177:14;15170:58;15262:32;15257:2;15249:6;15245:15;15238:57;15053:249;:::o;15308:366::-;15450:3;15471:67;15535:2;15530:3;15471:67;:::i;:::-;15464:74;;15547:93;15636:3;15547:93;:::i;:::-;15665:2;15660:3;15656:12;15649:19;;15308:366;;;:::o;15680:419::-;15846:4;15884:2;15873:9;15869:18;15861:26;;15933:9;15927:4;15923:20;15919:1;15908:9;15904:17;15897:47;15961:131;16087:4;15961:131;:::i;:::-;15953:139;;15680:419;;;:::o;16105:177::-;16245:29;16241:1;16233:6;16229:14;16222:53;16105:177;:::o;16288:366::-;16430:3;16451:67;16515:2;16510:3;16451:67;:::i;:::-;16444:74;;16527:93;16616:3;16527:93;:::i;:::-;16645:2;16640:3;16636:12;16629:19;;16288:366;;;:::o;16660:419::-;16826:4;16864:2;16853:9;16849:18;16841:26;;16913:9;16907:4;16903:20;16899:1;16888:9;16884:17;16877:47;16941:131;17067:4;16941:131;:::i;:::-;16933:139;;16660:419;;;:::o;17085:180::-;17133:77;17130:1;17123:88;17230:4;17227:1;17220:15;17254:4;17251:1;17244:15;17271:180;17319:77;17316:1;17309:88;17416:4;17413:1;17406:15;17440:4;17437:1;17430:15;17457:143;17514:5;17545:6;17539:13;17530:22;;17561:33;17588:5;17561:33;:::i;:::-;17457:143;;;;:::o;17606:351::-;17676:6;17725:2;17713:9;17704:7;17700:23;17696:32;17693:119;;;17731:79;;:::i;:::-;17693:119;17851:1;17876:64;17932:7;17923:6;17912:9;17908:22;17876:64;:::i;:::-;17866:74;;17822:128;17606:351;;;;:::o;17963:85::-;18008:7;18037:5;18026:16;;17963:85;;;:::o;18054:158::-;18112:9;18145:61;18163:42;18172:32;18198:5;18172:32;:::i;:::-;18163:42;:::i;:::-;18145:61;:::i;:::-;18132:74;;18054:158;;;:::o;18218:147::-;18313:45;18352:5;18313:45;:::i;:::-;18308:3;18301:58;18218:147;;:::o;18371:114::-;18438:6;18472:5;18466:12;18456:22;;18371:114;;;:::o;18491:184::-;18590:11;18624:6;18619:3;18612:19;18664:4;18659:3;18655:14;18640:29;;18491:184;;;;:::o;18681:132::-;18748:4;18771:3;18763:11;;18801:4;18796:3;18792:14;18784:22;;18681:132;;;:::o;18819:108::-;18896:24;18914:5;18896:24;:::i;:::-;18891:3;18884:37;18819:108;;:::o;18933:179::-;19002:10;19023:46;19065:3;19057:6;19023:46;:::i;:::-;19101:4;19096:3;19092:14;19078:28;;18933:179;;;;:::o;19118:113::-;19188:4;19220;19215:3;19211:14;19203:22;;19118:113;;;:::o;19267:732::-;19386:3;19415:54;19463:5;19415:54;:::i;:::-;19485:86;19564:6;19559:3;19485:86;:::i;:::-;19478:93;;19595:56;19645:5;19595:56;:::i;:::-;19674:7;19705:1;19690:284;19715:6;19712:1;19709:13;19690:284;;;19791:6;19785:13;19818:63;19877:3;19862:13;19818:63;:::i;:::-;19811:70;;19904:60;19957:6;19904:60;:::i;:::-;19894:70;;19750:224;19737:1;19734;19730:9;19725:14;;19690:284;;;19694:14;19990:3;19983:10;;19391:608;;;19267:732;;;;:::o;20005:831::-;20268:4;20306:3;20295:9;20291:19;20283:27;;20320:71;20388:1;20377:9;20373:17;20364:6;20320:71;:::i;:::-;20401:80;20477:2;20466:9;20462:18;20453:6;20401:80;:::i;:::-;20528:9;20522:4;20518:20;20513:2;20502:9;20498:18;20491:48;20556:108;20659:4;20650:6;20556:108;:::i;:::-;20548:116;;20674:72;20742:2;20731:9;20727:18;20718:6;20674:72;:::i;:::-;20756:73;20824:3;20813:9;20809:19;20800:6;20756:73;:::i;:::-;20005:831;;;;;;;;:::o;20842:147::-;20943:11;20980:3;20965:18;;20842:147;;;;:::o;20995:114::-;;:::o;21115:398::-;21274:3;21295:83;21376:1;21371:3;21295:83;:::i;:::-;21288:90;;21387:93;21476:3;21387:93;:::i;:::-;21505:1;21500:3;21496:11;21489:18;;21115:398;;;:::o;21519:379::-;21703:3;21725:147;21868:3;21725:147;:::i;:::-;21718:154;;21889:3;21882:10;;21519:379;;;:::o;21904:807::-;22153:4;22191:3;22180:9;22176:19;22168:27;;22205:71;22273:1;22262:9;22258:17;22249:6;22205:71;:::i;:::-;22286:72;22354:2;22343:9;22339:18;22330:6;22286:72;:::i;:::-;22368:80;22444:2;22433:9;22429:18;22420:6;22368:80;:::i;:::-;22458;22534:2;22523:9;22519:18;22510:6;22458:80;:::i;:::-;22548:73;22616:3;22605:9;22601:19;22592:6;22548:73;:::i;:::-;22631;22699:3;22688:9;22684:19;22675:6;22631:73;:::i;:::-;21904:807;;;;;;;;;:::o;22717:143::-;22774:5;22805:6;22799:13;22790:22;;22821:33;22848:5;22821:33;:::i;:::-;22717:143;;;;:::o;22866:663::-;22954:6;22962;22970;23019:2;23007:9;22998:7;22994:23;22990:32;22987:119;;;23025:79;;:::i;:::-;22987:119;23145:1;23170:64;23226:7;23217:6;23206:9;23202:22;23170:64;:::i;:::-;23160:74;;23116:128;23283:2;23309:64;23365:7;23356:6;23345:9;23341:22;23309:64;:::i;:::-;23299:74;;23254:129;23422:2;23448:64;23504:7;23495:6;23484:9;23480:22;23448:64;:::i;:::-;23438:74;;23393:129;22866:663;;;;;:::o;23535:332::-;23656:4;23694:2;23683:9;23679:18;23671:26;;23707:71;23775:1;23764:9;23760:17;23751:6;23707:71;:::i;:::-;23788:72;23856:2;23845:9;23841:18;23832:6;23788:72;:::i;:::-;23535:332;;;;;:::o;23873:220::-;24013:34;24009:1;24001:6;23997:14;23990:58;24082:3;24077:2;24069:6;24065:15;24058:28;23873:220;:::o;24099:366::-;24241:3;24262:67;24326:2;24321:3;24262:67;:::i;:::-;24255:74;;24338:93;24427:3;24338:93;:::i;:::-;24456:2;24451:3;24447:12;24440:19;;24099:366;;;:::o;24471:419::-;24637:4;24675:2;24664:9;24660:18;24652:26;;24724:9;24718:4;24714:20;24710:1;24699:9;24695:17;24688:47;24752:131;24878:4;24752:131;:::i;:::-;24744:139;;24471:419;;;:::o

Swarm Source

ipfs://a2a90d0be01a2f68c63e7d91e7a75c1ebcf3ebebb0f8f03aace91f08d6c7ed66

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.