ETH Price: $3,523.89 (+5.05%)

Contract

0xD3E36c7742bE9981e092dDF2c9805FB3F74DE3ab
 

Overview

ETH Balance

0.035897029794766516 ETH

Eth Value

$126.50 (@ $3,523.89/ETH)

Token Holdings

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve184252332023-10-25 5:39:35423 days ago1698212375IN
0xD3E36c77...3F74DE3ab
0 ETH0.0002642310.6357959
Transfer163090772023-01-01 2:58:23720 days ago1672541903IN
0xD3E36c77...3F74DE3ab
0 ETH0.0005061114.42292628
Transfer163090702023-01-01 2:56:59720 days ago1672541819IN
0xD3E36c77...3F74DE3ab
0 ETH0.0005788116.49464383
Transfer163090542023-01-01 2:53:47720 days ago1672541627IN
0xD3E36c77...3F74DE3ab
0 ETH0.0005141614.6473526
Transfer163089602023-01-01 2:34:59720 days ago1672540499IN
0xD3E36c77...3F74DE3ab
0 ETH0.0005841616.64720869
Approve158339752022-10-26 18:15:11786 days ago1666808111IN
0xD3E36c77...3F74DE3ab
0 ETH0.0005022720.21718804
Approve156065492022-09-24 23:37:59818 days ago1664062679IN
0xD3E36c77...3F74DE3ab
0 ETH0.000186373.95460341
Approve156061332022-09-24 22:14:35818 days ago1664057675IN
0xD3E36c77...3F74DE3ab
0 ETH0.000166613.5635324
Approve155478302022-09-16 18:02:59826 days ago1663351379IN
0xD3E36c77...3F74DE3ab
0 ETH0.0016457934.92180555
Approve155250252022-09-13 4:51:17830 days ago1663044677IN
0xD3E36c77...3F74DE3ab
0 ETH0.00039298.3370285
Approve155015352022-09-09 7:42:02833 days ago1662709322IN
0xD3E36c77...3F74DE3ab
0 ETH0.002356450
Approve155015352022-09-09 7:42:02833 days ago1662709322IN
0xD3E36c77...3F74DE3ab
0 ETH0.002356450
Approve155015352022-09-09 7:42:02833 days ago1662709322IN
0xD3E36c77...3F74DE3ab
0 ETH0.002356450
Withdraw155011102022-09-09 5:55:01834 days ago1662702901IN
0xD3E36c77...3F74DE3ab
0 ETH0.00024418.0061952
Approve154998982022-09-09 1:14:52834 days ago1662686092IN
0xD3E36c77...3F74DE3ab
0 ETH0.0007141715.15390474
Approve154998152022-09-09 0:55:45834 days ago1662684945IN
0xD3E36c77...3F74DE3ab
0 ETH0.0006646814.10377628
Approve154998092022-09-09 0:54:22834 days ago1662684862IN
0xD3E36c77...3F74DE3ab
0 ETH0.0007215215.30983027
Approve154997982022-09-09 0:51:14834 days ago1662684674IN
0xD3E36c77...3F74DE3ab
0 ETH0.001065922.61715685
Approve154997472022-09-09 0:36:52834 days ago1662683812IN
0xD3E36c77...3F74DE3ab
0 ETH0.0005583111.84668484
Approve154997072022-09-09 0:29:11834 days ago1662683351IN
0xD3E36c77...3F74DE3ab
0 ETH0.0009482920.12159664
Approve154996952022-09-09 0:25:54834 days ago1662683154IN
0xD3E36c77...3F74DE3ab
0 ETH0.0010586922.46424567
Approve154996752022-09-09 0:21:16834 days ago1662682876IN
0xD3E36c77...3F74DE3ab
0 ETH0.0009356619.85376548
Approve154996622022-09-09 0:17:10834 days ago1662682630IN
0xD3E36c77...3F74DE3ab
0 ETH0.0006632914.07425654
Approve154996272022-09-09 0:10:41834 days ago1662682241IN
0xD3E36c77...3F74DE3ab
0 ETH0.000950120.1600312
Approve154996182022-09-09 0:06:06834 days ago1662681966IN
0xD3E36c77...3F74DE3ab
0 ETH0.0005366811.38776976
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Block
From
To
156065532022-09-24 23:38:47818 days ago1664062727
0xD3E36c77...3F74DE3ab
0.00040834 ETH
156062052022-09-24 22:28:59818 days ago1664058539
0xD3E36c77...3F74DE3ab
0.0004288 ETH
156015702022-09-24 6:57:23818 days ago1664002643
0xD3E36c77...3F74DE3ab
0.00021141 ETH
155623582022-09-18 18:56:59824 days ago1663527419
0xD3E36c77...3F74DE3ab
0.00819418 ETH
155478332022-09-16 18:03:35826 days ago1663351415
0xD3E36c77...3F74DE3ab
0.0019036 ETH
155250302022-09-13 4:52:03830 days ago1663044723
0xD3E36c77...3F74DE3ab
0.00047963 ETH
155160422022-09-11 17:19:04831 days ago1662916744
0xD3E36c77...3F74DE3ab
0.00706165 ETH
155116352022-09-10 23:46:17832 days ago1662853577
0xD3E36c77...3F74DE3ab
0.0017659 ETH
155099602022-09-10 17:09:12832 days ago1662829752
0xD3E36c77...3F74DE3ab
0.00153243 ETH
155023062022-09-09 10:39:24833 days ago1662719964
0xD3E36c77...3F74DE3ab
0.00580192 ETH
155015372022-09-09 7:42:50833 days ago1662709370
0xD3E36c77...3F74DE3ab
0.00043659 ETH
155015372022-09-09 7:42:50833 days ago1662709370
0xD3E36c77...3F74DE3ab
0.00043757 ETH
155015372022-09-09 7:42:50833 days ago1662709370
0xD3E36c77...3F74DE3ab
0.00157956 ETH
155014312022-09-09 7:14:09833 days ago1662707649
0xD3E36c77...3F74DE3ab
0.00199843 ETH
155013072022-09-09 6:42:51833 days ago1662705771
0xD3E36c77...3F74DE3ab
0.00048503 ETH
155012472022-09-09 6:23:49833 days ago1662704629
0xD3E36c77...3F74DE3ab
0.00317192 ETH
155011102022-09-09 5:55:01834 days ago1662702901
0xD3E36c77...3F74DE3ab
3.47943634 ETH
155005092022-09-09 3:39:14834 days ago1662694754
0xD3E36c77...3F74DE3ab
0.00175397 ETH
155003692022-09-09 3:02:04834 days ago1662692524
0xD3E36c77...3F74DE3ab
0.00181688 ETH
154999822022-09-09 1:36:16834 days ago1662687376
0xD3E36c77...3F74DE3ab
0.0016683 ETH
154999012022-09-09 1:15:54834 days ago1662686154
0xD3E36c77...3F74DE3ab
0.00294992 ETH
154998532022-09-09 1:04:30834 days ago1662685470
0xD3E36c77...3F74DE3ab
0.00120673 ETH
154998502022-09-09 1:03:09834 days ago1662685389
0xD3E36c77...3F74DE3ab
0.00157737 ETH
154998262022-09-09 0:58:03834 days ago1662685083
0xD3E36c77...3F74DE3ab
0.0044107 ETH
154998182022-09-09 0:56:31834 days ago1662684991
0xD3E36c77...3F74DE3ab
0.00101184 ETH
View All Internal Transactions
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
SquareDAO

Compiler Version
v0.8.15+commit.e14f2714

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-09-08
*/

/***************************************************************************

SquareDAO Art

https://squaredao.art

****************************************************************************/

pragma solidity ^0.8.7;
// SPDX-License-Identifier: Unlicensed

abstract contract Withdrawable {
    address internal _withdrawAddress;

    constructor(address withdrawAddress__) {
        _withdrawAddress = withdrawAddress__;
    }

    modifier onlyWithdrawer() {
        require(msg.sender == _withdrawAddress);
        _;
    }

    function withdraw() external onlyWithdrawer {
        _withdraw();
    }

    function _withdraw() internal {
        payable(_withdrawAddress).transfer(address(this).balance);
    }

    function setWithdrawAddress(address newWithdrawAddress)
        external
        onlyWithdrawer
    {
        _withdrawAddress = newWithdrawAddress;
    }

    function withdrawAddress() external view returns (address) {
        return _withdrawAddress;
    }
}


abstract contract Ownable {
    address _owner;

    modifier onlyOwner() {
        require(msg.sender == _owner);
        _;
    }

    constructor() {
        _owner = msg.sender;
    }

    function transferOwnership(address newOwner) external onlyOwner {
        _owner = newOwner;
    }

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

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

    function getPair(address tokenA, address tokenB)
        external
        view
        returns (address pair);
}

