ETH Price: $3,258.75 (-0.31%)

Token

NEIRO RUNNER (NEIRUN)
 

Overview

Max Total Supply

10,000,000 NEIRUN

Holders

84

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
28,372.829404585782405974 NEIRUN

Value
$0.00
0x31c7C952BdB91009F22Ccd5686b8eFCc47E44b2B
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:
NEIRUN

Compiler Version
v0.8.26+commit.8a97fa7a

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

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

/**
NEIRO RUNNER 

Welcome to the first-ever bet-to-win game inspired by Neiro, the new pup shaking up the ETH community! 

Website: https://neirorunner.com
Docs: https://docs.neirorunner.com/
Twitter: https://x.com/NeiroRunner
Airdrop Instructions: https://docs.neirorunner.com/all-you-need-to-know/airdrop-referral-system
Join Referral: t.me/neiro_runner_cashier_bot

*/

// SPDX-License-Identifier: Unlicensed
pragma solidity ^0.8.9;
 
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}
 
interface IERC20 {
    function totalSupply() external view returns (uint256);
 
    function balanceOf(address account) external view returns (uint256);
 
    function transfer(address recipient, uint256 amount) external returns (bool);
 
    function allowance(address owner, address spender) external view returns (uint256);
 
    function approve(address spender, uint256 amount) external returns (bool);
 
    function transferFrom(
        address sender,
        address recipient,
        uint256 amount
    ) external returns (bool);
 
    event Transfer(address indexed from, address indexed to, uint256 value);
    event Approval(
        address indexed owner,
        address indexed spender,
        uint256 value
    );
}
 
contract Ownable is Context {
    address private _owner;
    address private _previousOwner;
    event OwnershipTransferred(
        address indexed previousOwner,
        address indexed newOwner
    );
 
    constructor() {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }
 
    function owner() public view returns (address) {
        return _owner;
    }
 
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
 
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
 
}
 
library SafeMath {
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");
        return c;
    }
 
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }
 
    function sub(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;
        return c;
    }
 
    function mul(uint256 a, uint256 b) internal pure returns (uint256) {
        if (a == 0) {
            return 0;
        }
        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");
        return c;
    }
 
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }
 
    function div(
        uint256 a,
        uint256 b,
        string memory errorMessage
    ) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        return c;
    }
}
 
interface IUniswapV2Factory {
    function createPair(address tokenA, address tokenB)
        external
        returns (address pair);
}
 
interface IUniswapV2Router02 {
    function swapExactTokensForETHSupportingFeeOnTransferTokens(
        uint256 amountIn,
        uint256 amountOutMin,
        address[] calldata path,
        address to,
        uint256 deadline
    ) external;
 
    function factory() external pure returns (address);
 
    function WETH() external pure returns (address);
 
    function addLiquidityETH(
        address token,
        uint256 amountTokenDesired,
        uint256 amountTokenMin,
        uint256 amountETHMin,
        address to,
        uint256 deadline
    )
        external
        payable
        returns (
            uint256 amountToken,
            uint256 amountETH,
            uint256 liquidity
        );
}
 
contract NEIRUN is Context, IERC20, Ownable {
 
    using SafeMath for uint256;
 
    string private constant _name = "NEIRO RUNNER";
    string private constant _symbol = "NEIRUN";
    uint8 private constant _decimals = 18;
 
    mapping(address => uint256) private _rOwned;
    mapping(address => uint256) private _tOwned;
    mapping(address => mapping(address => uint256)) private _allowances;
    mapping(address => bool) private _isExcludedFromFee;
    uint256 private constant MAX = ~uint256(0);
    uint256 private constant _tTotal = 10000000 * 10 ** _decimals;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;
    uint256 private _redisFeeOnBuy = 0;  
    uint256 private _taxFeeOnBuy = 0;  
    uint256 private _redisFeeOnSell = 0;  
    uint256 private _taxFeeOnSell = 0;
 
    //Original Fee
    uint256 private _redisFee = _redisFeeOnSell;
    uint256 private _taxFee = _taxFeeOnSell;
 
    uint256 private _previousredisFee = _redisFee;
    uint256 private _previoustaxFee = _taxFee;
 
    mapping(address => bool) public bots; 
    mapping (address => uint256) public _buyMap;
    
    address payable private _marketingAddress = payable(0x2761450680D7E639c9dBD1702563cC17Bd0eea48);
    address payable private _depositGameAddress = payable(0x32207504bC44D6CC742fc0aFDD14aeC51bcc1200);
    address payable private _withdrawGameAddress = payable(0x9f05B090556C9d168C07766c7Bd65a148dDEe8AD);
    address payable private _poolGameAddress = payable(0x3FA0f7870Ccec375A7a0e4C00090F20182caf7d9);
 
    IUniswapV2Router02 public uniswapV2Router;
    address public uniswapV2Pair;
 
    bool private tradingOpen = false;
    bool private inSwap = false;
    bool private swapEnabled = true;
 
    uint256 public _maxTxAmount = 100000 * 10 ** _decimals; 
    uint256 public _maxWalletSize = 100000 * 10 ** _decimals; 
    uint256 public _swapTokensAtAmount = 100 * 10 ** _decimals;
 
    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[_marketingAddress] = true;
        _isExcludedFromFee[_depositGameAddress] = true;
        _isExcludedFromFee[_withdrawGameAddress] = true;
        _isExcludedFromFee[_poolGameAddress] = 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)) {
                _redisFee = _redisFeeOnSell;
                _taxFee = _taxFeeOnSell;
            }
 
        }
 
        _tokenTransfer(from, to, amount, takeFee);
    }
 
    function swapTokensForEth(uint256 tokenAmount) private lockTheSwap {
        address[] memory path = new address[](2);
        path[0] = address(this);
        path[1] = uniswapV2Router.WETH();
        _approve(address(this), address(uniswapV2Router), tokenAmount);
        uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens(
            tokenAmount,
            0,
            path,
            address(this),
            block.timestamp
        );
    }
 
    function sendETHToFee(uint256 amount) private {
        _marketingAddress.transfer(amount);
    }
 
    function setTrading(bool _tradingOpen) public onlyOwner {
        tradingOpen = _tradingOpen;
    }
 
    function manualswap() external {
        require(_msgSender() == _marketingAddress);
        uint256 contractBalance = balanceOf(address(this));
        swapTokensForEth(contractBalance);
    }
 
    function manualsend() external {
        require(_msgSender() == _marketingAddress);
        uint256 contractETHBalance = address(this).balance;
        sendETHToFee(contractETHBalance);
    }
 
    function blockBots(address[] memory bots_) public onlyOwner {
        for (uint256 i = 0; i < bots_.length; i++) {
            bots[bots_[i]] = true;
        }
    }
 
    function unblockBot(address notbot) public onlyOwner {
        bots[notbot] = false;
    }
 
    function _tokenTransfer(
        address sender,
        address recipient,
        uint256 amount,
        bool takeFee
    ) private {
        if (!takeFee) removeAllFee();
        _transferStandard(sender, recipient, amount);
        if (!takeFee) restoreAllFee();
    }
 
    function _transferStandard(
        address sender,
        address recipient,
        uint256 tAmount
    ) private {
        (
            uint256 rAmount,
            uint256 rTransferAmount,
            uint256 rFee,
            uint256 tTransferAmount,
            uint256 tFee,
            uint256 tTeam
        ) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rOwned[recipient] = _rOwned[recipient].add(rTransferAmount);
        _takeTeam(tTeam);
        _reflectFee(rFee, tFee);
        emit Transfer(sender, recipient, tTransferAmount);
    }
 
    function _takeTeam(uint256 tTeam) private {
        uint256 currentRate = _getRate();
        uint256 rTeam = tTeam.mul(currentRate);
        _rOwned[address(this)] = _rOwned[address(this)].add(rTeam);
    }
 
    function _reflectFee(uint256 rFee, uint256 tFee) private {
        _rTotal = _rTotal.sub(rFee);
        _tFeeTotal = _tFeeTotal.add(tFee);
    }
 
    receive() external payable {}
 
    function _getValues(uint256 tAmount)
        private
        view
        returns (
            uint256,
            uint256,
            uint256,
            uint256,
            uint256,
            uint256
        )
    {
        (uint256 tTransferAmount, uint256 tFee, uint256 tTeam) =
            _getTValues(tAmount, _redisFee, _taxFee);
        uint256 currentRate = _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) =
            _getRValues(tAmount, tFee, tTeam, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee, tTeam);
    }
 
    function _getTValues(
        uint256 tAmount,
        uint256 redisFee,
        uint256 taxFee
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 tFee = tAmount.mul(redisFee).div(100);
        uint256 tTeam = tAmount.mul(taxFee).div(100);
        uint256 tTransferAmount = tAmount.sub(tFee).sub(tTeam);
        return (tTransferAmount, tFee, tTeam);
    }
 
    function _getRValues(
        uint256 tAmount,
        uint256 tFee,
        uint256 tTeam,
        uint256 currentRate
    )
        private
        pure
        returns (
            uint256,
            uint256,
            uint256
        )
    {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTeam = tTeam.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee).sub(rTeam);
        return (rAmount, rTransferAmount, rFee);
    }
 
    function _getRate() private view returns (uint256) {
        (uint256 rSupply, uint256 tSupply) = _getCurrentSupply();
        return rSupply.div(tSupply);
    }
 
    function _getCurrentSupply() private view returns (uint256, uint256) {
        uint256 rSupply = _rTotal;
        uint256 tSupply = _tTotal;
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }
 
    function setFee(uint256 redisFeeOnBuy, uint256 redisFeeOnSell, uint256 taxFeeOnBuy, uint256 taxFeeOnSell) public onlyOwner {
        require(redisFeeOnBuy >= 0 && redisFeeOnBuy <= 4, "Buy rewards must be between 0% and 4%");
        require(taxFeeOnBuy >= 0 && taxFeeOnBuy <= 98, "Buy tax must be between 0% and 98%");
        require(redisFeeOnSell >= 0 && redisFeeOnSell <= 4, "Sell rewards must be between 0% and 4%");
        require(taxFeeOnSell >= 0 && taxFeeOnSell <= 98, "Sell tax must be between 0% and 98%");

        _redisFeeOnBuy = redisFeeOnBuy;
        _redisFeeOnSell = redisFeeOnSell;
        _taxFeeOnBuy = taxFeeOnBuy;
        _taxFeeOnSell = taxFeeOnSell;

    }
 
    //Set minimum tokens required to swap.
    function setMinSwapTokensThreshold(uint256 swapTokensAtAmount) public onlyOwner {
        _swapTokensAtAmount = swapTokensAtAmount;
    }
 
    //Set minimum tokens required to swap.
    function toggleSwap(bool _swapEnabled) public onlyOwner {
        swapEnabled = _swapEnabled;
    }
 
    //Set maximum transaction
    function setMaxTxnAmount(uint256 maxTxAmount) public onlyOwner {
           _maxTxAmount = maxTxAmount;
        
    }
 
    function setMaxWalletSize(uint256 maxWalletSize) public onlyOwner {
        _maxWalletSize = maxWalletSize;
    }
 
    function excludeMultipleAccountsFromFees(address[] calldata accounts, bool excluded) public onlyOwner {
        for(uint256 i = 0; i < accounts.length; i++) {
            _isExcludedFromFee[accounts[i]] = excluded;
        }
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"_maxTxAmount","type":"uint256"}],"name":"MaxTxAmountUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_buyMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"blockBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"bots","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeMultipleAccountsFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualsend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualswap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"redisFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"redisFeeOnSell","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnBuy","type":"uint256"},{"internalType":"uint256","name":"taxFeeOnSell","type":"uint256"}],"name":"setFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxWalletSize","type":"uint256"}],"name":"setMaxWalletSize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"swapTokensAtAmount","type":"uint256"}],"name":"setMinSwapTokensThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_tradingOpen","type":"bool"}],"name":"setTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"bool","name":"_swapEnabled","type":"bool"}],"name":"toggleSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"notbot","type":"address"}],"name":"unblockBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]

