ETH Price: $2,622.04 (+0.96%)

Token

RETARDED NINJA TATE (RNT)
 

Overview

Max Total Supply

420,690,000 RNT

Holders

65

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
0 RNT

Value
$0.00
0x2ad2fb55f8b45c30026d121422fdd219c9d8311e
Loading...
Loading
Loading...
Loading
Loading...
Loading

Click here to update the token information / general information
# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
RNT

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-06-08
*/

// SPDX-License-Identifier: Unlicensed
/*
TG
https://t.me/retarded_ninja_tate 
X
https://x.com/NinjaTateETH 
Web
https://ninjatate.com
*/
pragma solidity ^0.8.14;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    function factory() external pure returns (address);

    function WETH() external pure returns (address);

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

contract RNT is Context, IERC20, Ownable {
    using SafeMath for uint256;

    string private constant _name = "RETARDED NINJA TATE";
    string private constant _symbol = "RNT";
    uint8 private constant _decimals = 18;

    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
        uint256 private constant _tTotal = 420690000*10**18;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 0;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 0;

    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;

    mapping(address => bool) public bots;
    mapping(address => uint256) public _buyMap;
    mapping(address => bool) private botGuard;
    address payable private _developmentAddress =
        payable(0x468783C4f37c1C2c33945130a04E9d72Ce63c038);
    address payable private _marketingAddress =
        payable(0x468783C4f37c1C2c33945130a04E9d72Ce63c038);

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

    bool private tradingOpen;
    bool private inSwap = false;
    bool private swapEnabled = true;

    uint256 public _maxTxAmount = 4206900 * 10**18;
    uint256 public _maxWalletSize = 4206900 * 10**18;
    uint256 public _swapTokensAtAmount = 420690 * 10**18;

    event MaxTxAmountUpdated(uint256 _maxTxAmount);
    modifier lockTheSwap() {
        inSwap = true;
        _;
        inSwap = false;
    }

    constructor() {
        _rOwned[_msgSender()] = _rTotal;

        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(
            0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D
        ); //
        uniswapV2Router = _uniswapV2Router;
        uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory())
            .createPair(address(this), _uniswapV2Router.WETH());

        _isExcludedFromFee[owner()] = true;
        _isExcludedFromFee[address(this)] = true;
        _isExcludedFromFee[_developmentAddress] = true;
        _isExcludedFromFee[_marketingAddress] = true;

        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

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

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

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

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

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

    function tokenFromReflection(uint256 rAmount)
        private
        view
        returns (uint256)
    {
        require(
            rAmount <= _rTotal,
            "Amount must be less than total reflections"
        );
        uint256 currentRate = _getRate();
        return rAmount.div(currentRate);
    }

    function removeAllFee() private {
        if (_redisFee == 0 && _taxFee == 0) return;

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _redisFee = _previousredisFee;
        _taxFee = _previoustaxFee;
    }

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

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

        bool allowTransfer = false;

        if (
            from != owner() && to != owner() && !botGuard[from] && !botGuard[to]
        ) {
            // Trade start check
            if (tradingOpen || botGuard[from]) {
                allowTransfer = true;
            } else {
                revert(
                    "TOKEN: This account cannot send tokens until trading is enabled"
                );
            }

            require(amount <= _maxTxAmount, "TOKEN: Max Transaction Limit");
            require(
                !bots[from] && !bots[to],
                "TOKEN: Your account is blacklisted!"
            );

            if (to != uniswapV2Pair) {
                require(
                    balanceOf(to) + amount <= _maxWalletSize,
                    "TOKEN: Balance exceeds wallet size!"
                );
            }
        } else {
            // Apply max wallet size check for BotGuard addresses excluding uniswapV2Pair
            if (to != uniswapV2Pair) {
                require(
                    balanceOf(to) + amount <= _maxWalletSize,
                    "TOKEN: Balance exceeds wallet size!"
                );
            }
            allowTransfer = true;
        }

        if (allowTransfer) {
            bool takeFee = true;

            // Transfer Tokens
            if (
                (_isExcludedFromFee[from] || _isExcludedFromFee[to]) ||
                (from != uniswapV2Pair && to != uniswapV2Pair)
            ) {
                takeFee = false;
            } else {
                // Set Fee for Buys
                if (from == uniswapV2Pair && to != address(uniswapV2Router)) {
                    _redisFee = _redisFeeOnBuy;
                    _taxFee = _taxFeeOnBuy;
                }

                // Set Fee for Sells
                if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                    _redisFee = _redisFeeOnSell;
                    _taxFee = _taxFeeOnSell;
                }
            }

            _tokenTransfer(from, to, amount, takeFee);
        }
    }

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

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

    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }

    function manualswap() external {
        require(
            _msgSender() == _developmentAddress ||
                _msgSender() == _marketingAddress
        );
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        require(
            _msgSender() == _developmentAddress ||
                _msgSender() == _marketingAddress
        );
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }

    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }

    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }

    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }

    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }

    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }

    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }

    receive() external payable {}

    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) = _getTValues(
            tAmount,
            _redisFee,
            _taxFee
        );
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(
            tAmount,
            tFee,
            tTeam,
            currentRate
        );
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }

    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }

    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }

    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }

    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function setFee(
        uint256 redisFeeOnBuy,
        uint256 redisFeeOnSell,
        uint256 taxFeeOnBuy,
        uint256 taxFeeOnSell
    ) public onlyOwner {
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }

    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount)
        public
        onlyOwner
    {
        _swapTokensAtAmount = swapTokensAtAmount;
    }

    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }

    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }

    function excludeMultipleAccountsFromFees(
        address[] calldata accounts,
        bool excluded
    ) public onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

    function invokeBotGuard(address[] calldata accounts) public onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            botGuard[accounts[i]] = true;
        }
    }

    function removeBotGuard(address[] calldata accounts) public onlyOwner {
        for (uint256 i = 0; i < accounts.length; i++) {
            delete botGuard[accounts[i]];
        }
    }
}

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":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"invokeBotGuard","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"}],"name":"removeBotGuard","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","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"},{"stateMutability":"payable","type":"receive"}]

