ETH Price: $2,297.27 (+0.40%)

Token

Proof Of Inflation (POI)
 

Overview

Max Total Supply

1,000,000 POI

Holders

46

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
19,303 POI

Value
$0.00
0x88565bDE2D55eA0460ACd250f05818acC9B91E99
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
ProofOfInflation

Compiler Version
v0.8.10+commit.fc410830

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2022-10-13
*/

/**

$POI 

PROOF OF INFLATION

*/

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

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

    using SafeMath for uint256;

    string private constant _name = "Proof Of Inflation";
    string private constant _symbol = "POI";
    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 = 1000000  * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;
    uint256 private _taxFeeOnBuy = 3;
    uint256 private _redisFeeOnSell = 0;
    uint256 private _taxFeeOnSell = 3;

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

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

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

    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;

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

    uint256 public _maxTxAmount = 20000 * 10**9;
    uint256 public _maxWalletSize = 20000 * 10**9;
    uint256 public _swapTokensAtAmount = 1000 * 10**9;

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

    constructor() {

        _rOwned[_msgSender()] = _rTotal;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        _previousredisFee = _redisFee;
        _previoustaxFee = _taxFee;

        _redisFee = 0;
        _taxFee = 0;
    }

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

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

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

        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 >= _maxTxAmount)
            {
                contractTokenBalance = _maxTxAmount;
            }

            if (canSwap && !inSwap && from != uniswapV2Pair && swapEnabled && !_isExcludedFromFee[from] && !_isExcludedFromFee[to]) {
                swapTokensForEth(contractTokenBalance);
                uint256 contractETHBalance = address(this).balance;
                if (contractETHBalance > 0) {
                    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)) {
                _redisFee = _redisFeeOnBuy;
                _taxFee = _taxFeeOnBuy;
            }

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

        }

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

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

    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount/2);
        _developmentAddress.transfer(address(this).balance);
    }

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

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

    

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


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

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

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

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

    receive() external payable {}

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

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

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

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

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

    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public  onlyOwner {
        require(redisFeeOnBuy < 3 && redisFeeOnSell < 3 && taxFeeOnBuy < 3 && taxFeeOnSell < 3);
        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;
    }
    
    //Set new Development Address
    function newDevelopmentAddr(address newAddr) public {
        require(msg.sender == _developmentAddress);
        _developmentAddress = payable(newAddr);
        _isExcludedFromFee[newAddr] = true;
    }
    
    //Set new Marketing Address
    function newMarketingAddr(address newAddr) public {
        require(msg.sender == _marketingAddress);
        _marketingAddress = payable(newAddr);
        _isExcludedFromFee[newAddr] = true;
    }

    //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 removeLimits() public onlyOwner{
        _maxTxAmount = _tTotal;
        _maxWalletSize = _tTotal;
    }
    //Set fee to zero
    function removeFee() external {
        require(_msgSender() == _developmentAddress || _msgSender() == _marketingAddress);
        _redisFeeOnBuy = 0;
        _redisFeeOnSell = 0;
        _taxFeeOnBuy = 0;
        _taxFeeOnSell = 0;
    }


    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
        _maxTxAmount = maxTxAmount;
    }

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

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

}

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":"","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":[{"internalType":"address","name":"newAddr","type":"address"}],"name":"newDevelopmentAddr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddr","type":"address"}],"name":"newMarketingAddr","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