interface IUniswapV2Router02 {
    function swapExactTokensForETH(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;

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

    function swapETHForExactTokens(
        uint256 amountOut,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external payable returns (uint256[] memory amounts);

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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


contract DoubleSwapped {
    bool internal _inSwap;

    modifier lockTheSwap() {
        _inSwap = true;
        _;
        _inSwap = false;
    }

    function _swapTokensForEth(
        uint256 tokenAmount,
        IUniswapV2Router02 _uniswapV2Router
    ) internal lockTheSwap {
        // generate the uniswap pair path of token -> weth
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = _uniswapV2Router.WETH();

        // make the swap
        //console.log("doubleSwap ", tokenAmount);
        _uniswapV2Router.swapExactTokensForETH(
            tokenAmount,
            0, // accept any amount of ETH
            path,
            address(this), // The contract
            block.timestamp
        );
    }

    function _swapTokensForEthOnTransfer(
        uint256 transferAmount,
        uint256 swapCount,
        IUniswapV2Router02 _uniswapV2Router
    ) internal {
        if (swapCount == 0) return;
        uint256 maxSwapCount = 2 * transferAmount;
        if (swapCount > maxSwapCount) swapCount = maxSwapCount;
        _swapTokensForEth(swapCount, _uniswapV2Router);
    }
}

interface IERC20 {
    function totalSupply() external view returns (uint256);

    function balanceOf(address account) external view returns (uint256);

    function transfer(address recipient, uint256 amount)
        external
        returns (bool);

    function allowance(address owner, address spender)
        external
        view
        returns (uint256);

    function approve(address spender, uint256 amount) external returns (bool);

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);

    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}


abstract contract ERC20 is IERC20 {
    uint256 internal _totalSupply = 1e20;
    uint8 constant _decimals = 9;
    string _name;
    string _symbol;
    mapping(address => uint256) internal _balances;
    mapping(address => mapping(address => uint256)) internal _allowances;
    uint256 internal constant INFINITY_ALLOWANCE = 2**256 - 1;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
    }

    function name() external view returns (string memory) {
        return _name;
    }

    function symbol() external view returns (string memory) {
        return _symbol;
    }

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

    function totalSupply() external view override returns (uint256) {
        return _totalSupply;
    }

    function balanceOf(address account) external virtual override view returns (uint256);

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

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal virtual {
        uint256 senderBalance = _balances[from];
        require(senderBalance >= amount);
        unchecked {
            _balances[from] = senderBalance - amount;
        }
        _balances[to] += amount;
        emit Transfer(from, to, amount);
    }

    function allowance(address owner, address spender)
        external
        view
        override
        returns (uint256)
    {
        return _allowances[owner][spender];
    }

    function approve(address spender, uint256 amount)
        external
        override
        returns (bool)
    {
        _approve(msg.sender, spender, amount);
        return true;
    }

    function _approve(
        address owner,
        address spender,
        uint256 amount
    ) internal virtual {
        _allowances[owner][spender] = amount;
        emit Approval(owner, spender, amount);
    }

    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external override returns (bool) {
        _transfer(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][msg.sender];
        require(currentAllowance >= amount);
        if (currentAllowance == INFINITY_ALLOWANCE) return true;
        unchecked {
            _approve(sender, msg.sender, currentAllowance - amount);
        }

        return true;
    }

    function _burn(address account, uint256 amount) internal virtual {
        require(account != address(0));

        uint256 accountBalance = _balances[account];
        require(accountBalance >= amount);
        unchecked {
            _balances[account] = accountBalance - amount;
        }
        _totalSupply -= amount;

        emit Transfer(account, address(0), amount);
    }
}

abstract contract MaxWalletDynamic {
    uint256 startMaxWallet;
    uint256 startTime; // last increment time
    uint256 constant startMaxBuyPercentil = 5; // maximum buy on start 1000=100%
    uint256 constant maxBuyIncrementMinutesTimer = 2; // increment maxbuy minutes
    uint256 constant maxBuyIncrementPercentil = 3; // increment maxbyu percentil 1000=100%
    uint256 constant maxIncrements = 1000; // maximum time incrementations
    uint256 maxBuyIncrementValue; // value for increment maxBuy

    function startMaxWalletDynamic(uint256 totalSupply) internal {
        startTime = block.timestamp;
        startMaxWallet = (totalSupply * startMaxBuyPercentil) / 1000;
        maxBuyIncrementValue = (totalSupply * maxBuyIncrementPercentil) / 1000;
    }

    function checkMaxWallet(uint256 walletSize) internal view {
        require(walletSize <= getMaxWallet(), "max wallet limit");
    }

    function getMaxWallet() public view returns (uint256) {
        uint256 incrementCount = (block.timestamp - startTime) /
            (maxBuyIncrementMinutesTimer * 1 minutes);
        if (incrementCount >= maxIncrements) incrementCount = maxIncrements;
        return startMaxWallet + maxBuyIncrementValue * incrementCount;
    }

    function _setStartMaxWallet(uint256 startMaxWallet_) internal {
        startMaxWallet = startMaxWallet_;
    }
}

abstract contract TradableErc20 is ERC20, DoubleSwapped, Ownable, Withdrawable {
    IUniswapV2Router02 internal constant _uniswapV2Router =
        IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address public uniswapPair;
    bool public buyEnable = true;
    address private ADDR_BURN =
        0x000000000000000000000000000000000000dEaD;
    address public extraAddress;
    mapping(address => bool) _isExcludedFromFee;
    uint256 public buyFeePpm = 70; // fee in 1/1000
    uint256 public sellFeePpm = 75; // fee in 1/1000
    uint256 public thisShare = 1000; // in 1/1000
    uint256 public extraShare = 0; // in 1/1000
    uint256 maxWalletStart = 5e16;
    uint256 addMaxWalletPerMinute = 5e16;
    uint256 tradingStartTime;
    

    constructor(string memory name_, string memory symbol_)
        ERC20(name_, symbol_)
        Withdrawable(0x15B35B2261FeFA206a7112FE97de2754585Ac3BC)
    {
        _isExcludedFromFee[address(0)] = true;
        _isExcludedFromFee[ADDR_BURN] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[msg.sender] = true;
        ADDR_BURN = address(this);
    }

    receive() external payable {}

    function maxWallet() public view returns (uint256) {
        if (tradingStartTime == 0) return _totalSupply;
        uint256 res = maxWalletStart +
            ((block.timestamp - tradingStartTime) * addMaxWalletPerMinute) /
            (1 minutes);
        if (res > _totalSupply) return _totalSupply;
        return res;
    }

    function createLiquidity() public onlyOwner {
        require(uniswapPair == address(0));
        address pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(
            address(this),
            _uniswapV2Router.WETH()
        );
        uint256 initialLiquidity = getSupplyForMakeLiquidity();
        _balances[address(this)] = initialLiquidity;
        emit Transfer(address(0), address(this), initialLiquidity);

        _balances[msg.sender] = 1e19;
        emit Transfer(address(0), msg.sender, initialLiquidity);

        _allowances[address(this)][
            address(_uniswapV2Router)
        ] = INFINITY_ALLOWANCE;
        _isExcludedFromFee[pair] = true;
        _uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            initialLiquidity,
            0,
            0,
            msg.sender,
            block.timestamp
        );

        uniswapPair = pair;
        tradingStartTime = block.timestamp;
    }

    function _transfer(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(_balances[from] >= amount, "not enough token for transfer");
        require(to != address(0), "incorrect address");

        // buy
        if (from == uniswapPair && !_isExcludedFromFee[to]) {
            require(buyEnable, "trading disabled");
            // get taxes
            amount = _getFeeBuy(from, to, amount);
            require(
                _balances[to] + amount <= maxWallet(),
                "max wallet constraint"
            );
        }
        // sell
        else if (
            !_inSwap &&
            uniswapPair != address(0) &&
            to == uniswapPair &&
            !_isExcludedFromFee[from]
        ) {
            // fee
            amount = _getFeeSell(from, amount);
            // swap tokens
            _swapTokensForEthOnTransfer(
                amount,
                _balances[address(this)],
                _uniswapV2Router
            );
        }

        // transfer
        super._transfer(from, to, amount);
    }

    function getFeeBuy(address account, uint256 amount)
        public view
        returns (uint256)
    {
        return (amount * buyFeePpm) / 1000;
    }

    function getFeeSell(address account, uint256 amount)
        public view
        returns (uint256)
    {
        return (amount * sellFeePpm) / 1000;
    }

    function setBuyFee(uint256 newBuyFeePpm) external onlyWithdrawer {
        require(newBuyFeePpm <= 200);
        buyFeePpm = newBuyFeePpm;
    }

    function setSellFee(uint256 newSellFeePpm) external onlyWithdrawer {
        require(newSellFeePpm <= 200);
        sellFeePpm = newSellFeePpm;
    }

    function SetExtraContractAddress(address newExtraContractAddress)
        external
        onlyWithdrawer
    {
        extraAddress = newExtraContractAddress;
    }

    function removeExtraContractAddress() external onlyWithdrawer {
        extraAddress = address(0);
    }

    function setShare(uint256 thisSharePpm, uint256 stackingSharePpm)
        external
        onlyWithdrawer
    {
        thisShare = thisSharePpm;
        extraShare = stackingSharePpm;
        require(thisShare + extraShare <= 1000);
    }

    function _getFeeBuy(
        address pair,
        address to,
        uint256 amount
    ) private returns (uint256) {
        return _arrangeFee(pair, amount, getFeeBuy(to, amount));
    }

    function _getFeeSell(address from, uint256 amount)
        private
        returns (uint256)
    {
        return _arrangeFee(from, amount, getFeeSell(from, amount));
    }

    function _arrangeFee(
        address from,
        uint256 amount,
        uint256 fee
    ) private returns (uint256) {
        uint256 thisFee = (fee * thisShare) / 1000;
        uint256 stacking = 0;
        if (extraAddress != address(0))
            stacking = (fee * extraShare) / 1000;
        uint256 burn = 0;
        if (thisShare + extraShare < 1000) burn = fee - thisFee - stacking;

        amount -= fee;
        _balances[from] -= fee;

        if (thisFee > 0) {
            _balances[address(this)] += thisFee;
            emit Transfer(from, address(this), thisFee);
        }
        if (stacking > 0) {
            _balances[extraAddress] += stacking;
            emit Transfer(from, extraAddress, stacking);
        }
        if (burn > 0) {
            _balances[ADDR_BURN] += burn;
            emit Transfer(from, ADDR_BURN, burn);
        }

        return amount;
    }

    function setExcludeFromFee(address[] memory accounts, bool value)
        external
        onlyWithdrawer
    {
        for (uint256 i = 0; i < accounts.length; ++i) {
            _isExcludedFromFee[accounts[i]] = value;
        }
    }

    function setEnableBuy(bool value) external onlyOwner {
        buyEnable = value;
    }

    function getSupplyForMakeLiquidity() internal virtual returns (uint256);
}

struct AirdropData {
    address acc;
    uint256 count;
}