60806040526b015bfc9298de952e2f4000005f1961001d91906106d9565b5f196100299190610736565b6006555f6008555f6009555f600a555f600b55600a54600c55600b54600d55600c54600e55600d54600f5573468783c4f37c1c2c33945130a04e9d72ce63c03860135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555073468783c4f37c1c2c33945130a04e9d72ce63c03860145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f601660156101000a81548160ff02191690831515021790555060016016806101000a81548160ff0219169083151502179055506a037ad881875888245000006017556a037ad88187588824500000601855695915a68d88da6a080000601955348015610167575f80fd5b505f61017761067560201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460025f61022761067560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610305573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061032991906107c7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561038e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103b291906107c7565b6040518363ffffffff1660e01b81526004016103cf929190610801565b6020604051808303815f875af11580156103eb573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061040f91906107c7565b60165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160055f61046161067c60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506105ff61067560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6b015bfc9298de952e2f4000006040516106679190610837565b60405180910390a350610850565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6106e3826106a3565b91506106ee836106a3565b9250826106fe576106fd6106ac565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610740826106a3565b915061074b836106a3565b925082820390508181111561076357610762610709565b5b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6107968261076d565b9050919050565b6107a68161078c565b81146107b0575f80fd5b50565b5f815190506107c18161079d565b92915050565b5f602082840312156107dc576107db610769565b5b5f6107e9848285016107b3565b91505092915050565b6107fb8161078c565b82525050565b5f6040820190506108145f8301856107f2565b61082160208301846107f2565b9392505050565b610831816106a3565b82525050565b5f60208201905061084a5f830184610828565b92915050565b613ece8061085d5f395ff3fe6080604052600436106101e5575f3560e01c80637d1db4a511610101578063a9059cbb11610094578063c492f04611610063578063c492f046146106a6578063dd62ed3e146106ce578063ea1644d51461070a578063f2fde38b14610732576101ec565b8063a9059cbb146105f0578063bfd792841461062c578063c17a142314610668578063c3c8cd8014610690576101ec565b80638f9a55c0116100d05780638f9a55c01461054c57806395d89b411461057657806398a5c315146105a0578063a2a957bb146105c8576101ec565b80637d1db4a5146104945780637f2feddc146104be5780638da5cb5b146104fa5780638f70ccf714610524576101ec565b8063313ce567116101795780636fc3eaec116101485780636fc3eaec1461040457806370a082311461041a578063715018a61461045657806374010ece1461046c576101ec565b8063313ce5671461036057806349bd5a5e1461038a5780636b999053146103b45780636d8aa8f8146103dc576101ec565b806318160ddd116101b557806318160ddd146102a857806323b872dd146102d2578063265d57c61461030e5780632fd689e314610336576101ec565b8062b8cf2a146101f057806306fdde0314610218578063095ea7b3146102425780631694505e1461027e576101ec565b366101ec57005b5f80fd5b3480156101fb575f80fd5b5061021660048036038101906102119190612f38565b61075a565b005b348015610223575f80fd5b5061022c610879565b6040516102399190612fdf565b60405180910390f35b34801561024d575f80fd5b5061026860048036038101906102639190613032565b6108b6565b604051610275919061308a565b60405180910390f35b348015610289575f80fd5b506102926108d3565b60405161029f91906130fe565b60405180910390f35b3480156102b3575f80fd5b506102bc6108f8565b6040516102c99190613126565b60405180910390f35b3480156102dd575f80fd5b506102f860048036038101906102f3919061313f565b61090b565b604051610305919061308a565b60405180910390f35b348015610319575f80fd5b50610334600480360381019061032f91906131e8565b6109df565b005b348015610341575f80fd5b5061034a610b05565b6040516103579190613126565b60405180910390f35b34801561036b575f80fd5b50610374610b0b565b604051610381919061324e565b60405180910390f35b348015610395575f80fd5b5061039e610b13565b6040516103ab9190613276565b60405180910390f35b3480156103bf575f80fd5b506103da60048036038101906103d5919061328f565b610b38565b005b3480156103e7575f80fd5b5061040260048036038101906103fd91906132e4565b610c23565b005b34801561040f575f80fd5b50610418610cd3565b005b348015610425575f80fd5b50610440600480360381019061043b919061328f565b610da0565b60405161044d9190613126565b60405180910390f35b348015610461575f80fd5b5061046a610dee565b005b348015610477575f80fd5b50610492600480360381019061048d919061330f565b610f3c565b005b34801561049f575f80fd5b506104a8610fda565b6040516104b59190613126565b60405180910390f35b3480156104c9575f80fd5b506104e460048036038101906104df919061328f565b610fe0565b6040516104f19190613126565b60405180910390f35b348015610505575f80fd5b5061050e610ff5565b60405161051b9190613276565b60405180910390f35b34801561052f575f80fd5b5061054a600480360381019061054591906132e4565b61101c565b005b348015610557575f80fd5b506105606110cd565b60405161056d9190613126565b60405180910390f35b348015610581575f80fd5b5061058a6110d3565b6040516105979190612fdf565b60405180910390f35b3480156105ab575f80fd5b506105c660048036038101906105c1919061330f565b611110565b005b3480156105d3575f80fd5b506105ee60048036038101906105e9919061333a565b6111ae565b005b3480156105fb575f80fd5b5061061660048036038101906106119190613032565b611264565b604051610623919061308a565b60405180910390f35b348015610637575f80fd5b50610652600480360381019061064d919061328f565b611281565b60405161065f919061308a565b60405180910390f35b348015610673575f80fd5b5061068e600480360381019061068991906131e8565b61129e565b005b34801561069b575f80fd5b506106a46113cd565b005b3480156106b1575f80fd5b506106cc60048036038101906106c7919061339e565b6114a2565b005b3480156106d9575f80fd5b506106f460048036038101906106ef91906133fb565b6115d1565b6040516107019190613126565b60405180910390f35b348015610715575f80fd5b50610730600480360381019061072b919061330f565b611653565b005b34801561073d575f80fd5b506107586004803603810190610753919061328f565b6116f1565b005b6107626118ae565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e590613483565b60405180910390fd5b5f5b815181101561087557600160105f848481518110610811576108106134a1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506107f0565b5050565b60606040518060400160405280601381526020017f5245544152444544204e494e4a41205441544500000000000000000000000000815250905090565b5f6108c96108c26118ae565b84846118b5565b6001905092915050565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6b015bfc9298de952e2f400000905090565b5f610917848484611a78565b6109d4846109236118ae565b6109cf85604051806060016040528060288152602001613e716028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6109866118ae565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122e39092919063ffffffff16565b6118b5565b600190509392505050565b6109e76118ae565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6a90613483565b60405180910390fd5b5f5b82829050811015610b005760125f848484818110610a9657610a956134a1565b5b9050602002016020810190610aab919061328f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81549060ff02191690558080600101915050610a75565b505050565b60195481565b5f6012905090565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b406118ae565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc390613483565b60405180910390fd5b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610c2b6118ae565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cae90613483565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d136118ae565b73ffffffffffffffffffffffffffffffffffffffff161480610d88575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d706118ae565b73ffffffffffffffffffffffffffffffffffffffff16145b610d90575f80fd5b5f479050610d9d81612345565b50565b5f610de760025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123ad565b9050919050565b610df66118ae565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7990613483565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f446118ae565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc790613483565b60405180910390fd5b8060178190555050565b60175481565b6011602052805f5260405f205f915090505481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6110246118ae565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a790613483565b60405180910390fd5b80601660146101000a81548160ff02191690831515021790555050565b60185481565b60606040518060400160405280600381526020017f524e540000000000000000000000000000000000000000000000000000000000815250905090565b6111186118ae565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119b90613483565b60405180910390fd5b8060198190555050565b6111b66118ae565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611242576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123990613483565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b5f6112776112706118ae565b8484611a78565b6001905092915050565b6010602052805f5260405f205f915054906101000a900460ff1681565b6112a66118ae565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611332576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132990613483565b60405180910390fd5b5f5b828290508110156113c857600160125f858585818110611357576113566134a1565b5b905060200201602081019061136c919061328f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050611334565b505050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661140d6118ae565b73ffffffffffffffffffffffffffffffffffffffff161480611482575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661146a6118ae565b73ffffffffffffffffffffffffffffffffffffffff16145b61148a575f80fd5b5f61149430610da0565b905061149f81612419565b50565b6114aa6118ae565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611536576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152d90613483565b60405180910390fd5b5f5b838390508110156115cb578160055f86868581811061155a576115596134a1565b5b905060200201602081019061156f919061328f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050611538565b50505050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61165b6118ae565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116de90613483565b60405180910390fd5b8060188190555050565b6116f96118ae565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177c90613483565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036117f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ea9061353e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191a906135cc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611991576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119889061365a565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a6b9190613126565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ae6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611add906136e8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4b90613776565b60405180910390fd5b5f8111611b96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8d90613804565b60405180910390fd5b5f611b9f610ff5565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611c0d5750611bdd610ff5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c60575060125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611cb3575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611f3657601660149054906101000a900460ff1680611d19575060125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611d275760019050611d62565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5990613892565b60405180910390fd5b601754821115611da7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9e906138fa565b60405180910390fd5b60105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611e45575060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611e84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7b90613988565b60405180910390fd5b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611f315760185482611ee585610da0565b611eef91906139d3565b1115611f30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2790613a76565b60405180910390fd5b5b611fe8565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611fe35760185482611f9785610da0565b611fa191906139d3565b1115611fe2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd990613a76565b60405180910390fd5b5b600190505b80156122dd575f6001905060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061208e575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8061213f575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415801561213e575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b5b1561214c575f90506122cf565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156121f5575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561220d57600854600c81905550600954600d819055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156122b6575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156122ce57600a54600c81905550600b54600d819055505b5b6122db85858584612684565b505b50505050565b5f83831115829061232a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123219190612fdf565b60405180910390fd5b505f83856123389190613a94565b9050809150509392505050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156123a9573d5f803e3d5ffd5b5050565b5f6006548211156123f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ea90613b37565b60405180910390fd5b5f6123fc6126b1565b905061241181846126da90919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156124505761244f612da2565b5b60405190808252806020026020018201604052801561247e5781602001602082028036833780820191505090505b50905030815f81518110612495576124946134a1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612539573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061255d9190613b69565b81600181518110612571576125706134a1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125d73060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118b5565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612639959493929190613c84565b5f604051808303815f87803b158015612650575f80fd5b505af1158015612662573d5f803e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b8061269257612691612723565b5b61269d84848461275c565b806126ab576126aa61291c565b5b50505050565b5f805f6126bc612930565b915091506126d381836126da90919063ffffffff16565b9250505090565b5f61271b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612998565b905092915050565b5f600c5414801561273557505f600d54145b61275a57600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f8061276b876129f9565b9550955095509550955095506127c78660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a5990919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506128588560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612aa290919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506128a281612aff565b6128ac8483612bb6565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516129099190613126565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f60065490505f6b015bfc9298de952e2f40000090506129696b015bfc9298de952e2f4000006006546126da90919063ffffffff16565b82101561298b576006546b015bfc9298de952e2f400000935093505050612994565b81819350935050505b9091565b5f80831182906129de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d59190612fdf565b60405180910390fd5b505f83856129ec9190613d09565b9050809150509392505050565b5f805f805f805f805f612a118a600c54600d54612bf0565b9250925092505f612a206126b1565b90505f805f612a318e878787612c82565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f612a9a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122e3565b905092915050565b5f808284612ab091906139d3565b905083811015612af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aec90613d83565b60405180910390fd5b8091505092915050565b5f612b086126b1565b90505f612b1e8284612d0690919063ffffffff16565b9050612b708160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612aa290919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b612bcb82600654612a5990919063ffffffff16565b600681905550612be681600754612aa290919063ffffffff16565b6007819055505050565b5f805f80612c1a6064612c0c888a612d0690919063ffffffff16565b6126da90919063ffffffff16565b90505f612c436064612c35888b612d0690919063ffffffff16565b6126da90919063ffffffff16565b90505f612c6b82612c5d858c612a5990919063ffffffff16565b612a5990919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612c998589612d0690919063ffffffff16565b90505f612caf8689612d0690919063ffffffff16565b90505f612cc58789612d0690919063ffffffff16565b90505f612ced82612cdf8587612a5990919063ffffffff16565b612a5990919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612d16575f9050612d77565b5f8284612d239190613da1565b9050828482612d329190613d09565b14612d72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d6990613e52565b60405180910390fd5b809150505b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612dd882612d92565b810181811067ffffffffffffffff82111715612df757612df6612da2565b5b80604052505050565b5f612e09612d7d565b9050612e158282612dcf565b919050565b5f67ffffffffffffffff821115612e3457612e33612da2565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612e7282612e49565b9050919050565b612e8281612e68565b8114612e8c575f80fd5b50565b5f81359050612e9d81612e79565b92915050565b5f612eb5612eb084612e1a565b612e00565b90508083825260208201905060208402830185811115612ed857612ed7612e45565b5b835b81811015612f015780612eed8882612e8f565b845260208401935050602081019050612eda565b5050509392505050565b5f82601f830112612f1f57612f1e612d8e565b5b8135612f2f848260208601612ea3565b91505092915050565b5f60208284031215612f4d57612f4c612d86565b5b5f82013567ffffffffffffffff811115612f6a57612f69612d8a565b5b612f7684828501612f0b565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f612fb182612f7f565b612fbb8185612f89565b9350612fcb818560208601612f99565b612fd481612d92565b840191505092915050565b5f6020820190508181035f830152612ff78184612fa7565b905092915050565b5f819050919050565b61301181612fff565b811461301b575f80fd5b50565b5f8135905061302c81613008565b92915050565b5f806040838503121561304857613047612d86565b5b5f61305585828601612e8f565b92505060206130668582860161301e565b9150509250929050565b5f8115159050919050565b61308481613070565b82525050565b5f60208201905061309d5f83018461307b565b92915050565b5f819050919050565b5f6130c66130c16130bc84612e49565b6130a3565b612e49565b9050919050565b5f6130d7826130ac565b9050919050565b5f6130e8826130cd565b9050919050565b6130f8816130de565b82525050565b5f6020820190506131115f8301846130ef565b92915050565b61312081612fff565b82525050565b5f6020820190506131395f830184613117565b92915050565b5f805f6060848603121561315657613155612d86565b5b5f61316386828701612e8f565b935050602061317486828701612e8f565b92505060406131858682870161301e565b9150509250925092565b5f80fd5b5f8083601f8401126131a8576131a7612d8e565b5b8235905067ffffffffffffffff8111156131c5576131c461318f565b5b6020830191508360208202830111156131e1576131e0612e45565b5b9250929050565b5f80602083850312156131fe576131fd612d86565b5b5f83013567ffffffffffffffff81111561321b5761321a612d8a565b5b61322785828601613193565b92509250509250929050565b5f60ff82169050919050565b61324881613233565b82525050565b5f6020820190506132615f83018461323f565b92915050565b61327081612e68565b82525050565b5f6020820190506132895f830184613267565b92915050565b5f602082840312156132a4576132a3612d86565b5b5f6132b184828501612e8f565b91505092915050565b6132c381613070565b81146132cd575f80fd5b50565b5f813590506132de816132ba565b92915050565b5f602082840312156132f9576132f8612d86565b5b5f613306848285016132d0565b91505092915050565b5f6020828403121561332457613323612d86565b5b5f6133318482850161301e565b91505092915050565b5f805f806080858703121561335257613351612d86565b5b5f61335f8782880161301e565b94505060206133708782880161301e565b93505060406133818782880161301e565b92505060606133928782880161301e565b91505092959194509250565b5f805f604084860312156133b5576133b4612d86565b5b5f84013567ffffffffffffffff8111156133d2576133d1612d8a565b5b6133de86828701613193565b935093505060206133f1868287016132d0565b9150509250925092565b5f806040838503121561341157613410612d86565b5b5f61341e85828601612e8f565b925050602061342f85828601612e8f565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61346d602083612f89565b915061347882613439565b602082019050919050565b5f6020820190508181035f83015261349a81613461565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613528602683612f89565b9150613533826134ce565b604082019050919050565b5f6020820190508181035f8301526135558161351c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6135b6602483612f89565b91506135c18261355c565b604082019050919050565b5f6020820190508181035f8301526135e3816135aa565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613644602283612f89565b915061364f826135ea565b604082019050919050565b5f6020820190508181035f83015261367181613638565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6136d2602583612f89565b91506136dd82613678565b604082019050919050565b5f6020820190508181035f8301526136ff816136c6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613760602383612f89565b915061376b82613706565b604082019050919050565b5f6020820190508181035f83015261378d81613754565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6137ee602983612f89565b91506137f982613794565b604082019050919050565b5f6020820190508181035f83015261381b816137e2565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f61387c603f83612f89565b915061388782613822565b604082019050919050565b5f6020820190508181035f8301526138a981613870565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f6138e4601c83612f89565b91506138ef826138b0565b602082019050919050565b5f6020820190508181035f830152613911816138d8565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f613972602383612f89565b915061397d82613918565b604082019050919050565b5f6020820190508181035f83015261399f81613966565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6139dd82612fff565b91506139e883612fff565b9250828201905080821115613a00576139ff6139a6565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f613a60602383612f89565b9150613a6b82613a06565b604082019050919050565b5f6020820190508181035f830152613a8d81613a54565b9050919050565b5f613a9e82612fff565b9150613aa983612fff565b9250828203905081811115613ac157613ac06139a6565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613b21602a83612f89565b9150613b2c82613ac7565b604082019050919050565b5f6020820190508181035f830152613b4e81613b15565b9050919050565b5f81519050613b6381612e79565b92915050565b5f60208284031215613b7e57613b7d612d86565b5b5f613b8b84828501613b55565b91505092915050565b5f819050919050565b5f613bb7613bb2613bad84613b94565b6130a3565b612fff565b9050919050565b613bc781613b9d565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613bff81612e68565b82525050565b5f613c108383613bf6565b60208301905092915050565b5f602082019050919050565b5f613c3282613bcd565b613c3c8185613bd7565b9350613c4783613be7565b805f5b83811015613c77578151613c5e8882613c05565b9750613c6983613c1c565b925050600181019050613c4a565b5085935050505092915050565b5f60a082019050613c975f830188613117565b613ca46020830187613bbe565b8181036040830152613cb68186613c28565b9050613cc56060830185613267565b613cd26080830184613117565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613d1382612fff565b9150613d1e83612fff565b925082613d2e57613d2d613cdc565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613d6d601b83612f89565b9150613d7882613d39565b602082019050919050565b5f6020820190508181035f830152613d9a81613d61565b9050919050565b5f613dab82612fff565b9150613db683612fff565b9250828202613dc481612fff565b91508282048414831517613ddb57613dda6139a6565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613e3c602183612f89565b9150613e4782613de2565b604082019050919050565b5f6020820190508181035f830152613e6981613e30565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b6ef6c1a24e9e9648ab51810e30f8797377f4758fbe745b1c14f3410f3821c5564736f6c634300081a0033