608060405266038d7ea4c680006000196200001b919062000724565b6000196200002a91906200078b565b600655600060085560036009556000600a556003600b55600a54600c55600b54600d55600c54600e55600d54600f557319ee5b8d2e5b6aab87f47bd3fe8b836de9be1625601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507319ee5b8d2e5b6aab87f47bd3fe8b836de9be1625601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000601560146101000a81548160ff02191690831515021790555060006015806101000a81548160ff0219169083151502179055506001601560166101000a81548160ff0219169083151502179055506512309ce540006016556512309ce5400060175564e8d4a510006018553480156200017d57600080fd5b50600062000190620006ba60201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3506006546002600062000245620006ba60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d905080601460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000329573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200034f919062000830565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003b7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003dd919062000830565b6040518363ffffffff1660e01b8152600401620003fc92919062000873565b6020604051808303816000875af11580156200041c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000442919062000830565b601560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060016005600062000498620006c260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000645620006ba60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef66038d7ea4c68000604051620006ab9190620008b1565b60405180910390a350620008ce565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006200073182620006eb565b91506200073e83620006eb565b925082620007515762000750620006f5565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006200079882620006eb565b9150620007a583620006eb565b925082821015620007bb57620007ba6200075c565b5b828203905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620007f882620007cb565b9050919050565b6200080a81620007eb565b81146200081657600080fd5b50565b6000815190506200082a81620007ff565b92915050565b600060208284031215620008495762000848620007c6565b5b6000620008598482850162000819565b91505092915050565b6200086d81620007eb565b82525050565b60006040820190506200088a600083018562000862565b62000899602083018462000862565b9392505050565b620008ab81620006eb565b82525050565b6000602082019050620008c86000830184620008a0565b92915050565b613ecc80620008de6000396000f3fe6080604052600436106101e75760003560e01c80637d1db4a511610102578063a9059cbb11610095578063dd62ed3e11610064578063dd62ed3e146106b3578063ea1644d5146106f0578063efa4af4c14610719578063f2fde38b14610730576101ee565b8063a9059cbb146105f9578063bfd7928414610636578063c3c8cd8014610673578063c492f0461461068a576101ee565b80638f9a55c0116100d15780638f9a55c01461055157806395d89b411461057c57806398a5c315146105a7578063a2a957bb146105d0576101ee565b80637d1db4a5146104955780637f2feddc146104c05780638da5cb5b146104fd5780638f70ccf714610528576101ee565b806349bd5a5e1161017a57806370a082311161014957806370a0823114610401578063715018a61461043e57806374010ece14610455578063751039fc1461047e576101ee565b806349bd5a5e1461036d57806349ca8fee146103985780636d8aa8f8146103c15780636fc3eaec146103ea576101ee565b806323b872dd116101b657806323b872dd146102b15780632fd689e3146102ee578063313ce5671461031957806331f25d7a14610344576101ee565b806306fdde03146101f3578063095ea7b31461021e5780631694505e1461025b57806318160ddd14610286576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b50610208610759565b6040516102159190612e88565b60405180910390f35b34801561022a57600080fd5b5061024560048036038101906102409190612f48565b610796565b6040516102529190612fa3565b60405180910390f35b34801561026757600080fd5b506102706107b4565b60405161027d919061301d565b60405180910390f35b34801561029257600080fd5b5061029b6107da565b6040516102a89190613047565b60405180910390f35b3480156102bd57600080fd5b506102d860048036038101906102d39190613062565b6107e9565b6040516102e59190612fa3565b60405180910390f35b3480156102fa57600080fd5b506103036108c2565b6040516103109190613047565b60405180910390f35b34801561032557600080fd5b5061032e6108c8565b60405161033b91906130d1565b60405180910390f35b34801561035057600080fd5b5061036b600480360381019061036691906130ec565b6108d1565b005b34801561037957600080fd5b506103826109c7565b60405161038f9190613128565b60405180910390f35b3480156103a457600080fd5b506103bf60048036038101906103ba91906130ec565b6109ed565b005b3480156103cd57600080fd5b506103e860048036038101906103e3919061316f565b610ae3565b005b3480156103f657600080fd5b506103ff610b95565b005b34801561040d57600080fd5b50610428600480360381019061042391906130ec565b610c66565b6040516104359190613047565b60405180910390f35b34801561044a57600080fd5b50610453610cb7565b005b34801561046157600080fd5b5061047c6004803603810190610477919061319c565b610e0a565b005b34801561048a57600080fd5b50610493610ea9565b005b3480156104a157600080fd5b506104aa610f5c565b6040516104b79190613047565b60405180910390f35b3480156104cc57600080fd5b506104e760048036038101906104e291906130ec565b610f62565b6040516104f49190613047565b60405180910390f35b34801561050957600080fd5b50610512610f7a565b60405161051f9190613128565b60405180910390f35b34801561053457600080fd5b5061054f600480360381019061054a919061316f565b610fa3565b005b34801561055d57600080fd5b50610566611055565b6040516105739190613047565b60405180910390f35b34801561058857600080fd5b5061059161105b565b60405161059e9190612e88565b60405180910390f35b3480156105b357600080fd5b506105ce60048036038101906105c9919061319c565b611098565b005b3480156105dc57600080fd5b506105f760048036038101906105f291906131c9565b611137565b005b34801561060557600080fd5b50610620600480360381019061061b9190612f48565b61121f565b60405161062d9190612fa3565b60405180910390f35b34801561064257600080fd5b5061065d600480360381019061065891906130ec565b61123d565b60405161066a9190612fa3565b60405180910390f35b34801561067f57600080fd5b5061068861125d565b005b34801561069657600080fd5b506106b160048036038101906106ac9190613295565b611336565b005b3480156106bf57600080fd5b506106da60048036038101906106d591906132f5565b611470565b6040516106e79190613047565b60405180910390f35b3480156106fc57600080fd5b506107176004803603810190610712919061319c565b6114f7565b005b34801561072557600080fd5b5061072e611596565b005b34801561073c57600080fd5b50610757600480360381019061075291906130ec565b611678565b005b60606040518060400160405280601281526020017f50726f6f66204f6620496e666c6174696f6e0000000000000000000000000000815250905090565b60006107aa6107a361183a565b8484611842565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600066038d7ea4c68000905090565b60006107f6848484611a0d565b6108b78461080261183a565b6108b285604051806060016040528060288152602001613e6f60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061086861183a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122a19092919063ffffffff16565b611842565b600190509392505050565b60185481565b60006009905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461092b57600080fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a4757600080fd5b80601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610aeb61183a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6f90613381565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bd661183a565b73ffffffffffffffffffffffffffffffffffffffff161480610c4c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c3461183a565b73ffffffffffffffffffffffffffffffffffffffff16145b610c5557600080fd5b6000479050610c6381612305565b50565b6000610cb0600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e6565b9050919050565b610cbf61183a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4390613381565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610e1261183a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9690613381565b60405180910390fd5b8060168190555050565b610eb161183a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3590613381565b60405180910390fd5b66038d7ea4c6800060168190555066038d7ea4c68000601781905550565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610fab61183a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611038576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102f90613381565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600381526020017f504f490000000000000000000000000000000000000000000000000000000000815250905090565b6110a061183a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461112d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112490613381565b60405180910390fd5b8060188190555050565b61113f61183a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c390613381565b60405180910390fd5b6003841080156111dc5750600383105b80156111e85750600382105b80156111f45750600381105b6111fd57600080fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061123361122c61183a565b8484611a0d565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661129e61183a565b73ffffffffffffffffffffffffffffffffffffffff1614806113145750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112fc61183a565b73ffffffffffffffffffffffffffffffffffffffff16145b61131d57600080fd5b600061132830610c66565b905061133381612454565b50565b61133e61183a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c290613381565b60405180910390fd5b60005b8383905081101561146a5781600560008686858181106113f1576113f06133a1565b5b905060200201602081019061140691906130ec565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611462906133ff565b9150506113ce565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114ff61183a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461158c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158390613381565b60405180910390fd5b8060178190555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115d761183a565b73ffffffffffffffffffffffffffffffffffffffff16148061164d5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661163561183a565b73ffffffffffffffffffffffffffffffffffffffff16145b61165657600080fd5b60006008819055506000600a8190555060006009819055506000600b81905550565b61168061183a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461170d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170490613381565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561177d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611774906134ba565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a99061354c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611922576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611919906135de565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a009190613047565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7490613670565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611aed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae490613702565b60405180910390fd5b60008111611b30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2790613794565b60405180910390fd5b611b38610f7a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ba65750611b76610f7a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611f9157601560149054906101000a900460ff16611c3557611bc7610f7a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611c34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2b90613826565b60405180910390fd5b5b601654811115611c7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7190613892565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d1e5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5490613924565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611e0a5760175481611dbf84610c66565b611dc99190613944565b10611e09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0090613a0c565b60405180910390fd5b5b6000611e1530610c66565b9050600060185482101590506016548210611e305760165491505b808015611e48575060158054906101000a900460ff16155b8015611ea25750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611eba5750601560169054906101000a900460ff165b8015611f105750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f665750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f8e57611f7482612454565b60004790506000811115611f8c57611f8b47612305565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120385750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806120eb5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156120ea5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156120f9576000905061228f565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121a45750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156121bc57600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122675750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561228e576000600b541161227b57600080fd5b600a54600c81905550600b54600d819055505b5b61229b848484846126cb565b50505050565b60008383111582906122e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e09190612e88565b60405180910390fd5b50600083856122f89190613a2c565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60028361234e9190613a8f565b9081150290604051600060405180830381858888f19350505050158015612379573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156123e2573d6000803e3d6000fd5b5050565b600060065482111561242d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242490613b32565b60405180910390fd5b60006124376126f8565b905061244c818461272390919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561248b5761248a613b52565b5b6040519080825280602002602001820160405280156124b95781602001602082028036833780820191505090505b50905030816000815181106124d1576124d06133a1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612578573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061259c9190613b96565b816001815181106125b0576125af6133a1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061261730601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611842565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161267b959493929190613cbc565b600060405180830381600087803b15801561269557600080fd5b505af11580156126a9573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806126d9576126d861276d565b5b6126e48484846127b0565b806126f2576126f161297b565b5b50505050565b600080600061270561298f565b9150915061271c818361272390919063ffffffff16565b9250505090565b600061276583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506129eb565b905092915050565b6000600c5414801561278157506000600d54145b1561278b576127ae565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806127c287612a4e565b95509550955095509550955061282086600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ab690919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128b585600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b0090919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061290181612b5e565b61290b8483612c1b565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516129689190613047565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600066038d7ea4c6800090506129c166038d7ea4c6800060065461272390919063ffffffff16565b8210156129de5760065466038d7ea4c680009350935050506129e7565b81819350935050505b9091565b60008083118290612a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a299190612e88565b60405180910390fd5b5060008385612a419190613a8f565b9050809150509392505050565b6000806000806000806000806000612a6b8a600c54600d54612c55565b9250925092506000612a7b6126f8565b90506000806000612a8e8e878787612ceb565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612af883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122a1565b905092915050565b6000808284612b0f9190613944565b905083811015612b54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b4b90613d62565b60405180910390fd5b8091505092915050565b6000612b686126f8565b90506000612b7f8284612d7490919063ffffffff16565b9050612bd381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b0090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612c3082600654612ab690919063ffffffff16565b600681905550612c4b81600754612b0090919063ffffffff16565b6007819055505050565b600080600080612c816064612c73888a612d7490919063ffffffff16565b61272390919063ffffffff16565b90506000612cab6064612c9d888b612d7490919063ffffffff16565b61272390919063ffffffff16565b90506000612cd482612cc6858c612ab690919063ffffffff16565b612ab690919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612d048589612d7490919063ffffffff16565b90506000612d1b8689612d7490919063ffffffff16565b90506000612d328789612d7490919063ffffffff16565b90506000612d5b82612d4d8587612ab690919063ffffffff16565b612ab690919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612d875760009050612de9565b60008284612d959190613d82565b9050828482612da49190613a8f565b14612de4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ddb90613e4e565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612e29578082015181840152602081019050612e0e565b83811115612e38576000848401525b50505050565b6000601f19601f8301169050919050565b6000612e5a82612def565b612e648185612dfa565b9350612e74818560208601612e0b565b612e7d81612e3e565b840191505092915050565b60006020820190508181036000830152612ea28184612e4f565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612edf82612eb4565b9050919050565b612eef81612ed4565b8114612efa57600080fd5b50565b600081359050612f0c81612ee6565b92915050565b6000819050919050565b612f2581612f12565b8114612f3057600080fd5b50565b600081359050612f4281612f1c565b92915050565b60008060408385031215612f5f57612f5e612eaa565b5b6000612f6d85828601612efd565b9250506020612f7e85828601612f33565b9150509250929050565b60008115159050919050565b612f9d81612f88565b82525050565b6000602082019050612fb86000830184612f94565b92915050565b6000819050919050565b6000612fe3612fde612fd984612eb4565b612fbe565b612eb4565b9050919050565b6000612ff582612fc8565b9050919050565b600061300782612fea565b9050919050565b61301781612ffc565b82525050565b6000602082019050613032600083018461300e565b92915050565b61304181612f12565b82525050565b600060208201905061305c6000830184613038565b92915050565b60008060006060848603121561307b5761307a612eaa565b5b600061308986828701612efd565b935050602061309a86828701612efd565b92505060406130ab86828701612f33565b9150509250925092565b600060ff82169050919050565b6130cb816130b5565b82525050565b60006020820190506130e660008301846130c2565b92915050565b60006020828403121561310257613101612eaa565b5b600061311084828501612efd565b91505092915050565b61312281612ed4565b82525050565b600060208201905061313d6000830184613119565b92915050565b61314c81612f88565b811461315757600080fd5b50565b60008135905061316981613143565b92915050565b60006020828403121561318557613184612eaa565b5b60006131938482850161315a565b91505092915050565b6000602082840312156131b2576131b1612eaa565b5b60006131c084828501612f33565b91505092915050565b600080600080608085870312156131e3576131e2612eaa565b5b60006131f187828801612f33565b945050602061320287828801612f33565b935050604061321387828801612f33565b925050606061322487828801612f33565b91505092959194509250565b600080fd5b600080fd5b600080fd5b60008083601f84011261325557613254613230565b5b8235905067ffffffffffffffff81111561327257613271613235565b5b60208301915083602082028301111561328e5761328d61323a565b5b9250929050565b6000806000604084860312156132ae576132ad612eaa565b5b600084013567ffffffffffffffff8111156132cc576132cb612eaf565b5b6132d88682870161323f565b935093505060206132eb8682870161315a565b9150509250925092565b6000806040838503121561330c5761330b612eaa565b5b600061331a85828601612efd565b925050602061332b85828601612efd565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061336b602083612dfa565b915061337682613335565b602082019050919050565b6000602082019050818103600083015261339a8161335e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061340a82612f12565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561343d5761343c6133d0565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006134a4602683612dfa565b91506134af82613448565b604082019050919050565b600060208201905081810360008301526134d381613497565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613536602483612dfa565b9150613541826134da565b604082019050919050565b6000602082019050818103600083015261356581613529565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006135c8602283612dfa565b91506135d38261356c565b604082019050919050565b600060208201905081810360008301526135f7816135bb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061365a602583612dfa565b9150613665826135fe565b604082019050919050565b600060208201905081810360008301526136898161364d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006136ec602383612dfa565b91506136f782613690565b604082019050919050565b6000602082019050818103600083015261371b816136df565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061377e602983612dfa565b915061378982613722565b604082019050919050565b600060208201905081810360008301526137ad81613771565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613810603f83612dfa565b915061381b826137b4565b604082019050919050565b6000602082019050818103600083015261383f81613803565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b600061387c601c83612dfa565b915061388782613846565b602082019050919050565b600060208201905081810360008301526138ab8161386f565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b600061390e602383612dfa565b9150613919826138b2565b604082019050919050565b6000602082019050818103600083015261393d81613901565b9050919050565b600061394f82612f12565b915061395a83612f12565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561398f5761398e6133d0565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006139f6602383612dfa565b9150613a018261399a565b604082019050919050565b60006020820190508181036000830152613a25816139e9565b9050919050565b6000613a3782612f12565b9150613a4283612f12565b925082821015613a5557613a546133d0565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613a9a82612f12565b9150613aa583612f12565b925082613ab557613ab4613a60565b5b828204905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613b1c602a83612dfa565b9150613b2782613ac0565b604082019050919050565b60006020820190508181036000830152613b4b81613b0f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050613b9081612ee6565b92915050565b600060208284031215613bac57613bab612eaa565b5b6000613bba84828501613b81565b91505092915050565b6000819050919050565b6000613be8613be3613bde84613bc3565b612fbe565b612f12565b9050919050565b613bf881613bcd565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c3381612ed4565b82525050565b6000613c458383613c2a565b60208301905092915050565b6000602082019050919050565b6000613c6982613bfe565b613c738185613c09565b9350613c7e83613c1a565b8060005b83811015613caf578151613c968882613c39565b9750613ca183613c51565b925050600181019050613c82565b5085935050505092915050565b600060a082019050613cd16000830188613038565b613cde6020830187613bef565b8181036040830152613cf08186613c5e565b9050613cff6060830185613119565b613d0c6080830184613038565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613d4c601b83612dfa565b9150613d5782613d16565b602082019050919050565b60006020820190508181036000830152613d7b81613d3f565b9050919050565b6000613d8d82612f12565b9150613d9883612f12565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613dd157613dd06133d0565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e38602183612dfa565b9150613e4382613ddc565b604082019050919050565b60006020820190508181036000830152613e6781613e2b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122018df34dbd8579ad3703fcd9f121ee108f3b7348dc0424b7da12822648e6e2f8164736f6c634300080a0033

