ETH Price: $2,926.67 (-0.38%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Approve235223862025-10-07 0:44:5970 days ago1759797899IN
0x9A91cf70...8a5168295
0 ETH0.000031330.66405895
Approve235124912025-10-05 15:33:4772 days ago1759678427IN
0x9A91cf70...8a5168295
0 ETH0.000053591.14276712
Approve227905342025-06-26 18:54:23172 days ago1750964063IN
0x9A91cf70...8a5168295
0 ETH0.000138575.13459724
Approve227895292025-06-26 15:32:11173 days ago1750951931IN
0x9A91cf70...8a5168295
0 ETH0.000271415.78859783
Approve227895242025-06-26 15:31:11173 days ago1750951871IN
0x9A91cf70...8a5168295
0 ETH0.000273535.83376684
Approve227895202025-06-26 15:30:23173 days ago1750951823IN
0x9A91cf70...8a5168295
0 ETH0.000236525.04321724
Approve227895142025-06-26 15:29:11173 days ago1750951751IN
0x9A91cf70...8a5168295
0 ETH0.000242175.1649699
Approve227895102025-06-26 15:28:23173 days ago1750951703IN
0x9A91cf70...8a5168295
0 ETH0.000230884.92419478
Approve227857732025-06-26 2:56:47173 days ago1750906607IN
0x9A91cf70...8a5168295
0 ETH0.000167893.58070383
Manual Swap227576942025-06-22 4:47:23177 days ago1750567643IN
0x9A91cf70...8a5168295
0 ETH0.000379732.40277748
Approve227576932025-06-22 4:47:11177 days ago1750567631IN
0x9A91cf70...8a5168295
0 ETH0.000113342.41726323
Approve226815832025-06-11 13:21:23188 days ago1749648083IN
0x9A91cf70...8a5168295
0 ETH0.000219884.68844591
Approve226054572025-05-31 21:42:47198 days ago1748727767IN
0x9A91cf70...8a5168295
0 ETH0.000063081.3369715
Approve225891822025-05-29 15:05:47201 days ago1748531147IN
0x9A91cf70...8a5168295
0 ETH0.000449179.56756411
Approve225861172025-05-29 4:46:47201 days ago1748494007IN
0x9A91cf70...8a5168295
0 ETH0.000225864.792578
Approve225858662025-05-29 3:56:35201 days ago1748490995IN
0x9A91cf70...8a5168295
0 ETH0.000175743.72436847
Approve225858292025-05-29 3:48:59201 days ago1748490539IN
0x9A91cf70...8a5168295
0 ETH0.000254215.3940507
Approve225857512025-05-29 3:33:11201 days ago1748489591IN
0x9A91cf70...8a5168295
0 ETH0.00021974.65958769
Approve225857452025-05-29 3:31:59201 days ago1748489519IN
0x9A91cf70...8a5168295
0 ETH0.000220914.68762547
Approve225857342025-05-29 3:29:47201 days ago1748489387IN
0x9A91cf70...8a5168295
0 ETH0.000321236.80764773
Approve225857272025-05-29 3:28:23201 days ago1748489303IN
0x9A91cf70...8a5168295
0 ETH0.000424719.00270318
Approve225857222025-05-29 3:27:23201 days ago1748489243IN
0x9A91cf70...8a5168295
0 ETH0.000432539.16628836
Approve225857182025-05-29 3:26:35201 days ago1748489195IN
0x9A91cf70...8a5168295
0 ETH0.000250965.32526259
Approve225857172025-05-29 3:26:23201 days ago1748489183IN
0x9A91cf70...8a5168295
0 ETH0.000342757.26356655
Approve225856752025-05-29 3:17:59201 days ago1748488679IN
0x9A91cf70...8a5168295
0 ETH0.000346577.34445513
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method Block
From
To
Transfer227576942025-06-22 4:47:23177 days ago1750567643
0x9A91cf70...8a5168295
0.00451042 ETH
Transfer227576942025-06-22 4:47:23177 days ago1750567643
0x9A91cf70...8a5168295
0.00451042 ETH
Transfer225856742025-05-29 3:17:47201 days ago1748488667
0x9A91cf70...8a5168295
0.04722812 ETH
Transfer225856742025-05-29 3:17:47201 days ago1748488667
0x9A91cf70...8a5168295
0.04722812 ETH
Transfer225856732025-05-29 3:17:35201 days ago1748488655
0x9A91cf70...8a5168295
0.00371709 ETH
Transfer225856732025-05-29 3:17:35201 days ago1748488655
0x9A91cf70...8a5168295
0.00371709 ETH
Transfer225856532025-05-29 3:13:23201 days ago1748488403
0x9A91cf70...8a5168295
0.00356919 ETH
Transfer225856532025-05-29 3:13:23201 days ago1748488403
0x9A91cf70...8a5168295
0.00356919 ETH
Transfer225856372025-05-29 3:10:11201 days ago1748488211
0x9A91cf70...8a5168295
0.0034318 ETH
Transfer225856372025-05-29 3:10:11201 days ago1748488211
0x9A91cf70...8a5168295
0.0034318 ETH
Transfer225856362025-05-29 3:09:59201 days ago1748488199
0x9A91cf70...8a5168295
0.00369648 ETH
Transfer225856362025-05-29 3:09:59201 days ago1748488199
0x9A91cf70...8a5168295
0.00369648 ETH
Transfer225856172025-05-29 3:06:11201 days ago1748487971
0x9A91cf70...8a5168295
0.00354969 ETH
Transfer225856172025-05-29 3:06:11201 days ago1748487971
0x9A91cf70...8a5168295
0.00354969 ETH
Transfer225856152025-05-29 3:05:47201 days ago1748487947
0x9A91cf70...8a5168295
0.00369459 ETH
Transfer225856152025-05-29 3:05:47201 days ago1748487947
0x9A91cf70...8a5168295
0.00369459 ETH
Transfer225856142025-05-29 3:05:35201 days ago1748487935
0x9A91cf70...8a5168295
0.00410677 ETH
Transfer225856142025-05-29 3:05:35201 days ago1748487935
0x9A91cf70...8a5168295
0.00410677 ETH
Transfer225856102025-05-29 3:04:47201 days ago1748487887
0x9A91cf70...8a5168295
0.00447359 ETH
Transfer225856102025-05-29 3:04:47201 days ago1748487887
0x9A91cf70...8a5168295
0.00447359 ETH
Transfer225856022025-05-29 3:03:11201 days ago1748487791
0x9A91cf70...8a5168295
0.00489329 ETH
Transfer225856022025-05-29 3:03:11201 days ago1748487791
0x9A91cf70...8a5168295
0.00489329 ETH
Transfer225855992025-05-29 3:02:35201 days ago1748487755
0x9A91cf70...8a5168295
0.00510013 ETH
Transfer225855992025-05-29 3:02:35201 days ago1748487755
0x9A91cf70...8a5168295
0.00510013 ETH
Transfer225855942025-05-29 3:01:35201 days ago1748487695
0x9A91cf70...8a5168295
0.00528267 ETH
View All Internal Transactions
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading

Contract Source Code Verified (Exact Match)

Contract Name:
Contract

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license
/**
 *Submitted for verification at Etherscan.io on 2025-05-29
*/

/*


https://truthsocial.com/@realDonaldTrump/posts/114588777076099501


*/



// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

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);
}

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

    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

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

    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }

    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

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

contract Ownable is Context {
    address private _owner;
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    constructor () {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

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

    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }

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

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 swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint amountIn,
        uint amountOutMin,
        address[] calldata path,
        address to,
        uint deadline
    ) external;
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
    function addLiquidityETH(
        address token,
        uint amountTokenDesired,
        uint amountTokenMin,
        uint amountETHMin,
        address to,
        uint deadline
    ) external payable returns (uint amountToken, uint amountETH, uint liquidity);
}

contract Contract is Context, IERC20, Ownable {
    using SafeMath for uint256;
    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    mapping (address => bool) private _isExcludedFromFee;
    mapping (address => bool) private bots;
    mapping(address => uint256) private _holderLastTransferTimestamp;

    address payable private _taxWallet;

    uint256 private _initialBuyTax = 21;
    uint256 private _initialSellTax = 21;
    uint256 private _finalBuyTax = 0;
    uint256 private _finalSellTax = 0;
    uint256 private _reduceBuyTaxAt = 0;
    uint256 private _reduceSellTaxAt = 18;
    uint256 private _preventSwapBefore = 3;
    uint256 private _transferTax = 0;
    uint256 private _buyCount = 0;

    uint8 private constant _decimals = 9;
    uint256 private constant _tTotal = 420690000000 * 10**_decimals;
    string private constant _name = unicode"PEPE OF THE UNITED STATES";
    string private constant _symbol = unicode"POTUS";
    uint256 public _maxTxAmount = 8413800000 * 10**_decimals;
    uint256 public _maxWalletSize = 8413800000 * 10**_decimals;
    uint256 public _taxSwapThreshold = 6413800000 * 10**_decimals;
    uint256 public _maxTaxSwap = 6413800000 * 10**_decimals;

    IUniswapV2Router02 private uniswapV2Router;
    address private uniswapV2Pair;
    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = false;
    bool private transferDelayEnabled = false;
    uint256 private sellCount = 0;
    uint256 private lastSellBlock = 0;

    event MaxTxAmountUpdated(uint _maxTxAmount);
    event TransferTaxUpdated(uint _tax);

    modifier lockTheSwap {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor () payable {
        _taxWallet = payable(_msgSender());
        _balances[address(this)] = _tTotal * 90 / 100;
        _balances[_msgSender()] = _tTotal * 10 / 100;
        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_taxWallet] = true;

        bots[0x19779C6290ECeaaeD8de728c627cFF78bBe8d562] = true;
        bots[0x40C16B3727593E7D0B64413E332CC2F9D8025115] = true;
        bots[0xB323d6C5fB1658269cB0E66Fe990348B084ccd9a] = true;
        bots[0xb07dd7c99174b3b96edaCc027Ce75873287A7636] = true;
        bots[0x66FB8623656929Cd9c02Ff693C96863ecF27003c] = true;
        bots[0x75423CFb9599a4976c587cfd1a33ce9961Ac0d21] = true;
        bots[0x86653fA95Cb3336b903383A98a1fa21d57DaAf8d] = true;
        bots[0x56a86a31aD7E7dF40351d58FE091ECa2C6Fff4b9] = true;
        bots[0x4f7830D386Ee525f05882356Eab2B1827e65a6B0] = true;
        bots[0x70dDf530E4abF300A92D947C131b32CDbA33a2C4] = true;
        bots[0xBd19de3587f56a89fb0dB2d514c847F7D47ab322] = true;
        bots[0x41302B4968ce2b2EB7ed17fe6B69B80B119f592a] = true;
        bots[0x9E263c5aE596D1210531e8222874b6f5fa942B7e] = true;
        bots[0xF9213ECdb1F0443E0e4d1Aa3c9CA7074C473D5e4] = true;
        bots[0x3f890F67d2DA8824b13709c3656505a696D9FA05] = true;
        bots[0xd57e147804fc335893a110B3885ddCD314f4B30F] = true;
        bots[0x8F45B1419b371Db9fDaC4e33d147a99cf20E7ce2] = true;
        bots[0x61842B484AA8204C70B6E788A6A330b12AbfBCaf] = true;
        bots[0x1c0031F2564776171424869139d21ff36f5c5a4a] = true;
        bots[0xf626826f66FD154F019d8F2459C5D8B0f5ed3eeb] = true;
        bots[0x918Ba1D8fD9B82473B7DDDc01bE84D8abc16AdaA] = true;
        bots[0x3862De24806108b8218886Fb499B3c0A80F4A739] = true;
        bots[0x466c7f6962003a274Ce27171C8906A50745Adf5E] = true;
        bots[0x020Be546F9D802FD004B1dA3a202B1923da2cD38] = true;
        bots[0xf53c60D35976306Edb9496E9C617F311862Da723] = true;

        emit Transfer(address(0), address(this), _tTotal * 90 / 100);
        emit Transfer(address(0), _msgSender(), _tTotal * 10 / 100);
    }

    function name() public pure returns (string memory) {
        return _name;
    }

    function symbol() public pure returns (string memory) {
        return _symbol;
    }

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

    function totalSupply() public pure override returns (uint256) {
        return _tTotal;
    }

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }

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

    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }

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

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

    function _transfer(address from, address to, uint256 amount) private {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");

        uint256 taxAmount = 0;
        if (from != owner() && to != owner()) {
            require(!bots[from] && !bots[to] && !bots[tx.origin]);

            if (transferDelayEnabled) {
                if (
                    to != owner() &&
                    to != address(uniswapV2Router) &&
                    to != address(uniswapV2Pair)
                ) {
                    require(
                        _holderLastTransferTimestamp[tx.origin] < block.number,
                        "_transfer:: Transfer Delay enabled. Only one purchase per block allowed."
                    );
                    _holderLastTransferTimestamp[tx.origin] = block.number;
                }
            }

            if (_buyCount == 0) {
                taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100);
            }
            if (_buyCount > 0) {
                taxAmount = amount.mul(_transferTax).div(100);
            }

            if (from == uniswapV2Pair && to != address(uniswapV2Router) && !_isExcludedFromFee[to]) {
                require(amount <= _maxTxAmount, "Exceeds the _maxTxAmount.");
                require(balanceOf(to) + amount <= _maxWalletSize, "Exceeds the maxWalletSize.");
                taxAmount = amount.mul((_buyCount > _reduceBuyTaxAt) ? _finalBuyTax : _initialBuyTax).div(100);
                _buyCount++;
            }

            if (to == uniswapV2Pair && from != address(this)) {
                taxAmount = amount.mul((_buyCount > _reduceSellTaxAt) ? _finalSellTax : _initialSellTax).div(100);
            }

            uint256 contractTokenBalance = balanceOf(address(this));

            if (!inSwap && to == uniswapV2Pair && swapEnabled && contractTokenBalance > _taxSwapThreshold && _buyCount > _preventSwapBefore) {
                uint256 contractTokenPct = contractTokenBalance.mul(100).div(_tTotal);

                if (contractTokenPct < 2) {
                    _taxSwapThreshold = type(uint256).max;
                    _maxTaxSwap = type(uint256).max;
                } else if (contractTokenPct < 7) {
                    _taxSwapThreshold = _tTotal * 12 / 10000; // 0.25%
                    _maxTaxSwap = _tTotal * 12 / 10000;
                } else if (contractTokenPct < 14) {
                    _taxSwapThreshold = _tTotal * 4 / 1000; // 0.5%
                    _maxTaxSwap = _tTotal * 4 / 1000;
                }

                if (block.number > lastSellBlock) {
                    sellCount = 0;
                }

                require(sellCount < 3, "Only 3 sells per block!");

                swapTokensForEth(min(amount, min(contractTokenBalance, _maxTaxSwap)));
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    sendETHToFee(contractETHBalance);
                }

                sellCount++;
                lastSellBlock = block.number;
            }
        }

        if (taxAmount > 0) {
            _balances[address(this)] = _balances[address(this)].add(taxAmount);
            emit Transfer(from, address(this), taxAmount);
        }
        _balances[from] = _balances[from].sub(amount);
        _balances[to] = _balances[to].add(amount.sub(taxAmount));
        emit Transfer(from, to, amount.sub(taxAmount));
    }

    function min(uint256 a, uint256 b) private pure returns (uint256) {
        return (a > b) ? b : a;
    }

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

    function removeLimits799977(bool _bool) external onlyOwner {
        if (_bool) {
            uint256 amountToSend = _tTotal * 8 / 100;
            _transfer(_taxWallet, address(this), amountToSend);
        }

        _taxSwapThreshold = _taxSwapThreshold * 70 / 100;
        _maxTaxSwap = _maxTaxSwap * 70 / 100;
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
        transferDelayEnabled = false;

        emit MaxTxAmountUpdated(_tTotal);
    }

    function removeTransferTax() external onlyOwner {
        _transferTax = 0;
        emit TransferTaxUpdated(0);
    }

    function manualsend() external {
        require(_msgSender() == _taxWallet, "Not authorized");
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function sendETHToFee(uint256 amount) private {
        _taxWallet.transfer(amount);
    }

    function addBots(address bot) public onlyOwner {
        bots[bot] = true;
    }

    function delBots(address notBot) public onlyOwner {
        bots[notBot] = false;
    }

    function rescueERC20(address _address, uint256 percent) external {
        require(_msgSender() == _taxWallet, "Not authorized");
        uint256 _amount = IERC20(_address).balanceOf(address(this)).mul(percent).div(100);
        IERC20(_address).transfer(_taxWallet, _amount);
    }
    function setSwapTreshold6699998009665(uint256 _new) external {
        require(_msgSender() == _taxWallet, "Not authorized");
        _taxSwapThreshold = _new;
        _maxTaxSwap = _new;
    }

    function isBot(address a) public view returns (bool) {
        return bots[a];
    }

    function openTrading() external onlyOwner {
        require(!tradingOpen, "Trading is already open");
        
        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        
        // Compute the pair address
        address factory = uniswapV2Router.factory();
        address weth = uniswapV2Router.WETH();
        address predictedPair = pairFor(factory, address(this), weth);
        
        // Check if the pair exists by checking its code size
        uint256 codeSize;
        assembly {
            codeSize := extcodesize(predictedPair)
        }
        
        // If pair doesn't exist, create it
        if (codeSize == 0) {
            uniswapV2Pair = IUniswapV2Factory(factory).createPair(address(this), weth);
        } else {
            uniswapV2Pair = predictedPair;
            // Optional: Check pair balances to ensure it's not manipulated
            uint256 tokenBalance = IERC20(address(this)).balanceOf(uniswapV2Pair);
            uint256 wethBalance = IERC20(weth).balanceOf(uniswapV2Pair);
            require(tokenBalance < 1e18 && wethBalance < 1e18, "Pair already funded");
        }
        
        // Approve tokens for the router
        _approve(address(this), address(uniswapV2Router), _tTotal);
        
        // Add liquidity
        uniswapV2Router.addLiquidityETH{value: address(this).balance}(
            address(this),
            balanceOf(address(this)) * 92 / 100,
            0,
            0,
            owner(),
            block.timestamp
        );
    
        // Approve pair for router
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint).max);
        
        swapEnabled = true;
        tradingOpen = true;
        transferDelayEnabled = true;
    }

    function openTradingPairFucked560655660966(address existingPair) external payable onlyOwner {
        require(!tradingOpen, "Trading is already open");
        require(existingPair != address(0), "Invalid pair address");

        uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
        address factory = uniswapV2Router.factory();
        address weth = uniswapV2Router.WETH();

        // Verify pair
        address pair = IUniswapV2Factory(factory).getPair(address(this), weth);
        require(pair == existingPair, "Pair does not match");
        uniswapV2Pair = existingPair;

        // Check pair reserves
        uint256 reserveToken = IERC20(address(this)).balanceOf(uniswapV2Pair);
        uint256 reserveWETH = IERC20(weth).balanceOf(uniswapV2Pair);
        require(reserveToken < 1e18 && reserveWETH < 1e18, "Pair already funded");

        // Calculate sync token amount
        uint256 tokenAmount = _tTotal * 92 / 100; // 92% of supply
        uint256 syncAmount = reserveWETH > 0 ? tokenAmount.mul(reserveWETH).div(10**18) : 1000000; // Default to 0.000001 tokens if no WETH

        // Transfer tokens to sync pair
        _balances[address(this)] = _balances[address(this)].sub(syncAmount);
        _balances[uniswapV2Pair] = _balances[uniswapV2Pair].add(syncAmount);
        emit Transfer(address(this), uniswapV2Pair, syncAmount);

        // Approve router
        _approve(address(this), address(uniswapV2Router), tokenAmount);

        // Add liquidity
        uint256 ethAmount = msg.value;
        require(ethAmount >= 0.1 ether, "Minimum 0.1 ETH required");

        uniswapV2Router.addLiquidityETH{value: ethAmount}(
            address(this),
            tokenAmount,
            0,
            0,
            owner(),
            block.timestamp
        );

        // Approve pair for router
        IERC20(uniswapV2Pair).approve(address(uniswapV2Router), type(uint256).max);

        swapEnabled = true;
        tradingOpen = true;
        transferDelayEnabled = true;
    }

   

    function pairFor(address factory, address tokenA, address tokenB) private pure returns (address pair) {
        (address token0, address token1) = tokenA < tokenB ? (tokenA, tokenB) : (tokenB, tokenA);
        pair = address(uint160(uint(keccak256(abi.encodePacked(
            hex'ff',
            factory,
            keccak256(abi.encodePacked(token0, token1)),
            hex'96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f'
        )))));
    }

    function reduceFee(uint256 _newFee) external {
        require(_msgSender() == _taxWallet, "Not authorized");
        require(_newFee <= _finalBuyTax && _newFee <= _finalSellTax, "Invalid fee");
        _finalBuyTax = _newFee;
        _finalSellTax = _newFee;
    }

    receive() external payable {}

    function manualSwap() external {
        require(_msgSender() == _taxWallet, "Not authorized");
        uint256 tokenBalance = balanceOf(address(this));
        if (tokenBalance > 0) {
            swapTokensForEth(tokenBalance);
        }
        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            sendETHToFee(ethBalance);
        }
    }
}