60806040526012600a6100129190610a10565b629896806100209190610a5a565b5f1961002c9190610ac8565b5f196100389190610af8565b6006555f6008555f6009555f600a555f600b55600a54600c55600b54600d55600c54600e55600d54600f55732761450680d7e639c9dbd1702563cc17bd0eea4860125f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507332207504bc44d6cc742fc0afdd14aec51bcc120060135f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550739f05b090556c9d168c07766c7bd65a148ddee8ad60145f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550733fa0f7870ccec375a7a0e4c00090f20182caf7d960155f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f601760146101000a81548160ff0219169083151502179055505f601760156101000a81548160ff0219169083151502179055506001601760166101000a81548160ff0219169083151502179055506012600a6102109190610a10565b620186a061021e9190610a5a565b6018556012600a61022f9190610a10565b620186a061023d9190610a5a565b6019556012600a61024e9190610a10565b606461025a9190610a5a565b601a55348015610268575f80fd5b505f61027861087160201b60201c565b9050805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460025f61032861087160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508060165f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610406573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061042a9190610b89565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801561048f573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104b39190610b89565b6040518363ffffffff1660e01b81526004016104d0929190610bc3565b6020604051808303815f875af11580156104ec573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105109190610b89565b60175f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160055f61056261087860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60135f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60145f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160055f60155f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055506107ec61087160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6012600a6108489190610a10565b629896806108569190610a5a565b6040516108639190610bf9565b60405180910390a350610c12565b5f33905090565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115610921578086048111156108fd576108fc61089f565b5b600185161561090c5780820291505b808102905061091a856108cc565b94506108e1565b94509492505050565b5f8261093957600190506109f4565b81610946575f90506109f4565b816001811461095c576002811461096657610995565b60019150506109f4565b60ff8411156109785761097761089f565b5b8360020a91508482111561098f5761098e61089f565b5b506109f4565b5060208310610133831016604e8410600b84101617156109ca5782820a9050838111156109c5576109c461089f565b5b6109f4565b6109d784848460016108d8565b925090508184048111156109ee576109ed61089f565b5b81810290505b9392505050565b5f819050919050565b5f60ff82169050919050565b5f610a1a826109fb565b9150610a2583610a04565b9250610a527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461092a565b905092915050565b5f610a64826109fb565b9150610a6f836109fb565b9250828202610a7d816109fb565b91508282048414831517610a9457610a9361089f565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f610ad2826109fb565b9150610add836109fb565b925082610aed57610aec610a9b565b5b828206905092915050565b5f610b02826109fb565b9150610b0d836109fb565b9250828203905081811115610b2557610b2461089f565b5b92915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610b5882610b2f565b9050919050565b610b6881610b4e565b8114610b72575f80fd5b50565b5f81519050610b8381610b5f565b92915050565b5f60208284031215610b9e57610b9d610b2b565b5b5f610bab84828501610b75565b91505092915050565b610bbd81610b4e565b82525050565b5f604082019050610bd65f830185610bb4565b610be36020830184610bb4565b9392505050565b610bf3816109fb565b82525050565b5f602082019050610c0c5f830184610bea565b92915050565b61403180610c1f5f395ff3fe6080604052600436106101cf575f3560e01c80637d1db4a5116100f6578063a2a957bb11610094578063c492f04611610063578063c492f04614610640578063dd62ed3e14610668578063ea1644d5146106a4578063f2fde38b146106cc576101d6565b8063a2a957bb1461058a578063a9059cbb146105b2578063bfd79284146105ee578063c3c8cd801461062a576101d6565b80638f70ccf7116100d05780638f70ccf7146104e65780638f9a55c01461050e57806395d89b411461053857806398a5c31514610562576101d6565b80637d1db4a5146104565780637f2feddc146104805780638da5cb5b146104bc576101d6565b8063313ce5671161016e5780636fc3eaec1161013d5780636fc3eaec146103c657806370a08231146103dc578063715018a61461041857806374010ece1461042e576101d6565b8063313ce5671461032257806349bd5a5e1461034c5780636b999053146103765780636d8aa8f81461039e576101d6565b80631694505e116101aa5780631694505e1461026857806318160ddd1461029257806323b872dd146102bc5780632fd689e3146102f8576101d6565b8062b8cf2a146101da57806306fdde0314610202578063095ea7b31461022c576101d6565b366101d657005b5f80fd5b3480156101e5575f80fd5b5061020060048036038101906101fb9190612d35565b6106f4565b005b34801561020d575f80fd5b50610216610813565b6040516102239190612ddc565b60405180910390f35b348015610237575f80fd5b50610252600480360381019061024d9190612e2f565b610850565b60405161025f9190612e87565b60405180910390f35b348015610273575f80fd5b5061027c61086d565b6040516102899190612efb565b60405180910390f35b34801561029d575f80fd5b506102a6610892565b6040516102b39190612f23565b60405180910390f35b3480156102c7575f80fd5b506102e260048036038101906102dd9190612f3c565b6108b4565b6040516102ef9190612e87565b60405180910390f35b348015610303575f80fd5b5061030c610988565b6040516103199190612f23565b60405180910390f35b34801561032d575f80fd5b5061033661098e565b6040516103439190612fa7565b60405180910390f35b348015610357575f80fd5b50610360610996565b60405161036d9190612fcf565b60405180910390f35b348015610381575f80fd5b5061039c60048036038101906103979190612fe8565b6109bb565b005b3480156103a9575f80fd5b506103c460048036038101906103bf919061303d565b610aa6565b005b3480156103d1575f80fd5b506103da610b57565b005b3480156103e7575f80fd5b5061040260048036038101906103fd9190612fe8565b610bc6565b60405161040f9190612f23565b60405180910390f35b348015610423575f80fd5b5061042c610c14565b005b348015610439575f80fd5b50610454600480360381019061044f9190613068565b610d62565b005b348015610461575f80fd5b5061046a610e00565b6040516104779190612f23565b60405180910390f35b34801561048b575f80fd5b506104a660048036038101906104a19190612fe8565b610e06565b6040516104b39190612f23565b60405180910390f35b3480156104c7575f80fd5b506104d0610e1b565b6040516104dd9190612fcf565b60405180910390f35b3480156104f1575f80fd5b5061050c6004803603810190610507919061303d565b610e42565b005b348015610519575f80fd5b50610522610ef3565b60405161052f9190612f23565b60405180910390f35b348015610543575f80fd5b5061054c610ef9565b6040516105599190612ddc565b60405180910390f35b34801561056d575f80fd5b5061058860048036038101906105839190613068565b610f36565b005b348015610595575f80fd5b506105b060048036038101906105ab9190613093565b610fd4565b005b3480156105bd575f80fd5b506105d860048036038101906105d39190612e2f565b6111ca565b6040516105e59190612e87565b60405180910390f35b3480156105f9575f80fd5b50610614600480360381019061060f9190612fe8565b6111e7565b6040516106219190612e87565b60405180910390f35b348015610635575f80fd5b5061063e611204565b005b34801561064b575f80fd5b5061066660048036038101906106619190613150565b61127b565b005b348015610673575f80fd5b5061068e600480360381019061068991906131ad565b6113aa565b60405161069b9190612f23565b60405180910390f35b3480156106af575f80fd5b506106ca60048036038101906106c59190613068565b61142c565b005b3480156106d7575f80fd5b506106f260048036038101906106ed9190612fe8565b6114ca565b005b6106fc611687565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610788576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077f90613235565b60405180910390fd5b5f5b815181101561080f57600160105f8484815181106107ab576107aa613253565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061078a565b5050565b60606040518060400160405280600c81526020017f4e4549524f2052554e4e45520000000000000000000000000000000000000000815250905090565b5f61086361085c611687565b848461168e565b6001905092915050565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6012600a6108a191906133dc565b629896806108af9190613426565b905090565b5f6108c0848484611851565b61097d846108cc611687565b61097885604051806060016040528060288152602001613fd46028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61092f611687565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120b39092919063ffffffff16565b61168e565b600190509392505050565b601a5481565b5f6012905090565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109c3611687565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4690613235565b60405180910390fd5b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610aae611687565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3190613235565b60405180910390fd5b80601760166101000a81548160ff02191690831515021790555050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b97611687565b73ffffffffffffffffffffffffffffffffffffffff1614610bb6575f80fd5b5f479050610bc381612115565b50565b5f610c0d60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461217d565b9050919050565b610c1c611687565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9f90613235565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d6a611687565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ded90613235565b60405180910390fd5b8060188190555050565b60185481565b6011602052805f5260405f205f915090505481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610e4a611687565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ed6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecd90613235565b60405180910390fd5b80601760146101000a81548160ff02191690831515021790555050565b60195481565b60606040518060400160405280600681526020017f4e454952554e0000000000000000000000000000000000000000000000000000815250905090565b610f3e611687565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc190613235565b60405180910390fd5b80601a8190555050565b610fdc611687565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611068576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105f90613235565b60405180910390fd5b5f8410158015611079575060048411155b6110b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110af906134d7565b60405180910390fd5b5f82101580156110c9575060628211155b611108576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ff90613565565b60405180910390fd5b5f8310158015611119575060048311155b611158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114f906135f3565b60405180910390fd5b5f8110158015611169575060628111155b6111a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119f90613681565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b5f6111dd6111d6611687565b8484611851565b6001905092915050565b6010602052805f5260405f205f915054906101000a900460ff1681565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611244611687565b73ffffffffffffffffffffffffffffffffffffffff1614611263575f80fd5b5f61126d30610bc6565b9050611278816121e9565b50565b611283611687565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461130f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130690613235565b60405180910390fd5b5f5b838390508110156113a4578160055f86868581811061133357611332613253565b5b90506020020160208101906113489190612fe8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050611311565b50505050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611434611687565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b790613235565b60405180910390fd5b8060198190555050565b6114d2611687565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461155e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155590613235565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c39061370f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f39061379d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361176a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117619061382b565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118449190612f23565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b6906138b9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361192d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192490613947565b60405180910390fd5b5f811161196f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611966906139d5565b60405180910390fd5b611977610e1b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119e557506119b5610e1b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611dc057601760149054906101000a900460ff16611a7457611a06610e1b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6a90613a63565b60405180910390fd5b5b601854811115611ab9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab090613acb565b60405180910390fd5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611b57575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611b96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8d90613b59565b60405180910390fd5b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c425760195481611bf784610bc6565b611c019190613b77565b10611c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3890613c1a565b60405180910390fd5b5b5f611c4c30610bc6565b90505f601a5482101590506018548210611c665760185491505b808015611c805750601760159054906101000a900460ff16155b8015611cd9575060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611cf15750601760169054906101000a900460ff165b8015611d44575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611d97575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611dbd57611da5826121e9565b5f4790505f811115611dbb57611dba47612115565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611e60575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611f11575060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f10575060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611f1e575f90506120a1565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611fc7575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fdf57600854600c81905550600954600d819055505b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612088575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156120a057600a54600c81905550600b54600d819055505b5b6120ad84848484612454565b50505050565b5f8383111582906120fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f19190612ddc565b60405180910390fd5b505f83856121089190613c38565b9050809150509392505050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612179573d5f803e3d5ffd5b5050565b5f6006548211156121c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ba90613cdb565b60405180910390fd5b5f6121cc612481565b90506121e181846124aa90919063ffffffff16565b915050919050565b6001601760156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156122205761221f612b9f565b5b60405190808252806020026020018201604052801561224e5781602001602082028036833780820191505090505b50905030815f8151811061226557612264613253565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612309573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061232d9190613d0d565b8160018151811061234157612340613253565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123a73060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461168e565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612409959493929190613e28565b5f604051808303815f87803b158015612420575f80fd5b505af1158015612432573d5f803e3d5ffd5b50505050505f601760156101000a81548160ff02191690831515021790555050565b80612462576124616124f3565b5b61246d84848461252c565b8061247b5761247a6126ec565b5b50505050565b5f805f61248c612700565b915091506124a381836124aa90919063ffffffff16565b9250505090565b5f6124eb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612795565b905092915050565b5f600c5414801561250557505f600d54145b61252a57600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f8061253b876127f6565b9550955095509550955095506125978660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461285690919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506126288560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289f90919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612672816128fc565b61267c84836129b3565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126d99190612f23565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f60065490505f6012600a61271791906133dc565b629896806127259190613426565b90506127576012600a61273891906133dc565b629896806127469190613426565b6006546124aa90919063ffffffff16565b821015612788576006546012600a61276f91906133dc565b6298968061277d9190613426565b935093505050612791565b81819350935050505b9091565b5f80831182906127db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d29190612ddc565b60405180910390fd5b505f83856127e99190613ead565b9050809150509392505050565b5f805f805f805f805f61280e8a600c54600d546129ed565b9250925092505f61281d612481565b90505f805f61282e8e878787612a7f565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61289783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120b3565b905092915050565b5f8082846128ad9190613b77565b9050838110156128f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e990613f27565b60405180910390fd5b8091505092915050565b5f612905612481565b90505f61291b8284612b0390919063ffffffff16565b905061296d8160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289f90919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b6129c88260065461285690919063ffffffff16565b6006819055506129e38160075461289f90919063ffffffff16565b6007819055505050565b5f805f80612a176064612a09888a612b0390919063ffffffff16565b6124aa90919063ffffffff16565b90505f612a406064612a32888b612b0390919063ffffffff16565b6124aa90919063ffffffff16565b90505f612a6882612a5a858c61285690919063ffffffff16565b61285690919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612a968589612b0390919063ffffffff16565b90505f612aac8689612b0390919063ffffffff16565b90505f612ac28789612b0390919063ffffffff16565b90505f612aea82612adc858761285690919063ffffffff16565b61285690919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612b13575f9050612b74565b5f8284612b209190613426565b9050828482612b2f9190613ead565b14612b6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6690613fb5565b60405180910390fd5b809150505b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612bd582612b8f565b810181811067ffffffffffffffff82111715612bf457612bf3612b9f565b5b80604052505050565b5f612c06612b7a565b9050612c128282612bcc565b919050565b5f67ffffffffffffffff821115612c3157612c30612b9f565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612c6f82612c46565b9050919050565b612c7f81612c65565b8114612c89575f80fd5b50565b5f81359050612c9a81612c76565b92915050565b5f612cb2612cad84612c17565b612bfd565b90508083825260208201905060208402830185811115612cd557612cd4612c42565b5b835b81811015612cfe5780612cea8882612c8c565b845260208401935050602081019050612cd7565b5050509392505050565b5f82601f830112612d1c57612d1b612b8b565b5b8135612d2c848260208601612ca0565b91505092915050565b5f60208284031215612d4a57612d49612b83565b5b5f82013567ffffffffffffffff811115612d6757612d66612b87565b5b612d7384828501612d08565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f612dae82612d7c565b612db88185612d86565b9350612dc8818560208601612d96565b612dd181612b8f565b840191505092915050565b5f6020820190508181035f830152612df48184612da4565b905092915050565b5f819050919050565b612e0e81612dfc565b8114612e18575f80fd5b50565b5f81359050612e2981612e05565b92915050565b5f8060408385031215612e4557612e44612b83565b5b5f612e5285828601612c8c565b9250506020612e6385828601612e1b565b9150509250929050565b5f8115159050919050565b612e8181612e6d565b82525050565b5f602082019050612e9a5f830184612e78565b92915050565b5f819050919050565b5f612ec3612ebe612eb984612c46565b612ea0565b612c46565b9050919050565b5f612ed482612ea9565b9050919050565b5f612ee582612eca565b9050919050565b612ef581612edb565b82525050565b5f602082019050612f0e5f830184612eec565b92915050565b612f1d81612dfc565b82525050565b5f602082019050612f365f830184612f14565b92915050565b5f805f60608486031215612f5357612f52612b83565b5b5f612f6086828701612c8c565b9350506020612f7186828701612c8c565b9250506040612f8286828701612e1b565b9150509250925092565b5f60ff82169050919050565b612fa181612f8c565b82525050565b5f602082019050612fba5f830184612f98565b92915050565b612fc981612c65565b82525050565b5f602082019050612fe25f830184612fc0565b92915050565b5f60208284031215612ffd57612ffc612b83565b5b5f61300a84828501612c8c565b91505092915050565b61301c81612e6d565b8114613026575f80fd5b50565b5f8135905061303781613013565b92915050565b5f6020828403121561305257613051612b83565b5b5f61305f84828501613029565b91505092915050565b5f6020828403121561307d5761307c612b83565b5b5f61308a84828501612e1b565b91505092915050565b5f805f80608085870312156130ab576130aa612b83565b5b5f6130b887828801612e1b565b94505060206130c987828801612e1b565b93505060406130da87828801612e1b565b92505060606130eb87828801612e1b565b91505092959194509250565b5f80fd5b5f8083601f8401126131105761310f612b8b565b5b8235905067ffffffffffffffff81111561312d5761312c6130f7565b5b60208301915083602082028301111561314957613148612c42565b5b9250929050565b5f805f6040848603121561316757613166612b83565b5b5f84013567ffffffffffffffff81111561318457613183612b87565b5b613190868287016130fb565b935093505060206131a386828701613029565b9150509250925092565b5f80604083850312156131c3576131c2612b83565b5b5f6131d085828601612c8c565b92505060206131e185828601612c8c565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61321f602083612d86565b915061322a826131eb565b602082019050919050565b5f6020820190508181035f83015261324c81613213565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115613302578086048111156132de576132dd613280565b5b60018516156132ed5780820291505b80810290506132fb856132ad565b94506132c2565b94509492505050565b5f8261331a57600190506133d5565b81613327575f90506133d5565b816001811461333d576002811461334757613376565b60019150506133d5565b60ff84111561335957613358613280565b5b8360020a9150848211156133705761336f613280565b5b506133d5565b5060208310610133831016604e8410600b84101617156133ab5782820a9050838111156133a6576133a5613280565b5b6133d5565b6133b884848460016132b9565b925090508184048111156133cf576133ce613280565b5b81810290505b9392505050565b5f6133e682612dfc565b91506133f183612f8c565b925061341e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461330b565b905092915050565b5f61343082612dfc565b915061343b83612dfc565b925082820261344981612dfc565b915082820484148315176134605761345f613280565b5b5092915050565b7f4275792072657761726473206d757374206265206265747765656e20302520615f8201527f6e64203425000000000000000000000000000000000000000000000000000000602082015250565b5f6134c1602583612d86565b91506134cc82613467565b604082019050919050565b5f6020820190508181035f8301526134ee816134b5565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e6420395f8201527f3825000000000000000000000000000000000000000000000000000000000000602082015250565b5f61354f602283612d86565b915061355a826134f5565b604082019050919050565b5f6020820190508181035f83015261357c81613543565b9050919050565b7f53656c6c2072657761726473206d757374206265206265747765656e203025205f8201527f616e642034250000000000000000000000000000000000000000000000000000602082015250565b5f6135dd602683612d86565b91506135e882613583565b604082019050919050565b5f6020820190508181035f83015261360a816135d1565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e64205f8201527f3938250000000000000000000000000000000000000000000000000000000000602082015250565b5f61366b602383612d86565b915061367682613611565b604082019050919050565b5f6020820190508181035f8301526136988161365f565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6136f9602683612d86565b91506137048261369f565b604082019050919050565b5f6020820190508181035f830152613726816136ed565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613787602483612d86565b91506137928261372d565b604082019050919050565b5f6020820190508181035f8301526137b48161377b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613815602283612d86565b9150613820826137bb565b604082019050919050565b5f6020820190508181035f83015261384281613809565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6138a3602583612d86565b91506138ae82613849565b604082019050919050565b5f6020820190508181035f8301526138d081613897565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613931602383612d86565b915061393c826138d7565b604082019050919050565b5f6020820190508181035f83015261395e81613925565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6139bf602983612d86565b91506139ca82613965565b604082019050919050565b5f6020820190508181035f8301526139ec816139b3565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f613a4d603f83612d86565b9150613a58826139f3565b604082019050919050565b5f6020820190508181035f830152613a7a81613a41565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f613ab5601c83612d86565b9150613ac082613a81565b602082019050919050565b5f6020820190508181035f830152613ae281613aa9565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f613b43602383612d86565b9150613b4e82613ae9565b604082019050919050565b5f6020820190508181035f830152613b7081613b37565b9050919050565b5f613b8182612dfc565b9150613b8c83612dfc565b9250828201905080821115613ba457613ba3613280565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f613c04602383612d86565b9150613c0f82613baa565b604082019050919050565b5f6020820190508181035f830152613c3181613bf8565b9050919050565b5f613c4282612dfc565b9150613c4d83612dfc565b9250828203905081811115613c6557613c64613280565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613cc5602a83612d86565b9150613cd082613c6b565b604082019050919050565b5f6020820190508181035f830152613cf281613cb9565b9050919050565b5f81519050613d0781612c76565b92915050565b5f60208284031215613d2257613d21612b83565b5b5f613d2f84828501613cf9565b91505092915050565b5f819050919050565b5f613d5b613d56613d5184613d38565b612ea0565b612dfc565b9050919050565b613d6b81613d41565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613da381612c65565b82525050565b5f613db48383613d9a565b60208301905092915050565b5f602082019050919050565b5f613dd682613d71565b613de08185613d7b565b9350613deb83613d8b565b805f5b83811015613e1b578151613e028882613da9565b9750613e0d83613dc0565b925050600181019050613dee565b5085935050505092915050565b5f60a082019050613e3b5f830188612f14565b613e486020830187613d62565b8181036040830152613e5a8186613dcc565b9050613e696060830185612fc0565b613e766080830184612f14565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613eb782612dfc565b9150613ec283612dfc565b925082613ed257613ed1613e80565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613f11601b83612d86565b9150613f1c82613edd565b602082019050919050565b5f6020820190508181035f830152613f3e81613f05565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613f9f602183612d86565b9150613faa82613f45565b604082019050919050565b5f6020820190508181035f830152613fcc81613f93565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200bbb38a32f3fcd5823a3f9e3829be5caac2aaf995f5f877b117aed189ddd841264736f6c634300081a0033