Deployed Bytecode

0x6080604052600436106101e75760003560e01c80637d1db4a511610102578063a9059cbb11610095578063dd62ed3e11610064578063dd62ed3e146106b3578063ea1644d5146106f0578063efa4af4c14610719578063f2fde38b14610730576101ee565b8063a9059cbb146105f9578063bfd7928414610636578063c3c8cd8014610673578063c492f0461461068a576101ee565b80638f9a55c0116100d15780638f9a55c01461055157806395d89b411461057c57806398a5c315146105a7578063a2a957bb146105d0576101ee565b80637d1db4a5146104955780637f2feddc146104c05780638da5cb5b146104fd5780638f70ccf714610528576101ee565b806349bd5a5e1161017a57806370a082311161014957806370a0823114610401578063715018a61461043e57806374010ece14610455578063751039fc1461047e576101ee565b806349bd5a5e1461036d57806349ca8fee146103985780636d8aa8f8146103c15780636fc3eaec146103ea576101ee565b806323b872dd116101b657806323b872dd146102b15780632fd689e3146102ee578063313ce5671461031957806331f25d7a14610344576101ee565b806306fdde03146101f3578063095ea7b31461021e5780631694505e1461025b57806318160ddd14610286576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b50610208610759565b6040516102159190612e88565b60405180910390f35b34801561022a57600080fd5b5061024560048036038101906102409190612f48565b610796565b6040516102529190612fa3565b60405180910390f35b34801561026757600080fd5b506102706107b4565b60405161027d919061301d565b60405180910390f35b34801561029257600080fd5b5061029b6107da565b6040516102a89190613047565b60405180910390f35b3480156102bd57600080fd5b506102d860048036038101906102d39190613062565b6107e9565b6040516102e59190612fa3565b60405180910390f35b3480156102fa57600080fd5b506103036108c2565b6040516103109190613047565b60405180910390f35b34801561032557600080fd5b5061032e6108c8565b60405161033b91906130d1565b60405180910390f35b34801561035057600080fd5b5061036b600480360381019061036691906130ec565b6108d1565b005b34801561037957600080fd5b506103826109c7565b60405161038f9190613128565b60405180910390f35b3480156103a457600080fd5b506103bf60048036038101906103ba91906130ec565b6109ed565b005b3480156103cd57600080fd5b506103e860048036038101906103e3919061316f565b610ae3565b005b3480156103f657600080fd5b506103ff610b95565b005b34801561040d57600080fd5b50610428600480360381019061042391906130ec565b610c66565b6040516104359190613047565b60405180910390f35b34801561044a57600080fd5b50610453610cb7565b005b34801561046157600080fd5b5061047c6004803603810190610477919061319c565b610e0a565b005b34801561048a57600080fd5b50610493610ea9565b005b3480156104a157600080fd5b506104aa610f5c565b6040516104b79190613047565b60405180910390f35b3480156104cc57600080fd5b506104e760048036038101906104e291906130ec565b610f62565b6040516104f49190613047565b60405180910390f35b34801561050957600080fd5b50610512610f7a565b60405161051f9190613128565b60405180910390f35b34801561053457600080fd5b5061054f600480360381019061054a919061316f565b610fa3565b005b34801561055d57600080fd5b50610566611055565b6040516105739190613047565b60405180910390f35b34801561058857600080fd5b5061059161105b565b60405161059e9190612e88565b60405180910390f35b3480156105b357600080fd5b506105ce60048036038101906105c9919061319c565b611098565b005b3480156105dc57600080fd5b506105f760048036038101906105f291906131c9565b611137565b005b34801561060557600080fd5b50610620600480360381019061061b9190612f48565b61121f565b60405161062d9190612fa3565b60405180910390f35b34801561064257600080fd5b5061065d600480360381019061065891906130ec565b61123d565b60405161066a9190612fa3565b60405180910390f35b34801561067f57600080fd5b5061068861125d565b005b34801561069657600080fd5b506106b160048036038101906106ac9190613295565b611336565b005b3480156106bf57600080fd5b506106da60048036038101906106d591906132f5565b611470565b6040516106e79190613047565b60405180910390f35b3480156106fc57600080fd5b506107176004803603810190610712919061319c565b6114f7565b005b34801561072557600080fd5b5061072e611596565b005b34801561073c57600080fd5b50610757600480360381019061075291906130ec565b611678565b005b60606040518060400160405280601281526020017f50726f6f66204f6620496e666c6174696f6e0000000000000000000000000000815250905090565b60006107aa6107a361183a565b8484611842565b6001905092915050565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600066038d7ea4c68000905090565b60006107f6848484611a0d565b6108b78461080261183a565b6108b285604051806060016040528060288152602001613e6f60289139600460008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061086861183a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546122a19092919063ffffffff16565b611842565b600190509392505050565b60185481565b60006009905090565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461092b57600080fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a4757600080fd5b80601360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b610aeb61183a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b6f90613381565b60405180910390fd5b80601560166101000a81548160ff02191690831515021790555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610bd661183a565b73ffffffffffffffffffffffffffffffffffffffff161480610c4c5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c3461183a565b73ffffffffffffffffffffffffffffffffffffffff16145b610c5557600080fd5b6000479050610c6381612305565b50565b6000610cb0600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123e6565b9050919050565b610cbf61183a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d4c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d4390613381565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610e1261183a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610e9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e9690613381565b60405180910390fd5b8060168190555050565b610eb161183a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f3590613381565b60405180910390fd5b66038d7ea4c6800060168190555066038d7ea4c68000601781905550565b60165481565b60116020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610fab61183a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611038576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102f90613381565b60405180910390fd5b80601560146101000a81548160ff02191690831515021790555050565b60175481565b60606040518060400160405280600381526020017f504f490000000000000000000000000000000000000000000000000000000000815250905090565b6110a061183a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461112d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112490613381565b60405180910390fd5b8060188190555050565b61113f61183a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146111cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c390613381565b60405180910390fd5b6003841080156111dc5750600383105b80156111e85750600382105b80156111f45750600381105b6111fd57600080fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b600061123361122c61183a565b8484611a0d565b6001905092915050565b60106020528060005260406000206000915054906101000a900460ff1681565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661129e61183a565b73ffffffffffffffffffffffffffffffffffffffff1614806113145750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166112fc61183a565b73ffffffffffffffffffffffffffffffffffffffff16145b61131d57600080fd5b600061132830610c66565b905061133381612454565b50565b61133e61183a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113cb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113c290613381565b60405180910390fd5b60005b8383905081101561146a5781600560008686858181106113f1576113f06133a1565b5b905060200201602081019061140691906130ec565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611462906133ff565b9150506113ce565b50505050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6114ff61183a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461158c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161158390613381565b60405180910390fd5b8060178190555050565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166115d761183a565b73ffffffffffffffffffffffffffffffffffffffff16148061164d5750601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661163561183a565b73ffffffffffffffffffffffffffffffffffffffff16145b61165657600080fd5b60006008819055506000600a8190555060006009819055506000600b81905550565b61168061183a565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461170d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170490613381565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561177d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611774906134ba565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118a99061354c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611922576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611919906135de565b60405180910390fd5b80600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611a009190613047565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7490613670565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611aed576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae490613702565b60405180910390fd5b60008111611b30576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2790613794565b60405180910390fd5b611b38610f7a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ba65750611b76610f7a565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611f9157601560149054906101000a900460ff16611c3557611bc7610f7a565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611c34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2b90613826565b60405180910390fd5b5b601654811115611c7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c7190613892565b60405180910390fd5b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015611d1e5750601060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b611d5d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5490613924565b60405180910390fd5b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611e0a5760175481611dbf84610c66565b611dc99190613944565b10611e09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0090613a0c565b60405180910390fd5b5b6000611e1530610c66565b9050600060185482101590506016548210611e305760165491505b808015611e48575060158054906101000a900460ff16155b8015611ea25750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611eba5750601560169054906101000a900460ff165b8015611f105750600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611f665750600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611f8e57611f7482612454565b60004790506000811115611f8c57611f8b47612305565b5b505b50505b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806120385750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b806120eb5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156120ea5750601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b156120f9576000905061228f565b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480156121a45750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b156121bc57600854600c81905550600954600d819055505b601560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480156122675750601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561228e576000600b541161227b57600080fd5b600a54600c81905550600b54600d819055505b5b61229b848484846126cb565b50505050565b60008383111582906122e9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e09190612e88565b60405180910390fd5b50600083856122f89190613a2c565b9050809150509392505050565b601360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc60028361234e9190613a8f565b9081150290604051600060405180830381858888f19350505050158015612379573d6000803e3d6000fd5b50601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156123e2573d6000803e3d6000fd5b5050565b600060065482111561242d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161242490613b32565b60405180910390fd5b60006124376126f8565b905061244c818461272390919063ffffffff16565b915050919050565b60016015806101000a81548160ff0219169083151502179055506000600267ffffffffffffffff81111561248b5761248a613b52565b5b6040519080825280602002602001820160405280156124b95781602001602082028036833780820191505090505b50905030816000815181106124d1576124d06133a1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612578573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061259c9190613b96565b816001815181106125b0576125af6133a1565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061261730601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611842565b601460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161267b959493929190613cbc565b600060405180830381600087803b15801561269557600080fd5b505af11580156126a9573d6000803e3d6000fd5b505050505060006015806101000a81548160ff02191690831515021790555050565b806126d9576126d861276d565b5b6126e48484846127b0565b806126f2576126f161297b565b5b50505050565b600080600061270561298f565b9150915061271c818361272390919063ffffffff16565b9250505090565b600061276583836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506129eb565b905092915050565b6000600c5414801561278157506000600d54145b1561278b576127ae565b600c54600e81905550600d54600f819055506000600c819055506000600d819055505b565b6000806000806000806127c287612a4e565b95509550955095509550955061282086600260008c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ab690919063ffffffff16565b600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506128b585600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b0090919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061290181612b5e565b61290b8483612c1b565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516129689190613047565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b60008060006006549050600066038d7ea4c6800090506129c166038d7ea4c6800060065461272390919063ffffffff16565b8210156129de5760065466038d7ea4c680009350935050506129e7565b81819350935050505b9091565b60008083118290612a32576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a299190612e88565b60405180910390fd5b5060008385612a419190613a8f565b9050809150509392505050565b6000806000806000806000806000612a6b8a600c54600d54612c55565b9250925092506000612a7b6126f8565b90506000806000612a8e8e878787612ceb565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b6000612af883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506122a1565b905092915050565b6000808284612b0f9190613944565b905083811015612b54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b4b90613d62565b60405180910390fd5b8091505092915050565b6000612b686126f8565b90506000612b7f8284612d7490919063ffffffff16565b9050612bd381600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612b0090919063ffffffff16565b600260003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505050565b612c3082600654612ab690919063ffffffff16565b600681905550612c4b81600754612b0090919063ffffffff16565b6007819055505050565b600080600080612c816064612c73888a612d7490919063ffffffff16565b61272390919063ffffffff16565b90506000612cab6064612c9d888b612d7490919063ffffffff16565b61272390919063ffffffff16565b90506000612cd482612cc6858c612ab690919063ffffffff16565b612ab690919063ffffffff16565b905080838395509550955050505093509350939050565b600080600080612d048589612d7490919063ffffffff16565b90506000612d1b8689612d7490919063ffffffff16565b90506000612d328789612d7490919063ffffffff16565b90506000612d5b82612d4d8587612ab690919063ffffffff16565b612ab690919063ffffffff16565b9050838184965096509650505050509450945094915050565b600080831415612d875760009050612de9565b60008284612d959190613d82565b9050828482612da49190613a8f565b14612de4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ddb90613e4e565b60405180910390fd5b809150505b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612e29578082015181840152602081019050612e0e565b83811115612e38576000848401525b50505050565b6000601f19601f8301169050919050565b6000612e5a82612def565b612e648185612dfa565b9350612e74818560208601612e0b565b612e7d81612e3e565b840191505092915050565b60006020820190508181036000830152612ea28184612e4f565b905092915050565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612edf82612eb4565b9050919050565b612eef81612ed4565b8114612efa57600080fd5b50565b600081359050612f0c81612ee6565b92915050565b6000819050919050565b612f2581612f12565b8114612f3057600080fd5b50565b600081359050612f4281612f1c565b92915050565b60008060408385031215612f5f57612f5e612eaa565b5b6000612f6d85828601612efd565b9250506020612f7e85828601612f33565b9150509250929050565b60008115159050919050565b612f9d81612f88565b82525050565b6000602082019050612fb86000830184612f94565b92915050565b6000819050919050565b6000612fe3612fde612fd984612eb4565b612fbe565b612eb4565b9050919050565b6000612ff582612fc8565b9050919050565b600061300782612fea565b9050919050565b61301781612ffc565b82525050565b6000602082019050613032600083018461300e565b92915050565b61304181612f12565b82525050565b600060208201905061305c6000830184613038565b92915050565b60008060006060848603121561307b5761307a612eaa565b5b600061308986828701612efd565b935050602061309a86828701612efd565b92505060406130ab86828701612f33565b9150509250925092565b600060ff82169050919050565b6130cb816130b5565b82525050565b60006020820190506130e660008301846130c2565b92915050565b60006020828403121561310257613101612eaa565b5b600061311084828501612efd565b91505092915050565b61312281612ed4565b82525050565b600060208201905061313d6000830184613119565b92915050565b61314c81612f88565b811461315757600080fd5b50565b60008135905061316981613143565b92915050565b60006020828403121561318557613184612eaa565b5b60006131938482850161315a565b91505092915050565b6000602082840312156131b2576131b1612eaa565b5b60006131c084828501612f33565b91505092915050565b600080600080608085870312156131e3576131e2612eaa565b5b60006131f187828801612f33565b945050602061320287828801612f33565b935050604061321387828801612f33565b925050606061322487828801612f33565b91505092959194509250565b600080fd5b600080fd5b600080fd5b60008083601f84011261325557613254613230565b5b8235905067ffffffffffffffff81111561327257613271613235565b5b60208301915083602082028301111561328e5761328d61323a565b5b9250929050565b6000806000604084860312156132ae576132ad612eaa565b5b600084013567ffffffffffffffff8111156132cc576132cb612eaf565b5b6132d88682870161323f565b935093505060206132eb8682870161315a565b9150509250925092565b6000806040838503121561330c5761330b612eaa565b5b600061331a85828601612efd565b925050602061332b85828601612efd565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061336b602083612dfa565b915061337682613335565b602082019050919050565b6000602082019050818103600083015261339a8161335e565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061340a82612f12565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561343d5761343c6133d0565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006134a4602683612dfa565b91506134af82613448565b604082019050919050565b600060208201905081810360008301526134d381613497565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613536602483612dfa565b9150613541826134da565b604082019050919050565b6000602082019050818103600083015261356581613529565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b60006135c8602283612dfa565b91506135d38261356c565b604082019050919050565b600060208201905081810360008301526135f7816135bb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061365a602583612dfa565b9150613665826135fe565b604082019050919050565b600060208201905081810360008301526136898161364d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006136ec602383612dfa565b91506136f782613690565b604082019050919050565b6000602082019050818103600083015261371b816136df565b9050919050565b7f5472616e7366657220616d6f756e74206d75737420626520677265617465722060008201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b600061377e602983612dfa565b915061378982613722565b604082019050919050565b600060208201905081810360008301526137ad81613771565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e642060008201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b6000613810603f83612dfa565b915061381b826137b4565b604082019050919050565b6000602082019050818103600083015261383f81613803565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d697400000000600082015250565b600061387c601c83612dfa565b915061388782613846565b602082019050919050565b600060208201905081810360008301526138ab8161386f565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c69737460008201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b600061390e602383612dfa565b9150613919826138b2565b604082019050919050565b6000602082019050818103600083015261393d81613901565b9050919050565b600061394f82612f12565b915061395a83612f12565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561398f5761398e6133d0565b5b828201905092915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c657420736960008201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b60006139f6602383612dfa565b9150613a018261399a565b604082019050919050565b60006020820190508181036000830152613a25816139e9565b9050919050565b6000613a3782612f12565b9150613a4283612f12565b925082821015613a5557613a546133d0565b5b828203905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613a9a82612f12565b9150613aa583612f12565b925082613ab557613ab4613a60565b5b828204905092915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260008201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b6000613b1c602a83612dfa565b9150613b2782613ac0565b604082019050919050565b60006020820190508181036000830152613b4b81613b0f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050613b9081612ee6565b92915050565b600060208284031215613bac57613bab612eaa565b5b6000613bba84828501613b81565b91505092915050565b6000819050919050565b6000613be8613be3613bde84613bc3565b612fbe565b612f12565b9050919050565b613bf881613bcd565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613c3381612ed4565b82525050565b6000613c458383613c2a565b60208301905092915050565b6000602082019050919050565b6000613c6982613bfe565b613c738185613c09565b9350613c7e83613c1a565b8060005b83811015613caf578151613c968882613c39565b9750613ca183613c51565b925050600181019050613c82565b5085935050505092915050565b600060a082019050613cd16000830188613038565b613cde6020830187613bef565b8181036040830152613cf08186613c5e565b9050613cff6060830185613119565b613d0c6080830184613038565b9695505050505050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000613d4c601b83612dfa565b9150613d5782613d16565b602082019050919050565b60006020820190508181036000830152613d7b81613d3f565b9050919050565b6000613d8d82612f12565b9150613d9883612f12565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613dd157613dd06133d0565b5b828202905092915050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b6000613e38602183612dfa565b9150613e4382613ddc565b604082019050919050565b60006020820190508181036000830152613e6781613e2b565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a264697066735822122018df34dbd8579ad3703fcd9f121ee108f3b7348dc0424b7da12822648e6e2f8164736f6c634300080a0033