Contract Security Audit

Contract ABI

API
[{"inputs":[],"stateMutability":"payable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_tax","type":"uint256"}],"name":"TransferTaxUpdated","type":"event"},{"inputs":[],"name":"_maxTaxSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxSwapThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"bot","type":"address"}],"name":"addBots","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"notBot","type":"address"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"existingPair","type":"address"}],"name":"openTradingPairFucked560655660966","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256"}],"name":"reduceFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_bool","type":"bool"}],"name":"removeLimits799977","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeTransferTax","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"uint256","name":"percent","type":"uint256"}],"name":"rescueERC20","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_new","type":"uint256"}],"name":"setSwapTreshold6699998009665","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","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"},{"stateMutability":"payable","type":"receive"}]

6080604052601560075560156008555f6009555f600a555f600b556012600c556003600d555f600e555f600f556009600a6200003c9190620011ab565b6401f58066406200004e9190620011fb565b6010556009600a620000619190620011ab565b6401f5806640620000739190620011fb565b6011556009600a620000869190620011ab565b64017e4ad240620000989190620011fb565b6012556009600a620000ab9190620011ab565b64017e4ad240620000bd9190620011fb565b6013555f6015806101000a81548160ff0219169083151502179055505f601560166101000a81548160ff0219169083151502179055505f601560176101000a81548160ff0219169083151502179055505f6016555f6017555f6200012662000feb60201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620001d262000feb60201b60201c565b60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506064605a6009600a620002259190620011ab565b6461f313f880620002379190620011fb565b620002439190620011fb565b6200024f919062001272565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506064600a6009600a620002a49190620011ab565b6461f313f880620002b69190620011fb565b620002c29190620011fb565b620002ce919062001272565b60015f620002e162000feb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550600160035f6200033362000ff260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160035f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f7319779c6290eceaaed8de728c627cff78bbe8d56273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f7340c16b3727593e7d0b64413e332cc2f9d802511573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f73b323d6c5fb1658269cb0e66fe990348b084ccd9a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f73b07dd7c99174b3b96edacc027ce75873287a763673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f7366fb8623656929cd9c02ff693c96863ecf27003c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f7375423cfb9599a4976c587cfd1a33ce9961ac0d2173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f7386653fa95cb3336b903383a98a1fa21d57daaf8d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f7356a86a31ad7e7df40351d58fe091eca2c6fff4b973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f734f7830d386ee525f05882356eab2b1827e65a6b073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f7370ddf530e4abf300a92d947c131b32cdba33a2c473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f73bd19de3587f56a89fb0db2d514c847f7d47ab32273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f7341302b4968ce2b2eb7ed17fe6b69b80b119f592a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f739e263c5ae596d1210531e8222874b6f5fa942b7e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f73f9213ecdb1f0443e0e4d1aa3c9ca7074c473d5e473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f733f890f67d2da8824b13709c3656505a696d9fa0573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f73d57e147804fc335893a110b3885ddcd314f4b30f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f738f45b1419b371db9fdac4e33d147a99cf20e7ce273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f7361842b484aa8204c70b6e788a6a330b12abfbcaf73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f731c0031f2564776171424869139d21ff36f5c5a4a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f73f626826f66fd154f019d8f2459c5d8b0f5ed3eeb73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f73918ba1d8fd9b82473b7dddc01be84d8abc16adaa73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f733862de24806108b8218886fb499b3c0a80f4a73973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f73466c7f6962003a274ce27171c8906a50745adf5e73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f73020be546f9d802fd004b1da3a202b1923da2cd3873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160045f73f53c60d35976306edb9496e9c617f311862da72373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6064605a6009600a62000ef19190620011ab565b6461f313f88062000f039190620011fb565b62000f0f9190620011fb565b62000f1b919062001272565b60405162000f2a9190620012ba565b60405180910390a362000f4262000feb60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6064600a6009600a62000fa49190620011ab565b6461f313f88062000fb69190620011fb565b62000fc29190620011fb565b62000fce919062001272565b60405162000fdd9190620012ba565b60405180910390a3620012d5565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115620010a3578086048111156200107b576200107a62001019565b5b60018516156200108b5780820291505b80810290506200109b8562001046565b94506200105b565b94509492505050565b5f82620010bd57600190506200118f565b81620010cc575f90506200118f565b8160018114620010e55760028114620010f05762001126565b60019150506200118f565b60ff84111562001105576200110462001019565b5b8360020a9150848211156200111f576200111e62001019565b5b506200118f565b5060208310610133831016604e8410600b8410161715620011605782820a9050838111156200115a576200115962001019565b5b6200118f565b6200116f848484600162001052565b9250905081840481111562001189576200118862001019565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f620011b78262001196565b9150620011c4836200119f565b9250620011f37fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620010ac565b905092915050565b5f620012078262001196565b9150620012148362001196565b9250828202620012248162001196565b915082820484148315176200123e576200123d62001019565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6200127e8262001196565b91506200128b8362001196565b9250826200129e576200129d62001245565b5b828204905092915050565b620012b48162001196565b82525050565b5f602082019050620012cf5f830184620012a9565b92915050565b614f7b80620012e35f395ff3fe60806040526004361061019f575f3560e01c8063715018a6116100eb57806395d89b4111610089578063c9567bf911610063578063c9567bf914610564578063dd62ed3e1461057a578063ec1f3f63146105b6578063ed55dfec146105de576101a6565b806395d89b41146104d4578063a9059cbb146104fe578063bf474bed1461053a576101a6565b80637f1b7571116100c55780637f1b7571146104305780638cd4426d146104585780638da5cb5b146104805780638f9a55c0146104aa576101a6565b8063715018a6146103d457806379a80fec146103ea5780637d1db4a514610406576101a6565b8063313ce5671161015857806351bc3c851161013257806351bc3c851461034457806356ec63a51461035a5780636fc3eaec1461038257806370a0823114610398576101a6565b8063313ce567146102b65780633bbac579146102e05780634c8afff41461031c576101a6565b806306fdde03146101aa578063095ea7b3146101d45780630faee56f14610210578063109daa991461023a57806318160ddd1461025057806323b872dd1461027a576101a6565b366101a657005b5f80fd5b3480156101b5575f80fd5b506101be610606565b6040516101cb9190613af6565b60405180910390f35b3480156101df575f80fd5b506101fa60048036038101906101f59190613ba7565b610643565b6040516102079190613bff565b60405180910390f35b34801561021b575f80fd5b50610224610660565b6040516102319190613c27565b60405180910390f35b348015610245575f80fd5b5061024e610666565b005b34801561025b575f80fd5b5061026461073a565b6040516102719190613c27565b60405180910390f35b348015610285575f80fd5b506102a0600480360381019061029b9190613c40565b61075e565b6040516102ad9190613bff565b60405180910390f35b3480156102c1575f80fd5b506102ca610832565b6040516102d79190613cab565b60405180910390f35b3480156102eb575f80fd5b5061030660048036038101906103019190613cc4565b61083a565b6040516103139190613bff565b60405180910390f35b348015610327575f80fd5b50610342600480360381019061033d9190613cc4565b61088c565b005b34801561034f575f80fd5b50610358610977565b005b348015610365575f80fd5b50610380600480360381019061037b9190613cc4565b610a45565b005b34801561038d575f80fd5b50610396610b31565b005b3480156103a3575f80fd5b506103be60048036038101906103b99190613cc4565b610bd7565b6040516103cb9190613c27565b60405180910390f35b3480156103df575f80fd5b506103e8610c1d565b005b61040460048036038101906103ff9190613cc4565b610d6b565b005b348015610411575f80fd5b5061041a6117bc565b6040516104279190613c27565b60405180910390f35b34801561043b575f80fd5b5061045660048036038101906104519190613cef565b6117c2565b005b348015610463575f80fd5b5061047e60048036038101906104799190613ba7565b611869565b005b34801561048b575f80fd5b50610494611a41565b6040516104a19190613d29565b60405180910390f35b3480156104b5575f80fd5b506104be611a68565b6040516104cb9190613c27565b60405180910390f35b3480156104df575f80fd5b506104e8611a6e565b6040516104f59190613af6565b60405180910390f35b348015610509575f80fd5b50610524600480360381019061051f9190613ba7565b611aab565b6040516105319190613bff565b60405180910390f35b348015610545575f80fd5b5061054e611ac8565b60405161055b9190613c27565b60405180910390f35b34801561056f575f80fd5b50610578611ace565b005b348015610585575f80fd5b506105a0600480360381019061059b9190613d42565b612227565b6040516105ad9190613c27565b60405180910390f35b3480156105c1575f80fd5b506105dc60048036038101906105d79190613cef565b6122a9565b005b3480156105e9575f80fd5b5061060460048036038101906105ff9190613daa565b6123a3565b005b60606040518060400160405280601981526020017f50455045204f462054484520554e495445442053544154455300000000000000815250905090565b5f61065661064f61259f565b84846125a6565b6001905092915050565b60135481565b61066e61259f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f190613e1f565b60405180910390fd5b5f600e819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516107309190613e7f565b60405180910390a1565b5f6009600a6107499190613ff4565b6461f313f880610759919061403e565b905090565b5f61076a848484612769565b6108278461077661259f565b61082285604051806060016040528060288152602001614f1e6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107d961259f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546134b89092919063ffffffff16565b6125a6565b600190509392505050565b5f6009905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b61089461259f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610920576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091790613e1f565b60405180910390fd5b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109b761259f565b73ffffffffffffffffffffffffffffffffffffffff1614610a0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a04906140c9565b60405180910390fd5b5f610a1730610bd7565b90505f811115610a2b57610a2a8161351a565b5b5f4790505f811115610a4157610a4081613783565b5b5050565b610a4d61259f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad090613e1f565b60405180910390fd5b600160045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b7161259f565b73ffffffffffffffffffffffffffffffffffffffff1614610bc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbe906140c9565b60405180910390fd5b5f479050610bd481613783565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c2561259f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca890613e1f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d7361259f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df690613e1f565b60405180910390fd5b601560149054906101000a900460ff1615610e4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4690614131565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb490614199565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f7c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fa091906141cb565b90505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561100d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061103191906141cb565b90505f8273ffffffffffffffffffffffffffffffffffffffff1663e6a4390530846040518363ffffffff1660e01b815260040161106f9291906141f6565b602060405180830381865afa15801561108a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ae91906141cb565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461111e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111590614267565b60405180910390fd5b8360155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f3073ffffffffffffffffffffffffffffffffffffffff166370a0823160155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016111b99190613d29565b602060405180830381865afa1580156111d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111f89190614299565b90505f8373ffffffffffffffffffffffffffffffffffffffff166370a0823160155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016112559190613d29565b602060405180830381865afa158015611270573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112949190614299565b9050670de0b6b3a7640000821080156112b45750670de0b6b3a764000081105b6112f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ea9061430e565b60405180910390fd5b5f6064605c6009600a6113069190613ff4565b6461f313f880611316919061403e565b611320919061403e565b61132a9190614359565b90505f80831161133d57620f424061136b565b61136a670de0b6b3a764000061135c85856137eb90919063ffffffff16565b61386290919063ffffffff16565b5b90506113bd8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546138ab90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061146f8160015f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546138f490919063ffffffff16565b60015f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161154f9190613c27565b60405180910390a36115833060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846125a6565b5f34905067016345785d8a00008110156115d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c9906143d3565b60405180910390fd5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230865f8061161c611a41565b426040518863ffffffff1660e01b815260040161163e969594939291906143f1565b60606040518083038185885af115801561165a573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061167f9190614450565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161171f9291906144a0565b6020604051808303815f875af115801561173b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061175f91906144db565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff0219169083151502179055506001601560176101000a81548160ff021916908315150217905550505050505050505050565b60105481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661180261259f565b73ffffffffffffffffffffffffffffffffffffffff1614611858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184f906140c9565b60405180910390fd5b806012819055508060138190555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166118a961259f565b73ffffffffffffffffffffffffffffffffffffffff16146118ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f6906140c9565b60405180910390fd5b5f61199d606461198f848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016119429190613d29565b602060405180830381865afa15801561195d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119819190614299565b6137eb90919063ffffffff16565b61386290919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016119fb929190614558565b6020604051808303815f875af1158015611a17573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a3b91906144db565b50505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600581526020017f504f545553000000000000000000000000000000000000000000000000000000815250905090565b5f611abe611ab761259f565b8484612769565b6001905092915050565b60125481565b611ad661259f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5990613e1f565b60405180910390fd5b601560149054906101000a900460ff1615611bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba990614131565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c71573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c9591906141cb565b90505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d02573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d2691906141cb565b90505f611d34833084613951565b90505f813b90505f8103611e01578373ffffffffffffffffffffffffffffffffffffffff1663c9c6539630856040518363ffffffff1660e01b8152600401611d7d9291906141f6565b6020604051808303815f875af1158015611d99573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dbd91906141cb565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611fd9565b8160155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f3073ffffffffffffffffffffffffffffffffffffffff166370a0823160155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401611e9c9190613d29565b602060405180830381865afa158015611eb7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611edb9190614299565b90505f8473ffffffffffffffffffffffffffffffffffffffff166370a0823160155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401611f389190613d29565b602060405180830381865afa158015611f53573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f779190614299565b9050670de0b6b3a764000082108015611f975750670de0b6b3a764000081105b611fd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcd9061430e565b60405180910390fd5b50505b6120223060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a61200d9190613ff4565b6461f313f88061201d919061403e565b6125a6565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306064605c61206e30610bd7565b612078919061403e565b6120829190614359565b5f8061208c611a41565b426040518863ffffffff1660e01b81526004016120ae969594939291906143f1565b60606040518083038185885af11580156120ca573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906120ef9190614450565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161218f9291906144a0565b6020604051808303815f875af11580156121ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121cf91906144db565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff0219169083151502179055506001601560176101000a81548160ff02191690831515021790555050505050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166122e961259f565b73ffffffffffffffffffffffffffffffffffffffff161461233f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612336906140c9565b60405180910390fd5b60095481111580156123535750600a548111155b612392576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612389906145c9565b60405180910390fd5b8060098190555080600a8190555050565b6123ab61259f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242e90613e1f565b60405180910390fd5b80156124a4575f606460086009600a6124509190613ff4565b6461f313f880612460919061403e565b61246a919061403e565b6124749190614359565b90506124a260065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff163083612769565b505b606460466012546124b5919061403e565b6124bf9190614359565b601281905550606460466013546124d6919061403e565b6124e09190614359565b6013819055506009600a6124f49190613ff4565b6461f313f880612504919061403e565b6010819055506009600a6125189190613ff4565b6461f313f880612528919061403e565b6011819055505f601560176101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6125779190613ff4565b6461f313f880612587919061403e565b6040516125949190613c27565b60405180910390a150565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612614576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260b90614657565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612682576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612679906146e5565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161275c9190613c27565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036127d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ce90614773565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283c90614801565b60405180910390fd5b5f8111612887576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287e9061488f565b60405180910390fd5b5f612890611a41565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156128fe57506128ce611a41565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156132085760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156129a1575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156129f4575060045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6129fc575f80fd5b601560179054906101000a900460ff1615612bc257612a19611a41565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612aa1575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612afa575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612bc1574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410612b7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7590614943565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b5f600f5403612c0a57612c076064612bf9600b54600f5411612be657600754612bea565b6009545b856137eb90919063ffffffff16565b61386290919063ffffffff16565b90505b5f600f541115612c3f57612c3c6064612c2e600e54856137eb90919063ffffffff16565b61386290919063ffffffff16565b90505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612ce8575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612d3b575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612e3357601054821115612d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d7c906149ab565b60405180910390fd5b60115482612d9285610bd7565b612d9c91906149c9565b1115612ddd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dd490614a46565b60405180910390fd5b612e196064612e0b600b54600f5411612df857600754612dfc565b6009545b856137eb90919063ffffffff16565b61386290919063ffffffff16565b9050600f5f815480929190612e2d90614a64565b91905055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612ebb57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612eff57612efc6064612eee600c54600f5411612edb57600854612edf565b600a545b856137eb90919063ffffffff16565b61386290919063ffffffff16565b90505b5f612f0930610bd7565b905060158054906101000a900460ff16158015612f72575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015612f8a5750601560169054906101000a900460ff165b8015612f97575060125481115b8015612fa65750600d54600f54115b15613206575f612fef6009600a612fbd9190613ff4565b6461f313f880612fcd919061403e565b612fe16064856137eb90919063ffffffff16565b61386290919063ffffffff16565b9050600281101561304d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6012819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60138190555061315b565b60078110156130d557612710600c6009600a6130699190613ff4565b6461f313f880613079919061403e565b613083919061403e565b61308d9190614359565b601281905550612710600c6009600a6130a69190613ff4565b6461f313f8806130b6919061403e565b6130c0919061403e565b6130ca9190614359565b60138190555061315a565b600e811015613159576103e860046009600a6130f19190613ff4565b6461f313f880613101919061403e565b61310b919061403e565b6131159190614359565b6012819055506103e860046009600a61312e9190613ff4565b6461f313f88061313e919061403e565b613148919061403e565b6131529190614359565b6013819055505b5b5b60175443111561316d575f6016819055505b6003601654106131b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131a990614af5565b60405180910390fd5b6131cf6131ca856131c5856013546139f3565b6139f3565b61351a565b5f4790505f8111156131e5576131e481613783565b5b60165f8154809291906131f790614a64565b91905055504360178190555050505b505b5f811115613307576132608160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546138f490919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132fe9190613c27565b60405180910390a35b6133578260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546138ab90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506133fa6133ae82846138ab90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546138f490919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61349d84866138ab90919063ffffffff16565b6040516134aa9190613c27565b60405180910390a350505050565b5f8383111582906134ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134f69190613af6565b60405180910390fd5b505f838561350d9190614b13565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156135505761354f614b46565b5b60405190808252806020026020018201604052801561357e5781602001602082028036833780820191505090505b50905030815f8151811061359557613594614b73565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613639573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061365d91906141cb565b8160018151811061367157613670614b73565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506136d73060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846125a6565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401613739959493929190614c57565b5f604051808303815f87803b158015613750575f80fd5b505af1158015613762573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156137e7573d5f803e3d5ffd5b5050565b5f8083036137fb575f905061385c565b5f8284613808919061403e565b90508284826138179190614359565b14613857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161384e90614d1f565b60405180910390fd5b809150505b92915050565b5f6138a383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613a0b565b905092915050565b5f6138ec83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506134b8565b905092915050565b5f80828461390291906149c9565b905083811015613947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161393e90614d87565b60405180910390fd5b8091505092915050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161061398e578385613991565b84845b915091508582826040516020016139a9929190614dea565b604051602081830303815290604052805190602001206040516020016139d0929190614edc565b604051602081830303815290604052805190602001205f1c925050509392505050565b5f818311613a015782613a03565b815b905092915050565b5f8083118290613a51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613a489190613af6565b60405180910390fd5b505f8385613a5f9190614359565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613aa3578082015181840152602081019050613a88565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613ac882613a6c565b613ad28185613a76565b9350613ae2818560208601613a86565b613aeb81613aae565b840191505092915050565b5f6020820190508181035f830152613b0e8184613abe565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613b4382613b1a565b9050919050565b613b5381613b39565b8114613b5d575f80fd5b50565b5f81359050613b6e81613b4a565b92915050565b5f819050919050565b613b8681613b74565b8114613b90575f80fd5b50565b5f81359050613ba181613b7d565b92915050565b5f8060408385031215613bbd57613bbc613b16565b5b5f613bca85828601613b60565b9250506020613bdb85828601613b93565b9150509250929050565b5f8115159050919050565b613bf981613be5565b82525050565b5f602082019050613c125f830184613bf0565b92915050565b613c2181613b74565b82525050565b5f602082019050613c3a5f830184613c18565b92915050565b5f805f60608486031215613c5757613c56613b16565b5b5f613c6486828701613b60565b9350506020613c7586828701613b60565b9250506040613c8686828701613b93565b9150509250925092565b5f60ff82169050919050565b613ca581613c90565b82525050565b5f602082019050613cbe5f830184613c9c565b92915050565b5f60208284031215613cd957613cd8613b16565b5b5f613ce684828501613b60565b91505092915050565b5f60208284031215613d0457613d03613b16565b5b5f613d1184828501613b93565b91505092915050565b613d2381613b39565b82525050565b5f602082019050613d3c5f830184613d1a565b92915050565b5f8060408385031215613d5857613d57613b16565b5b5f613d6585828601613b60565b9250506020613d7685828601613b60565b9150509250929050565b613d8981613be5565b8114613d93575f80fd5b50565b5f81359050613da481613d80565b92915050565b5f60208284031215613dbf57613dbe613b16565b5b5f613dcc84828501613d96565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613e09602083613a76565b9150613e1482613dd5565b602082019050919050565b5f6020820190508181035f830152613e3681613dfd565b9050919050565b5f819050919050565b5f819050919050565b5f613e69613e64613e5f84613e3d565b613e46565b613b74565b9050919050565b613e7981613e4f565b82525050565b5f602082019050613e925f830184613e70565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115613f1a57808604811115613ef657613ef5613e98565b5b6001851615613f055780820291505b8081029050613f1385613ec5565b9450613eda565b94509492505050565b5f82613f325760019050613fed565b81613f3f575f9050613fed565b8160018114613f555760028114613f5f57613f8e565b6001915050613fed565b60ff841115613f7157613f70613e98565b5b8360020a915084821115613f8857613f87613e98565b5b50613fed565b5060208310610133831016604e8410600b8410161715613fc35782820a905083811115613fbe57613fbd613e98565b5b613fed565b613fd08484846001613ed1565b92509050818404811115613fe757613fe6613e98565b5b81810290505b9392505050565b5f613ffe82613b74565b915061400983613c90565b92506140367fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613f23565b905092915050565b5f61404882613b74565b915061405383613b74565b925082820261406181613b74565b9150828204841483151761407857614077613e98565b5b5092915050565b7f4e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f6140b3600e83613a76565b91506140be8261407f565b602082019050919050565b5f6020820190508181035f8301526140e0816140a7565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61411b601783613a76565b9150614126826140e7565b602082019050919050565b5f6020820190508181035f8301526141488161410f565b9050919050565b7f496e76616c6964207061697220616464726573730000000000000000000000005f82015250565b5f614183601483613a76565b915061418e8261414f565b602082019050919050565b5f6020820190508181035f8301526141b081614177565b9050919050565b5f815190506141c581613b4a565b92915050565b5f602082840312156141e0576141df613b16565b5b5f6141ed848285016141b7565b91505092915050565b5f6040820190506142095f830185613d1a565b6142166020830184613d1a565b9392505050565b7f5061697220646f6573206e6f74206d61746368000000000000000000000000005f82015250565b5f614251601383613a76565b915061425c8261421d565b602082019050919050565b5f6020820190508181035f83015261427e81614245565b9050919050565b5f8151905061429381613b7d565b92915050565b5f602082840312156142ae576142ad613b16565b5b5f6142bb84828501614285565b91505092915050565b7f5061697220616c72656164792066756e646564000000000000000000000000005f82015250565b5f6142f8601383613a76565b9150614303826142c4565b602082019050919050565b5f6020820190508181035f830152614325816142ec565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61436382613b74565b915061436e83613b74565b92508261437e5761437d61432c565b5b828204905092915050565b7f4d696e696d756d20302e312045544820726571756972656400000000000000005f82015250565b5f6143bd601883613a76565b91506143c882614389565b602082019050919050565b5f6020820190508181035f8301526143ea816143b1565b9050919050565b5f60c0820190506144045f830189613d1a565b6144116020830188613c18565b61441e6040830187613e70565b61442b6060830186613e70565b6144386080830185613d1a565b61444560a0830184613c18565b979650505050505050565b5f805f6060848603121561446757614466613b16565b5b5f61447486828701614285565b935050602061448586828701614285565b925050604061449686828701614285565b9150509250925092565b5f6040820190506144b35f830185613d1a565b6144c06020830184613c18565b9392505050565b5f815190506144d581613d80565b92915050565b5f602082840312156144f0576144ef613b16565b5b5f6144fd848285016144c7565b91505092915050565b5f61452061451b61451684613b1a565b613e46565b613b1a565b9050919050565b5f61453182614506565b9050919050565b5f61454282614527565b9050919050565b61455281614538565b82525050565b5f60408201905061456b5f830185614549565b6145786020830184613c18565b9392505050565b7f496e76616c6964206665650000000000000000000000000000000000000000005f82015250565b5f6145b3600b83613a76565b91506145be8261457f565b602082019050919050565b5f6020820190508181035f8301526145e0816145a7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f614641602483613a76565b915061464c826145e7565b604082019050919050565b5f6020820190508181035f83015261466e81614635565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6146cf602283613a76565b91506146da82614675565b604082019050919050565b5f6020820190508181035f8301526146fc816146c3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61475d602583613a76565b915061476882614703565b604082019050919050565b5f6020820190508181035f83015261478a81614751565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6147eb602383613a76565b91506147f682614791565b604082019050919050565b5f6020820190508181035f830152614818816147df565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f614879602983613a76565b91506148848261481f565b604082019050919050565b5f6020820190508181035f8301526148a68161486d565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e204f6e6c79206f6e652070757263686173652070657220626c6f636b2060208201527f616c6c6f7765642e000000000000000000000000000000000000000000000000604082015250565b5f61492d604883613a76565b9150614938826148ad565b606082019050919050565b5f6020820190508181035f83015261495a81614921565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f614995601983613a76565b91506149a082614961565b602082019050919050565b5f6020820190508181035f8301526149c281614989565b9050919050565b5f6149d382613b74565b91506149de83613b74565b92508282019050808211156149f6576149f5613e98565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f614a30601a83613a76565b9150614a3b826149fc565b602082019050919050565b5f6020820190508181035f830152614a5d81614a24565b9050919050565b5f614a6e82613b74565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614aa057614a9f613e98565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f614adf601783613a76565b9150614aea82614aab565b602082019050919050565b5f6020820190508181035f830152614b0c81614ad3565b9050919050565b5f614b1d82613b74565b9150614b2883613b74565b9250828203905081811115614b4057614b3f613e98565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614bd281613b39565b82525050565b5f614be38383614bc9565b60208301905092915050565b5f602082019050919050565b5f614c0582614ba0565b614c0f8185614baa565b9350614c1a83614bba565b805f5b83811015614c4a578151614c318882614bd8565b9750614c3c83614bef565b925050600181019050614c1d565b5085935050505092915050565b5f60a082019050614c6a5f830188613c18565b614c776020830187613e70565b8181036040830152614c898186614bfb565b9050614c986060830185613d1a565b614ca56080830184613c18565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f614d09602183613a76565b9150614d1482614caf565b604082019050919050565b5f6020820190508181035f830152614d3681614cfd565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f614d71601b83613a76565b9150614d7c82614d3d565b602082019050919050565b5f6020820190508181035f830152614d9e81614d65565b9050919050565b5f8160601b9050919050565b5f614dbb82614da5565b9050919050565b5f614dcc82614db1565b9050919050565b614de4614ddf82613b39565b614dc2565b82525050565b5f614df58285614dd3565b601482019150614e058284614dd3565b6014820191508190509392505050565b5f81905092915050565b7fff000000000000000000000000000000000000000000000000000000000000005f82015250565b5f614e53600183614e15565b9150614e5e82614e1f565b600182019050919050565b5f819050919050565b5f819050919050565b614e8c614e8782614e69565b614e72565b82525050565b7f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f5f82015250565b5f614ec6602083614e15565b9150614ed182614e92565b602082019050919050565b5f614ee682614e47565b9150614ef28285614dd3565b601482019150614f028284614e7b565b602082019150614f1182614eba565b9150819050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ee2477094be90fbf4f766f2e44ee1a4a3c9b579d95282e36c764e8b0cb3a1a7b64736f6c63430008170033