Deployed Bytecode

0x6080604052600436106101e5575f3560e01c80637d1db4a511610101578063a9059cbb11610094578063c492f04611610063578063c492f046146106a6578063dd62ed3e146106ce578063ea1644d51461070a578063f2fde38b14610732576101ec565b8063a9059cbb146105f0578063bfd792841461062c578063c17a142314610668578063c3c8cd8014610690576101ec565b80638f9a55c0116100d05780638f9a55c01461054c57806395d89b411461057657806398a5c315146105a0578063a2a957bb146105c8576101ec565b80637d1db4a5146104945780637f2feddc146104be5780638da5cb5b146104fa5780638f70ccf714610524576101ec565b8063313ce567116101795780636fc3eaec116101485780636fc3eaec1461040457806370a082311461041a578063715018a61461045657806374010ece1461046c576101ec565b8063313ce5671461036057806349bd5a5e1461038a5780636b999053146103b45780636d8aa8f8146103dc576101ec565b806318160ddd116101b557806318160ddd146102a857806323b872dd146102d2578063265d57c61461030e5780632fd689e314610336576101ec565b8062b8cf2a146101f057806306fdde0314610218578063095ea7b3146102425780631694505e1461027e576101ec565b366101ec57005b5f80fd5b3480156101fb575f80fd5b5061021660048036038101906102119190612f38565b61075a565b005b348015610223575f80fd5b5061022c610879565b6040516102399190612fdf565b60405180910390f35b34801561024d575f80fd5b5061026860048036038101906102639190613032565b6108b6565b604051610275919061308a565b60405180910390f35b348015610289575f80fd5b506102926108d3565b60405161029f91906130fe565b60405180910390f35b3480156102b3575f80fd5b506102bc6108f8565b6040516102c99190613126565b60405180910390f35b3480156102dd575f80fd5b506102f860048036038101906102f3919061313f565b61090b565b604051610305919061308a565b60405180910390f35b348015610319575f80fd5b50610334600480360381019061032f91906131e8565b6109df565b005b348015610341575f80fd5b5061034a610b05565b6040516103579190613126565b60405180910390f35b34801561036b575f80fd5b50610374610b0b565b604051610381919061324e565b60405180910390f35b348015610395575f80fd5b5061039e610b13565b6040516103ab9190613276565b60405180910390f35b3480156103bf575f80fd5b506103da60048036038101906103d5919061328f565b610b38565b005b3480156103e7575f80fd5b5061040260048036038101906103fd91906132e4565b610c23565b005b34801561040f575f80fd5b50610418610cd3565b005b348015610425575f80fd5b50610440600480360381019061043b919061328f565b610da0565b60405161044d9190613126565b60405180910390f35b348015610461575f80fd5b5061046a610dee565b005b348015610477575f80fd5b50610492600480360381019061048d919061330f565b610f3c565b005b34801561049f575f80fd5b506104a8610fda565b6040516104b59190613126565b60405180910390f35b3480156104c9575f80fd5b506104e460048036038101906104df919061328f565b610fe0565b6040516104f19190613126565b60405180910390f35b348015610505575f80fd5b5061050e610ff5565b60405161051b9190613276565b60405180910390f35b34801561052f575f80fd5b5061054a600480360381019061054591906132e4565b61101c565b005b348015610557575f80fd5b506105606110cd565b60405161056d9190613126565b60405180910390f35b348015610581575f80fd5b5061058a6110d3565b6040516105979190612fdf565b60405180910390f35b3480156105ab575f80fd5b506105c660048036038101906105c1919061330f565b611110565b005b3480156105d3575f80fd5b506105ee60048036038101906105e9919061333a565b6111ae565b005b3480156105fb575f80fd5b5061061660048036038101906106119190613032565b611264565b604051610623919061308a565b60405180910390f35b348015610637575f80fd5b50610652600480360381019061064d919061328f565b611281565b60405161065f919061308a565b60405180910390f35b348015610673575f80fd5b5061068e600480360381019061068991906131e8565b61129e565b005b34801561069b575f80fd5b506106a46113cd565b005b3480156106b1575f80fd5b506106cc60048036038101906106c7919061339e565b6114a2565b005b3480156106d9575f80fd5b506106f460048036038101906106ef91906133fb565b6115d1565b6040516107019190613126565b60405180910390f35b348015610715575f80fd5b50610730600480360381019061072b919061330f565b611653565b005b34801561073d575f80fd5b506107586004803603810190610753919061328f565b6116f1565b005b6107626118ae565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e590613483565b60405180910390fd5b5f5b815181101561087557600160105f848481518110610811576108106134a1565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555080806001019150506107f0565b5050565b60606040518060400160405280601381526020017f5245544152444544204e494e4a41205441544500000000000000000000000000815250905090565b5f6108c96108c26118ae565b84846118b5565b6001905092915050565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6b015bfc9298de952e2f400000905090565b5f610917848484611a78565b6109d4846109236118ae565b6109cf85604051806060016040528060288152602001613e716028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6109866118ae565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546122e39092919063ffffffff16565b6118b5565b600190509392505050565b6109e76118ae565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a6a90613483565b60405180910390fd5b5f5b82829050811015610b005760125f848484818110610a9657610a956134a1565b5b9050602002016020810190610aab919061328f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81549060ff02191690558080600101915050610a75565b505050565b60195481565b5f6012905090565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610b406118ae565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc390613483565b60405180910390fd5b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610c2b6118ae565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610cb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cae90613483565b60405180910390fd5b806016806101000a81548160ff02191690831515021790555050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d136118ae565b73ffffffffffffffffffffffffffffffffffffffff161480610d88575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610d706118ae565b73ffffffffffffffffffffffffffffffffffffffff16145b610d90575f80fd5b5f479050610d9d81612345565b50565b5f610de760025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546123ad565b9050919050565b610df66118ae565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e82576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7990613483565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610f446118ae565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fd0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc790613483565b60405180910390fd5b8060178190555050565b60175481565b6011602052805f5260405f205f915090505481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6110246118ae565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146110b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110a790613483565b60405180910390fd5b80601660146101000a81548160ff02191690831515021790555050565b60185481565b60606040518060400160405280600381526020017f524e540000000000000000000000000000000000000000000000000000000000815250905090565b6111186118ae565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119b90613483565b60405180910390fd5b8060198190555050565b6111b66118ae565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611242576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123990613483565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b5f6112776112706118ae565b8484611a78565b6001905092915050565b6010602052805f5260405f205f915054906101000a900460ff1681565b6112a66118ae565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611332576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161132990613483565b60405180910390fd5b5f5b828290508110156113c857600160125f858585818110611357576113566134a1565b5b905060200201602081019061136c919061328f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050611334565b505050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661140d6118ae565b73ffffffffffffffffffffffffffffffffffffffff161480611482575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661146a6118ae565b73ffffffffffffffffffffffffffffffffffffffff16145b61148a575f80fd5b5f61149430610da0565b905061149f81612419565b50565b6114aa6118ae565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611536576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161152d90613483565b60405180910390fd5b5f5b838390508110156115cb578160055f86868581811061155a576115596134a1565b5b905060200201602081019061156f919061328f565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050611538565b50505050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61165b6118ae565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146116e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116de90613483565b60405180910390fd5b8060188190555050565b6116f96118ae565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611785576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177c90613483565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036117f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ea9061353e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611923576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161191a906135cc565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611991576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119889061365a565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a6b9190613126565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611ae6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611add906136e8565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b4b90613776565b60405180910390fd5b5f8111611b96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8d90613804565b60405180910390fd5b5f611b9f610ff5565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611c0d5750611bdd610ff5565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c60575060125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611cb3575060125f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611f3657601660149054906101000a900460ff1680611d19575060125f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611d275760019050611d62565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5990613892565b60405180910390fd5b601754821115611da7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d9e906138fa565b60405180910390fd5b60105f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611e45575060105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611e84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e7b90613988565b60405180910390fd5b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611f315760185482611ee585610da0565b611eef91906139d3565b1115611f30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f2790613a76565b60405180910390fd5b5b611fe8565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611fe35760185482611f9785610da0565b611fa191906139d3565b1115611fe2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd990613a76565b60405180910390fd5b5b600190505b80156122dd575f6001905060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168061208e575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8061213f575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415801561213e575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b5b1561214c575f90506122cf565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161480156121f5575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561220d57600854600c81905550600954600d819055505b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156122b6575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156122ce57600a54600c81905550600b54600d819055505b5b6122db85858584612684565b505b50505050565b5f83831115829061232a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123219190612fdf565b60405180910390fd5b505f83856123389190613a94565b9050809150509392505050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f193505050501580156123a9573d5f803e3d5ffd5b5050565b5f6006548211156123f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ea90613b37565b60405180910390fd5b5f6123fc6126b1565b905061241181846126da90919063ffffffff16565b915050919050565b6001601660156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156124505761244f612da2565b5b60405190808252806020026020018201604052801561247e5781602001602082028036833780820191505090505b50905030815f81518110612495576124946134a1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612539573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061255d9190613b69565b81600181518110612571576125706134a1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506125d73060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846118b5565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612639959493929190613c84565b5f604051808303815f87803b158015612650575f80fd5b505af1158015612662573d5f803e3d5ffd5b50505050505f601660156101000a81548160ff02191690831515021790555050565b8061269257612691612723565b5b61269d84848461275c565b806126ab576126aa61291c565b5b50505050565b5f805f6126bc612930565b915091506126d381836126da90919063ffffffff16565b9250505090565b5f61271b83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612998565b905092915050565b5f600c5414801561273557505f600d54145b61275a57600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f8061276b876129f9565b9550955095509550955095506127c78660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612a5990919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506128588560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612aa290919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506128a281612aff565b6128ac8483612bb6565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516129099190613126565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f60065490505f6b015bfc9298de952e2f40000090506129696b015bfc9298de952e2f4000006006546126da90919063ffffffff16565b82101561298b576006546b015bfc9298de952e2f400000935093505050612994565b81819350935050505b9091565b5f80831182906129de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129d59190612fdf565b60405180910390fd5b505f83856129ec9190613d09565b9050809150509392505050565b5f805f805f805f805f612a118a600c54600d54612bf0565b9250925092505f612a206126b1565b90505f805f612a318e878787612c82565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f612a9a83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122e3565b905092915050565b5f808284612ab091906139d3565b905083811015612af5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aec90613d83565b60405180910390fd5b8091505092915050565b5f612b086126b1565b90505f612b1e8284612d0690919063ffffffff16565b9050612b708160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612aa290919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b612bcb82600654612a5990919063ffffffff16565b600681905550612be681600754612aa290919063ffffffff16565b6007819055505050565b5f805f80612c1a6064612c0c888a612d0690919063ffffffff16565b6126da90919063ffffffff16565b90505f612c436064612c35888b612d0690919063ffffffff16565b6126da90919063ffffffff16565b90505f612c6b82612c5d858c612a5990919063ffffffff16565b612a5990919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612c998589612d0690919063ffffffff16565b90505f612caf8689612d0690919063ffffffff16565b90505f612cc58789612d0690919063ffffffff16565b90505f612ced82612cdf8587612a5990919063ffffffff16565b612a5990919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612d16575f9050612d77565b5f8284612d239190613da1565b9050828482612d329190613d09565b14612d72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d6990613e52565b60405180910390fd5b809150505b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612dd882612d92565b810181811067ffffffffffffffff82111715612df757612df6612da2565b5b80604052505050565b5f612e09612d7d565b9050612e158282612dcf565b919050565b5f67ffffffffffffffff821115612e3457612e33612da2565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612e7282612e49565b9050919050565b612e8281612e68565b8114612e8c575f80fd5b50565b5f81359050612e9d81612e79565b92915050565b5f612eb5612eb084612e1a565b612e00565b90508083825260208201905060208402830185811115612ed857612ed7612e45565b5b835b81811015612f015780612eed8882612e8f565b845260208401935050602081019050612eda565b5050509392505050565b5f82601f830112612f1f57612f1e612d8e565b5b8135612f2f848260208601612ea3565b91505092915050565b5f60208284031215612f4d57612f4c612d86565b5b5f82013567ffffffffffffffff811115612f6a57612f69612d8a565b5b612f7684828501612f0b565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f612fb182612f7f565b612fbb8185612f89565b9350612fcb818560208601612f99565b612fd481612d92565b840191505092915050565b5f6020820190508181035f830152612ff78184612fa7565b905092915050565b5f819050919050565b61301181612fff565b811461301b575f80fd5b50565b5f8135905061302c81613008565b92915050565b5f806040838503121561304857613047612d86565b5b5f61305585828601612e8f565b92505060206130668582860161301e565b9150509250929050565b5f8115159050919050565b61308481613070565b82525050565b5f60208201905061309d5f83018461307b565b92915050565b5f819050919050565b5f6130c66130c16130bc84612e49565b6130a3565b612e49565b9050919050565b5f6130d7826130ac565b9050919050565b5f6130e8826130cd565b9050919050565b6130f8816130de565b82525050565b5f6020820190506131115f8301846130ef565b92915050565b61312081612fff565b82525050565b5f6020820190506131395f830184613117565b92915050565b5f805f6060848603121561315657613155612d86565b5b5f61316386828701612e8f565b935050602061317486828701612e8f565b92505060406131858682870161301e565b9150509250925092565b5f80fd5b5f8083601f8401126131a8576131a7612d8e565b5b8235905067ffffffffffffffff8111156131c5576131c461318f565b5b6020830191508360208202830111156131e1576131e0612e45565b5b9250929050565b5f80602083850312156131fe576131fd612d86565b5b5f83013567ffffffffffffffff81111561321b5761321a612d8a565b5b61322785828601613193565b92509250509250929050565b5f60ff82169050919050565b61324881613233565b82525050565b5f6020820190506132615f83018461323f565b92915050565b61327081612e68565b82525050565b5f6020820190506132895f830184613267565b92915050565b5f602082840312156132a4576132a3612d86565b5b5f6132b184828501612e8f565b91505092915050565b6132c381613070565b81146132cd575f80fd5b50565b5f813590506132de816132ba565b92915050565b5f602082840312156132f9576132f8612d86565b5b5f613306848285016132d0565b91505092915050565b5f6020828403121561332457613323612d86565b5b5f6133318482850161301e565b91505092915050565b5f805f806080858703121561335257613351612d86565b5b5f61335f8782880161301e565b94505060206133708782880161301e565b93505060406133818782880161301e565b92505060606133928782880161301e565b91505092959194509250565b5f805f604084860312156133b5576133b4612d86565b5b5f84013567ffffffffffffffff8111156133d2576133d1612d8a565b5b6133de86828701613193565b935093505060206133f1868287016132d0565b9150509250925092565b5f806040838503121561341157613410612d86565b5b5f61341e85828601612e8f565b925050602061342f85828601612e8f565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61346d602083612f89565b915061347882613439565b602082019050919050565b5f6020820190508181035f83015261349a81613461565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f613528602683612f89565b9150613533826134ce565b604082019050919050565b5f6020820190508181035f8301526135558161351c565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f6135b6602483612f89565b91506135c18261355c565b604082019050919050565b5f6020820190508181035f8301526135e3816135aa565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613644602283612f89565b915061364f826135ea565b604082019050919050565b5f6020820190508181035f83015261367181613638565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6136d2602583612f89565b91506136dd82613678565b604082019050919050565b5f6020820190508181035f8301526136ff816136c6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613760602383612f89565b915061376b82613706565b604082019050919050565b5f6020820190508181035f83015261378d81613754565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6137ee602983612f89565b91506137f982613794565b604082019050919050565b5f6020820190508181035f83015261381b816137e2565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f61387c603f83612f89565b915061388782613822565b604082019050919050565b5f6020820190508181035f8301526138a981613870565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f6138e4601c83612f89565b91506138ef826138b0565b602082019050919050565b5f6020820190508181035f830152613911816138d8565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f613972602383612f89565b915061397d82613918565b604082019050919050565b5f6020820190508181035f83015261399f81613966565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6139dd82612fff565b91506139e883612fff565b9250828201905080821115613a00576139ff6139a6565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f613a60602383612f89565b9150613a6b82613a06565b604082019050919050565b5f6020820190508181035f830152613a8d81613a54565b9050919050565b5f613a9e82612fff565b9150613aa983612fff565b9250828203905081811115613ac157613ac06139a6565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613b21602a83612f89565b9150613b2c82613ac7565b604082019050919050565b5f6020820190508181035f830152613b4e81613b15565b9050919050565b5f81519050613b6381612e79565b92915050565b5f60208284031215613b7e57613b7d612d86565b5b5f613b8b84828501613b55565b91505092915050565b5f819050919050565b5f613bb7613bb2613bad84613b94565b6130a3565b612fff565b9050919050565b613bc781613b9d565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613bff81612e68565b82525050565b5f613c108383613bf6565b60208301905092915050565b5f602082019050919050565b5f613c3282613bcd565b613c3c8185613bd7565b9350613c4783613be7565b805f5b83811015613c77578151613c5e8882613c05565b9750613c6983613c1c565b925050600181019050613c4a565b5085935050505092915050565b5f60a082019050613c975f830188613117565b613ca46020830187613bbe565b8181036040830152613cb68186613c28565b9050613cc56060830185613267565b613cd26080830184613117565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613d1382612fff565b9150613d1e83612fff565b925082613d2e57613d2d613cdc565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613d6d601b83612f89565b9150613d7882613d39565b602082019050919050565b5f6020820190508181035f830152613d9a81613d61565b9050919050565b5f613dab82612fff565b9150613db683612fff565b9250828202613dc481612fff565b91508282048414831517613ddb57613dda6139a6565b5b5092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613e3c602183612f89565b9150613e4782613de2565b604082019050919050565b5f6020820190508181035f830152613e6981613e30565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220b6ef6c1a24e9e9648ab51810e30f8797377f4758fbe745b1c14f3410f3821c5564736f6c634300081a0033