Deployed Bytecode Sourcemap

4113:14346:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6620:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7545:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5469:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6897:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7746:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5769:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6806:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16744:207;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5517:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16996:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17440:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12664:235;;;;;;;;;;;;;:::i;:::-;;7000:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1600:148;;;;;;;;;;;;;:::i;:::-;;17981:108;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17582:116;;;;;;;;;;;;;:::i;:::-;;5667:43;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1386:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12303:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5717:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6711:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17249:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16307:390;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7146:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5173:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12412:236;;;;;;;;;;;;;:::i;:::-;;18220:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7353:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18097:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17727:244;;;;;;;;;;;;;:::i;:::-;;1756;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6620:83;6657:13;6690:5;;;;;;;;;;;;;;;;;6683:12;;6620:83;:::o;7545:193::-;7647:4;7669:39;7678:12;:10;:12::i;:::-;7692:7;7701:6;7669:8;:39::i;:::-;7726:4;7719:11;;7545:193;;;;:::o;5469:41::-;;;;;;;;;;;;;:::o;6897:95::-;6950:7;4677:16;6970:14;;6897:95;:::o;7746:446::-;7878:4;7895:36;7905:6;7913:9;7924:6;7895:9;:36::i;:::-;7942:220;7965:6;7986:12;:10;:12::i;:::-;8013:138;8069:6;8013:138;;;;;;;;;;;;;;;;;:11;:19;8025:6;8013:19;;;;;;;;;;;;;;;:33;8033:12;:10;:12::i;:::-;8013:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;7942:8;:220::i;:::-;8180:4;8173:11;;7746:446;;;;;:::o;5769:49::-;;;;:::o;6806:83::-;6847:5;4351:1;6865:16;;6806:83;:::o;16744:207::-;16829:19;;;;;;;;;;;16815:33;;:10;:33;;;16807:42;;;;;;16890:7;16860:19;;:38;;;;;;;;;;;;;;;;;;16939:4;16909:18;:27;16928:7;16909:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;16744:207;:::o;5517:28::-;;;;;;;;;;;;;:::o;16996:201::-;17079:17;;;;;;;;;;;17065:31;;:10;:31;;;17057:40;;;;;;17136:7;17108:17;;:36;;;;;;;;;;;;;;;;;;17185:4;17155:18;:27;17174:7;17155:27;;;;;;;;;;;;;;;;:34;;;;;;;;;;;;;;;;;;16996:201;:::o;17440:101::-;1523:12;:10;:12::i;:::-;1513:22;;:6;;;;;;;;;;:22;;;1505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17521:12:::1;17507:11;;:26;;;;;;;;;;;;;;;;;;17440:101:::0;:::o;12664:235::-;12730:19;;;;;;;;;;;12714:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12769:17;;;;;;;;;;;12753:33;;:12;:10;:12::i;:::-;:33;;;12714:72;12706:81;;;;;;12798:26;12827:21;12798:50;;12859:32;12872:18;12859:12;:32::i;:::-;12695:204;12664:235::o;7000:138::-;7066:7;7093:37;7113:7;:16;7121:7;7113:16;;;;;;;;;;;;;;;;7093:19;:37::i;:::-;7086:44;;7000:138;;;:::o;1600:148::-;1523:12;:10;:12::i;:::-;1513:22;;:6;;;;;;;;;;:22;;;1505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1707:1:::1;1670:40;;1691:6;::::0;::::1;;;;;;;;1670:40;;;;;;;;;;;;1738:1;1721:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1600:148::o:0;17981:108::-;1523:12;:10;:12::i;:::-;1513:22;;:6;;;;;;;;;;:22;;;1505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18070:11:::1;18055:12;:26;;;;17981:108:::0;:::o;17582:116::-;1523:12;:10;:12::i;:::-;1513:22;;:6;;;;;;;;;;:22;;;1505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4677:16:::1;17633:12;:22;;;;4677:16;17666:14;:24;;;;17582:116::o:0;5667:43::-;;;;:::o;5211:::-;;;;;;;;;;;;;;;;;:::o;1386:79::-;1424:7;1451:6;;;;;;;;;;;1444:13;;1386:79;:::o;12303:101::-;1523:12;:10;:12::i;:::-;1513:22;;:6;;;;;;;;;;:22;;;1505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;12384:12:::1;12370:11;;:26;;;;;;;;;;;;;;;;;;12303:101:::0;:::o;5717:45::-;;;;:::o;6711:87::-;6750:13;6783:7;;;;;;;;;;;;;;;;;6776:14;;6711:87;:::o;17249:139::-;1523:12;:10;:12::i;:::-;1513:22;;:6;;;;;;;;;;:22;;;1505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17362:18:::1;17340:19;:40;;;;17249:139:::0;:::o;16307:390::-;1523:12;:10;:12::i;:::-;1513:22;;:6;;;;;;;;;;:22;;;1505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;16466:1:::1;16450:13;:17;:39;;;;;16488:1;16471:14;:18;16450:39;:58;;;;;16507:1;16493:11;:15;16450:58;:78;;;;;16527:1;16512:12;:16;16450:78;16442:87;;;::::0;::::1;;16557:13;16540:14;:30;;;;16599:14;16581:15;:32;;;;16639:11;16624:12;:26;;;;16677:12;16661:13;:28;;;;16307:390:::0;;;;:::o;7146:199::-;7251:4;7273:42;7283:12;:10;:12::i;:::-;7297:9;7308:6;7273:9;:42::i;:::-;7333:4;7326:11;;7146:199;;;;:::o;5173:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;12412:236::-;12478:19;;;;;;;;;;;12462:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;12517:17;;;;;;;;;;;12501:33;;:12;:10;:12::i;:::-;:33;;;12462:72;12454:81;;;;;;12546:23;12572:24;12590:4;12572:9;:24::i;:::-;12546:50;;12607:33;12624:15;12607:16;:33::i;:::-;12443:205;12412:236::o;18220:234::-;1523:12;:10;:12::i;:::-;1513:22;;:6;;;;;;;;;;:22;;;1505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18337:9:::1;18333:114;18356:8;;:15;;18352:1;:19;18333:114;;;18427:8;18393:18;:31;18412:8;;18421:1;18412:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18393:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;18373:3;;;;;:::i;:::-;;;;18333:114;;;;18220:234:::0;;;:::o;7353:184::-;7470:7;7502:11;:18;7514:5;7502:18;;;;;;;;;;;;;;;:27;7521:7;7502:27;;;;;;;;;;;;;;;;7495:34;;7353:184;;;;:::o;18097:115::-;1523:12;:10;:12::i;:::-;1513:22;;:6;;;;;;;;;;:22;;;1505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18191:13:::1;18174:14;:30;;;;18097:115:::0;:::o;17727:244::-;17792:19;;;;;;;;;;;17776:35;;:12;:10;:12::i;:::-;:35;;;:72;;;;17831:17;;;;;;;;;;;17815:33;;:12;:10;:12::i;:::-;:33;;;17776:72;17768:81;;;;;;17877:1;17860:14;:18;;;;17907:1;17889:15;:19;;;;17934:1;17919:12;:16;;;;17962:1;17946:13;:17;;;;17727:244::o;1756:::-;1523:12;:10;:12::i;:::-;1513:22;;:6;;;;;;;;;;:22;;;1505:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1865:1:::1;1845:22;;:8;:22;;;;1837:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;1955:8;1926:38;;1947:6;::::0;::::1;;;;;;;;1926:38;;;;;;;;;;;;1984:8;1975:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;1756:244:::0;:::o;145:98::-;198:7;225:10;218:17;;145:98;:::o;8883:369::-;9027:1;9010:19;;:5;:19;;;;9002:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9108:1;9089:21;;:7;:21;;;;9081:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9190:6;9160:11;:18;9172:5;9160:18;;;;;;;;;;;;;;;:27;9179:7;9160:27;;;;;;;;;;;;;;;:36;;;;9228:7;9212:32;;9221:5;9212:32;;;9237:6;9212:32;;;;;;:::i;:::-;;;;;;;;8883:369;;;:::o;9260:2373::-;9398:1;9382:18;;:4;:18;;;;9374:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9475:1;9461:16;;:2;:16;;;;9453:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9545:1;9536:6;:10;9528:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;9617:7;:5;:7::i;:::-;9609:15;;:4;:15;;;;:32;;;;;9634:7;:5;:7::i;:::-;9628:13;;:2;:13;;;;9609:32;9605:1259;;;9698:11;;;;;;;;;;;9693:144;;9746:7;:5;:7::i;:::-;9738:15;;:4;:15;;;9730:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;9693:144;9871:12;;9861:6;:22;;9853:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;9940:4;:10;9945:4;9940:10;;;;;;;;;;;;;;;;;;;;;;;;;9939:11;:24;;;;;9955:4;:8;9960:2;9955:8;;;;;;;;;;;;;;;;;;;;;;;;;9954:9;9939:24;9931:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10029:13;;;;;;;;;;;10023:19;;:2;:19;;;10020:146;;10096:14;;10087:6;10071:13;10081:2;10071:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10063:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10020:146;10182:28;10213:24;10231:4;10213:9;:24::i;:::-;10182:55;;10252:12;10291:19;;10267:20;:43;;10252:58;;10354:12;;10330:20;:36;10327:124;;10423:12;;10400:35;;10327:124;10471:7;:18;;;;;10483:6;;;;;;;;;;10482:7;10471:18;:43;;;;;10501:13;;;;;;;;;;;10493:21;;:4;:21;;;;10471:43;:58;;;;;10518:11;;;;;;;;;;;10471:58;:87;;;;;10534:18;:24;10553:4;10534:24;;;;;;;;;;;;;;;;;;;;;;;;;10533:25;10471:87;:114;;;;;10563:18;:22;10582:2;10563:22;;;;;;;;;;;;;;;;;;;;;;;;;10562:23;10471:114;10467:386;;;10606:38;10623:20;10606:16;:38::i;:::-;10663:26;10692:21;10663:50;;10757:1;10736:18;:22;10732:106;;;10783:35;10796:21;10783:12;:35::i;:::-;10732:106;10587:266;10467:386;9643:1221;;9605:1259;10876:12;10891:4;10876:19;;10940:18;:24;10959:4;10940:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;10968:18;:22;10987:2;10968:22;;;;;;;;;;;;;;;;;;;;;;;;;10940:50;10939:102;;;;11004:13;;;;;;;;;;;10996:21;;:4;:21;;;;:44;;;;;11027:13;;;;;;;;;;;11021:19;;:2;:19;;;;10996:44;10939:102;10935:637;;;11068:5;11058:15;;10935:637;;;11151:13;;;;;;;;;;;11143:21;;:4;:21;;;:55;;;;;11182:15;;;;;;;;;;;11168:30;;:2;:30;;;;11143:55;11140:162;;;11231:14;;11219:9;:26;;;;11274:12;;11264:7;:22;;;;11140:162;11361:13;;;;;;;;;;;11355:19;;:2;:19;;;:55;;;;;11394:15;;;;;;;;;;;11378:32;;:4;:32;;;;11355:55;11351:208;;;11453:1;11439:13;;:15;11431:24;;;;;;11486:15;;11474:9;:27;;;;11530:13;;11520:7;:23;;;;11351:208;10935:637;11584:41;11599:4;11605:2;11609:6;11617:7;11584:14;:41::i;:::-;9363:2270;9260:2373;;;:::o;2364:224::-;2484:7;2517:1;2512;:6;;2520:12;2504:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2544:9;2560:1;2556;:5;;;;:::i;:::-;2544:17;;2579:1;2572:8;;;2364:224;;;;;:::o;12132:163::-;12189:17;;;;;;;;;;;:26;;:36;12223:1;12216:6;:8;;;;:::i;:::-;12189:36;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12236:19;;;;;;;;;;;:28;;:51;12265:21;12236:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12132:163;:::o;8200:323::-;8295:7;8353;;8342;:18;;8320:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;8441:19;8463:10;:8;:10::i;:::-;8441:32;;8491:24;8503:11;8491:7;:11;;:24;;;;:::i;:::-;8484:31;;;8200:323;;;:::o;11641:483::-;5921:4;5912:6;;:13;;;;;;;;;;;;;;;;;;11719:21:::1;11757:1;11743:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11719:40;;11788:4;11770;11775:1;11770:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;11814:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11804:4;11809:1;11804:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;11847:62;11864:4;11879:15;;;;;;;;;;;11897:11;11847:8;:62::i;:::-;11920:15;;;;;;;;;;;:66;;;12001:11;12027:1;12043:4;12070;12090:15;11920:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;11708:416;5957:5:::0;5948:6;;:14;;;;;;;;;;;;;;;;;;11641:483;:::o;12909:282::-;13065:7;13060:28;;13074:14;:12;:14::i;:::-;13060:28;13099:44;13117:6;13125:9;13136:6;13099:17;:44::i;:::-;13159:7;13154:29;;13168:15;:13;:15::i;:::-;13154:29;12909:282;;;;:::o;15870:164::-;15912:7;15933:15;15950;15969:19;:17;:19::i;:::-;15932:56;;;;16006:20;16018:7;16006;:11;;:20;;;;:::i;:::-;15999:27;;;;15870:164;:::o;2850:132::-;2908:7;2935:39;2939:1;2942;2935:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2928:46;;2850:132;;;;:::o;8531:219::-;8591:1;8578:9;;:14;:30;;;;;8607:1;8596:7;;:12;8578:30;8574:43;;;8610:7;;8574:43;8649:9;;8629:17;:29;;;;8687:7;;8669:15;:25;;;;8719:1;8707:9;:13;;;;8741:1;8731:7;:11;;;;8531:219;:::o;13199:610::-;13346:15;13376:23;13414:12;13441:23;13479:12;13506:13;13533:19;13544:7;13533:10;:19::i;:::-;13331:221;;;;;;;;;;;;13581:28;13601:7;13581;:15;13589:6;13581:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;13563:7;:15;13571:6;13563:15;;;;;;;;;;;;;;;:46;;;;13641:39;13664:15;13641:7;:18;13649:9;13641:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;13620:7;:18;13628:9;13620:18;;;;;;;;;;;;;;;:60;;;;13691:16;13701:5;13691:9;:16::i;:::-;13718:23;13730:4;13736;13718:11;:23::i;:::-;13774:9;13757:44;;13766:6;13757:44;;;13785:15;13757:44;;;;;;:::i;:::-;;;;;;;;13320:489;;;;;;13199:610;;;:::o;8758:117::-;8814:17;;8802:9;:29;;;;8852:15;;8842:7;:25;;;;8758:117::o;16042:257::-;16093:7;16102;16122:15;16140:7;;16122:25;;16158:15;4677:16;16158:25;;16208:20;4677:16;16208:7;;:11;;:20;;;;:::i;:::-;16198:7;:30;16194:61;;;16238:7;;4677:16;16230:25;;;;;;;;16194:61;16274:7;16283;16266:25;;;;;;16042:257;;;:::o;2990:223::-;3110:7;3142:1;3138;:5;3145:12;3130:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3169:9;3185:1;3181;:5;;;;:::i;:::-;3169:17;;3204:1;3197:8;;;2990:223;;;;;:::o;14228:615::-;14328:7;14350;14372;14394;14416;14438;14474:23;14499:12;14513:13;14543:40;14555:7;14564:9;;14575:7;;14543:11;:40::i;:::-;14473:110;;;;;;14594:19;14616:10;:8;:10::i;:::-;14594:32;;14638:15;14655:23;14680:12;14709:46;14721:7;14730:4;14736:5;14743:11;14709;:46::i;:::-;14637:118;;;;;;14774:7;14783:15;14800:4;14806:15;14823:4;14829:5;14766:69;;;;;;;;;;;;;;;;;;;14228:615;;;;;;;:::o;2220:136::-;2278:7;2305:43;2309:1;2312;2305:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2298:50;;2220:136;;;;:::o;2033:179::-;2091:7;2111:9;2127:1;2123;:5;;;;:::i;:::-;2111:17;;2152:1;2147;:6;;2139:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2203:1;2196:8;;;2033:179;;;;:::o;13817:211::-;13870:19;13892:10;:8;:10::i;:::-;13870:32;;13913:13;13929:22;13939:11;13929:5;:9;;:22;;;;:::i;:::-;13913:38;;13987:33;14014:5;13987:7;:22;14003:4;13987:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;13962:7;:22;13978:4;13962:22;;;;;;;;;;;;;;;:58;;;;13859:169;;13817:211;:::o;14036:147::-;14114:17;14126:4;14114:7;;:11;;:17;;;;:::i;:::-;14104:7;:27;;;;14155:20;14170:4;14155:10;;:14;;:20;;;;:::i;:::-;14142:10;:33;;;;14036:147;;:::o;14851:469::-;15020:7;15042;15064;15099:12;15114:30;15140:3;15114:21;15126:8;15114:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15099:45;;15155:13;15171:28;15195:3;15171:19;15183:6;15171:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;15155:44;;15210:23;15236:28;15258:5;15236:17;15248:4;15236:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15210:54;;15283:15;15300:4;15306:5;15275:37;;;;;;;;;14851:469;;;;;;;:::o;15328:534::-;15522:7;15544;15566;15601:15;15619:24;15631:11;15619:7;:11;;:24;;;;:::i;:::-;15601:42;;15654:12;15669:21;15678:11;15669:4;:8;;:21;;;;:::i;:::-;15654:36;;15701:13;15717:22;15727:11;15717:5;:9;;:22;;;;:::i;:::-;15701:38;;15750:23;15776:28;15798:5;15776:17;15788:4;15776:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;15750:54;;15823:7;15832:15;15849:4;15815:39;;;;;;;;;;15328:534;;;;;;;;:::o;2596:246::-;2654:7;2683:1;2678;:6;2674:47;;;2708:1;2701:8;;;;2674:47;2731:9;2747:1;2743;:5;;;;:::i;:::-;2731:17;;2776:1;2771;2767;:5;;;;:::i;:::-;:10;2759:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;2833:1;2826:8;;;2596:246;;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:60::-;3522:3;3543:5;3536:12;;3494:60;;;:::o;3560:142::-;3610:9;3643:53;3661:34;3670:24;3688:5;3670:24;:::i;:::-;3661:34;:::i;:::-;3643:53;:::i;:::-;3630:66;;3560:142;;;:::o;3708:126::-;3758:9;3791:37;3822:5;3791:37;:::i;:::-;3778:50;;3708:126;;;:::o;3840:152::-;3916:9;3949:37;3980:5;3949:37;:::i;:::-;3936:50;;3840:152;;;:::o;3998:183::-;4111:63;4168:5;4111:63;:::i;:::-;4106:3;4099:76;3998:183;;:::o;4187:274::-;4306:4;4344:2;4333:9;4329:18;4321:26;;4357:97;4451:1;4440:9;4436:17;4427:6;4357:97;:::i;:::-;4187:274;;;;:::o;4467:118::-;4554:24;4572:5;4554:24;:::i;:::-;4549:3;4542:37;4467:118;;:::o;4591:222::-;4684:4;4722:2;4711:9;4707:18;4699:26;;4735:71;4803:1;4792:9;4788:17;4779:6;4735:71;:::i;:::-;4591:222;;;;:::o;4819:619::-;4896:6;4904;4912;4961:2;4949:9;4940:7;4936:23;4932:32;4929:119;;;4967:79;;:::i;:::-;4929:119;5087:1;5112:53;5157:7;5148:6;5137:9;5133:22;5112:53;:::i;:::-;5102:63;;5058:117;5214:2;5240:53;5285:7;5276:6;5265:9;5261:22;5240:53;:::i;:::-;5230:63;;5185:118;5342:2;5368:53;5413:7;5404:6;5393:9;5389:22;5368:53;:::i;:::-;5358:63;;5313:118;4819:619;;;;;:::o;5444:86::-;5479:7;5519:4;5512:5;5508:16;5497:27;;5444:86;;;:::o;5536:112::-;5619:22;5635:5;5619:22;:::i;:::-;5614:3;5607:35;5536:112;;:::o;5654:214::-;5743:4;5781:2;5770:9;5766:18;5758:26;;5794:67;5858:1;5847:9;5843:17;5834:6;5794:67;:::i;:::-;5654:214;;;;:::o;5874:329::-;5933:6;5982:2;5970:9;5961:7;5957:23;5953:32;5950:119;;;5988:79;;:::i;:::-;5950:119;6108:1;6133:53;6178:7;6169:6;6158:9;6154:22;6133:53;:::i;:::-;6123:63;;6079:117;5874:329;;;;:::o;6209:118::-;6296:24;6314:5;6296:24;:::i;:::-;6291:3;6284:37;6209:118;;:::o;6333:222::-;6426:4;6464:2;6453:9;6449:18;6441:26;;6477:71;6545:1;6534:9;6530:17;6521:6;6477:71;:::i;:::-;6333:222;;;;:::o;6561:116::-;6631:21;6646:5;6631:21;:::i;:::-;6624:5;6621:32;6611:60;;6667:1;6664;6657:12;6611:60;6561:116;:::o;6683:133::-;6726:5;6764:6;6751:20;6742:29;;6780:30;6804:5;6780:30;:::i;:::-;6683:133;;;;:::o;6822:323::-;6878:6;6927:2;6915:9;6906:7;6902:23;6898:32;6895:119;;;6933:79;;:::i;:::-;6895:119;7053:1;7078:50;7120:7;7111:6;7100:9;7096:22;7078:50;:::i;:::-;7068:60;;7024:114;6822:323;;;;:::o;7151:329::-;7210:6;7259:2;7247:9;7238:7;7234:23;7230:32;7227:119;;;7265:79;;:::i;:::-;7227:119;7385:1;7410:53;7455:7;7446:6;7435:9;7431:22;7410:53;:::i;:::-;7400:63;;7356:117;7151:329;;;;:::o;7486:765::-;7572:6;7580;7588;7596;7645:3;7633:9;7624:7;7620:23;7616:33;7613:120;;;7652:79;;:::i;:::-;7613:120;7772:1;7797:53;7842:7;7833:6;7822:9;7818:22;7797:53;:::i;:::-;7787:63;;7743:117;7899:2;7925:53;7970:7;7961:6;7950:9;7946:22;7925:53;:::i;:::-;7915:63;;7870:118;8027:2;8053:53;8098:7;8089:6;8078:9;8074:22;8053:53;:::i;:::-;8043:63;;7998:118;8155:2;8181:53;8226:7;8217:6;8206:9;8202:22;8181:53;:::i;:::-;8171:63;;8126:118;7486:765;;;;;;;:::o;8257:117::-;8366:1;8363;8356:12;8380:117;8489:1;8486;8479:12;8503:117;8612:1;8609;8602:12;8643:568;8716:8;8726:6;8776:3;8769:4;8761:6;8757:17;8753:27;8743:122;;8784:79;;:::i;:::-;8743:122;8897:6;8884:20;8874:30;;8927:18;8919:6;8916:30;8913:117;;;8949:79;;:::i;:::-;8913:117;9063:4;9055:6;9051:17;9039:29;;9117:3;9109:4;9101:6;9097:17;9087:8;9083:32;9080:41;9077:128;;;9124:79;;:::i;:::-;9077:128;8643:568;;;;;:::o;9217:698::-;9309:6;9317;9325;9374:2;9362:9;9353:7;9349:23;9345:32;9342:119;;;9380:79;;:::i;:::-;9342:119;9528:1;9517:9;9513:17;9500:31;9558:18;9550:6;9547:30;9544:117;;;9580:79;;:::i;:::-;9544:117;9693:80;9765:7;9756:6;9745:9;9741:22;9693:80;:::i;:::-;9675:98;;;;9471:312;9822:2;9848:50;9890:7;9881:6;9870:9;9866:22;9848:50;:::i;:::-;9838:60;;9793:115;9217:698;;;;;:::o;9921:474::-;9989:6;9997;10046:2;10034:9;10025:7;10021:23;10017:32;10014:119;;;10052:79;;:::i;:::-;10014:119;10172:1;10197:53;10242:7;10233:6;10222:9;10218:22;10197:53;:::i;:::-;10187:63;;10143:117;10299:2;10325:53;10370:7;10361:6;10350:9;10346:22;10325:53;:::i;:::-;10315:63;;10270:118;9921:474;;;;;:::o;10401:182::-;10541:34;10537:1;10529:6;10525:14;10518:58;10401:182;:::o;10589:366::-;10731:3;10752:67;10816:2;10811:3;10752:67;:::i;:::-;10745:74;;10828:93;10917:3;10828:93;:::i;:::-;10946:2;10941:3;10937:12;10930:19;;10589:366;;;:::o;10961:419::-;11127:4;11165:2;11154:9;11150:18;11142:26;;11214:9;11208:4;11204:20;11200:1;11189:9;11185:17;11178:47;11242:131;11368:4;11242:131;:::i;:::-;11234:139;;10961:419;;;:::o;11386:180::-;11434:77;11431:1;11424:88;11531:4;11528:1;11521:15;11555:4;11552:1;11545:15;11572:180;11620:77;11617:1;11610:88;11717:4;11714:1;11707:15;11741:4;11738:1;11731:15;11758:233;11797:3;11820:24;11838:5;11820:24;:::i;:::-;11811:33;;11866:66;11859:5;11856:77;11853:103;;;11936:18;;:::i;:::-;11853:103;11983:1;11976:5;11972:13;11965:20;;11758:233;;;:::o;11997:225::-;12137:34;12133:1;12125:6;12121:14;12114:58;12206:8;12201:2;12193:6;12189:15;12182:33;11997:225;:::o;12228:366::-;12370:3;12391:67;12455:2;12450:3;12391:67;:::i;:::-;12384:74;;12467:93;12556:3;12467:93;:::i;:::-;12585:2;12580:3;12576:12;12569:19;;12228:366;;;:::o;12600:419::-;12766:4;12804:2;12793:9;12789:18;12781:26;;12853:9;12847:4;12843:20;12839:1;12828:9;12824:17;12817:47;12881:131;13007:4;12881:131;:::i;:::-;12873:139;;12600:419;;;:::o;13025:223::-;13165:34;13161:1;13153:6;13149:14;13142:58;13234:6;13229:2;13221:6;13217:15;13210:31;13025:223;:::o;13254:366::-;13396:3;13417:67;13481:2;13476:3;13417:67;:::i;:::-;13410:74;;13493:93;13582:3;13493:93;:::i;:::-;13611:2;13606:3;13602:12;13595:19;;13254:366;;;:::o;13626:419::-;13792:4;13830:2;13819:9;13815:18;13807:26;;13879:9;13873:4;13869:20;13865:1;13854:9;13850:17;13843:47;13907:131;14033:4;13907:131;:::i;:::-;13899:139;;13626:419;;;:::o;14051:221::-;14191:34;14187:1;14179:6;14175:14;14168:58;14260:4;14255:2;14247:6;14243:15;14236:29;14051:221;:::o;14278:366::-;14420:3;14441:67;14505:2;14500:3;14441:67;:::i;:::-;14434:74;;14517:93;14606:3;14517:93;:::i;:::-;14635:2;14630:3;14626:12;14619:19;;14278:366;;;:::o;14650:419::-;14816:4;14854:2;14843:9;14839:18;14831:26;;14903:9;14897:4;14893:20;14889:1;14878:9;14874:17;14867:47;14931:131;15057:4;14931:131;:::i;:::-;14923:139;;14650:419;;;:::o;15075:224::-;15215:34;15211:1;15203:6;15199:14;15192:58;15284:7;15279:2;15271:6;15267:15;15260:32;15075:224;:::o;15305:366::-;15447:3;15468:67;15532:2;15527:3;15468:67;:::i;:::-;15461:74;;15544:93;15633:3;15544:93;:::i;:::-;15662:2;15657:3;15653:12;15646:19;;15305:366;;;:::o;15677:419::-;15843:4;15881:2;15870:9;15866:18;15858:26;;15930:9;15924:4;15920:20;15916:1;15905:9;15901:17;15894:47;15958:131;16084:4;15958:131;:::i;:::-;15950:139;;15677:419;;;:::o;16102:222::-;16242:34;16238:1;16230:6;16226:14;16219:58;16311:5;16306:2;16298:6;16294:15;16287:30;16102:222;:::o;16330:366::-;16472:3;16493:67;16557:2;16552:3;16493:67;:::i;:::-;16486:74;;16569:93;16658:3;16569:93;:::i;:::-;16687:2;16682:3;16678:12;16671:19;;16330:366;;;:::o;16702:419::-;16868:4;16906:2;16895:9;16891:18;16883:26;;16955:9;16949:4;16945:20;16941:1;16930:9;16926:17;16919:47;16983:131;17109:4;16983:131;:::i;:::-;16975:139;;16702:419;;;:::o;17127:228::-;17267:34;17263:1;17255:6;17251:14;17244:58;17336:11;17331:2;17323:6;17319:15;17312:36;17127:228;:::o;17361:366::-;17503:3;17524:67;17588:2;17583:3;17524:67;:::i;:::-;17517:74;;17600:93;17689:3;17600:93;:::i;:::-;17718:2;17713:3;17709:12;17702:19;;17361:366;;;:::o;17733:419::-;17899:4;17937:2;17926:9;17922:18;17914:26;;17986:9;17980:4;17976:20;17972:1;17961:9;17957:17;17950:47;18014:131;18140:4;18014:131;:::i;:::-;18006:139;;17733:419;;;:::o;18158:250::-;18298:34;18294:1;18286:6;18282:14;18275:58;18367:33;18362:2;18354:6;18350:15;18343:58;18158:250;:::o;18414:366::-;18556:3;18577:67;18641:2;18636:3;18577:67;:::i;:::-;18570:74;;18653:93;18742:3;18653:93;:::i;:::-;18771:2;18766:3;18762:12;18755:19;;18414:366;;;:::o;18786:419::-;18952:4;18990:2;18979:9;18975:18;18967:26;;19039:9;19033:4;19029:20;19025:1;19014:9;19010:17;19003:47;19067:131;19193:4;19067:131;:::i;:::-;19059:139;;18786:419;;;:::o;19211:178::-;19351:30;19347:1;19339:6;19335:14;19328:54;19211:178;:::o;19395:366::-;19537:3;19558:67;19622:2;19617:3;19558:67;:::i;:::-;19551:74;;19634:93;19723:3;19634:93;:::i;:::-;19752:2;19747:3;19743:12;19736:19;;19395:366;;;:::o;19767:419::-;19933:4;19971:2;19960:9;19956:18;19948:26;;20020:9;20014:4;20010:20;20006:1;19995:9;19991:17;19984:47;20048:131;20174:4;20048:131;:::i;:::-;20040:139;;19767:419;;;:::o;20192:222::-;20332:34;20328:1;20320:6;20316:14;20309:58;20401:5;20396:2;20388:6;20384:15;20377:30;20192:222;:::o;20420:366::-;20562:3;20583:67;20647:2;20642:3;20583:67;:::i;:::-;20576:74;;20659:93;20748:3;20659:93;:::i;:::-;20777:2;20772:3;20768:12;20761:19;;20420:366;;;:::o;20792:419::-;20958:4;20996:2;20985:9;20981:18;20973:26;;21045:9;21039:4;21035:20;21031:1;21020:9;21016:17;21009:47;21073:131;21199:4;21073:131;:::i;:::-;21065:139;;20792:419;;;:::o;21217:305::-;21257:3;21276:20;21294:1;21276:20;:::i;:::-;21271:25;;21310:20;21328:1;21310:20;:::i;:::-;21305:25;;21464:1;21396:66;21392:74;21389:1;21386:81;21383:107;;;21470:18;;:::i;:::-;21383:107;21514:1;21511;21507:9;21500:16;;21217:305;;;;:::o;21528:222::-;21668:34;21664:1;21656:6;21652:14;21645:58;21737:5;21732:2;21724:6;21720:15;21713:30;21528:222;:::o;21756:366::-;21898:3;21919:67;21983:2;21978:3;21919:67;:::i;:::-;21912:74;;21995:93;22084:3;21995:93;:::i;:::-;22113:2;22108:3;22104:12;22097:19;;21756:366;;;:::o;22128:419::-;22294:4;22332:2;22321:9;22317:18;22309:26;;22381:9;22375:4;22371:20;22367:1;22356:9;22352:17;22345:47;22409:131;22535:4;22409:131;:::i;:::-;22401:139;;22128:419;;;:::o;22553:191::-;22593:4;22613:20;22631:1;22613:20;:::i;:::-;22608:25;;22647:20;22665:1;22647:20;:::i;:::-;22642:25;;22686:1;22683;22680:8;22677:34;;;22691:18;;:::i;:::-;22677:34;22736:1;22733;22729:9;22721:17;;22553:191;;;;:::o;22750:180::-;22798:77;22795:1;22788:88;22895:4;22892:1;22885:15;22919:4;22916:1;22909:15;22936:185;22976:1;22993:20;23011:1;22993:20;:::i;:::-;22988:25;;23027:20;23045:1;23027:20;:::i;:::-;23022:25;;23066:1;23056:35;;23071:18;;:::i;:::-;23056:35;23113:1;23110;23106:9;23101:14;;22936:185;;;;:::o;23127:229::-;23267:34;23263:1;23255:6;23251:14;23244:58;23336:12;23331:2;23323:6;23319:15;23312:37;23127:229;:::o;23362:366::-;23504:3;23525:67;23589:2;23584:3;23525:67;:::i;:::-;23518:74;;23601:93;23690:3;23601:93;:::i;:::-;23719:2;23714:3;23710:12;23703:19;;23362:366;;;:::o;23734:419::-;23900:4;23938:2;23927:9;23923:18;23915:26;;23987:9;23981:4;23977:20;23973:1;23962:9;23958:17;23951:47;24015:131;24141:4;24015:131;:::i;:::-;24007:139;;23734:419;;;:::o;24159:180::-;24207:77;24204:1;24197:88;24304:4;24301:1;24294:15;24328:4;24325:1;24318:15;24345:143;24402:5;24433:6;24427:13;24418:22;;24449:33;24476:5;24449:33;:::i;:::-;24345:143;;;;:::o;24494:351::-;24564:6;24613:2;24601:9;24592:7;24588:23;24584:32;24581:119;;;24619:79;;:::i;:::-;24581:119;24739:1;24764:64;24820:7;24811:6;24800:9;24796:22;24764:64;:::i;:::-;24754:74;;24710:128;24494:351;;;;:::o;24851:85::-;24896:7;24925:5;24914:16;;24851:85;;;:::o;24942:158::-;25000:9;25033:61;25051:42;25060:32;25086:5;25060:32;:::i;:::-;25051:42;:::i;:::-;25033:61;:::i;:::-;25020:74;;24942:158;;;:::o;25106:147::-;25201:45;25240:5;25201:45;:::i;:::-;25196:3;25189:58;25106:147;;:::o;25259:114::-;25326:6;25360:5;25354:12;25344:22;;25259:114;;;:::o;25379:184::-;25478:11;25512:6;25507:3;25500:19;25552:4;25547:3;25543:14;25528:29;;25379:184;;;;:::o;25569:132::-;25636:4;25659:3;25651:11;;25689:4;25684:3;25680:14;25672:22;;25569:132;;;:::o;25707:108::-;25784:24;25802:5;25784:24;:::i;:::-;25779:3;25772:37;25707:108;;:::o;25821:179::-;25890:10;25911:46;25953:3;25945:6;25911:46;:::i;:::-;25989:4;25984:3;25980:14;25966:28;;25821:179;;;;:::o;26006:113::-;26076:4;26108;26103:3;26099:14;26091:22;;26006:113;;;:::o;26155:732::-;26274:3;26303:54;26351:5;26303:54;:::i;:::-;26373:86;26452:6;26447:3;26373:86;:::i;:::-;26366:93;;26483:56;26533:5;26483:56;:::i;:::-;26562:7;26593:1;26578:284;26603:6;26600:1;26597:13;26578:284;;;26679:6;26673:13;26706:63;26765:3;26750:13;26706:63;:::i;:::-;26699:70;;26792:60;26845:6;26792:60;:::i;:::-;26782:70;;26638:224;26625:1;26622;26618:9;26613:14;;26578:284;;;26582:14;26878:3;26871:10;;26279:608;;;26155:732;;;;:::o;26893:831::-;27156:4;27194:3;27183:9;27179:19;27171:27;;27208:71;27276:1;27265:9;27261:17;27252:6;27208:71;:::i;:::-;27289:80;27365:2;27354:9;27350:18;27341:6;27289:80;:::i;:::-;27416:9;27410:4;27406:20;27401:2;27390:9;27386:18;27379:48;27444:108;27547:4;27538:6;27444:108;:::i;:::-;27436:116;;27562:72;27630:2;27619:9;27615:18;27606:6;27562:72;:::i;:::-;27644:73;27712:3;27701:9;27697:19;27688:6;27644:73;:::i;:::-;26893:831;;;;;;;;:::o;27730:177::-;27870:29;27866:1;27858:6;27854:14;27847:53;27730:177;:::o;27913:366::-;28055:3;28076:67;28140:2;28135:3;28076:67;:::i;:::-;28069:74;;28152:93;28241:3;28152:93;:::i;:::-;28270:2;28265:3;28261:12;28254:19;;27913:366;;;:::o;28285:419::-;28451:4;28489:2;28478:9;28474:18;28466:26;;28538:9;28532:4;28528:20;28524:1;28513:9;28509:17;28502:47;28566:131;28692:4;28566:131;:::i;:::-;28558:139;;28285:419;;;:::o;28710:348::-;28750:7;28773:20;28791:1;28773:20;:::i;:::-;28768:25;;28807:20;28825:1;28807:20;:::i;:::-;28802:25;;28995:1;28927:66;28923:74;28920:1;28917:81;28912:1;28905:9;28898:17;28894:105;28891:131;;;29002:18;;:::i;:::-;28891:131;29050:1;29047;29043:9;29032:20;;28710:348;;;;:::o;29064:220::-;29204:34;29200:1;29192:6;29188:14;29181:58;29273:3;29268:2;29260:6;29256:15;29249:28;29064:220;:::o;29290:366::-;29432:3;29453:67;29517:2;29512:3;29453:67;:::i;:::-;29446:74;;29529:93;29618:3;29529:93;:::i;:::-;29647:2;29642:3;29638:12;29631:19;;29290:366;;;:::o;29662:419::-;29828:4;29866:2;29855:9;29851:18;29843:26;;29915:9;29909:4;29905:20;29901:1;29890:9;29886:17;29879:47;29943:131;30069:4;29943:131;:::i;:::-;29935:139;;29662:419;;;:::o

Swarm Source

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