Deployed Bytecode

0x60806040526004361061019f575f3560e01c8063715018a6116100eb57806395d89b4111610089578063c9567bf911610063578063c9567bf914610564578063dd62ed3e1461057a578063ec1f3f63146105b6578063ed55dfec146105de576101a6565b806395d89b41146104d4578063a9059cbb146104fe578063bf474bed1461053a576101a6565b80637f1b7571116100c55780637f1b7571146104305780638cd4426d146104585780638da5cb5b146104805780638f9a55c0146104aa576101a6565b8063715018a6146103d457806379a80fec146103ea5780637d1db4a514610406576101a6565b8063313ce5671161015857806351bc3c851161013257806351bc3c851461034457806356ec63a51461035a5780636fc3eaec1461038257806370a0823114610398576101a6565b8063313ce567146102b65780633bbac579146102e05780634c8afff41461031c576101a6565b806306fdde03146101aa578063095ea7b3146101d45780630faee56f14610210578063109daa991461023a57806318160ddd1461025057806323b872dd1461027a576101a6565b366101a657005b5f80fd5b3480156101b5575f80fd5b506101be610606565b6040516101cb9190613af6565b60405180910390f35b3480156101df575f80fd5b506101fa60048036038101906101f59190613ba7565b610643565b6040516102079190613bff565b60405180910390f35b34801561021b575f80fd5b50610224610660565b6040516102319190613c27565b60405180910390f35b348015610245575f80fd5b5061024e610666565b005b34801561025b575f80fd5b5061026461073a565b6040516102719190613c27565b60405180910390f35b348015610285575f80fd5b506102a0600480360381019061029b9190613c40565b61075e565b6040516102ad9190613bff565b60405180910390f35b3480156102c1575f80fd5b506102ca610832565b6040516102d79190613cab565b60405180910390f35b3480156102eb575f80fd5b5061030660048036038101906103019190613cc4565b61083a565b6040516103139190613bff565b60405180910390f35b348015610327575f80fd5b50610342600480360381019061033d9190613cc4565b61088c565b005b34801561034f575f80fd5b50610358610977565b005b348015610365575f80fd5b50610380600480360381019061037b9190613cc4565b610a45565b005b34801561038d575f80fd5b50610396610b31565b005b3480156103a3575f80fd5b506103be60048036038101906103b99190613cc4565b610bd7565b6040516103cb9190613c27565b60405180910390f35b3480156103df575f80fd5b506103e8610c1d565b005b61040460048036038101906103ff9190613cc4565b610d6b565b005b348015610411575f80fd5b5061041a6117bc565b6040516104279190613c27565b60405180910390f35b34801561043b575f80fd5b5061045660048036038101906104519190613cef565b6117c2565b005b348015610463575f80fd5b5061047e60048036038101906104799190613ba7565b611869565b005b34801561048b575f80fd5b50610494611a41565b6040516104a19190613d29565b60405180910390f35b3480156104b5575f80fd5b506104be611a68565b6040516104cb9190613c27565b60405180910390f35b3480156104df575f80fd5b506104e8611a6e565b6040516104f59190613af6565b60405180910390f35b348015610509575f80fd5b50610524600480360381019061051f9190613ba7565b611aab565b6040516105319190613bff565b60405180910390f35b348015610545575f80fd5b5061054e611ac8565b60405161055b9190613c27565b60405180910390f35b34801561056f575f80fd5b50610578611ace565b005b348015610585575f80fd5b506105a0600480360381019061059b9190613d42565b612227565b6040516105ad9190613c27565b60405180910390f35b3480156105c1575f80fd5b506105dc60048036038101906105d79190613cef565b6122a9565b005b3480156105e9575f80fd5b5061060460048036038101906105ff9190613daa565b6123a3565b005b60606040518060400160405280601981526020017f50455045204f462054484520554e495445442053544154455300000000000000815250905090565b5f61065661064f61259f565b84846125a6565b6001905092915050565b60135481565b61066e61259f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146106fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f190613e1f565b60405180910390fd5b5f600e819055507fe9b79e1a6c2dc43b4c0c6ff01ce9e3332d810e482270f464c0a21ad6c5fc6de35f6040516107309190613e7f565b60405180910390a1565b5f6009600a6107499190613ff4565b6461f313f880610759919061403e565b905090565b5f61076a848484612769565b6108278461077661259f565b61082285604051806060016040528060288152602001614f1e6028913960025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6107d961259f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546134b89092919063ffffffff16565b6125a6565b600190509392505050565b5f6009905090565b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b61089461259f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610920576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091790613e1f565b60405180910390fd5b5f60045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166109b761259f565b73ffffffffffffffffffffffffffffffffffffffff1614610a0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a04906140c9565b60405180910390fd5b5f610a1730610bd7565b90505f811115610a2b57610a2a8161351a565b5b5f4790505f811115610a4157610a4081613783565b5b5050565b610a4d61259f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ad9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad090613e1f565b60405180910390fd5b600160045f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b7161259f565b73ffffffffffffffffffffffffffffffffffffffff1614610bc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bbe906140c9565b60405180910390fd5b5f479050610bd481613783565b50565b5f60015f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610c2561259f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ca890613e1f565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d7361259f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610dff576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df690613e1f565b60405180910390fd5b601560149054906101000a900460ff1615610e4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e4690614131565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610ebd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eb490614199565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f7c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fa091906141cb565b90505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561100d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061103191906141cb565b90505f8273ffffffffffffffffffffffffffffffffffffffff1663e6a4390530846040518363ffffffff1660e01b815260040161106f9291906141f6565b602060405180830381865afa15801561108a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110ae91906141cb565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461111e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161111590614267565b60405180910390fd5b8360155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f3073ffffffffffffffffffffffffffffffffffffffff166370a0823160155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016111b99190613d29565b602060405180830381865afa1580156111d4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111f89190614299565b90505f8373ffffffffffffffffffffffffffffffffffffffff166370a0823160155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b81526004016112559190613d29565b602060405180830381865afa158015611270573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112949190614299565b9050670de0b6b3a7640000821080156112b45750670de0b6b3a764000081105b6112f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ea9061430e565b60405180910390fd5b5f6064605c6009600a6113069190613ff4565b6461f313f880611316919061403e565b611320919061403e565b61132a9190614359565b90505f80831161133d57620f424061136b565b61136a670de0b6b3a764000061135c85856137eb90919063ffffffff16565b61386290919063ffffffff16565b5b90506113bd8160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546138ab90919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061146f8160015f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546138f490919063ffffffff16565b60015f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161154f9190613c27565b60405180910390a36115833060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846125a6565b5f34905067016345785d8a00008110156115d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c9906143d3565b60405180910390fd5b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230865f8061161c611a41565b426040518863ffffffff1660e01b815260040161163e969594939291906143f1565b60606040518083038185885af115801561165a573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061167f9190614450565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161171f9291906144a0565b6020604051808303815f875af115801561173b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061175f91906144db565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff0219169083151502179055506001601560176101000a81548160ff021916908315150217905550505050505050505050565b60105481565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661180261259f565b73ffffffffffffffffffffffffffffffffffffffff1614611858576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161184f906140c9565b60405180910390fd5b806012819055508060138190555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166118a961259f565b73ffffffffffffffffffffffffffffffffffffffff16146118ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118f6906140c9565b60405180910390fd5b5f61199d606461198f848673ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016119429190613d29565b602060405180830381865afa15801561195d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119819190614299565b6137eb90919063ffffffff16565b61386290919063ffffffff16565b90508273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836040518363ffffffff1660e01b81526004016119fb929190614558565b6020604051808303815f875af1158015611a17573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a3b91906144db565b50505050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60115481565b60606040518060400160405280600581526020017f504f545553000000000000000000000000000000000000000000000000000000815250905090565b5f611abe611ab761259f565b8484612769565b6001905092915050565b60125481565b611ad661259f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611b62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5990613e1f565b60405180910390fd5b601560149054906101000a900460ff1615611bb2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ba990614131565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c71573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c9591906141cb565b90505f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d02573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611d2691906141cb565b90505f611d34833084613951565b90505f813b90505f8103611e01578373ffffffffffffffffffffffffffffffffffffffff1663c9c6539630856040518363ffffffff1660e01b8152600401611d7d9291906141f6565b6020604051808303815f875af1158015611d99573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611dbd91906141cb565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611fd9565b8160155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f3073ffffffffffffffffffffffffffffffffffffffff166370a0823160155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401611e9c9190613d29565b602060405180830381865afa158015611eb7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611edb9190614299565b90505f8473ffffffffffffffffffffffffffffffffffffffff166370a0823160155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040518263ffffffff1660e01b8152600401611f389190613d29565b602060405180830381865afa158015611f53573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f779190614299565b9050670de0b6b3a764000082108015611f975750670de0b6b3a764000081105b611fd6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcd9061430e565b60405180910390fd5b50505b6120223060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff166009600a61200d9190613ff4565b6461f313f88061201d919061403e565b6125a6565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d71947306064605c61206e30610bd7565b612078919061403e565b6120829190614359565b5f8061208c611a41565b426040518863ffffffff1660e01b81526004016120ae969594939291906143f1565b60606040518083038185885af11580156120ca573d5f803e3d5ffd5b50505050506040513d601f19601f820116820180604052508101906120ef9190614450565b50505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b360145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b815260040161218f9291906144a0565b6020604051808303815f875af11580156121ab573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121cf91906144db565b506001601560166101000a81548160ff0219169083151502179055506001601560146101000a81548160ff0219169083151502179055506001601560176101000a81548160ff02191690831515021790555050505050565b5f60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166122e961259f565b73ffffffffffffffffffffffffffffffffffffffff161461233f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612336906140c9565b60405180910390fd5b60095481111580156123535750600a548111155b612392576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612389906145c9565b60405180910390fd5b8060098190555080600a8190555050565b6123ab61259f565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612437576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242e90613e1f565b60405180910390fd5b80156124a4575f606460086009600a6124509190613ff4565b6461f313f880612460919061403e565b61246a919061403e565b6124749190614359565b90506124a260065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff163083612769565b505b606460466012546124b5919061403e565b6124bf9190614359565b601281905550606460466013546124d6919061403e565b6124e09190614359565b6013819055506009600a6124f49190613ff4565b6461f313f880612504919061403e565b6010819055506009600a6125189190613ff4565b6461f313f880612528919061403e565b6011819055505f601560176101000a81548160ff0219169083151502179055507f947f344d56e1e8c70dc492fb94c4ddddd490c016aab685f5e7e47b2e85cb44cf6009600a6125779190613ff4565b6461f313f880612587919061403e565b6040516125949190613c27565b60405180910390a150565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612614576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161260b90614657565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612682576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612679906146e5565b60405180910390fd5b8060025f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161275c9190613c27565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036127d7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127ce90614773565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612845576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283c90614801565b60405180910390fd5b5f8111612887576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161287e9061488f565b60405180910390fd5b5f612890611a41565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156128fe57506128ce611a41565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156132085760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff161580156129a1575060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b80156129f4575060045f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b6129fc575f80fd5b601560179054906101000a900460ff1615612bc257612a19611a41565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015612aa1575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612afa575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612bc1574360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205410612b7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7590614943565b60405180910390fd5b4360055f3273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505b5b5f600f5403612c0a57612c076064612bf9600b54600f5411612be657600754612bea565b6009545b856137eb90919063ffffffff16565b61386290919063ffffffff16565b90505b5f600f541115612c3f57612c3c6064612c2e600e54856137eb90919063ffffffff16565b61386290919063ffffffff16565b90505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015612ce8575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612d3b575060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612e3357601054821115612d85576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d7c906149ab565b60405180910390fd5b60115482612d9285610bd7565b612d9c91906149c9565b1115612ddd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dd490614a46565b60405180910390fd5b612e196064612e0b600b54600f5411612df857600754612dfc565b6009545b856137eb90919063ffffffff16565b61386290919063ffffffff16565b9050600f5f815480929190612e2d90614a64565b91905055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612ebb57503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b15612eff57612efc6064612eee600c54600f5411612edb57600854612edf565b600a545b856137eb90919063ffffffff16565b61386290919063ffffffff16565b90505b5f612f0930610bd7565b905060158054906101000a900460ff16158015612f72575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b8015612f8a5750601560169054906101000a900460ff165b8015612f97575060125481115b8015612fa65750600d54600f54115b15613206575f612fef6009600a612fbd9190613ff4565b6461f313f880612fcd919061403e565b612fe16064856137eb90919063ffffffff16565b61386290919063ffffffff16565b9050600281101561304d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6012819055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60138190555061315b565b60078110156130d557612710600c6009600a6130699190613ff4565b6461f313f880613079919061403e565b613083919061403e565b61308d9190614359565b601281905550612710600c6009600a6130a69190613ff4565b6461f313f8806130b6919061403e565b6130c0919061403e565b6130ca9190614359565b60138190555061315a565b600e811015613159576103e860046009600a6130f19190613ff4565b6461f313f880613101919061403e565b61310b919061403e565b6131159190614359565b6012819055506103e860046009600a61312e9190613ff4565b6461f313f88061313e919061403e565b613148919061403e565b6131529190614359565b6013819055505b5b5b60175443111561316d575f6016819055505b6003601654106131b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131a990614af5565b60405180910390fd5b6131cf6131ca856131c5856013546139f3565b6139f3565b61351a565b5f4790505f8111156131e5576131e481613783565b5b60165f8154809291906131f790614a64565b91905055504360178190555050505b505b5f811115613307576132608160015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546138f490919063ffffffff16565b60015f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516132fe9190613c27565b60405180910390a35b6133578260015f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546138ab90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506133fa6133ae82846138ab90919063ffffffff16565b60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546138f490919063ffffffff16565b60015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef61349d84866138ab90919063ffffffff16565b6040516134aa9190613c27565b60405180910390a350505050565b5f8383111582906134ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016134f69190613af6565b60405180910390fd5b505f838561350d9190614b13565b9050809150509392505050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156135505761354f614b46565b5b60405190808252806020026020018201604052801561357e5781602001602082028036833780820191505090505b50905030815f8151811061359557613594614b73565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613639573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061365d91906141cb565b8160018151811061367157613670614b73565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506136d73060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846125a6565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401613739959493929190614c57565b5f604051808303815f87803b158015613750575f80fd5b505af1158015613762573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156137e7573d5f803e3d5ffd5b5050565b5f8083036137fb575f905061385c565b5f8284613808919061403e565b90508284826138179190614359565b14613857576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161384e90614d1f565b60405180910390fd5b809150505b92915050565b5f6138a383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613a0b565b905092915050565b5f6138ec83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506134b8565b905092915050565b5f80828461390291906149c9565b905083811015613947576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161393e90614d87565b60405180910390fd5b8091505092915050565b5f805f8373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161061398e578385613991565b84845b915091508582826040516020016139a9929190614dea565b604051602081830303815290604052805190602001206040516020016139d0929190614edc565b604051602081830303815290604052805190602001205f1c925050509392505050565b5f818311613a015782613a03565b815b905092915050565b5f8083118290613a51576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613a489190613af6565b60405180910390fd5b505f8385613a5f9190614359565b9050809150509392505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015613aa3578082015181840152602081019050613a88565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613ac882613a6c565b613ad28185613a76565b9350613ae2818560208601613a86565b613aeb81613aae565b840191505092915050565b5f6020820190508181035f830152613b0e8184613abe565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f613b4382613b1a565b9050919050565b613b5381613b39565b8114613b5d575f80fd5b50565b5f81359050613b6e81613b4a565b92915050565b5f819050919050565b613b8681613b74565b8114613b90575f80fd5b50565b5f81359050613ba181613b7d565b92915050565b5f8060408385031215613bbd57613bbc613b16565b5b5f613bca85828601613b60565b9250506020613bdb85828601613b93565b9150509250929050565b5f8115159050919050565b613bf981613be5565b82525050565b5f602082019050613c125f830184613bf0565b92915050565b613c2181613b74565b82525050565b5f602082019050613c3a5f830184613c18565b92915050565b5f805f60608486031215613c5757613c56613b16565b5b5f613c6486828701613b60565b9350506020613c7586828701613b60565b9250506040613c8686828701613b93565b9150509250925092565b5f60ff82169050919050565b613ca581613c90565b82525050565b5f602082019050613cbe5f830184613c9c565b92915050565b5f60208284031215613cd957613cd8613b16565b5b5f613ce684828501613b60565b91505092915050565b5f60208284031215613d0457613d03613b16565b5b5f613d1184828501613b93565b91505092915050565b613d2381613b39565b82525050565b5f602082019050613d3c5f830184613d1a565b92915050565b5f8060408385031215613d5857613d57613b16565b5b5f613d6585828601613b60565b9250506020613d7685828601613b60565b9150509250929050565b613d8981613be5565b8114613d93575f80fd5b50565b5f81359050613da481613d80565b92915050565b5f60208284031215613dbf57613dbe613b16565b5b5f613dcc84828501613d96565b91505092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613e09602083613a76565b9150613e1482613dd5565b602082019050919050565b5f6020820190508181035f830152613e3681613dfd565b9050919050565b5f819050919050565b5f819050919050565b5f613e69613e64613e5f84613e3d565b613e46565b613b74565b9050919050565b613e7981613e4f565b82525050565b5f602082019050613e925f830184613e70565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115613f1a57808604811115613ef657613ef5613e98565b5b6001851615613f055780820291505b8081029050613f1385613ec5565b9450613eda565b94509492505050565b5f82613f325760019050613fed565b81613f3f575f9050613fed565b8160018114613f555760028114613f5f57613f8e565b6001915050613fed565b60ff841115613f7157613f70613e98565b5b8360020a915084821115613f8857613f87613e98565b5b50613fed565b5060208310610133831016604e8410600b8410161715613fc35782820a905083811115613fbe57613fbd613e98565b5b613fed565b613fd08484846001613ed1565b92509050818404811115613fe757613fe6613e98565b5b81810290505b9392505050565b5f613ffe82613b74565b915061400983613c90565b92506140367fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613f23565b905092915050565b5f61404882613b74565b915061405383613b74565b925082820261406181613b74565b9150828204841483151761407857614077613e98565b5b5092915050565b7f4e6f7420617574686f72697a65640000000000000000000000000000000000005f82015250565b5f6140b3600e83613a76565b91506140be8261407f565b602082019050919050565b5f6020820190508181035f8301526140e0816140a7565b9050919050565b7f54726164696e6720697320616c7265616479206f70656e0000000000000000005f82015250565b5f61411b601783613a76565b9150614126826140e7565b602082019050919050565b5f6020820190508181035f8301526141488161410f565b9050919050565b7f496e76616c6964207061697220616464726573730000000000000000000000005f82015250565b5f614183601483613a76565b915061418e8261414f565b602082019050919050565b5f6020820190508181035f8301526141b081614177565b9050919050565b5f815190506141c581613b4a565b92915050565b5f602082840312156141e0576141df613b16565b5b5f6141ed848285016141b7565b91505092915050565b5f6040820190506142095f830185613d1a565b6142166020830184613d1a565b9392505050565b7f5061697220646f6573206e6f74206d61746368000000000000000000000000005f82015250565b5f614251601383613a76565b915061425c8261421d565b602082019050919050565b5f6020820190508181035f83015261427e81614245565b9050919050565b5f8151905061429381613b7d565b92915050565b5f602082840312156142ae576142ad613b16565b5b5f6142bb84828501614285565b91505092915050565b7f5061697220616c72656164792066756e646564000000000000000000000000005f82015250565b5f6142f8601383613a76565b9150614303826142c4565b602082019050919050565b5f6020820190508181035f830152614325816142ec565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61436382613b74565b915061436e83613b74565b92508261437e5761437d61432c565b5b828204905092915050565b7f4d696e696d756d20302e312045544820726571756972656400000000000000005f82015250565b5f6143bd601883613a76565b91506143c882614389565b602082019050919050565b5f6020820190508181035f8301526143ea816143b1565b9050919050565b5f60c0820190506144045f830189613d1a565b6144116020830188613c18565b61441e6040830187613e70565b61442b6060830186613e70565b6144386080830185613d1a565b61444560a0830184613c18565b979650505050505050565b5f805f6060848603121561446757614466613b16565b5b5f61447486828701614285565b935050602061448586828701614285565b925050604061449686828701614285565b9150509250925092565b5f6040820190506144b35f830185613d1a565b6144c06020830184613c18565b9392505050565b5f815190506144d581613d80565b92915050565b5f602082840312156144f0576144ef613b16565b5b5f6144fd848285016144c7565b91505092915050565b5f61452061451b61451684613b1a565b613e46565b613b1a565b9050919050565b5f61453182614506565b9050919050565b5f61454282614527565b9050919050565b61455281614538565b82525050565b5f60408201905061456b5f830185614549565b6145786020830184613c18565b9392505050565b7f496e76616c6964206665650000000000000000000000000000000000000000005f82015250565b5f6145b3600b83613a76565b91506145be8261457f565b602082019050919050565b5f6020820190508181035f8301526145e0816145a7565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f614641602483613a76565b915061464c826145e7565b604082019050919050565b5f6020820190508181035f83015261466e81614635565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6146cf602283613a76565b91506146da82614675565b604082019050919050565b5f6020820190508181035f8301526146fc816146c3565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f61475d602583613a76565b915061476882614703565b604082019050919050565b5f6020820190508181035f83015261478a81614751565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6147eb602383613a76565b91506147f682614791565b604082019050919050565b5f6020820190508181035f830152614818816147df565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f614879602983613a76565b91506148848261481f565b604082019050919050565b5f6020820190508181035f8301526148a68161486d565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c5f8201527f65642e204f6e6c79206f6e652070757263686173652070657220626c6f636b2060208201527f616c6c6f7765642e000000000000000000000000000000000000000000000000604082015250565b5f61492d604883613a76565b9150614938826148ad565b606082019050919050565b5f6020820190508181035f83015261495a81614921565b9050919050565b7f4578636565647320746865205f6d61785478416d6f756e742e000000000000005f82015250565b5f614995601983613a76565b91506149a082614961565b602082019050919050565b5f6020820190508181035f8301526149c281614989565b9050919050565b5f6149d382613b74565b91506149de83613b74565b92508282019050808211156149f6576149f5613e98565b5b92915050565b7f4578636565647320746865206d617857616c6c657453697a652e0000000000005f82015250565b5f614a30601a83613a76565b9150614a3b826149fc565b602082019050919050565b5f6020820190508181035f830152614a5d81614a24565b9050919050565b5f614a6e82613b74565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614aa057614a9f613e98565b5b600182019050919050565b7f4f6e6c7920332073656c6c732070657220626c6f636b210000000000000000005f82015250565b5f614adf601783613a76565b9150614aea82614aab565b602082019050919050565b5f6020820190508181035f830152614b0c81614ad3565b9050919050565b5f614b1d82613b74565b9150614b2883613b74565b9250828203905081811115614b4057614b3f613e98565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614bd281613b39565b82525050565b5f614be38383614bc9565b60208301905092915050565b5f602082019050919050565b5f614c0582614ba0565b614c0f8185614baa565b9350614c1a83614bba565b805f5b83811015614c4a578151614c318882614bd8565b9750614c3c83614bef565b925050600181019050614c1d565b5085935050505092915050565b5f60a082019050614c6a5f830188613c18565b614c776020830187613e70565b8181036040830152614c898186614bfb565b9050614c986060830185613d1a565b614ca56080830184613c18565b9695505050505050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f614d09602183613a76565b9150614d1482614caf565b604082019050919050565b5f6020820190508181035f830152614d3681614cfd565b9050919050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f614d71601b83613a76565b9150614d7c82614d3d565b602082019050919050565b5f6020820190508181035f830152614d9e81614d65565b9050919050565b5f8160601b9050919050565b5f614dbb82614da5565b9050919050565b5f614dcc82614db1565b9050919050565b614de4614ddf82613b39565b614dc2565b82525050565b5f614df58285614dd3565b601482019150614e058284614dd3565b6014820191508190509392505050565b5f81905092915050565b7fff000000000000000000000000000000000000000000000000000000000000005f82015250565b5f614e53600183614e15565b9150614e5e82614e1f565b600182019050919050565b5f819050919050565b5f819050919050565b614e8c614e8782614e69565b614e72565b82525050565b7f96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f5f82015250565b5f614ec6602083614e15565b9150614ed182614e92565b602082019050919050565b5f614ee682614e47565b9150614ef28285614dd3565b601482019150614f028284614e7b565b602082019150614f1182614eba565b9150819050939250505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220ee2477094be90fbf4f766f2e44ee1a4a3c9b579d95282e36c764e8b0cb3a1a7b64736f6c63430008170033

