ETH Price: $3,225.59 (+0.97%)

Token

LexiAI (Lexi)
 

Overview

Max Total Supply

100,000,000 Lexi

Holders

1,398 (0.00%)

Market

Price

$0.01 @ 0.000003 ETH (-0.93%)

Onchain Market Cap

$829,469.00

Circulating Supply Market Cap

$0.00

Other Info

Token Contract (WITH 9 Decimals)

Balance
67,756.581066461 Lexi

Value
$562.02 ( ~0.174237761734873 Eth) [0.0678%]
0x5bdf31b283f9002835a95f81a7f75d6fe8cf6542
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

Lexi AI is a r WhatsApp bot leveraging AI to streamline crypto interactions. With Lexi, users can track token prices, manage portfolios, audit smart contracts, and execute trades seamlessly.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
LexiAI

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2024-07-29
*/

/* 
Lexi AI an advanced AI-powered Whatsapp bot designed to simplify blockchain interactions, provide real-time crypto insights, audits , trading , wallet tracking and more.

Telegram : https://t.me/LexiAIETH

WhatsApp Bot : https://wa.me/19093672177


Twitter : https://x.com/LexiAIETH

Website : https://lexiai.tech


**/

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

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 LexiAI is Context, IERC20, Ownable {

    using SafeMath for uint256;

    string private constant _name = "LexiAI";
    string private constant _symbol = "Lexi";
    uint8 private constant _decimals = 9;

    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 = 100000000 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _MFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 20;
    uint256 private _MFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 20;

    //Original Fee
    uint256 private _MFee = _MFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;

    uint256 private _previousMFee = _MFee;
    uint256 private _previoustaxFee = _taxFee;

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

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

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

    uint256 public _maxTxAmount = _tTotal;
    uint256 public _maxWalletSize = _tTotal * 2 / 100;
    uint256 public _swapTokensAtAmount = _tTotal / 1000;

    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 (_MFee == 0 && _taxFee == 0) return;

        _previousMFee = _MFee;
        _previoustaxFee = _taxFee;

        _MFee = 0;
        _taxFee = 0;
    }

    function restoreAllFee() private {
        _MFee = _previousMFee;
        _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");

        if (from != owner() && to != owner()) {

            //Trade start check
            if (!tradingOpen) {
                require(from == owner(), "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!");
            }

            uint256 contractTokenBalance = balanceOf(address(this));
            bool canSwap = contractTokenBalance >= _swapTokensAtAmount;

            if(contractTokenBalance >= _swapTokensAtAmount*8)
            {
                contractTokenBalance = _swapTokensAtAmount*8;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 80000000000000000) {
                    sendETHToFee(address(this).balance);
                }
            }
        }

        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)) {
                _MFee = _MFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

            //Set Fee for Sells
            if (to == uniswapV2Pair && from != address(uniswapV2Router)) {
                _MFee = _MFeeOnSell;
                _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 manualswap() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }

    function manualsend() external {
        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, _MFee, _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 MFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(MFee).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 MFeeOnBuy, uint256 MFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        _MFeeOnBuy = MFeeOnBuy;
        _MFeeOnSell = MFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
        uint256 totalFee = _MFeeOnBuy+_MFeeOnSell+_taxFeeOnBuy+_taxFeeOnSell;
        require (totalFee <= 25,"Total Fees cannot be more than 25%");
    }

    //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 = _tTotal*maxTxAmount/100;
        require (_maxTxAmount>= _tTotal/100);
    }

    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = _tTotal*maxWalletSize/100;
        require (_maxWalletSize>= _tTotal/100);
    }

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

     function updateMarketingAddress(address _newmarketingAddress) public onlyOwner {
        _marketingAddress = payable(_newmarketingAddress);
    }


}

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":[],"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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"MFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"MFeeOnSell","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":[],"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"},{"inputs":[{"internalType":"address","name":"_newmarketingAddress","type":"address"}],"name":"updateMarketingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405267016345785d8a00005f19610019919061070b565b5f196100259190610768565b6006555f60085560146009555f600a556014600b55600a54600c55600b54600d55600c54600e55600d54600f55738c3cf1334a6ece5fa765c699631507d7de69ef0760125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550738c3cf1334a6ece5fa765c699631507d7de69ef0760135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001601560146101000a81548160ff0219169083151502179055505f6015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff02191690831515021790555067016345785d8a00006016556064600267016345785d8a000061016c919061079b565b61017691906107dc565b6017556103e867016345785d8a000061018f91906107dc565b60185534801561019d575f80fd5b505f6101ad6106a760201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460025f61025d6106a760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561033b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061035f919061086a565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156103c4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103e8919061086a565b6040518363ffffffff1660e01b81526004016104059291906108a4565b6020604051808303815f875af1158015610421573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610445919061086a565b60155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160055f6104976106ae60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506106356106a760201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef67016345785d8a000060405161069991906108da565b60405180910390a3506108f3565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f819050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610715826106d5565b9150610720836106d5565b9250826107305761072f6106de565b5b828206905092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f610772826106d5565b915061077d836106d5565b92508282039050818111156107955761079461073b565b5b92915050565b5f6107a5826106d5565b91506107b0836106d5565b92508282026107be816106d5565b915082820484148315176107d5576107d461073b565b5b5092915050565b5f6107e6826106d5565b91506107f1836106d5565b925082610801576108006106de565b5b828204905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61083982610810565b9050919050565b6108498161082f565b8114610853575f80fd5b50565b5f8151905061086481610840565b92915050565b5f6020828403121561087f5761087e61080c565b5b5f61088c84828501610856565b91505092915050565b61089e8161082f565b82525050565b5f6040820190506108b75f830185610895565b6108c46020830184610895565b9392505050565b6108d4816106d5565b82525050565b5f6020820190506108ed5f8301846108cb565b92915050565b613cb7806109005f395ff3fe6080604052600436106101cf575f3560e01c806374010ece116100f6578063a2a957bb11610094578063c492f04611610063578063c492f04614610640578063dd62ed3e14610668578063ea1644d5146106a4578063f2fde38b146106cc576101d6565b8063a2a957bb1461058a578063a9059cbb146105b2578063bfd79284146105ee578063c3c8cd801461062a576101d6565b80638da5cb5b116100d05780638da5cb5b146104e45780638f9a55c01461050e57806395d89b411461053857806398a5c31514610562576101d6565b806374010ece146104565780637d1db4a51461047e5780637f2feddc146104a8576101d6565b80632fd689e31161016e5780636d8aa8f81161013d5780636d8aa8f8146103c65780636fc3eaec146103ee57806370a0823114610404578063715018a614610440576101d6565b80632fd689e314610320578063313ce5671461034a57806349bd5a5e146103745780636b9990531461039e576101d6565b80631694505e116101aa5780631694505e1461026857806318160ddd146102925780632369bf83146102bc57806323b872dd146102e4576101d6565b8062b8cf2a146101da57806306fdde0314610202578063095ea7b31461022c576101d6565b366101d657005b5f80fd5b3480156101e5575f80fd5b5061020060048036038101906101fb9190612cde565b6106f4565b005b34801561020d575f80fd5b50610216610813565b6040516102239190612d85565b60405180910390f35b348015610237575f80fd5b50610252600480360381019061024d9190612dd8565b610850565b60405161025f9190612e30565b60405180910390f35b348015610273575f80fd5b5061027c61086d565b6040516102899190612ea4565b60405180910390f35b34801561029d575f80fd5b506102a6610892565b6040516102b39190612ecc565b60405180910390f35b3480156102c7575f80fd5b506102e260048036038101906102dd9190612ee5565b6108a1565b005b3480156102ef575f80fd5b5061030a60048036038101906103059190612f10565b610978565b6040516103179190612e30565b60405180910390f35b34801561032b575f80fd5b50610334610a4c565b6040516103419190612ecc565b60405180910390f35b348015610355575f80fd5b5061035e610a52565b60405161036b9190612f7b565b60405180910390f35b34801561037f575f80fd5b50610388610a5a565b6040516103959190612fa3565b60405180910390f35b3480156103a9575f80fd5b506103c460048036038101906103bf9190612ee5565b610a7f565b005b3480156103d1575f80fd5b506103ec60048036038101906103e79190612fe6565b610b6a565b005b3480156103f9575f80fd5b50610402610c1b565b005b34801561040f575f80fd5b5061042a60048036038101906104259190612ee5565b610c2b565b6040516104379190612ecc565b60405180910390f35b34801561044b575f80fd5b50610454610c79565b005b348015610461575f80fd5b5061047c60048036038101906104779190613011565b610dc7565b005b348015610489575f80fd5b50610492610ea6565b60405161049f9190612ecc565b60405180910390f35b3480156104b3575f80fd5b506104ce60048036038101906104c99190612ee5565b610eac565b6040516104db9190612ecc565b60405180910390f35b3480156104ef575f80fd5b506104f8610ec1565b6040516105059190612fa3565b60405180910390f35b348015610519575f80fd5b50610522610ee8565b60405161052f9190612ecc565b60405180910390f35b348015610543575f80fd5b5061054c610eee565b6040516105599190612d85565b60405180910390f35b34801561056d575f80fd5b5061058860048036038101906105839190613011565b610f2b565b005b348015610595575f80fd5b506105b060048036038101906105ab919061303c565b610fc9565b005b3480156105bd575f80fd5b506105d860048036038101906105d39190612dd8565b6110f1565b6040516105e59190612e30565b60405180910390f35b3480156105f9575f80fd5b50610614600480360381019061060f9190612ee5565b61110e565b6040516106219190612e30565b60405180910390f35b348015610635575f80fd5b5061063e61112b565b005b34801561064b575f80fd5b50610666600480360381019061066191906130f9565b611200565b005b348015610673575f80fd5b5061068e60048036038101906106899190613156565b61132f565b60405161069b9190612ecc565b60405180910390f35b3480156106af575f80fd5b506106ca60048036038101906106c59190613011565b6113b1565b005b3480156106d7575f80fd5b506106f260048036038101906106ed9190612ee5565b611490565b005b6106fc61164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610788576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077f906131de565b60405180910390fd5b5f5b815181101561080f57600160105f8484815181106107ab576107aa6131fc565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061078a565b5050565b60606040518060400160405280600681526020017f4c65786941490000000000000000000000000000000000000000000000000000815250905090565b5f61086361085c61164d565b8484611654565b6001905092915050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f67016345785d8a0000905090565b6108a961164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092c906131de565b60405180910390fd5b8060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f610984848484611817565b610a418461099061164d565b610a3c85604051806060016040528060288152602001613c5a6028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6109f361164d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120979092919063ffffffff16565b611654565b600190509392505050565b60185481565b5f6009905090565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a8761164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0a906131de565b60405180910390fd5b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610b7261164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf5906131de565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b5f479050610c28816120f9565b50565b5f610c7260025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612161565b9050919050565b610c8161164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d04906131de565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610dcf61164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e52906131de565b60405180910390fd5b60648167016345785d8a0000610e719190613256565b610e7b91906132c4565b601681905550606467016345785d8a0000610e9691906132c4565b6016541015610ea3575f80fd5b50565b60165481565b6011602052805f5260405f205f915090505481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600481526020017f4c65786900000000000000000000000000000000000000000000000000000000815250905090565b610f3361164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb6906131de565b60405180910390fd5b8060188190555050565b610fd161164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461105d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611054906131de565b60405180910390fd5b8360088190555082600a819055508160098190555080600b819055505f600b54600954600a5460085461109091906132f4565b61109a91906132f4565b6110a491906132f4565b905060198111156110ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e190613397565b60405180910390fd5b5050505050565b5f6111046110fd61164d565b8484611817565b6001905092915050565b6010602052805f5260405f205f915054906101000a900460ff1681565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661116b61164d565b73ffffffffffffffffffffffffffffffffffffffff1614806111e0575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111c861164d565b73ffffffffffffffffffffffffffffffffffffffff16145b6111e8575f80fd5b5f6111f230610c2b565b90506111fd816121cd565b50565b61120861164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611294576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128b906131de565b60405180910390fd5b5f5b83839050811015611329578160055f8686858181106112b8576112b76131fc565b5b90506020020160208101906112cd9190612ee5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050611296565b50505050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6113b961164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143c906131de565b60405180910390fd5b60648167016345785d8a000061145b9190613256565b61146591906132c4565b601781905550606467016345785d8a000061148091906132c4565b601754101561148d575f80fd5b50565b61149861164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611524576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151b906131de565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611592576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158990613425565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b9906134b3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611730576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172790613541565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161180a9190612ecc565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187c906135cf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ea9061365d565b60405180910390fd5b5f8111611935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192c906136eb565b60405180910390fd5b61193d610ec1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119ab575061197b610ec1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611da457601560149054906101000a900460ff16611a3a576119cc610ec1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611a39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3090613779565b60405180910390fd5b5b601654811115611a7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a76906137e1565b60405180910390fd5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611b1d575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b539061386f565b60405180910390fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c085760175481611bbd84610c2b565b611bc791906132f4565b10611c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfe906138fd565b60405180910390fd5b5b5f611c1230610c2b565b90505f60185482101590506008601854611c2c9190613256565b8210611c44576008601854611c419190613256565b91505b808015611c5c575060158054906101000a900460ff16155b8015611cb5575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611ccd5750601560169054906101000a900460ff165b8015611d20575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611d73575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611da157611d81826121cd565b5f47905067011c37937e080000811115611d9f57611d9e476120f9565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611e44575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611ef5575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ef4575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611f02575f9050612085565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611fab575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fc357600854600c81905550600954600d819055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561206c575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561208457600a54600c81905550600b54600d819055505b5b61209184848484612436565b50505050565b5f8383111582906120de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d59190612d85565b60405180910390fd5b505f83856120ec919061391b565b9050809150509392505050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561215d573d5f803e3d5ffd5b5050565b5f6006548211156121a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219e906139be565b60405180910390fd5b5f6121b0612463565b90506121c5818461248c90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561220357612202612b48565b5b6040519080825280602002602001820160405280156122315781602001602082028036833780820191505090505b50905030815f81518110612248576122476131fc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122ec573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061231091906139f0565b81600181518110612324576123236131fc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061238a3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611654565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016123ec959493929190613b0b565b5f604051808303815f87803b158015612403575f80fd5b505af1158015612415573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b80612444576124436124d5565b5b61244f84848461250e565b8061245d5761245c6126ce565b5b50505050565b5f805f61246e6126e2565b91509150612485818361248c90919063ffffffff16565b9250505090565b5f6124cd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061273e565b905092915050565b5f600c541480156124e757505f600d54145b61250c57600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f8061251d8761279f565b9550955095509550955095506125798660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127ff90919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061260a8560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461284890919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612654816128a5565b61265e848361295c565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126bb9190612ecc565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f60065490505f67016345785d8a0000905061271367016345785d8a000060065461248c90919063ffffffff16565b8210156127315760065467016345785d8a000093509350505061273a565b81819350935050505b9091565b5f8083118290612784576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277b9190612d85565b60405180910390fd5b505f838561279291906132c4565b9050809150509392505050565b5f805f805f805f805f6127b78a600c54600d54612996565b9250925092505f6127c6612463565b90505f805f6127d78e878787612a28565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61284083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612097565b905092915050565b5f80828461285691906132f4565b90508381101561289b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289290613bad565b60405180910390fd5b8091505092915050565b5f6128ae612463565b90505f6128c48284612aac90919063ffffffff16565b90506129168160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461284890919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b612971826006546127ff90919063ffffffff16565b60068190555061298c8160075461284890919063ffffffff16565b6007819055505050565b5f805f806129c060646129b2888a612aac90919063ffffffff16565b61248c90919063ffffffff16565b90505f6129e960646129db888b612aac90919063ffffffff16565b61248c90919063ffffffff16565b90505f612a1182612a03858c6127ff90919063ffffffff16565b6127ff90919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612a3f8589612aac90919063ffffffff16565b90505f612a558689612aac90919063ffffffff16565b90505f612a6b8789612aac90919063ffffffff16565b90505f612a9382612a8585876127ff90919063ffffffff16565b6127ff90919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612abc575f9050612b1d565b5f8284612ac99190613256565b9050828482612ad891906132c4565b14612b18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0f90613c3b565b60405180910390fd5b809150505b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612b7e82612b38565b810181811067ffffffffffffffff82111715612b9d57612b9c612b48565b5b80604052505050565b5f612baf612b23565b9050612bbb8282612b75565b919050565b5f67ffffffffffffffff821115612bda57612bd9612b48565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612c1882612bef565b9050919050565b612c2881612c0e565b8114612c32575f80fd5b50565b5f81359050612c4381612c1f565b92915050565b5f612c5b612c5684612bc0565b612ba6565b90508083825260208201905060208402830185811115612c7e57612c7d612beb565b5b835b81811015612ca75780612c938882612c35565b845260208401935050602081019050612c80565b5050509392505050565b5f82601f830112612cc557612cc4612b34565b5b8135612cd5848260208601612c49565b91505092915050565b5f60208284031215612cf357612cf2612b2c565b5b5f82013567ffffffffffffffff811115612d1057612d0f612b30565b5b612d1c84828501612cb1565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f612d5782612d25565b612d618185612d2f565b9350612d71818560208601612d3f565b612d7a81612b38565b840191505092915050565b5f6020820190508181035f830152612d9d8184612d4d565b905092915050565b5f819050919050565b612db781612da5565b8114612dc1575f80fd5b50565b5f81359050612dd281612dae565b92915050565b5f8060408385031215612dee57612ded612b2c565b5b5f612dfb85828601612c35565b9250506020612e0c85828601612dc4565b9150509250929050565b5f8115159050919050565b612e2a81612e16565b82525050565b5f602082019050612e435f830184612e21565b92915050565b5f819050919050565b5f612e6c612e67612e6284612bef565b612e49565b612bef565b9050919050565b5f612e7d82612e52565b9050919050565b5f612e8e82612e73565b9050919050565b612e9e81612e84565b82525050565b5f602082019050612eb75f830184612e95565b92915050565b612ec681612da5565b82525050565b5f602082019050612edf5f830184612ebd565b92915050565b5f60208284031215612efa57612ef9612b2c565b5b5f612f0784828501612c35565b91505092915050565b5f805f60608486031215612f2757612f26612b2c565b5b5f612f3486828701612c35565b9350506020612f4586828701612c35565b9250506040612f5686828701612dc4565b9150509250925092565b5f60ff82169050919050565b612f7581612f60565b82525050565b5f602082019050612f8e5f830184612f6c565b92915050565b612f9d81612c0e565b82525050565b5f602082019050612fb65f830184612f94565b92915050565b612fc581612e16565b8114612fcf575f80fd5b50565b5f81359050612fe081612fbc565b92915050565b5f60208284031215612ffb57612ffa612b2c565b5b5f61300884828501612fd2565b91505092915050565b5f6020828403121561302657613025612b2c565b5b5f61303384828501612dc4565b91505092915050565b5f805f806080858703121561305457613053612b2c565b5b5f61306187828801612dc4565b945050602061307287828801612dc4565b935050604061308387828801612dc4565b925050606061309487828801612dc4565b91505092959194509250565b5f80fd5b5f8083601f8401126130b9576130b8612b34565b5b8235905067ffffffffffffffff8111156130d6576130d56130a0565b5b6020830191508360208202830111156130f2576130f1612beb565b5b9250929050565b5f805f604084860312156131105761310f612b2c565b5b5f84013567ffffffffffffffff81111561312d5761312c612b30565b5b613139868287016130a4565b9350935050602061314c86828701612fd2565b9150509250925092565b5f806040838503121561316c5761316b612b2c565b5b5f61317985828601612c35565b925050602061318a85828601612c35565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6131c8602083612d2f565b91506131d382613194565b602082019050919050565b5f6020820190508181035f8301526131f5816131bc565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61326082612da5565b915061326b83612da5565b925082820261327981612da5565b915082820484148315176132905761328f613229565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6132ce82612da5565b91506132d983612da5565b9250826132e9576132e8613297565b5b828204905092915050565b5f6132fe82612da5565b915061330983612da5565b925082820190508082111561332157613320613229565b5b92915050565b7f546f74616c20466565732063616e6e6f74206265206d6f7265207468616e20325f8201527f3525000000000000000000000000000000000000000000000000000000000000602082015250565b5f613381602283612d2f565b915061338c82613327565b604082019050919050565b5f6020820190508181035f8301526133ae81613375565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61340f602683612d2f565b915061341a826133b5565b604082019050919050565b5f6020820190508181035f83015261343c81613403565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61349d602483612d2f565b91506134a882613443565b604082019050919050565b5f6020820190508181035f8301526134ca81613491565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61352b602283612d2f565b9150613536826134d1565b604082019050919050565b5f6020820190508181035f8301526135588161351f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6135b9602583612d2f565b91506135c48261355f565b604082019050919050565b5f6020820190508181035f8301526135e6816135ad565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613647602383612d2f565b9150613652826135ed565b604082019050919050565b5f6020820190508181035f8301526136748161363b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6136d5602983612d2f565b91506136e08261367b565b604082019050919050565b5f6020820190508181035f830152613702816136c9565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f613763603f83612d2f565b915061376e82613709565b604082019050919050565b5f6020820190508181035f83015261379081613757565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f6137cb601c83612d2f565b91506137d682613797565b602082019050919050565b5f6020820190508181035f8301526137f8816137bf565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f613859602383612d2f565b9150613864826137ff565b604082019050919050565b5f6020820190508181035f8301526138868161384d565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f6138e7602383612d2f565b91506138f28261388d565b604082019050919050565b5f6020820190508181035f830152613914816138db565b9050919050565b5f61392582612da5565b915061393083612da5565b925082820390508181111561394857613947613229565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f6139a8602a83612d2f565b91506139b38261394e565b604082019050919050565b5f6020820190508181035f8301526139d58161399c565b9050919050565b5f815190506139ea81612c1f565b92915050565b5f60208284031215613a0557613a04612b2c565b5b5f613a12848285016139dc565b91505092915050565b5f819050919050565b5f613a3e613a39613a3484613a1b565b612e49565b612da5565b9050919050565b613a4e81613a24565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613a8681612c0e565b82525050565b5f613a978383613a7d565b60208301905092915050565b5f602082019050919050565b5f613ab982613a54565b613ac38185613a5e565b9350613ace83613a6e565b805f5b83811015613afe578151613ae58882613a8c565b9750613af083613aa3565b925050600181019050613ad1565b5085935050505092915050565b5f60a082019050613b1e5f830188612ebd565b613b2b6020830187613a45565b8181036040830152613b3d8186613aaf565b9050613b4c6060830185612f94565b613b596080830184612ebd565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613b97601b83612d2f565b9150613ba282613b63565b602082019050919050565b5f6020820190508181035f830152613bc481613b8b565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613c25602183612d2f565b9150613c3082613bcb565b604082019050919050565b5f6020820190508181035f830152613c5281613c19565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a84d30897381f6a58230fd97018c97cc7b804afa5aebfc63fefd534168b7514b64736f6c634300081a0033