contract SquareDAO is TradableErc20 {
    constructor() TradableErc20("Square DAO", "SQUARE") {}

    function getSupplyForMakeLiquidity()
        internal
        view
        override
        returns (uint256)
    {
        return _totalSupply - 1e19;
    }

    function balanceOf(address account)
        external
        view
        override
        returns (uint256)
    {
        return _balances[account];
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"newExtraContractAddress","type":"address"}],"name":"SetExtraContractAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyEnable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyFeePpm","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"createLiquidity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"extraAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"extraShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getFeeBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getFeeSell","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","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":"removeExtraContractAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellFeePpm","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newBuyFeePpm","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"value","type":"bool"}],"name":"setEnableBuy","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setExcludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSellFeePpm","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"thisSharePpm","type":"uint256"},{"internalType":"uint256","name":"stackingSharePpm","type":"uint256"}],"name":"setShare","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWithdrawAddress","type":"address"}],"name":"setWithdrawAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"thisShare","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405268056bc75e2d631000006000556001600760146101000a81548160ff02191690831515021790555061dead600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506046600b55604b600c556103e8600d556000600e5566b1a2bc2ec50000600f5566b1a2bc2ec50000601055348015620000a757600080fd5b506040518060400160405280600a81526020017f5371756172652044414f000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f53515541524500000000000000000000000000000000000000000000000000008152507315b35b2261fefa206a7112fe97de2754585ac3bc828281600190816200013c919062000619565b5080600290816200014e919062000619565b50505033600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550506001600a60008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555030600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062000700565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200042157607f821691505b602082108103620004375762000436620003d9565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620004a17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000462565b620004ad868362000462565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620004fa620004f4620004ee84620004c5565b620004cf565b620004c5565b9050919050565b6000819050919050565b6200051683620004d9565b6200052e620005258262000501565b8484546200046f565b825550505050565b600090565b6200054562000536565b620005528184846200050b565b505050565b5b818110156200057a576200056e6000826200053b565b60018101905062000558565b5050565b601f821115620005c95762000593816200043d565b6200059e8462000452565b81016020851015620005ae578190505b620005c6620005bd8562000452565b83018262000557565b50505b505050565b600082821c905092915050565b6000620005ee60001984600802620005ce565b1980831691505092915050565b6000620006098383620005db565b9150826002028217905092915050565b62000624826200039f565b67ffffffffffffffff81111562000640576200063f620003aa565b5b6200064c825462000408565b620006598282856200057e565b600060209050601f8311600181146200069157600084156200067c578287015190505b620006888582620005fb565b865550620006f8565b601f198416620006a1866200043d565b60005b82811015620006cb57848901518255600182019150602085019450602081019050620006a4565b86831015620006eb5784890151620006e7601f891682620005db565b8355505b6001600288020188555050505b505050505050565b61313e80620007106000396000f3fe6080604052600436106101e75760003560e01c80636c90b57f11610102578063c7af2a9c11610095578063f1153e6411610064578063f1153e64146106c9578063f2fde38b146106f4578063f8b45b051461071d578063f95fa9cf14610748576101ee565b8063c7af2a9c1461061f578063c816841b14610636578063d57038e114610661578063dd62ed3e1461068c576101ee565b806395d89b41116100d157806395d89b4114610563578063a9059cbb1461058e578063c4b44a40146105cb578063c6510557146105f6576101ee565b80636c90b57f146104a957806370a08231146104d25780638b4cee081461050f5780638da5cb5b14610538576101ee565b80632b96ddbe1161017a5780633ccfd60b116101495780633ccfd60b146104155780633d389faf1461042c57806347fd4ab3146104575780636bf8e9cc14610480576101ee565b80632b96ddbe1461037f5780632d36b92b14610396578063313ce567146103c15780633ab1a494146103ec576101ee565b806318160ddd116101b657806318160ddd146102af5780631a795197146102da5780631d55009a1461031757806323b872dd14610342576101ee565b806306fdde03146101f3578063095ea7b31461021e5780630cc835a31461025b5780631581b60014610284576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b50610208610785565b6040516102159190612588565b60405180910390f35b34801561022a57600080fd5b5061024560048036038101906102409190612652565b610817565b60405161025291906126ad565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d91906126c8565b61082e565b005b34801561029057600080fd5b506102996108a0565b6040516102a69190612704565b60405180910390f35b3480156102bb57600080fd5b506102c46108ca565b6040516102d1919061272e565b60405180910390f35b3480156102e657600080fd5b5061030160048036038101906102fc9190612652565b6108d3565b60405161030e919061272e565b60405180910390f35b34801561032357600080fd5b5061032c6108f8565b604051610339919061272e565b60405180910390f35b34801561034e57600080fd5b5061036960048036038101906103649190612749565b6108fe565b60405161037691906126ad565b60405180910390f35b34801561038b57600080fd5b506103946109e4565b005b3480156103a257600080fd5b506103ab610a82565b6040516103b89190612704565b60405180910390f35b3480156103cd57600080fd5b506103d6610aa8565b6040516103e391906127b8565b60405180910390f35b3480156103f857600080fd5b50610413600480360381019061040e91906127d3565b610ab1565b005b34801561042157600080fd5b5061042a610b4f565b005b34801561043857600080fd5b50610441610bb3565b60405161044e91906126ad565b60405180910390f35b34801561046357600080fd5b5061047e6004803603810190610479919061282c565b610bc6565b005b34801561048c57600080fd5b506104a760048036038101906104a29190612859565b610c3d565b005b3480156104b557600080fd5b506104d060048036038101906104cb91906129e1565b610cc7565b005b3480156104de57600080fd5b506104f960048036038101906104f491906127d3565b610db4565b604051610506919061272e565b60405180910390f35b34801561051b57600080fd5b50610536600480360381019061053191906126c8565b610dfd565b005b34801561054457600080fd5b5061054d610e6f565b60405161055a9190612704565b60405180910390f35b34801561056f57600080fd5b50610578610e99565b6040516105859190612588565b60405180910390f35b34801561059a57600080fd5b506105b560048036038101906105b09190612652565b610f2b565b6040516105c291906126ad565b60405180910390f35b3480156105d757600080fd5b506105e0610f42565b6040516105ed919061272e565b60405180910390f35b34801561060257600080fd5b5061061d600480360381019061061891906127d3565b610f48565b005b34801561062b57600080fd5b50610634610fe6565b005b34801561064257600080fd5b5061064b611581565b6040516106589190612704565b60405180910390f35b34801561066d57600080fd5b506106766115a7565b604051610683919061272e565b60405180910390f35b34801561069857600080fd5b506106b360048036038101906106ae9190612a3d565b6115ad565b6040516106c0919061272e565b60405180910390f35b3480156106d557600080fd5b506106de611634565b6040516106eb919061272e565b60405180910390f35b34801561070057600080fd5b5061071b600480360381019061071691906127d3565b61163a565b005b34801561072957600080fd5b506107326116d8565b60405161073f919061272e565b60405180910390f35b34801561075457600080fd5b5061076f600480360381019061076a9190612652565b611742565b60405161077c919061272e565b60405180910390f35b60606001805461079490612aac565b80601f01602080910402602001604051908101604052809291908181526020018280546107c090612aac565b801561080d5780601f106107e25761010080835404028352916020019161080d565b820191906000526020600020905b8154815290600101906020018083116107f057829003601f168201915b5050505050905090565b6000610824338484611767565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461088857600080fd5b60c881111561089657600080fd5b80600b8190555050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054905090565b60006103e8600c54836108e69190612b0c565b6108f09190612b95565b905092915050565b600d5481565b600061090b848484611852565b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561099957600080fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81036109ca5760019150506109dd565b6109d78533858403611767565b60019150505b9392505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a3e57600080fd5b6000600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b0b57600080fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ba957600080fd5b610bb1611c80565b565b600760149054906101000a900460ff1681565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c2057600080fd5b80600760146101000a81548160ff02191690831515021790555050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c9757600080fd5b81600d8190555080600e819055506103e8600e54600d54610cb89190612bc6565b1115610cc357600080fd5b5050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d2157600080fd5b60005b8251811015610daf5781600a6000858481518110610d4557610d44612c1c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080610da890612c4b565b9050610d24565b505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e5757600080fd5b60c8811115610e6557600080fd5b80600c8190555050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060028054610ea890612aac565b80601f0160208091040260200160405190810160405280929190818152602001828054610ed490612aac565b8015610f215780601f10610ef657610100808354040283529160200191610f21565b820191906000526020600020905b815481529060010190602001808311610f0457829003601f168201915b5050505050905090565b6000610f38338484611852565b6001905092915050565b600c5481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fa257600080fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461104057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461109b57600080fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111209190612ca8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561119b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111bf9190612ca8565b6040518363ffffffff1660e01b81526004016111dc929190612cd5565b6020604051808303816000875af11580156111fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121f9190612ca8565b9050600061122b611ceb565b905080600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112cf919061272e565b60405180910390a3678ac7230489e80000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611381919061272e565b60405180910390a37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71947308460008033426040518863ffffffff1660e01b81526004016114ef96959493929190612d43565b60606040518083038185885af115801561150d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115329190612db9565b50505081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550426011819055505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e5481565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461169457600080fd5b80600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080601154036116ed57600054905061173f565b6000603c601054601154426117029190612e0c565b61170c9190612b0c565b6117169190612b95565b600f546117239190612bc6565b905060005481111561173a5760005491505061173f565b809150505b90565b60006103e8600b54836117559190612b0c565b61175f9190612b95565b905092915050565b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611845919061272e565b60405180910390a3505050565b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156118d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cb90612e8c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193a90612ef8565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119ea5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ae457600760149054906101000a900460ff16611a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3590612f64565b60405180910390fd5b611a49838383611d08565b9050611a536116d8565b81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9e9190612bc6565b1115611adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad690612fd0565b60405180910390fd5b611c70565b600560009054906101000a900460ff16158015611b505750600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b8015611ba95750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8015611bff5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c6f57611c0e8382611d27565b9050611c6e81600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054737a250d5630b4cf539739df2c5dacb4c659f2488d611d45565b5b5b611c7b838383611d7c565b505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611ce8573d6000803e3d6000fd5b50565b6000678ac7230489e80000600054611d039190612e0c565b905090565b6000611d1e8483611d198686611742565b611ed4565b90509392505050565b6000611d3d8383611d3886866108d3565b611ed4565b905092915050565b6000820315611d77576000836002611d5d9190612b0c565b905080831115611d6b578092505b611d7583836122e6565b505b505050565b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611dcd57600080fd5b818103600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e629190612bc6565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ec6919061272e565b60405180910390a350505050565b6000806103e8600d5484611ee89190612b0c565b611ef29190612b95565b905060008073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f69576103e8600e5485611f5c9190612b0c565b611f669190612b95565b90505b60006103e8600e54600d54611f7e9190612bc6565b1015611f9e57818386611f919190612e0c565b611f9b9190612e0c565b90505b8486611faa9190612e0c565b955084600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ffb9190612e0c565b9250508190555060008311156120c75782600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461205a9190612bc6565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516120be919061272e565b60405180910390a35b60008211156121d0578160036000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121419190612bc6565b92505081905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121c7919061272e565b60405180910390a35b60008111156122d9578060036000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461224a9190612bc6565b92505081905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122d0919061272e565b60405180910390a35b8593505050509392505050565b6001600560006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561231e5761231d61289e565b5b60405190808252806020026020018201604052801561234c5781602001602082028036833780820191505090505b509050308160008151811061236457612363612c1c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240d9190612ca8565b8160018151811061242157612420612c1c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff166318cbafe58460008430426040518663ffffffff1660e01b815260040161249d9594939291906130ae565b600060405180830381600087803b1580156124b757600080fd5b505af11580156124cb573d6000803e3d6000fd5b50505050506000600560006101000a81548160ff0219169083151502179055505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561252957808201518184015260208101905061250e565b83811115612538576000848401525b50505050565b6000601f19601f8301169050919050565b600061255a826124ef565b61256481856124fa565b935061257481856020860161250b565b61257d8161253e565b840191505092915050565b600060208201905081810360008301526125a2818461254f565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125e9826125be565b9050919050565b6125f9816125de565b811461260457600080fd5b50565b600081359050612616816125f0565b92915050565b6000819050919050565b61262f8161261c565b811461263a57600080fd5b50565b60008135905061264c81612626565b92915050565b60008060408385031215612669576126686125b4565b5b600061267785828601612607565b92505060206126888582860161263d565b9150509250929050565b60008115159050919050565b6126a781612692565b82525050565b60006020820190506126c2600083018461269e565b92915050565b6000602082840312156126de576126dd6125b4565b5b60006126ec8482850161263d565b91505092915050565b6126fe816125de565b82525050565b600060208201905061271960008301846126f5565b92915050565b6127288161261c565b82525050565b6000602082019050612743600083018461271f565b92915050565b600080600060608486031215612762576127616125b4565b5b600061277086828701612607565b935050602061278186828701612607565b92505060406127928682870161263d565b9150509250925092565b600060ff82169050919050565b6127b28161279c565b82525050565b60006020820190506127cd60008301846127a9565b92915050565b6000602082840312156127e9576127e86125b4565b5b60006127f784828501612607565b91505092915050565b61280981612692565b811461281457600080fd5b50565b60008135905061282681612800565b92915050565b600060208284031215612842576128416125b4565b5b600061285084828501612817565b91505092915050565b600080604083850312156128705761286f6125b4565b5b600061287e8582860161263d565b925050602061288f8582860161263d565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6128d68261253e565b810181811067ffffffffffffffff821117156128f5576128f461289e565b5b80604052505050565b60006129086125aa565b905061291482826128cd565b919050565b600067ffffffffffffffff8211156129345761293361289e565b5b602082029050602081019050919050565b600080fd5b600061295d61295884612919565b6128fe565b905080838252602082019050602084028301858111156129805761297f612945565b5b835b818110156129a957806129958882612607565b845260208401935050602081019050612982565b5050509392505050565b600082601f8301126129c8576129c7612899565b5b81356129d884826020860161294a565b91505092915050565b600080604083850312156129f8576129f76125b4565b5b600083013567ffffffffffffffff811115612a1657612a156125b9565b5b612a22858286016129b3565b9250506020612a3385828601612817565b9150509250929050565b60008060408385031215612a5457612a536125b4565b5b6000612a6285828601612607565b9250506020612a7385828601612607565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612ac457607f821691505b602082108103612ad757612ad6612a7d565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b178261261c565b9150612b228361261c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612b5b57612b5a612add565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612ba08261261c565b9150612bab8361261c565b925082612bbb57612bba612b66565b5b828204905092915050565b6000612bd18261261c565b9150612bdc8361261c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612c1157612c10612add565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612c568261261c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c8857612c87612add565b5b600182019050919050565b600081519050612ca2816125f0565b92915050565b600060208284031215612cbe57612cbd6125b4565b5b6000612ccc84828501612c93565b91505092915050565b6000604082019050612cea60008301856126f5565b612cf760208301846126f5565b9392505050565b6000819050919050565b6000819050919050565b6000612d2d612d28612d2384612cfe565b612d08565b61261c565b9050919050565b612d3d81612d12565b82525050565b600060c082019050612d5860008301896126f5565b612d65602083018861271f565b612d726040830187612d34565b612d7f6060830186612d34565b612d8c60808301856126f5565b612d9960a083018461271f565b979650505050505050565b600081519050612db381612626565b92915050565b600080600060608486031215612dd257612dd16125b4565b5b6000612de086828701612da4565b9350506020612df186828701612da4565b9250506040612e0286828701612da4565b9150509250925092565b6000612e178261261c565b9150612e228361261c565b925082821015612e3557612e34612add565b5b828203905092915050565b7f6e6f7420656e6f75676820746f6b656e20666f72207472616e73666572000000600082015250565b6000612e76601d836124fa565b9150612e8182612e40565b602082019050919050565b60006020820190508181036000830152612ea581612e69565b9050919050565b7f696e636f72726563742061646472657373000000000000000000000000000000600082015250565b6000612ee26011836124fa565b9150612eed82612eac565b602082019050919050565b60006020820190508181036000830152612f1181612ed5565b9050919050565b7f74726164696e672064697361626c656400000000000000000000000000000000600082015250565b6000612f4e6010836124fa565b9150612f5982612f18565b602082019050919050565b60006020820190508181036000830152612f7d81612f41565b9050919050565b7f6d61782077616c6c657420636f6e73747261696e740000000000000000000000600082015250565b6000612fba6015836124fa565b9150612fc582612f84565b602082019050919050565b60006020820190508181036000830152612fe981612fad565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613025816125de565b82525050565b6000613037838361301c565b60208301905092915050565b6000602082019050919050565b600061305b82612ff0565b6130658185612ffb565b93506130708361300c565b8060005b838110156130a1578151613088888261302b565b975061309383613043565b925050600181019050613074565b5085935050505092915050565b600060a0820190506130c3600083018861271f565b6130d06020830187612d34565b81810360408301526130e28186613050565b90506130f160608301856126f5565b6130fe608083018461271f565b969550505050505056fea264697066735822122087c2da39c0c05383f6704b51eb317163a769dfbf40532844c7ed5721dc002bad64736f6c634300080f0033