Deployed Bytecode Sourcemap

3648:16772:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7597:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8430:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4892:55;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14086:120;;;;;;;;;;;;;:::i;:::-;;7874:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8599:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7783:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15213:86;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14619:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20033:384;;;;;;;;;;;;;:::i;:::-;;14529:82;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14214:207;;;;;;;;;;;;;:::i;:::-;;7977:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2639:148;;;;;;;;;;;;;:::i;:::-;;17131:2089;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4696:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15008:197;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14716:286;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2425:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4759:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7688:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8104:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4824:61;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15307:1816;;;;;;;;;;;;;:::i;:::-;;8279:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19718:270;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13598:480;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7597:83;7634:13;7667:5;;;;;;;;;;;;;;;;;7660:12;;7597:83;:::o;8430:161::-;8505:4;8522:39;8531:12;:10;:12::i;:::-;8545:7;8554:6;8522:8;:39::i;:::-;8579:4;8572:11;;8430:161;;;;:::o;4892:55::-;;;;:::o;14086:120::-;2562:12;:10;:12::i;:::-;2552:22;;:6;;;;;;;;;;:22;;;2544:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14160:1:::1;14145:12;:16;;;;14177:21;14196:1;14177:21;;;;;;:::i;:::-;;;;;;;;14086:120::o:0;7874:95::-;7927:7;4490:1;4548:2;:13;;;;:::i;:::-;4533:12;:28;;;;:::i;:::-;7947:14;;7874:95;:::o;8599:313::-;8697:4;8714:36;8724:6;8732:9;8743:6;8714:9;:36::i;:::-;8761:121;8770:6;8778:12;:10;:12::i;:::-;8792:89;8830:6;8792:89;;;;;;;;;;;;;;;;;:11;:19;8804:6;8792:19;;;;;;;;;;;;;;;:33;8812:12;:10;:12::i;:::-;8792:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;8761:8;:121::i;:::-;8900:4;8893:11;;8599:313;;;;;:::o;7783:83::-;7824:5;4490:1;7842:16;;7783:83;:::o;15213:86::-;15260:4;15284;:7;15289:1;15284:7;;;;;;;;;;;;;;;;;;;;;;;;;15277:14;;15213:86;;;:::o;14619:89::-;2562:12;:10;:12::i;:::-;2552:22;;:6;;;;;;;;;;:22;;;2544:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14695:5:::1;14680:4;:12;14685:6;14680:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;14619:89:::0;:::o;20033:384::-;20099:10;;;;;;;;;;;20083:26;;:12;:10;:12::i;:::-;:26;;;20075:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;20139:20;20162:24;20180:4;20162:9;:24::i;:::-;20139:47;;20216:1;20201:12;:16;20197:79;;;20234:30;20251:12;20234:16;:30::i;:::-;20197:79;20286:18;20307:21;20286:42;;20356:1;20343:10;:14;20339:71;;;20374:24;20387:10;20374:12;:24::i;:::-;20339:71;20064:353;;20033:384::o;14529:82::-;2562:12;:10;:12::i;:::-;2552:22;;:6;;;;;;;;;;:22;;;2544:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;14599:4:::1;14587;:9;14592:3;14587:9;;;;;;;;;;;;;;;;:16;;;;;;;;;;;;;;;;;;14529:82:::0;:::o;14214:207::-;14280:10;;;;;;;;;;;14264:26;;:12;:10;:12::i;:::-;:26;;;14256:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;14320:26;14349:21;14320:50;;14381:32;14394:18;14381:12;:32::i;:::-;14245:176;14214:207::o;7977:119::-;8043:7;8070:9;:18;8080:7;8070:18;;;;;;;;;;;;;;;;8063:25;;7977:119;;;:::o;2639:148::-;2562:12;:10;:12::i;:::-;2552:22;;:6;;;;;;;;;;:22;;;2544:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2746:1:::1;2709:40;;2730:6;::::0;::::1;;;;;;;;2709:40;;;;;;;;;;;;2777:1;2760:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2639:148::o:0;17131:2089::-;2562:12;:10;:12::i;:::-;2552:22;;:6;;;;;;;;;;:22;;;2544:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17243:11:::1;;;;;;;;;;;17242:12;17234:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;17325:1;17301:26;;:12;:26;;::::0;17293:59:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;17402:42;17365:15;;:80;;;;;;;;;;;;;;;;;;17456:15;17474;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17456:43;;17510:12;17525:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17510:37;;17584:12;17617:7;17599:34;;;17642:4;17649;17599:55;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17584:70;;17681:12;17673:20;;:4;:20;;;17665:52;;;;;;;;;;;;:::i;:::-;;;;;;;;;17744:12;17728:13;;:28;;;;;;;;;;;;;;;;;;17801:20;17839:4;17824:31;;;17856:13;;;;;;;;;;;17824:46;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17801:69;;17881:19;17910:4;17903:22;;;17926:13;;;;;;;;;;;17903:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17881:59;;17974:4;17959:12;:19;:41;;;;;17996:4;17982:11;:18;17959:41;17951:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;18077:19;18114:3;18109:2;4490:1;4548:2;:13;;;;:::i;:::-;4533:12;:28;;;;:::i;:::-;18099:12;;;;:::i;:::-;:18;;;;:::i;:::-;18077:40;;18145:18;18180:1:::0;18166:11:::1;:15;:68;;18227:7;18166:68;;;18184:40;18217:6;18184:28;18200:11;18184;:15;;:28;;;;:::i;:::-;:32;;:40;;;;:::i;:::-;18166:68;18145:89;;18356:40;18385:10;18356:9;:24;18374:4;18356:24;;;;;;;;;;;;;;;;:28;;:40;;;;:::i;:::-;18329:9;:24;18347:4;18329:24;;;;;;;;;;;;;;;:67;;;;18434:40;18463:10;18434:9;:24;18444:13;;;;;;;;;;;18434:24;;;;;;;;;;;;;;;;:28;;:40;;;;:::i;:::-;18407:9;:24;18417:13;;;;;;;;;;;18407:24;;;;;;;;;;;;;;;:67;;;;18514:13;;;;;;;;;;;18490:50;;18507:4;18490:50;;;18529:10;18490:50;;;;;;:::i;:::-;;;;;;;;18580:62;18597:4;18612:15;;;;;;;;;;;18630:11;18580:8;:62::i;:::-;18681:17;18701:9;18681:29;;18742:9;18729;:22;;18721:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;18793:15;;;;;;;;;;;:31;;;18832:9;18865:4;18885:11;18911:1;18927::::0;18943:7:::1;:5;:7::i;:::-;18965:15;18793:198;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;19047:13;;;;;;;;;;;19040:29;;;19078:15;;;;;;;;;;;19096:17;19040:74;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;19141:4;19127:11;;:18;;;;;;;;;;;;;;;;;;19170:4;19156:11;;:18;;;;;;;;;;;;;;;;;;19208:4;19185:20;;:27;;;;;;;;;;;;;;;;;;17223:1997;;;;;;;;17131:2089:::0;:::o;4696:56::-;;;;:::o;15008:197::-;15104:10;;;;;;;;;;;15088:26;;:12;:10;:12::i;:::-;:26;;;15080:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;15164:4;15144:17;:24;;;;15193:4;15179:11;:18;;;;15008:197;:::o;14716:286::-;14816:10;;;;;;;;;;;14800:26;;:12;:10;:12::i;:::-;:26;;;14792:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;14856:15;14874:63;14933:3;14874:54;14920:7;14881:8;14874:26;;;14909:4;14874:41;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:45;;:54;;;;:::i;:::-;:58;;:63;;;;:::i;:::-;14856:81;;14955:8;14948:25;;;14974:10;;;;;;;;;;;14986:7;14948:46;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14781:221;14716:286;;:::o;2425:79::-;2463:7;2490:6;;;;;;;;;;;2483:13;;2425:79;:::o;4759:58::-;;;;:::o;7688:87::-;7727:13;7760:7;;;;;;;;;;;;;;;;;7753:14;;7688:87;:::o;8104:167::-;8182:4;8199:42;8209:12;:10;:12::i;:::-;8223:9;8234:6;8199:9;:42::i;:::-;8259:4;8252:11;;8104:167;;;;:::o;4824:61::-;;;;:::o;15307:1816::-;2562:12;:10;:12::i;:::-;2552:22;;:6;;;;;;;;;;:22;;;2544:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15369:11:::1;;;;;;;;;;;15368:12;15360:48;;;;;;;;;;;;:::i;:::-;;;;;;;;;15466:42;15429:15;;:80;;;;;;;;;;;;;;;;;;15567:15;15585;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15567:43;;15621:12;15636:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15621:37;;15669:21;15693:37;15701:7;15718:4;15725;15693:7;:37::i;:::-;15669:61;;15814:16;15889:13;15877:26;15865:38;;15995:1;15983:8;:13:::0;15979:505:::1;;16047:7;16029:37;;;16075:4;16082;16029:58;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16013:13;;:74;;;;;;;;;;;;;;;;;;15979:505;;;16136:13;16120;;:29;;;;;;;;;;;;;;;;;;16241:20;16279:4;16264:31;;;16296:13;;;;;;;;;;;16264:46;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16241:69;;16325:19;16354:4;16347:22;;;16370:13;;;;;;;;;;;16347:37;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16325:59;;16422:4;16407:12;:19;:41;;;;;16444:4;16430:11;:18;16407:41;16399:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;16105:379;;15979:505;16546:58;16563:4;16578:15;;;;;;;;;;;4490:1;4548:2;:13;;;;:::i;:::-;4533:12;:28;;;;:::i;:::-;16546:8;:58::i;:::-;16651:15;;;;;;;;;;;:31;;;16690:21;16735:4;16787:3;16782:2;16755:24;16773:4;16755:9;:24::i;:::-;:29;;;;:::i;:::-;:35;;;;:::i;:::-;16805:1;16821::::0;16837:7:::1;:5;:7::i;:::-;16859:15;16651:234;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;16945:13;;;;;;;;;;;16938:29;;;16976:15;;;;;;;;;;;16994:14;16938:71;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17044:4;17030:11;;:18;;;;;;;;;;;;;;;;;;17073:4;17059:11;;:18;;;;;;;;;;;;;;;;;;17111:4;17088:20;;:27;;;;;;;;;;;;;;;;;;15349:1774;;;;15307:1816::o:0;8279:143::-;8360:7;8387:11;:18;8399:5;8387:18;;;;;;;;;;;;;;;:27;8406:7;8387:27;;;;;;;;;;;;;;;;8380:34;;8279:143;;;;:::o;19718:270::-;19798:10;;;;;;;;;;;19782:26;;:12;:10;:12::i;:::-;:26;;;19774:53;;;;;;;;;;;;:::i;:::-;;;;;;;;;19857:12;;19846:7;:23;;:51;;;;;19884:13;;19873:7;:24;;19846:51;19838:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;19939:7;19924:12;:22;;;;19973:7;19957:13;:23;;;;19718:270;:::o;13598:480::-;2562:12;:10;:12::i;:::-;2552:22;;:6;;;;;;;;;;:22;;;2544:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13672:5:::1;13668:143;;;13694:20;13731:3;13727:1;4490;4548:2;:13;;;;:::i;:::-;4533:12;:28;;;;:::i;:::-;13717:11;;;;:::i;:::-;:17;;;;:::i;:::-;13694:40;;13749:50;13759:10;;;;;;;;;;;13779:4;13786:12;13749:9;:50::i;:::-;13679:132;13668:143;13868:3;13863:2;13843:17;;:22;;;;:::i;:::-;:28;;;;:::i;:::-;13823:17;:48;;;;13915:3;13910:2;13896:11;;:16;;;;:::i;:::-;:22;;;;:::i;:::-;13882:11;:36;;;;4490:1;4548:2;:13;;;;:::i;:::-;4533:12;:28;;;;:::i;:::-;13929:12;:22;;;;4490:1;4548:2;:13;;;;:::i;:::-;4533:12;:28;;;;:::i;:::-;13962:14;:24;;;;14020:5;13997:20;;:28;;;;;;;;;;;;;;;;;;14043:27;4490:1;4548:2;:13;;;;:::i;:::-;4533:12;:28;;;;:::i;:::-;14043:27;;;;;;:::i;:::-;;;;;;;;13598:480:::0;:::o;182:98::-;235:7;262:10;255:17;;182:98;:::o;8920:335::-;9030:1;9013:19;;:5;:19;;;9005:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9111:1;9092:21;;:7;:21;;;9084:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9193:6;9163:11;:18;9175:5;9163:18;;;;;;;;;;;;;;;:27;9182:7;9163:27;;;;;;;;;;;;;;;:36;;;;9231:7;9215:32;;9224:5;9215:32;;;9240:6;9215:32;;;;;;:::i;:::-;;;;;;;;8920:335;;;:::o;9263:3721::-;9367:1;9351:18;;:4;:18;;;9343:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9444:1;9430:16;;:2;:16;;;9422:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9514:1;9505:6;:10;9497:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9574:17;9618:7;:5;:7::i;:::-;9610:15;;:4;:15;;;;:32;;;;;9635:7;:5;:7::i;:::-;9629:13;;:2;:13;;;;9610:32;9606:3007;;;9668:4;:10;9673:4;9668:10;;;;;;;;;;;;;;;;;;;;;;;;;9667:11;:24;;;;;9683:4;:8;9688:2;9683:8;;;;;;;;;;;;;;;;;;;;;;;;;9682:9;9667:24;:44;;;;;9696:4;:15;9701:9;9696:15;;;;;;;;;;;;;;;;;;;;;;;;;9695:16;9667:44;9659:53;;;;;;9733:20;;;;;;;;;;;9729:559;;;9806:7;:5;:7::i;:::-;9800:13;;:2;:13;;;;:68;;;;;9852:15;;;;;;;;;;;9838:30;;:2;:30;;;;9800:68;:121;;;;;9907:13;;;;;;;;;;;9893:28;;:2;:28;;;;9800:121;9774:499;;;10040:12;9998:28;:39;10027:9;9998:39;;;;;;;;;;;;;;;;:54;9964:212;;;;;;;;;;;;:::i;:::-;;;;;;;;;10241:12;10199:28;:39;10228:9;10199:39;;;;;;;;;;;;;;;:54;;;;9774:499;9729:559;10321:1;10308:9;;:14;10304:149;;10355:82;10433:3;10355:73;10379:15;;10367:9;;:27;10366:61;;10413:14;;10366:61;;;10398:12;;10366:61;10355:6;:10;;:73;;;;:::i;:::-;:77;;:82;;;;:::i;:::-;10343:94;;10304:149;10483:1;10471:9;;:13;10467:99;;;10517:33;10546:3;10517:24;10528:12;;10517:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;10505:45;;10467:99;10594:13;;;;;;;;;;;10586:21;;:4;:21;;;:55;;;;;10625:15;;;;;;;;;;;10611:30;;:2;:30;;;;10586:55;:82;;;;;10646:18;:22;10665:2;10646:22;;;;;;;;;;;;;;;;;;;;;;;;;10645:23;10586:82;10582:424;;;10707:12;;10697:6;:22;;10689:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;10802:14;;10792:6;10776:13;10786:2;10776:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;10768:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;10878:82;10956:3;10878:73;10902:15;;10890:9;;:27;10889:61;;10936:14;;10889:61;;;10921:12;;10889:61;10878:6;:10;;:73;;;;:::i;:::-;:77;;:82;;;;:::i;:::-;10866:94;;10979:9;;:11;;;;;;;;;:::i;:::-;;;;;;10582:424;11032:13;;;;;;;;;;;11026:19;;:2;:19;;;:44;;;;;11065:4;11049:21;;:4;:21;;;;11026:44;11022:182;;;11103:85;11184:3;11103:76;11127:16;;11115:9;;:28;11114:64;;11163:15;;11114:64;;;11147:13;;11114:64;11103:6;:10;;:76;;;;:::i;:::-;:80;;:85;;;;:::i;:::-;11091:97;;11022:182;11220:28;11251:24;11269:4;11251:9;:24::i;:::-;11220:55;;11297:6;;;;;;;;;;11296:7;:30;;;;;11313:13;;;;;;;;;;;11307:19;;:2;:19;;;11296:30;:45;;;;;11330:11;;;;;;;;;;;11296:45;:89;;;;;11368:17;;11345:20;:40;11296:89;:123;;;;;11401:18;;11389:9;;:30;11296:123;11292:1310;;;11440:24;11467:42;4490:1;4548:2;:13;;;;:::i;:::-;4533:12;:28;;;;:::i;:::-;11467:29;11492:3;11467:20;:24;;:29;;;;:::i;:::-;:33;;:42;;;;:::i;:::-;11440:69;;11553:1;11534:16;:20;11530:518;;;11599:17;11579;:37;;;;11653:17;11639:11;:31;;;;11530:518;;;11719:1;11700:16;:20;11696:352;;;11780:5;11775:2;4490:1;4548:2;:13;;;;:::i;:::-;4533:12;:28;;;;:::i;:::-;11765:12;;;;:::i;:::-;:20;;;;:::i;:::-;11745:17;:40;;;;11846:5;11841:2;4490:1;4548:2;:13;;;;:::i;:::-;4533:12;:28;;;;:::i;:::-;11831:12;;;;:::i;:::-;:20;;;;:::i;:::-;11817:11;:34;;;;11696:352;;;11900:2;11881:16;:21;11877:171;;;11961:4;11957:1;4490;4548:2;:13;;;;:::i;:::-;4533:12;:28;;;;:::i;:::-;11947:11;;;;:::i;:::-;:18;;;;:::i;:::-;11927:17;:38;;;;12024:4;12020:1;4490;4548:2;:13;;;;:::i;:::-;4533:12;:28;;;;:::i;:::-;12010:11;;;;:::i;:::-;:18;;;;:::i;:::-;11996:11;:32;;;;11877:171;11696:352;11530:518;12087:13;;12072:12;:28;12068:90;;;12137:1;12125:9;:13;;;;12068:90;12198:1;12186:9;;:13;12178:49;;;;;;;;;;;;:::i;:::-;;;;;;;;;12248:69;12265:51;12269:6;12277:38;12281:20;12303:11;;12277:3;:38::i;:::-;12265:3;:51::i;:::-;12248:16;:69::i;:::-;12336:26;12365:21;12336:50;;12430:1;12409:18;:22;12405:103;;;12456:32;12469:18;12456:12;:32::i;:::-;12405:103;12528:9;;:11;;;;;;;;;:::i;:::-;;;;;;12574:12;12558:13;:28;;;;11421:1181;;11292:1310;9644:2969;9606:3007;12641:1;12629:9;:13;12625:172;;;12686:39;12715:9;12686;:24;12704:4;12686:24;;;;;;;;;;;;;;;;:28;;:39;;;;:::i;:::-;12659:9;:24;12677:4;12659:24;;;;;;;;;;;;;;;:66;;;;12768:4;12745:40;;12754:4;12745:40;;;12775:9;12745:40;;;;;;:::i;:::-;;;;;;;;12625:172;12825:27;12845:6;12825:9;:15;12835:4;12825:15;;;;;;;;;;;;;;;;:19;;:27;;;;:::i;:::-;12807:9;:15;12817:4;12807:15;;;;;;;;;;;;;;;:45;;;;12879:40;12897:21;12908:9;12897:6;:10;;:21;;;;:::i;:::-;12879:9;:13;12889:2;12879:13;;;;;;;;;;;;;;;;:17;;:40;;;;:::i;:::-;12863:9;:13;12873:2;12863:13;;;;;;;;;;;;;;;:56;;;;12950:2;12935:41;;12944:4;12935:41;;;12954:21;12965:9;12954:6;:10;;:21;;;;:::i;:::-;12935:41;;;;;;:::i;:::-;;;;;;;;9332:3652;9263:3721;;;:::o;1319:190::-;1405:7;1438:1;1433;:6;;1441:12;1425:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1465:9;1481:1;1477;:5;;;;:::i;:::-;1465:17;;1500:1;1493:8;;;1319:190;;;;;:::o;13107:483::-;5406:4;5397:6;;:13;;;;;;;;;;;;;;;;;;13185:21:::1;13223:1;13209:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13185:40;;13254:4;13236;13241:1;13236:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;13280:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13270:4;13275:1;13270:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;13313:62;13330:4;13345:15;;;;;;;;;;;13363:11;13313:8;:62::i;:::-;13386:15;;;;;;;;;;;:66;;;13467:11;13493:1;13509:4;13536;13556:15;13386:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;13174:416;5442:5:::0;5433:6;;:14;;;;;;;;;;;;;;;;;;13107:483;:::o;14429:92::-;14486:10;;;;;;;;;;;:19;;:27;14506:6;14486:27;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14429:92;:::o;1517:246::-;1575:7;1604:1;1599;:6;1595:47;;1629:1;1622:8;;;;1595:47;1652:9;1668:1;1664;:5;;;;:::i;:::-;1652:17;;1697:1;1692;1688;:5;;;;:::i;:::-;:10;1680:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;1754:1;1747:8;;;1517:246;;;;;:::o;1771:132::-;1829:7;1856:39;1860:1;1863;1856:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;1849:46;;1771:132;;;;:::o;1175:136::-;1233:7;1260:43;1264:1;1267;1260:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1253:50;;1175:136;;;;:::o;988:179::-;1046:7;1066:9;1082:1;1078;:5;;;;:::i;:::-;1066:17;;1107:1;1102;:6;;1094:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;1158:1;1151:8;;;988:179;;;;:::o;19235:475::-;19323:12;19349:14;19365;19392:6;19383:15;;:6;:15;;;:53;;19421:6;19429;19383:53;;;19402:6;19410;19383:53;19348:88;;;;19538:7;19587:6;19595;19570:32;;;;;;;;;:::i;:::-;;;;;;;;;;;;;19560:43;;;;;;19485:213;;;;;;;;;:::i;:::-;;;;;;;;;;;;;19475:224;;;;;;19470:230;;19447:255;;19337:373;;19235:475;;;;;:::o;12992:107::-;13049:7;13081:1;13077;:5;13076:15;;13090:1;13076:15;;;13086:1;13076:15;13069:22;;12992:107;;;;:::o;1911:189::-;1997:7;2029:1;2025;:5;2032:12;2017:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2056:9;2072:1;2068;:5;;;;:::i;:::-;2056:17;;2091:1;2084:8;;;1911:189;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:329::-;4912:6;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;4853:329;;;;:::o;5188:::-;5247:6;5296:2;5284:9;5275:7;5271:23;5267:32;5264:119;;;5302:79;;:::i;:::-;5264:119;5422:1;5447:53;5492:7;5483:6;5472:9;5468:22;5447:53;:::i;:::-;5437:63;;5393:117;5188:329;;;;:::o;5523:118::-;5610:24;5628:5;5610:24;:::i;:::-;5605:3;5598:37;5523:118;;:::o;5647:222::-;5740:4;5778:2;5767:9;5763:18;5755:26;;5791:71;5859:1;5848:9;5844:17;5835:6;5791:71;:::i;:::-;5647:222;;;;:::o;5875:474::-;5943:6;5951;6000:2;5988:9;5979:7;5975:23;5971:32;5968:119;;;6006:79;;:::i;:::-;5968:119;6126:1;6151:53;6196:7;6187:6;6176:9;6172:22;6151:53;:::i;:::-;6141:63;;6097:117;6253:2;6279:53;6324:7;6315:6;6304:9;6300:22;6279:53;:::i;:::-;6269:63;;6224:118;5875:474;;;;;:::o;6355:116::-;6425:21;6440:5;6425:21;:::i;:::-;6418:5;6415:32;6405:60;;6461:1;6458;6451:12;6405:60;6355:116;:::o;6477:133::-;6520:5;6558:6;6545:20;6536:29;;6574:30;6598:5;6574:30;:::i;:::-;6477:133;;;;:::o;6616:323::-;6672:6;6721:2;6709:9;6700:7;6696:23;6692:32;6689:119;;;6727:79;;:::i;:::-;6689:119;6847:1;6872:50;6914:7;6905:6;6894:9;6890:22;6872:50;:::i;:::-;6862:60;;6818:114;6616:323;;;;:::o;6945:182::-;7085:34;7081:1;7073:6;7069:14;7062:58;6945:182;:::o;7133:366::-;7275:3;7296:67;7360:2;7355:3;7296:67;:::i;:::-;7289:74;;7372:93;7461:3;7372:93;:::i;:::-;7490:2;7485:3;7481:12;7474:19;;7133:366;;;:::o;7505:419::-;7671:4;7709:2;7698:9;7694:18;7686:26;;7758:9;7752:4;7748:20;7744:1;7733:9;7729:17;7722:47;7786:131;7912:4;7786:131;:::i;:::-;7778:139;;7505:419;;;:::o;7930:85::-;7975:7;8004:5;7993:16;;7930:85;;;:::o;8021:60::-;8049:3;8070:5;8063:12;;8021:60;;;:::o;8087:158::-;8145:9;8178:61;8196:42;8205:32;8231:5;8205:32;:::i;:::-;8196:42;:::i;:::-;8178:61;:::i;:::-;8165:74;;8087:158;;;:::o;8251:147::-;8346:45;8385:5;8346:45;:::i;:::-;8341:3;8334:58;8251:147;;:::o;8404:238::-;8505:4;8543:2;8532:9;8528:18;8520:26;;8556:79;8632:1;8621:9;8617:17;8608:6;8556:79;:::i;:::-;8404:238;;;;:::o;8648:180::-;8696:77;8693:1;8686:88;8793:4;8790:1;8783:15;8817:4;8814:1;8807:15;8834:102;8876:8;8923:5;8920:1;8916:13;8895:34;;8834:102;;;:::o;8942:848::-;9003:5;9010:4;9034:6;9025:15;;9058:5;9049:14;;9072:712;9093:1;9083:8;9080:15;9072:712;;;9188:4;9183:3;9179:14;9173:4;9170:24;9167:50;;;9197:18;;:::i;:::-;9167:50;9247:1;9237:8;9233:16;9230:451;;;9662:4;9655:5;9651:16;9642:25;;9230:451;9712:4;9706;9702:15;9694:23;;9742:32;9765:8;9742:32;:::i;:::-;9730:44;;9072:712;;;8942:848;;;;;;;:::o;9796:1073::-;9850:5;10041:8;10031:40;;10062:1;10053:10;;10064:5;;10031:40;10090:4;10080:36;;10107:1;10098:10;;10109:5;;10080:36;10176:4;10224:1;10219:27;;;;10260:1;10255:191;;;;10169:277;;10219:27;10237:1;10228:10;;10239:5;;;10255:191;10300:3;10290:8;10287:17;10284:43;;;10307:18;;:::i;:::-;10284:43;10356:8;10353:1;10349:16;10340:25;;10391:3;10384:5;10381:14;10378:40;;;10398:18;;:::i;:::-;10378:40;10431:5;;;10169:277;;10555:2;10545:8;10542:16;10536:3;10530:4;10527:13;10523:36;10505:2;10495:8;10492:16;10487:2;10481:4;10478:12;10474:35;10458:111;10455:246;;;10611:8;10605:4;10601:19;10592:28;;10646:3;10639:5;10636:14;10633:40;;;10653:18;;:::i;:::-;10633:40;10686:5;;10455:246;10726:42;10764:3;10754:8;10748:4;10745:1;10726:42;:::i;:::-;10711:57;;;;10800:4;10795:3;10791:14;10784:5;10781:25;10778:51;;;10809:18;;:::i;:::-;10778:51;10858:4;10851:5;10847:16;10838:25;;9796:1073;;;;;;:::o;10875:281::-;10933:5;10957:23;10975:4;10957:23;:::i;:::-;10949:31;;11001:25;11017:8;11001:25;:::i;:::-;10989:37;;11045:104;11082:66;11072:8;11066:4;11045:104;:::i;:::-;11036:113;;10875:281;;;;:::o;11162:410::-;11202:7;11225:20;11243:1;11225:20;:::i;:::-;11220:25;;11259:20;11277:1;11259:20;:::i;:::-;11254:25;;11314:1;11311;11307:9;11336:30;11354:11;11336:30;:::i;:::-;11325:41;;11515:1;11506:7;11502:15;11499:1;11496:22;11476:1;11469:9;11449:83;11426:139;;11545:18;;:::i;:::-;11426:139;11210:362;11162:410;;;;:::o;11578:164::-;11718:16;11714:1;11706:6;11702:14;11695:40;11578:164;:::o;11748:366::-;11890:3;11911:67;11975:2;11970:3;11911:67;:::i;:::-;11904:74;;11987:93;12076:3;11987:93;:::i;:::-;12105:2;12100:3;12096:12;12089:19;;11748:366;;;:::o;12120:419::-;12286:4;12324:2;12313:9;12309:18;12301:26;;12373:9;12367:4;12363:20;12359:1;12348:9;12344:17;12337:47;12401:131;12527:4;12401:131;:::i;:::-;12393:139;;12120:419;;;:::o;12545:173::-;12685:25;12681:1;12673:6;12669:14;12662:49;12545:173;:::o;12724:366::-;12866:3;12887:67;12951:2;12946:3;12887:67;:::i;:::-;12880:74;;12963:93;13052:3;12963:93;:::i;:::-;13081:2;13076:3;13072:12;13065:19;;12724:366;;;:::o;13096:419::-;13262:4;13300:2;13289:9;13285:18;13277:26;;13349:9;13343:4;13339:20;13335:1;13324:9;13320:17;13313:47;13377:131;13503:4;13377:131;:::i;:::-;13369:139;;13096:419;;;:::o;13521:170::-;13661:22;13657:1;13649:6;13645:14;13638:46;13521:170;:::o;13697:366::-;13839:3;13860:67;13924:2;13919:3;13860:67;:::i;:::-;13853:74;;13936:93;14025:3;13936:93;:::i;:::-;14054:2;14049:3;14045:12;14038:19;;13697:366;;;:::o;14069:419::-;14235:4;14273:2;14262:9;14258:18;14250:26;;14322:9;14316:4;14312:20;14308:1;14297:9;14293:17;14286:47;14350:131;14476:4;14350:131;:::i;:::-;14342:139;;14069:419;;;:::o;14494:143::-;14551:5;14582:6;14576:13;14567:22;;14598:33;14625:5;14598:33;:::i;:::-;14494:143;;;;:::o;14643:351::-;14713:6;14762:2;14750:9;14741:7;14737:23;14733:32;14730:119;;;14768:79;;:::i;:::-;14730:119;14888:1;14913:64;14969:7;14960:6;14949:9;14945:22;14913:64;:::i;:::-;14903:74;;14859:128;14643:351;;;;:::o;15000:332::-;15121:4;15159:2;15148:9;15144:18;15136:26;;15172:71;15240:1;15229:9;15225:17;15216:6;15172:71;:::i;:::-;15253:72;15321:2;15310:9;15306:18;15297:6;15253:72;:::i;:::-;15000:332;;;;;:::o;15338:169::-;15478:21;15474:1;15466:6;15462:14;15455:45;15338:169;:::o;15513:366::-;15655:3;15676:67;15740:2;15735:3;15676:67;:::i;:::-;15669:74;;15752:93;15841:3;15752:93;:::i;:::-;15870:2;15865:3;15861:12;15854:19;;15513:366;;;:::o;15885:419::-;16051:4;16089:2;16078:9;16074:18;16066:26;;16138:9;16132:4;16128:20;16124:1;16113:9;16109:17;16102:47;16166:131;16292:4;16166:131;:::i;:::-;16158:139;;15885:419;;;:::o;16310:143::-;16367:5;16398:6;16392:13;16383:22;;16414:33;16441:5;16414:33;:::i;:::-;16310:143;;;;:::o;16459:351::-;16529:6;16578:2;16566:9;16557:7;16553:23;16549:32;16546:119;;;16584:79;;:::i;:::-;16546:119;16704:1;16729:64;16785:7;16776:6;16765:9;16761:22;16729:64;:::i;:::-;16719:74;;16675:128;16459:351;;;;:::o;16816:169::-;16956:21;16952:1;16944:6;16940:14;16933:45;16816:169;:::o;16991:366::-;17133:3;17154:67;17218:2;17213:3;17154:67;:::i;:::-;17147:74;;17230:93;17319:3;17230:93;:::i;:::-;17348:2;17343:3;17339:12;17332:19;;16991:366;;;:::o;17363:419::-;17529:4;17567:2;17556:9;17552:18;17544:26;;17616:9;17610:4;17606:20;17602:1;17591:9;17587:17;17580:47;17644:131;17770:4;17644:131;:::i;:::-;17636:139;;17363:419;;;:::o;17788:180::-;17836:77;17833:1;17826:88;17933:4;17930:1;17923:15;17957:4;17954:1;17947:15;17974:185;18014:1;18031:20;18049:1;18031:20;:::i;:::-;18026:25;;18065:20;18083:1;18065:20;:::i;:::-;18060:25;;18104:1;18094:35;;18109:18;;:::i;:::-;18094:35;18151:1;18148;18144:9;18139:14;;17974:185;;;;:::o;18165:174::-;18305:26;18301:1;18293:6;18289:14;18282:50;18165:174;:::o;18345:366::-;18487:3;18508:67;18572:2;18567:3;18508:67;:::i;:::-;18501:74;;18584:93;18673:3;18584:93;:::i;:::-;18702:2;18697:3;18693:12;18686:19;;18345:366;;;:::o;18717:419::-;18883:4;18921:2;18910:9;18906:18;18898:26;;18970:9;18964:4;18960:20;18956:1;18945:9;18941:17;18934:47;18998:131;19124:4;18998:131;:::i;:::-;18990:139;;18717:419;;;:::o;19142:807::-;19391:4;19429:3;19418:9;19414:19;19406:27;;19443:71;19511:1;19500:9;19496:17;19487:6;19443:71;:::i;:::-;19524:72;19592:2;19581:9;19577:18;19568:6;19524:72;:::i;:::-;19606:80;19682:2;19671:9;19667:18;19658:6;19606:80;:::i;:::-;19696;19772:2;19761:9;19757:18;19748:6;19696:80;:::i;:::-;19786:73;19854:3;19843:9;19839:19;19830:6;19786:73;:::i;:::-;19869;19937:3;19926:9;19922:19;19913:6;19869:73;:::i;:::-;19142:807;;;;;;;;;:::o;19955:663::-;20043:6;20051;20059;20108:2;20096:9;20087:7;20083:23;20079:32;20076:119;;;20114:79;;:::i;:::-;20076:119;20234:1;20259:64;20315:7;20306:6;20295:9;20291:22;20259:64;:::i;:::-;20249:74;;20205:128;20372:2;20398:64;20454:7;20445:6;20434:9;20430:22;20398:64;:::i;:::-;20388:74;;20343:129;20511:2;20537:64;20593:7;20584:6;20573:9;20569:22;20537:64;:::i;:::-;20527:74;;20482:129;19955:663;;;;;:::o;20624:332::-;20745:4;20783:2;20772:9;20768:18;20760:26;;20796:71;20864:1;20853:9;20849:17;20840:6;20796:71;:::i;:::-;20877:72;20945:2;20934:9;20930:18;20921:6;20877:72;:::i;:::-;20624:332;;;;;:::o;20962:137::-;21016:5;21047:6;21041:13;21032:22;;21063:30;21087:5;21063:30;:::i;:::-;20962:137;;;;:::o;21105:345::-;21172:6;21221:2;21209:9;21200:7;21196:23;21192:32;21189:119;;;21227:79;;:::i;:::-;21189:119;21347:1;21372:61;21425:7;21416:6;21405:9;21401:22;21372:61;:::i;:::-;21362:71;;21318:125;21105:345;;;;:::o;21456:142::-;21506:9;21539:53;21557:34;21566:24;21584:5;21566:24;:::i;:::-;21557:34;:::i;:::-;21539:53;:::i;:::-;21526:66;;21456:142;;;:::o;21604:126::-;21654:9;21687:37;21718:5;21687:37;:::i;:::-;21674:50;;21604:126;;;:::o;21736:134::-;21794:9;21827:37;21858:5;21827:37;:::i;:::-;21814:50;;21736:134;;;:::o;21876:147::-;21971:45;22010:5;21971:45;:::i;:::-;21966:3;21959:58;21876:147;;:::o;22029:348::-;22158:4;22196:2;22185:9;22181:18;22173:26;;22209:79;22285:1;22274:9;22270:17;22261:6;22209:79;:::i;:::-;22298:72;22366:2;22355:9;22351:18;22342:6;22298:72;:::i;:::-;22029:348;;;;;:::o;22383:161::-;22523:13;22519:1;22511:6;22507:14;22500:37;22383:161;:::o;22550:366::-;22692:3;22713:67;22777:2;22772:3;22713:67;:::i;:::-;22706:74;;22789:93;22878:3;22789:93;:::i;:::-;22907:2;22902:3;22898:12;22891:19;;22550:366;;;:::o;22922:419::-;23088:4;23126:2;23115:9;23111:18;23103:26;;23175:9;23169:4;23165:20;23161:1;23150:9;23146:17;23139:47;23203:131;23329:4;23203:131;:::i;:::-;23195:139;;22922:419;;;:::o;23347:223::-;23487:34;23483:1;23475:6;23471:14;23464:58;23556:6;23551:2;23543:6;23539:15;23532:31;23347:223;:::o;23576:366::-;23718:3;23739:67;23803:2;23798:3;23739:67;:::i;:::-;23732:74;;23815:93;23904:3;23815:93;:::i;:::-;23933:2;23928:3;23924:12;23917:19;;23576:366;;;:::o;23948:419::-;24114:4;24152:2;24141:9;24137:18;24129:26;;24201:9;24195:4;24191:20;24187:1;24176:9;24172:17;24165:47;24229:131;24355:4;24229:131;:::i;:::-;24221:139;;23948:419;;;:::o;24373:221::-;24513:34;24509:1;24501:6;24497:14;24490:58;24582:4;24577:2;24569:6;24565:15;24558:29;24373:221;:::o;24600:366::-;24742:3;24763:67;24827:2;24822:3;24763:67;:::i;:::-;24756:74;;24839:93;24928:3;24839:93;:::i;:::-;24957:2;24952:3;24948:12;24941:19;;24600:366;;;:::o;24972:419::-;25138:4;25176:2;25165:9;25161:18;25153:26;;25225:9;25219:4;25215:20;25211:1;25200:9;25196:17;25189:47;25253:131;25379:4;25253:131;:::i;:::-;25245:139;;24972:419;;;:::o;25397:224::-;25537:34;25533:1;25525:6;25521:14;25514:58;25606:7;25601:2;25593:6;25589:15;25582:32;25397:224;:::o;25627:366::-;25769:3;25790:67;25854:2;25849:3;25790:67;:::i;:::-;25783:74;;25866:93;25955:3;25866:93;:::i;:::-;25984:2;25979:3;25975:12;25968:19;;25627:366;;;:::o;25999:419::-;26165:4;26203:2;26192:9;26188:18;26180:26;;26252:9;26246:4;26242:20;26238:1;26227:9;26223:17;26216:47;26280:131;26406:4;26280:131;:::i;:::-;26272:139;;25999:419;;;:::o;26424:222::-;26564:34;26560:1;26552:6;26548:14;26541:58;26633:5;26628:2;26620:6;26616:15;26609:30;26424:222;:::o;26652:366::-;26794:3;26815:67;26879:2;26874:3;26815:67;:::i;:::-;26808:74;;26891:93;26980:3;26891:93;:::i;:::-;27009:2;27004:3;27000:12;26993:19;;26652:366;;;:::o;27024:419::-;27190:4;27228:2;27217:9;27213:18;27205:26;;27277:9;27271:4;27267:20;27263:1;27252:9;27248:17;27241:47;27305:131;27431:4;27305:131;:::i;:::-;27297:139;;27024:419;;;:::o;27449:228::-;27589:34;27585:1;27577:6;27573:14;27566:58;27658:11;27653:2;27645:6;27641:15;27634:36;27449:228;:::o;27683:366::-;27825:3;27846:67;27910:2;27905:3;27846:67;:::i;:::-;27839:74;;27922:93;28011:3;27922:93;:::i;:::-;28040:2;28035:3;28031:12;28024:19;;27683:366;;;:::o;28055:419::-;28221:4;28259:2;28248:9;28244:18;28236:26;;28308:9;28302:4;28298:20;28294:1;28283:9;28279:17;28272:47;28336:131;28462:4;28336:131;:::i;:::-;28328:139;;28055:419;;;:::o;28480:296::-;28620:34;28616:1;28608:6;28604:14;28597:58;28689:34;28684:2;28676:6;28672:15;28665:59;28758:10;28753:2;28745:6;28741:15;28734:35;28480:296;:::o;28782:366::-;28924:3;28945:67;29009:2;29004:3;28945:67;:::i;:::-;28938:74;;29021:93;29110:3;29021:93;:::i;:::-;29139:2;29134:3;29130:12;29123:19;;28782:366;;;:::o;29154:419::-;29320:4;29358:2;29347:9;29343:18;29335:26;;29407:9;29401:4;29397:20;29393:1;29382:9;29378:17;29371:47;29435:131;29561:4;29435:131;:::i;:::-;29427:139;;29154:419;;;:::o;29579:175::-;29719:27;29715:1;29707:6;29703:14;29696:51;29579:175;:::o;29760:366::-;29902:3;29923:67;29987:2;29982:3;29923:67;:::i;:::-;29916:74;;29999:93;30088:3;29999:93;:::i;:::-;30117:2;30112:3;30108:12;30101:19;;29760:366;;;:::o;30132:419::-;30298:4;30336:2;30325:9;30321:18;30313:26;;30385:9;30379:4;30375:20;30371:1;30360:9;30356:17;30349:47;30413:131;30539:4;30413:131;:::i;:::-;30405:139;;30132:419;;;:::o;30557:191::-;30597:3;30616:20;30634:1;30616:20;:::i;:::-;30611:25;;30650:20;30668:1;30650:20;:::i;:::-;30645:25;;30693:1;30690;30686:9;30679:16;;30714:3;30711:1;30708:10;30705:36;;;30721:18;;:::i;:::-;30705:36;30557:191;;;;:::o;30754:176::-;30894:28;30890:1;30882:6;30878:14;30871:52;30754:176;:::o;30936:366::-;31078:3;31099:67;31163:2;31158:3;31099:67;:::i;:::-;31092:74;;31175:93;31264:3;31175:93;:::i;:::-;31293:2;31288:3;31284:12;31277:19;;30936:366;;;:::o;31308:419::-;31474:4;31512:2;31501:9;31497:18;31489:26;;31561:9;31555:4;31551:20;31547:1;31536:9;31532:17;31525:47;31589:131;31715:4;31589:131;:::i;:::-;31581:139;;31308:419;;;:::o;31733:233::-;31772:3;31795:24;31813:5;31795:24;:::i;:::-;31786:33;;31841:66;31834:5;31831:77;31828:103;;31911:18;;:::i;:::-;31828:103;31958:1;31951:5;31947:13;31940:20;;31733:233;;;:::o;31972:173::-;32112:25;32108:1;32100:6;32096:14;32089:49;31972:173;:::o;32151:366::-;32293:3;32314:67;32378:2;32373:3;32314:67;:::i;:::-;32307:74;;32390:93;32479:3;32390:93;:::i;:::-;32508:2;32503:3;32499:12;32492:19;;32151:366;;;:::o;32523:419::-;32689:4;32727:2;32716:9;32712:18;32704:26;;32776:9;32770:4;32766:20;32762:1;32751:9;32747:17;32740:47;32804:131;32930:4;32804:131;:::i;:::-;32796:139;;32523:419;;;:::o;32948:194::-;32988:4;33008:20;33026:1;33008:20;:::i;:::-;33003:25;;33042:20;33060:1;33042:20;:::i;:::-;33037:25;;33086:1;33083;33079:9;33071:17;;33110:1;33104:4;33101:11;33098:37;;;33115:18;;:::i;:::-;33098:37;32948:194;;;;:::o;33148:180::-;33196:77;33193:1;33186:88;33293:4;33290:1;33283:15;33317:4;33314:1;33307:15;33334:180;33382:77;33379:1;33372:88;33479:4;33476:1;33469:15;33503:4;33500:1;33493:15;33520:114;33587:6;33621:5;33615:12;33605:22;;33520:114;;;:::o;33640:184::-;33739:11;33773:6;33768:3;33761:19;33813:4;33808:3;33804:14;33789:29;;33640:184;;;;:::o;33830:132::-;33897:4;33920:3;33912:11;;33950:4;33945:3;33941:14;33933:22;;33830:132;;;:::o;33968:108::-;34045:24;34063:5;34045:24;:::i;:::-;34040:3;34033:37;33968:108;;:::o;34082:179::-;34151:10;34172:46;34214:3;34206:6;34172:46;:::i;:::-;34250:4;34245:3;34241:14;34227:28;;34082:179;;;;:::o;34267:113::-;34337:4;34369;34364:3;34360:14;34352:22;;34267:113;;;:::o;34416:732::-;34535:3;34564:54;34612:5;34564:54;:::i;:::-;34634:86;34713:6;34708:3;34634:86;:::i;:::-;34627:93;;34744:56;34794:5;34744:56;:::i;:::-;34823:7;34854:1;34839:284;34864:6;34861:1;34858:13;34839:284;;;34940:6;34934:13;34967:63;35026:3;35011:13;34967:63;:::i;:::-;34960:70;;35053:60;35106:6;35053:60;:::i;:::-;35043:70;;34899:224;34886:1;34883;34879:9;34874:14;;34839:284;;;34843:14;35139:3;35132:10;;34540:608;;;34416:732;;;;:::o;35154:831::-;35417:4;35455:3;35444:9;35440:19;35432:27;;35469:71;35537:1;35526:9;35522:17;35513:6;35469:71;:::i;:::-;35550:80;35626:2;35615:9;35611:18;35602:6;35550:80;:::i;:::-;35677:9;35671:4;35667:20;35662:2;35651:9;35647:18;35640:48;35705:108;35808:4;35799:6;35705:108;:::i;:::-;35697:116;;35823:72;35891:2;35880:9;35876:18;35867:6;35823:72;:::i;:::-;35905:73;35973:3;35962:9;35958:19;35949:6;35905:73;:::i;:::-;35154:831;;;;;;;;:::o;35991:220::-;36131:34;36127:1;36119:6;36115:14;36108:58;36200:3;36195:2;36187:6;36183:15;36176:28;35991:220;:::o;36217:366::-;36359:3;36380:67;36444:2;36439:3;36380:67;:::i;:::-;36373:74;;36456:93;36545:3;36456:93;:::i;:::-;36574:2;36569:3;36565:12;36558:19;;36217:366;;;:::o;36589:419::-;36755:4;36793:2;36782:9;36778:18;36770:26;;36842:9;36836:4;36832:20;36828:1;36817:9;36813:17;36806:47;36870:131;36996:4;36870:131;:::i;:::-;36862:139;;36589:419;;;:::o;37014:177::-;37154:29;37150:1;37142:6;37138:14;37131:53;37014:177;:::o;37197:366::-;37339:3;37360:67;37424:2;37419:3;37360:67;:::i;:::-;37353:74;;37436:93;37525:3;37436:93;:::i;:::-;37554:2;37549:3;37545:12;37538:19;;37197:366;;;:::o;37569:419::-;37735:4;37773:2;37762:9;37758:18;37750:26;;37822:9;37816:4;37812:20;37808:1;37797:9;37793:17;37786:47;37850:131;37976:4;37850:131;:::i;:::-;37842:139;;37569:419;;;:::o;37994:94::-;38027:8;38075:5;38071:2;38067:14;38046:35;;37994:94;;;:::o;38094:::-;38133:7;38162:20;38176:5;38162:20;:::i;:::-;38151:31;;38094:94;;;:::o;38194:100::-;38233:7;38262:26;38282:5;38262:26;:::i;:::-;38251:37;;38194:100;;;:::o;38300:157::-;38405:45;38425:24;38443:5;38425:24;:::i;:::-;38405:45;:::i;:::-;38400:3;38393:58;38300:157;;:::o;38463:397::-;38603:3;38618:75;38689:3;38680:6;38618:75;:::i;:::-;38718:2;38713:3;38709:12;38702:19;;38731:75;38802:3;38793:6;38731:75;:::i;:::-;38831:2;38826:3;38822:12;38815:19;;38851:3;38844:10;;38463:397;;;;;:::o;38866:148::-;38968:11;39005:3;38990:18;;38866:148;;;;:::o;39020:214::-;39160:66;39156:1;39148:6;39144:14;39137:90;39020:214;:::o;39240:400::-;39400:3;39421:84;39503:1;39498:3;39421:84;:::i;:::-;39414:91;;39514:93;39603:3;39514:93;:::i;:::-;39632:1;39627:3;39623:11;39616:18;;39240:400;;;:::o;39646:77::-;39683:7;39712:5;39701:16;;39646:77;;;:::o;39729:79::-;39768:7;39797:5;39786:16;;39729:79;;;:::o;39814:157::-;39919:45;39939:24;39957:5;39939:24;:::i;:::-;39919:45;:::i;:::-;39914:3;39907:58;39814:157;;:::o;39977:214::-;40117:66;40113:1;40105:6;40101:14;40094:90;39977:214;:::o;40197:402::-;40357:3;40378:85;40460:2;40455:3;40378:85;:::i;:::-;40371:92;;40472:93;40561:3;40472:93;:::i;:::-;40590:2;40585:3;40581:12;40574:19;;40197:402;;;:::o;40605:929::-;40947:3;40969:148;41113:3;40969:148;:::i;:::-;40962:155;;41127:75;41198:3;41189:6;41127:75;:::i;:::-;41227:2;41222:3;41218:12;41211:19;;41240:75;41311:3;41302:6;41240:75;:::i;:::-;41340:2;41335:3;41331:12;41324:19;;41360:148;41504:3;41360:148;:::i;:::-;41353:155;;41525:3;41518:10;;40605:929;;;;;:::o

Swarm Source

ipfs://ee2477094be90fbf4f766f2e44ee1a4a3c9b579d95282e36c764e8b0cb3a1a7b

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
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.