Deployed Bytecode

0x6080604052600436106101cf575f3560e01c80637d1db4a5116100f6578063a2a957bb11610094578063c492f04611610063578063c492f04614610640578063dd62ed3e14610668578063ea1644d5146106a4578063f2fde38b146106cc576101d6565b8063a2a957bb1461058a578063a9059cbb146105b2578063bfd79284146105ee578063c3c8cd801461062a576101d6565b80638f70ccf7116100d05780638f70ccf7146104e65780638f9a55c01461050e57806395d89b411461053857806398a5c31514610562576101d6565b80637d1db4a5146104565780637f2feddc146104805780638da5cb5b146104bc576101d6565b8063313ce5671161016e5780636fc3eaec1161013d5780636fc3eaec146103c657806370a08231146103dc578063715018a61461041857806374010ece1461042e576101d6565b8063313ce5671461032257806349bd5a5e1461034c5780636b999053146103765780636d8aa8f81461039e576101d6565b80631694505e116101aa5780631694505e1461026857806318160ddd1461029257806323b872dd146102bc5780632fd689e3146102f8576101d6565b8062b8cf2a146101da57806306fdde0314610202578063095ea7b31461022c576101d6565b366101d657005b5f80fd5b3480156101e5575f80fd5b5061020060048036038101906101fb9190612d35565b6106f4565b005b34801561020d575f80fd5b50610216610813565b6040516102239190612ddc565b60405180910390f35b348015610237575f80fd5b50610252600480360381019061024d9190612e2f565b610850565b60405161025f9190612e87565b60405180910390f35b348015610273575f80fd5b5061027c61086d565b6040516102899190612efb565b60405180910390f35b34801561029d575f80fd5b506102a6610892565b6040516102b39190612f23565b60405180910390f35b3480156102c7575f80fd5b506102e260048036038101906102dd9190612f3c565b6108b4565b6040516102ef9190612e87565b60405180910390f35b348015610303575f80fd5b5061030c610988565b6040516103199190612f23565b60405180910390f35b34801561032d575f80fd5b5061033661098e565b6040516103439190612fa7565b60405180910390f35b348015610357575f80fd5b50610360610996565b60405161036d9190612fcf565b60405180910390f35b348015610381575f80fd5b5061039c60048036038101906103979190612fe8565b6109bb565b005b3480156103a9575f80fd5b506103c460048036038101906103bf919061303d565b610aa6565b005b3480156103d1575f80fd5b506103da610b57565b005b3480156103e7575f80fd5b5061040260048036038101906103fd9190612fe8565b610bc6565b60405161040f9190612f23565b60405180910390f35b348015610423575f80fd5b5061042c610c14565b005b348015610439575f80fd5b50610454600480360381019061044f9190613068565b610d62565b005b348015610461575f80fd5b5061046a610e00565b6040516104779190612f23565b60405180910390f35b34801561048b575f80fd5b506104a660048036038101906104a19190612fe8565b610e06565b6040516104b39190612f23565b60405180910390f35b3480156104c7575f80fd5b506104d0610e1b565b6040516104dd9190612fcf565b60405180910390f35b3480156104f1575f80fd5b5061050c6004803603810190610507919061303d565b610e42565b005b348015610519575f80fd5b50610522610ef3565b60405161052f9190612f23565b60405180910390f35b348015610543575f80fd5b5061054c610ef9565b6040516105599190612ddc565b60405180910390f35b34801561056d575f80fd5b5061058860048036038101906105839190613068565b610f36565b005b348015610595575f80fd5b506105b060048036038101906105ab9190613093565b610fd4565b005b3480156105bd575f80fd5b506105d860048036038101906105d39190612e2f565b6111ca565b6040516105e59190612e87565b60405180910390f35b3480156105f9575f80fd5b50610614600480360381019061060f9190612fe8565b6111e7565b6040516106219190612e87565b60405180910390f35b348015610635575f80fd5b5061063e611204565b005b34801561064b575f80fd5b5061066660048036038101906106619190613150565b61127b565b005b348015610673575f80fd5b5061068e600480360381019061068991906131ad565b6113aa565b60405161069b9190612f23565b60405180910390f35b3480156106af575f80fd5b506106ca60048036038101906106c59190613068565b61142c565b005b3480156106d7575f80fd5b506106f260048036038101906106ed9190612fe8565b6114ca565b005b6106fc611687565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610788576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161077f90613235565b60405180910390fd5b5f5b815181101561080f57600160105f8484815181106107ab576107aa613253565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061078a565b5050565b60606040518060400160405280600c81526020017f4e4549524f2052554e4e45520000000000000000000000000000000000000000815250905090565b5f61086361085c611687565b848461168e565b6001905092915050565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f6012600a6108a191906133dc565b629896806108af9190613426565b905090565b5f6108c0848484611851565b61097d846108cc611687565b61097885604051806060016040528060288152602001613fd46028913960045f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f61092f611687565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546120b39092919063ffffffff16565b61168e565b600190509392505050565b601a5481565b5f6012905090565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6109c3611687565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a4f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4690613235565b60405180910390fd5b5f60105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff02191690831515021790555050565b610aae611687565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610b3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3190613235565b60405180910390fd5b80601760166101000a81548160ff02191690831515021790555050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610b97611687565b73ffffffffffffffffffffffffffffffffffffffff1614610bb6575f80fd5b5f479050610bc381612115565b50565b5f610c0d60025f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461217d565b9050919050565b610c1c611687565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9f90613235565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f805f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b610d6a611687565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ded90613235565b60405180910390fd5b8060188190555050565b60185481565b6011602052805f5260405f205f915090505481565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610e4a611687565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ed6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ecd90613235565b60405180910390fd5b80601760146101000a81548160ff02191690831515021790555050565b60195481565b60606040518060400160405280600681526020017f4e454952554e0000000000000000000000000000000000000000000000000000815250905090565b610f3e611687565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610fca576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fc190613235565b60405180910390fd5b80601a8190555050565b610fdc611687565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611068576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105f90613235565b60405180910390fd5b5f8410158015611079575060048411155b6110b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110af906134d7565b60405180910390fd5b5f82101580156110c9575060628211155b611108576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ff90613565565b60405180910390fd5b5f8310158015611119575060048311155b611158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114f906135f3565b60405180910390fd5b5f8110158015611169575060628111155b6111a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119f90613681565b60405180910390fd5b8360088190555082600a819055508160098190555080600b8190555050505050565b5f6111dd6111d6611687565b8484611851565b6001905092915050565b6010602052805f5260405f205f915054906101000a900460ff1681565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16611244611687565b73ffffffffffffffffffffffffffffffffffffffff1614611263575f80fd5b5f61126d30610bc6565b9050611278816121e9565b50565b611283611687565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461130f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130690613235565b60405180910390fd5b5f5b838390508110156113a4578160055f86868581811061133357611332613253565b5b90506020020160208101906113489190612fe8565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050611311565b50505050565b5f60045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b611434611687565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114b790613235565b60405180910390fd5b8060198190555050565b6114d2611687565b73ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461155e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161155590613235565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036115cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c39061370f565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f39061379d565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361176a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117619061382b565b60405180910390fd5b8060045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516118449190612f23565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b6906138b9565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361192d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161192490613947565b60405180910390fd5b5f811161196f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611966906139d5565b60405180910390fd5b611977610e1b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156119e557506119b5610e1b565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611dc057601760149054906101000a900460ff16611a7457611a06610e1b565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614611a73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6a90613a63565b60405180910390fd5b5b601854811115611ab9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab090613acb565b60405180910390fd5b60105f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16158015611b57575060105f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b611b96576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8d90613b59565b60405180910390fd5b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611c425760195481611bf784610bc6565b611c019190613b77565b10611c41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3890613c1a565b60405180910390fd5b5b5f611c4c30610bc6565b90505f601a5482101590506018548210611c665760185491505b808015611c805750601760159054906101000a900460ff16155b8015611cd9575060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015611cf15750601760169054906101000a900460ff165b8015611d44575060055f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611d97575060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611dbd57611da5826121e9565b5f4790505f811115611dbb57611dba47612115565b5b505b50505b5f6001905060055f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680611e60575060055f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b80611f11575060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614158015611f10575060175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b5b15611f1e575f90506120a1565b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148015611fc7575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611fdf57600854600c81905550600954600d819055505b60175f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148015612088575060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b156120a057600a54600c81905550600b54600d819055505b5b6120ad84848484612454565b50505050565b5f8383111582906120fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f19190612ddc565b60405180910390fd5b505f83856121089190613c38565b9050809150509392505050565b60125f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc8290811502906040515f60405180830381858888f19350505050158015612179573d5f803e3d5ffd5b5050565b5f6006548211156121c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121ba90613cdb565b60405180910390fd5b5f6121cc612481565b90506121e181846124aa90919063ffffffff16565b915050919050565b6001601760156101000a81548160ff0219169083151502179055505f600267ffffffffffffffff8111156122205761221f612b9f565b5b60405190808252806020026020018201604052801561224e5781602001602082028036833780820191505090505b50905030815f8151811061226557612264613253565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612309573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061232d9190613d0d565b8160018151811061234157612340613253565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506123a73060165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168461168e565b60165f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612409959493929190613e28565b5f604051808303815f87803b158015612420575f80fd5b505af1158015612432573d5f803e3d5ffd5b50505050505f601760156101000a81548160ff02191690831515021790555050565b80612462576124616124f3565b5b61246d84848461252c565b8061247b5761247a6126ec565b5b50505050565b5f805f61248c612700565b915091506124a381836124aa90919063ffffffff16565b9250505090565b5f6124eb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612795565b905092915050565b5f600c5414801561250557505f600d54145b61252a57600c54600e81905550600d54600f819055505f600c819055505f600d819055505b565b5f805f805f8061253b876127f6565b9550955095509550955095506125978660025f8c73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461285690919063ffffffff16565b60025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055506126288560025f8b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289f90919063ffffffff16565b60025f8a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550612672816128fc565b61267c84836129b3565b8773ffffffffffffffffffffffffffffffffffffffff168973ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef856040516126d99190612f23565b60405180910390a3505050505050505050565b600e54600c81905550600f54600d81905550565b5f805f60065490505f6012600a61271791906133dc565b629896806127259190613426565b90506127576012600a61273891906133dc565b629896806127469190613426565b6006546124aa90919063ffffffff16565b821015612788576006546012600a61276f91906133dc565b6298968061277d9190613426565b935093505050612791565b81819350935050505b9091565b5f80831182906127db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127d29190612ddc565b60405180910390fd5b505f83856127e99190613ead565b9050809150509392505050565b5f805f805f805f805f61280e8a600c54600d546129ed565b9250925092505f61281d612481565b90505f805f61282e8e878787612a7f565b9250925092508282828989899c509c509c509c509c509c505050505050505091939550919395565b5f61289783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506120b3565b905092915050565b5f8082846128ad9190613b77565b9050838110156128f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128e990613f27565b60405180910390fd5b8091505092915050565b5f612905612481565b90505f61291b8284612b0390919063ffffffff16565b905061296d8160025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205461289f90919063ffffffff16565b60025f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505050565b6129c88260065461285690919063ffffffff16565b6006819055506129e38160075461289f90919063ffffffff16565b6007819055505050565b5f805f80612a176064612a09888a612b0390919063ffffffff16565b6124aa90919063ffffffff16565b90505f612a406064612a32888b612b0390919063ffffffff16565b6124aa90919063ffffffff16565b90505f612a6882612a5a858c61285690919063ffffffff16565b61285690919063ffffffff16565b905080838395509550955050505093509350939050565b5f805f80612a968589612b0390919063ffffffff16565b90505f612aac8689612b0390919063ffffffff16565b90505f612ac28789612b0390919063ffffffff16565b90505f612aea82612adc858761285690919063ffffffff16565b61285690919063ffffffff16565b9050838184965096509650505050509450945094915050565b5f808303612b13575f9050612b74565b5f8284612b209190613426565b9050828482612b2f9190613ead565b14612b6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b6690613fb5565b60405180910390fd5b809150505b92915050565b5f604051905090565b5f80fd5b5f80fd5b5f80fd5b5f601f19601f8301169050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612bd582612b8f565b810181811067ffffffffffffffff82111715612bf457612bf3612b9f565b5b80604052505050565b5f612c06612b7a565b9050612c128282612bcc565b919050565b5f67ffffffffffffffff821115612c3157612c30612b9f565b5b602082029050602081019050919050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612c6f82612c46565b9050919050565b612c7f81612c65565b8114612c89575f80fd5b50565b5f81359050612c9a81612c76565b92915050565b5f612cb2612cad84612c17565b612bfd565b90508083825260208201905060208402830185811115612cd557612cd4612c42565b5b835b81811015612cfe5780612cea8882612c8c565b845260208401935050602081019050612cd7565b5050509392505050565b5f82601f830112612d1c57612d1b612b8b565b5b8135612d2c848260208601612ca0565b91505092915050565b5f60208284031215612d4a57612d49612b83565b5b5f82013567ffffffffffffffff811115612d6757612d66612b87565b5b612d7384828501612d08565b91505092915050565b5f81519050919050565b5f82825260208201905092915050565b8281835e5f83830152505050565b5f612dae82612d7c565b612db88185612d86565b9350612dc8818560208601612d96565b612dd181612b8f565b840191505092915050565b5f6020820190508181035f830152612df48184612da4565b905092915050565b5f819050919050565b612e0e81612dfc565b8114612e18575f80fd5b50565b5f81359050612e2981612e05565b92915050565b5f8060408385031215612e4557612e44612b83565b5b5f612e5285828601612c8c565b9250506020612e6385828601612e1b565b9150509250929050565b5f8115159050919050565b612e8181612e6d565b82525050565b5f602082019050612e9a5f830184612e78565b92915050565b5f819050919050565b5f612ec3612ebe612eb984612c46565b612ea0565b612c46565b9050919050565b5f612ed482612ea9565b9050919050565b5f612ee582612eca565b9050919050565b612ef581612edb565b82525050565b5f602082019050612f0e5f830184612eec565b92915050565b612f1d81612dfc565b82525050565b5f602082019050612f365f830184612f14565b92915050565b5f805f60608486031215612f5357612f52612b83565b5b5f612f6086828701612c8c565b9350506020612f7186828701612c8c565b9250506040612f8286828701612e1b565b9150509250925092565b5f60ff82169050919050565b612fa181612f8c565b82525050565b5f602082019050612fba5f830184612f98565b92915050565b612fc981612c65565b82525050565b5f602082019050612fe25f830184612fc0565b92915050565b5f60208284031215612ffd57612ffc612b83565b5b5f61300a84828501612c8c565b91505092915050565b61301c81612e6d565b8114613026575f80fd5b50565b5f8135905061303781613013565b92915050565b5f6020828403121561305257613051612b83565b5b5f61305f84828501613029565b91505092915050565b5f6020828403121561307d5761307c612b83565b5b5f61308a84828501612e1b565b91505092915050565b5f805f80608085870312156130ab576130aa612b83565b5b5f6130b887828801612e1b565b94505060206130c987828801612e1b565b93505060406130da87828801612e1b565b92505060606130eb87828801612e1b565b91505092959194509250565b5f80fd5b5f8083601f8401126131105761310f612b8b565b5b8235905067ffffffffffffffff81111561312d5761312c6130f7565b5b60208301915083602082028301111561314957613148612c42565b5b9250929050565b5f805f6040848603121561316757613166612b83565b5b5f84013567ffffffffffffffff81111561318457613183612b87565b5b613190868287016130fb565b935093505060206131a386828701613029565b9150509250925092565b5f80604083850312156131c3576131c2612b83565b5b5f6131d085828601612c8c565b92505060206131e185828601612c8c565b9150509250929050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f61321f602083612d86565b915061322a826131eb565b602082019050919050565b5f6020820190508181035f83015261324c81613213565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b6001851115613302578086048111156132de576132dd613280565b5b60018516156132ed5780820291505b80810290506132fb856132ad565b94506132c2565b94509492505050565b5f8261331a57600190506133d5565b81613327575f90506133d5565b816001811461333d576002811461334757613376565b60019150506133d5565b60ff84111561335957613358613280565b5b8360020a9150848211156133705761336f613280565b5b506133d5565b5060208310610133831016604e8410600b84101617156133ab5782820a9050838111156133a6576133a5613280565b5b6133d5565b6133b884848460016132b9565b925090508184048111156133cf576133ce613280565b5b81810290505b9392505050565b5f6133e682612dfc565b91506133f183612f8c565b925061341e7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848461330b565b905092915050565b5f61343082612dfc565b915061343b83612dfc565b925082820261344981612dfc565b915082820484148315176134605761345f613280565b5b5092915050565b7f4275792072657761726473206d757374206265206265747765656e20302520615f8201527f6e64203425000000000000000000000000000000000000000000000000000000602082015250565b5f6134c1602583612d86565b91506134cc82613467565b604082019050919050565b5f6020820190508181035f8301526134ee816134b5565b9050919050565b7f42757920746178206d757374206265206265747765656e20302520616e6420395f8201527f3825000000000000000000000000000000000000000000000000000000000000602082015250565b5f61354f602283612d86565b915061355a826134f5565b604082019050919050565b5f6020820190508181035f83015261357c81613543565b9050919050565b7f53656c6c2072657761726473206d757374206265206265747765656e203025205f8201527f616e642034250000000000000000000000000000000000000000000000000000602082015250565b5f6135dd602683612d86565b91506135e882613583565b604082019050919050565b5f6020820190508181035f83015261360a816135d1565b9050919050565b7f53656c6c20746178206d757374206265206265747765656e20302520616e64205f8201527f3938250000000000000000000000000000000000000000000000000000000000602082015250565b5f61366b602383612d86565b915061367682613611565b604082019050919050565b5f6020820190508181035f8301526136988161365f565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6136f9602683612d86565b91506137048261369f565b604082019050919050565b5f6020820190508181035f830152613726816136ed565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f613787602483612d86565b91506137928261372d565b604082019050919050565b5f6020820190508181035f8301526137b48161377b565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f613815602283612d86565b9150613820826137bb565b604082019050919050565b5f6020820190508181035f83015261384281613809565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f6138a3602583612d86565b91506138ae82613849565b604082019050919050565b5f6020820190508181035f8301526138d081613897565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613931602383612d86565b915061393c826138d7565b604082019050919050565b5f6020820190508181035f83015261395e81613925565b9050919050565b7f5472616e7366657220616d6f756e74206d7573742062652067726561746572205f8201527f7468616e207a65726f0000000000000000000000000000000000000000000000602082015250565b5f6139bf602983612d86565b91506139ca82613965565b604082019050919050565b5f6020820190508181035f8301526139ec816139b3565b9050919050565b7f544f4b454e3a2054686973206163636f756e742063616e6e6f742073656e64205f8201527f746f6b656e7320756e74696c2074726164696e6720697320656e61626c656400602082015250565b5f613a4d603f83612d86565b9150613a58826139f3565b604082019050919050565b5f6020820190508181035f830152613a7a81613a41565b9050919050565b7f544f4b454e3a204d6178205472616e73616374696f6e204c696d6974000000005f82015250565b5f613ab5601c83612d86565b9150613ac082613a81565b602082019050919050565b5f6020820190508181035f830152613ae281613aa9565b9050919050565b7f544f4b454e3a20596f7572206163636f756e7420697320626c61636b6c6973745f8201527f6564210000000000000000000000000000000000000000000000000000000000602082015250565b5f613b43602383612d86565b9150613b4e82613ae9565b604082019050919050565b5f6020820190508181035f830152613b7081613b37565b9050919050565b5f613b8182612dfc565b9150613b8c83612dfc565b9250828201905080821115613ba457613ba3613280565b5b92915050565b7f544f4b454e3a2042616c616e636520657863656564732077616c6c65742073695f8201527f7a65210000000000000000000000000000000000000000000000000000000000602082015250565b5f613c04602383612d86565b9150613c0f82613baa565b604082019050919050565b5f6020820190508181035f830152613c3181613bf8565b9050919050565b5f613c4282612dfc565b9150613c4d83612dfc565b9250828203905081811115613c6557613c64613280565b5b92915050565b7f416d6f756e74206d757374206265206c657373207468616e20746f74616c20725f8201527f65666c656374696f6e7300000000000000000000000000000000000000000000602082015250565b5f613cc5602a83612d86565b9150613cd082613c6b565b604082019050919050565b5f6020820190508181035f830152613cf281613cb9565b9050919050565b5f81519050613d0781612c76565b92915050565b5f60208284031215613d2257613d21612b83565b5b5f613d2f84828501613cf9565b91505092915050565b5f819050919050565b5f613d5b613d56613d5184613d38565b612ea0565b612dfc565b9050919050565b613d6b81613d41565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613da381612c65565b82525050565b5f613db48383613d9a565b60208301905092915050565b5f602082019050919050565b5f613dd682613d71565b613de08185613d7b565b9350613deb83613d8b565b805f5b83811015613e1b578151613e028882613da9565b9750613e0d83613dc0565b925050600181019050613dee565b5085935050505092915050565b5f60a082019050613e3b5f830188612f14565b613e486020830187613d62565b8181036040830152613e5a8186613dcc565b9050613e696060830185612fc0565b613e766080830184612f14565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613eb782612dfc565b9150613ec283612dfc565b925082613ed257613ed1613e80565b5b828204905092915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f7700000000005f82015250565b5f613f11601b83612d86565b9150613f1c82613edd565b602082019050919050565b5f6020820190508181035f830152613f3e81613f05565b9050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f5f8201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b5f613f9f602183612d86565b9150613faa82613f45565b604082019050919050565b5f6020820190508181035f830152613fcc81613f93565b905091905056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365a26469706673582212200bbb38a32f3fcd5823a3f9e3829be5caac2aaf995f5f877b117aed189ddd841264736f6c634300081a0033