Deployed Bytecode

0x6080604052600436106101e75760003560e01c80636c90b57f11610102578063c7af2a9c11610095578063f1153e6411610064578063f1153e64146106c9578063f2fde38b146106f4578063f8b45b051461071d578063f95fa9cf14610748576101ee565b8063c7af2a9c1461061f578063c816841b14610636578063d57038e114610661578063dd62ed3e1461068c576101ee565b806395d89b41116100d157806395d89b4114610563578063a9059cbb1461058e578063c4b44a40146105cb578063c6510557146105f6576101ee565b80636c90b57f146104a957806370a08231146104d25780638b4cee081461050f5780638da5cb5b14610538576101ee565b80632b96ddbe1161017a5780633ccfd60b116101495780633ccfd60b146104155780633d389faf1461042c57806347fd4ab3146104575780636bf8e9cc14610480576101ee565b80632b96ddbe1461037f5780632d36b92b14610396578063313ce567146103c15780633ab1a494146103ec576101ee565b806318160ddd116101b657806318160ddd146102af5780631a795197146102da5780631d55009a1461031757806323b872dd14610342576101ee565b806306fdde03146101f3578063095ea7b31461021e5780630cc835a31461025b5780631581b60014610284576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b50610208610785565b6040516102159190612588565b60405180910390f35b34801561022a57600080fd5b5061024560048036038101906102409190612652565b610817565b60405161025291906126ad565b60405180910390f35b34801561026757600080fd5b50610282600480360381019061027d91906126c8565b61082e565b005b34801561029057600080fd5b506102996108a0565b6040516102a69190612704565b60405180910390f35b3480156102bb57600080fd5b506102c46108ca565b6040516102d1919061272e565b60405180910390f35b3480156102e657600080fd5b5061030160048036038101906102fc9190612652565b6108d3565b60405161030e919061272e565b60405180910390f35b34801561032357600080fd5b5061032c6108f8565b604051610339919061272e565b60405180910390f35b34801561034e57600080fd5b5061036960048036038101906103649190612749565b6108fe565b60405161037691906126ad565b60405180910390f35b34801561038b57600080fd5b506103946109e4565b005b3480156103a257600080fd5b506103ab610a82565b6040516103b89190612704565b60405180910390f35b3480156103cd57600080fd5b506103d6610aa8565b6040516103e391906127b8565b60405180910390f35b3480156103f857600080fd5b50610413600480360381019061040e91906127d3565b610ab1565b005b34801561042157600080fd5b5061042a610b4f565b005b34801561043857600080fd5b50610441610bb3565b60405161044e91906126ad565b60405180910390f35b34801561046357600080fd5b5061047e6004803603810190610479919061282c565b610bc6565b005b34801561048c57600080fd5b506104a760048036038101906104a29190612859565b610c3d565b005b3480156104b557600080fd5b506104d060048036038101906104cb91906129e1565b610cc7565b005b3480156104de57600080fd5b506104f960048036038101906104f491906127d3565b610db4565b604051610506919061272e565b60405180910390f35b34801561051b57600080fd5b50610536600480360381019061053191906126c8565b610dfd565b005b34801561054457600080fd5b5061054d610e6f565b60405161055a9190612704565b60405180910390f35b34801561056f57600080fd5b50610578610e99565b6040516105859190612588565b60405180910390f35b34801561059a57600080fd5b506105b560048036038101906105b09190612652565b610f2b565b6040516105c291906126ad565b60405180910390f35b3480156105d757600080fd5b506105e0610f42565b6040516105ed919061272e565b60405180910390f35b34801561060257600080fd5b5061061d600480360381019061061891906127d3565b610f48565b005b34801561062b57600080fd5b50610634610fe6565b005b34801561064257600080fd5b5061064b611581565b6040516106589190612704565b60405180910390f35b34801561066d57600080fd5b506106766115a7565b604051610683919061272e565b60405180910390f35b34801561069857600080fd5b506106b360048036038101906106ae9190612a3d565b6115ad565b6040516106c0919061272e565b60405180910390f35b3480156106d557600080fd5b506106de611634565b6040516106eb919061272e565b60405180910390f35b34801561070057600080fd5b5061071b600480360381019061071691906127d3565b61163a565b005b34801561072957600080fd5b506107326116d8565b60405161073f919061272e565b60405180910390f35b34801561075457600080fd5b5061076f600480360381019061076a9190612652565b611742565b60405161077c919061272e565b60405180910390f35b60606001805461079490612aac565b80601f01602080910402602001604051908101604052809291908181526020018280546107c090612aac565b801561080d5780601f106107e25761010080835404028352916020019161080d565b820191906000526020600020905b8154815290600101906020018083116107f057829003601f168201915b5050505050905090565b6000610824338484611767565b6001905092915050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461088857600080fd5b60c881111561089657600080fd5b80600b8190555050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008054905090565b60006103e8600c54836108e69190612b0c565b6108f09190612b95565b905092915050565b600d5481565b600061090b848484611852565b6000600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561099957600080fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81036109ca5760019150506109dd565b6109d78533858403611767565b60019150505b9392505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a3e57600080fd5b6000600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006009905090565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b0b57600080fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ba957600080fd5b610bb1611c80565b565b600760149054906101000a900460ff1681565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c2057600080fd5b80600760146101000a81548160ff02191690831515021790555050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c9757600080fd5b81600d8190555080600e819055506103e8600e54600d54610cb89190612bc6565b1115610cc357600080fd5b5050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d2157600080fd5b60005b8251811015610daf5781600a6000858481518110610d4557610d44612c1c565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080610da890612c4b565b9050610d24565b505050565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610e5757600080fd5b60c8811115610e6557600080fd5b80600c8190555050565b6000600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060028054610ea890612aac565b80601f0160208091040260200160405190810160405280929190818152602001828054610ed490612aac565b8015610f215780601f10610ef657610100808354040283529160200191610f21565b820191906000526020600020905b815481529060010190602001808311610f0457829003601f168201915b5050505050905090565b6000610f38338484611852565b6001905092915050565b600c5481565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610fa257600080fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461104057600080fd5b600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461109b57600080fd5b6000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa1580156110fc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111209190612ca8565b73ffffffffffffffffffffffffffffffffffffffff1663c9c6539630737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561119b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111bf9190612ca8565b6040518363ffffffff1660e01b81526004016111dc929190612cd5565b6020604051808303816000875af11580156111fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061121f9190612ca8565b9050600061122b611ceb565b905080600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516112cf919061272e565b60405180910390a3678ac7230489e80000600360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611381919061272e565b60405180910390a37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d71947308460008033426040518863ffffffff1660e01b81526004016114ef96959493929190612d43565b60606040518083038185885af115801561150d573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906115329190612db9565b50505081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550426011819055505050565b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600b5481565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600e5481565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461169457600080fd5b80600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600080601154036116ed57600054905061173f565b6000603c601054601154426117029190612e0c565b61170c9190612b0c565b6117169190612b95565b600f546117239190612bc6565b905060005481111561173a5760005491505061173f565b809150505b90565b60006103e8600b54836117559190612b0c565b61175f9190612b95565b905092915050565b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611845919061272e565b60405180910390a3505050565b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156118d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118cb90612e8c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611943576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193a90612ef8565b60405180910390fd5b600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156119ea5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611ae457600760149054906101000a900460ff16611a3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3590612f64565b60405180910390fd5b611a49838383611d08565b9050611a536116d8565b81600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611a9e9190612bc6565b1115611adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ad690612fd0565b60405180910390fd5b611c70565b600560009054906101000a900460ff16158015611b505750600073ffffffffffffffffffffffffffffffffffffffff16600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614155b8015611ba95750600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b8015611bff5750600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611c6f57611c0e8382611d27565b9050611c6e81600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054737a250d5630b4cf539739df2c5dacb4c659f2488d611d45565b5b5b611c7b838383611d7c565b505050565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015611ce8573d6000803e3d6000fd5b50565b6000678ac7230489e80000600054611d039190612e0c565b905090565b6000611d1e8483611d198686611742565b611ed4565b90509392505050565b6000611d3d8383611d3886866108d3565b611ed4565b905092915050565b6000820315611d77576000836002611d5d9190612b0c565b905080831115611d6b578092505b611d7583836122e6565b505b505050565b6000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611dcd57600080fd5b818103600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e629190612bc6565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611ec6919061272e565b60405180910390a350505050565b6000806103e8600d5484611ee89190612b0c565b611ef29190612b95565b905060008073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f69576103e8600e5485611f5c9190612b0c565b611f669190612b95565b90505b60006103e8600e54600d54611f7e9190612bc6565b1015611f9e57818386611f919190612e0c565b611f9b9190612e0c565b90505b8486611faa9190612e0c565b955084600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ffb9190612e0c565b9250508190555060008311156120c75782600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461205a9190612bc6565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516120be919061272e565b60405180910390a35b60008211156121d0578160036000600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546121419190612bc6565b92505081905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121c7919061272e565b60405180910390a35b60008111156122d9578060036000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461224a9190612bc6565b92505081905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516122d0919061272e565b60405180910390a35b8593505050509392505050565b6001600560006101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561231e5761231d61289e565b5b60405190808252806020026020018201604052801561234c5781602001602082028036833780820191505090505b509050308160008151811061236457612363612c1c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240d9190612ca8565b8160018151811061242157612420612c1c565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508173ffffffffffffffffffffffffffffffffffffffff166318cbafe58460008430426040518663ffffffff1660e01b815260040161249d9594939291906130ae565b600060405180830381600087803b1580156124b757600080fd5b505af11580156124cb573d6000803e3d6000fd5b50505050506000600560006101000a81548160ff0219169083151502179055505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561252957808201518184015260208101905061250e565b83811115612538576000848401525b50505050565b6000601f19601f8301169050919050565b600061255a826124ef565b61256481856124fa565b935061257481856020860161250b565b61257d8161253e565b840191505092915050565b600060208201905081810360008301526125a2818461254f565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125e9826125be565b9050919050565b6125f9816125de565b811461260457600080fd5b50565b600081359050612616816125f0565b92915050565b6000819050919050565b61262f8161261c565b811461263a57600080fd5b50565b60008135905061264c81612626565b92915050565b60008060408385031215612669576126686125b4565b5b600061267785828601612607565b92505060206126888582860161263d565b9150509250929050565b60008115159050919050565b6126a781612692565b82525050565b60006020820190506126c2600083018461269e565b92915050565b6000602082840312156126de576126dd6125b4565b5b60006126ec8482850161263d565b91505092915050565b6126fe816125de565b82525050565b600060208201905061271960008301846126f5565b92915050565b6127288161261c565b82525050565b6000602082019050612743600083018461271f565b92915050565b600080600060608486031215612762576127616125b4565b5b600061277086828701612607565b935050602061278186828701612607565b92505060406127928682870161263d565b9150509250925092565b600060ff82169050919050565b6127b28161279c565b82525050565b60006020820190506127cd60008301846127a9565b92915050565b6000602082840312156127e9576127e86125b4565b5b60006127f784828501612607565b91505092915050565b61280981612692565b811461281457600080fd5b50565b60008135905061282681612800565b92915050565b600060208284031215612842576128416125b4565b5b600061285084828501612817565b91505092915050565b600080604083850312156128705761286f6125b4565b5b600061287e8582860161263d565b925050602061288f8582860161263d565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6128d68261253e565b810181811067ffffffffffffffff821117156128f5576128f461289e565b5b80604052505050565b60006129086125aa565b905061291482826128cd565b919050565b600067ffffffffffffffff8211156129345761293361289e565b5b602082029050602081019050919050565b600080fd5b600061295d61295884612919565b6128fe565b905080838252602082019050602084028301858111156129805761297f612945565b5b835b818110156129a957806129958882612607565b845260208401935050602081019050612982565b5050509392505050565b600082601f8301126129c8576129c7612899565b5b81356129d884826020860161294a565b91505092915050565b600080604083850312156129f8576129f76125b4565b5b600083013567ffffffffffffffff811115612a1657612a156125b9565b5b612a22858286016129b3565b9250506020612a3385828601612817565b9150509250929050565b60008060408385031215612a5457612a536125b4565b5b6000612a6285828601612607565b9250506020612a7385828601612607565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612ac457607f821691505b602082108103612ad757612ad6612a7d565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612b178261261c565b9150612b228361261c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612b5b57612b5a612add565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612ba08261261c565b9150612bab8361261c565b925082612bbb57612bba612b66565b5b828204905092915050565b6000612bd18261261c565b9150612bdc8361261c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612c1157612c10612add565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612c568261261c565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612c8857612c87612add565b5b600182019050919050565b600081519050612ca2816125f0565b92915050565b600060208284031215612cbe57612cbd6125b4565b5b6000612ccc84828501612c93565b91505092915050565b6000604082019050612cea60008301856126f5565b612cf760208301846126f5565b9392505050565b6000819050919050565b6000819050919050565b6000612d2d612d28612d2384612cfe565b612d08565b61261c565b9050919050565b612d3d81612d12565b82525050565b600060c082019050612d5860008301896126f5565b612d65602083018861271f565b612d726040830187612d34565b612d7f6060830186612d34565b612d8c60808301856126f5565b612d9960a083018461271f565b979650505050505050565b600081519050612db381612626565b92915050565b600080600060608486031215612dd257612dd16125b4565b5b6000612de086828701612da4565b9350506020612df186828701612da4565b9250506040612e0286828701612da4565b9150509250925092565b6000612e178261261c565b9150612e228361261c565b925082821015612e3557612e34612add565b5b828203905092915050565b7f6e6f7420656e6f75676820746f6b656e20666f72207472616e73666572000000600082015250565b6000612e76601d836124fa565b9150612e8182612e40565b602082019050919050565b60006020820190508181036000830152612ea581612e69565b9050919050565b7f696e636f72726563742061646472657373000000000000000000000000000000600082015250565b6000612ee26011836124fa565b9150612eed82612eac565b602082019050919050565b60006020820190508181036000830152612f1181612ed5565b9050919050565b7f74726164696e672064697361626c656400000000000000000000000000000000600082015250565b6000612f4e6010836124fa565b9150612f5982612f18565b602082019050919050565b60006020820190508181036000830152612f7d81612f41565b9050919050565b7f6d61782077616c6c657420636f6e73747261696e740000000000000000000000600082015250565b6000612fba6015836124fa565b9150612fc582612f84565b602082019050919050565b60006020820190508181036000830152612fe981612fad565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613025816125de565b82525050565b6000613037838361301c565b60208301905092915050565b6000602082019050919050565b600061305b82612ff0565b6130658185612ffb565b93506130708361300c565b8060005b838110156130a1578151613088888261302b565b975061309383613043565b925050600181019050613074565b5085935050505092915050565b600060a0820190506130c3600083018861271f565b6130d06020830187612d34565b81810360408301526130e28186613050565b90506130f160608301856126f5565b6130fe608083018461271f565b969550505050505056fea264697066735822122087c2da39c0c05383f6704b51eb317163a769dfbf40532844c7ed5721dc002bad64736f6c634300080f0033