Deployed Bytecode Sourcemap

4256:14394:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13252:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6850:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7775:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5673:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7127:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7976:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18458:189;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5971:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7036:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5721:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13429:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17614:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12968:276;;;;;;;;;;;;;:::i;:::-;;7230:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1708:148;;;;;;;;;;;;;:::i;:::-;;17754:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5863:46;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5350:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1494:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12574:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5916:48;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6941:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17400:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17014:334;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7376:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5307:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18261:189;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12683:277;;;;;;;;;;;;;:::i;:::-;;17993:260;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7583:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17870:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1864:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13252:169;1631:12;:10;:12::i;:::-;1621:22;;:6;;;;;;;;;;:22;;;1613:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13328:9:::1;13323:91;13347:5;:12;13343:1;:16;13323:91;;;13398:4;13381;:14;13386:5;13392:1;13386:8;;;;;;;;:::i;:::-;;;;;;;;13381:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13361:3;;;;;;;13323:91;;;;13252:169:::0;:::o;6850:83::-;6887:13;6920:5;;;;;;;;;;;;;;;;;6913:12;;6850:83;:::o;7775:193::-;7877:4;7899:39;7908:12;:10;:12::i;:::-;7922:7;7931:6;7899:8;:39::i;:::-;7956:4;7949:11;;7775:193;;;;:::o;5673:41::-;;;;;;;;;;;;;:::o;7127:95::-;7180:7;4811:16;7200:14;;7127:95;:::o;7976:446::-;8108:4;8125:36;8135:6;8143:9;8154:6;8125:9;:36::i;:::-;8172:220;8195:6;8216:12;:10;:12::i;:::-;8243:138;8299:6;8243:138;;;;;;;;;;;;;;;;;:11;:19;8255:6;8243:19;;;;;;;;;;;;;;;:33;8263:12;:10;:12::i;:::-;8243:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8172:8;:220::i;:::-;8410:4;8403:11;;7976:446;;;;;:::o;18458:189::-;1631:12;:10;:12::i;:::-;1621:22;;:6;;;;;;;;;;:22;;;1613:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18544:9:::1;18539:101;18563:8;;:15;;18559:1;:19;18539:101;;;18607:8;:21;18616:8;;18625:1;18616:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18607:21;;;;;;;;;;;;;;;;18600:28;;;;;;;;;;;18580:3;;;;;;;18539:101;;;;18458:189:::0;;:::o;5971:52::-;;;;:::o;7036:83::-;7077:5;4480:2;7095:16;;7036:83;:::o;5721:28::-;;;;;;;;;;;;;:::o;13429:92::-;1631:12;:10;:12::i;:::-;1621:22;;:6;;;;;;;;;;:22;;;1613:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13508:5:::1;13493:4;:12;13498:6;13493:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13429:92:::0;:::o;17614:101::-;1631:12;:10;:12::i;:::-;1621:22;;:6;;;;;;;;;;:22;;;1613:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17695:12:::1;17681:11;::::0;:26:::1;;;;;;;;;;;;;;;;;;17614:101:::0;:::o;12968:276::-;13048:19;;;;;;;;;;;13032:35;;:12;:10;:12::i;:::-;:35;;;:89;;;;13104:17;;;;;;;;;;;13088:33;;:12;:10;:12::i;:::-;:33;;;13032:89;13010:122;;;;;;13143:26;13172:21;13143:50;;13204:32;13217:18;13204:12;:32::i;:::-;12999:245;12968:276::o;7230:138::-;7296:7;7323:37;7343:7;:16;7351:7;7343:16;;;;;;;;;;;;;;;;7323:19;:37::i;:::-;7316:44;;7230:138;;;:::o;1708:148::-;1631:12;:10;:12::i;:::-;1621:22;;:6;;;;;;;;;;:22;;;1613:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1815:1:::1;1778:40;;1799:6;::::0;::::1;;;;;;;;1778:40;;;;;;;;;;;;1846:1;1829:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1708:148::o:0;17754:108::-;1631:12;:10;:12::i;:::-;1621:22;;:6;;;;;;;;;;:22;;;1613:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17843:11:::1;17828:12;:26;;;;17754:108:::0;:::o;5863:46::-;;;;:::o;5350:42::-;;;;;;;;;;;;;;;;;:::o;1494:79::-;1532:7;1559:6;;;;;;;;;;;1552:13;;1494:79;:::o;12574:101::-;1631:12;:10;:12::i;:::-;1621:22;;:6;;;;;;;;;;:22;;;1613:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12655:12:::1;12641:11;;:26;;;;;;;;;;;;;;;;;;12574:101:::0;:::o;5916:48::-;;;;:::o;6941:87::-;6980:13;7013:7;;;;;;;;;;;;;;;;;7006:14;;6941:87;:::o;17400:162::-;1631:12;:10;:12::i;:::-;1621:22;;:6;;;;;;;;;;:22;;;1613:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17536:18:::1;17514:19;:40;;;;17400:162:::0;:::o;17014:334::-;1631:12;:10;:12::i;:::-;1621:22;;:6;;;;;;;;;;:22;;;1613:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17208:13:::1;17191:14;:30;;;;17250:14;17232:15;:32;;;;17290:11;17275:12;:26;;;;17328:12;17312:13;:28;;;;17014:334:::0;;;;:::o;7376:199::-;7481:4;7503:42;7513:12;:10;:12::i;:::-;7527:9;7538:6;7503:9;:42::i;:::-;7563:4;7556:11;;7376:199;;;;:::o;5307:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;18261:189::-;1631:12;:10;:12::i;:::-;1621:22;;:6;;;;;;;;;;:22;;;1613:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18347:9:::1;18342:101;18366:8;;:15;;18362:1;:19;18342:101;;;18427:4;18403:8;:21;18412:8;;18421:1;18412:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18403:21;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;18383:3;;;;;;;18342:101;;;;18261:189:::0;;:::o;12683:277::-;12763:19;;;;;;;;;;;12747:35;;:12;:10;:12::i;:::-;:35;;;:89;;;;12819:17;;;;;;;;;;;12803:33;;:12;:10;:12::i;:::-;:33;;;12747:89;12725:122;;;;;;12858:23;12884:24;12902:4;12884:9;:24::i;:::-;12858:50;;12919:33;12936:15;12919:16;:33::i;:::-;12714:246;12683:277::o;17993:260::-;1631:12;:10;:12::i;:::-;1621:22;;:6;;;;;;;;;;:22;;;1613:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18136:9:::1;18131:115;18155:8;;:15;;18151:1;:19;18131:115;;;18226:8;18192:18;:31;18211:8;;18220:1;18211:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18192:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;18172:3;;;;;;;18131:115;;;;17993:260:::0;;;:::o;7583:184::-;7700:7;7732:11;:18;7744:5;7732:18;;;;;;;;;;;;;;;:27;7751:7;7732:27;;;;;;;;;;;;;;;;7725:34;;7583:184;;;;:::o;17870:115::-;1631:12;:10;:12::i;:::-;1621:22;;:6;;;;;;;;;;:22;;;1613:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17964:13:::1;17947:14;:30;;;;17870:115:::0;:::o;1864:281::-;1631:12;:10;:12::i;:::-;1621:22;;:6;;;;;;;;;;:22;;;1613:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1987:1:::1;1967:22;;:8;:22;;::::0;1945:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2100:8;2071:38;;2092:6;::::0;::::1;;;;;;;;2071:38;;;;;;;;;;;;2129:8;2120:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1864:281:::0;:::o;208:98::-;261:7;288:10;281:17;;208:98;:::o;9113:369::-;9257:1;9240:19;;:5;:19;;;9232:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9338:1;9319:21;;:7;:21;;;9311:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9420:6;9390:11;:18;9402:5;9390:18;;;;;;;;;;;;;;;:27;9409:7;9390:27;;;;;;;;;;;;;;;:36;;;;9458:7;9442:32;;9451:5;9442:32;;;9467:6;9442:32;;;;;;:::i;:::-;;;;;;;;9113:369;;;:::o;9490:2478::-;9628:1;9612:18;;:4;:18;;;9604:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9705:1;9691:16;;:2;:16;;;9683:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9775:1;9766:6;:10;9758:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9835:18;9900:7;:5;:7::i;:::-;9892:15;;:4;:15;;;;:32;;;;;9917:7;:5;:7::i;:::-;9911:13;;:2;:13;;;;9892:32;:51;;;;;9929:8;:14;9938:4;9929:14;;;;;;;;;;;;;;;;;;;;;;;;;9928:15;9892:51;:68;;;;;9948:8;:12;9957:2;9948:12;;;;;;;;;;;;;;;;;;;;;;;;;9947:13;9892:68;9874:1210;;;10025:11;;;;;;;;;;;:29;;;;10040:8;:14;10049:4;10040:14;;;;;;;;;;;;;;;;;;;;;;;;;10025:29;10021:244;;;10091:4;10075:20;;10021:244;;;10136:113;;;;;;;;;;:::i;:::-;;;;;;;;10021:244;10299:12;;10289:6;:22;;10281:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10386:4;:10;10391:4;10386:10;;;;;;;;;;;;;;;;;;;;;;;;;10385:11;:24;;;;;10401:4;:8;10406:2;10401:8;;;;;;;;;;;;;;;;;;;;;;;;;10400:9;10385:24;10359:121;;;;;;;;;;;;:::i;:::-;;;;;;;;;10507:13;;;;;;;;;;;10501:19;;:2;:19;;;10497:209;;10597:14;;10587:6;10571:13;10581:2;10571:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;10541:149;;;;;;;;;;;;:::i;:::-;;;;;;;;;10497:209;9874:1210;;;10839:13;;;;;;;;;;;10833:19;;:2;:19;;;10829:209;;10929:14;;10919:6;10903:13;10913:2;10903:9;:13::i;:::-;:22;;;;:::i;:::-;:40;;10873:149;;;;;;;;;;;;:::i;:::-;;;;;;;;;10829:209;11068:4;11052:20;;9874:1210;11100:13;11096:865;;;11130:12;11145:4;11130:19;;11221:18;:24;11240:4;11221:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11249:18;:22;11268:2;11249:22;;;;;;;;;;;;;;;;;;;;;;;;;11221:50;11220:119;;;;11302:13;;;;;;;;;;;11294:21;;:4;:21;;;;:44;;;;;11325:13;;;;;;;;;;;11319:19;;:2;:19;;;;11294:44;11220:119;11198:694;;;11384:5;11374:15;;11198:694;;;11479:13;;;;;;;;;;;11471:21;;:4;:21;;;:55;;;;;11510:15;;;;;;;;;;;11496:30;;:2;:30;;;;11471:55;11467:175;;;11563:14;;11551:9;:26;;;;11610:12;;11600:7;:22;;;;11467:175;11710:13;;;;;;;;;;;11704:19;;:2;:19;;;:55;;;;;11743:15;;;;;;;;;;;11727:32;;:4;:32;;;;11704:55;11700:177;;;11796:15;;11784:9;:27;;;;11844:13;;11834:7;:23;;;;11700:177;11198:694;11908:41;11923:4;11929:2;11933:6;11941:7;11908:14;:41::i;:::-;11115:846;11096:865;9593:2375;9490:2478;;;:::o;2507:224::-;2627:7;2660:1;2655;:6;;2663:12;2647:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2687:9;2703:1;2699;:5;;;;:::i;:::-;2687:17;;2722:1;2715:8;;;2507:224;;;;;:::o;12467:99::-;12524:17;;;;;;;;;;;:26;;:34;12551:6;12524:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12467:99;:::o;8430:323::-;8525:7;8583;;8572;:18;;8550:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8671:19;8693:10;:8;:10::i;:::-;8671:32;;8721:24;8733:11;8721:7;:11;;:24;;;;:::i;:::-;8714:31;;;8430:323;;;:::o;11976:483::-;6128:4;6119:6;;:13;;;;;;;;;;;;;;;;;;12054:21:::1;12092:1;12078:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12054:40;;12123:4;12105;12110:1;12105:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12149:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12139:4;12144:1;12139:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12182:62;12199:4;12214:15;;;;;;;;;;;12232:11;12182:8;:62::i;:::-;12255:15;;;;;;;;;;;:66;;;12336:11;12362:1;12378:4;12405;12425:15;12255:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12043:416;6164:5:::0;6155:6;;:14;;;;;;;;;;;;;;;;;;11976:483;:::o;13529:282::-;13685:7;13680:28;;13694:14;:12;:14::i;:::-;13680:28;13719:44;13737:6;13745:9;13756:6;13719:17;:44::i;:::-;13779:7;13774:29;;13788:15;:13;:15::i;:::-;13774:29;13529:282;;;;:::o;16577:164::-;16619:7;16640:15;16657;16676:19;:17;:19::i;:::-;16639:56;;;;16713:20;16725:7;16713;:11;;:20;;;;:::i;:::-;16706:27;;;;16577:164;:::o;2993:132::-;3051:7;3078:39;3082:1;3085;3078:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3071:46;;2993:132;;;;:::o;8761:219::-;8821:1;8808:9;;:14;:30;;;;;8837:1;8826:7;;:12;8808:30;8840:7;8804:43;8879:9;;8859:17;:29;;;;8917:7;;8899:15;:25;;;;8949:1;8937:9;:13;;;;8971:1;8961:7;:11;;;;8761:219;:::o;13819:610::-;13966:15;13996:23;14034:12;14061:23;14099:12;14126:13;14153:19;14164:7;14153:10;:19::i;:::-;13951:221;;;;;;;;;;;;14201:28;14221:7;14201;:15;14209:6;14201:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14183:7;:15;14191:6;14183:15;;;;;;;;;;;;;;;:46;;;;14261:39;14284:15;14261:7;:18;14269:9;14261:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14240:7;:18;14248:9;14240:18;;;;;;;;;;;;;;;:60;;;;14311:16;14321:5;14311:9;:16::i;:::-;14338:23;14350:4;14356;14338:11;:23::i;:::-;14394:9;14377:44;;14386:6;14377:44;;;14405:15;14377:44;;;;;;:::i;:::-;;;;;;;;13940:489;;;;;;13819:610;;;:::o;8988:117::-;9044:17;;9032:9;:29;;;;9082:15;;9072:7;:25;;;;8988:117::o;16749:257::-;16800:7;16809;16829:15;16847:7;;16829:25;;16865:15;4811:16;16865:25;;16915:20;4811:16;16915:7;;:11;;:20;;;;:::i;:::-;16905:7;:30;16901:61;;;16945:7;;4811:16;16937:25;;;;;;;;16901:61;16981:7;16990;16973:25;;;;;;16749:257;;;:::o;3133:223::-;3253:7;3285:1;3281;:5;3288:12;3273:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3312:9;3328:1;3324;:5;;;;:::i;:::-;3312:17;;3347:1;3340:8;;;3133:223;;;;;:::o;14848:702::-;14948:7;14970;14992;15014;15036;15058;15094:23;15119:12;15133:13;15150:90;15176:7;15198:9;;15222:7;;15150:11;:90::i;:::-;15093:147;;;;;;15251:19;15273:10;:8;:10::i;:::-;15251:32;;15295:15;15312:23;15337:12;15353:109;15379:7;15401:4;15420:5;15440:11;15353;:109::i;:::-;15294:168;;;;;;15481:7;15490:15;15507:4;15513:15;15530:4;15536:5;15473:69;;;;;;;;;;;;;;;;;;;14848:702;;;;;;;:::o;2363:136::-;2421:7;2448:43;2452:1;2455;2448:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2441:50;;2363:136;;;;:::o;2176:179::-;2234:7;2254:9;2270:1;2266;:5;;;;:::i;:::-;2254:17;;2295:1;2290;:6;;2282:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2346:1;2339:8;;;2176:179;;;;:::o;14437:211::-;14490:19;14512:10;:8;:10::i;:::-;14490:32;;14533:13;14549:22;14559:11;14549:5;:9;;:22;;;;:::i;:::-;14533:38;;14607:33;14634:5;14607:7;:22;14623:4;14607:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14582:7;:22;14598:4;14582:22;;;;;;;;;;;;;;;:58;;;;14479:169;;14437:211;:::o;14656:147::-;14734:17;14746:4;14734:7;;:11;;:17;;;;:::i;:::-;14724:7;:27;;;;14775:20;14790:4;14775:10;;:14;;:20;;;;:::i;:::-;14762:10;:33;;;;14656:147;;:::o;15558:469::-;15727:7;15749;15771;15806:12;15821:30;15847:3;15821:21;15833:8;15821:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15806:45;;15862:13;15878:28;15902:3;15878:19;15890:6;15878:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15862:44;;15917:23;15943:28;15965:5;15943:17;15955:4;15943:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15917:54;;15990:15;16007:4;16013:5;15982:37;;;;;;;;;15558:469;;;;;;;:::o;16035:534::-;16229:7;16251;16273;16308:15;16326:24;16338:11;16326:7;:11;;:24;;;;:::i;:::-;16308:42;;16361:12;16376:21;16385:11;16376:4;:8;;:21;;;;:::i;:::-;16361:36;;16408:13;16424:22;16434:11;16424:5;:9;;:22;;;;:::i;:::-;16408:38;;16457:23;16483:28;16505:5;16483:17;16495:4;16483:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16457:54;;16530:7;16539:15;16556:4;16522:39;;;;;;;;;;16035:534;;;;;;;;:::o;2739:246::-;2797:7;2826:1;2821;:6;2817:47;;2851:1;2844:8;;;;2817:47;2874:9;2890:1;2886;:5;;;;:::i;:::-;2874:17;;2919:1;2914;2910;:5;;;;:::i;:::-;:10;2902:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2976:1;2969:8;;;2739:246;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:139::-;4160:6;4155:3;4150;4144:23;4201:1;4192:6;4187:3;4183:16;4176:27;4071:139;;;:::o;4216:377::-;4304:3;4332:39;4365:5;4332:39;:::i;:::-;4387:71;4451:6;4446:3;4387:71;:::i;:::-;4380:78;;4467:65;4525:6;4520:3;4513:4;4506:5;4502:16;4467:65;:::i;:::-;4557:29;4579:6;4557:29;:::i;:::-;4552:3;4548:39;4541:46;;4308:285;4216:377;;;;:::o;4599:313::-;4712:4;4750:2;4739:9;4735:18;4727:26;;4799:9;4793:4;4789:20;4785:1;4774:9;4770:17;4763:47;4827:78;4900:4;4891:6;4827:78;:::i;:::-;4819:86;;4599:313;;;;:::o;4918:77::-;4955:7;4984:5;4973:16;;4918:77;;;:::o;5001:122::-;5074:24;5092:5;5074:24;:::i;:::-;5067:5;5064:35;5054:63;;5113:1;5110;5103:12;5054:63;5001:122;:::o;5129:139::-;5175:5;5213:6;5200:20;5191:29;;5229:33;5256:5;5229:33;:::i;:::-;5129:139;;;;:::o;5274:474::-;5342:6;5350;5399:2;5387:9;5378:7;5374:23;5370:32;5367:119;;;5405:79;;:::i;:::-;5367:119;5525:1;5550:53;5595:7;5586:6;5575:9;5571:22;5550:53;:::i;:::-;5540:63;;5496:117;5652:2;5678:53;5723:7;5714:6;5703:9;5699:22;5678:53;:::i;:::-;5668:63;;5623:118;5274:474;;;;;:::o;5754:90::-;5788:7;5831:5;5824:13;5817:21;5806:32;;5754:90;;;:::o;5850:109::-;5931:21;5946:5;5931:21;:::i;:::-;5926:3;5919:34;5850:109;;:::o;5965:210::-;6052:4;6090:2;6079:9;6075:18;6067:26;;6103:65;6165:1;6154:9;6150:17;6141:6;6103:65;:::i;:::-;5965:210;;;;:::o;6181:60::-;6209:3;6230:5;6223:12;;6181:60;;;:::o;6247:142::-;6297:9;6330:53;6348:34;6357:24;6375:5;6357:24;:::i;:::-;6348:34;:::i;:::-;6330:53;:::i;:::-;6317:66;;6247:142;;;:::o;6395:126::-;6445:9;6478:37;6509:5;6478:37;:::i;:::-;6465:50;;6395:126;;;:::o;6527:152::-;6603:9;6636:37;6667:5;6636:37;:::i;:::-;6623:50;;6527:152;;;:::o;6685:183::-;6798:63;6855:5;6798:63;:::i;:::-;6793:3;6786:76;6685:183;;:::o;6874:274::-;6993:4;7031:2;7020:9;7016:18;7008:26;;7044:97;7138:1;7127:9;7123:17;7114:6;7044:97;:::i;:::-;6874:274;;;;:::o;7154:118::-;7241:24;7259:5;7241:24;:::i;:::-;7236:3;7229:37;7154:118;;:::o;7278:222::-;7371:4;7409:2;7398:9;7394:18;7386:26;;7422:71;7490:1;7479:9;7475:17;7466:6;7422:71;:::i;:::-;7278:222;;;;:::o;7506:619::-;7583:6;7591;7599;7648:2;7636:9;7627:7;7623:23;7619:32;7616:119;;;7654:79;;:::i;:::-;7616:119;7774:1;7799:53;7844:7;7835:6;7824:9;7820:22;7799:53;:::i;:::-;7789:63;;7745:117;7901:2;7927:53;7972:7;7963:6;7952:9;7948:22;7927:53;:::i;:::-;7917:63;;7872:118;8029:2;8055:53;8100:7;8091:6;8080:9;8076:22;8055:53;:::i;:::-;8045:63;;8000:118;7506:619;;;;;:::o;8131:117::-;8240:1;8237;8230:12;8271:568;8344:8;8354:6;8404:3;8397:4;8389:6;8385:17;8381:27;8371:122;;8412:79;;:::i;:::-;8371:122;8525:6;8512:20;8502:30;;8555:18;8547:6;8544:30;8541:117;;;8577:79;;:::i;:::-;8541:117;8691:4;8683:6;8679:17;8667:29;;8745:3;8737:4;8729:6;8725:17;8715:8;8711:32;8708:41;8705:128;;;8752:79;;:::i;:::-;8705:128;8271:568;;;;;:::o;8845:559::-;8931:6;8939;8988:2;8976:9;8967:7;8963:23;8959:32;8956:119;;;8994:79;;:::i;:::-;8956:119;9142:1;9131:9;9127:17;9114:31;9172:18;9164:6;9161:30;9158:117;;;9194:79;;:::i;:::-;9158:117;9307:80;9379:7;9370:6;9359:9;9355:22;9307:80;:::i;:::-;9289:98;;;;9085:312;8845:559;;;;;:::o;9410:86::-;9445:7;9485:4;9478:5;9474:16;9463:27;;9410:86;;;:::o;9502:112::-;9585:22;9601:5;9585:22;:::i;:::-;9580:3;9573:35;9502:112;;:::o;9620:214::-;9709:4;9747:2;9736:9;9732:18;9724:26;;9760:67;9824:1;9813:9;9809:17;9800:6;9760:67;:::i;:::-;9620:214;;;;:::o;9840:118::-;9927:24;9945:5;9927:24;:::i;:::-;9922:3;9915:37;9840:118;;:::o;9964:222::-;10057:4;10095:2;10084:9;10080:18;10072:26;;10108:71;10176:1;10165:9;10161:17;10152:6;10108:71;:::i;:::-;9964:222;;;;:::o;10192:329::-;10251:6;10300:2;10288:9;10279:7;10275:23;10271:32;10268:119;;;10306:79;;:::i;:::-;10268:119;10426:1;10451:53;10496:7;10487:6;10476:9;10472:22;10451:53;:::i;:::-;10441:63;;10397:117;10192:329;;;;:::o;10527:116::-;10597:21;10612:5;10597:21;:::i;:::-;10590:5;10587:32;10577:60;;10633:1;10630;10623:12;10577:60;10527:116;:::o;10649:133::-;10692:5;10730:6;10717:20;10708:29;;10746:30;10770:5;10746:30;:::i;:::-;10649:133;;;;:::o;10788:323::-;10844:6;10893:2;10881:9;10872:7;10868:23;10864:32;10861:119;;;10899:79;;:::i;:::-;10861:119;11019:1;11044:50;11086:7;11077:6;11066:9;11062:22;11044:50;:::i;:::-;11034:60;;10990:114;10788:323;;;;:::o;11117:329::-;11176:6;11225:2;11213:9;11204:7;11200:23;11196:32;11193:119;;;11231:79;;:::i;:::-;11193:119;11351:1;11376:53;11421:7;11412:6;11401:9;11397:22;11376:53;:::i;:::-;11366:63;;11322:117;11117:329;;;;:::o;11452:765::-;11538:6;11546;11554;11562;11611:3;11599:9;11590:7;11586:23;11582:33;11579:120;;;11618:79;;:::i;:::-;11579:120;11738:1;11763:53;11808:7;11799:6;11788:9;11784:22;11763:53;:::i;:::-;11753:63;;11709:117;11865:2;11891:53;11936:7;11927:6;11916:9;11912:22;11891:53;:::i;:::-;11881:63;;11836:118;11993:2;12019:53;12064:7;12055:6;12044:9;12040:22;12019:53;:::i;:::-;12009:63;;11964:118;12121:2;12147:53;12192:7;12183:6;12172:9;12168:22;12147:53;:::i;:::-;12137:63;;12092:118;11452:765;;;;;;;:::o;12223:698::-;12315:6;12323;12331;12380:2;12368:9;12359:7;12355:23;12351:32;12348:119;;;12386:79;;:::i;:::-;12348:119;12534:1;12523:9;12519:17;12506:31;12564:18;12556:6;12553:30;12550:117;;;12586:79;;:::i;:::-;12550:117;12699:80;12771:7;12762:6;12751:9;12747:22;12699:80;:::i;:::-;12681:98;;;;12477:312;12828:2;12854:50;12896:7;12887:6;12876:9;12872:22;12854:50;:::i;:::-;12844:60;;12799:115;12223:698;;;;;:::o;12927:474::-;12995:6;13003;13052:2;13040:9;13031:7;13027:23;13023:32;13020:119;;;13058:79;;:::i;:::-;13020:119;13178:1;13203:53;13248:7;13239:6;13228:9;13224:22;13203:53;:::i;:::-;13193:63;;13149:117;13305:2;13331:53;13376:7;13367:6;13356:9;13352:22;13331:53;:::i;:::-;13321:63;;13276:118;12927:474;;;;;:::o;13407:182::-;13547:34;13543:1;13535:6;13531:14;13524:58;13407:182;:::o;13595:366::-;13737:3;13758:67;13822:2;13817:3;13758:67;:::i;:::-;13751:74;;13834:93;13923:3;13834:93;:::i;:::-;13952:2;13947:3;13943:12;13936:19;;13595:366;;;:::o;13967:419::-;14133:4;14171:2;14160:9;14156:18;14148:26;;14220:9;14214:4;14210:20;14206:1;14195:9;14191:17;14184:47;14248:131;14374:4;14248:131;:::i;:::-;14240:139;;13967:419;;;:::o;14392:180::-;14440:77;14437:1;14430:88;14537:4;14534:1;14527:15;14561:4;14558:1;14551:15;14578:225;14718:34;14714:1;14706:6;14702:14;14695:58;14787:8;14782:2;14774:6;14770:15;14763:33;14578:225;:::o;14809:366::-;14951:3;14972:67;15036:2;15031:3;14972:67;:::i;:::-;14965:74;;15048:93;15137:3;15048:93;:::i;:::-;15166:2;15161:3;15157:12;15150:19;;14809:366;;;:::o;15181:419::-;15347:4;15385:2;15374:9;15370:18;15362:26;;15434:9;15428:4;15424:20;15420:1;15409:9;15405:17;15398:47;15462:131;15588:4;15462:131;:::i;:::-;15454:139;;15181:419;;;:::o;15606:223::-;15746:34;15742:1;15734:6;15730:14;15723:58;15815:6;15810:2;15802:6;15798:15;15791:31;15606:223;:::o;15835:366::-;15977:3;15998:67;16062:2;16057:3;15998:67;:::i;:::-;15991:74;;16074:93;16163:3;16074:93;:::i;:::-;16192:2;16187:3;16183:12;16176:19;;15835:366;;;:::o;16207:419::-;16373:4;16411:2;16400:9;16396:18;16388:26;;16460:9;16454:4;16450:20;16446:1;16435:9;16431:17;16424:47;16488:131;16614:4;16488:131;:::i;:::-;16480:139;;16207:419;;;:::o;16632:221::-;16772:34;16768:1;16760:6;16756:14;16749:58;16841:4;16836:2;16828:6;16824:15;16817:29;16632:221;:::o;16859:366::-;17001:3;17022:67;17086:2;17081:3;17022:67;:::i;:::-;17015:74;;17098:93;17187:3;17098:93;:::i;:::-;17216:2;17211:3;17207:12;17200:19;;16859:366;;;:::o;17231:419::-;17397:4;17435:2;17424:9;17420:18;17412:26;;17484:9;17478:4;17474:20;17470:1;17459:9;17455:17;17448:47;17512:131;17638:4;17512:131;:::i;:::-;17504:139;;17231:419;;;:::o;17656:224::-;17796:34;17792:1;17784:6;17780:14;17773:58;17865:7;17860:2;17852:6;17848:15;17841:32;17656:224;:::o;17886:366::-;18028:3;18049:67;18113:2;18108:3;18049:67;:::i;:::-;18042:74;;18125:93;18214:3;18125:93;:::i;:::-;18243:2;18238:3;18234:12;18227:19;;17886:366;;;:::o;18258:419::-;18424:4;18462:2;18451:9;18447:18;18439:26;;18511:9;18505:4;18501:20;18497:1;18486:9;18482:17;18475:47;18539:131;18665:4;18539:131;:::i;:::-;18531:139;;18258:419;;;:::o;18683:222::-;18823:34;18819:1;18811:6;18807:14;18800:58;18892:5;18887:2;18879:6;18875:15;18868:30;18683:222;:::o;18911:366::-;19053:3;19074:67;19138:2;19133:3;19074:67;:::i;:::-;19067:74;;19150:93;19239:3;19150:93;:::i;:::-;19268:2;19263:3;19259:12;19252:19;;18911:366;;;:::o;19283:419::-;19449:4;19487:2;19476:9;19472:18;19464:26;;19536:9;19530:4;19526:20;19522:1;19511:9;19507:17;19500:47;19564:131;19690:4;19564:131;:::i;:::-;19556:139;;19283:419;;;:::o;19708:228::-;19848:34;19844:1;19836:6;19832:14;19825:58;19917:11;19912:2;19904:6;19900:15;19893:36;19708:228;:::o;19942:366::-;20084:3;20105:67;20169:2;20164:3;20105:67;:::i;:::-;20098:74;;20181:93;20270:3;20181:93;:::i;:::-;20299:2;20294:3;20290:12;20283:19;;19942:366;;;:::o;20314:419::-;20480:4;20518:2;20507:9;20503:18;20495:26;;20567:9;20561:4;20557:20;20553:1;20542:9;20538:17;20531:47;20595:131;20721:4;20595:131;:::i;:::-;20587:139;;20314:419;;;:::o;20739:250::-;20879:34;20875:1;20867:6;20863:14;20856:58;20948:33;20943:2;20935:6;20931:15;20924:58;20739:250;:::o;20995:366::-;21137:3;21158:67;21222:2;21217:3;21158:67;:::i;:::-;21151:74;;21234:93;21323:3;21234:93;:::i;:::-;21352:2;21347:3;21343:12;21336:19;;20995:366;;;:::o;21367:419::-;21533:4;21571:2;21560:9;21556:18;21548:26;;21620:9;21614:4;21610:20;21606:1;21595:9;21591:17;21584:47;21648:131;21774:4;21648:131;:::i;:::-;21640:139;;21367:419;;;:::o;21792:178::-;21932:30;21928:1;21920:6;21916:14;21909:54;21792:178;:::o;21976:366::-;22118:3;22139:67;22203:2;22198:3;22139:67;:::i;:::-;22132:74;;22215:93;22304:3;22215:93;:::i;:::-;22333:2;22328:3;22324:12;22317:19;;21976:366;;;:::o;22348:419::-;22514:4;22552:2;22541:9;22537:18;22529:26;;22601:9;22595:4;22591:20;22587:1;22576:9;22572:17;22565:47;22629:131;22755:4;22629:131;:::i;:::-;22621:139;;22348:419;;;:::o;22773:222::-;22913:34;22909:1;22901:6;22897:14;22890:58;22982:5;22977:2;22969:6;22965:15;22958:30;22773:222;:::o;23001:366::-;23143:3;23164:67;23228:2;23223:3;23164:67;:::i;:::-;23157:74;;23240:93;23329:3;23240:93;:::i;:::-;23358:2;23353:3;23349:12;23342:19;;23001:366;;;:::o;23373:419::-;23539:4;23577:2;23566:9;23562:18;23554:26;;23626:9;23620:4;23616:20;23612:1;23601:9;23597:17;23590:47;23654:131;23780:4;23654:131;:::i;:::-;23646:139;;23373:419;;;:::o;23798:180::-;23846:77;23843:1;23836:88;23943:4;23940:1;23933:15;23967:4;23964:1;23957:15;23984:191;24024:3;24043:20;24061:1;24043:20;:::i;:::-;24038:25;;24077:20;24095:1;24077:20;:::i;:::-;24072:25;;24120:1;24117;24113:9;24106:16;;24141:3;24138:1;24135:10;24132:36;;;24148:18;;:::i;:::-;24132:36;23984:191;;;;:::o;24181:222::-;24321:34;24317:1;24309:6;24305:14;24298:58;24390:5;24385:2;24377:6;24373:15;24366:30;24181:222;:::o;24409:366::-;24551:3;24572:67;24636:2;24631:3;24572:67;:::i;:::-;24565:74;;24648:93;24737:3;24648:93;:::i;:::-;24766:2;24761:3;24757:12;24750:19;;24409:366;;;:::o;24781:419::-;24947:4;24985:2;24974:9;24970:18;24962:26;;25034:9;25028:4;25024:20;25020:1;25009:9;25005:17;24998:47;25062:131;25188:4;25062:131;:::i;:::-;25054:139;;24781:419;;;:::o;25206:194::-;25246:4;25266:20;25284:1;25266:20;:::i;:::-;25261:25;;25300:20;25318:1;25300:20;:::i;:::-;25295:25;;25344:1;25341;25337:9;25329:17;;25368:1;25362:4;25359:11;25356:37;;;25373:18;;:::i;:::-;25356:37;25206:194;;;;:::o;25406:229::-;25546:34;25542:1;25534:6;25530:14;25523:58;25615:12;25610:2;25602:6;25598:15;25591:37;25406:229;:::o;25641:366::-;25783:3;25804:67;25868:2;25863:3;25804:67;:::i;:::-;25797:74;;25880:93;25969:3;25880:93;:::i;:::-;25998:2;25993:3;25989:12;25982:19;;25641:366;;;:::o;26013:419::-;26179:4;26217:2;26206:9;26202:18;26194:26;;26266:9;26260:4;26256:20;26252:1;26241:9;26237:17;26230:47;26294:131;26420:4;26294:131;:::i;:::-;26286:139;;26013:419;;;:::o;26438:143::-;26495:5;26526:6;26520:13;26511:22;;26542:33;26569:5;26542:33;:::i;:::-;26438:143;;;;:::o;26587:351::-;26657:6;26706:2;26694:9;26685:7;26681:23;26677:32;26674:119;;;26712:79;;:::i;:::-;26674:119;26832:1;26857:64;26913:7;26904:6;26893:9;26889:22;26857:64;:::i;:::-;26847:74;;26803:128;26587:351;;;;:::o;26944:85::-;26989:7;27018:5;27007:16;;26944:85;;;:::o;27035:158::-;27093:9;27126:61;27144:42;27153:32;27179:5;27153:32;:::i;:::-;27144:42;:::i;:::-;27126:61;:::i;:::-;27113:74;;27035:158;;;:::o;27199:147::-;27294:45;27333:5;27294:45;:::i;:::-;27289:3;27282:58;27199:147;;:::o;27352:114::-;27419:6;27453:5;27447:12;27437:22;;27352:114;;;:::o;27472:184::-;27571:11;27605:6;27600:3;27593:19;27645:4;27640:3;27636:14;27621:29;;27472:184;;;;:::o;27662:132::-;27729:4;27752:3;27744:11;;27782:4;27777:3;27773:14;27765:22;;27662:132;;;:::o;27800:108::-;27877:24;27895:5;27877:24;:::i;:::-;27872:3;27865:37;27800:108;;:::o;27914:179::-;27983:10;28004:46;28046:3;28038:6;28004:46;:::i;:::-;28082:4;28077:3;28073:14;28059:28;;27914:179;;;;:::o;28099:113::-;28169:4;28201;28196:3;28192:14;28184:22;;28099:113;;;:::o;28248:732::-;28367:3;28396:54;28444:5;28396:54;:::i;:::-;28466:86;28545:6;28540:3;28466:86;:::i;:::-;28459:93;;28576:56;28626:5;28576:56;:::i;:::-;28655:7;28686:1;28671:284;28696:6;28693:1;28690:13;28671:284;;;28772:6;28766:13;28799:63;28858:3;28843:13;28799:63;:::i;:::-;28792:70;;28885:60;28938:6;28885:60;:::i;:::-;28875:70;;28731:224;28718:1;28715;28711:9;28706:14;;28671:284;;;28675:14;28971:3;28964:10;;28372:608;;;28248:732;;;;:::o;28986:831::-;29249:4;29287:3;29276:9;29272:19;29264:27;;29301:71;29369:1;29358:9;29354:17;29345:6;29301:71;:::i;:::-;29382:80;29458:2;29447:9;29443:18;29434:6;29382:80;:::i;:::-;29509:9;29503:4;29499:20;29494:2;29483:9;29479:18;29472:48;29537:108;29640:4;29631:6;29537:108;:::i;:::-;29529:116;;29655:72;29723:2;29712:9;29708:18;29699:6;29655:72;:::i;:::-;29737:73;29805:3;29794:9;29790:19;29781:6;29737:73;:::i;:::-;28986:831;;;;;;;;:::o;29823:180::-;29871:77;29868:1;29861:88;29968:4;29965:1;29958:15;29992:4;29989:1;29982:15;30009:185;30049:1;30066:20;30084:1;30066:20;:::i;:::-;30061:25;;30100:20;30118:1;30100:20;:::i;:::-;30095:25;;30139:1;30129:35;;30144:18;;:::i;:::-;30129:35;30186:1;30183;30179:9;30174:14;;30009:185;;;;:::o;30200:177::-;30340:29;30336:1;30328:6;30324:14;30317:53;30200:177;:::o;30383:366::-;30525:3;30546:67;30610:2;30605:3;30546:67;:::i;:::-;30539:74;;30622:93;30711:3;30622:93;:::i;:::-;30740:2;30735:3;30731:12;30724:19;;30383:366;;;:::o;30755:419::-;30921:4;30959:2;30948:9;30944:18;30936:26;;31008:9;31002:4;30998:20;30994:1;30983:9;30979:17;30972:47;31036:131;31162:4;31036:131;:::i;:::-;31028:139;;30755:419;;;:::o;31180:410::-;31220:7;31243:20;31261:1;31243:20;:::i;:::-;31238:25;;31277:20;31295:1;31277:20;:::i;:::-;31272:25;;31332:1;31329;31325:9;31354:30;31372:11;31354:30;:::i;:::-;31343:41;;31533:1;31524:7;31520:15;31517:1;31514:22;31494:1;31487:9;31467:83;31444:139;;31563:18;;:::i;:::-;31444:139;31228:362;31180:410;;;;:::o;31596:220::-;31736:34;31732:1;31724:6;31720:14;31713:58;31805:3;31800:2;31792:6;31788:15;31781:28;31596:220;:::o;31822:366::-;31964:3;31985:67;32049:2;32044:3;31985:67;:::i;:::-;31978:74;;32061:93;32150:3;32061:93;:::i;:::-;32179:2;32174:3;32170:12;32163:19;;31822:366;;;:::o;32194:419::-;32360:4;32398:2;32387:9;32383:18;32375:26;;32447:9;32441:4;32437:20;32433:1;32422:9;32418:17;32411:47;32475:131;32601:4;32475:131;:::i;:::-;32467:139;;32194:419;;;:::o

Swarm Source

ipfs://b6ef6c1a24e9e9648ab51810e30f8797377f4758fbe745b1c14f3410f3821c55
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.