ETH Price: $3,306.09 (-4.15%)

Token

Morphware (XMW)
 

Overview

Max Total Supply

1,232,922,769 XMW

Holders

3,727 (0.00%)

Market

Price

$0.05 @ 0.000014 ETH (+0.57%)

Onchain Market Cap

$55,706,878.23

Circulating Supply Market Cap

$35,254,939.00

Other Info

Token Contract (WITH 18 Decimals)

Filtered by Token Holder
oakenfold.eth
Balance
16,544.21934620332942159 XMW

Value
$747.51 ( ~0.226101188705905 Eth) [0.0013%]
0x558eD3a844EC118A86EC87f833dBe41aAaB3578e
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Morphware is a project at the intersection of AI and Web3 that uses cheap renewable electricity to power large language models and cryptocurrency mining workloads. We aim to provide users access to open-source large language models at the lowest prices in the world.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
Morphware

Compiler Version
v0.8.21+commit.d9974bed

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-09-18
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.21;
pragma experimental ABIEncoderV2;

abstract contract Ownable {
    address private _owner;

    constructor() {
        _owner = msg.sender;
    }

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

    modifier onlyOwner() {
        require(owner() == msg.sender, "Ownable: caller is not the owner");
        _;
    }

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

library SafeERC20 {
    function safeTransfer(address token, address to, uint256 value) internal {
        (bool success, bytes memory data) = token.call(abi.encodeWithSelector(IERC20.transfer.selector, to, value));
        require(success && (data.length == 0 || abi.decode(data, (bool))), 'TransferHelper: INTERNAL TRANSFER_FAILED');
    }
}

interface IERC20 {
    function balanceOf(address account) external view returns (uint256);
    function transfer(address recipient, uint256 amount) external;
}

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

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

    function WETH() external pure returns (address);

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

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

contract Morphware is Ownable {
    string private constant _name = unicode"Morphware";
    string private constant _symbol = unicode"XMW";
    uint256 private constant _totalSupply = 1_232_922_769 * 1e18;

    uint256 public maxTransactionAmount = 123_293 * 1e18; // ~0.01% --> ROUNDUP(123,292.2769)  -->    123,293
    uint256 public maxWallet = 12_329_228 * 1e18;         // ~1.00% --> ROUNDUP(12,329,227.69) --> 12,329,228
    uint256 public swapTokensAtAmount =  246_584 * 1e18;  // ~0.02% --> ROUNDUP(246,584.5538)  -->    246,584

    address private revWallet = 0xe99bF714C3440e987FBAC072FF21d6375360a3e9;
    address private treasuryWallet = 0xc616B2449E9765EDF9FFb485Da42420971299519;
    address private teamWallet = 0x4a73b5A416f5EAfbF35452FBc7a547F25A1Efc95;
    address private seedWallet = 0x3D0BF65584046471d52E195A93fd0770D1d7F073;
    address private infoSecWallet = 0x213f9c6751062068E21d6d341315b103470284B9;

    address private constant WETH = 0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2;

    uint8 public buyTotalFees = 50;
    uint8 public sellTotalFees = 50;

    uint8 public revFee = 50;
    uint8 public treasuryFee = 25;
    uint8 public teamFee = 25;

    bool private swapping;
    bool public limitsInEffect = true;
    bool private launched;

    mapping(address => uint256) private _balances;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFees;
    mapping(address => bool) private _isExcludedMaxTransactionAmount;
    mapping(address => bool) private automatedMarketMakerPairs;

    event SwapAndLiquify(uint256 tokensSwapped, uint256 teamETH, uint256 revETH, uint256 TreasuryETH);
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(address indexed owner, address indexed spender, uint256 value);

    IUniswapV2Router02 public constant uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D);
    address public immutable uniswapV2Pair;

    constructor() {
        uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).createPair(address(this), WETH);
        automatedMarketMakerPairs[uniswapV2Pair] = true;

        address airdropWallet = 0xBFd47a54aC9C1Fc039bA5cBa75c14Af8d0629795;

        setExcludedFromFees(owner(), true);
        setExcludedFromFees(address(0xdead), true);
        setExcludedFromFees(revWallet, true);

        setExcludedFromMaxTransaction(owner(), true);
        setExcludedFromMaxTransaction(address(uniswapV2Router), true);
        setExcludedFromMaxTransaction(address(0xdead), true);
        setExcludedFromMaxTransaction(address(uniswapV2Pair), true);
        setExcludedFromMaxTransaction(revWallet, true);

        // Treasury
        setExcludedFromFees(treasuryWallet, true);
        setExcludedFromMaxTransaction(treasuryWallet, true);
        _balances[treasuryWallet] = 308_230_692 * 1e18;
        emit Transfer(address(0), treasuryWallet, _balances[treasuryWallet]);

        // Team
        setExcludedFromFees(teamWallet, true);
        setExcludedFromMaxTransaction(teamWallet, true);
        _balances[teamWallet] = 184_938_415 * 1e18;
        emit Transfer(address(0), teamWallet, _balances[teamWallet]);

        // Seed
        setExcludedFromFees(seedWallet, true);
        setExcludedFromMaxTransaction(seedWallet, true);
        _balances[seedWallet] = 98_633_821 * 1e18;
        emit Transfer(address(0), seedWallet, _balances[seedWallet]);

        // Airdrop
        setExcludedFromFees(airdropWallet, true);
        setExcludedFromMaxTransaction(airdropWallet, true);
        _balances[airdropWallet] = 12_329_227 * 1e18;
        emit Transfer(address(0), airdropWallet, _balances[airdropWallet]);

        // InfoSec
        setExcludedFromFees(infoSecWallet, true);
        setExcludedFromMaxTransaction(infoSecWallet, true);
        _balances[infoSecWallet] = 12_329_227 * 1e18;
        emit Transfer(address(0), infoSecWallet, _balances[infoSecWallet]);

        // LP
        setExcludedFromFees(address(this), true);
        setExcludedFromMaxTransaction(address(this), true);
        _balances[address(this)] = 616_461_387 * 1e18; // ~50% --> ROUNDUP(616,461,384.5) + 2 XMW --> 616,461,387
        emit Transfer(address(0), address(this), _balances[address(this)]);

        _approve(address(this), address(uniswapV2Router), type(uint256).max);
    }

    receive() external payable {}

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

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

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

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

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

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

    function approve(address spender, uint256 amount) external returns (bool) {
        _approve(msg.sender, spender, amount);
        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 recipient, uint256 amount) external returns (bool) {
        _transfer(msg.sender, recipient, amount);
        return true;
    }

    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool) {
        uint256 currentAllowance = _allowances[sender][msg.sender];
        if (currentAllowance != type(uint256).max) {
            require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
            unchecked {
                _approve(sender, msg.sender, currentAllowance - amount);
            }
        }

        _transfer(sender, recipient, amount);

        return true;
    }

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

        if (!launched && (from != owner() && from != address(this) && to != owner())) {
            revert("Trading not enabled");
        }

        if (limitsInEffect) {
            if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) {
                if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) {
                    require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTx");
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                } else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) {
                    require(amount <= maxTransactionAmount,"Sell transfer amount exceeds the maxTx");
                } else if (!_isExcludedMaxTransactionAmount[to]) {
                    require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded");
                }
            }
        }

        bool canSwap = balanceOf(address(this)) >= swapTokensAtAmount;

        if (canSwap && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to]) {
            swapping = true;
            swapBack();
            swapping = false;
        }

        bool takeFee = !swapping;

        if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) {
            takeFee = false;
        }

        uint256 senderBalance = _balances[from];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");

        uint256 fees = 0;
        if (takeFee) {
            if (automatedMarketMakerPairs[to] && sellTotalFees > 0) {
                fees = (amount * sellTotalFees) / 1000;
            } else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) {
                fees = (amount * buyTotalFees) / 1000;
            }

            if (fees > 0) {
                unchecked {
                    amount = amount - fees;
                    _balances[from] -= fees;
                    _balances[address(this)] += fees;
                }
                emit Transfer(from, address(this), fees);
            }
        }
        unchecked {
            _balances[from] -= amount;
            _balances[to] += amount;
        }
        emit Transfer(from, to, amount);
    }

    function removeLimits() external onlyOwner {
        limitsInEffect = false;
    }

    function setDistributionFees(uint8 _RevFee, uint8 _TreasuryFee, uint8 _teamFee) external onlyOwner {
        revFee = _RevFee;
        treasuryFee = _TreasuryFee;
        teamFee = _teamFee;
        require((revFee + treasuryFee + teamFee) == 100, "Distribution have to be equal to 100%");
    }

    function setFees(uint8 _buyTotalFees, uint8 _sellTotalFees) external onlyOwner {
        require(_buyTotalFees <= 50, "Buy fees must be less than or equal to 5%");
        require(_sellTotalFees <= 50, "Sell fees must be less than or equal to 5%");
        buyTotalFees = _buyTotalFees;
        sellTotalFees = _sellTotalFees;
    }

    function setExcludedFromFees(address account, bool excluded) public onlyOwner {
        _isExcludedFromFees[account] = excluded;
    }

    function setExcludedFromMaxTransaction(address account, bool excluded) public onlyOwner {
        _isExcludedMaxTransactionAmount[account] = excluded;
    }

    function airdropWallets(address[] memory addresses, uint256[] memory amounts) external onlyOwner {
        require(!launched, "Already launched");
        for (uint256 i = 0; i < addresses.length; i++) {
            require(_balances[msg.sender] >= amounts[i], "ERC20: transfer amount exceeds balance");
            _balances[addresses[i]] += amounts[i];
            _balances[msg.sender] -= amounts[i];
            emit Transfer(msg.sender, addresses[i], amounts[i]);
        }
    }

    function openTrade() external onlyOwner {
        require(!launched, "Already launched");
        launched = true;
    }

    function itsMorphinTime() external payable onlyOwner {
        require(!launched, "Already launched");
        uniswapV2Router.addLiquidityETH{value: msg.value}(
            address(this),
            _balances[address(this)],
            0,
            0,
            teamWallet,
            block.timestamp
        );
    }

    function setAutomatedMarketMakerPair(address pair, bool value) external onlyOwner {
        require(pair != uniswapV2Pair, "The pair cannot be removed");
        automatedMarketMakerPairs[pair] = value;
    }

    function setSwapAtAmount(uint256 newSwapAmount) external onlyOwner {
        require(newSwapAmount >= (totalSupply() * 1) / 100000, "Swap amount cannot be lower than 0.001% of the supply");
        require(newSwapAmount <= (totalSupply() * 5) / 1000, "Swap amount cannot be higher than 0.5% of the supply");
        swapTokensAtAmount = newSwapAmount;
    }

    function setMaxTxnAmount(uint256 newMaxTx) external onlyOwner {
        require(newMaxTx >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set max transaction lower than 0.1%");
        maxTransactionAmount = newMaxTx * (10**18);
    }

    function setMaxWalletAmount(uint256 newMaxWallet) external onlyOwner {
        require(newMaxWallet >= ((totalSupply() * 1) / 1000) / 1e18, "Cannot set max wallet lower than 0.1%");
        maxWallet = newMaxWallet * (10**18);
    }

    function updateRevWallet(address newAddress) external onlyOwner {
        require(newAddress != address(0), "Address cannot be zero");
        revWallet = newAddress;
    }

    function updateTreasuryWallet(address newAddress) external onlyOwner {
        require(newAddress != address(0), "Address cannot be zero");
        treasuryWallet = newAddress;
    }

    function updateTeamWallet(address newAddress) external onlyOwner {
        require(newAddress != address(0), "Address cannot be zero");
        teamWallet = newAddress;
    }

    function excludedFromFee(address account) public view returns (bool) {
        return _isExcludedFromFees[account];
    }

    function withdrawStuckToken(address token, address to) external onlyOwner {
        uint256 _contractBalance = IERC20(token).balanceOf(address(this));
        SafeERC20.safeTransfer(token, to, _contractBalance);
    }

    function withdrawStuckETH(address addr) external onlyOwner {
        require(addr != address(0), "Invalid address");

        (bool success, ) = addr.call{value: address(this).balance}("");
        require(success, "Withdrawal failed");
    }

    function swapBack() private {
        uint256 swapThreshold = swapTokensAtAmount;
        bool success;

        if (balanceOf(address(this)) > swapTokensAtAmount * 20) {
            swapThreshold = swapTokensAtAmount * 20;
        }

        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = WETH;

        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(swapThreshold, 0, path, address(this), block.timestamp);

        uint256 ethBalance = address(this).balance;
        if (ethBalance > 0) {
            uint256 ethForRev = (ethBalance * revFee) / 100;
            uint256 ethForTeam = (ethBalance * teamFee) / 100;
            uint256 ethForTreasury = ethBalance - ethForRev - ethForTeam;

            (success, ) = address(teamWallet).call{value: ethForTeam}("");
            (success, ) = address(treasuryWallet).call{value: ethForTreasury}("");
            (success, ) = address(revWallet).call{value: ethForRev}("");

            emit SwapAndLiquify(swapThreshold, ethForTeam, ethForRev, ethForTreasury);
        }
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"teamETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"revETH","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"TreasuryETH","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"airdropWallets","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":"buyTotalFees","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"itsMorphinTime","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"openTrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"revFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_RevFee","type":"uint8"},{"internalType":"uint8","name":"_TreasuryFee","type":"uint8"},{"internalType":"uint8","name":"_teamFee","type":"uint8"}],"name":"setDistributionFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludedFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"setExcludedFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_buyTotalFees","type":"uint8"},{"internalType":"uint8","name":"_sellTotalFees","type":"uint8"}],"name":"setFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxTx","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMaxWallet","type":"uint256"}],"name":"setMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newSwapAmount","type":"uint256"}],"name":"setSwapAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"teamFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","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"},{"inputs":[],"name":"treasuryFee","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateRevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateTeamWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"updateTreasuryWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"withdrawStuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"address","name":"to","type":"address"}],"name":"withdrawStuckToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

60a0604052691a1bba1799b08c5400006001556a0a32d0ca04a66fbcb00000600255693437586dc5f9c9e0000060035573e99bf714c3440e987fbac072ff21d6375360a3e960045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073c616b2449e9765edf9ffb485da4242097129951960055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550734a73b5a416f5eafbf35452fbc7a547f25a1efc9560065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733d0bf65584046471d52e195a93fd0770d1d7f07360075f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073213f9c6751062068e21d6d341315b103470284b960085f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506032600860146101000a81548160ff021916908360ff1602179055506032600860156101000a81548160ff021916908360ff1602179055506032600860166101000a81548160ff021916908360ff1602179055506019600860176101000a81548160ff021916908360ff1602179055506019600860186101000a81548160ff021916908360ff16021790555060016008601a6101000a81548160ff02191690831515021790555034801562000286575f80fd5b50335f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000324573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200034a919062001305565b73ffffffffffffffffffffffffffffffffffffffff1663c9c653963073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26040518363ffffffff1660e01b81526004016200039a92919062001346565b6020604051808303815f875af1158015620003b7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620003dd919062001305565b73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250506001600d5f60805173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f73bfd47a54ac9c1fc039ba5cba75c14af8d06297959050620004a16200049362000efe60201b60201c565b600162000f2560201b60201c565b620004b661dead600162000f2560201b60201c565b620004ea60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600162000f2560201b60201c565b6200050c620004fe62000efe60201b60201c565b600162000ffd60201b60201c565b62000533737a250d5630b4cf539739df2c5dacb4c659f2488d600162000ffd60201b60201c565b6200054861dead600162000ffd60201b60201c565b6200055d608051600162000ffd60201b60201c565b6200059160045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600162000ffd60201b60201c565b620005c560055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600162000f2560201b60201c565b620005f960055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600162000ffd60201b60201c565b6afef6634b6e8b4c3210000060095f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60095f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546040516200074591906200138b565b60405180910390a36200078160065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600162000f2560201b60201c565b620007b560065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600162000ffd60201b60201c565b6a98fa3b90e22f09c95c000060095f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60095f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546040516200090191906200138b565b60405180910390a36200093d60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600162000f2560201b60201c565b6200097160075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600162000ffd60201b60201c565b6a51968626830f62ef54000060095f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60095f60075f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460405162000abd91906200138b565b60405180910390a362000ad881600162000f2560201b60201c565b62000aeb81600162000ffd60201b60201c565b6a0a32d0bc23efbc154c000060095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460405162000bd491906200138b565b60405180910390a362000c1060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600162000f2560201b60201c565b62000c4460085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600162000ffd60201b60201c565b6a0a32d0bc23efbc154c000060095f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555060085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60095f60085f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460405162000d9091906200138b565b60405180910390a362000dab30600162000f2560201b60201c565b62000dbe30600162000ffd60201b60201c565b6b01fdecc6c07f3ab35a4c000060095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055503073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205460405162000ea891906200138b565b60405180910390a362000ef730737a250d5630b4cf539739df2c5dacb4c659f2488d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff620010d560201b60201c565b506200154c565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b3373ffffffffffffffffffffffffffffffffffffffff1662000f4c62000efe60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000fa5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000f9c9062001404565b60405180910390fd5b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b3373ffffffffffffffffffffffffffffffffffffffff166200102462000efe60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200107d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620010749062001404565b60405180910390fd5b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362001146576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200113d9062001498565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620011b7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620011ae906200152c565b60405180910390fd5b80600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516200129391906200138b565b60405180910390a3505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f620012cf82620012a4565b9050919050565b620012e181620012c3565b8114620012ec575f80fd5b50565b5f81519050620012ff81620012d6565b92915050565b5f602082840312156200131d576200131c620012a0565b5b5f6200132c84828501620012ef565b91505092915050565b6200134081620012c3565b82525050565b5f6040820190506200135b5f83018562001335565b6200136a602083018462001335565b9392505050565b5f819050919050565b620013858162001371565b82525050565b5f602082019050620013a05f8301846200137a565b92915050565b5f82825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f620013ec602083620013a6565b9150620013f982620013b6565b602082019050919050565b5f6020820190508181035f8301526200141d81620013de565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f62001480602483620013a6565b91506200148d8262001424565b604082019050919050565b5f6020820190508181035f830152620014b18162001472565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f62001514602283620013a6565b91506200152182620014b8565b604082019050919050565b5f6020820190508181035f830152620015458162001506565b9050919050565b608051614eff6200156c5f395f8181610cd001526117430152614eff5ff3fe60806040526004361061023e575f3560e01c80637cb332bb1161012d578063cc32d176116100aa578063e2f456051161006e578063e2f4560514610831578063e71079471461085b578063f8b45b0514610883578063fb201b1d146108ad578063fd6c88a4146108c357610245565b8063cc32d1761461074f578063d201b01e14610779578063d7c94efd146107a1578063d85ba063146107cb578063dd62ed3e146107f557610245565b80639a7a23d6116100f15780639a7a23d614610671578063a9059cbb14610699578063adfa29e5146106d5578063bc205ad3146106fd578063c8c8ebe41461072557610245565b80637cb332bb14610591578063809d458d146105b957806385ecafd7146105e15780638da5cb5b1461061d57806395d89b411461064757610245565b80634a62bb65116101bb5780636a486a8e1161017f5780636a486a8e146104d757806370a0823114610501578063715018a61461053d57806374010ece14610553578063751039fc1461057b57610245565b80634a62bb651461040d5780634fcd244614610437578063590ffdce1461045f5780636402511e1461048757806366650dae146104af57610245565b806323b872dd1161020257806323b872dd1461032d57806327a14fc214610369578063313ce567146103915780633c090c46146103bb57806349bd5a5e146103e357610245565b806306fdde0314610249578063095ea7b3146102735780631694505e146102af57806318160ddd146102d957806321d37e391461030357610245565b3661024557005b5f80fd5b348015610254575f80fd5b5061025d6108cd565b60405161026a9190613631565b60405180910390f35b34801561027e575f80fd5b50610299600480360381019061029491906136ef565b61090a565b6040516102a69190613747565b60405180910390f35b3480156102ba575f80fd5b506102c3610920565b6040516102d091906137bb565b60405180910390f35b3480156102e4575f80fd5b506102ed610938565b6040516102fa91906137e3565b60405180910390f35b34801561030e575f80fd5b5061031761094b565b6040516103249190613817565b60405180910390f35b348015610338575f80fd5b50610353600480360381019061034e9190613830565b61095e565b6040516103609190613747565b60405180910390f35b348015610374575f80fd5b5061038f600480360381019061038a9190613880565b610a6a565b005b34801561039c575f80fd5b506103a5610b72565b6040516103b29190613817565b60405180910390f35b3480156103c6575f80fd5b506103e160048036038101906103dc91906138d5565b610b7a565b005b3480156103ee575f80fd5b506103f7610cce565b6040516104049190613934565b60405180910390f35b348015610418575f80fd5b50610421610cf2565b60405161042e9190613747565b60405180910390f35b348015610442575f80fd5b5061045d6004803603810190610458919061394d565b610d05565b005b34801561046a575f80fd5b50610485600480360381019061048091906139b5565b610e42565b005b348015610492575f80fd5b506104ad60048036038101906104a89190613880565b610f0f565b005b3480156104ba575f80fd5b506104d560048036038101906104d091906139b5565b611055565b005b3480156104e2575f80fd5b506104eb611122565b6040516104f89190613817565b60405180910390f35b34801561050c575f80fd5b50610527600480360381019061052291906139f3565b611135565b60405161053491906137e3565b60405180910390f35b348015610548575f80fd5b5061055161117b565b005b34801561055e575f80fd5b5061057960048036038101906105749190613880565b611231565b005b348015610586575f80fd5b5061058f611339565b005b34801561059c575f80fd5b506105b760048036038101906105b291906139f3565b6113ca565b005b3480156105c4575f80fd5b506105df60048036038101906105da91906139f3565b6114f0565b005b3480156105ec575f80fd5b50610607600480360381019061060291906139f3565b611616565b6040516106149190613747565b60405180910390f35b348015610628575f80fd5b50610631611668565b60405161063e9190613934565b60405180910390f35b348015610652575f80fd5b5061065b61168f565b6040516106689190613631565b60405180910390f35b34801561067c575f80fd5b50610697600480360381019061069291906139b5565b6116cc565b005b3480156106a4575f80fd5b506106bf60048036038101906106ba91906136ef565b611827565b6040516106cc9190613747565b60405180910390f35b3480156106e0575f80fd5b506106fb60048036038101906106f691906139f3565b61183d565b005b348015610708575f80fd5b50610723600480360381019061071e9190613a1e565b611963565b005b348015610730575f80fd5b50610739611a63565b60405161074691906137e3565b60405180910390f35b34801561075a575f80fd5b50610763611a69565b6040516107709190613817565b60405180910390f35b348015610784575f80fd5b5061079f600480360381019061079a91906139f3565b611a7c565b005b3480156107ac575f80fd5b506107b5611c0b565b6040516107c29190613817565b60405180910390f35b3480156107d6575f80fd5b506107df611c1e565b6040516107ec9190613817565b60405180910390f35b348015610800575f80fd5b5061081b60048036038101906108169190613a1e565b611c31565b60405161082891906137e3565b60405180910390f35b34801561083c575f80fd5b50610845611cb3565b60405161085291906137e3565b60405180910390f35b348015610866575f80fd5b50610881600480360381019061087c9190613c5c565b611cb9565b005b34801561088e575f80fd5b50610897611fc8565b6040516108a491906137e3565b60405180910390f35b3480156108b8575f80fd5b506108c1611fce565b005b6108cb6120b0565b005b60606040518060400160405280600981526020017f4d6f727068776172650000000000000000000000000000000000000000000000815250905090565b5f610916338484612271565b6001905092915050565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f6b03fbd98d3b9ae3e46fa40000905090565b600860169054906101000a900460ff1681565b5f80600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610a535782811015610a45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3c90613d42565b60405180910390fd5b610a528533858403612271565b5b610a5e858585612434565b60019150509392505050565b3373ffffffffffffffffffffffffffffffffffffffff16610a89611668565b73ffffffffffffffffffffffffffffffffffffffff1614610adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad690613daa565b60405180910390fd5b670de0b6b3a76400006103e86001610af5610938565b610aff9190613df5565b610b099190613e63565b610b139190613e63565b811015610b55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4c90613f03565b60405180910390fd5b670de0b6b3a764000081610b699190613df5565b60028190555050565b5f6012905090565b3373ffffffffffffffffffffffffffffffffffffffff16610b99611668565b73ffffffffffffffffffffffffffffffffffffffff1614610bef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be690613daa565b60405180910390fd5b82600860166101000a81548160ff021916908360ff16021790555081600860176101000a81548160ff021916908360ff16021790555080600860186101000a81548160ff021916908360ff1602179055506064600860189054906101000a900460ff16600860179054906101000a900460ff16600860169054906101000a900460ff16610c7c9190613f21565b610c869190613f21565b60ff1614610cc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc090613fc5565b60405180910390fd5b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6008601a9054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16610d24611668565b73ffffffffffffffffffffffffffffffffffffffff1614610d7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7190613daa565b60405180910390fd5b60328260ff161115610dc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db890614053565b60405180910390fd5b60328160ff161115610e08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dff906140e1565b60405180910390fd5b81600860146101000a81548160ff021916908360ff16021790555080600860156101000a81548160ff021916908360ff1602179055505050565b3373ffffffffffffffffffffffffffffffffffffffff16610e61611668565b73ffffffffffffffffffffffffffffffffffffffff1614610eb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eae90613daa565b60405180910390fd5b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b3373ffffffffffffffffffffffffffffffffffffffff16610f2e611668565b73ffffffffffffffffffffffffffffffffffffffff1614610f84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7b90613daa565b60405180910390fd5b620186a06001610f92610938565b610f9c9190613df5565b610fa69190613e63565b811015610fe8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdf9061416f565b60405180910390fd5b6103e86005610ff5610938565b610fff9190613df5565b6110099190613e63565b81111561104b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611042906141fd565b60405180910390fd5b8060038190555050565b3373ffffffffffffffffffffffffffffffffffffffff16611074611668565b73ffffffffffffffffffffffffffffffffffffffff16146110ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c190613daa565b60405180910390fd5b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b600860159054906101000a900460ff1681565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1661119a611668565b73ffffffffffffffffffffffffffffffffffffffff16146111f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e790613daa565b60405180910390fd5b5f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff16611250611668565b73ffffffffffffffffffffffffffffffffffffffff16146112a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129d90613daa565b60405180910390fd5b670de0b6b3a76400006103e860016112bc610938565b6112c69190613df5565b6112d09190613e63565b6112da9190613e63565b81101561131c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113139061428b565b60405180910390fd5b670de0b6b3a7640000816113309190613df5565b60018190555050565b3373ffffffffffffffffffffffffffffffffffffffff16611358611668565b73ffffffffffffffffffffffffffffffffffffffff16146113ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a590613daa565b60405180910390fd5b5f6008601a6101000a81548160ff021916908315150217905550565b3373ffffffffffffffffffffffffffffffffffffffff166113e9611668565b73ffffffffffffffffffffffffffffffffffffffff161461143f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143690613daa565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a4906142f3565b60405180910390fd5b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff1661150f611668565b73ffffffffffffffffffffffffffffffffffffffff1614611565576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155c90613daa565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ca906142f3565b60405180910390fd5b8060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f584d570000000000000000000000000000000000000000000000000000000000815250905090565b3373ffffffffffffffffffffffffffffffffffffffff166116eb611668565b73ffffffffffffffffffffffffffffffffffffffff1614611741576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173890613daa565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c69061435b565b60405180910390fd5b80600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f611833338484612434565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1661185c611668565b73ffffffffffffffffffffffffffffffffffffffff16146118b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a990613daa565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611920576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611917906142f3565b60405180910390fd5b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16611982611668565b73ffffffffffffffffffffffffffffffffffffffff16146119d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119cf90613daa565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611a129190613934565b602060405180830381865afa158015611a2d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a51919061438d565b9050611a5e83838361303c565b505050565b60015481565b600860179054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16611a9b611668565b73ffffffffffffffffffffffffffffffffffffffff1614611af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae890613daa565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5690614402565b60405180910390fd5b5f8173ffffffffffffffffffffffffffffffffffffffff1647604051611b849061444d565b5f6040518083038185875af1925050503d805f8114611bbe576040519150601f19603f3d011682016040523d82523d5f602084013e611bc3565b606091505b5050905080611c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfe906144ab565b60405180910390fd5b5050565b600860189054906101000a900460ff1681565b600860149054906101000a900460ff1681565b5f600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60035481565b3373ffffffffffffffffffffffffffffffffffffffff16611cd8611668565b73ffffffffffffffffffffffffffffffffffffffff1614611d2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2590613daa565b60405180910390fd5b6008601b9054906101000a900460ff1615611d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7590614513565b60405180910390fd5b5f5b8251811015611fc357818181518110611d9c57611d9b614531565b5b602002602001015160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611e23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1a906145ce565b60405180910390fd5b818181518110611e3657611e35614531565b5b602002602001015160095f858481518110611e5457611e53614531565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611ea391906145ec565b92505081905550818181518110611ebd57611ebc614531565b5b602002602001015160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611f10919061461f565b92505081905550828181518110611f2a57611f29614531565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef848481518110611f9357611f92614531565b5b6020026020010151604051611fa891906137e3565b60405180910390a38080611fbb90614652565b915050611d80565b505050565b60025481565b3373ffffffffffffffffffffffffffffffffffffffff16611fed611668565b73ffffffffffffffffffffffffffffffffffffffff1614612043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203a90613daa565b60405180910390fd5b6008601b9054906101000a900460ff1615612093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208a90614513565b60405180910390fd5b60016008601b6101000a81548160ff021916908315150217905550565b3373ffffffffffffffffffffffffffffffffffffffff166120cf611668565b73ffffffffffffffffffffffffffffffffffffffff1614612125576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211c90613daa565b60405180910390fd5b6008601b9054906101000a900460ff1615612175576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216c90614513565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d719343060095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20545f8060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161222b969594939291906146d2565b60606040518083038185885af1158015612247573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061226c9190614731565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036122df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d6906147f1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361234d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123449061487f565b60405180910390fd5b80600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161242791906137e3565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036124a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124999061490d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612510576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125079061499b565b60405180910390fd5b5f8111612552576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254990614a29565b60405180910390fd5b6008601b9054906101000a900460ff161580156126195750612572611668565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156125d957503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561261857506125e8611668565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b5b15612659576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265090614a91565b60405180910390fd5b6008601a9054906101000a900460ff1615612a4f57612676611668565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156126e457506126b4611668565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561271c57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612756575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561276f5750600860199054906101000a900460ff16155b15612a4e57600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156128115750600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156128b85760015481111561285b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285290614b1f565b60405180910390fd5b60025461286783611135565b8261287291906145ec565b11156128b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128aa90614b87565b60405180910390fd5b612a4d565b600d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156129555750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156129a45760015481111561299f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299690614c15565b60405180910390fd5b612a4c565b600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612a4b576002546129fe83611135565b82612a0991906145ec565b1115612a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4190614b87565b60405180910390fd5b5b5b5b5b5b5f600354612a5c30611135565b10159050808015612a7a5750600860199054906101000a900460ff16155b8015612acd5750600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612b205750600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612b735750600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612bb6576001600860196101000a81548160ff021916908315150217905550612b9b61318b565b5f600860196101000a81548160ff0219169083151502179055505b5f600860199054906101000a900460ff16159050600b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612c655750600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612c6e575f90505b5f60095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905083811015612cf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce9906145ce565b60405180910390fd5b5f8215612f3a57600d5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612d6057505f600860159054906101000a900460ff1660ff16115b15612d97576103e8600860159054906101000a900460ff1660ff1686612d869190613df5565b612d909190613e63565b9050612e32565b600d5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612dfe57505f600860149054906101000a900460ff1660ff16115b15612e31576103e8600860149054906101000a900460ff1660ff1686612e249190613df5565b612e2e9190613e63565b90505b5b5f811115612f395780850394508060095f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055508060095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612f3091906137e3565b60405180910390a35b5b8460095f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055508460095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8760405161302b91906137e3565b60405180910390a350505050505050565b5f808473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60e01b8585604051602401613070929190614c33565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516130da9190614c94565b5f604051808303815f865af19150503d805f8114613113576040519150601f19603f3d011682016040523d82523d5f602084013e613118565b606091505b509150915081801561314557505f815114806131445750808060200190518101906131439190614cbe565b5b5b613184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161317b90614d59565b60405180910390fd5b5050505050565b5f60035490505f60146003546131a19190613df5565b6131aa30611135565b11156131c25760146003546131bf9190613df5565b91505b5f600267ffffffffffffffff8111156131de576131dd613a60565b5b60405190808252806020026020018201604052801561320c5781602001602082028036833780820191505090505b50905030815f8151811061322357613222614531565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061328657613285614531565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8430426040518663ffffffff1660e01b8152600401613315959493929190614e2e565b5f604051808303815f87803b15801561332c575f80fd5b505af115801561333e573d5f803e3d5ffd5b505050505f4790505f8111156135a1575f6064600860169054906101000a900460ff1660ff168361336f9190613df5565b6133799190613e63565b90505f6064600860189054906101000a900460ff1660ff168461339c9190613df5565b6133a69190613e63565b90505f8183856133b6919061461f565b6133c0919061461f565b905060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516134079061444d565b5f6040518083038185875af1925050503d805f8114613441576040519150601f19603f3d011682016040523d82523d5f602084013e613446565b606091505b50508096505060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816040516134919061444d565b5f6040518083038185875af1925050503d805f81146134cb576040519150601f19603f3d011682016040523d82523d5f602084013e6134d0565b606091505b50508096505060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168360405161351b9061444d565b5f6040518083038185875af1925050503d805f8114613555576040519150601f19603f3d011682016040523d82523d5f602084013e61355a565b606091505b5050809650507f93efcf28fbf701a930e0ad258987a2e4f08eb3aa99f9c02029e7ba049f69405f878385846040516135959493929190614e86565b60405180910390a15050505b50505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156135de5780820151818401526020810190506135c3565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613603826135a7565b61360d81856135b1565b935061361d8185602086016135c1565b613626816135e9565b840191505092915050565b5f6020820190508181035f83015261364981846135f9565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61368b82613662565b9050919050565b61369b81613681565b81146136a5575f80fd5b50565b5f813590506136b681613692565b92915050565b5f819050919050565b6136ce816136bc565b81146136d8575f80fd5b50565b5f813590506136e9816136c5565b92915050565b5f80604083850312156137055761370461365a565b5b5f613712858286016136a8565b9250506020613723858286016136db565b9150509250929050565b5f8115159050919050565b6137418161372d565b82525050565b5f60208201905061375a5f830184613738565b92915050565b5f819050919050565b5f61378361377e61377984613662565b613760565b613662565b9050919050565b5f61379482613769565b9050919050565b5f6137a58261378a565b9050919050565b6137b58161379b565b82525050565b5f6020820190506137ce5f8301846137ac565b92915050565b6137dd816136bc565b82525050565b5f6020820190506137f65f8301846137d4565b92915050565b5f60ff82169050919050565b613811816137fc565b82525050565b5f60208201905061382a5f830184613808565b92915050565b5f805f606084860312156138475761384661365a565b5b5f613854868287016136a8565b9350506020613865868287016136a8565b9250506040613876868287016136db565b9150509250925092565b5f602082840312156138955761389461365a565b5b5f6138a2848285016136db565b91505092915050565b6138b4816137fc565b81146138be575f80fd5b50565b5f813590506138cf816138ab565b92915050565b5f805f606084860312156138ec576138eb61365a565b5b5f6138f9868287016138c1565b935050602061390a868287016138c1565b925050604061391b868287016138c1565b9150509250925092565b61392e81613681565b82525050565b5f6020820190506139475f830184613925565b92915050565b5f80604083850312156139635761396261365a565b5b5f613970858286016138c1565b9250506020613981858286016138c1565b9150509250929050565b6139948161372d565b811461399e575f80fd5b50565b5f813590506139af8161398b565b92915050565b5f80604083850312156139cb576139ca61365a565b5b5f6139d8858286016136a8565b92505060206139e9858286016139a1565b9150509250929050565b5f60208284031215613a0857613a0761365a565b5b5f613a15848285016136a8565b91505092915050565b5f8060408385031215613a3457613a3361365a565b5b5f613a41858286016136a8565b9250506020613a52858286016136a8565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b613a96826135e9565b810181811067ffffffffffffffff82111715613ab557613ab4613a60565b5b80604052505050565b5f613ac7613651565b9050613ad38282613a8d565b919050565b5f67ffffffffffffffff821115613af257613af1613a60565b5b602082029050602081019050919050565b5f80fd5b5f613b19613b1484613ad8565b613abe565b90508083825260208201905060208402830185811115613b3c57613b3b613b03565b5b835b81811015613b655780613b5188826136a8565b845260208401935050602081019050613b3e565b5050509392505050565b5f82601f830112613b8357613b82613a5c565b5b8135613b93848260208601613b07565b91505092915050565b5f67ffffffffffffffff821115613bb657613bb5613a60565b5b602082029050602081019050919050565b5f613bd9613bd484613b9c565b613abe565b90508083825260208201905060208402830185811115613bfc57613bfb613b03565b5b835b81811015613c255780613c1188826136db565b845260208401935050602081019050613bfe565b5050509392505050565b5f82601f830112613c4357613c42613a5c565b5b8135613c53848260208601613bc7565b91505092915050565b5f8060408385031215613c7257613c7161365a565b5b5f83013567ffffffffffffffff811115613c8f57613c8e61365e565b5b613c9b85828601613b6f565b925050602083013567ffffffffffffffff811115613cbc57613cbb61365e565b5b613cc885828601613c2f565b9150509250929050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613d2c6028836135b1565b9150613d3782613cd2565b604082019050919050565b5f6020820190508181035f830152613d5981613d20565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613d946020836135b1565b9150613d9f82613d60565b602082019050919050565b5f6020820190508181035f830152613dc181613d88565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613dff826136bc565b9150613e0a836136bc565b9250828202613e18816136bc565b91508282048414831517613e2f57613e2e613dc8565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613e6d826136bc565b9150613e78836136bc565b925082613e8857613e87613e36565b5b828204905092915050565b7f43616e6e6f7420736574206d61782077616c6c6574206c6f776572207468616e5f8201527f20302e3125000000000000000000000000000000000000000000000000000000602082015250565b5f613eed6025836135b1565b9150613ef882613e93565b604082019050919050565b5f6020820190508181035f830152613f1a81613ee1565b9050919050565b5f613f2b826137fc565b9150613f36836137fc565b9250828201905060ff811115613f4f57613f4e613dc8565b5b92915050565b7f446973747269627574696f6e206861766520746f20626520657175616c20746f5f8201527f2031303025000000000000000000000000000000000000000000000000000000602082015250565b5f613faf6025836135b1565b9150613fba82613f55565b604082019050919050565b5f6020820190508181035f830152613fdc81613fa3565b9050919050565b7f4275792066656573206d757374206265206c657373207468616e206f722065715f8201527f75616c20746f2035250000000000000000000000000000000000000000000000602082015250565b5f61403d6029836135b1565b915061404882613fe3565b604082019050919050565b5f6020820190508181035f83015261406a81614031565b9050919050565b7f53656c6c2066656573206d757374206265206c657373207468616e206f7220655f8201527f7175616c20746f20352500000000000000000000000000000000000000000000602082015250565b5f6140cb602a836135b1565b91506140d682614071565b604082019050919050565b5f6020820190508181035f8301526140f8816140bf565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e30303125206f662074686520737570706c790000000000000000000000602082015250565b5f6141596035836135b1565b9150614164826140ff565b604082019050919050565b5f6020820190508181035f8301526141868161414d565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20302e3525206f662074686520737570706c79000000000000000000000000602082015250565b5f6141e76034836135b1565b91506141f28261418d565b604082019050919050565b5f6020820190508181035f830152614214816141db565b9050919050565b7f43616e6e6f7420736574206d6178207472616e73616374696f6e206c6f7765725f8201527f207468616e20302e312500000000000000000000000000000000000000000000602082015250565b5f614275602a836135b1565b91506142808261421b565b604082019050919050565b5f6020820190508181035f8301526142a281614269565b9050919050565b7f416464726573732063616e6e6f74206265207a65726f000000000000000000005f82015250565b5f6142dd6016836135b1565b91506142e8826142a9565b602082019050919050565b5f6020820190508181035f83015261430a816142d1565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665640000000000005f82015250565b5f614345601a836135b1565b915061435082614311565b602082019050919050565b5f6020820190508181035f83015261437281614339565b9050919050565b5f81519050614387816136c5565b92915050565b5f602082840312156143a2576143a161365a565b5b5f6143af84828501614379565b91505092915050565b7f496e76616c6964206164647265737300000000000000000000000000000000005f82015250565b5f6143ec600f836135b1565b91506143f7826143b8565b602082019050919050565b5f6020820190508181035f830152614419816143e0565b9050919050565b5f81905092915050565b50565b5f6144385f83614420565b91506144438261442a565b5f82019050919050565b5f6144578261442d565b9150819050919050565b7f5769746864726177616c206661696c65640000000000000000000000000000005f82015250565b5f6144956011836135b1565b91506144a082614461565b602082019050919050565b5f6020820190508181035f8301526144c281614489565b9050919050565b7f416c7265616479206c61756e63686564000000000000000000000000000000005f82015250565b5f6144fd6010836135b1565b9150614508826144c9565b602082019050919050565b5f6020820190508181035f83015261452a816144f1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6145b86026836135b1565b91506145c38261455e565b604082019050919050565b5f6020820190508181035f8301526145e5816145ac565b9050919050565b5f6145f6826136bc565b9150614601836136bc565b925082820190508082111561461957614618613dc8565b5b92915050565b5f614629826136bc565b9150614634836136bc565b925082820390508181111561464c5761464b613dc8565b5b92915050565b5f61465c826136bc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361468e5761468d613dc8565b5b600182019050919050565b5f819050919050565b5f6146bc6146b76146b284614699565b613760565b6136bc565b9050919050565b6146cc816146a2565b82525050565b5f60c0820190506146e55f830189613925565b6146f260208301886137d4565b6146ff60408301876146c3565b61470c60608301866146c3565b6147196080830185613925565b61472660a08301846137d4565b979650505050505050565b5f805f606084860312156147485761474761365a565b5b5f61475586828701614379565b935050602061476686828701614379565b925050604061477786828701614379565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6147db6024836135b1565b91506147e682614781565b604082019050919050565b5f6020820190508181035f830152614808816147cf565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6148696022836135b1565b91506148748261480f565b604082019050919050565b5f6020820190508181035f8301526148968161485d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6148f76025836135b1565b91506149028261489d565b604082019050919050565b5f6020820190508181035f830152614924816148eb565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6149856023836135b1565b91506149908261492b565b604082019050919050565b5f6020820190508181035f8301526149b281614979565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f614a136029836135b1565b9150614a1e826149b9565b604082019050919050565b5f6020820190508181035f830152614a4081614a07565b9050919050565b7f54726164696e67206e6f7420656e61626c6564000000000000000000000000005f82015250565b5f614a7b6013836135b1565b9150614a8682614a47565b602082019050919050565b5f6020820190508181035f830152614aa881614a6f565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785478000000000000000000000000000000000000000000000000000000602082015250565b5f614b096025836135b1565b9150614b1482614aaf565b604082019050919050565b5f6020820190508181035f830152614b3681614afd565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f614b716013836135b1565b9150614b7c82614b3d565b602082019050919050565b5f6020820190508181035f830152614b9e81614b65565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d617854780000000000000000000000000000000000000000000000000000602082015250565b5f614bff6026836135b1565b9150614c0a82614ba5565b604082019050919050565b5f6020820190508181035f830152614c2c81614bf3565b9050919050565b5f604082019050614c465f830185613925565b614c5360208301846137d4565b9392505050565b5f81519050919050565b5f614c6e82614c5a565b614c788185614420565b9350614c888185602086016135c1565b80840191505092915050565b5f614c9f8284614c64565b915081905092915050565b5f81519050614cb88161398b565b92915050565b5f60208284031215614cd357614cd261365a565b5b5f614ce084828501614caa565b91505092915050565b7f5472616e7366657248656c7065723a20494e5445524e414c205452414e5346455f8201527f525f4641494c4544000000000000000000000000000000000000000000000000602082015250565b5f614d436028836135b1565b9150614d4e82614ce9565b604082019050919050565b5f6020820190508181035f830152614d7081614d37565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614da981613681565b82525050565b5f614dba8383614da0565b60208301905092915050565b5f602082019050919050565b5f614ddc82614d77565b614de68185614d81565b9350614df183614d91565b805f5b83811015614e21578151614e088882614daf565b9750614e1383614dc6565b925050600181019050614df4565b5085935050505092915050565b5f60a082019050614e415f8301886137d4565b614e4e60208301876146c3565b8181036040830152614e608186614dd2565b9050614e6f6060830185613925565b614e7c60808301846137d4565b9695505050505050565b5f608082019050614e995f8301876137d4565b614ea660208301866137d4565b614eb360408301856137d4565b614ec060608301846137d4565b9594505050505056fea2646970667358221220d95f6c52f227978529dce81fe3ee5af3049d7783c250b148d46fb36631828af364736f6c63430008150033

Deployed Bytecode

0x60806040526004361061023e575f3560e01c80637cb332bb1161012d578063cc32d176116100aa578063e2f456051161006e578063e2f4560514610831578063e71079471461085b578063f8b45b0514610883578063fb201b1d146108ad578063fd6c88a4146108c357610245565b8063cc32d1761461074f578063d201b01e14610779578063d7c94efd146107a1578063d85ba063146107cb578063dd62ed3e146107f557610245565b80639a7a23d6116100f15780639a7a23d614610671578063a9059cbb14610699578063adfa29e5146106d5578063bc205ad3146106fd578063c8c8ebe41461072557610245565b80637cb332bb14610591578063809d458d146105b957806385ecafd7146105e15780638da5cb5b1461061d57806395d89b411461064757610245565b80634a62bb65116101bb5780636a486a8e1161017f5780636a486a8e146104d757806370a0823114610501578063715018a61461053d57806374010ece14610553578063751039fc1461057b57610245565b80634a62bb651461040d5780634fcd244614610437578063590ffdce1461045f5780636402511e1461048757806366650dae146104af57610245565b806323b872dd1161020257806323b872dd1461032d57806327a14fc214610369578063313ce567146103915780633c090c46146103bb57806349bd5a5e146103e357610245565b806306fdde0314610249578063095ea7b3146102735780631694505e146102af57806318160ddd146102d957806321d37e391461030357610245565b3661024557005b5f80fd5b348015610254575f80fd5b5061025d6108cd565b60405161026a9190613631565b60405180910390f35b34801561027e575f80fd5b50610299600480360381019061029491906136ef565b61090a565b6040516102a69190613747565b60405180910390f35b3480156102ba575f80fd5b506102c3610920565b6040516102d091906137bb565b60405180910390f35b3480156102e4575f80fd5b506102ed610938565b6040516102fa91906137e3565b60405180910390f35b34801561030e575f80fd5b5061031761094b565b6040516103249190613817565b60405180910390f35b348015610338575f80fd5b50610353600480360381019061034e9190613830565b61095e565b6040516103609190613747565b60405180910390f35b348015610374575f80fd5b5061038f600480360381019061038a9190613880565b610a6a565b005b34801561039c575f80fd5b506103a5610b72565b6040516103b29190613817565b60405180910390f35b3480156103c6575f80fd5b506103e160048036038101906103dc91906138d5565b610b7a565b005b3480156103ee575f80fd5b506103f7610cce565b6040516104049190613934565b60405180910390f35b348015610418575f80fd5b50610421610cf2565b60405161042e9190613747565b60405180910390f35b348015610442575f80fd5b5061045d6004803603810190610458919061394d565b610d05565b005b34801561046a575f80fd5b50610485600480360381019061048091906139b5565b610e42565b005b348015610492575f80fd5b506104ad60048036038101906104a89190613880565b610f0f565b005b3480156104ba575f80fd5b506104d560048036038101906104d091906139b5565b611055565b005b3480156104e2575f80fd5b506104eb611122565b6040516104f89190613817565b60405180910390f35b34801561050c575f80fd5b50610527600480360381019061052291906139f3565b611135565b60405161053491906137e3565b60405180910390f35b348015610548575f80fd5b5061055161117b565b005b34801561055e575f80fd5b5061057960048036038101906105749190613880565b611231565b005b348015610586575f80fd5b5061058f611339565b005b34801561059c575f80fd5b506105b760048036038101906105b291906139f3565b6113ca565b005b3480156105c4575f80fd5b506105df60048036038101906105da91906139f3565b6114f0565b005b3480156105ec575f80fd5b50610607600480360381019061060291906139f3565b611616565b6040516106149190613747565b60405180910390f35b348015610628575f80fd5b50610631611668565b60405161063e9190613934565b60405180910390f35b348015610652575f80fd5b5061065b61168f565b6040516106689190613631565b60405180910390f35b34801561067c575f80fd5b50610697600480360381019061069291906139b5565b6116cc565b005b3480156106a4575f80fd5b506106bf60048036038101906106ba91906136ef565b611827565b6040516106cc9190613747565b60405180910390f35b3480156106e0575f80fd5b506106fb60048036038101906106f691906139f3565b61183d565b005b348015610708575f80fd5b50610723600480360381019061071e9190613a1e565b611963565b005b348015610730575f80fd5b50610739611a63565b60405161074691906137e3565b60405180910390f35b34801561075a575f80fd5b50610763611a69565b6040516107709190613817565b60405180910390f35b348015610784575f80fd5b5061079f600480360381019061079a91906139f3565b611a7c565b005b3480156107ac575f80fd5b506107b5611c0b565b6040516107c29190613817565b60405180910390f35b3480156107d6575f80fd5b506107df611c1e565b6040516107ec9190613817565b60405180910390f35b348015610800575f80fd5b5061081b60048036038101906108169190613a1e565b611c31565b60405161082891906137e3565b60405180910390f35b34801561083c575f80fd5b50610845611cb3565b60405161085291906137e3565b60405180910390f35b348015610866575f80fd5b50610881600480360381019061087c9190613c5c565b611cb9565b005b34801561088e575f80fd5b50610897611fc8565b6040516108a491906137e3565b60405180910390f35b3480156108b8575f80fd5b506108c1611fce565b005b6108cb6120b0565b005b60606040518060400160405280600981526020017f4d6f727068776172650000000000000000000000000000000000000000000000815250905090565b5f610916338484612271565b6001905092915050565b737a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f6b03fbd98d3b9ae3e46fa40000905090565b600860169054906101000a900460ff1681565b5f80600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610a535782811015610a45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3c90613d42565b60405180910390fd5b610a528533858403612271565b5b610a5e858585612434565b60019150509392505050565b3373ffffffffffffffffffffffffffffffffffffffff16610a89611668565b73ffffffffffffffffffffffffffffffffffffffff1614610adf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ad690613daa565b60405180910390fd5b670de0b6b3a76400006103e86001610af5610938565b610aff9190613df5565b610b099190613e63565b610b139190613e63565b811015610b55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4c90613f03565b60405180910390fd5b670de0b6b3a764000081610b699190613df5565b60028190555050565b5f6012905090565b3373ffffffffffffffffffffffffffffffffffffffff16610b99611668565b73ffffffffffffffffffffffffffffffffffffffff1614610bef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610be690613daa565b60405180910390fd5b82600860166101000a81548160ff021916908360ff16021790555081600860176101000a81548160ff021916908360ff16021790555080600860186101000a81548160ff021916908360ff1602179055506064600860189054906101000a900460ff16600860179054906101000a900460ff16600860169054906101000a900460ff16610c7c9190613f21565b610c869190613f21565b60ff1614610cc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cc090613fc5565b60405180910390fd5b505050565b7f0000000000000000000000000da7096f14303eddd634c0241963c064e024498481565b6008601a9054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16610d24611668565b73ffffffffffffffffffffffffffffffffffffffff1614610d7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7190613daa565b60405180910390fd5b60328260ff161115610dc1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610db890614053565b60405180910390fd5b60328160ff161115610e08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dff906140e1565b60405180910390fd5b81600860146101000a81548160ff021916908360ff16021790555080600860156101000a81548160ff021916908360ff1602179055505050565b3373ffffffffffffffffffffffffffffffffffffffff16610e61611668565b73ffffffffffffffffffffffffffffffffffffffff1614610eb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eae90613daa565b60405180910390fd5b80600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b3373ffffffffffffffffffffffffffffffffffffffff16610f2e611668565b73ffffffffffffffffffffffffffffffffffffffff1614610f84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f7b90613daa565b60405180910390fd5b620186a06001610f92610938565b610f9c9190613df5565b610fa69190613e63565b811015610fe8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fdf9061416f565b60405180910390fd5b6103e86005610ff5610938565b610fff9190613df5565b6110099190613e63565b81111561104b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611042906141fd565b60405180910390fd5b8060038190555050565b3373ffffffffffffffffffffffffffffffffffffffff16611074611668565b73ffffffffffffffffffffffffffffffffffffffff16146110ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110c190613daa565b60405180910390fd5b80600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b600860159054906101000a900460ff1681565b5f60095f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b3373ffffffffffffffffffffffffffffffffffffffff1661119a611668565b73ffffffffffffffffffffffffffffffffffffffff16146111f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e790613daa565b60405180910390fd5b5f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b3373ffffffffffffffffffffffffffffffffffffffff16611250611668565b73ffffffffffffffffffffffffffffffffffffffff16146112a6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161129d90613daa565b60405180910390fd5b670de0b6b3a76400006103e860016112bc610938565b6112c69190613df5565b6112d09190613e63565b6112da9190613e63565b81101561131c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113139061428b565b60405180910390fd5b670de0b6b3a7640000816113309190613df5565b60018190555050565b3373ffffffffffffffffffffffffffffffffffffffff16611358611668565b73ffffffffffffffffffffffffffffffffffffffff16146113ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a590613daa565b60405180910390fd5b5f6008601a6101000a81548160ff021916908315150217905550565b3373ffffffffffffffffffffffffffffffffffffffff166113e9611668565b73ffffffffffffffffffffffffffffffffffffffff161461143f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143690613daa565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036114ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a4906142f3565b60405180910390fd5b8060065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff1661150f611668565b73ffffffffffffffffffffffffffffffffffffffff1614611565576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155c90613daa565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ca906142f3565b60405180910390fd5b8060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f600b5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606040518060400160405280600381526020017f584d570000000000000000000000000000000000000000000000000000000000815250905090565b3373ffffffffffffffffffffffffffffffffffffffff166116eb611668565b73ffffffffffffffffffffffffffffffffffffffff1614611741576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173890613daa565b60405180910390fd5b7f0000000000000000000000000da7096f14303eddd634c0241963c064e024498473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117c69061435b565b60405180910390fd5b80600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505050565b5f611833338484612434565b6001905092915050565b3373ffffffffffffffffffffffffffffffffffffffff1661185c611668565b73ffffffffffffffffffffffffffffffffffffffff16146118b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a990613daa565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611920576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611917906142f3565b60405180910390fd5b8060045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b3373ffffffffffffffffffffffffffffffffffffffff16611982611668565b73ffffffffffffffffffffffffffffffffffffffff16146119d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119cf90613daa565b60405180910390fd5b5f8273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611a129190613934565b602060405180830381865afa158015611a2d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a51919061438d565b9050611a5e83838361303c565b505050565b60015481565b600860179054906101000a900460ff1681565b3373ffffffffffffffffffffffffffffffffffffffff16611a9b611668565b73ffffffffffffffffffffffffffffffffffffffff1614611af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae890613daa565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b5f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5690614402565b60405180910390fd5b5f8173ffffffffffffffffffffffffffffffffffffffff1647604051611b849061444d565b5f6040518083038185875af1925050503d805f8114611bbe576040519150601f19603f3d011682016040523d82523d5f602084013e611bc3565b606091505b5050905080611c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfe906144ab565b60405180910390fd5b5050565b600860189054906101000a900460ff1681565b600860149054906101000a900460ff1681565b5f600a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60035481565b3373ffffffffffffffffffffffffffffffffffffffff16611cd8611668565b73ffffffffffffffffffffffffffffffffffffffff1614611d2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2590613daa565b60405180910390fd5b6008601b9054906101000a900460ff1615611d7e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7590614513565b60405180910390fd5b5f5b8251811015611fc357818181518110611d9c57611d9b614531565b5b602002602001015160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20541015611e23576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1a906145ce565b60405180910390fd5b818181518110611e3657611e35614531565b5b602002602001015160095f858481518110611e5457611e53614531565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611ea391906145ec565b92505081905550818181518110611ebd57611ebc614531565b5b602002602001015160095f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f828254611f10919061461f565b92505081905550828181518110611f2a57611f29614531565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef848481518110611f9357611f92614531565b5b6020026020010151604051611fa891906137e3565b60405180910390a38080611fbb90614652565b915050611d80565b505050565b60025481565b3373ffffffffffffffffffffffffffffffffffffffff16611fed611668565b73ffffffffffffffffffffffffffffffffffffffff1614612043576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203a90613daa565b60405180910390fd5b6008601b9054906101000a900460ff1615612093576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161208a90614513565b60405180910390fd5b60016008601b6101000a81548160ff021916908315150217905550565b3373ffffffffffffffffffffffffffffffffffffffff166120cf611668565b73ffffffffffffffffffffffffffffffffffffffff1614612125576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161211c90613daa565b60405180910390fd5b6008601b9054906101000a900460ff1615612175576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216c90614513565b60405180910390fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d719343060095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20545f8060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161222b969594939291906146d2565b60606040518083038185885af1158015612247573d5f803e3d5ffd5b50505050506040513d601f19601f8201168201806040525081019061226c9190614731565b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036122df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122d6906147f1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361234d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123449061487f565b60405180910390fd5b80600a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161242791906137e3565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036124a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124999061490d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612510576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125079061499b565b60405180910390fd5b5f8111612552576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161254990614a29565b60405180910390fd5b6008601b9054906101000a900460ff161580156126195750612572611668565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156125d957503073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561261857506125e8611668565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b5b15612659576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161265090614a91565b60405180910390fd5b6008601a9054906101000a900460ff1615612a4f57612676611668565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156126e457506126b4611668565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561271c57505f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015612756575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561276f5750600860199054906101000a900460ff16155b15612a4e57600d5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156128115750600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156128b85760015481111561285b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161285290614b1f565b60405180910390fd5b60025461286783611135565b8261287291906145ec565b11156128b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128aa90614b87565b60405180910390fd5b612a4d565b600d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156129555750600c5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b156129a45760015481111561299f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161299690614c15565b60405180910390fd5b612a4c565b600c5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16612a4b576002546129fe83611135565b82612a0991906145ec565b1115612a4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4190614b87565b60405180910390fd5b5b5b5b5b5b5f600354612a5c30611135565b10159050808015612a7a5750600860199054906101000a900460ff16155b8015612acd5750600d5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612b205750600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015612b735750600b5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15612bb6576001600860196101000a81548160ff021916908315150217905550612b9b61318b565b5f600860196101000a81548160ff0219169083151502179055505b5f600860199054906101000a900460ff16159050600b5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612c655750600b5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612c6e575f90505b5f60095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905083811015612cf2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce9906145ce565b60405180910390fd5b5f8215612f3a57600d5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612d6057505f600860159054906101000a900460ff1660ff16115b15612d97576103e8600860159054906101000a900460ff1660ff1686612d869190613df5565b612d909190613e63565b9050612e32565b600d5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015612dfe57505f600860149054906101000a900460ff1660ff16115b15612e31576103e8600860149054906101000a900460ff1660ff1686612e249190613df5565b612e2e9190613e63565b90505b5b5f811115612f395780850394508060095f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055508060095f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055503073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612f3091906137e3565b60405180910390a35b5b8460095f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825403925050819055508460095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8760405161302b91906137e3565b60405180910390a350505050505050565b5f808473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60e01b8585604051602401613070929190614c33565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516130da9190614c94565b5f604051808303815f865af19150503d805f8114613113576040519150601f19603f3d011682016040523d82523d5f602084013e613118565b606091505b509150915081801561314557505f815114806131445750808060200190518101906131439190614cbe565b5b5b613184576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161317b90614d59565b60405180910390fd5b5050505050565b5f60035490505f60146003546131a19190613df5565b6131aa30611135565b11156131c25760146003546131bf9190613df5565b91505b5f600267ffffffffffffffff8111156131de576131dd613a60565b5b60405190808252806020026020018201604052801561320c5781602001602082028036833780820191505090505b50905030815f8151811061322357613222614531565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc28160018151811061328657613285614531565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947845f8430426040518663ffffffff1660e01b8152600401613315959493929190614e2e565b5f604051808303815f87803b15801561332c575f80fd5b505af115801561333e573d5f803e3d5ffd5b505050505f4790505f8111156135a1575f6064600860169054906101000a900460ff1660ff168361336f9190613df5565b6133799190613e63565b90505f6064600860189054906101000a900460ff1660ff168461339c9190613df5565b6133a69190613e63565b90505f8183856133b6919061461f565b6133c0919061461f565b905060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16826040516134079061444d565b5f6040518083038185875af1925050503d805f8114613441576040519150601f19603f3d011682016040523d82523d5f602084013e613446565b606091505b50508096505060055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16816040516134919061444d565b5f6040518083038185875af1925050503d805f81146134cb576040519150601f19603f3d011682016040523d82523d5f602084013e6134d0565b606091505b50508096505060045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168360405161351b9061444d565b5f6040518083038185875af1925050503d805f8114613555576040519150601f19603f3d011682016040523d82523d5f602084013e61355a565b606091505b5050809650507f93efcf28fbf701a930e0ad258987a2e4f08eb3aa99f9c02029e7ba049f69405f878385846040516135959493929190614e86565b60405180910390a15050505b50505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b838110156135de5780820151818401526020810190506135c3565b5f8484015250505050565b5f601f19601f8301169050919050565b5f613603826135a7565b61360d81856135b1565b935061361d8185602086016135c1565b613626816135e9565b840191505092915050565b5f6020820190508181035f83015261364981846135f9565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61368b82613662565b9050919050565b61369b81613681565b81146136a5575f80fd5b50565b5f813590506136b681613692565b92915050565b5f819050919050565b6136ce816136bc565b81146136d8575f80fd5b50565b5f813590506136e9816136c5565b92915050565b5f80604083850312156137055761370461365a565b5b5f613712858286016136a8565b9250506020613723858286016136db565b9150509250929050565b5f8115159050919050565b6137418161372d565b82525050565b5f60208201905061375a5f830184613738565b92915050565b5f819050919050565b5f61378361377e61377984613662565b613760565b613662565b9050919050565b5f61379482613769565b9050919050565b5f6137a58261378a565b9050919050565b6137b58161379b565b82525050565b5f6020820190506137ce5f8301846137ac565b92915050565b6137dd816136bc565b82525050565b5f6020820190506137f65f8301846137d4565b92915050565b5f60ff82169050919050565b613811816137fc565b82525050565b5f60208201905061382a5f830184613808565b92915050565b5f805f606084860312156138475761384661365a565b5b5f613854868287016136a8565b9350506020613865868287016136a8565b9250506040613876868287016136db565b9150509250925092565b5f602082840312156138955761389461365a565b5b5f6138a2848285016136db565b91505092915050565b6138b4816137fc565b81146138be575f80fd5b50565b5f813590506138cf816138ab565b92915050565b5f805f606084860312156138ec576138eb61365a565b5b5f6138f9868287016138c1565b935050602061390a868287016138c1565b925050604061391b868287016138c1565b9150509250925092565b61392e81613681565b82525050565b5f6020820190506139475f830184613925565b92915050565b5f80604083850312156139635761396261365a565b5b5f613970858286016138c1565b9250506020613981858286016138c1565b9150509250929050565b6139948161372d565b811461399e575f80fd5b50565b5f813590506139af8161398b565b92915050565b5f80604083850312156139cb576139ca61365a565b5b5f6139d8858286016136a8565b92505060206139e9858286016139a1565b9150509250929050565b5f60208284031215613a0857613a0761365a565b5b5f613a15848285016136a8565b91505092915050565b5f8060408385031215613a3457613a3361365a565b5b5f613a41858286016136a8565b9250506020613a52858286016136a8565b9150509250929050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b613a96826135e9565b810181811067ffffffffffffffff82111715613ab557613ab4613a60565b5b80604052505050565b5f613ac7613651565b9050613ad38282613a8d565b919050565b5f67ffffffffffffffff821115613af257613af1613a60565b5b602082029050602081019050919050565b5f80fd5b5f613b19613b1484613ad8565b613abe565b90508083825260208201905060208402830185811115613b3c57613b3b613b03565b5b835b81811015613b655780613b5188826136a8565b845260208401935050602081019050613b3e565b5050509392505050565b5f82601f830112613b8357613b82613a5c565b5b8135613b93848260208601613b07565b91505092915050565b5f67ffffffffffffffff821115613bb657613bb5613a60565b5b602082029050602081019050919050565b5f613bd9613bd484613b9c565b613abe565b90508083825260208201905060208402830185811115613bfc57613bfb613b03565b5b835b81811015613c255780613c1188826136db565b845260208401935050602081019050613bfe565b5050509392505050565b5f82601f830112613c4357613c42613a5c565b5b8135613c53848260208601613bc7565b91505092915050565b5f8060408385031215613c7257613c7161365a565b5b5f83013567ffffffffffffffff811115613c8f57613c8e61365e565b5b613c9b85828601613b6f565b925050602083013567ffffffffffffffff811115613cbc57613cbb61365e565b5b613cc885828601613c2f565b9150509250929050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f613d2c6028836135b1565b9150613d3782613cd2565b604082019050919050565b5f6020820190508181035f830152613d5981613d20565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613d946020836135b1565b9150613d9f82613d60565b602082019050919050565b5f6020820190508181035f830152613dc181613d88565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613dff826136bc565b9150613e0a836136bc565b9250828202613e18816136bc565b91508282048414831517613e2f57613e2e613dc8565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613e6d826136bc565b9150613e78836136bc565b925082613e8857613e87613e36565b5b828204905092915050565b7f43616e6e6f7420736574206d61782077616c6c6574206c6f776572207468616e5f8201527f20302e3125000000000000000000000000000000000000000000000000000000602082015250565b5f613eed6025836135b1565b9150613ef882613e93565b604082019050919050565b5f6020820190508181035f830152613f1a81613ee1565b9050919050565b5f613f2b826137fc565b9150613f36836137fc565b9250828201905060ff811115613f4f57613f4e613dc8565b5b92915050565b7f446973747269627574696f6e206861766520746f20626520657175616c20746f5f8201527f2031303025000000000000000000000000000000000000000000000000000000602082015250565b5f613faf6025836135b1565b9150613fba82613f55565b604082019050919050565b5f6020820190508181035f830152613fdc81613fa3565b9050919050565b7f4275792066656573206d757374206265206c657373207468616e206f722065715f8201527f75616c20746f2035250000000000000000000000000000000000000000000000602082015250565b5f61403d6029836135b1565b915061404882613fe3565b604082019050919050565b5f6020820190508181035f83015261406a81614031565b9050919050565b7f53656c6c2066656573206d757374206265206c657373207468616e206f7220655f8201527f7175616c20746f20352500000000000000000000000000000000000000000000602082015250565b5f6140cb602a836135b1565b91506140d682614071565b604082019050919050565b5f6020820190508181035f8301526140f8816140bf565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e5f8201527f20302e30303125206f662074686520737570706c790000000000000000000000602082015250565b5f6141596035836135b1565b9150614164826140ff565b604082019050919050565b5f6020820190508181035f8301526141868161414d565b9050919050565b7f5377617020616d6f756e742063616e6e6f7420626520686967686572207468615f8201527f6e20302e3525206f662074686520737570706c79000000000000000000000000602082015250565b5f6141e76034836135b1565b91506141f28261418d565b604082019050919050565b5f6020820190508181035f830152614214816141db565b9050919050565b7f43616e6e6f7420736574206d6178207472616e73616374696f6e206c6f7765725f8201527f207468616e20302e312500000000000000000000000000000000000000000000602082015250565b5f614275602a836135b1565b91506142808261421b565b604082019050919050565b5f6020820190508181035f8301526142a281614269565b9050919050565b7f416464726573732063616e6e6f74206265207a65726f000000000000000000005f82015250565b5f6142dd6016836135b1565b91506142e8826142a9565b602082019050919050565b5f6020820190508181035f83015261430a816142d1565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665640000000000005f82015250565b5f614345601a836135b1565b915061435082614311565b602082019050919050565b5f6020820190508181035f83015261437281614339565b9050919050565b5f81519050614387816136c5565b92915050565b5f602082840312156143a2576143a161365a565b5b5f6143af84828501614379565b91505092915050565b7f496e76616c6964206164647265737300000000000000000000000000000000005f82015250565b5f6143ec600f836135b1565b91506143f7826143b8565b602082019050919050565b5f6020820190508181035f830152614419816143e0565b9050919050565b5f81905092915050565b50565b5f6144385f83614420565b91506144438261442a565b5f82019050919050565b5f6144578261442d565b9150819050919050565b7f5769746864726177616c206661696c65640000000000000000000000000000005f82015250565b5f6144956011836135b1565b91506144a082614461565b602082019050919050565b5f6020820190508181035f8301526144c281614489565b9050919050565b7f416c7265616479206c61756e63686564000000000000000000000000000000005f82015250565b5f6144fd6010836135b1565b9150614508826144c9565b602082019050919050565b5f6020820190508181035f83015261452a816144f1565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f6145b86026836135b1565b91506145c38261455e565b604082019050919050565b5f6020820190508181035f8301526145e5816145ac565b9050919050565b5f6145f6826136bc565b9150614601836136bc565b925082820190508082111561461957614618613dc8565b5b92915050565b5f614629826136bc565b9150614634836136bc565b925082820390508181111561464c5761464b613dc8565b5b92915050565b5f61465c826136bc565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361468e5761468d613dc8565b5b600182019050919050565b5f819050919050565b5f6146bc6146b76146b284614699565b613760565b6136bc565b9050919050565b6146cc816146a2565b82525050565b5f60c0820190506146e55f830189613925565b6146f260208301886137d4565b6146ff60408301876146c3565b61470c60608301866146c3565b6147196080830185613925565b61472660a08301846137d4565b979650505050505050565b5f805f606084860312156147485761474761365a565b5b5f61475586828701614379565b935050602061476686828701614379565b925050604061477786828701614379565b9150509250925092565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6147db6024836135b1565b91506147e682614781565b604082019050919050565b5f6020820190508181035f830152614808816147cf565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f6148696022836135b1565b91506148748261480f565b604082019050919050565b5f6020820190508181035f8301526148968161485d565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6148f76025836135b1565b91506149028261489d565b604082019050919050565b5f6020820190508181035f830152614924816148eb565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f6149856023836135b1565b91506149908261492b565b604082019050919050565b5f6020820190508181035f8301526149b281614979565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f614a136029836135b1565b9150614a1e826149b9565b604082019050919050565b5f6020820190508181035f830152614a4081614a07565b9050919050565b7f54726164696e67206e6f7420656e61626c6564000000000000000000000000005f82015250565b5f614a7b6013836135b1565b9150614a8682614a47565b602082019050919050565b5f6020820190508181035f830152614aa881614a6f565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785478000000000000000000000000000000000000000000000000000000602082015250565b5f614b096025836135b1565b9150614b1482614aaf565b604082019050919050565b5f6020820190508181035f830152614b3681614afd565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f614b716013836135b1565b9150614b7c82614b3d565b602082019050919050565b5f6020820190508181035f830152614b9e81614b65565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d617854780000000000000000000000000000000000000000000000000000602082015250565b5f614bff6026836135b1565b9150614c0a82614ba5565b604082019050919050565b5f6020820190508181035f830152614c2c81614bf3565b9050919050565b5f604082019050614c465f830185613925565b614c5360208301846137d4565b9392505050565b5f81519050919050565b5f614c6e82614c5a565b614c788185614420565b9350614c888185602086016135c1565b80840191505092915050565b5f614c9f8284614c64565b915081905092915050565b5f81519050614cb88161398b565b92915050565b5f60208284031215614cd357614cd261365a565b5b5f614ce084828501614caa565b91505092915050565b7f5472616e7366657248656c7065723a20494e5445524e414c205452414e5346455f8201527f525f4641494c4544000000000000000000000000000000000000000000000000602082015250565b5f614d436028836135b1565b9150614d4e82614ce9565b604082019050919050565b5f6020820190508181035f830152614d7081614d37565b9050919050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b614da981613681565b82525050565b5f614dba8383614da0565b60208301905092915050565b5f602082019050919050565b5f614ddc82614d77565b614de68185614d81565b9350614df183614d91565b805f5b83811015614e21578151614e088882614daf565b9750614e1383614dc6565b925050600181019050614df4565b5085935050505092915050565b5f60a082019050614e415f8301886137d4565b614e4e60208301876146c3565b8181036040830152614e608186614dd2565b9050614e6f6060830185613925565b614e7c60808301846137d4565b9695505050505050565b5f608082019050614e995f8301876137d4565b614ea660208301866137d4565b614eb360408301856137d4565b614ec060608301846137d4565b9594505050505056fea2646970667358221220d95f6c52f227978529dce81fe3ee5af3049d7783c250b148d46fb36631828af364736f6c63430008150033

Deployed Bytecode Sourcemap

1746:14457:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6291:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6920:152;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3645:115;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6561:91;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2855:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7591:520;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13665:235;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6477:76;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10896:300;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3767:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2984:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11204:337;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11549:136;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13052:361;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11693:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2815:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6660:110;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;443:92;;;;;;;;;;;;;:::i;:::-;;13421:236;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10804:84;;;;;;;;;;;;;:::i;:::-;;14284:177;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14091:185;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14469:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;222:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6382;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12833:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7425:158;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13908:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14600:220;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1962:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2886:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14828:247;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2922:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2778:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6778:134;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2184:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11859:492;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2073:44;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12359:123;;;;;;;;;;;;;:::i;:::-;;12490:335;;;:::i;:::-;;6291:83;6328:13;6361:5;;;;;;;;;;;;;;;;;6354:12;;6291:83;:::o;6920:152::-;6988:4;7005:37;7014:10;7026:7;7035:6;7005:8;:37::i;:::-;7060:4;7053:11;;6920:152;;;;:::o;3645:115::-;3717:42;3645:115;:::o;6561:91::-;6605:7;1933:20;6625:19;;6561:91;:::o;2855:24::-;;;;;;;;;;;;;:::o;7591:520::-;7682:4;7699:24;7726:11;:19;7738:6;7726:19;;;;;;;;;;;;;;;:31;7746:10;7726:31;;;;;;;;;;;;;;;;7699:58;;7792:17;7772:16;:37;7768:263;;7854:6;7834:16;:26;;7826:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;7949:55;7958:6;7966:10;7997:6;7978:16;:25;7949:8;:55::i;:::-;7768:263;8043:36;8053:6;8061:9;8072:6;8043:9;:36::i;:::-;8099:4;8092:11;;;7591:520;;;;;:::o;13665:235::-;368:10;357:21;;:7;:5;:7::i;:::-;:21;;;349:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;13800:4:::1;13792;13787:1;13771:13;:11;:13::i;:::-;:17;;;;:::i;:::-;13770:26;;;;:::i;:::-;13769:35;;;;:::i;:::-;13753:12;:51;;13745:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;13885:6;13869:12;:23;;;;:::i;:::-;13857:9;:35;;;;13665:235:::0;:::o;6477:76::-;6518:5;6543:2;6536:9;;6477:76;:::o;10896:300::-;368:10;357:21;;:7;:5;:7::i;:::-;:21;;;349:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;11015:7:::1;11006:6;;:16;;;;;;;;;;;;;;;;;;11047:12;11033:11;;:26;;;;;;;;;;;;;;;;;;11080:8;11070:7;;:18;;;;;;;;;;;;;;;;;;11143:3;11131:7;;;;;;;;;;;11117:11;;;;;;;;;;;11108:6;;;;;;;;;;;:20;;;;:::i;:::-;:30;;;;:::i;:::-;11107:39;;;11099:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;10896:300:::0;;;:::o;3767:38::-;;;:::o;2984:33::-;;;;;;;;;;;;;:::o;11204:337::-;368:10;357:21;;:7;:5;:7::i;:::-;:21;;;349:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;11319:2:::1;11302:13;:19;;;;11294:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;11404:2;11386:14;:20;;;;11378:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;11479:13;11464:12;;:28;;;;;;;;;;;;;;;;;;11519:14;11503:13;;:30;;;;;;;;;;;;;;;;;;11204:337:::0;;:::o;11549:136::-;368:10;357:21;;:7;:5;:7::i;:::-;:21;;;349:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;11669:8:::1;11638:19;:28;11658:7;11638:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;11549:136:::0;;:::o;13052:361::-;368:10;357:21;;:7;:5;:7::i;:::-;:21;;;349:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;13177:6:::1;13172:1;13156:13;:11;:13::i;:::-;:17;;;;:::i;:::-;13155:28;;;;:::i;:::-;13138:13;:45;;13130:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;13299:4;13294:1;13278:13;:11;:13::i;:::-;:17;;;;:::i;:::-;13277:26;;;;:::i;:::-;13260:13;:43;;13252:108;;;;;;;;;;;;:::i;:::-;;;;;;;;;13392:13;13371:18;:34;;;;13052:361:::0;:::o;11693:158::-;368:10;357:21;;:7;:5;:7::i;:::-;:21;;;349:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;11835:8:::1;11792:31;:40;11824:7;11792:40;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;11693:158:::0;;:::o;2815:31::-;;;;;;;;;;;;;:::o;6660:110::-;6717:7;6744:9;:18;6754:7;6744:18;;;;;;;;;;;;;;;;6737:25;;6660:110;;;:::o;443:92::-;368:10;357:21;;:7;:5;:7::i;:::-;:21;;;349:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;525:1:::1;508:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;443:92::o:0;13421:236::-;368:10;357:21;;:7;:5;:7::i;:::-;:21;;;349:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;13545:4:::1;13537;13532:1;13516:13;:11;:13::i;:::-;:17;;;;:::i;:::-;13515:26;;;;:::i;:::-;13514:35;;;;:::i;:::-;13502:8;:47;;13494:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;13642:6;13630:8;:19;;;;:::i;:::-;13607:20;:42;;;;13421:236:::0;:::o;10804:84::-;368:10;357:21;;:7;:5;:7::i;:::-;:21;;;349:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;10875:5:::1;10858:14;;:22;;;;;;;;;;;;;;;;;;10804:84::o:0;14284:177::-;368:10;357:21;;:7;:5;:7::i;:::-;:21;;;349:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;14390:1:::1;14368:24;;:10;:24;;::::0;14360:59:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;14443:10;14430;;:23;;;;;;;;;;;;;;;;;;14284:177:::0;:::o;14091:185::-;368:10;357:21;;:7;:5;:7::i;:::-;:21;;;349:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;14201:1:::1;14179:24;;:10;:24;;::::0;14171:59:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;14258:10;14241:14;;:27;;;;;;;;;;;;;;;;;;14091:185:::0;:::o;14469:123::-;14532:4;14556:19;:28;14576:7;14556:28;;;;;;;;;;;;;;;;;;;;;;;;;14549:35;;14469:123;;;:::o;222:87::-;268:7;295:6;;;;;;;;;;;288:13;;222:87;:::o;6382:::-;6421:13;6454:7;;;;;;;;;;;;;;;;;6447:14;;6382:87;:::o;12833:211::-;368:10;357:21;;:7;:5;:7::i;:::-;:21;;;349:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;12942:13:::1;12934:21;;:4;:21;;::::0;12926:60:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;13031:5;12997:25;:31;13023:4;12997:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;12833:211:::0;;:::o;7425:158::-;7496:4;7513:40;7523:10;7535:9;7546:6;7513:9;:40::i;:::-;7571:4;7564:11;;7425:158;;;;:::o;13908:175::-;368:10;357:21;;:7;:5;:7::i;:::-;:21;;;349:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;14013:1:::1;13991:24;;:10;:24;;::::0;13983:59:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;14065:10;14053:9;;:22;;;;;;;;;;;;;;;;;;13908:175:::0;:::o;14600:220::-;368:10;357:21;;:7;:5;:7::i;:::-;:21;;;349:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;14685:24:::1;14719:5;14712:23;;;14744:4;14712:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14685:65;;14761:51;14784:5;14791:2;14795:16;14761:22;:51::i;:::-;14674:146;14600:220:::0;;:::o;1962:52::-;;;;:::o;2886:29::-;;;;;;;;;;;;;:::o;14828:247::-;368:10;357:21;;:7;:5;:7::i;:::-;:21;;;349:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;14922:1:::1;14906:18;;:4;:18;;::::0;14898:46:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;14958:12;14976:4;:9;;14993:21;14976:43;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14957:62;;;15038:7;15030:37;;;;;;;;;;;;:::i;:::-;;;;;;;;;14887:188;14828:247:::0;:::o;2922:25::-;;;;;;;;;;;;;:::o;2778:30::-;;;;;;;;;;;;;:::o;6778:134::-;6850:7;6877:11;:18;6889:5;6877:18;;;;;;;;;;;;;;;:27;6896:7;6877:27;;;;;;;;;;;;;;;;6870:34;;6778:134;;;;:::o;2184:51::-;;;;:::o;11859:492::-;368:10;357:21;;:7;:5;:7::i;:::-;:21;;;349:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;11976:8:::1;;;;;;;;;;;11975:9;11967:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12021:9;12016:328;12040:9;:16;12036:1;:20;12016:328;;;12111:7;12119:1;12111:10;;;;;;;;:::i;:::-;;;;;;;;12086:9;:21;12096:10;12086:21;;;;;;;;;;;;;;;;:35;;12078:86;;;;;;;;;;;;:::i;:::-;;;;;;;;;12206:7;12214:1;12206:10;;;;;;;;:::i;:::-;;;;;;;;12179:9;:23;12189:9;12199:1;12189:12;;;;;;;;:::i;:::-;;;;;;;;12179:23;;;;;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;12256:7;12264:1;12256:10;;;;;;;;:::i;:::-;;;;;;;;12231:9;:21;12241:10;12231:21;;;;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;;;;;12307:9;12317:1;12307:12;;;;;;;;:::i;:::-;;;;;;;;12286:46;;12295:10;12286:46;;;12321:7;12329:1;12321:10;;;;;;;;:::i;:::-;;;;;;;;12286:46;;;;;;:::i;:::-;;;;;;;;12058:3;;;;;:::i;:::-;;;;12016:328;;;;11859:492:::0;;:::o;2073:44::-;;;;:::o;12359:123::-;368:10;357:21;;:7;:5;:7::i;:::-;:21;;;349:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;12419:8:::1;;;;;;;;;;;12418:9;12410:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;12470:4;12459:8;;:15;;;;;;;;;;;;;;;;;;12359:123::o:0;12490:335::-;368:10;357:21;;:7;:5;:7::i;:::-;:21;;;349:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;12563:8:::1;;;;;;;;;;;12562:9;12554:38;;;;;;;;;;;;:::i;:::-;;;;;;;;;3717:42;12603:31;;;12642:9;12675:4;12695:9;:24;12713:4;12695:24;;;;;;;;;;;;;;;;12734:1;12750::::0;12766:10:::1;;;;;;;;;;;12791:15;12603:214;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;12490:335::o:0;7080:337::-;7190:1;7173:19;;:5;:19;;;7165:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7271:1;7252:21;;:7;:21;;;7244:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7355:6;7325:11;:18;7337:5;7325:18;;;;;;;;;;;;;;;:27;7344:7;7325:27;;;;;;;;;;;;;;;:36;;;;7393:7;7377:32;;7386:5;7377:32;;;7402:6;7377:32;;;;;;:::i;:::-;;;;;;;;7080:337;;;:::o;8119:2677::-;8223:1;8207:18;;:4;:18;;;8199:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8300:1;8286:16;;:2;:16;;;8278:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8370:1;8361:6;:10;8353:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;8435:8;;;;;;;;;;;8434:9;:72;;;;;8456:7;:5;:7::i;:::-;8448:15;;:4;:15;;;;:40;;;;;8483:4;8467:21;;:4;:21;;;;8448:40;:57;;;;;8498:7;:5;:7::i;:::-;8492:13;;:2;:13;;;;8448:57;8434:72;8430:134;;;8523:29;;;;;;;;;;:::i;:::-;;;;;;;;8430:134;8580:14;;;;;;;;;;;8576:830;;;8623:7;:5;:7::i;:::-;8615:15;;:4;:15;;;;:32;;;;;8640:7;:5;:7::i;:::-;8634:13;;:2;:13;;;;8615:32;:52;;;;;8665:1;8651:16;;:2;:16;;;;8615:52;:77;;;;;8685:6;8671:21;;:2;:21;;;;8615:77;:90;;;;;8697:8;;;;;;;;;;;8696:9;8615:90;8611:784;;;8730:25;:31;8756:4;8730:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;8766:31;:35;8798:2;8766:35;;;;;;;;;;;;;;;;;;;;;;;;;8765:36;8730:71;8726:654;;;8844:20;;8834:6;:30;;8826:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;8963:9;;8946:13;8956:2;8946:9;:13::i;:::-;8937:6;:22;;;;:::i;:::-;:35;;8929:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;8726:654;;;9026:25;:29;9052:2;9026:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;9060:31;:37;9092:4;9060:37;;;;;;;;;;;;;;;;;;;;;;;;;9059:38;9026:71;9022:358;;;9140:20;;9130:6;:30;;9122:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;9022:358;;;9233:31;:35;9265:2;9233:35;;;;;;;;;;;;;;;;;;;;;;;;;9228:152;;9327:9;;9310:13;9320:2;9310:9;:13::i;:::-;9301:6;:22;;;;:::i;:::-;:35;;9293:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;9228:152;9022:358;8726:654;8611:784;8576:830;9418:12;9461:18;;9433:24;9451:4;9433:9;:24::i;:::-;:46;;9418:61;;9496:7;:20;;;;;9508:8;;;;;;;;;;;9507:9;9496:20;:56;;;;;9521:25;:31;9547:4;9521:31;;;;;;;;;;;;;;;;;;;;;;;;;9520:32;9496:56;:86;;;;;9557:19;:25;9577:4;9557:25;;;;;;;;;;;;;;;;;;;;;;;;;9556:26;9496:86;:114;;;;;9587:19;:23;9607:2;9587:23;;;;;;;;;;;;;;;;;;;;;;;;;9586:24;9496:114;9492:218;;;9638:4;9627:8;;:15;;;;;;;;;;;;;;;;;;9657:10;:8;:10::i;:::-;9693:5;9682:8;;:16;;;;;;;;;;;;;;;;;;9492:218;9722:12;9738:8;;;;;;;;;;;9737:9;9722:24;;9763:19;:25;9783:4;9763:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;9792:19;:23;9812:2;9792:23;;;;;;;;;;;;;;;;;;;;;;;;;9763:52;9759:100;;;9842:5;9832:15;;9759:100;9871:21;9895:9;:15;9905:4;9895:15;;;;;;;;;;;;;;;;9871:39;;9946:6;9929:13;:23;;9921:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;10008:12;10039:7;10035:602;;;10067:25;:29;10093:2;10067:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;10116:1;10100:13;;;;;;;;;;;:17;;;10067:50;10063:264;;;10172:4;10155:13;;;;;;;;;;;10146:22;;:6;:22;;;;:::i;:::-;10145:31;;;;:::i;:::-;10138:38;;10063:264;;;10202:25;:31;10228:4;10202:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;10252:1;10237:12;;;;;;;;;;;:16;;;10202:51;10198:129;;;10307:4;10291:12;;;;;;;;;;;10282:21;;:6;:21;;;;:::i;:::-;10281:30;;;;:::i;:::-;10274:37;;10198:129;10063:264;10354:1;10347:4;:8;10343:283;;;10427:4;10418:6;:13;10409:22;;10473:4;10454:9;:15;10464:4;10454:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;10528:4;10500:9;:24;10518:4;10500:24;;;;;;;;;;;;;;;;:32;;;;;;;;;;;10598:4;10575:35;;10584:4;10575:35;;;10605:4;10575:35;;;;;;:::i;:::-;;;;;;;;10343:283;10035:602;10691:6;10672:9;:15;10682:4;10672:15;;;;;;;;;;;;;;;;:25;;;;;;;;;;;10729:6;10712:9;:13;10722:2;10712:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;10777:2;10762:26;;10771:4;10762:26;;;10781:6;10762:26;;;;;;:::i;:::-;;;;;;;;8188:2608;;;;8119:2677;;;:::o;567:320::-;652:12;666:17;687:5;:10;;721:24;;;747:2;751:5;698:59;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;687:71;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;651:107;;;;777:7;:57;;;;;804:1;789:4;:11;:16;:44;;;;820:4;809:24;;;;;;;;;;;;:::i;:::-;789:44;777:57;769:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;640:247;;567:320;;;:::o;15083:1117::-;15122:21;15146:18;;15122:42;;15175:12;15252:2;15231:18;;:23;;;;:::i;:::-;15204:24;15222:4;15204:9;:24::i;:::-;:50;15200:122;;;15308:2;15287:18;;:23;;;;:::i;:::-;15271:39;;15200:122;15334:21;15372:1;15358:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15334:40;;15403:4;15385;15390:1;15385:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;2727:42;15419:4;15424:1;15419:7;;;;;;;;:::i;:::-;;;;;;;:14;;;;;;;;;;;3717:42;15446:66;;;15513:13;15528:1;15531:4;15545;15552:15;15446:122;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15581:18;15602:21;15581:42;;15651:1;15638:10;:14;15634:559;;;15669:17;15713:3;15703:6;;;;;;;;;;;15690:19;;:10;:19;;;;:::i;:::-;15689:27;;;;:::i;:::-;15669:47;;15731:18;15777:3;15766:7;;;;;;;;;;;15753:20;;:10;:20;;;;:::i;:::-;15752:28;;;;:::i;:::-;15731:49;;15795:22;15845:10;15833:9;15820:10;:22;;;;:::i;:::-;:35;;;;:::i;:::-;15795:60;;15894:10;;;;;;;;;;;15886:24;;15918:10;15886:47;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15872:61;;;;;15970:14;;;;;;;;;;;15962:28;;15998:14;15962:55;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15948:69;;;;;16054:9;;;;;;;;;;;16046:23;;16077:9;16046:45;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16032:59;;;;;16113:68;16128:13;16143:10;16155:9;16166:14;16113:68;;;;;;;;;:::i;:::-;;;;;;;;15654:539;;;15634:559;15111:1089;;;;15083:1117::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;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652: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:60::-;3474:3;3495:5;3488:12;;3446:60;;;:::o;3512:142::-;3562:9;3595:53;3613:34;3622:24;3640:5;3622:24;:::i;:::-;3613:34;:::i;:::-;3595:53;:::i;:::-;3582:66;;3512:142;;;:::o;3660:126::-;3710:9;3743:37;3774:5;3743:37;:::i;:::-;3730:50;;3660:126;;;:::o;3792:152::-;3868:9;3901:37;3932:5;3901:37;:::i;:::-;3888:50;;3792:152;;;:::o;3950:183::-;4063:63;4120:5;4063:63;:::i;:::-;4058:3;4051:76;3950:183;;:::o;4139:274::-;4258:4;4296:2;4285:9;4281:18;4273:26;;4309:97;4403:1;4392:9;4388:17;4379:6;4309:97;:::i;:::-;4139:274;;;;:::o;4419:118::-;4506:24;4524:5;4506:24;:::i;:::-;4501:3;4494:37;4419:118;;:::o;4543:222::-;4636:4;4674:2;4663:9;4659:18;4651:26;;4687:71;4755:1;4744:9;4740:17;4731:6;4687:71;:::i;:::-;4543:222;;;;:::o;4771:86::-;4806:7;4846:4;4839:5;4835:16;4824:27;;4771:86;;;:::o;4863:112::-;4946:22;4962:5;4946:22;:::i;:::-;4941:3;4934:35;4863:112;;:::o;4981:214::-;5070:4;5108:2;5097:9;5093:18;5085:26;;5121:67;5185:1;5174:9;5170:17;5161:6;5121:67;:::i;:::-;4981:214;;;;:::o;5201:619::-;5278:6;5286;5294;5343:2;5331:9;5322:7;5318:23;5314:32;5311:119;;;5349:79;;:::i;:::-;5311:119;5469:1;5494:53;5539:7;5530:6;5519:9;5515:22;5494:53;:::i;:::-;5484:63;;5440:117;5596:2;5622:53;5667:7;5658:6;5647:9;5643:22;5622:53;:::i;:::-;5612:63;;5567:118;5724:2;5750:53;5795:7;5786:6;5775:9;5771:22;5750:53;:::i;:::-;5740:63;;5695:118;5201:619;;;;;:::o;5826:329::-;5885:6;5934:2;5922:9;5913:7;5909:23;5905:32;5902:119;;;5940:79;;:::i;:::-;5902:119;6060:1;6085:53;6130:7;6121:6;6110:9;6106:22;6085:53;:::i;:::-;6075:63;;6031:117;5826:329;;;;:::o;6161:118::-;6232:22;6248:5;6232:22;:::i;:::-;6225:5;6222:33;6212:61;;6269:1;6266;6259:12;6212:61;6161:118;:::o;6285:135::-;6329:5;6367:6;6354:20;6345:29;;6383:31;6408:5;6383:31;:::i;:::-;6285:135;;;;:::o;6426:607::-;6497:6;6505;6513;6562:2;6550:9;6541:7;6537:23;6533:32;6530:119;;;6568:79;;:::i;:::-;6530:119;6688:1;6713:51;6756:7;6747:6;6736:9;6732:22;6713:51;:::i;:::-;6703:61;;6659:115;6813:2;6839:51;6882:7;6873:6;6862:9;6858:22;6839:51;:::i;:::-;6829:61;;6784:116;6939:2;6965:51;7008:7;6999:6;6988:9;6984:22;6965:51;:::i;:::-;6955:61;;6910:116;6426:607;;;;;:::o;7039:118::-;7126:24;7144:5;7126:24;:::i;:::-;7121:3;7114:37;7039:118;;:::o;7163:222::-;7256:4;7294:2;7283:9;7279:18;7271:26;;7307:71;7375:1;7364:9;7360:17;7351:6;7307:71;:::i;:::-;7163:222;;;;:::o;7391:466::-;7455:6;7463;7512:2;7500:9;7491:7;7487:23;7483:32;7480:119;;;7518:79;;:::i;:::-;7480:119;7638:1;7663:51;7706:7;7697:6;7686:9;7682:22;7663:51;:::i;:::-;7653:61;;7609:115;7763:2;7789:51;7832:7;7823:6;7812:9;7808:22;7789:51;:::i;:::-;7779:61;;7734:116;7391:466;;;;;:::o;7863:116::-;7933:21;7948:5;7933:21;:::i;:::-;7926:5;7923:32;7913:60;;7969:1;7966;7959:12;7913:60;7863:116;:::o;7985:133::-;8028:5;8066:6;8053:20;8044:29;;8082:30;8106:5;8082:30;:::i;:::-;7985:133;;;;:::o;8124:468::-;8189:6;8197;8246:2;8234:9;8225:7;8221:23;8217:32;8214:119;;;8252:79;;:::i;:::-;8214:119;8372:1;8397:53;8442:7;8433:6;8422:9;8418:22;8397:53;:::i;:::-;8387:63;;8343:117;8499:2;8525:50;8567:7;8558:6;8547:9;8543:22;8525:50;:::i;:::-;8515:60;;8470:115;8124:468;;;;;:::o;8598:329::-;8657:6;8706:2;8694:9;8685:7;8681:23;8677:32;8674:119;;;8712:79;;:::i;:::-;8674:119;8832:1;8857:53;8902:7;8893:6;8882:9;8878:22;8857:53;:::i;:::-;8847:63;;8803:117;8598:329;;;;:::o;8933:474::-;9001:6;9009;9058:2;9046:9;9037:7;9033:23;9029:32;9026:119;;;9064:79;;:::i;:::-;9026:119;9184:1;9209:53;9254:7;9245:6;9234:9;9230:22;9209:53;:::i;:::-;9199:63;;9155:117;9311:2;9337:53;9382:7;9373:6;9362:9;9358:22;9337:53;:::i;:::-;9327:63;;9282:118;8933:474;;;;;:::o;9413:117::-;9522:1;9519;9512:12;9536:180;9584:77;9581:1;9574:88;9681:4;9678:1;9671:15;9705:4;9702:1;9695:15;9722:281;9805:27;9827:4;9805:27;:::i;:::-;9797:6;9793:40;9935:6;9923:10;9920:22;9899:18;9887:10;9884:34;9881:62;9878:88;;;9946:18;;:::i;:::-;9878:88;9986:10;9982:2;9975:22;9765:238;9722:281;;:::o;10009:129::-;10043:6;10070:20;;:::i;:::-;10060:30;;10099:33;10127:4;10119:6;10099:33;:::i;:::-;10009:129;;;:::o;10144:311::-;10221:4;10311:18;10303:6;10300:30;10297:56;;;10333:18;;:::i;:::-;10297:56;10383:4;10375:6;10371:17;10363:25;;10443:4;10437;10433:15;10425:23;;10144:311;;;:::o;10461:117::-;10570:1;10567;10560:12;10601:710;10697:5;10722:81;10738:64;10795:6;10738:64;:::i;:::-;10722:81;:::i;:::-;10713:90;;10823:5;10852:6;10845:5;10838:21;10886:4;10879:5;10875:16;10868:23;;10939:4;10931:6;10927:17;10919:6;10915:30;10968:3;10960:6;10957:15;10954:122;;;10987:79;;:::i;:::-;10954:122;11102:6;11085:220;11119:6;11114:3;11111:15;11085:220;;;11194:3;11223:37;11256:3;11244:10;11223:37;:::i;:::-;11218:3;11211:50;11290:4;11285:3;11281:14;11274:21;;11161:144;11145:4;11140:3;11136:14;11129:21;;11085:220;;;11089:21;10703:608;;10601:710;;;;;:::o;11334:370::-;11405:5;11454:3;11447:4;11439:6;11435:17;11431:27;11421:122;;11462:79;;:::i;:::-;11421:122;11579:6;11566:20;11604:94;11694:3;11686:6;11679:4;11671:6;11667:17;11604:94;:::i;:::-;11595:103;;11411:293;11334:370;;;;:::o;11710:311::-;11787:4;11877:18;11869:6;11866:30;11863:56;;;11899:18;;:::i;:::-;11863:56;11949:4;11941:6;11937:17;11929:25;;12009:4;12003;11999:15;11991:23;;11710:311;;;:::o;12044:710::-;12140:5;12165:81;12181:64;12238:6;12181:64;:::i;:::-;12165:81;:::i;:::-;12156:90;;12266:5;12295:6;12288:5;12281:21;12329:4;12322:5;12318:16;12311:23;;12382:4;12374:6;12370:17;12362:6;12358:30;12411:3;12403:6;12400:15;12397:122;;;12430:79;;:::i;:::-;12397:122;12545:6;12528:220;12562:6;12557:3;12554:15;12528:220;;;12637:3;12666:37;12699:3;12687:10;12666:37;:::i;:::-;12661:3;12654:50;12733:4;12728:3;12724:14;12717:21;;12604:144;12588:4;12583:3;12579:14;12572:21;;12528:220;;;12532:21;12146:608;;12044:710;;;;;:::o;12777:370::-;12848:5;12897:3;12890:4;12882:6;12878:17;12874:27;12864:122;;12905:79;;:::i;:::-;12864:122;13022:6;13009:20;13047:94;13137:3;13129:6;13122:4;13114:6;13110:17;13047:94;:::i;:::-;13038:103;;12854:293;12777:370;;;;:::o;13153:894::-;13271:6;13279;13328:2;13316:9;13307:7;13303:23;13299:32;13296:119;;;13334:79;;:::i;:::-;13296:119;13482:1;13471:9;13467:17;13454:31;13512:18;13504:6;13501:30;13498:117;;;13534:79;;:::i;:::-;13498:117;13639:78;13709:7;13700:6;13689:9;13685:22;13639:78;:::i;:::-;13629:88;;13425:302;13794:2;13783:9;13779:18;13766:32;13825:18;13817:6;13814:30;13811:117;;;13847:79;;:::i;:::-;13811:117;13952:78;14022:7;14013:6;14002:9;13998:22;13952:78;:::i;:::-;13942:88;;13737:303;13153:894;;;;;:::o;14053:227::-;14193:34;14189:1;14181:6;14177:14;14170:58;14262:10;14257:2;14249:6;14245:15;14238:35;14053:227;:::o;14286:366::-;14428:3;14449:67;14513:2;14508:3;14449:67;:::i;:::-;14442:74;;14525:93;14614:3;14525:93;:::i;:::-;14643:2;14638:3;14634:12;14627:19;;14286:366;;;:::o;14658:419::-;14824:4;14862:2;14851:9;14847:18;14839:26;;14911:9;14905:4;14901:20;14897:1;14886:9;14882:17;14875:47;14939:131;15065:4;14939:131;:::i;:::-;14931:139;;14658:419;;;:::o;15083:182::-;15223:34;15219:1;15211:6;15207:14;15200:58;15083:182;:::o;15271:366::-;15413:3;15434:67;15498:2;15493:3;15434:67;:::i;:::-;15427:74;;15510:93;15599:3;15510:93;:::i;:::-;15628:2;15623:3;15619:12;15612:19;;15271:366;;;:::o;15643:419::-;15809:4;15847:2;15836:9;15832:18;15824:26;;15896:9;15890:4;15886:20;15882:1;15871:9;15867:17;15860:47;15924:131;16050:4;15924:131;:::i;:::-;15916:139;;15643:419;;;:::o;16068:180::-;16116:77;16113:1;16106:88;16213:4;16210:1;16203:15;16237:4;16234:1;16227:15;16254:410;16294:7;16317:20;16335:1;16317:20;:::i;:::-;16312:25;;16351:20;16369:1;16351:20;:::i;:::-;16346:25;;16406:1;16403;16399:9;16428:30;16446:11;16428:30;:::i;:::-;16417:41;;16607:1;16598:7;16594:15;16591:1;16588:22;16568:1;16561:9;16541:83;16518:139;;16637:18;;:::i;:::-;16518:139;16302:362;16254:410;;;;:::o;16670:180::-;16718:77;16715:1;16708:88;16815:4;16812:1;16805:15;16839:4;16836:1;16829:15;16856:185;16896:1;16913:20;16931:1;16913:20;:::i;:::-;16908:25;;16947:20;16965:1;16947:20;:::i;:::-;16942:25;;16986:1;16976:35;;16991:18;;:::i;:::-;16976:35;17033:1;17030;17026:9;17021:14;;16856:185;;;;:::o;17047:224::-;17187:34;17183:1;17175:6;17171:14;17164:58;17256:7;17251:2;17243:6;17239:15;17232:32;17047:224;:::o;17277:366::-;17419:3;17440:67;17504:2;17499:3;17440:67;:::i;:::-;17433:74;;17516:93;17605:3;17516:93;:::i;:::-;17634:2;17629:3;17625:12;17618:19;;17277:366;;;:::o;17649:419::-;17815:4;17853:2;17842:9;17838:18;17830:26;;17902:9;17896:4;17892:20;17888:1;17877:9;17873:17;17866:47;17930:131;18056:4;17930:131;:::i;:::-;17922:139;;17649:419;;;:::o;18074:188::-;18112:3;18131:18;18147:1;18131:18;:::i;:::-;18126:23;;18163:18;18179:1;18163:18;:::i;:::-;18158:23;;18204:1;18201;18197:9;18190:16;;18227:4;18222:3;18219:13;18216:39;;;18235:18;;:::i;:::-;18216:39;18074:188;;;;:::o;18268:224::-;18408:34;18404:1;18396:6;18392:14;18385:58;18477:7;18472:2;18464:6;18460:15;18453:32;18268:224;:::o;18498:366::-;18640:3;18661:67;18725:2;18720:3;18661:67;:::i;:::-;18654:74;;18737:93;18826:3;18737:93;:::i;:::-;18855:2;18850:3;18846:12;18839:19;;18498:366;;;:::o;18870:419::-;19036:4;19074:2;19063:9;19059:18;19051:26;;19123:9;19117:4;19113:20;19109:1;19098:9;19094:17;19087:47;19151:131;19277:4;19151:131;:::i;:::-;19143:139;;18870:419;;;:::o;19295:228::-;19435:34;19431:1;19423:6;19419:14;19412:58;19504:11;19499:2;19491:6;19487:15;19480:36;19295:228;:::o;19529:366::-;19671:3;19692:67;19756:2;19751:3;19692:67;:::i;:::-;19685:74;;19768:93;19857:3;19768:93;:::i;:::-;19886:2;19881:3;19877:12;19870:19;;19529:366;;;:::o;19901:419::-;20067:4;20105:2;20094:9;20090:18;20082:26;;20154:9;20148:4;20144:20;20140:1;20129:9;20125:17;20118:47;20182:131;20308:4;20182:131;:::i;:::-;20174:139;;19901:419;;;:::o;20326:229::-;20466:34;20462:1;20454:6;20450:14;20443:58;20535:12;20530:2;20522:6;20518:15;20511:37;20326:229;:::o;20561:366::-;20703:3;20724:67;20788:2;20783:3;20724:67;:::i;:::-;20717:74;;20800:93;20889:3;20800:93;:::i;:::-;20918:2;20913:3;20909:12;20902:19;;20561:366;;;:::o;20933:419::-;21099:4;21137:2;21126:9;21122:18;21114:26;;21186:9;21180:4;21176:20;21172:1;21161:9;21157:17;21150:47;21214:131;21340:4;21214:131;:::i;:::-;21206:139;;20933:419;;;:::o;21358:240::-;21498:34;21494:1;21486:6;21482:14;21475:58;21567:23;21562:2;21554:6;21550:15;21543:48;21358:240;:::o;21604:366::-;21746:3;21767:67;21831:2;21826:3;21767:67;:::i;:::-;21760:74;;21843:93;21932:3;21843:93;:::i;:::-;21961:2;21956:3;21952:12;21945:19;;21604:366;;;:::o;21976:419::-;22142:4;22180:2;22169:9;22165:18;22157:26;;22229:9;22223:4;22219:20;22215:1;22204:9;22200:17;22193:47;22257:131;22383:4;22257:131;:::i;:::-;22249:139;;21976:419;;;:::o;22401:239::-;22541:34;22537:1;22529:6;22525:14;22518:58;22610:22;22605:2;22597:6;22593:15;22586:47;22401:239;:::o;22646:366::-;22788:3;22809:67;22873:2;22868:3;22809:67;:::i;:::-;22802:74;;22885:93;22974:3;22885:93;:::i;:::-;23003:2;22998:3;22994:12;22987:19;;22646:366;;;:::o;23018:419::-;23184:4;23222:2;23211:9;23207:18;23199:26;;23271:9;23265:4;23261:20;23257:1;23246:9;23242:17;23235:47;23299:131;23425:4;23299:131;:::i;:::-;23291:139;;23018:419;;;:::o;23443:229::-;23583:34;23579:1;23571:6;23567:14;23560:58;23652:12;23647:2;23639:6;23635:15;23628:37;23443:229;:::o;23678:366::-;23820:3;23841:67;23905:2;23900:3;23841:67;:::i;:::-;23834:74;;23917:93;24006:3;23917:93;:::i;:::-;24035:2;24030:3;24026:12;24019:19;;23678:366;;;:::o;24050:419::-;24216:4;24254:2;24243:9;24239:18;24231:26;;24303:9;24297:4;24293:20;24289:1;24278:9;24274:17;24267:47;24331:131;24457:4;24331:131;:::i;:::-;24323:139;;24050:419;;;:::o;24475:172::-;24615:24;24611:1;24603:6;24599:14;24592:48;24475:172;:::o;24653:366::-;24795:3;24816:67;24880:2;24875:3;24816:67;:::i;:::-;24809:74;;24892:93;24981:3;24892:93;:::i;:::-;25010:2;25005:3;25001:12;24994:19;;24653:366;;;:::o;25025:419::-;25191:4;25229:2;25218:9;25214:18;25206:26;;25278:9;25272:4;25268:20;25264:1;25253:9;25249:17;25242:47;25306:131;25432:4;25306:131;:::i;:::-;25298:139;;25025:419;;;:::o;25450:176::-;25590:28;25586:1;25578:6;25574:14;25567:52;25450:176;:::o;25632:366::-;25774:3;25795:67;25859:2;25854:3;25795:67;:::i;:::-;25788:74;;25871:93;25960:3;25871:93;:::i;:::-;25989:2;25984:3;25980:12;25973:19;;25632:366;;;:::o;26004:419::-;26170:4;26208:2;26197:9;26193:18;26185:26;;26257:9;26251:4;26247:20;26243:1;26232:9;26228:17;26221:47;26285:131;26411:4;26285:131;:::i;:::-;26277:139;;26004:419;;;:::o;26429:143::-;26486:5;26517:6;26511:13;26502:22;;26533:33;26560:5;26533:33;:::i;:::-;26429:143;;;;:::o;26578:351::-;26648:6;26697:2;26685:9;26676:7;26672:23;26668:32;26665:119;;;26703:79;;:::i;:::-;26665:119;26823:1;26848:64;26904:7;26895:6;26884:9;26880:22;26848:64;:::i;:::-;26838:74;;26794:128;26578:351;;;;:::o;26935:165::-;27075:17;27071:1;27063:6;27059:14;27052:41;26935:165;:::o;27106:366::-;27248:3;27269:67;27333:2;27328:3;27269:67;:::i;:::-;27262:74;;27345:93;27434:3;27345:93;:::i;:::-;27463:2;27458:3;27454:12;27447:19;;27106:366;;;:::o;27478:419::-;27644:4;27682:2;27671:9;27667:18;27659:26;;27731:9;27725:4;27721:20;27717:1;27706:9;27702:17;27695:47;27759:131;27885:4;27759:131;:::i;:::-;27751:139;;27478:419;;;:::o;27903:147::-;28004:11;28041:3;28026:18;;27903:147;;;;:::o;28056:114::-;;:::o;28176:398::-;28335:3;28356:83;28437:1;28432:3;28356:83;:::i;:::-;28349:90;;28448:93;28537:3;28448:93;:::i;:::-;28566:1;28561:3;28557:11;28550:18;;28176:398;;;:::o;28580:379::-;28764:3;28786:147;28929:3;28786:147;:::i;:::-;28779:154;;28950:3;28943:10;;28580:379;;;:::o;28965:167::-;29105:19;29101:1;29093:6;29089:14;29082:43;28965:167;:::o;29138:366::-;29280:3;29301:67;29365:2;29360:3;29301:67;:::i;:::-;29294:74;;29377:93;29466:3;29377:93;:::i;:::-;29495:2;29490:3;29486:12;29479:19;;29138:366;;;:::o;29510:419::-;29676:4;29714:2;29703:9;29699:18;29691:26;;29763:9;29757:4;29753:20;29749:1;29738:9;29734:17;29727:47;29791:131;29917:4;29791:131;:::i;:::-;29783:139;;29510:419;;;:::o;29935:166::-;30075:18;30071:1;30063:6;30059:14;30052:42;29935:166;:::o;30107:366::-;30249:3;30270:67;30334:2;30329:3;30270:67;:::i;:::-;30263:74;;30346:93;30435:3;30346:93;:::i;:::-;30464:2;30459:3;30455:12;30448:19;;30107:366;;;:::o;30479:419::-;30645:4;30683:2;30672:9;30668:18;30660:26;;30732:9;30726:4;30722:20;30718:1;30707:9;30703:17;30696:47;30760:131;30886:4;30760:131;:::i;:::-;30752:139;;30479:419;;;:::o;30904:180::-;30952:77;30949:1;30942:88;31049:4;31046:1;31039:15;31073:4;31070:1;31063:15;31090:225;31230:34;31226:1;31218:6;31214:14;31207:58;31299:8;31294:2;31286:6;31282:15;31275:33;31090:225;:::o;31321:366::-;31463:3;31484:67;31548:2;31543:3;31484:67;:::i;:::-;31477:74;;31560:93;31649:3;31560:93;:::i;:::-;31678:2;31673:3;31669:12;31662:19;;31321:366;;;:::o;31693:419::-;31859:4;31897:2;31886:9;31882:18;31874:26;;31946:9;31940:4;31936:20;31932:1;31921:9;31917:17;31910:47;31974:131;32100:4;31974:131;:::i;:::-;31966:139;;31693:419;;;:::o;32118:191::-;32158:3;32177:20;32195:1;32177:20;:::i;:::-;32172:25;;32211:20;32229:1;32211:20;:::i;:::-;32206:25;;32254:1;32251;32247:9;32240:16;;32275:3;32272:1;32269:10;32266:36;;;32282:18;;:::i;:::-;32266:36;32118:191;;;;:::o;32315:194::-;32355:4;32375:20;32393:1;32375:20;:::i;:::-;32370:25;;32409:20;32427:1;32409:20;:::i;:::-;32404:25;;32453:1;32450;32446:9;32438:17;;32477:1;32471:4;32468:11;32465:37;;;32482:18;;:::i;:::-;32465:37;32315:194;;;;:::o;32515:233::-;32554:3;32577:24;32595:5;32577:24;:::i;:::-;32568:33;;32623:66;32616:5;32613:77;32610:103;;32693:18;;:::i;:::-;32610:103;32740:1;32733:5;32729:13;32722:20;;32515:233;;;:::o;32754:85::-;32799:7;32828:5;32817:16;;32754:85;;;:::o;32845:158::-;32903:9;32936:61;32954:42;32963:32;32989:5;32963:32;:::i;:::-;32954:42;:::i;:::-;32936:61;:::i;:::-;32923:74;;32845:158;;;:::o;33009:147::-;33104:45;33143:5;33104:45;:::i;:::-;33099:3;33092:58;33009:147;;:::o;33162:807::-;33411:4;33449:3;33438:9;33434:19;33426:27;;33463:71;33531:1;33520:9;33516:17;33507:6;33463:71;:::i;:::-;33544:72;33612:2;33601:9;33597:18;33588:6;33544:72;:::i;:::-;33626:80;33702:2;33691:9;33687:18;33678:6;33626:80;:::i;:::-;33716;33792:2;33781:9;33777:18;33768:6;33716:80;:::i;:::-;33806:73;33874:3;33863:9;33859:19;33850:6;33806:73;:::i;:::-;33889;33957:3;33946:9;33942:19;33933:6;33889:73;:::i;:::-;33162:807;;;;;;;;;:::o;33975:663::-;34063:6;34071;34079;34128:2;34116:9;34107:7;34103:23;34099:32;34096:119;;;34134:79;;:::i;:::-;34096:119;34254:1;34279:64;34335:7;34326:6;34315:9;34311:22;34279:64;:::i;:::-;34269:74;;34225:128;34392:2;34418:64;34474:7;34465:6;34454:9;34450:22;34418:64;:::i;:::-;34408:74;;34363:129;34531:2;34557:64;34613:7;34604:6;34593:9;34589:22;34557:64;:::i;:::-;34547:74;;34502:129;33975:663;;;;;:::o;34644:223::-;34784:34;34780:1;34772:6;34768:14;34761:58;34853:6;34848:2;34840:6;34836:15;34829:31;34644:223;:::o;34873:366::-;35015:3;35036:67;35100:2;35095:3;35036:67;:::i;:::-;35029:74;;35112:93;35201:3;35112:93;:::i;:::-;35230:2;35225:3;35221:12;35214:19;;34873:366;;;:::o;35245:419::-;35411:4;35449:2;35438:9;35434:18;35426:26;;35498:9;35492:4;35488:20;35484:1;35473:9;35469:17;35462:47;35526:131;35652:4;35526:131;:::i;:::-;35518:139;;35245:419;;;:::o;35670:221::-;35810:34;35806:1;35798:6;35794:14;35787:58;35879:4;35874:2;35866:6;35862:15;35855:29;35670:221;:::o;35897:366::-;36039:3;36060:67;36124:2;36119:3;36060:67;:::i;:::-;36053:74;;36136:93;36225:3;36136:93;:::i;:::-;36254:2;36249:3;36245:12;36238:19;;35897:366;;;:::o;36269:419::-;36435:4;36473:2;36462:9;36458:18;36450:26;;36522:9;36516:4;36512:20;36508:1;36497:9;36493:17;36486:47;36550:131;36676:4;36550:131;:::i;:::-;36542:139;;36269:419;;;:::o;36694:224::-;36834:34;36830:1;36822:6;36818:14;36811:58;36903:7;36898:2;36890:6;36886:15;36879:32;36694:224;:::o;36924:366::-;37066:3;37087:67;37151:2;37146:3;37087:67;:::i;:::-;37080:74;;37163:93;37252:3;37163:93;:::i;:::-;37281:2;37276:3;37272:12;37265:19;;36924:366;;;:::o;37296:419::-;37462:4;37500:2;37489:9;37485:18;37477:26;;37549:9;37543:4;37539:20;37535:1;37524:9;37520:17;37513:47;37577:131;37703:4;37577:131;:::i;:::-;37569:139;;37296:419;;;:::o;37721:222::-;37861:34;37857:1;37849:6;37845:14;37838:58;37930:5;37925:2;37917:6;37913:15;37906:30;37721:222;:::o;37949:366::-;38091:3;38112:67;38176:2;38171:3;38112:67;:::i;:::-;38105:74;;38188:93;38277:3;38188:93;:::i;:::-;38306:2;38301:3;38297:12;38290:19;;37949:366;;;:::o;38321:419::-;38487:4;38525:2;38514:9;38510:18;38502:26;;38574:9;38568:4;38564:20;38560:1;38549:9;38545:17;38538:47;38602:131;38728:4;38602:131;:::i;:::-;38594:139;;38321:419;;;:::o;38746:228::-;38886:34;38882:1;38874:6;38870:14;38863:58;38955:11;38950:2;38942:6;38938:15;38931:36;38746:228;:::o;38980:366::-;39122:3;39143:67;39207:2;39202:3;39143:67;:::i;:::-;39136:74;;39219:93;39308:3;39219:93;:::i;:::-;39337:2;39332:3;39328:12;39321:19;;38980:366;;;:::o;39352:419::-;39518:4;39556:2;39545:9;39541:18;39533:26;;39605:9;39599:4;39595:20;39591:1;39580:9;39576:17;39569:47;39633:131;39759:4;39633:131;:::i;:::-;39625:139;;39352:419;;;:::o;39777:169::-;39917:21;39913:1;39905:6;39901:14;39894:45;39777:169;:::o;39952:366::-;40094:3;40115:67;40179:2;40174:3;40115:67;:::i;:::-;40108:74;;40191:93;40280:3;40191:93;:::i;:::-;40309:2;40304:3;40300:12;40293:19;;39952:366;;;:::o;40324:419::-;40490:4;40528:2;40517:9;40513:18;40505:26;;40577:9;40571:4;40567:20;40563:1;40552:9;40548:17;40541:47;40605:131;40731:4;40605:131;:::i;:::-;40597:139;;40324:419;;;:::o;40749:224::-;40889:34;40885:1;40877:6;40873:14;40866:58;40958:7;40953:2;40945:6;40941:15;40934:32;40749:224;:::o;40979:366::-;41121:3;41142:67;41206:2;41201:3;41142:67;:::i;:::-;41135:74;;41218:93;41307:3;41218:93;:::i;:::-;41336:2;41331:3;41327:12;41320:19;;40979:366;;;:::o;41351:419::-;41517:4;41555:2;41544:9;41540:18;41532:26;;41604:9;41598:4;41594:20;41590:1;41579:9;41575:17;41568:47;41632:131;41758:4;41632:131;:::i;:::-;41624:139;;41351:419;;;:::o;41776:169::-;41916:21;41912:1;41904:6;41900:14;41893:45;41776:169;:::o;41951:366::-;42093:3;42114:67;42178:2;42173:3;42114:67;:::i;:::-;42107:74;;42190:93;42279:3;42190:93;:::i;:::-;42308:2;42303:3;42299:12;42292:19;;41951:366;;;:::o;42323:419::-;42489:4;42527:2;42516:9;42512:18;42504:26;;42576:9;42570:4;42566:20;42562:1;42551:9;42547:17;42540:47;42604:131;42730:4;42604:131;:::i;:::-;42596:139;;42323:419;;;:::o;42748:225::-;42888:34;42884:1;42876:6;42872:14;42865:58;42957:8;42952:2;42944:6;42940:15;42933:33;42748:225;:::o;42979:366::-;43121:3;43142:67;43206:2;43201:3;43142:67;:::i;:::-;43135:74;;43218:93;43307:3;43218:93;:::i;:::-;43336:2;43331:3;43327:12;43320:19;;42979:366;;;:::o;43351:419::-;43517:4;43555:2;43544:9;43540:18;43532:26;;43604:9;43598:4;43594:20;43590:1;43579:9;43575:17;43568:47;43632:131;43758:4;43632:131;:::i;:::-;43624:139;;43351:419;;;:::o;43776:332::-;43897:4;43935:2;43924:9;43920:18;43912:26;;43948:71;44016:1;44005:9;44001:17;43992:6;43948:71;:::i;:::-;44029:72;44097:2;44086:9;44082:18;44073:6;44029:72;:::i;:::-;43776:332;;;;;:::o;44114:98::-;44165:6;44199:5;44193:12;44183:22;;44114:98;;;:::o;44218:386::-;44322:3;44350:38;44382:5;44350:38;:::i;:::-;44404:88;44485:6;44480:3;44404:88;:::i;:::-;44397:95;;44501:65;44559:6;44554:3;44547:4;44540:5;44536:16;44501:65;:::i;:::-;44591:6;44586:3;44582:16;44575:23;;44326:278;44218:386;;;;:::o;44610:271::-;44740:3;44762:93;44851:3;44842:6;44762:93;:::i;:::-;44755:100;;44872:3;44865:10;;44610:271;;;;:::o;44887:137::-;44941:5;44972:6;44966:13;44957:22;;44988:30;45012:5;44988:30;:::i;:::-;44887:137;;;;:::o;45030:345::-;45097:6;45146:2;45134:9;45125:7;45121:23;45117:32;45114:119;;;45152:79;;:::i;:::-;45114:119;45272:1;45297:61;45350:7;45341:6;45330:9;45326:22;45297:61;:::i;:::-;45287:71;;45243:125;45030:345;;;;:::o;45381:227::-;45521:34;45517:1;45509:6;45505:14;45498:58;45590:10;45585:2;45577:6;45573:15;45566:35;45381:227;:::o;45614:366::-;45756:3;45777:67;45841:2;45836:3;45777:67;:::i;:::-;45770:74;;45853:93;45942:3;45853:93;:::i;:::-;45971:2;45966:3;45962:12;45955:19;;45614:366;;;:::o;45986:419::-;46152:4;46190:2;46179:9;46175:18;46167:26;;46239:9;46233:4;46229:20;46225:1;46214:9;46210:17;46203:47;46267:131;46393:4;46267:131;:::i;:::-;46259:139;;45986:419;;;:::o;46411:114::-;46478:6;46512:5;46506:12;46496:22;;46411:114;;;:::o;46531:184::-;46630:11;46664:6;46659:3;46652:19;46704:4;46699:3;46695:14;46680:29;;46531:184;;;;:::o;46721:132::-;46788:4;46811:3;46803:11;;46841:4;46836:3;46832:14;46824:22;;46721:132;;;:::o;46859:108::-;46936:24;46954:5;46936:24;:::i;:::-;46931:3;46924:37;46859:108;;:::o;46973:179::-;47042:10;47063:46;47105:3;47097:6;47063:46;:::i;:::-;47141:4;47136:3;47132:14;47118:28;;46973:179;;;;:::o;47158:113::-;47228:4;47260;47255:3;47251:14;47243:22;;47158:113;;;:::o;47307:732::-;47426:3;47455:54;47503:5;47455:54;:::i;:::-;47525:86;47604:6;47599:3;47525:86;:::i;:::-;47518:93;;47635:56;47685:5;47635:56;:::i;:::-;47714:7;47745:1;47730:284;47755:6;47752:1;47749:13;47730:284;;;47831:6;47825:13;47858:63;47917:3;47902:13;47858:63;:::i;:::-;47851:70;;47944:60;47997:6;47944:60;:::i;:::-;47934:70;;47790:224;47777:1;47774;47770:9;47765:14;;47730:284;;;47734:14;48030:3;48023:10;;47431:608;;;47307:732;;;;:::o;48045:831::-;48308:4;48346:3;48335:9;48331:19;48323:27;;48360:71;48428:1;48417:9;48413:17;48404:6;48360:71;:::i;:::-;48441:80;48517:2;48506:9;48502:18;48493:6;48441:80;:::i;:::-;48568:9;48562:4;48558:20;48553:2;48542:9;48538:18;48531:48;48596:108;48699:4;48690:6;48596:108;:::i;:::-;48588:116;;48714:72;48782:2;48771:9;48767:18;48758:6;48714:72;:::i;:::-;48796:73;48864:3;48853:9;48849:19;48840:6;48796:73;:::i;:::-;48045:831;;;;;;;;:::o;48882:553::-;49059:4;49097:3;49086:9;49082:19;49074:27;;49111:71;49179:1;49168:9;49164:17;49155:6;49111:71;:::i;:::-;49192:72;49260:2;49249:9;49245:18;49236:6;49192:72;:::i;:::-;49274;49342:2;49331:9;49327:18;49318:6;49274:72;:::i;:::-;49356;49424:2;49413:9;49409:18;49400:6;49356:72;:::i;:::-;48882:553;;;;;;;:::o

Swarm Source

ipfs://d95f6c52f227978529dce81fe3ee5af3049d7783c250b148d46fb36631828af3
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.