Deployed Bytecode Sourcemap

16057:442:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5317:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6588:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13383:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;919:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5600:102;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13215:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9883:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7017:504;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13876:106;;;;;;;;;;;;;:::i;:::-;;9692:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5507:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;752:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;556:74;;;;;;;;;;;;;:::i;:::-;;9571:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15816:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13990:246;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15565:243;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16334:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13538:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1342:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5410:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5803:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9829:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13698:170;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10885:1010;;;;;;;;;;;;;:::i;:::-;;9538:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9776:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6394:186;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9934:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1234:100;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10542:335;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13049:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5317:85;5356:13;5389:5;5382:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5317:85;:::o;6588:193::-;6692:4;6714:37;6723:10;6735:7;6744:6;6714:8;:37::i;:::-;6769:4;6762:11;;6588:193;;;;:::o;13383:147::-;511:16;;;;;;;;;;;497:30;;:10;:30;;;489:39;;;;;;13483:3:::1;13467:12;:19;;13459:28;;;::::0;::::1;;13510:12;13498:9;:24;;;;13383:147:::0;:::o;919:101::-;969:7;996:16;;;;;;;;;;;989:23;;919:101;:::o;5600:102::-;5655:7;5682:12;;5675:19;;5600:102;:::o;13215:160::-;13307:7;13363:4;13349:10;;13340:6;:19;;;;:::i;:::-;13339:28;;;;:::i;:::-;13332:35;;13215:160;;;;:::o;9883:31::-;;;;:::o;7017:504::-;7151:4;7168:36;7178:6;7186:9;7197:6;7168:9;:36::i;:::-;7217:24;7244:11;:19;7256:6;7244:19;;;;;;;;;;;;;;;:31;7264:10;7244:31;;;;;;;;;;;;;;;;7217:58;;7314:6;7294:16;:26;;7286:35;;;;;;5174:10;7336:16;:38;7332:55;;7383:4;7376:11;;;;;7332:55;7423;7432:6;7440:10;7471:6;7452:16;:25;7423:8;:55::i;:::-;7509:4;7502:11;;;7017:504;;;;;;:::o;13876:106::-;511:16;;;;;;;;;;;497:30;;:10;:30;;;489:39;;;;;;13972:1:::1;13949:12;;:25;;;;;;;;;;;;;;;;;;13876:106::o:0;9692:27::-;;;;;;;;;;;;;:::o;5507:85::-;5550:5;4951:1;5568:16;;5507:85;:::o;752:159::-;511:16;;;;;;;;;;;497:30;;:10;:30;;;489:39;;;;;;885:18:::1;866:16;;:37;;;;;;;;;;;;;;;;;;752:159:::0;:::o;556:74::-;511:16;;;;;;;;;;;497:30;;:10;:30;;;489:39;;;;;;611:11:::1;:9;:11::i;:::-;556:74::o:0;9571:28::-;;;;;;;;;;;;;:::o;15816:89::-;1139:6;;;;;;;;;;;1125:20;;:10;:20;;;1117:29;;;;;;15892:5:::1;15880:9;;:17;;;;;;;;;;;;;;;;;;15816:89:::0;:::o;13990:246::-;511:16;;;;;;;;;;;497:30;;:10;:30;;;489:39;;;;;;14126:12:::1;14114:9;:24;;;;14162:16;14149:10;:29;;;;14223:4;14209:10;;14197:9;;:22;;;;:::i;:::-;:30;;14189:39;;;::::0;::::1;;13990:246:::0;;:::o;15565:243::-;511:16;;;;;;;;;;;497:30;;:10;:30;;;489:39;;;;;;15694:9:::1;15689:112;15713:8;:15;15709:1;:19;15689:112;;;15784:5;15750:18;:31;15769:8;15778:1;15769:11;;;;;;;;:::i;:::-;;;;;;;;15750:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;15730:3;;;;:::i;:::-;;;15689:112;;;;15565:243:::0;;:::o;16334:162::-;16438:7;16470:9;:18;16480:7;16470:18;;;;;;;;;;;;;;;;16463:25;;16334:162;;;:::o;13538:152::-;511:16;;;;;;;;;;;497:30;;:10;:30;;;489:39;;;;;;13641:3:::1;13624:13;:20;;13616:29;;;::::0;::::1;;13669:13;13656:10;:26;;;;13538:152:::0;:::o;1342:81::-;1382:7;1409:6;;;;;;;;;;;1402:13;;1342:81;:::o;5410:89::-;5451:13;5484:7;5477:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5410:89;:::o;5803:199::-;5910:4;5932:40;5942:10;5954:9;5965:6;5932:9;:40::i;:::-;5990:4;5983:11;;5803:199;;;;:::o;9829:30::-;;;;:::o;13698:170::-;511:16;;;;;;;;;;;497:30;;:10;:30;;;489:39;;;;;;13837:23:::1;13822:12;;:38;;;;;;;;;;;;;;;;;;13698:170:::0;:::o;10885:1010::-;1139:6;;;;;;;;;;;1125:20;;:10;:20;;;1117:29;;;;;;10971:1:::1;10948:25;;:11;;;;;;;;;;;:25;;;10940:34;;;::::0;::::1;;10985:12;9488:42;11018:24;;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11000:56;;;11079:4;9488:42;11099:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11000:133;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10985:148;;11144:24;11171:27;:25;:27::i;:::-;11144:54;;11236:16;11209:9;:24;11227:4;11209:24;;;;;;;;;;;;;;;:43;;;;11297:4;11268:53;;11285:1;11268:53;;;11304:16;11268:53;;;;;;:::i;:::-;;;;;;;;11358:4;11334:9;:21;11344:10;11334:21;;;;;;;;;;;;;;;:28;;;;11399:10;11378:50;;11395:1;11378:50;;;11411:16;11378:50;;;;;;:::i;:::-;;;;;;;;5174:10;11441:11;:26;11461:4;11441:26;;;;;;;;;;;;;;;:77;9488:42;11441:77;;;;;;;;;;;;;;;:98;;;;11577:4;11550:18;:24;11569:4;11550:24;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;9488:42;11592:32;;;11632:21;11677:4;11697:16;11728:1;11744::::0;11760:10:::1;11785:15;11592:219;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;11838:4;11824:11;;:18;;;;;;;;;;;;;;;;;;11872:15;11853:16;:34;;;;10929:966;;10885:1010::o:0;9538:26::-;;;;;;;;;;;;;:::o;9776:29::-;;;;:::o;6394:186::-;6513:7;6545:11;:18;6557:5;6545:18;;;;;;;;;;;;;;;:27;6564:7;6545:27;;;;;;;;;;;;;;;;6538:34;;6394:186;;;;:::o;9934:29::-;;;;:::o;1234:100::-;1139:6;;;;;;;;;;;1125:20;;:10;:20;;;1117:29;;;;;;1318:8:::1;1309:6;;:17;;;;;;;;;;;;;;;;;;1234:100:::0;:::o;10542:335::-;10584:7;10628:1;10608:16;;:21;10604:46;;10638:12;;10631:19;;;;10604:46;10661:11;10784:9;10745:21;;10725:16;;10707:15;:34;;;;:::i;:::-;10706:60;;;;:::i;:::-;10705:89;;;;:::i;:::-;10675:14;;:119;;;;:::i;:::-;10661:133;;10815:12;;10809:3;:18;10805:43;;;10836:12;;10829:19;;;;;10805:43;10866:3;10859:10;;;10542:335;;:::o;13049:158::-;13140:7;13195:4;13182:9;;13173:6;:18;;;;:::i;:::-;13172:27;;;;:::i;:::-;13165:34;;13049:158;;;;:::o;6789:220::-;6947:6;6917:11;:18;6929:5;6917:18;;;;;;;;;;;;;;;:27;6936:7;6917:27;;;;;;;;;;;;;;;:36;;;;6985:7;6969:32;;6978:5;6969:32;;;6994:6;6969:32;;;;;;:::i;:::-;;;;;;;;6789:220;;;:::o;11903:1138::-;12054:6;12035:9;:15;12045:4;12035:15;;;;;;;;;;;;;;;;:25;;12027:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12127:1;12113:16;;:2;:16;;;12105:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;12192:11;;;;;;;;;;;12184:19;;:4;:19;;;:46;;;;;12208:18;:22;12227:2;12208:22;;;;;;;;;;;;;;;;;;;;;;;;;12207:23;12184:46;12180:787;;;12255:9;;;;;;;;;;;12247:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12335:28;12346:4;12352:2;12356:6;12335:10;:28::i;:::-;12326:37;;12430:11;:9;:11::i;:::-;12420:6;12404:9;:13;12414:2;12404:13;;;;;;;;;;;;;;;;:22;;;;:::i;:::-;:37;;12378:120;;;;;;;;;;;;:::i;:::-;;;;;;;;;12180:787;;;12561:7;;;;;;;;;;;12560:8;:50;;;;;12608:1;12585:25;;:11;;;;;;;;;;;:25;;;;12560:50;:84;;;;;12633:11;;;;;;;;;;;12627:17;;:2;:17;;;12560:84;:126;;;;;12662:18;:24;12681:4;12662:24;;;;;;;;;;;;;;;;;;;;;;;;;12661:25;12560:126;12542:425;;;12742:25;12754:4;12760:6;12742:11;:25::i;:::-;12733:34;;12810:145;12856:6;12881:9;:24;12899:4;12881:24;;;;;;;;;;;;;;;;9488:42;12810:27;:145::i;:::-;12542:425;12180:787;13000:33;13016:4;13022:2;13026:6;13000:15;:33::i;:::-;11903:1138;;;:::o;638:106::-;687:16;;;;;;;;;;;679:34;;:57;714:21;679:57;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;638:106::o;16162:164::-;16267:7;16314:4;16299:12;;:19;;;;:::i;:::-;16292:26;;16162:164;:::o;14244:196::-;14357:7;14384:48;14396:4;14402:6;14410:21;14420:2;14424:6;14410:9;:21::i;:::-;14384:11;:48::i;:::-;14377:55;;14244:196;;;;;:::o;14448:177::-;14534:7;14566:51;14578:4;14584:6;14592:24;14603:4;14609:6;14592:10;:24::i;:::-;14566:11;:51::i;:::-;14559:58;;14448:177;;;;:::o;3650:379::-;3838:1;3825:9;:14;3821:27;3841:7;3821:27;3858:20;3885:14;3881:1;:18;;;;:::i;:::-;3858:41;;3926:12;3914:9;:24;3910:54;;;3952:12;3940:24;;3910:54;3975:46;3993:9;4004:16;3975:17;:46::i;:::-;3810:219;3650:379;;;;:::o;6010:376::-;6133:21;6157:9;:15;6167:4;6157:15;;;;;;;;;;;;;;;;6133:39;;6208:6;6191:13;:23;;6183:32;;;;;;6285:6;6269:13;:22;6251:9;:15;6261:4;6251:15;;;;;;;;;;;;;;;:40;;;;6330:6;6313:9;:13;6323:2;6313:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;6367:2;6352:26;;6361:4;6352:26;;;6371:6;6352:26;;;;;;:::i;:::-;;;;;;;;6122:264;6010:376;;;:::o;14633:924::-;14748:7;14768:15;14806:4;14793:9;;14787:3;:15;;;;:::i;:::-;14786:24;;;;:::i;:::-;14768:42;;14821:16;14880:1;14856:26;;:12;;;;;;;;;;;:26;;;14852:81;;14929:4;14915:10;;14909:3;:16;;;;:::i;:::-;14908:25;;;;:::i;:::-;14897:36;;14852:81;14944:12;15000:4;14987:10;;14975:9;;:22;;;;:::i;:::-;:29;14971:66;;;15029:8;15019:7;15013:3;:13;;;;:::i;:::-;:24;;;;:::i;:::-;15006:31;;14971:66;15060:3;15050:13;;;;;:::i;:::-;;;15093:3;15074:9;:15;15084:4;15074:15;;;;;;;;;;;;;;;;:22;;;;;;;:::i;:::-;;;;;;;;15123:1;15113:7;:11;15109:137;;;15169:7;15141:9;:24;15159:4;15141:24;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;15219:4;15196:38;;15205:4;15196:38;;;15226:7;15196:38;;;;;;:::i;:::-;;;;;;;;15109:137;15271:1;15260:8;:12;15256:138;;;15316:8;15289:9;:23;15299:12;;;;;;;;;;;15289:23;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;15359:12;;;;;;;;;;;15344:38;;15353:4;15344:38;;;15373:8;15344:38;;;;;;:::i;:::-;;;;;;;;15256:138;15415:1;15408:4;:8;15404:120;;;15457:4;15433:9;:20;15443:9;;;;;;;;;;;15433:20;;;;;;;;;;;;;;;;:28;;;;;;;:::i;:::-;;;;;;;;15496:9;;;;;;;;;;;15481:31;;15490:4;15481:31;;;15507:4;15481:31;;;;;;:::i;:::-;;;;;;;;15404:120;15543:6;15536:13;;;;;14633:924;;;;;:::o;3011:631::-;2953:4;2943:7;;:14;;;;;;;;;;;;;;;;;;3213:21:::1;3251:1;3237:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3213:40;;3282:4;3264;3269:1;3264:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;3308:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3298:4;3303:1;3298:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;::::0;::::1;3422:16;:38;;;3475:11;3501:1;3545:4;3572;3608:15;3422:212;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;3142:500;2990:5:::0;2980:7;;:15;;;;;;;;;;;;;;;;;;3011:631;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:329::-;3553:6;3602:2;3590:9;3581:7;3577:23;3573:32;3570:119;;;3608:79;;:::i;:::-;3570:119;3728:1;3753:53;3798:7;3789:6;3778:9;3774:22;3753:53;:::i;:::-;3743:63;;3699:117;3494:329;;;;:::o;3829:118::-;3916:24;3934:5;3916:24;:::i;:::-;3911:3;3904:37;3829:118;;:::o;3953:222::-;4046:4;4084:2;4073:9;4069:18;4061:26;;4097:71;4165:1;4154:9;4150:17;4141:6;4097:71;:::i;:::-;3953:222;;;;:::o;4181:118::-;4268:24;4286:5;4268:24;:::i;:::-;4263:3;4256:37;4181:118;;:::o;4305:222::-;4398:4;4436:2;4425:9;4421:18;4413:26;;4449:71;4517:1;4506:9;4502:17;4493:6;4449:71;:::i;:::-;4305:222;;;;:::o;4533:619::-;4610:6;4618;4626;4675:2;4663:9;4654:7;4650:23;4646:32;4643:119;;;4681:79;;:::i;:::-;4643:119;4801:1;4826:53;4871:7;4862:6;4851:9;4847:22;4826:53;:::i;:::-;4816:63;;4772:117;4928:2;4954:53;4999:7;4990:6;4979:9;4975:22;4954:53;:::i;:::-;4944:63;;4899:118;5056:2;5082:53;5127:7;5118:6;5107:9;5103:22;5082:53;:::i;:::-;5072:63;;5027:118;4533:619;;;;;:::o;5158:86::-;5193:7;5233:4;5226:5;5222:16;5211:27;;5158:86;;;:::o;5250:112::-;5333:22;5349:5;5333:22;:::i;:::-;5328:3;5321:35;5250:112;;:::o;5368:214::-;5457:4;5495:2;5484:9;5480:18;5472:26;;5508:67;5572:1;5561:9;5557:17;5548:6;5508:67;:::i;:::-;5368:214;;;;:::o;5588:329::-;5647:6;5696:2;5684:9;5675:7;5671:23;5667:32;5664:119;;;5702:79;;:::i;:::-;5664:119;5822:1;5847:53;5892:7;5883:6;5872:9;5868:22;5847:53;:::i;:::-;5837:63;;5793:117;5588:329;;;;:::o;5923:116::-;5993:21;6008:5;5993:21;:::i;:::-;5986:5;5983:32;5973:60;;6029:1;6026;6019:12;5973:60;5923:116;:::o;6045:133::-;6088:5;6126:6;6113:20;6104:29;;6142:30;6166:5;6142:30;:::i;:::-;6045:133;;;;:::o;6184:323::-;6240:6;6289:2;6277:9;6268:7;6264:23;6260:32;6257:119;;;6295:79;;:::i;:::-;6257:119;6415:1;6440:50;6482:7;6473:6;6462:9;6458:22;6440:50;:::i;:::-;6430:60;;6386:114;6184:323;;;;:::o;6513:474::-;6581:6;6589;6638:2;6626:9;6617:7;6613:23;6609:32;6606:119;;;6644:79;;:::i;:::-;6606:119;6764:1;6789:53;6834:7;6825:6;6814:9;6810:22;6789:53;:::i;:::-;6779:63;;6735:117;6891:2;6917:53;6962:7;6953:6;6942:9;6938:22;6917:53;:::i;:::-;6907:63;;6862:118;6513:474;;;;;:::o;6993:117::-;7102:1;7099;7092:12;7116:180;7164:77;7161:1;7154:88;7261:4;7258:1;7251:15;7285:4;7282:1;7275:15;7302:281;7385:27;7407:4;7385:27;:::i;:::-;7377:6;7373:40;7515:6;7503:10;7500:22;7479:18;7467:10;7464:34;7461:62;7458:88;;;7526:18;;:::i;:::-;7458:88;7566:10;7562:2;7555:22;7345:238;7302:281;;:::o;7589:129::-;7623:6;7650:20;;:::i;:::-;7640:30;;7679:33;7707:4;7699:6;7679:33;:::i;:::-;7589:129;;;:::o;7724:311::-;7801:4;7891:18;7883:6;7880:30;7877:56;;;7913:18;;:::i;:::-;7877:56;7963:4;7955:6;7951:17;7943:25;;8023:4;8017;8013:15;8005:23;;7724:311;;;:::o;8041:117::-;8150:1;8147;8140:12;8181:710;8277:5;8302:81;8318:64;8375:6;8318:64;:::i;:::-;8302:81;:::i;:::-;8293:90;;8403:5;8432:6;8425:5;8418:21;8466:4;8459:5;8455:16;8448:23;;8519:4;8511:6;8507:17;8499:6;8495:30;8548:3;8540:6;8537:15;8534:122;;;8567:79;;:::i;:::-;8534:122;8682:6;8665:220;8699:6;8694:3;8691:15;8665:220;;;8774:3;8803:37;8836:3;8824:10;8803:37;:::i;:::-;8798:3;8791:50;8870:4;8865:3;8861:14;8854:21;;8741:144;8725:4;8720:3;8716:14;8709:21;;8665:220;;;8669:21;8283:608;;8181:710;;;;;:::o;8914:370::-;8985:5;9034:3;9027:4;9019:6;9015:17;9011:27;9001:122;;9042:79;;:::i;:::-;9001:122;9159:6;9146:20;9184:94;9274:3;9266:6;9259:4;9251:6;9247:17;9184:94;:::i;:::-;9175:103;;8991:293;8914:370;;;;:::o;9290:678::-;9380:6;9388;9437:2;9425:9;9416:7;9412:23;9408:32;9405:119;;;9443:79;;:::i;:::-;9405:119;9591:1;9580:9;9576:17;9563:31;9621:18;9613:6;9610:30;9607:117;;;9643:79;;:::i;:::-;9607:117;9748:78;9818:7;9809:6;9798:9;9794:22;9748:78;:::i;:::-;9738:88;;9534:302;9875:2;9901:50;9943:7;9934:6;9923:9;9919:22;9901:50;:::i;:::-;9891:60;;9846:115;9290:678;;;;;:::o;9974:474::-;10042:6;10050;10099:2;10087:9;10078:7;10074:23;10070:32;10067:119;;;10105:79;;:::i;:::-;10067:119;10225:1;10250:53;10295:7;10286:6;10275:9;10271:22;10250:53;:::i;:::-;10240:63;;10196:117;10352:2;10378:53;10423:7;10414:6;10403:9;10399:22;10378:53;:::i;:::-;10368:63;;10323:118;9974:474;;;;;:::o;10454:180::-;10502:77;10499:1;10492:88;10599:4;10596:1;10589:15;10623:4;10620:1;10613:15;10640:320;10684:6;10721:1;10715:4;10711:12;10701:22;;10768:1;10762:4;10758:12;10789:18;10779:81;;10845:4;10837:6;10833:17;10823:27;;10779:81;10907:2;10899:6;10896:14;10876:18;10873:38;10870:84;;10926:18;;:::i;:::-;10870:84;10691:269;10640:320;;;:::o;10966:180::-;11014:77;11011:1;11004:88;11111:4;11108:1;11101:15;11135:4;11132:1;11125:15;11152:348;11192:7;11215:20;11233:1;11215:20;:::i;:::-;11210:25;;11249:20;11267:1;11249:20;:::i;:::-;11244:25;;11437:1;11369:66;11365:74;11362:1;11359:81;11354:1;11347:9;11340:17;11336:105;11333:131;;;11444:18;;:::i;:::-;11333:131;11492:1;11489;11485:9;11474:20;;11152:348;;;;:::o;11506:180::-;11554:77;11551:1;11544:88;11651:4;11648:1;11641:15;11675:4;11672:1;11665:15;11692:185;11732:1;11749:20;11767:1;11749:20;:::i;:::-;11744:25;;11783:20;11801:1;11783:20;:::i;:::-;11778:25;;11822:1;11812:35;;11827:18;;:::i;:::-;11812:35;11869:1;11866;11862:9;11857:14;;11692:185;;;;:::o;11883:305::-;11923:3;11942:20;11960:1;11942:20;:::i;:::-;11937:25;;11976:20;11994:1;11976:20;:::i;:::-;11971:25;;12130:1;12062:66;12058:74;12055:1;12052:81;12049:107;;;12136:18;;:::i;:::-;12049:107;12180:1;12177;12173:9;12166:16;;11883:305;;;;:::o;12194:180::-;12242:77;12239:1;12232:88;12339:4;12336:1;12329:15;12363:4;12360:1;12353:15;12380:233;12419:3;12442:24;12460:5;12442:24;:::i;:::-;12433:33;;12488:66;12481:5;12478:77;12475:103;;12558:18;;:::i;:::-;12475:103;12605:1;12598:5;12594:13;12587:20;;12380:233;;;:::o;12619:143::-;12676:5;12707:6;12701:13;12692:22;;12723:33;12750:5;12723:33;:::i;:::-;12619:143;;;;:::o;12768:351::-;12838:6;12887:2;12875:9;12866:7;12862:23;12858:32;12855:119;;;12893:79;;:::i;:::-;12855:119;13013:1;13038:64;13094:7;13085:6;13074:9;13070:22;13038:64;:::i;:::-;13028:74;;12984:128;12768:351;;;;:::o;13125:332::-;13246:4;13284:2;13273:9;13269:18;13261:26;;13297:71;13365:1;13354:9;13350:17;13341:6;13297:71;:::i;:::-;13378:72;13446:2;13435:9;13431:18;13422:6;13378:72;:::i;:::-;13125:332;;;;;:::o;13463:85::-;13508:7;13537:5;13526:16;;13463:85;;;:::o;13554:60::-;13582:3;13603:5;13596:12;;13554:60;;;:::o;13620:158::-;13678:9;13711:61;13729:42;13738:32;13764:5;13738:32;:::i;:::-;13729:42;:::i;:::-;13711:61;:::i;:::-;13698:74;;13620:158;;;:::o;13784:147::-;13879:45;13918:5;13879:45;:::i;:::-;13874:3;13867:58;13784:147;;:::o;13937:807::-;14186:4;14224:3;14213:9;14209:19;14201:27;;14238:71;14306:1;14295:9;14291:17;14282:6;14238:71;:::i;:::-;14319:72;14387:2;14376:9;14372:18;14363:6;14319:72;:::i;:::-;14401:80;14477:2;14466:9;14462:18;14453:6;14401:80;:::i;:::-;14491;14567:2;14556:9;14552:18;14543:6;14491:80;:::i;:::-;14581:73;14649:3;14638:9;14634:19;14625:6;14581:73;:::i;:::-;14664;14732:3;14721:9;14717:19;14708:6;14664:73;:::i;:::-;13937:807;;;;;;;;;:::o;14750:143::-;14807:5;14838:6;14832:13;14823:22;;14854:33;14881:5;14854:33;:::i;:::-;14750:143;;;;:::o;14899:663::-;14987:6;14995;15003;15052:2;15040:9;15031:7;15027:23;15023:32;15020:119;;;15058:79;;:::i;:::-;15020:119;15178:1;15203:64;15259:7;15250:6;15239:9;15235:22;15203:64;:::i;:::-;15193:74;;15149:128;15316:2;15342:64;15398:7;15389:6;15378:9;15374:22;15342:64;:::i;:::-;15332:74;;15287:129;15455:2;15481:64;15537:7;15528:6;15517:9;15513:22;15481:64;:::i;:::-;15471:74;;15426:129;14899:663;;;;;:::o;15568:191::-;15608:4;15628:20;15646:1;15628:20;:::i;:::-;15623:25;;15662:20;15680:1;15662:20;:::i;:::-;15657:25;;15701:1;15698;15695:8;15692:34;;;15706:18;;:::i;:::-;15692:34;15751:1;15748;15744:9;15736:17;;15568:191;;;;:::o;15765:179::-;15905:31;15901:1;15893:6;15889:14;15882:55;15765:179;:::o;15950:366::-;16092:3;16113:67;16177:2;16172:3;16113:67;:::i;:::-;16106:74;;16189:93;16278:3;16189:93;:::i;:::-;16307:2;16302:3;16298:12;16291:19;;15950:366;;;:::o;16322:419::-;16488:4;16526:2;16515:9;16511:18;16503:26;;16575:9;16569:4;16565:20;16561:1;16550:9;16546:17;16539:47;16603:131;16729:4;16603:131;:::i;:::-;16595:139;;16322:419;;;:::o;16747:167::-;16887:19;16883:1;16875:6;16871:14;16864:43;16747:167;:::o;16920:366::-;17062:3;17083:67;17147:2;17142:3;17083:67;:::i;:::-;17076:74;;17159:93;17248:3;17159:93;:::i;:::-;17277:2;17272:3;17268:12;17261:19;;16920:366;;;:::o;17292:419::-;17458:4;17496:2;17485:9;17481:18;17473:26;;17545:9;17539:4;17535:20;17531:1;17520:9;17516:17;17509:47;17573:131;17699:4;17573:131;:::i;:::-;17565:139;;17292:419;;;:::o;17717:166::-;17857:18;17853:1;17845:6;17841:14;17834:42;17717:166;:::o;17889:366::-;18031:3;18052:67;18116:2;18111:3;18052:67;:::i;:::-;18045:74;;18128:93;18217:3;18128:93;:::i;:::-;18246:2;18241:3;18237:12;18230:19;;17889:366;;;:::o;18261:419::-;18427:4;18465:2;18454:9;18450:18;18442:26;;18514:9;18508:4;18504:20;18500:1;18489:9;18485:17;18478:47;18542:131;18668:4;18542:131;:::i;:::-;18534:139;;18261:419;;;:::o;18686:171::-;18826:23;18822:1;18814:6;18810:14;18803:47;18686:171;:::o;18863:366::-;19005:3;19026:67;19090:2;19085:3;19026:67;:::i;:::-;19019:74;;19102:93;19191:3;19102:93;:::i;:::-;19220:2;19215:3;19211:12;19204:19;;18863:366;;;:::o;19235:419::-;19401:4;19439:2;19428:9;19424:18;19416:26;;19488:9;19482:4;19478:20;19474:1;19463:9;19459:17;19452:47;19516:131;19642:4;19516:131;:::i;:::-;19508:139;;19235:419;;;:::o;19660:114::-;19727:6;19761:5;19755:12;19745:22;;19660:114;;;:::o;19780:184::-;19879:11;19913:6;19908:3;19901:19;19953:4;19948:3;19944:14;19929:29;;19780:184;;;;:::o;19970:132::-;20037:4;20060:3;20052:11;;20090:4;20085:3;20081:14;20073:22;;19970:132;;;:::o;20108:108::-;20185:24;20203:5;20185:24;:::i;:::-;20180:3;20173:37;20108:108;;:::o;20222:179::-;20291:10;20312:46;20354:3;20346:6;20312:46;:::i;:::-;20390:4;20385:3;20381:14;20367:28;;20222:179;;;;:::o;20407:113::-;20477:4;20509;20504:3;20500:14;20492:22;;20407:113;;;:::o;20556:732::-;20675:3;20704:54;20752:5;20704:54;:::i;:::-;20774:86;20853:6;20848:3;20774:86;:::i;:::-;20767:93;;20884:56;20934:5;20884:56;:::i;:::-;20963:7;20994:1;20979:284;21004:6;21001:1;20998:13;20979:284;;;21080:6;21074:13;21107:63;21166:3;21151:13;21107:63;:::i;:::-;21100:70;;21193:60;21246:6;21193:60;:::i;:::-;21183:70;;21039:224;21026:1;21023;21019:9;21014:14;;20979:284;;;20983:14;21279:3;21272:10;;20680:608;;;20556:732;;;;:::o;21294:831::-;21557:4;21595:3;21584:9;21580:19;21572:27;;21609:71;21677:1;21666:9;21662:17;21653:6;21609:71;:::i;:::-;21690:80;21766:2;21755:9;21751:18;21742:6;21690:80;:::i;:::-;21817:9;21811:4;21807:20;21802:2;21791:9;21787:18;21780:48;21845:108;21948:4;21939:6;21845:108;:::i;:::-;21837:116;;21963:72;22031:2;22020:9;22016:18;22007:6;21963:72;:::i;:::-;22045:73;22113:3;22102:9;22098:19;22089:6;22045:73;:::i;:::-;21294:831;;;;;;;;:::o

Swarm Source

ipfs://87c2da39c0c05383f6704b51eb317163a769dfbf40532844c7ed5721dc002bad

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.