Deployed Bytecode Sourcemap

4482:14275:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13498:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7370:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8302:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6067:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7650:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8504:446;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6393:58;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7558:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6115:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13676:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18123:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13293:196;;;;;;;;;;;;;:::i;:::-;;7754:138;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1955:148;;;;;;;;;;;;;:::i;:::-;;18264:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6267:54;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5596:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1739:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12977:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6329:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7462:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17931:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17185:693;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7901:199;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5552:36;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13087:197;;;;;;;;;;;;;:::i;:::-;;18518:234;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8109:184;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18394:115;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2112:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13498:169;1877:12;:10;:12::i;:::-;1867:22;;:6;;;;;;;;;;:22;;;1859:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13574:9:::1;13569:91;13593:5;:12;13589:1;:16;13569:91;;;13644:4;13627;:14;13632:5;13638:1;13632:8;;;;;;;;:::i;:::-;;;;;;;;13627:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;13607:3;;;;;;;13569:91;;;;13498:169:::0;:::o;7370:83::-;7407:13;7440:5;;;;;;;;;;;;;;;;;7433:12;;7370:83;:::o;8302:193::-;8404:4;8426:39;8435:12;:10;:12::i;:::-;8449:7;8458:6;8426:8;:39::i;:::-;8483:4;8476:11;;8302:193;;;;:::o;6067:41::-;;;;;;;;;;;;;:::o;7650:95::-;7703:7;4709:2;5048;:15;;;;:::i;:::-;5037:8;:26;;;;:::i;:::-;7723:14;;7650:95;:::o;8504:446::-;8636:4;8653:36;8663:6;8671:9;8682:6;8653:9;:36::i;:::-;8700:220;8723:6;8744:12;:10;:12::i;:::-;8771:138;8827:6;8771:138;;;;;;;;;;;;;;;;;:11;:19;8783:6;8771:19;;;;;;;;;;;;;;;:33;8791:12;:10;:12::i;:::-;8771:33;;;;;;;;;;;;;;;;:37;;:138;;;;;:::i;:::-;8700:8;:220::i;:::-;8938:4;8931:11;;8504:446;;;;;:::o;6393:58::-;;;;:::o;7558:83::-;7599:5;4709:2;7617:16;;7558:83;:::o;6115:28::-;;;;;;;;;;;;;:::o;13676:92::-;1877:12;:10;:12::i;:::-;1867:22;;:6;;;;;;;;;;:22;;;1859:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13755:5:::1;13740:4;:12;13745:6;13740:12;;;;;;;;;;;;;;;;:20;;;;;;;;;;;;;;;;;;13676:92:::0;:::o;18123:101::-;1877:12;:10;:12::i;:::-;1867:22;;:6;;;;;;;;;;:22;;;1859:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18204:12:::1;18190:11;;:26;;;;;;;;;;;;;;;;;;18123:101:::0;:::o;13293:196::-;13359:17;;;;;;;;;;;13343:33;;:12;:10;:12::i;:::-;:33;;;13335:42;;;;;;13388:26;13417:21;13388:50;;13449:32;13462:18;13449:12;:32::i;:::-;13324:165;13293:196::o;7754:138::-;7820:7;7847:37;7867:7;:16;7875:7;7867:16;;;;;;;;;;;;;;;;7847:19;:37::i;:::-;7840:44;;7754:138;;;:::o;1955:148::-;1877:12;:10;:12::i;:::-;1867:22;;:6;;;;;;;;;;:22;;;1859:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2062:1:::1;2025:40;;2046:6;::::0;::::1;;;;;;;;2025:40;;;;;;;;;;;;2093:1;2076:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;1955:148::o:0;18264:121::-;1877:12;:10;:12::i;:::-;1867:22;;:6;;;;;;;;;;:22;;;1859:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18356:11:::1;18341:12;:26;;;;18264:121:::0;:::o;6267:54::-;;;;:::o;5596:43::-;;;;;;;;;;;;;;;;;:::o;1739:79::-;1777:7;1804:6;;;;;;;;;;;1797:13;;1739:79;:::o;12977:101::-;1877:12;:10;:12::i;:::-;1867:22;;:6;;;;;;;;;;:22;;;1859:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13058:12:::1;13044:11;;:26;;;;;;;;;;;;;;;;;;12977:101:::0;:::o;6329:56::-;;;;:::o;7462:87::-;7501:13;7534:7;;;;;;;;;;;;;;;;;7527:14;;7462:87;:::o;17931:139::-;1877:12;:10;:12::i;:::-;1867:22;;:6;;;;;;;;;;:22;;;1859:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18044:18:::1;18022:19;:40;;;;17931:139:::0;:::o;17185:693::-;1877:12;:10;:12::i;:::-;1867:22;;:6;;;;;;;;;;:22;;;1859:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17344:1:::1;17327:13;:18;;:40;;;;;17366:1;17349:13;:18;;17327:40;17319:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;17443:1;17428:11;:16;;:37;;;;;17463:2;17448:11;:17;;17428:37;17420:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;17541:1;17523:14;:19;;:42;;;;;17564:1;17546:14;:19;;17523:42;17515:93;;;;;;;;;;;;:::i;:::-;;;;;;;;;17643:1;17627:12;:17;;:39;;;;;17664:2;17648:12;:18;;17627:39;17619:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;17736:13;17719:14;:30;;;;17778:14;17760:15;:32;;;;17818:11;17803:12;:26;;;;17856:12;17840:13;:28;;;;17185:693:::0;;;;:::o;7901:199::-;8006:4;8028:42;8038:12;:10;:12::i;:::-;8052:9;8063:6;8028:9;:42::i;:::-;8088:4;8081:11;;7901:199;;;;:::o;5552:36::-;;;;;;;;;;;;;;;;;;;;;;:::o;13087:197::-;13153:17;;;;;;;;;;;13137:33;;:12;:10;:12::i;:::-;:33;;;13129:42;;;;;;13182:23;13208:24;13226:4;13208:9;:24::i;:::-;13182:50;;13243:33;13260:15;13243:16;:33::i;:::-;13118:166;13087:197::o;18518:234::-;1877:12;:10;:12::i;:::-;1867:22;;:6;;;;;;;;;;:22;;;1859:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18635:9:::1;18631:114;18654:8;;:15;;18650:1;:19;18631:114;;;18725:8;18691:18;:31;18710:8;;18719:1;18710:11;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;18691:31;;;;;;;;;;;;;;;;:42;;;;;;;;;;;;;;;;;;18671:3;;;;;;;18631:114;;;;18518:234:::0;;;:::o;8109:184::-;8226:7;8258:11;:18;8270:5;8258:18;;;;;;;;;;;;;;;:27;8277:7;8258:27;;;;;;;;;;;;;;;;8251:34;;8109:184;;;;:::o;18394:115::-;1877:12;:10;:12::i;:::-;1867:22;;:6;;;;;;;;;;:22;;;1859:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;18488:13:::1;18471:14;:30;;;;18394:115:::0;:::o;2112:244::-;1877:12;:10;:12::i;:::-;1867:22;;:6;;;;;;;;;;:22;;;1859:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2221:1:::1;2201:22;;:8;:22;;::::0;2193:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2311:8;2282:38;;2303:6;::::0;::::1;;;;;;;;2282:38;;;;;;;;;;;;2340:8;2331:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2112:244:::0;:::o;488:98::-;541:7;568:10;561:17;;488:98;:::o;9647:369::-;9791:1;9774:19;;:5;:19;;;9766:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9872:1;9853:21;;:7;:21;;;9845:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9954:6;9924:11;:18;9936:5;9924:18;;;;;;;;;;;;;;;:27;9943:7;9924:27;;;;;;;;;;;;;;;:36;;;;9992:7;9976:32;;9985:5;9976:32;;;10001:6;9976:32;;;;;;:::i;:::-;;;;;;;;9647:369;;;:::o;10025:2343::-;10163:1;10147:18;;:4;:18;;;10139:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10240:1;10226:16;;:2;:16;;;10218:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10310:1;10301:6;:10;10293:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;10383:7;:5;:7::i;:::-;10375:15;;:4;:15;;;;:32;;;;;10400:7;:5;:7::i;:::-;10394:13;;:2;:13;;;;10375:32;10371:1265;;;10465:11;;;;;;;;;;;10460:144;;10513:7;:5;:7::i;:::-;10505:15;;:4;:15;;;10497:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;10460:144;10639:12;;10629:6;:22;;10621:63;;;;;;;;;;;;:::i;:::-;;;;;;;;;10708:4;:10;10713:4;10708:10;;;;;;;;;;;;;;;;;;;;;;;;;10707:11;:24;;;;;10723:4;:8;10728:2;10723:8;;;;;;;;;;;;;;;;;;;;;;;;;10722:9;10707:24;10699:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;10798:13;;;;;;;;;;;10792:19;;:2;:19;;;10789:146;;10865:14;;10856:6;10840:13;10850:2;10840:9;:13::i;:::-;:22;;;;:::i;:::-;:39;10832:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;10789:146;10952:28;10983:24;11001:4;10983:9;:24::i;:::-;10952:55;;11022:12;11061:19;;11037:20;:43;;11022:58;;11125:12;;11101:20;:36;11098:124;;11194:12;;11171:35;;11098:124;11243:7;:18;;;;;11255:6;;;;;;;;;;;11254:7;11243:18;:43;;;;;11273:13;;;;;;;;;;;11265:21;;:4;:21;;;;11243:43;:58;;;;;11290:11;;;;;;;;;;;11243:58;:87;;;;;11306:18;:24;11325:4;11306:24;;;;;;;;;;;;;;;;;;;;;;;;;11305:25;11243:87;:114;;;;;11335:18;:22;11354:2;11335:22;;;;;;;;;;;;;;;;;;;;;;;;;11334:23;11243:114;11239:386;;;11378:38;11395:20;11378:16;:38::i;:::-;11435:26;11464:21;11435:50;;11529:1;11508:18;:22;11504:106;;;11555:35;11568:21;11555:12;:35::i;:::-;11504:106;11359:266;11239:386;10409:1227;;10371:1265;11649:12;11664:4;11649:19;;11714:18;:24;11733:4;11714:24;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;11742:18;:22;11761:2;11742:22;;;;;;;;;;;;;;;;;;;;;;;;;11714:50;11713:102;;;;11778:13;;;;;;;;;;;11770:21;;:4;:21;;;;:44;;;;;11801:13;;;;;;;;;;;11795:19;;:2;:19;;;;11770:44;11713:102;11709:597;;;11842:5;11832:15;;11709:597;;;11926:13;;;;;;;;;;;11918:21;;:4;:21;;;:55;;;;;11957:15;;;;;;;;;;;11943:30;;:2;:30;;;;11918:55;11915:162;;;12006:14;;11994:9;:26;;;;12049:12;;12039:7;:22;;;;11915:162;12137:13;;;;;;;;;;;12131:19;;:2;:19;;;:55;;;;;12170:15;;;;;;;;;;;12154:32;;:4;:32;;;;12131:55;12127:165;;;12219:15;;12207:9;:27;;;;12263:13;;12253:7;:23;;;;12127:165;11709:597;12319:41;12334:4;12340:2;12344:6;12352:7;12319:14;:41::i;:::-;10128:2240;10025:2343;;;:::o;2724:224::-;2844:7;2877:1;2872;:6;;2880:12;2864:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;2904:9;2920:1;2916;:5;;;;:::i;:::-;2904:17;;2939:1;2932:8;;;2724:224;;;;;:::o;12869:99::-;12926:17;;;;;;;;;;;:26;;:34;12953:6;12926:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12869:99;:::o;8959:323::-;9054:7;9112;;9101;:18;;9079:110;;;;;;;;;;;;:::i;:::-;;;;;;;;;9200:19;9222:10;:8;:10::i;:::-;9200:32;;9250:24;9262:11;9250:7;:11;;:24;;;;:::i;:::-;9243:31;;;8959:323;;;:::o;12377:483::-;6555:4;6546:6;;:13;;;;;;;;;;;;;;;;;;12455:21:::1;12493:1;12479:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12455:40;;12524:4;12506;12511:1;12506:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;::::0;::::1;12550:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12540:4;12545:1;12540:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;::::0;::::1;12583:62;12600:4;12615:15;;;;;;;;;;;12633:11;12583:8;:62::i;:::-;12656:15;;;;;;;;;;;:66;;;12737:11;12763:1;12779:4;12806;12826:15;12656:196;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;12444:416;6591:5:::0;6582:6;;:14;;;;;;;;;;;;;;;;;;12377:483;:::o;13777:282::-;13933:7;13928:28;;13942:14;:12;:14::i;:::-;13928:28;13967:44;13985:6;13993:9;14004:6;13967:17;:44::i;:::-;14027:7;14022:29;;14036:15;:13;:15::i;:::-;14022:29;13777:282;;;;:::o;16746:164::-;16788:7;16809:15;16826;16845:19;:17;:19::i;:::-;16808:56;;;;16882:20;16894:7;16882;:11;;:20;;;;:::i;:::-;16875:27;;;;16746:164;:::o;3212:132::-;3270:7;3297:39;3301:1;3304;3297:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;3290:46;;3212:132;;;;:::o;9291:221::-;9351:1;9338:9;;:14;:30;;;;;9367:1;9356:7;;:12;9338:30;9370:7;9334:43;9410:9;;9390:17;:29;;;;9448:7;;9430:15;:25;;;;9481:1;9469:9;:13;;;;9503:1;9493:7;:11;;;;9291:221;:::o;14068:610::-;14215:15;14245:23;14283:12;14310:23;14348:12;14375:13;14402:19;14413:7;14402:10;:19::i;:::-;14200:221;;;;;;;;;;;;14450:28;14470:7;14450;:15;14458:6;14450:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;14432:7;:15;14440:6;14432:15;;;;;;;;;;;;;;;:46;;;;14510:39;14533:15;14510:7;:18;14518:9;14510:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;14489:7;:18;14497:9;14489:18;;;;;;;;;;;;;;;:60;;;;14560:16;14570:5;14560:9;:16::i;:::-;14587:23;14599:4;14605;14587:11;:23::i;:::-;14643:9;14626:44;;14635:6;14626:44;;;14654:15;14626:44;;;;;;:::i;:::-;;;;;;;;14189:489;;;;;;14068:610;;;:::o;9521:117::-;9577:17;;9565:9;:29;;;;9615:15;;9605:7;:25;;;;9521:117::o;16919:257::-;16970:7;16979;16999:15;17017:7;;16999:25;;17035:15;4709:2;5048;:15;;;;:::i;:::-;5037:8;:26;;;;:::i;:::-;17035:25;;17085:20;4709:2;5048;:15;;;;:::i;:::-;5037:8;:26;;;;:::i;:::-;17085:7;;:11;;:20;;;;:::i;:::-;17075:7;:30;17071:61;;;17115:7;;4709:2;5048;:15;;;;:::i;:::-;5037:8;:26;;;;:::i;:::-;17107:25;;;;;;;;17071:61;17151:7;17160;17143:25;;;;;;16919:257;;;:::o;3353:223::-;3473:7;3505:1;3501;:5;3508:12;3493:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;3532:9;3548:1;3544;:5;;;;:::i;:::-;3532:17;;3567:1;3560:8;;;3353:223;;;;;:::o;15101:615::-;15201:7;15223;15245;15267;15289;15311;15347:23;15372:12;15386:13;15416:40;15428:7;15437:9;;15448:7;;15416:11;:40::i;:::-;15346:110;;;;;;15467:19;15489:10;:8;:10::i;:::-;15467:32;;15511:15;15528:23;15553:12;15582:46;15594:7;15603:4;15609:5;15616:11;15582;:46::i;:::-;15510:118;;;;;;15647:7;15656:15;15673:4;15679:15;15696:4;15702:5;15639:69;;;;;;;;;;;;;;;;;;;15101:615;;;;;;;:::o;2579:136::-;2637:7;2664:43;2668:1;2671;2664:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;2657:50;;2579:136;;;;:::o;2391:179::-;2449:7;2469:9;2485:1;2481;:5;;;;:::i;:::-;2469:17;;2510:1;2505;:6;;2497:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;2561:1;2554:8;;;2391:179;;;;:::o;14687:211::-;14740:19;14762:10;:8;:10::i;:::-;14740:32;;14783:13;14799:22;14809:11;14799:5;:9;;:22;;;;:::i;:::-;14783:38;;14857:33;14884:5;14857:7;:22;14873:4;14857:22;;;;;;;;;;;;;;;;:26;;:33;;;;:::i;:::-;14832:7;:22;14848:4;14832:22;;;;;;;;;;;;;;;:58;;;;14729:169;;14687:211;:::o;14907:147::-;14985:17;14997:4;14985:7;;:11;;:17;;;;:::i;:::-;14975:7;:27;;;;15026:20;15041:4;15026:10;;:14;;:20;;;;:::i;:::-;15013:10;:33;;;;14907:147;;:::o;15725:469::-;15894:7;15916;15938;15973:12;15988:30;16014:3;15988:21;16000:8;15988:7;:11;;:21;;;;:::i;:::-;:25;;:30;;;;:::i;:::-;15973:45;;16029:13;16045:28;16069:3;16045:19;16057:6;16045:7;:11;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;16029:44;;16084:23;16110:28;16132:5;16110:17;16122:4;16110:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16084:54;;16157:15;16174:4;16180:5;16149:37;;;;;;;;;15725:469;;;;;;;:::o;16203:534::-;16397:7;16419;16441;16476:15;16494:24;16506:11;16494:7;:11;;:24;;;;:::i;:::-;16476:42;;16529:12;16544:21;16553:11;16544:4;:8;;:21;;;;:::i;:::-;16529:36;;16576:13;16592:22;16602:11;16592:5;:9;;:22;;;;:::i;:::-;16576:38;;16625:23;16651:28;16673:5;16651:17;16663:4;16651:7;:11;;:17;;;;:::i;:::-;:21;;:28;;;;:::i;:::-;16625:54;;16698:7;16707:15;16724:4;16690:39;;;;;;;;;;16203:534;;;;;;;;:::o;2957:246::-;3015:7;3044:1;3039;:6;3035:47;;3069:1;3062:8;;;;3035:47;3092:9;3108:1;3104;:5;;;;:::i;:::-;3092:17;;3137:1;3132;3128;:5;;;;:::i;:::-;:10;3120:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;3194:1;3187:8;;;2957:246;;;;;:::o;7:75:1:-;40:6;73:2;67:9;57:19;;7:75;:::o;88:117::-;197:1;194;187:12;211:117;320:1;317;310:12;334:117;443:1;440;433:12;457:102;498:6;549:2;545:7;540:2;533:5;529:14;525:28;515:38;;457:102;;;:::o;565:180::-;613:77;610:1;603:88;710:4;707:1;700:15;734:4;731:1;724:15;751:281;834:27;856:4;834:27;:::i;:::-;826:6;822:40;964:6;952:10;949:22;928:18;916:10;913:34;910:62;907:88;;;975:18;;:::i;:::-;907:88;1015:10;1011:2;1004:22;794:238;751:281;;:::o;1038:129::-;1072:6;1099:20;;:::i;:::-;1089:30;;1128:33;1156:4;1148:6;1128:33;:::i;:::-;1038:129;;;:::o;1173:311::-;1250:4;1340:18;1332:6;1329:30;1326:56;;;1362:18;;:::i;:::-;1326:56;1412:4;1404:6;1400:17;1392:25;;1472:4;1466;1462:15;1454:23;;1173:311;;;:::o;1490:117::-;1599:1;1596;1589:12;1613:126;1650:7;1690:42;1683:5;1679:54;1668:65;;1613:126;;;:::o;1745:96::-;1782:7;1811:24;1829:5;1811:24;:::i;:::-;1800:35;;1745:96;;;:::o;1847:122::-;1920:24;1938:5;1920:24;:::i;:::-;1913:5;1910:35;1900:63;;1959:1;1956;1949:12;1900:63;1847:122;:::o;1975:139::-;2021:5;2059:6;2046:20;2037:29;;2075:33;2102:5;2075:33;:::i;:::-;1975:139;;;;:::o;2137:710::-;2233:5;2258:81;2274:64;2331:6;2274:64;:::i;:::-;2258:81;:::i;:::-;2249:90;;2359:5;2388:6;2381:5;2374:21;2422:4;2415:5;2411:16;2404:23;;2475:4;2467:6;2463:17;2455:6;2451:30;2504:3;2496:6;2493:15;2490:122;;;2523:79;;:::i;:::-;2490:122;2638:6;2621:220;2655:6;2650:3;2647:15;2621:220;;;2730:3;2759:37;2792:3;2780:10;2759:37;:::i;:::-;2754:3;2747:50;2826:4;2821:3;2817:14;2810:21;;2697:144;2681:4;2676:3;2672:14;2665:21;;2621:220;;;2625:21;2239:608;;2137:710;;;;;:::o;2870:370::-;2941:5;2990:3;2983:4;2975:6;2971:17;2967:27;2957:122;;2998:79;;:::i;:::-;2957:122;3115:6;3102:20;3140:94;3230:3;3222:6;3215:4;3207:6;3203:17;3140:94;:::i;:::-;3131:103;;2947:293;2870:370;;;;:::o;3246:539::-;3330:6;3379:2;3367:9;3358:7;3354:23;3350:32;3347:119;;;3385:79;;:::i;:::-;3347:119;3533:1;3522:9;3518:17;3505:31;3563:18;3555:6;3552:30;3549:117;;;3585:79;;:::i;:::-;3549:117;3690:78;3760:7;3751:6;3740:9;3736:22;3690:78;:::i;:::-;3680:88;;3476:302;3246:539;;;;:::o;3791:99::-;3843:6;3877:5;3871:12;3861:22;;3791:99;;;:::o;3896:169::-;3980:11;4014:6;4009:3;4002:19;4054:4;4049:3;4045:14;4030:29;;3896:169;;;;:::o;4071:139::-;4160:6;4155:3;4150;4144:23;4201:1;4192:6;4187:3;4183:16;4176:27;4071:139;;;:::o;4216:377::-;4304:3;4332:39;4365:5;4332:39;:::i;:::-;4387:71;4451:6;4446:3;4387:71;:::i;:::-;4380:78;;4467:65;4525:6;4520:3;4513:4;4506:5;4502:16;4467:65;:::i;:::-;4557:29;4579:6;4557:29;:::i;:::-;4552:3;4548:39;4541:46;;4308:285;4216:377;;;;:::o;4599:313::-;4712:4;4750:2;4739:9;4735:18;4727:26;;4799:9;4793:4;4789:20;4785:1;4774:9;4770:17;4763:47;4827:78;4900:4;4891:6;4827:78;:::i;:::-;4819:86;;4599:313;;;;:::o;4918:77::-;4955:7;4984:5;4973:16;;4918:77;;;:::o;5001:122::-;5074:24;5092:5;5074:24;:::i;:::-;5067:5;5064:35;5054:63;;5113:1;5110;5103:12;5054:63;5001:122;:::o;5129:139::-;5175:5;5213:6;5200:20;5191:29;;5229:33;5256:5;5229:33;:::i;:::-;5129:139;;;;:::o;5274:474::-;5342:6;5350;5399:2;5387:9;5378:7;5374:23;5370:32;5367:119;;;5405:79;;:::i;:::-;5367:119;5525:1;5550:53;5595:7;5586:6;5575:9;5571:22;5550:53;:::i;:::-;5540:63;;5496:117;5652:2;5678:53;5723:7;5714:6;5703:9;5699:22;5678:53;:::i;:::-;5668:63;;5623:118;5274:474;;;;;:::o;5754:90::-;5788:7;5831:5;5824:13;5817:21;5806:32;;5754:90;;;:::o;5850:109::-;5931:21;5946:5;5931:21;:::i;:::-;5926:3;5919:34;5850:109;;:::o;5965:210::-;6052:4;6090:2;6079:9;6075:18;6067:26;;6103:65;6165:1;6154:9;6150:17;6141:6;6103:65;:::i;:::-;5965:210;;;;:::o;6181:60::-;6209:3;6230:5;6223:12;;6181:60;;;:::o;6247:142::-;6297:9;6330:53;6348:34;6357:24;6375:5;6357:24;:::i;:::-;6348:34;:::i;:::-;6330:53;:::i;:::-;6317:66;;6247:142;;;:::o;6395:126::-;6445:9;6478:37;6509:5;6478:37;:::i;:::-;6465:50;;6395:126;;;:::o;6527:152::-;6603:9;6636:37;6667:5;6636:37;:::i;:::-;6623:50;;6527:152;;;:::o;6685:183::-;6798:63;6855:5;6798:63;:::i;:::-;6793:3;6786:76;6685:183;;:::o;6874:274::-;6993:4;7031:2;7020:9;7016:18;7008:26;;7044:97;7138:1;7127:9;7123:17;7114:6;7044:97;:::i;:::-;6874:274;;;;:::o;7154:118::-;7241:24;7259:5;7241:24;:::i;:::-;7236:3;7229:37;7154:118;;:::o;7278:222::-;7371:4;7409:2;7398:9;7394:18;7386:26;;7422:71;7490:1;7479:9;7475:17;7466:6;7422:71;:::i;:::-;7278:222;;;;:::o;7506:619::-;7583:6;7591;7599;7648:2;7636:9;7627:7;7623:23;7619:32;7616:119;;;7654:79;;:::i;:::-;7616:119;7774:1;7799:53;7844:7;7835:6;7824:9;7820:22;7799:53;:::i;:::-;7789:63;;7745:117;7901:2;7927:53;7972:7;7963:6;7952:9;7948:22;7927:53;:::i;:::-;7917:63;;7872:118;8029:2;8055:53;8100:7;8091:6;8080:9;8076:22;8055:53;:::i;:::-;8045:63;;8000:118;7506:619;;;;;:::o;8131:86::-;8166:7;8206:4;8199:5;8195:16;8184:27;;8131:86;;;:::o;8223:112::-;8306:22;8322:5;8306:22;:::i;:::-;8301:3;8294:35;8223:112;;:::o;8341:214::-;8430:4;8468:2;8457:9;8453:18;8445:26;;8481:67;8545:1;8534:9;8530:17;8521:6;8481:67;:::i;:::-;8341:214;;;;:::o;8561:118::-;8648:24;8666:5;8648:24;:::i;:::-;8643:3;8636:37;8561:118;;:::o;8685:222::-;8778:4;8816:2;8805:9;8801:18;8793:26;;8829:71;8897:1;8886:9;8882:17;8873:6;8829:71;:::i;:::-;8685:222;;;;:::o;8913:329::-;8972:6;9021:2;9009:9;9000:7;8996:23;8992:32;8989:119;;;9027:79;;:::i;:::-;8989:119;9147:1;9172:53;9217:7;9208:6;9197:9;9193:22;9172:53;:::i;:::-;9162:63;;9118:117;8913:329;;;;:::o;9248:116::-;9318:21;9333:5;9318:21;:::i;:::-;9311:5;9308:32;9298:60;;9354:1;9351;9344:12;9298:60;9248:116;:::o;9370:133::-;9413:5;9451:6;9438:20;9429:29;;9467:30;9491:5;9467:30;:::i;:::-;9370:133;;;;:::o;9509:323::-;9565:6;9614:2;9602:9;9593:7;9589:23;9585:32;9582:119;;;9620:79;;:::i;:::-;9582:119;9740:1;9765:50;9807:7;9798:6;9787:9;9783:22;9765:50;:::i;:::-;9755:60;;9711:114;9509:323;;;;:::o;9838:329::-;9897:6;9946:2;9934:9;9925:7;9921:23;9917:32;9914:119;;;9952:79;;:::i;:::-;9914:119;10072:1;10097:53;10142:7;10133:6;10122:9;10118:22;10097:53;:::i;:::-;10087:63;;10043:117;9838:329;;;;:::o;10173:765::-;10259:6;10267;10275;10283;10332:3;10320:9;10311:7;10307:23;10303:33;10300:120;;;10339:79;;:::i;:::-;10300:120;10459:1;10484:53;10529:7;10520:6;10509:9;10505:22;10484:53;:::i;:::-;10474:63;;10430:117;10586:2;10612:53;10657:7;10648:6;10637:9;10633:22;10612:53;:::i;:::-;10602:63;;10557:118;10714:2;10740:53;10785:7;10776:6;10765:9;10761:22;10740:53;:::i;:::-;10730:63;;10685:118;10842:2;10868:53;10913:7;10904:6;10893:9;10889:22;10868:53;:::i;:::-;10858:63;;10813:118;10173:765;;;;;;;:::o;10944:117::-;11053:1;11050;11043:12;11084:568;11157:8;11167:6;11217:3;11210:4;11202:6;11198:17;11194:27;11184:122;;11225:79;;:::i;:::-;11184:122;11338:6;11325:20;11315:30;;11368:18;11360:6;11357:30;11354:117;;;11390:79;;:::i;:::-;11354:117;11504:4;11496:6;11492:17;11480:29;;11558:3;11550:4;11542:6;11538:17;11528:8;11524:32;11521:41;11518:128;;;11565:79;;:::i;:::-;11518:128;11084:568;;;;;:::o;11658:698::-;11750:6;11758;11766;11815:2;11803:9;11794:7;11790:23;11786:32;11783:119;;;11821:79;;:::i;:::-;11783:119;11969:1;11958:9;11954:17;11941:31;11999:18;11991:6;11988:30;11985:117;;;12021:79;;:::i;:::-;11985:117;12134:80;12206:7;12197:6;12186:9;12182:22;12134:80;:::i;:::-;12116:98;;;;11912:312;12263:2;12289:50;12331:7;12322:6;12311:9;12307:22;12289:50;:::i;:::-;12279:60;;12234:115;11658:698;;;;;:::o;12362:474::-;12430:6;12438;12487:2;12475:9;12466:7;12462:23;12458:32;12455:119;;;12493:79;;:::i;:::-;12455:119;12613:1;12638:53;12683:7;12674:6;12663:9;12659:22;12638:53;:::i;:::-;12628:63;;12584:117;12740:2;12766:53;12811:7;12802:6;12791:9;12787:22;12766:53;:::i;:::-;12756:63;;12711:118;12362:474;;;;;:::o;12842:182::-;12982:34;12978:1;12970:6;12966:14;12959:58;12842:182;:::o;13030:366::-;13172:3;13193:67;13257:2;13252:3;13193:67;:::i;:::-;13186:74;;13269:93;13358:3;13269:93;:::i;:::-;13387:2;13382:3;13378:12;13371:19;;13030:366;;;:::o;13402:419::-;13568:4;13606:2;13595:9;13591:18;13583:26;;13655:9;13649:4;13645:20;13641:1;13630:9;13626:17;13619:47;13683:131;13809:4;13683:131;:::i;:::-;13675:139;;13402:419;;;:::o;13827:180::-;13875:77;13872:1;13865:88;13972:4;13969:1;13962:15;13996:4;13993:1;13986:15;14013:180;14061:77;14058:1;14051:88;14158:4;14155:1;14148:15;14182:4;14179:1;14172:15;14199:102;14241:8;14288:5;14285:1;14281:13;14260:34;;14199:102;;;:::o;14307:848::-;14368:5;14375:4;14399:6;14390:15;;14423:5;14414:14;;14437:712;14458:1;14448:8;14445:15;14437:712;;;14553:4;14548:3;14544:14;14538:4;14535:24;14532:50;;;14562:18;;:::i;:::-;14532:50;14612:1;14602:8;14598:16;14595:451;;;15027:4;15020:5;15016:16;15007:25;;14595:451;15077:4;15071;15067:15;15059:23;;15107:32;15130:8;15107:32;:::i;:::-;15095:44;;14437:712;;;14307:848;;;;;;;:::o;15161:1073::-;15215:5;15406:8;15396:40;;15427:1;15418:10;;15429:5;;15396:40;15455:4;15445:36;;15472:1;15463:10;;15474:5;;15445:36;15541:4;15589:1;15584:27;;;;15625:1;15620:191;;;;15534:277;;15584:27;15602:1;15593:10;;15604:5;;;15620:191;15665:3;15655:8;15652:17;15649:43;;;15672:18;;:::i;:::-;15649:43;15721:8;15718:1;15714:16;15705:25;;15756:3;15749:5;15746:14;15743:40;;;15763:18;;:::i;:::-;15743:40;15796:5;;;15534:277;;15920:2;15910:8;15907:16;15901:3;15895:4;15892:13;15888:36;15870:2;15860:8;15857:16;15852:2;15846:4;15843:12;15839:35;15823:111;15820:246;;;15976:8;15970:4;15966:19;15957:28;;16011:3;16004:5;16001:14;15998:40;;;16018:18;;:::i;:::-;15998:40;16051:5;;15820:246;16091:42;16129:3;16119:8;16113:4;16110:1;16091:42;:::i;:::-;16076:57;;;;16165:4;16160:3;16156:14;16149:5;16146:25;16143:51;;;16174:18;;:::i;:::-;16143:51;16223:4;16216:5;16212:16;16203:25;;15161:1073;;;;;;:::o;16240:281::-;16298:5;16322:23;16340:4;16322:23;:::i;:::-;16314:31;;16366:25;16382:8;16366:25;:::i;:::-;16354:37;;16410:104;16447:66;16437:8;16431:4;16410:104;:::i;:::-;16401:113;;16240:281;;;;:::o;16527:410::-;16567:7;16590:20;16608:1;16590:20;:::i;:::-;16585:25;;16624:20;16642:1;16624:20;:::i;:::-;16619:25;;16679:1;16676;16672:9;16701:30;16719:11;16701:30;:::i;:::-;16690:41;;16880:1;16871:7;16867:15;16864:1;16861:22;16841:1;16834:9;16814:83;16791:139;;16910:18;;:::i;:::-;16791:139;16575:362;16527:410;;;;:::o;16943:224::-;17083:34;17079:1;17071:6;17067:14;17060:58;17152:7;17147:2;17139:6;17135:15;17128:32;16943:224;:::o;17173:366::-;17315:3;17336:67;17400:2;17395:3;17336:67;:::i;:::-;17329:74;;17412:93;17501:3;17412:93;:::i;:::-;17530:2;17525:3;17521:12;17514:19;;17173:366;;;:::o;17545:419::-;17711:4;17749:2;17738:9;17734:18;17726:26;;17798:9;17792:4;17788:20;17784:1;17773:9;17769:17;17762:47;17826:131;17952:4;17826:131;:::i;:::-;17818:139;;17545:419;;;:::o;17970:221::-;18110:34;18106:1;18098:6;18094:14;18087:58;18179:4;18174:2;18166:6;18162:15;18155:29;17970:221;:::o;18197:366::-;18339:3;18360:67;18424:2;18419:3;18360:67;:::i;:::-;18353:74;;18436:93;18525:3;18436:93;:::i;:::-;18554:2;18549:3;18545:12;18538:19;;18197:366;;;:::o;18569:419::-;18735:4;18773:2;18762:9;18758:18;18750:26;;18822:9;18816:4;18812:20;18808:1;18797:9;18793:17;18786:47;18850:131;18976:4;18850:131;:::i;:::-;18842:139;;18569:419;;;:::o;18994:225::-;19134:34;19130:1;19122:6;19118:14;19111:58;19203:8;19198:2;19190:6;19186:15;19179:33;18994:225;:::o;19225:366::-;19367:3;19388:67;19452:2;19447:3;19388:67;:::i;:::-;19381:74;;19464:93;19553:3;19464:93;:::i;:::-;19582:2;19577:3;19573:12;19566:19;;19225:366;;;:::o;19597:419::-;19763:4;19801:2;19790:9;19786:18;19778:26;;19850:9;19844:4;19840:20;19836:1;19825:9;19821:17;19814:47;19878:131;20004:4;19878:131;:::i;:::-;19870:139;;19597:419;;;:::o;20022:222::-;20162:34;20158:1;20150:6;20146:14;20139:58;20231:5;20226:2;20218:6;20214:15;20207:30;20022:222;:::o;20250:366::-;20392:3;20413:67;20477:2;20472:3;20413:67;:::i;:::-;20406:74;;20489:93;20578:3;20489:93;:::i;:::-;20607:2;20602:3;20598:12;20591:19;;20250:366;;;:::o;20622:419::-;20788:4;20826:2;20815:9;20811:18;20803:26;;20875:9;20869:4;20865:20;20861:1;20850:9;20846:17;20839:47;20903:131;21029:4;20903:131;:::i;:::-;20895:139;;20622:419;;;:::o;21047:225::-;21187:34;21183:1;21175:6;21171:14;21164:58;21256:8;21251:2;21243:6;21239:15;21232:33;21047:225;:::o;21278:366::-;21420:3;21441:67;21505:2;21500:3;21441:67;:::i;:::-;21434:74;;21517:93;21606:3;21517:93;:::i;:::-;21635:2;21630:3;21626:12;21619:19;;21278:366;;;:::o;21650:419::-;21816:4;21854:2;21843:9;21839:18;21831:26;;21903:9;21897:4;21893:20;21889:1;21878:9;21874:17;21867:47;21931:131;22057:4;21931:131;:::i;:::-;21923:139;;21650:419;;;:::o;22075:223::-;22215:34;22211:1;22203:6;22199:14;22192:58;22284:6;22279:2;22271:6;22267:15;22260:31;22075:223;:::o;22304:366::-;22446:3;22467:67;22531:2;22526:3;22467:67;:::i;:::-;22460:74;;22543:93;22632:3;22543:93;:::i;:::-;22661:2;22656:3;22652:12;22645:19;;22304:366;;;:::o;22676:419::-;22842:4;22880:2;22869:9;22865:18;22857:26;;22929:9;22923:4;22919:20;22915:1;22904:9;22900:17;22893:47;22957:131;23083:4;22957:131;:::i;:::-;22949:139;;22676:419;;;:::o;23101:221::-;23241:34;23237:1;23229:6;23225:14;23218:58;23310:4;23305:2;23297:6;23293:15;23286:29;23101:221;:::o;23328:366::-;23470:3;23491:67;23555:2;23550:3;23491:67;:::i;:::-;23484:74;;23567:93;23656:3;23567:93;:::i;:::-;23685:2;23680:3;23676:12;23669:19;;23328:366;;;:::o;23700:419::-;23866:4;23904:2;23893:9;23889:18;23881:26;;23953:9;23947:4;23943:20;23939:1;23928:9;23924:17;23917:47;23981:131;24107:4;23981:131;:::i;:::-;23973:139;;23700:419;;;:::o;24125:224::-;24265:34;24261:1;24253:6;24249:14;24242:58;24334:7;24329:2;24321:6;24317:15;24310:32;24125:224;:::o;24355:366::-;24497:3;24518:67;24582:2;24577:3;24518:67;:::i;:::-;24511:74;;24594:93;24683:3;24594:93;:::i;:::-;24712:2;24707:3;24703:12;24696:19;;24355:366;;;:::o;24727:419::-;24893:4;24931:2;24920:9;24916:18;24908:26;;24980:9;24974:4;24970:20;24966:1;24955:9;24951:17;24944:47;25008:131;25134:4;25008:131;:::i;:::-;25000:139;;24727:419;;;:::o;25152:222::-;25292:34;25288:1;25280:6;25276:14;25269:58;25361:5;25356:2;25348:6;25344:15;25337:30;25152:222;:::o;25380:366::-;25522:3;25543:67;25607:2;25602:3;25543:67;:::i;:::-;25536:74;;25619:93;25708:3;25619:93;:::i;:::-;25737:2;25732:3;25728:12;25721:19;;25380:366;;;:::o;25752:419::-;25918:4;25956:2;25945:9;25941:18;25933:26;;26005:9;25999:4;25995:20;25991:1;25980:9;25976:17;25969:47;26033:131;26159:4;26033:131;:::i;:::-;26025:139;;25752:419;;;:::o;26177:228::-;26317:34;26313:1;26305:6;26301:14;26294:58;26386:11;26381:2;26373:6;26369:15;26362:36;26177:228;:::o;26411:366::-;26553:3;26574:67;26638:2;26633:3;26574:67;:::i;:::-;26567:74;;26650:93;26739:3;26650:93;:::i;:::-;26768:2;26763:3;26759:12;26752:19;;26411:366;;;:::o;26783:419::-;26949:4;26987:2;26976:9;26972:18;26964:26;;27036:9;27030:4;27026:20;27022:1;27011:9;27007:17;27000:47;27064:131;27190:4;27064:131;:::i;:::-;27056:139;;26783:419;;;:::o;27208:250::-;27348:34;27344:1;27336:6;27332:14;27325:58;27417:33;27412:2;27404:6;27400:15;27393:58;27208:250;:::o;27464:366::-;27606:3;27627:67;27691:2;27686:3;27627:67;:::i;:::-;27620:74;;27703:93;27792:3;27703:93;:::i;:::-;27821:2;27816:3;27812:12;27805:19;;27464:366;;;:::o;27836:419::-;28002:4;28040:2;28029:9;28025:18;28017:26;;28089:9;28083:4;28079:20;28075:1;28064:9;28060:17;28053:47;28117:131;28243:4;28117:131;:::i;:::-;28109:139;;27836:419;;;:::o;28261:178::-;28401:30;28397:1;28389:6;28385:14;28378:54;28261:178;:::o;28445:366::-;28587:3;28608:67;28672:2;28667:3;28608:67;:::i;:::-;28601:74;;28684:93;28773:3;28684:93;:::i;:::-;28802:2;28797:3;28793:12;28786:19;;28445:366;;;:::o;28817:419::-;28983:4;29021:2;29010:9;29006:18;28998:26;;29070:9;29064:4;29060:20;29056:1;29045:9;29041:17;29034:47;29098:131;29224:4;29098:131;:::i;:::-;29090:139;;28817:419;;;:::o;29242:222::-;29382:34;29378:1;29370:6;29366:14;29359:58;29451:5;29446:2;29438:6;29434:15;29427:30;29242:222;:::o;29470:366::-;29612:3;29633:67;29697:2;29692:3;29633:67;:::i;:::-;29626:74;;29709:93;29798:3;29709:93;:::i;:::-;29827:2;29822:3;29818:12;29811:19;;29470:366;;;:::o;29842:419::-;30008:4;30046:2;30035:9;30031:18;30023:26;;30095:9;30089:4;30085:20;30081:1;30070:9;30066:17;30059:47;30123:131;30249:4;30123:131;:::i;:::-;30115:139;;29842:419;;;:::o;30267:191::-;30307:3;30326:20;30344:1;30326:20;:::i;:::-;30321:25;;30360:20;30378:1;30360:20;:::i;:::-;30355:25;;30403:1;30400;30396:9;30389:16;;30424:3;30421:1;30418:10;30415:36;;;30431:18;;:::i;:::-;30415:36;30267:191;;;;:::o;30464:222::-;30604:34;30600:1;30592:6;30588:14;30581:58;30673:5;30668:2;30660:6;30656:15;30649:30;30464:222;:::o;30692:366::-;30834:3;30855:67;30919:2;30914:3;30855:67;:::i;:::-;30848:74;;30931:93;31020:3;30931:93;:::i;:::-;31049:2;31044:3;31040:12;31033:19;;30692:366;;;:::o;31064:419::-;31230:4;31268:2;31257:9;31253:18;31245:26;;31317:9;31311:4;31307:20;31303:1;31292:9;31288:17;31281:47;31345:131;31471:4;31345:131;:::i;:::-;31337:139;;31064:419;;;:::o;31489:194::-;31529:4;31549:20;31567:1;31549:20;:::i;:::-;31544:25;;31583:20;31601:1;31583:20;:::i;:::-;31578:25;;31627:1;31624;31620:9;31612:17;;31651:1;31645:4;31642:11;31639:37;;;31656:18;;:::i;:::-;31639:37;31489:194;;;;:::o;31689:229::-;31829:34;31825:1;31817:6;31813:14;31806:58;31898:12;31893:2;31885:6;31881:15;31874:37;31689:229;:::o;31924:366::-;32066:3;32087:67;32151:2;32146:3;32087:67;:::i;:::-;32080:74;;32163:93;32252:3;32163:93;:::i;:::-;32281:2;32276:3;32272:12;32265:19;;31924:366;;;:::o;32296:419::-;32462:4;32500:2;32489:9;32485:18;32477:26;;32549:9;32543:4;32539:20;32535:1;32524:9;32520:17;32513:47;32577:131;32703:4;32577:131;:::i;:::-;32569:139;;32296:419;;;:::o;32721:143::-;32778:5;32809:6;32803:13;32794:22;;32825:33;32852:5;32825:33;:::i;:::-;32721:143;;;;:::o;32870:351::-;32940:6;32989:2;32977:9;32968:7;32964:23;32960:32;32957:119;;;32995:79;;:::i;:::-;32957:119;33115:1;33140:64;33196:7;33187:6;33176:9;33172:22;33140:64;:::i;:::-;33130:74;;33086:128;32870:351;;;;:::o;33227:85::-;33272:7;33301:5;33290:16;;33227:85;;;:::o;33318:158::-;33376:9;33409:61;33427:42;33436:32;33462:5;33436:32;:::i;:::-;33427:42;:::i;:::-;33409:61;:::i;:::-;33396:74;;33318:158;;;:::o;33482:147::-;33577:45;33616:5;33577:45;:::i;:::-;33572:3;33565:58;33482:147;;:::o;33635:114::-;33702:6;33736:5;33730:12;33720:22;;33635:114;;;:::o;33755:184::-;33854:11;33888:6;33883:3;33876:19;33928:4;33923:3;33919:14;33904:29;;33755:184;;;;:::o;33945:132::-;34012:4;34035:3;34027:11;;34065:4;34060:3;34056:14;34048:22;;33945:132;;;:::o;34083:108::-;34160:24;34178:5;34160:24;:::i;:::-;34155:3;34148:37;34083:108;;:::o;34197:179::-;34266:10;34287:46;34329:3;34321:6;34287:46;:::i;:::-;34365:4;34360:3;34356:14;34342:28;;34197:179;;;;:::o;34382:113::-;34452:4;34484;34479:3;34475:14;34467:22;;34382:113;;;:::o;34531:732::-;34650:3;34679:54;34727:5;34679:54;:::i;:::-;34749:86;34828:6;34823:3;34749:86;:::i;:::-;34742:93;;34859:56;34909:5;34859:56;:::i;:::-;34938:7;34969:1;34954:284;34979:6;34976:1;34973:13;34954:284;;;35055:6;35049:13;35082:63;35141:3;35126:13;35082:63;:::i;:::-;35075:70;;35168:60;35221:6;35168:60;:::i;:::-;35158:70;;35014:224;35001:1;34998;34994:9;34989:14;;34954:284;;;34958:14;35254:3;35247:10;;34655:608;;;34531:732;;;;:::o;35269:831::-;35532:4;35570:3;35559:9;35555:19;35547:27;;35584:71;35652:1;35641:9;35637:17;35628:6;35584:71;:::i;:::-;35665:80;35741:2;35730:9;35726:18;35717:6;35665:80;:::i;:::-;35792:9;35786:4;35782:20;35777:2;35766:9;35762:18;35755:48;35820:108;35923:4;35914:6;35820:108;:::i;:::-;35812:116;;35938:72;36006:2;35995:9;35991:18;35982:6;35938:72;:::i;:::-;36020:73;36088:3;36077:9;36073:19;36064:6;36020:73;:::i;:::-;35269:831;;;;;;;;:::o;36106:180::-;36154:77;36151:1;36144:88;36251:4;36248:1;36241:15;36275:4;36272:1;36265:15;36292:185;36332:1;36349:20;36367:1;36349:20;:::i;:::-;36344:25;;36383:20;36401:1;36383:20;:::i;:::-;36378:25;;36422:1;36412:35;;36427:18;;:::i;:::-;36412:35;36469:1;36466;36462:9;36457:14;;36292:185;;;;:::o;36483:177::-;36623:29;36619:1;36611:6;36607:14;36600:53;36483:177;:::o;36666:366::-;36808:3;36829:67;36893:2;36888:3;36829:67;:::i;:::-;36822:74;;36905:93;36994:3;36905:93;:::i;:::-;37023:2;37018:3;37014:12;37007:19;;36666:366;;;:::o;37038:419::-;37204:4;37242:2;37231:9;37227:18;37219:26;;37291:9;37285:4;37281:20;37277:1;37266:9;37262:17;37255:47;37319:131;37445:4;37319:131;:::i;:::-;37311:139;;37038:419;;;:::o;37463:220::-;37603:34;37599:1;37591:6;37587:14;37580:58;37672:3;37667:2;37659:6;37655:15;37648:28;37463:220;:::o;37689:366::-;37831:3;37852:67;37916:2;37911:3;37852:67;:::i;:::-;37845:74;;37928:93;38017:3;37928:93;:::i;:::-;38046:2;38041:3;38037:12;38030:19;;37689:366;;;:::o;38061:419::-;38227:4;38265:2;38254:9;38250:18;38242:26;;38314:9;38308:4;38304:20;38300:1;38289:9;38285:17;38278:47;38342:131;38468:4;38342:131;:::i;:::-;38334:139;;38061:419;;;:::o

Swarm Source

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