Deployed Bytecode

0x6080604052600436106101cf575f3560e01c806374010ece116100f6578063a2a957bb11610094578063c492f04611610063578063c492f04614610640578063dd62ed3e14610668578063ea1644d5146106a4578063f2fde38b146106cc576101d6565b8063a2a957bb1461058a578063a9059cbb146105b2578063bfd79284146105ee578063c3c8cd801461062a576101d6565b80638da5cb5b116100d05780638da5cb5b146104e45780638f9a55c01461050e57806395d89b411461053857806398a5c31514610562576101d6565b806374010ece146104565780637d1db4a51461047e5780637f2feddc146104a8576101d6565b80632fd689e31161016e5780636d8aa8f81161013d5780636d8aa8f8146103c65780636fc3eaec146103ee57806370a0823114610404578063715018a614610440576101d6565b80632fd689e314610320578063313ce5671461034a57806349bd5a5e146103745780636b9990531461039e576101d6565b80631694505e116101aa5780631694505e1461026857806318160ddd146102925780632369bf83146102bc57806323b872dd146102e4576101d6565b8062b8cf2a146101da57806306fdde0314610202578063095ea7b31461022c576101d6565b366101d657005b5f80fd5b3480156101e5575f80fd5b5061020060048036038101906101fb9190612cde565b6106f4565b005b34801561020d575f80fd5b50610216610813565b6040516102239190612d85565b60405180910390f35b348015610237575f80fd5b50610252600480360381019061024d9190612dd8565b610850565b60405161025f9190612e30565b60405180910390f35b348015610273575f80fd5b5061027c61086d565b6040516102899190612ea4565b60405180910390f35b34801561029d575f80fd5b506102a6610892565b6040516102b39190612ecc565b60405180910390f35b3480156102c7575f80fd5b506102e260048036038101906102dd9190612ee5565b6108a1565b005b3480156102ef575f80fd5b5061030a60048036038101906103059190612f10565b610978565b6040516103179190612e30565b60405180910390f35b34801561032b575f80fd5b50610334610a4c565b6040516103419190612ecc565b60405180910390f35b348015610355575f80fd5b5061035e610a52565b60405161036b9190612f7b565b60405180910390f35b34801561037f575f80fd5b50610388610a5a565b6040516103959190612fa3565b60405180910390f35b3480156103a9575f80fd5b506103c460048036038101906103bf9190612ee5565b610a7f565b005b3480156103d1575f80fd5b506103ec60048036038101906103e79190612fe6565b610b6a565b005b3480156103f9575f80fd5b50610402610c1b565b005b34801561040f575f80fd5b5061042a60048036038101906104259190612ee5565b610c2b565b6040516104379190612ecc565b60405180910390f35b34801561044b575f80fd5b50610454610c79565b005b348015610461575f80fd5b5061047c60048036038101906104779190613011565b610dc7565b005b348015610489575f80fd5b50610492610ea6565b60405161049f9190612ecc565b60405180910390f35b3480156104b3575f80fd5b506104ce60048036038101906104c99190612ee5565b610eac565b6040516104db9190612ecc565b60405180910390f35b3480156104ef575f80fd5b506104f8610ec1565b6040516105059190612fa3565b60405180910390f35b348015610519575f80fd5b50610522610ee8565b60405161052f9190612ecc565b60405180910390f35b348015610543575f80fd5b5061054c610eee565b6040516105599190612d85565b60405180910390f35b34801561056d575f80fd5b5061058860048036038101906105839190613011565b610f2b565b005b348015610595575f80fd5b506105b060048036038101906105ab919061303c565b610fc9565b005b3480156105bd575f80fd5b506105d860048036038101906105d39190612dd8565b6110f1565b6040516105e59190612e30565b60405180910390f35b3480156105f9575f80fd5b50610614600480360381019061060f9190612ee5565b61110e565b6040516106219190612e30565b60405180910390f35b348015610635575f80fd5b5061063e61112b565b005b34801561064b575f80fd5b50610666600480360381019061066191906130f9565b611200565b005b348015610673575f80fd5b5061068e60048036038101906106899190613156565b61132f565b60405161069b9190612ecc565b60405180910390f35b3480156106af575f80fd5b506106ca60048036038101906106c59190613011565b6113b1565b005b3480156106d7575f80fd5b506106f260048036038101906106ed9190612ee5565b611490565b005b6106fc61164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610788576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077f906131de565b60405180910390fd5b5f5b815181101561080f57600160105f8484815181106107ab576107aa6131fc565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061078a565b5050565b60606040518060400160405280600681526020017f4c65786941490000000000000000000000000000000000000000000000000000815250905090565b5f61086361085c61164d565b8484611654565b6001905092915050565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f67016345785d8a0000905090565b6108a961164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161092c906131de565b60405180910390fd5b8060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f610984848484611817565b610a418461099061164d565b610a3c85604051806060016040528060288152602001613c5a6028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6109f361164d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120979092919063ffffffff16565b611654565b600190509392505050565b60185481565b5f6009905090565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610a8761164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0a906131de565b60405180910390fd5b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610b7261164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610bfe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bf5906131de565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b5f479050610c28816120f9565b50565b5f610c7260025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054612161565b9050919050565b610c8161164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d04906131de565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610dcf61164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e52906131de565b60405180910390fd5b60648167016345785d8a0000610e719190613256565b610e7b91906132c4565b601681905550606467016345785d8a0000610e9691906132c4565b6016541015610ea3575f80fd5b50565b60165481565b6011602052805f5260405f205f915090505481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60175481565b60606040518060400160405280600481526020017f4c65786900000000000000000000000000000000000000000000000000000000815250905090565b610f3361164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fbf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb6906131de565b60405180910390fd5b8060188190555050565b610fd161164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461105d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611054906131de565b60405180910390fd5b8360088190555082600a819055508160098190555080600b819055505f600b54600954600a5460085461109091906132f4565b61109a91906132f4565b6110a491906132f4565b905060198111156110ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110e190613397565b60405180910390fd5b5050505050565b5f6111046110fd61164d565b8484611817565b6001905092915050565b6010602052805f5260405f205f915054906101000a900460ff1681565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661116b61164d565b73ffffffffffffffffffffffffffffffffffffffff1614806111e0575060135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166111c861164d565b73ffffffffffffffffffffffffffffffffffffffff16145b6111e8575f80fd5b5f6111f230610c2b565b90506111fd816121cd565b50565b61120861164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611294576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128b906131de565b60405180910390fd5b5f5b83839050811015611329578160055f8686858181106112b8576112b76131fc565b5b90506020020160208101906112cd9190612ee5565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050611296565b50505050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b6113b961164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611445576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143c906131de565b60405180910390fd5b60648167016345785d8a000061145b9190613256565b61146591906132c4565b601781905550606467016345785d8a000061148091906132c4565b601754101561148d575f80fd5b50565b61149861164d565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611524576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161151b906131de565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611592576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158990613425565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b9906134b3565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611730576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172790613541565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161180a9190612ecc565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611885576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161187c906135cf565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ea9061365d565b60405180910390fd5b5f8111611935576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192c906136eb565b60405180910390fd5b61193d610ec1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119ab575061197b610ec1565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611da457601560149054906101000a900460ff16611a3a576119cc610ec1565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611a39576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a3090613779565b60405180910390fd5b5b601654811115611a7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a76906137e1565b60405180910390fd5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611b1d575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b539061386f565b60405180910390fd5b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c085760175481611bbd84610c2b565b611bc791906132f4565b10611c07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bfe906138fd565b60405180910390fd5b5b5f611c1230610c2b565b90505f60185482101590506008601854611c2c9190613256565b8210611c44576008601854611c419190613256565b91505b808015611c5c575060158054906101000a900460ff16155b8015611cb5575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611ccd5750601560169054906101000a900460ff165b8015611d20575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611d73575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611da157611d81826121cd565b5f47905067011c37937e080000811115611d9f57611d9e476120f9565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611e44575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611ef5575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611ef4575060155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611f02575f9050612085565b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611fab575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fc357600854600c81905550600954600d819055505b60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614801561206c575060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561208457600a54600c81905550600b54600d819055505b5b61209184848484612436565b50505050565b5f8383111582906120de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120d59190612d85565b60405180910390fd5b505f83856120ec919061391b565b9050809150509392505050565b60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f1935050505015801561215d573d5f803e3d5ffd5b5050565b5f6006548211156121a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219e906139be565b60405180910390fd5b5f6121b0612463565b90506121c5818461248c90919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055505f600267ffffffffffffffff81111561220357612202612b48565b5b6040519080825280602002602001820160405280156122315781602001602082028036833780820191505090505b50905030815f81518110612248576122476131fc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122ec573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061231091906139f0565b81600181518110612324576123236131fc565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061238a3060145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611654565b60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b81526004016123ec959493929190613b0b565b5f604051808303815f87803b158015612403575f80fd5b505af1158015612415573d5f803e3d5ffd5b50505050505f6015806101000a81548160ff02191690831515021790555050565b80612444576124436124d5565b5b61244f84848461250e565b8061245d5761245c6126ce565b5b50505050565b5f805f61246e6126e2565b91509150612485818361248c90919063ffffffff16565b9250505090565b5f6124cd83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061273e565b905092915050565b5f600c541480156124e757505f600d54145b61250c57600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f8061251d8761279f565b9550955095509550955095506125798660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546127ff90919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f208190555061260a8560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461284890919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612654816128a5565b61265e848361295c565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126bb9190612ecc565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f60065490505f67016345785d8a0000905061271367016345785d8a000060065461248c90919063ffffffff16565b8210156127315760065467016345785d8a000093509350505061273a565b81819350935050505b9091565b5f8083118290612784576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277b9190612d85565b60405180910390fd5b505f838561279291906132c4565b9050809150509392505050565b5f805f805f805f805f6127b78a600c54600d54612996565b9250925092505f6127c6612463565b90505f805f6127d78e878787612a28565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61284083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612097565b905092915050565b5f80828461285691906132f4565b90508381101561289b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161289290613bad565b60405180910390fd5b8091505092915050565b5f6128ae612463565b90505f6128c48284612aac90919063ffffffff16565b90506129168160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461284890919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b612971826006546127ff90919063ffffffff16565b60068190555061298c8160075461284890919063ffffffff16565b6007819055505050565b5f805f806129c060646129b2888a612aac90919063ffffffff16565b61248c90919063ffffffff16565b90505f6129e960646129db888b612aac90919063ffffffff16565b61248c90919063ffffffff16565b90505f612a1182612a03858c6127ff90919063ffffffff16565b6127ff90919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612a3f8589612aac90919063ffffffff16565b90505f612a558689612aac90919063ffffffff16565b90505f612a6b8789612aac90919063ffffffff16565b90505f612a9382612a8585876127ff90919063ffffffff16565b6127ff90919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612abc575f9050612b1d565b5f8284612ac99190613256565b9050828482612ad891906132c4565b14612b18576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b0f90613c3b565b60405180910390fd5b809150505b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612b7e82612b38565b810181811067ffffffffffffffff82111715612b9d57612b9c612b48565b5b80604052505050565b5f612baf612b23565b9050612bbb8282612b75565b919050565b5f67ffffffffffffffff821115612bda57612bd9612b48565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612c1882612bef565b9050919050565b612c2881612c0e565b8114612c32575f80fd5b50565b5f81359050612c4381612c1f565b92915050565b5f612c5b612c5684612bc0565b612ba6565b90508083825260208201905060208402830185811115612c7e57612c7d612beb565b5b835b81811015612ca75780612c938882612c35565b845260208401935050602081019050612c80565b5050509392505050565b5f82601f830112612cc557612cc4612b34565b5b8135612cd5848260208601612c49565b91505092915050565b5f60208284031215612cf357612cf2612b2c565b5b5f82013567ffffffffffffffff811115612d1057612d0f612b30565b5b612d1c84828501612cb1565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f612d5782612d25565b612d618185612d2f565b9350612d71818560208601612d3f565b612d7a81612b38565b840191505092915050565b5f6020820190508181035f830152612d9d8184612d4d565b905092915050565b5f819050919050565b612db781612da5565b8114612dc1575f80fd5b50565b5f81359050612dd281612dae565b92915050565b5f8060408385031215612dee57612ded612b2c565b5b5f612dfb85828601612c35565b9250506020612e0c85828601612dc4565b9150509250929050565b5f8115159050919050565b612e2a81612e16565b82525050565b5f602082019050612e435f830184612e21565b92915050565b5f819050919050565b5f612e6c612e67612e6284612bef565b612e49565b612bef565b9050919050565b5f612e7d82612e52565b9050919050565b5f612e8e82612e73565b9050919050565b612e9e81612e84565b82525050565b5f602082019050612eb75f830184612e95565b92915050565b612ec681612da5565b82525050565b5f602082019050612edf5f830184612ebd565b92915050565b5f60208284031215612efa57612ef9612b2c565b5b5f612f0784828501612c35565b91505092915050565b5f805f60608486031215612f2757612f26612b2c565b5b5f612f3486828701612c35565b9350506020612f4586828701612c35565b9250506040612f5686828701612dc4565b9150509250925092565b5f60ff82169050919050565b612f7581612f60565b82525050565b5f602082019050612f8e5f830184612f6c565b92915050565b612f9d81612c0e565b82525050565b5f602082019050612fb65f830184612f94565b92915050565b612fc581612e16565b8114612fcf575f80fd5b50565b5f81359050612fe081612fbc565b92915050565b5f60208284031215612ffb57612ffa612b2c565b5b5f61300884828501612fd2565b91505092915050565b5f6020828403121561302657613025612b2c565b5b5f61303384828501612dc4565b91505092915050565b5f805f806080858703121561305457613053612b2c565b5b5f61306187828801612dc4565b945050602061307287828801612dc4565b935050604061308387828801612dc4565b925050606061309487828801612dc4565b91505092959194509250565b5f80fd5b5f8083601f8401126130b9576130b8612b34565b5b8235905067ffffffffffffffff8111156130d6576130d56130a0565b5b6020830191508360208202830111156130f2576130f1612beb565b5b9250929050565b5f805f604084860312156131105761310f612b2c565b5b5f84013567ffffffffffffffff81111561312d5761312c612b30565b5b613139868287016130a4565b9350935050602061314c86828701612fd2565b9150509250925092565b5f806040838503121561316c5761316b612b2c565b5b5f61317985828601612c35565b925050602061318a85828601612c35565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f6131c8602083612d2f565b91506131d382613194565b602082019050919050565b5f6020820190508181035f8301526131f5816131bc565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61326082612da5565b915061326b83612da5565b925082820261327981612da5565b915082820484148315176132905761328f613229565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6132ce82612da5565b91506132d983612da5565b9250826132e9576132e8613297565b5b828204905092915050565b5f6132fe82612da5565b915061330983612da5565b925082820190508082111561332157613320613229565b5b92915050565b7f546f74616c20466565732063616e6e6f74206265206d6f7265207468616e20325f8201527f3525000000000000000000000000000000000000000000000000000000000000602082015250565b5f613381602283612d2f565b915061338c82613327565b604082019050919050565b5f6020820190508181035f8301526133ae81613375565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f61340f602683612d2f565b915061341a826133b5565b604082019050919050565b5f6020820190508181035f83015261343c81613403565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61349d602483612d2f565b91506134a882613443565b604082019050919050565b5f6020820190508181035f8301526134ca81613491565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61352b602283612d2f565b9150613536826134d1565b604082019050919050565b5f6020820190508181035f8301526135588161351f565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6135b9602583612d2f565b91506135c48261355f565b604082019050919050565b5f6020820190508181035f8301526135e6816135ad565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613647602383612d2f565b9150613652826135ed565b604082019050919050565b5f6020820190508181035f8301526136748161363b565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6136d5602983612d2f565b91506136e08261367b565b604082019050919050565b5f6020820190508181035f830152613702816136c9565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f613763603f83612d2f565b915061376e82613709565b604082019050919050565b5f6020820190508181035f83015261379081613757565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f6137cb601c83612d2f565b91506137d682613797565b602082019050919050565b5f6020820190508181035f8301526137f8816137bf565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f613859602383612d2f565b9150613864826137ff565b604082019050919050565b5f6020820190508181035f8301526138868161384d565b9050919050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f6138e7602383612d2f565b91506138f28261388d565b604082019050919050565b5f6020820190508181035f830152613914816138db565b9050919050565b5f61392582612da5565b915061393083612da5565b925082820390508181111561394857613947613229565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f6139a8602a83612d2f565b91506139b38261394e565b604082019050919050565b5f6020820190508181035f8301526139d58161399c565b9050919050565b5f815190506139ea81612c1f565b92915050565b5f60208284031215613a0557613a04612b2c565b5b5f613a12848285016139dc565b91505092915050565b5f819050919050565b5f613a3e613a39613a3484613a1b565b612e49565b612da5565b9050919050565b613a4e81613a24565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613a8681612c0e565b82525050565b5f613a978383613a7d565b60208301905092915050565b5f602082019050919050565b5f613ab982613a54565b613ac38185613a5e565b9350613ace83613a6e565b805f5b83811015613afe578151613ae58882613a8c565b9750613af083613aa3565b925050600181019050613ad1565b5085935050505092915050565b5f60a082019050613b1e5f830188612ebd565b613b2b6020830187613a45565b8181036040830152613b3d8186613aaf565b9050613b4c6060830185612f94565b613b596080830184612ebd565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613b97601b83612d2f565b9150613ba282613b63565b602082019050919050565b5f6020820190508181035f830152613bc481613b8b565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613c25602183612d2f565b9150613c3082613bcb565b604082019050919050565b5f6020820190508181035f830152613c5281613c19565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a2646970667358221220a84d30897381f6a58230fd97018c97cc7b804afa5aebfc63fefd534168b7514b64736f6c634300081a0033

Deployed Bytecode Sourcemap

4408:13649:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12837:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6872:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7797:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5722:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7149:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17903:147;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7998:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6019:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7058:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5770:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13014:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17161:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12686:143;;;;;;;;;;;;;:::i;:::-;;7252:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1895:148;;;;;;;;;;;;;:::i;:::-;;17301:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5919:37;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5464:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1681:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5963:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6963:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16970:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16500:418;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7398:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5426:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12442:236;;;;;;;;;;;;;:::i;:::-;;17660:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7605:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17476:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2051:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12837:169;1818:12;:10;:12::i;:::-;1808:22;;:6;;;;;;;;;;:22;;;1800:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12913:9:::1;12908:91;12932:5;:12;12928:1;:16;12908:91;;;12983:4;12966;:14;12971:5;12977:1;12971:8;;;;;;;;:::i;:::-;;;;;;;;12966:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;12946:3;;;;;;;12908:91;;;;12837:169:::0;:::o;6872:83::-;6909:13;6942:5;;;;;;;;;;;;;;;;;6935:12;;6872:83;:::o;7797:193::-;7899:4;7921:39;7930:12;:10;:12::i;:::-;7944:7;7953:6;7921:8;:39::i;:::-;7978:4;7971:11;;7797:193;;;;:::o;5722:41::-;;;;;;;;;;;;;:::o;7149:95::-;7202:7;4951:17;7222:14;;7149:95;:::o;17903:147::-;1818:12;:10;:12::i;:::-;1808:22;;:6;;;;;;;;;;:22;;;1800:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18021:20:::1;17993:17;;:49;;;;;;;;;;;;;;;;;;17903:147:::0;:::o;7998:446::-;8130:4;8147:36;8157:6;8165:9;8176:6;8147:9;:36::i;:::-;8194:220;8217:6;8238:12;:10;:12::i;:::-;8265:138;8321:6;8265:138;;;;;;;;;;;;;;;;;:11;:19;8277:6;8265:19;;;;;;;;;;;;;;;:33;8285:12;:10;:12::i;:::-;8265:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8194:8;:220::i;:::-;8432:4;8425:11;;7998:446;;;;;:::o;6019:51::-;;;;:::o;7058:83::-;7099:5;4625:1;7117:16;;7058:83;:::o;5770:28::-;;;;;;;;;;;;;:::o;13014:92::-;1818:12;:10;:12::i;:::-;1808:22;;:6;;;;;;;;;;:22;;;1800:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13093:5:::1;13078:4;:12;13083:6;13078:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13014:92:::0;:::o;17161:101::-;1818:12;:10;:12::i;:::-;1808:22;;:6;;;;;;;;;;:22;;;1800:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17242:12:::1;17228:11;;:26;;;;;;;;;;;;;;;;;;17161:101:::0;:::o;12686:143::-;12728:26;12757:21;12728:50;;12789:32;12802:18;12789:12;:32::i;:::-;12717:112;12686:143::o;7252:138::-;7318:7;7345:37;7365:7;:16;7373:7;7365:16;;;;;;;;;;;;;;;;7345:19;:37::i;:::-;7338:44;;7252:138;;;:::o;1895:148::-;1818:12;:10;:12::i;:::-;1808:22;;:6;;;;;;;;;;:22;;;1800:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2002:1:::1;1965:40;;1986:6;::::0;::::1;;;;;;;;1965:40;;;;;;;;;;;;2033:1;2016:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1895:148::o:0;17301:167::-;1818:12;:10;:12::i;:::-;1808:22;;:6;;;;;;;;;;:22;;;1800:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17410:3:::1;17398:11;4951:17;17390:19;;;;:::i;:::-;:23;;;;:::i;:::-;17375:12;:38;;;;17456:3;4951:17;17448:11;;;;:::i;:::-;17433:12;;:26;;17424:36;;;::::0;::::1;;17301:167:::0;:::o;5919:37::-;;;;:::o;5464:43::-;;;;;;;;;;;;;;;;;:::o;1681:79::-;1719:7;1746:6;;;;;;;;;;;1739:13;;1681:79;:::o;5963:49::-;;;;:::o;6963:87::-;7002:13;7035:7;;;;;;;;;;;;;;;;;7028:14;;6963:87;:::o;16970:139::-;1818:12;:10;:12::i;:::-;1808:22;;:6;;;;;;;;;;:22;;;1800:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17083:18:::1;17061:19;:40;;;;16970:139:::0;:::o;16500:418::-;1818:12;:10;:12::i;:::-;1808:22;;:6;;;;;;;;;;:22;;;1800:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16639:9:::1;16626:10;:22;;;;16673:10;16659:11;:24;;;;16709:11;16694:12;:26;;;;16747:12;16731:13;:28;;;;16770:16;16825:13;;16812:12;;16800:11;;16789:10;;:22;;;;:::i;:::-;:35;;;;:::i;:::-;:49;;;;:::i;:::-;16770:68;;16870:2;16858:8;:14;;16849:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;16615:303;16500:418:::0;;;;:::o;7398:199::-;7503:4;7525:42;7535:12;:10;:12::i;:::-;7549:9;7560:6;7525:9;:42::i;:::-;7585:4;7578:11;;7398:199;;;;:::o;5426:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12442:236::-;12508:19;;;;;;;;;;;12492:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12547:17;;;;;;;;;;;12531:33;;:12;:10;:12::i;:::-;:33;;;12492:72;12484:81;;;;;;12576:23;12602:24;12620:4;12602:9;:24::i;:::-;12576:50;;12637:33;12654:15;12637:16;:33::i;:::-;12473:205;12442:236::o;17660:234::-;1818:12;:10;:12::i;:::-;1808:22;;:6;;;;;;;;;;:22;;;1800:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17777:9:::1;17773:114;17796:8;;:15;;17792:1;:19;17773:114;;;17867:8;17833:18;:31;17852:8;;17861:1;17852:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;17833:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;17813:3;;;;;;;17773:114;;;;17660:234:::0;;;:::o;7605:184::-;7722:7;7754:11;:18;7766:5;7754:18;;;;;;;;;;;;;;;:27;7773:7;7754:27;;;;;;;;;;;;;;;;7747:34;;7605:184;;;;:::o;17476:176::-;1818:12;:10;:12::i;:::-;1808:22;;:6;;;;;;;;;;:22;;;1800:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17592:3:::1;17578:13;4951:17;17570:21;;;;:::i;:::-;:25;;;;:::i;:::-;17553:14;:42;;;;17640:3;4951:17;17632:11;;;;:::i;:::-;17615:14;;:28;;17606:38;;;::::0;::::1;;17476:176:::0;:::o;2051:244::-;1818:12;:10;:12::i;:::-;1808:22;;:6;;;;;;;;;;:22;;;1800:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2160:1:::1;2140:22;;:8;:22;;::::0;2132:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2250:8;2221:38;;2242:6;::::0;::::1;;;;;;;;2221:38;;;;;;;;;;;;2279:8;2270:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2051:244:::0;:::o;440:98::-;493:7;520:10;513:17;;440:98;:::o;9111:369::-;9255:1;9238:19;;:5;:19;;;9230:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9336:1;9317:21;;:7;:21;;;9309:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9418:6;9388:11;:18;9400:5;9388:18;;;;;;;;;;;;;;;:27;9407:7;9388:27;;;;;;;;;;;;;;;:36;;;;9456:7;9440:32;;9449:5;9440:32;;;9465:6;9440:32;;;;;;:::i;:::-;;;;;;;;9111:369;;;:::o;9488:2348::-;9626:1;9610:18;;:4;:18;;;9602:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9703:1;9689:16;;:2;:16;;;9681:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9773:1;9764:6;:10;9756:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9845:7;:5;:7::i;:::-;9837:15;;:4;:15;;;;:32;;;;;9862:7;:5;:7::i;:::-;9856:13;;:2;:13;;;;9837:32;9833:1293;;;9926:11;;;;;;;;;;;9921:144;;9974:7;:5;:7::i;:::-;9966:15;;:4;:15;;;9958:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9921:144;10099:12;;10089:6;:22;;10081:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10168:4;:10;10173:4;10168:10;;;;;;;;;;;;;;;;;;;;;;;;;10167:11;:24;;;;;10183:4;:8;10188:2;10183:8;;;;;;;;;;;;;;;;;;;;;;;;;10182:9;10167:24;10159:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10257:13;;;;;;;;;;;10251:19;;:2;:19;;;10248:146;;10324:14;;10315:6;10299:13;10309:2;10299:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10291:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10248:146;10410:28;10441:24;10459:4;10441:9;:24::i;:::-;10410:55;;10480:12;10519:19;;10495:20;:43;;10480:58;;10602:1;10582:19;;:21;;;;:::i;:::-;10558:20;:45;10555:142;;10680:1;10660:19;;:21;;;;:::i;:::-;10637:44;;10555:142;10717:7;:18;;;;;10729:6;;;;;;;;;;10728:7;10717:18;:43;;;;;10747:13;;;;;;;;;;;10739:21;;:4;:21;;;;10717:43;:58;;;;;10764:11;;;;;;;;;;;10717:58;:87;;;;;10780:18;:24;10799:4;10780:24;;;;;;;;;;;;;;;;;;;;;;;;;10779:25;10717:87;:114;;;;;10809:18;:22;10828:2;10809:22;;;;;;;;;;;;;;;;;;;;;;;;;10808:23;10717:114;10713:402;;;10852:38;10869:20;10852:16;:38::i;:::-;10909:26;10938:21;10909:50;;11003:17;10982:18;:38;10978:122;;;11045:35;11058:21;11045:12;:35::i;:::-;10978:122;10833:282;10713:402;9871:1255;;9833:1293;11138:12;11153:4;11138:19;;11202:18;:24;11221:4;11202:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11230:18;:22;11249:2;11230:22;;;;;;;;;;;;;;;;;;;;;;;;;11202:50;11201:102;;;;11266:13;;;;;;;;;;;11258:21;;:4;:21;;;;:44;;;;;11289:13;;;;;;;;;;;11283:19;;:2;:19;;;;11258:44;11201:102;11197:578;;;11330:5;11320:15;;11197:578;;;11413:13;;;;;;;;;;;11405:21;;:4;:21;;;:55;;;;;11444:15;;;;;;;;;;;11430:30;;:2;:30;;;;11405:55;11402:154;;;11489:10;;11481:5;:18;;;;11528:12;;11518:7;:22;;;;11402:154;11615:13;;;;;;;;;;;11609:19;;:2;:19;;;:55;;;;;11648:15;;;;;;;;;;;11632:32;;:4;:32;;;;11609:55;11605:157;;;11693:11;;11685:5;:19;;;;11733:13;;11723:7;:23;;;;11605:157;11197:578;11787:41;11802:4;11808:2;11812:6;11820:7;11787:14;:41::i;:::-;9591:2245;9488:2348;;;:::o;2659:224::-;2779:7;2812:1;2807;:6;;2815:12;2799:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2839:9;2855:1;2851;:5;;;;:::i;:::-;2839:17;;2874:1;2867:8;;;2659:224;;;;;:::o;12335:99::-;12392:17;;;;;;;;;;;:26;;:34;12419:6;12392:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12335:99;:::o;8452:323::-;8547:7;8605;;8594;:18;;8572:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8693:19;8715:10;:8;:10::i;:::-;8693:32;;8743:24;8755:11;8743:7;:11;;:24;;;;:::i;:::-;8736:31;;;8452:323;;;:::o;11844:483::-;6173:4;6164:6;;:13;;;;;;;;;;;;;;;;;;11922:21:::1;11960:1;11946:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11922:40;;11991:4;11973;11978:1;11973:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12017:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12007:4;12012:1;12007:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12050:62;12067:4;12082:15;;;;;;;;;;;12100:11;12050:8;:62::i;:::-;12123:15;;;;;;;;;;;:66;;;12204:11;12230:1;12246:4;12273;12293:15;12123:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11911:416;6209:5:::0;6200:6;;:14;;;;;;;;;;;;;;;;;;11844:483;:::o;13114:282::-;13270:7;13265:28;;13279:14;:12;:14::i;:::-;13265:28;13304:44;13322:6;13330:9;13341:6;13304:17;:44::i;:::-;13364:7;13359:29;;13373:15;:13;:15::i;:::-;13359:29;13114:282;;;;:::o;16063:164::-;16105:7;16126:15;16143;16162:19;:17;:19::i;:::-;16125:56;;;;16199:20;16211:7;16199;:11;;:20;;;;:::i;:::-;16192:27;;;;16063:164;:::o;3145:132::-;3203:7;3230:39;3234:1;3237;3230:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3223:46;;3145:132;;;;:::o;8783:203::-;8839:1;8830:5;;:10;:26;;;;;8855:1;8844:7;;:12;8830:26;8858:7;8826:39;8893:5;;8877:13;:21;;;;8927:7;;8909:15;:25;;;;8955:1;8947:5;:9;;;;8977:1;8967:7;:11;;;;8783:203;:::o;13404:610::-;13551:15;13581:23;13619:12;13646:23;13684:12;13711:13;13738:19;13749:7;13738:10;:19::i;:::-;13536:221;;;;;;;;;;;;13786:28;13806:7;13786;:15;13794:6;13786:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13768:7;:15;13776:6;13768:15;;;;;;;;;;;;;;;:46;;;;13846:39;13869:15;13846:7;:18;13854:9;13846:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13825:7;:18;13833:9;13825:18;;;;;;;;;;;;;;;:60;;;;13896:16;13906:5;13896:9;:16::i;:::-;13923:23;13935:4;13941;13923:11;:23::i;:::-;13979:9;13962:44;;13971:6;13962:44;;;13990:15;13962:44;;;;;;:::i;:::-;;;;;;;;13525:489;;;;;;13404:610;;;:::o;8994:109::-;9046:13;;9038:5;:21;;;;9080:15;;9070:7;:25;;;;8994:109::o;16235:257::-;16286:7;16295;16315:15;16333:7;;16315:25;;16351:15;4951:17;16351:25;;16401:20;4951:17;16401:7;;:11;;:20;;;;:::i;:::-;16391:7;:30;16387:61;;;16431:7;;4951:17;16423:25;;;;;;;;16387:61;16467:7;16476;16459:25;;;;;;16235:257;;;:::o;3285:223::-;3405:7;3437:1;3433;:5;3440:12;3425:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3464:9;3480:1;3476;:5;;;;:::i;:::-;3464:17;;3499:1;3492:8;;;3285:223;;;;;:::o;14433:611::-;14533:7;14555;14577;14599;14621;14643;14679:23;14704:12;14718:13;14748:36;14760:7;14769:5;;14776:7;;14748:11;:36::i;:::-;14678:106;;;;;;14795:19;14817:10;:8;:10::i;:::-;14795:32;;14839:15;14856:23;14881:12;14910:46;14922:7;14931:4;14937:5;14944:11;14910;:46::i;:::-;14838:118;;;;;;14975:7;14984:15;15001:4;15007:15;15024:4;15030:5;14967:69;;;;;;;;;;;;;;;;;;;14433:611;;;;;;;:::o;2515:136::-;2573:7;2600:43;2604:1;2607;2600:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2593:50;;2515:136;;;;:::o;2328:179::-;2386:7;2406:9;2422:1;2418;:5;;;;:::i;:::-;2406:17;;2447:1;2442;:6;;2434:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2498:1;2491:8;;;2328:179;;;;:::o;14022:211::-;14075:19;14097:10;:8;:10::i;:::-;14075:32;;14118:13;14134:22;14144:11;14134:5;:9;;:22;;;;:::i;:::-;14118:38;;14192:33;14219:5;14192:7;:22;14208:4;14192:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14167:7;:22;14183:4;14167:22;;;;;;;;;;;;;;;:58;;;;14064:169;;14022:211;:::o;14241:147::-;14319:17;14331:4;14319:7;;:11;;:17;;;;:::i;:::-;14309:7;:27;;;;14360:20;14375:4;14360:10;;:14;;:20;;;;:::i;:::-;14347:10;:33;;;;14241:147;;:::o;15052:461::-;15217:7;15239;15261;15296:12;15311:26;15333:3;15311:17;15323:4;15311:7;:11;;:17;;;;:::i;:::-;:21;;:26;;;;:::i;:::-;15296:41;;15348:13;15364:28;15388:3;15364:19;15376:6;15364:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15348:44;;15403:23;15429:28;15451:5;15429:17;15441:4;15429:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15403:54;;15476:15;15493:4;15499:5;15468:37;;;;;;;;;15052:461;;;;;;;:::o;15521:534::-;15715:7;15737;15759;15794:15;15812:24;15824:11;15812:7;:11;;:24;;;;:::i;:::-;15794:42;;15847:12;15862:21;15871:11;15862:4;:8;;:21;;;;:::i;:::-;15847:36;;15894:13;15910:22;15920:11;15910:5;:9;;:22;;;;:::i;:::-;15894:38;;15943:23;15969:28;15991:5;15969:17;15981:4;15969:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15943:54;;16016:7;16025:15;16042:4;16008:39;;;;;;;;;;15521:534;;;;;;;;:::o;2891:246::-;2949:7;2978:1;2973;:6;2969:47;;3003:1;2996:8;;;;2969:47;3026:9;3042:1;3038;:5;;;;:::i;:::-;3026:17;;3071:1;3066;3062;:5;;;;:::i;:::-;:10;3054:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3128:1;3121:8;;;2891: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:329::-;7565:6;7614:2;7602:9;7593:7;7589:23;7585:32;7582:119;;;7620:79;;:::i;:::-;7582:119;7740:1;7765:53;7810:7;7801:6;7790:9;7786:22;7765:53;:::i;:::-;7755:63;;7711:117;7506:329;;;;:::o;7841:619::-;7918:6;7926;7934;7983:2;7971:9;7962:7;7958:23;7954:32;7951:119;;;7989:79;;:::i;:::-;7951:119;8109:1;8134:53;8179:7;8170:6;8159:9;8155:22;8134:53;:::i;:::-;8124:63;;8080:117;8236:2;8262:53;8307:7;8298:6;8287:9;8283:22;8262:53;:::i;:::-;8252:63;;8207:118;8364:2;8390:53;8435:7;8426:6;8415:9;8411:22;8390:53;:::i;:::-;8380:63;;8335:118;7841:619;;;;;:::o;8466:86::-;8501:7;8541:4;8534:5;8530:16;8519:27;;8466:86;;;:::o;8558:112::-;8641:22;8657:5;8641:22;:::i;:::-;8636:3;8629:35;8558:112;;:::o;8676:214::-;8765:4;8803:2;8792:9;8788:18;8780:26;;8816:67;8880:1;8869:9;8865:17;8856:6;8816:67;:::i;:::-;8676:214;;;;:::o;8896:118::-;8983:24;9001:5;8983:24;:::i;:::-;8978:3;8971:37;8896:118;;:::o;9020:222::-;9113:4;9151:2;9140:9;9136:18;9128:26;;9164:71;9232:1;9221:9;9217:17;9208:6;9164:71;:::i;:::-;9020:222;;;;:::o;9248:116::-;9318:21;9333:5;9318:21;:::i;:::-;9311:5;9308:32;9298:60;;9354:1;9351;9344:12;9298:60;9248:116;:::o;9370:133::-;9413:5;9451:6;9438:20;9429:29;;9467:30;9491:5;9467:30;:::i;:::-;9370:133;;;;:::o;9509:323::-;9565:6;9614:2;9602:9;9593:7;9589:23;9585:32;9582:119;;;9620:79;;:::i;:::-;9582:119;9740:1;9765:50;9807:7;9798:6;9787:9;9783:22;9765:50;:::i;:::-;9755:60;;9711:114;9509:323;;;;:::o;9838:329::-;9897:6;9946:2;9934:9;9925:7;9921:23;9917:32;9914:119;;;9952:79;;:::i;:::-;9914:119;10072:1;10097:53;10142:7;10133:6;10122:9;10118:22;10097:53;:::i;:::-;10087:63;;10043:117;9838:329;;;;:::o;10173:765::-;10259:6;10267;10275;10283;10332:3;10320:9;10311:7;10307:23;10303:33;10300:120;;;10339:79;;:::i;:::-;10300:120;10459:1;10484:53;10529:7;10520:6;10509:9;10505:22;10484:53;:::i;:::-;10474:63;;10430:117;10586:2;10612:53;10657:7;10648:6;10637:9;10633:22;10612:53;:::i;:::-;10602:63;;10557:118;10714:2;10740:53;10785:7;10776:6;10765:9;10761:22;10740:53;:::i;:::-;10730:63;;10685:118;10842:2;10868:53;10913:7;10904:6;10893:9;10889:22;10868:53;:::i;:::-;10858:63;;10813:118;10173:765;;;;;;;:::o;10944:117::-;11053:1;11050;11043:12;11084:568;11157:8;11167:6;11217:3;11210:4;11202:6;11198:17;11194:27;11184:122;;11225:79;;:::i;:::-;11184:122;11338:6;11325:20;11315:30;;11368:18;11360:6;11357:30;11354:117;;;11390:79;;:::i;:::-;11354:117;11504:4;11496:6;11492:17;11480:29;;11558:3;11550:4;11542:6;11538:17;11528:8;11524:32;11521:41;11518:128;;;11565:79;;:::i;:::-;11518:128;11084:568;;;;;:::o;11658:698::-;11750:6;11758;11766;11815:2;11803:9;11794:7;11790:23;11786:32;11783:119;;;11821:79;;:::i;:::-;11783:119;11969:1;11958:9;11954:17;11941:31;11999:18;11991:6;11988:30;11985:117;;;12021:79;;:::i;:::-;11985:117;12134:80;12206:7;12197:6;12186:9;12182:22;12134:80;:::i;:::-;12116:98;;;;11912:312;12263:2;12289:50;12331:7;12322:6;12311:9;12307:22;12289:50;:::i;:::-;12279:60;;12234:115;11658:698;;;;;:::o;12362:474::-;12430:6;12438;12487:2;12475:9;12466:7;12462:23;12458:32;12455:119;;;12493:79;;:::i;:::-;12455:119;12613:1;12638:53;12683:7;12674:6;12663:9;12659:22;12638:53;:::i;:::-;12628:63;;12584:117;12740:2;12766:53;12811:7;12802:6;12791:9;12787:22;12766:53;:::i;:::-;12756:63;;12711:118;12362:474;;;;;:::o;12842:182::-;12982:34;12978:1;12970:6;12966:14;12959:58;12842:182;:::o;13030:366::-;13172:3;13193:67;13257:2;13252:3;13193:67;:::i;:::-;13186:74;;13269:93;13358:3;13269:93;:::i;:::-;13387:2;13382:3;13378:12;13371:19;;13030:366;;;:::o;13402:419::-;13568:4;13606:2;13595:9;13591:18;13583:26;;13655:9;13649:4;13645:20;13641:1;13630:9;13626:17;13619:47;13683:131;13809:4;13683:131;:::i;:::-;13675:139;;13402:419;;;:::o;13827:180::-;13875:77;13872:1;13865:88;13972:4;13969:1;13962:15;13996:4;13993:1;13986:15;14013:180;14061:77;14058:1;14051:88;14158:4;14155:1;14148:15;14182:4;14179:1;14172:15;14199:410;14239:7;14262:20;14280:1;14262:20;:::i;:::-;14257:25;;14296:20;14314:1;14296:20;:::i;:::-;14291:25;;14351:1;14348;14344:9;14373:30;14391:11;14373:30;:::i;:::-;14362:41;;14552:1;14543:7;14539:15;14536:1;14533:22;14513:1;14506:9;14486:83;14463:139;;14582:18;;:::i;:::-;14463:139;14247:362;14199:410;;;;:::o;14615:180::-;14663:77;14660:1;14653:88;14760:4;14757:1;14750:15;14784:4;14781:1;14774:15;14801:185;14841:1;14858:20;14876:1;14858:20;:::i;:::-;14853:25;;14892:20;14910:1;14892:20;:::i;:::-;14887:25;;14931:1;14921:35;;14936:18;;:::i;:::-;14921:35;14978:1;14975;14971:9;14966:14;;14801:185;;;;:::o;14992:191::-;15032:3;15051:20;15069:1;15051:20;:::i;:::-;15046:25;;15085:20;15103:1;15085:20;:::i;:::-;15080:25;;15128:1;15125;15121:9;15114:16;;15149:3;15146:1;15143:10;15140:36;;;15156:18;;:::i;:::-;15140:36;14992:191;;;;:::o;15189:221::-;15329:34;15325:1;15317:6;15313:14;15306:58;15398:4;15393:2;15385:6;15381:15;15374:29;15189:221;:::o;15416:366::-;15558:3;15579:67;15643:2;15638:3;15579:67;:::i;:::-;15572:74;;15655:93;15744:3;15655:93;:::i;:::-;15773:2;15768:3;15764:12;15757:19;;15416:366;;;:::o;15788:419::-;15954:4;15992:2;15981:9;15977:18;15969:26;;16041:9;16035:4;16031:20;16027:1;16016:9;16012:17;16005:47;16069:131;16195:4;16069:131;:::i;:::-;16061:139;;15788:419;;;:::o;16213:225::-;16353:34;16349:1;16341:6;16337:14;16330:58;16422:8;16417:2;16409:6;16405:15;16398:33;16213:225;:::o;16444:366::-;16586:3;16607:67;16671:2;16666:3;16607:67;:::i;:::-;16600:74;;16683:93;16772:3;16683:93;:::i;:::-;16801:2;16796:3;16792:12;16785:19;;16444:366;;;:::o;16816:419::-;16982:4;17020:2;17009:9;17005:18;16997:26;;17069:9;17063:4;17059:20;17055:1;17044:9;17040:17;17033:47;17097:131;17223:4;17097:131;:::i;:::-;17089:139;;16816:419;;;:::o;17241:223::-;17381:34;17377:1;17369:6;17365:14;17358:58;17450:6;17445:2;17437:6;17433:15;17426:31;17241:223;:::o;17470:366::-;17612:3;17633:67;17697:2;17692:3;17633:67;:::i;:::-;17626:74;;17709:93;17798:3;17709:93;:::i;:::-;17827:2;17822:3;17818:12;17811:19;;17470:366;;;:::o;17842:419::-;18008:4;18046:2;18035:9;18031:18;18023:26;;18095:9;18089:4;18085:20;18081:1;18070:9;18066:17;18059:47;18123:131;18249:4;18123:131;:::i;:::-;18115:139;;17842:419;;;:::o;18267:221::-;18407:34;18403:1;18395:6;18391:14;18384:58;18476:4;18471:2;18463:6;18459:15;18452:29;18267:221;:::o;18494:366::-;18636:3;18657:67;18721:2;18716:3;18657:67;:::i;:::-;18650:74;;18733:93;18822:3;18733:93;:::i;:::-;18851:2;18846:3;18842:12;18835:19;;18494:366;;;:::o;18866:419::-;19032:4;19070:2;19059:9;19055:18;19047:26;;19119:9;19113:4;19109:20;19105:1;19094:9;19090:17;19083:47;19147:131;19273:4;19147:131;:::i;:::-;19139:139;;18866:419;;;:::o;19291:224::-;19431:34;19427:1;19419:6;19415:14;19408:58;19500:7;19495:2;19487:6;19483:15;19476:32;19291:224;:::o;19521:366::-;19663:3;19684:67;19748:2;19743:3;19684:67;:::i;:::-;19677:74;;19760:93;19849:3;19760:93;:::i;:::-;19878:2;19873:3;19869:12;19862:19;;19521:366;;;:::o;19893:419::-;20059:4;20097:2;20086:9;20082:18;20074:26;;20146:9;20140:4;20136:20;20132:1;20121:9;20117:17;20110:47;20174:131;20300:4;20174:131;:::i;:::-;20166:139;;19893:419;;;:::o;20318:222::-;20458:34;20454:1;20446:6;20442:14;20435:58;20527:5;20522:2;20514:6;20510:15;20503:30;20318:222;:::o;20546:366::-;20688:3;20709:67;20773:2;20768:3;20709:67;:::i;:::-;20702:74;;20785:93;20874:3;20785:93;:::i;:::-;20903:2;20898:3;20894:12;20887:19;;20546:366;;;:::o;20918:419::-;21084:4;21122:2;21111:9;21107:18;21099:26;;21171:9;21165:4;21161:20;21157:1;21146:9;21142:17;21135:47;21199:131;21325:4;21199:131;:::i;:::-;21191:139;;20918:419;;;:::o;21343:228::-;21483:34;21479:1;21471:6;21467:14;21460:58;21552:11;21547:2;21539:6;21535:15;21528:36;21343:228;:::o;21577:366::-;21719:3;21740:67;21804:2;21799:3;21740:67;:::i;:::-;21733:74;;21816:93;21905:3;21816:93;:::i;:::-;21934:2;21929:3;21925:12;21918:19;;21577:366;;;:::o;21949:419::-;22115:4;22153:2;22142:9;22138:18;22130:26;;22202:9;22196:4;22192:20;22188:1;22177:9;22173:17;22166:47;22230:131;22356:4;22230:131;:::i;:::-;22222:139;;21949:419;;;:::o;22374:250::-;22514:34;22510:1;22502:6;22498:14;22491:58;22583:33;22578:2;22570:6;22566:15;22559:58;22374:250;:::o;22630:366::-;22772:3;22793:67;22857:2;22852:3;22793:67;:::i;:::-;22786:74;;22869:93;22958:3;22869:93;:::i;:::-;22987:2;22982:3;22978:12;22971:19;;22630:366;;;:::o;23002:419::-;23168:4;23206:2;23195:9;23191:18;23183:26;;23255:9;23249:4;23245:20;23241:1;23230:9;23226:17;23219:47;23283:131;23409:4;23283:131;:::i;:::-;23275:139;;23002:419;;;:::o;23427:178::-;23567:30;23563:1;23555:6;23551:14;23544:54;23427:178;:::o;23611:366::-;23753:3;23774:67;23838:2;23833:3;23774:67;:::i;:::-;23767:74;;23850:93;23939:3;23850:93;:::i;:::-;23968:2;23963:3;23959:12;23952:19;;23611:366;;;:::o;23983:419::-;24149:4;24187:2;24176:9;24172:18;24164:26;;24236:9;24230:4;24226:20;24222:1;24211:9;24207:17;24200:47;24264:131;24390:4;24264:131;:::i;:::-;24256:139;;23983:419;;;:::o;24408:222::-;24548:34;24544:1;24536:6;24532:14;24525:58;24617:5;24612:2;24604:6;24600:15;24593:30;24408:222;:::o;24636:366::-;24778:3;24799:67;24863:2;24858:3;24799:67;:::i;:::-;24792:74;;24875:93;24964:3;24875:93;:::i;:::-;24993:2;24988:3;24984:12;24977:19;;24636:366;;;:::o;25008:419::-;25174:4;25212:2;25201:9;25197:18;25189:26;;25261:9;25255:4;25251:20;25247:1;25236:9;25232:17;25225:47;25289:131;25415:4;25289:131;:::i;:::-;25281:139;;25008:419;;;:::o;25433:222::-;25573:34;25569:1;25561:6;25557:14;25550:58;25642:5;25637:2;25629:6;25625:15;25618:30;25433:222;:::o;25661:366::-;25803:3;25824:67;25888:2;25883:3;25824:67;:::i;:::-;25817:74;;25900:93;25989:3;25900:93;:::i;:::-;26018:2;26013:3;26009:12;26002:19;;25661:366;;;:::o;26033:419::-;26199:4;26237:2;26226:9;26222:18;26214:26;;26286:9;26280:4;26276:20;26272:1;26261:9;26257:17;26250:47;26314:131;26440:4;26314:131;:::i;:::-;26306:139;;26033:419;;;:::o;26458:194::-;26498:4;26518:20;26536:1;26518:20;:::i;:::-;26513:25;;26552:20;26570:1;26552:20;:::i;:::-;26547:25;;26596:1;26593;26589:9;26581:17;;26620:1;26614:4;26611:11;26608:37;;;26625:18;;:::i;:::-;26608:37;26458:194;;;;:::o;26658:229::-;26798:34;26794:1;26786:6;26782:14;26775:58;26867:12;26862:2;26854:6;26850:15;26843:37;26658:229;:::o;26893:366::-;27035:3;27056:67;27120:2;27115:3;27056:67;:::i;:::-;27049:74;;27132:93;27221:3;27132:93;:::i;:::-;27250:2;27245:3;27241:12;27234:19;;26893:366;;;:::o;27265:419::-;27431:4;27469:2;27458:9;27454:18;27446:26;;27518:9;27512:4;27508:20;27504:1;27493:9;27489:17;27482:47;27546:131;27672:4;27546:131;:::i;:::-;27538:139;;27265:419;;;:::o;27690:143::-;27747:5;27778:6;27772:13;27763:22;;27794:33;27821:5;27794:33;:::i;:::-;27690:143;;;;:::o;27839:351::-;27909:6;27958:2;27946:9;27937:7;27933:23;27929:32;27926:119;;;27964:79;;:::i;:::-;27926:119;28084:1;28109:64;28165:7;28156:6;28145:9;28141:22;28109:64;:::i;:::-;28099:74;;28055:128;27839:351;;;;:::o;28196:85::-;28241:7;28270:5;28259:16;;28196:85;;;:::o;28287:158::-;28345:9;28378:61;28396:42;28405:32;28431:5;28405:32;:::i;:::-;28396:42;:::i;:::-;28378:61;:::i;:::-;28365:74;;28287:158;;;:::o;28451:147::-;28546:45;28585:5;28546:45;:::i;:::-;28541:3;28534:58;28451:147;;:::o;28604:114::-;28671:6;28705:5;28699:12;28689:22;;28604:114;;;:::o;28724:184::-;28823:11;28857:6;28852:3;28845:19;28897:4;28892:3;28888:14;28873:29;;28724:184;;;;:::o;28914:132::-;28981:4;29004:3;28996:11;;29034:4;29029:3;29025:14;29017:22;;28914:132;;;:::o;29052:108::-;29129:24;29147:5;29129:24;:::i;:::-;29124:3;29117:37;29052:108;;:::o;29166:179::-;29235:10;29256:46;29298:3;29290:6;29256:46;:::i;:::-;29334:4;29329:3;29325:14;29311:28;;29166:179;;;;:::o;29351:113::-;29421:4;29453;29448:3;29444:14;29436:22;;29351:113;;;:::o;29500:732::-;29619:3;29648:54;29696:5;29648:54;:::i;:::-;29718:86;29797:6;29792:3;29718:86;:::i;:::-;29711:93;;29828:56;29878:5;29828:56;:::i;:::-;29907:7;29938:1;29923:284;29948:6;29945:1;29942:13;29923:284;;;30024:6;30018:13;30051:63;30110:3;30095:13;30051:63;:::i;:::-;30044:70;;30137:60;30190:6;30137:60;:::i;:::-;30127:70;;29983:224;29970:1;29967;29963:9;29958:14;;29923:284;;;29927:14;30223:3;30216:10;;29624:608;;;29500:732;;;;:::o;30238:831::-;30501:4;30539:3;30528:9;30524:19;30516:27;;30553:71;30621:1;30610:9;30606:17;30597:6;30553:71;:::i;:::-;30634:80;30710:2;30699:9;30695:18;30686:6;30634:80;:::i;:::-;30761:9;30755:4;30751:20;30746:2;30735:9;30731:18;30724:48;30789:108;30892:4;30883:6;30789:108;:::i;:::-;30781:116;;30907:72;30975:2;30964:9;30960:18;30951:6;30907:72;:::i;:::-;30989:73;31057:3;31046:9;31042:19;31033:6;30989:73;:::i;:::-;30238:831;;;;;;;;:::o;31075:177::-;31215:29;31211:1;31203:6;31199:14;31192:53;31075:177;:::o;31258:366::-;31400:3;31421:67;31485:2;31480:3;31421:67;:::i;:::-;31414:74;;31497:93;31586:3;31497:93;:::i;:::-;31615:2;31610:3;31606:12;31599:19;;31258:366;;;:::o;31630:419::-;31796:4;31834:2;31823:9;31819:18;31811:26;;31883:9;31877:4;31873:20;31869:1;31858:9;31854:17;31847:47;31911:131;32037:4;31911:131;:::i;:::-;31903:139;;31630:419;;;:::o;32055:220::-;32195:34;32191:1;32183:6;32179:14;32172:58;32264:3;32259:2;32251:6;32247:15;32240:28;32055:220;:::o;32281:366::-;32423:3;32444:67;32508:2;32503:3;32444:67;:::i;:::-;32437:74;;32520:93;32609:3;32520:93;:::i;:::-;32638:2;32633:3;32629:12;32622:19;;32281:366;;;:::o;32653:419::-;32819:4;32857:2;32846:9;32842:18;32834:26;;32906:9;32900:4;32896:20;32892:1;32881:9;32877:17;32870:47;32934:131;33060:4;32934:131;:::i;:::-;32926:139;;32653:419;;;:::o

Swarm Source

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