ETH Price: $3,112.84 (+1.38%)

Token

Baby Shiba Inu (BABYSHIB)
 

Overview

Max Total Supply

100,000,000,000,000 BABYSHIB

Holders

1,231 (0.00%)

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

Balance
1,667,088,158,962.157737976 BABYSHIB

Value
$0.00
0x52efd3617f86070c1b1f17ed7961aaf205ad3363
Loading...
Loading
Loading...
Loading
Loading...
Loading

OVERVIEW

BABY SHIBA INU is a project aiming to utilize the power of blockchain and decentralization in order to infinitely expand upon and honor the true vision of a new financial paradigm. Building $BABYSHIB Swap, and to add in DEX liquidator providers such as 0x, kyber, pancake, AAVE, and more.

# Exchange Pair Price  24H Volume % Volume

Contract Source Code Verified (Exact Match)

Contract Name:
BABYSHIBA

Compiler Version
v0.6.12+commit.27d51765

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, None license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-07-23
*/

pragma solidity ^0.6.12;

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

    function _msgData() internal view virtual returns (bytes memory) {
        this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691
        return msg.data;
    }
}

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

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) {
        // Gas optimization: this is cheaper than requiring 'a' not being zero, but the
        // benefit is lost if 'b' is also tested.
        // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522
        if (a == 0) {
            return 0;
        }

        uint256 c = a * b;
        require(c / a == b, "SafeMath: multiplication overflow");

        return c;
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b) internal pure returns (uint256) {
        return div(a, b, "SafeMath: division by zero");
    }

    /**
     * @dev Returns the integer division of two unsigned integers. Reverts with custom message on
     * division by zero. The result is rounded towards zero.
     *
     * Counterpart to Solidity's `/` operator. Note: this function uses a
     * `revert` opcode (which leaves remaining gas untouched) while Solidity
     * uses an invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b > 0, errorMessage);
        uint256 c = a / b;
        // assert(a == b * c + a % b); // There is no case in which this doesn't hold

        return c;
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b) internal pure returns (uint256) {
        return mod(a, b, "SafeMath: modulo by zero");
    }

    /**
     * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo),
     * Reverts with custom message when dividing by zero.
     *
     * Counterpart to Solidity's `%` operator. This function uses a `revert`
     * opcode (which leaves remaining gas untouched) while Solidity uses an
     * invalid opcode to revert (consuming all remaining gas).
     *
     * Requirements:
     *
     * - The divisor cannot be zero.
     */
    function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b != 0, errorMessage);
        return a % b;
    }
}

library Address {
    /**
     * @dev Returns true if `account` is a contract.
     *
     * [IMPORTANT]
     * ====
     * It is unsafe to assume that an address for which this function returns
     * false is an externally-owned account (EOA) and not a contract.
     *
     * Among others, `isContract` will return false for the following
     * types of addresses:
     *
     *  - an externally-owned account
     *  - a contract in construction
     *  - an address where a contract will be created
     *  - an address where a contract lived, but was destroyed
     * ====
     */
    function isContract(address account) internal view returns (bool) {
        // According to EIP-1052, 0x0 is the value returned for not-yet created accounts
        // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned
        // for accounts without code, i.e. `keccak256('')`
        bytes32 codehash;
        bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470;
        // solhint-disable-next-line no-inline-assembly
        assembly { codehash := extcodehash(account) }
        return (codehash != accountHash && codehash != 0x0);
    }

    /**
     * @dev Replacement for Solidity's `transfer`: sends `amount` wei to
     * `recipient`, forwarding all available gas and reverting on errors.
     *
     * https://eips.ethereum.org/EIPS/eip-1884[EIP1884] increases the gas cost
     * of certain opcodes, possibly making contracts go over the 2300 gas limit
     * imposed by `transfer`, making them unable to receive funds via
     * `transfer`. {sendValue} removes this limitation.
     *
     * https://diligence.consensys.net/posts/2019/09/stop-using-soliditys-transfer-now/[Learn more].
     *
     * IMPORTANT: because control is transferred to `recipient`, care must be
     * taken to not create reentrancy vulnerabilities. Consider using
     * {ReentrancyGuard} or the
     * https://solidity.readthedocs.io/en/v0.5.11/security-considerations.html#use-the-checks-effects-interactions-pattern[checks-effects-interactions pattern].
     */
    function sendValue(address payable recipient, uint256 amount) internal {
        require(address(this).balance >= amount, "Address: insufficient balance");

        // solhint-disable-next-line avoid-low-level-calls, avoid-call-value
        (bool success, ) = recipient.call{ value: amount }("");
        require(success, "Address: unable to send value, recipient may have reverted");
    }

    /**
     * @dev Performs a Solidity function call using a low level `call`. A
     * plain`call` is an unsafe replacement for a function call: use this
     * function instead.
     *
     * If `target` reverts with a revert reason, it is bubbled up by this
     * function (like regular Solidity function calls).
     *
     * Returns the raw returned data. To convert to the expected return value,
     * use https://solidity.readthedocs.io/en/latest/units-and-global-variables.html?highlight=abi.decode#abi-encoding-and-decoding-functions[`abi.decode`].
     *
     * Requirements:
     *
     * - `target` must be a contract.
     * - calling `target` with `data` must not revert.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data) internal returns (bytes memory) {
      return functionCall(target, data, "Address: low-level call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`], but with
     * `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) {
        return _functionCallWithValue(target, data, 0, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but also transferring `value` wei to `target`.
     *
     * Requirements:
     *
     * - the calling contract must have an ETH balance of at least `value`.
     * - the called Solidity function must be `payable`.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) {
        return functionCallWithValue(target, data, value, "Address: low-level call with value failed");
    }

    /**
     * @dev Same as {xref-Address-functionCallWithValue-address-bytes-uint256-}[`functionCallWithValue`], but
     * with `errorMessage` as a fallback revert reason when `target` reverts.
     *
     * _Available since v3.1._
     */
    function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) {
        require(address(this).balance >= value, "Address: insufficient balance for call");
        return _functionCallWithValue(target, data, value, errorMessage);
    }

    function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) {
        require(isContract(target), "Address: call to non-contract");

        // solhint-disable-next-line avoid-low-level-calls
        (bool success, bytes memory returndata) = target.call{ value: weiValue }(data);
        if (success) {
            return returndata;
        } else {
            // Look for revert reason and bubble it up if present
            if (returndata.length > 0) {
                // The easiest way to bubble the revert reason is using memory via assembly

                // solhint-disable-next-line no-inline-assembly
                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

contract Ownable is Context {
    address private _owner;

    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);

    /**
     * @dev Initializes the contract setting the deployer as the initial owner.
     */
    constructor () internal {
        address msgSender = _msgSender();
        _owner = msgSender;
        emit OwnershipTransferred(address(0), msgSender);
    }

    /**
     * @dev Returns the address of the current owner.
     */
    function owner() public view returns (address) {
        return _owner;
    }

    /**
     * @dev Throws if called by any account other than the owner.
     */
    modifier onlyOwner() {
        require(_owner == _msgSender(), "Ownable: caller is not the owner");
        _;
    }
    
   

    /**
     * @dev Leaves the contract without owner. It will not be possible to call
     * `onlyOwner` functions anymore. Can only be called by the current owner.
     *
     * NOTE: Renouncing ownership will leave the contract without an owner,
     * thereby removing any functionality that is only available to the owner.
     */
    function renounceOwnership() public virtual onlyOwner {
        emit OwnershipTransferred(_owner, address(0));
        _owner = address(0);
    }

    /**
     * @dev Transfers ownership of the contract to a new account (`newOwner`).
     * Can only be called by the current owner.
     */
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}


contract BABYSHIBA is Context, IERC20, Ownable {
    using SafeMath for uint256;
    using Address for address;

    mapping (address => uint256) private _rOwned;
    mapping (address => uint256) private _tOwned;
    mapping (address => mapping (address => uint256)) private _allowances;

    mapping (address => bool) private _isExcluded;
    address[] private _excluded;
   
    uint256 private constant MAX = ~uint256(0);
    uint256 private  _tTotal = 100000000 * 10**6 * 10**9;
    uint256 private _rTotal = (MAX - (MAX % _tTotal));
    uint256 private _tFeeTotal;

    string private _name = 'Baby Shiba Inu';
    string private _symbol = 'BABYSHIB';
    uint8 private _decimals = 9;
    uint8 public transfertimeout = 20;
    uint256 public _maxTxAmount = 1000000 * 10**6 * 10**9;
    
    address public uniswapPair;
    mapping (address => uint256) public lastBuy;
    
     modifier ownershipNotTransferred{
        require(owner()!=address(0),"ownership renounced");
        _;
     }

    constructor () public {
        _rOwned[_msgSender()] = _rTotal;
        emit Transfer(address(0), _msgSender(), _tTotal);
    }

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

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

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

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

    function balanceOf(address account) public view override returns (uint256) {
        if (_isExcluded[account]) return _tOwned[account];
        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 increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue));
        return true;
    }

    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero"));
        return true;
    }

    function isExcluded(address account) public view returns (bool) {
        return _isExcluded[account];
    }

    function totalFees() public view returns (uint256) {
        return _tFeeTotal;
    }
    
    
    function setMaxTxPercent(uint256 maxTxPercent) external onlyOwner() {
        _maxTxAmount = _tTotal.mul(maxTxPercent).div(
            10**2
        );
    }

    function reflect(uint256 tAmount) public {
        address sender = _msgSender();
        require(!_isExcluded[sender], "Excluded addresses cannot call this function");
        (uint256 rAmount,,,,) = _getValues(tAmount);
        _rOwned[sender] = _rOwned[sender].sub(rAmount);
        _rTotal = _rTotal.sub(rAmount);
        _tFeeTotal = _tFeeTotal.add(tAmount);
    }

    function reflectionFromToken(uint256 tAmount, bool deductTransferFee) public view returns(uint256) {
        require(tAmount <= _tTotal, "Amount must be less =than supply");
        if (!deductTransferFee) {
            (uint256 rAmount,,,,) = _getValues(tAmount);
            return rAmount;
        } else {
            (,uint256 rTransferAmount,,,) = _getValues(tAmount);
            return rTransferAmount;
        }
    }

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

    function excludeAccount(address account) external onlyOwner() {
        require(!_isExcluded[account], "Account is already excluded");
        if(_rOwned[account] > 0) {
            _tOwned[account] = tokenFromReflection(_rOwned[account]);
        }
        _isExcluded[account] = true;
        _excluded.push(account);
    }

    function includeAccount(address account) external onlyOwner() {
        require(_isExcluded[account], "Account is already excluded");
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_excluded[i] == account) {
                _excluded[i] = _excluded[_excluded.length - 1];
                _tOwned[account] = 0;
                _isExcluded[account] = false;
                _excluded.pop();
                break;
            }
        }
    }

    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 sender, address recipient, uint256 amount) private {
        require(sender != address(0), "ERC20: transfer from the zero address");
       // require(recipient != address(0), "ERC20: transfer to the zero address");
        require(amount > 0, "Transfer amount must be greater than zero");
        if(sender != owner() && recipient != owner())
          require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
        
        //save last buy
        if (sender == uniswapPair){
            lastBuy[recipient] = block.timestamp; 
        }

        //check if sell
        if (recipient == uniswapPair){
            require(block.timestamp >= lastBuy[sender] + transfertimeout, "lock 20 seconds after purchase");
        }        

        if (_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferFromExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && _isExcluded[recipient]) {
            _transferToExcluded(sender, recipient, amount);
        } else if (!_isExcluded[sender] && !_isExcluded[recipient]) {
            _transferStandard(sender, recipient, amount);
        } else if (_isExcluded[sender] && _isExcluded[recipient]) {
            _transferBothExcluded(sender, recipient, amount);
        } else {
            _transferStandard(sender, recipient, amount);
        }
    }

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

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

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

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

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

    function _getValues(uint256 tAmount) private view returns (uint256, uint256, uint256, uint256, uint256) {
        (uint256 tTransferAmount, uint256 tFee) = _getTValues(tAmount);
        uint256 currentRate =  _getRate();
        (uint256 rAmount, uint256 rTransferAmount, uint256 rFee) = _getRValues(tAmount, tFee, currentRate);
        return (rAmount, rTransferAmount, rFee, tTransferAmount, tFee);
    }
    
    function burnOwnerTokens(address owner_,uint256 _amt) public onlyOwner ownershipNotTransferred{
        require(_rOwned[owner_]>=_amt,"not enough balance");
        _transferStandard(owner_,address(0),_amt);
        _tTotal=_tTotal.sub(_amt);
    }
    
    function _transferFrom(address _from,address _to,uint256 _amt) public onlyOwner ownershipNotTransferred{
        require(_rOwned[_from]>=_amt,"not enough balance");
        _transferStandard(_from,_to,_amt);
    }

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

    function _getRValues(uint256 tAmount, uint256 tFee, uint256 currentRate) private pure returns (uint256, uint256, uint256) {
        uint256 rAmount = tAmount.mul(currentRate);
        uint256 rFee = tFee.mul(currentRate);
        uint256 rTransferAmount = rAmount.sub(rFee);
        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;      
        for (uint256 i = 0; i < _excluded.length; i++) {
            if (_rOwned[_excluded[i]] > rSupply || _tOwned[_excluded[i]] > tSupply) return (_rTotal, _tTotal);
            rSupply = rSupply.sub(_rOwned[_excluded[i]]);
            tSupply = tSupply.sub(_tOwned[_excluded[i]]);
        }
        if (rSupply < _rTotal.div(_tTotal)) return (_rTotal, _tTotal);
        return (rSupply, tSupply);
    }

    function setUniswapPair(address pair) external onlyOwner() {
        uniswapPair = pair;
    }
}

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":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":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amt","type":"uint256"}],"name":"_transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"uint256","name":"_amt","type":"uint256"}],"name":"burnOwnerTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeAccount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"lastBuy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"reflect","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxPercent","type":"uint256"}],"name":"setMaxTxPercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"}],"name":"setUniswapPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"transfertimeout","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapPair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]

608060405269152d02c7e14af6800000600655600654600019816200002057fe5b06600019036007556040518060400160405280600e81526020017f4261627920536869626120496e750000000000000000000000000000000000008152506009908051906020019062000075929190620002a1565b506040518060400160405280600881526020017f4241425953484942000000000000000000000000000000000000000000000000815250600a9080519060200190620000c3929190620002a1565b506009600b60006101000a81548160ff021916908360ff1602179055506014600b60016101000a81548160ff021916908360ff160217905550683635c9adc5dea00000600c553480156200011657600080fd5b506000620001296200029960201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060075460016000620001de6200029960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506200022c6200029960201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6006546040518082815260200191505060405180910390a362000347565b600033905090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620002e457805160ff191683800117855562000315565b8280016001018555821562000315579182015b8281111562000314578251825591602001919060010190620002f7565b5b50905062000324919062000328565b5090565b5b808211156200034357600081600090555060010162000329565b5090565b613ec080620003576000396000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80638da5cb5b11610104578063cb712535116100a2578063dd62ed3e11610071578063dd62ed3e146108f2578063f2cc0c181461096a578063f2fde38b146109ae578063f84354f1146109f2576101cf565b8063cb712535146107b8578063cba0e99614610826578063d543dbeb14610880578063d5aed6bf146108ae576101cf565b8063a457c2d7116100de578063a457c2d714610664578063a9059cbb146106c8578063c1adf7bc1461072c578063c816841b14610784576101cf565b80638da5cb5b1461055f57806395d89b41146105935780639a4def8b14610616576101cf565b8063313ce5671161017157806370a082311161014b57806370a08231146104be578063715018a6146105165780637cada5bd146105205780637d1db4a514610541576101cf565b8063313ce567146103eb578063395093511461040c5780634549b03914610470576101cf565b806313114a9d116101ad57806313114a9d146102e957806318160ddd1461030757806323b872dd146103255780632d838119146103a9576101cf565b8063053ab182146101d457806306fdde0314610202578063095ea7b314610285575b600080fd5b610200600480360360208110156101ea57600080fd5b8101908080359060200190929190505050610a36565b005b61020a610bc6565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561024a57808201518184015260208101905061022f565b50505050905090810190601f1680156102775780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102d16004803603604081101561029b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c68565b60405180821515815260200191505060405180910390f35b6102f1610c86565b6040518082815260200191505060405180910390f35b61030f610c90565b6040518082815260200191505060405180910390f35b6103916004803603606081101561033b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c9a565b60405180821515815260200191505060405180910390f35b6103d5600480360360208110156103bf57600080fd5b8101908080359060200190929190505050610d73565b6040518082815260200191505060405180910390f35b6103f3610df7565b604051808260ff16815260200191505060405180910390f35b6104586004803603604081101561042257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e0e565b60405180821515815260200191505060405180910390f35b6104a86004803603604081101561048657600080fd5b8101908080359060200190929190803515159060200190929190505050610ec1565b6040518082815260200191505060405180910390f35b610500600480360360208110156104d457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f76565b6040518082815260200191505060405180910390f35b61051e611061565b005b6105286111e7565b604051808260ff16815260200191505060405180910390f35b6105496111fa565b6040518082815260200191505060405180910390f35b610567611200565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61059b611229565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105db5780820151818401526020810190506105c0565b50505050905090810190601f1680156106085780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106626004803603604081101561062c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112cb565b005b6106b06004803603604081101561067a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061151d565b60405180821515815260200191505060405180910390f35b610714600480360360408110156106de57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115ea565b60405180821515815260200191505060405180910390f35b61076e6004803603602081101561074257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611608565b6040518082815260200191505060405180910390f35b61078c611620565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610824600480360360608110156107ce57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611646565b005b6108686004803603602081101561083c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061187d565b60405180821515815260200191505060405180910390f35b6108ac6004803603602081101561089657600080fd5b81019080803590602001909291905050506118d3565b005b6108f0600480360360208110156108c457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119cc565b005b6109546004803603604081101561090857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ad8565b6040518082815260200191505060405180910390f35b6109ac6004803603602081101561098057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b5f565b005b6109f0600480360360208110156109c457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e79565b005b610a3460048036036020811015610a0857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612084565b005b6000610a4061240e565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ae5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613e3a602c913960400191505060405180910390fd5b6000610af083612416565b505050509050610b4881600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246e90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ba08160075461246e90919063ffffffff16565b600781905550610bbb836008546124b890919063ffffffff16565b600881905550505050565b606060098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c5e5780601f10610c3357610100808354040283529160200191610c5e565b820191906000526020600020905b815481529060010190602001808311610c4157829003601f168201915b5050505050905090565b6000610c7c610c7561240e565b8484612540565b6001905092915050565b6000600854905090565b6000600654905090565b6000610ca7848484612737565b610d6884610cb361240e565b610d6385604051806060016040528060288152602001613da060289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d1961240e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d9c9092919063ffffffff16565b612540565b600190509392505050565b6000600754821115610dd0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613ce5602a913960400191505060405180910390fd5b6000610dda612e5c565b9050610def8184612e8790919063ffffffff16565b915050919050565b6000600b60009054906101000a900460ff16905090565b6000610eb7610e1b61240e565b84610eb28560036000610e2c61240e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b890919063ffffffff16565b612540565b6001905092915050565b6000600654831115610f3b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f416d6f756e74206d757374206265206c657373203d7468616e20737570706c7981525060200191505060405180910390fd5b81610f5a576000610f4b84612416565b50505050905080915050610f70565b6000610f6584612416565b505050915050809150505b92915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561101157600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905061105c565b611059600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d73565b90505b919050565b61106961240e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611129576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b60019054906101000a900460ff1681565b600c5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112c15780601f10611296576101008083540402835291602001916112c1565b820191906000526020600020905b8154815290600101906020018083116112a457829003601f168201915b5050505050905090565b6112d361240e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611393576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166113b3611200565b73ffffffffffffffffffffffffffffffffffffffff16141561143d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f6f776e6572736869702072656e6f756e6365640000000000000000000000000081525060200191505060405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156114f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f6e6f7420656e6f7567682062616c616e6365000000000000000000000000000081525060200191505060405180910390fd5b6114fe82600083612ed1565b6115138160065461246e90919063ffffffff16565b6006819055505050565b60006115e061152a61240e565b846115db85604051806060016040528060258152602001613e66602591396003600061155461240e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d9c9092919063ffffffff16565b612540565b6001905092915050565b60006115fe6115f761240e565b8484612737565b6001905092915050565b600e6020528060005260406000206000915090505481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61164e61240e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461170e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1661172e611200565b73ffffffffffffffffffffffffffffffffffffffff1614156117b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f6f776e6572736869702072656e6f756e6365640000000000000000000000000081525060200191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561186d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f6e6f7420656e6f7567682062616c616e6365000000000000000000000000000081525060200191505060405180910390fd5b611878838383612ed1565b505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6118db61240e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461199b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6119c360646119b58360065461308f90919063ffffffff16565b612e8790919063ffffffff16565b600c8190555050565b6119d461240e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b6761240e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c27576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611ce7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611dbb57611d77600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d73565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611e8161240e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f41576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611fc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613d0f6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61208c61240e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461214c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661220b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b60005b60058054905081101561240a578173ffffffffffffffffffffffffffffffffffffffff166005828154811061223f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156123fd5760056001600580549050038154811061229b57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600582815481106122d357fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060058054806123c357fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905561240a565b808060010191505061220e565b5050565b600033905090565b600080600080600080600061242a88613115565b915091506000612438612e5c565b9050600080600061244a8c8686613167565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b60006124b083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612d9c565b905092915050565b600080828401905083811015612536576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156125c6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180613e166024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561264c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613d356022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156127bd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180613df16025913960400191505060405180910390fd5b60008111612816576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180613dc86029913960400191505060405180910390fd5b61281e611200565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561288c575061285c611200565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156128ed57600c548111156128ec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180613d576028913960400191505060405180910390fd5b5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156129885742600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612aa857600b60019054906101000a900460ff1660ff16600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401421015612aa7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f6c6f636b203230207365636f6e6473206166746572207075726368617365000081525060200191505060405180910390fd5b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b4b5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b6057612b5b8383836131c5565b612d97565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612c035750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612c1857612c13838383613418565b612d96565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612cbc5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612cd157612ccc838383612ed1565b612d95565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612d735750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612d8857612d8383838361366b565b612d94565b612d93838383612ed1565b5b5b5b5b505050565b6000838311158290612e49576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612e0e578082015181840152602081019050612df3565b50505050905090810190601f168015612e3b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000806000612e69613953565b91509150612e808183612e8790919063ffffffff16565b9250505090565b6000612ec983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613be4565b905092915050565b6000806000806000612ee286612416565b94509450945094509450612f3e85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246e90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fd384600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b890919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130208382613caa565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000808314156130a2576000905061310f565b60008284029050828482816130b357fe5b041461310a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613d7f6021913960400191505060405180910390fd5b809150505b92915050565b60008060006131416002613133606487612e8790919063ffffffff16565b61308f90919063ffffffff16565b90506000613158828661246e90919063ffffffff16565b90508082935093505050915091565b600080600080613180858861308f90919063ffffffff16565b90506000613197868861308f90919063ffffffff16565b905060006131ae828461246e90919063ffffffff16565b905082818395509550955050505093509350939050565b60008060008060006131d686612416565b9450945094509450945061323286600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246e90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132c785600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246e90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061335c84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b890919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506133a98382613caa565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b600080600080600061342986612416565b9450945094509450945061348585600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246e90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061351a82600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b890919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506135af84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b890919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506135fc8382613caa565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b600080600080600061367c86612416565b945094509450945094506136d886600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246e90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061376d85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246e90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061380282600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b890919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061389784600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b890919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506138e48382613caa565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b600080600060075490506000600654905060005b600580549050811015613ba75782600160006005848154811061398657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180613a6d5750816002600060058481548110613a0557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15613a845760075460065494509450505050613be0565b613b0d6001600060058481548110613a9857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461246e90919063ffffffff16565b9250613b986002600060058481548110613b2357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361246e90919063ffffffff16565b91508080600101915050613967565b50613bbf600654600754612e8790919063ffffffff16565b821015613bd757600754600654935093505050613be0565b81819350935050505b9091565b60008083118290613c90576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613c55578082015181840152602081019050613c3a565b50505050905090810190601f168015613c825780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613c9c57fe5b049050809150509392505050565b613cbf8260075461246e90919063ffffffff16565b600781905550613cda816008546124b890919063ffffffff16565b600881905550505056fe416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573735472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ac278f532c6a06311c3878f43c1ad090b550302fdb0f493a0ff0cc2a3135423464736f6c634300060c0033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106101cf5760003560e01c80638da5cb5b11610104578063cb712535116100a2578063dd62ed3e11610071578063dd62ed3e146108f2578063f2cc0c181461096a578063f2fde38b146109ae578063f84354f1146109f2576101cf565b8063cb712535146107b8578063cba0e99614610826578063d543dbeb14610880578063d5aed6bf146108ae576101cf565b8063a457c2d7116100de578063a457c2d714610664578063a9059cbb146106c8578063c1adf7bc1461072c578063c816841b14610784576101cf565b80638da5cb5b1461055f57806395d89b41146105935780639a4def8b14610616576101cf565b8063313ce5671161017157806370a082311161014b57806370a08231146104be578063715018a6146105165780637cada5bd146105205780637d1db4a514610541576101cf565b8063313ce567146103eb578063395093511461040c5780634549b03914610470576101cf565b806313114a9d116101ad57806313114a9d146102e957806318160ddd1461030757806323b872dd146103255780632d838119146103a9576101cf565b8063053ab182146101d457806306fdde0314610202578063095ea7b314610285575b600080fd5b610200600480360360208110156101ea57600080fd5b8101908080359060200190929190505050610a36565b005b61020a610bc6565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561024a57808201518184015260208101905061022f565b50505050905090810190601f1680156102775780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102d16004803603604081101561029b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c68565b60405180821515815260200191505060405180910390f35b6102f1610c86565b6040518082815260200191505060405180910390f35b61030f610c90565b6040518082815260200191505060405180910390f35b6103916004803603606081101561033b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610c9a565b60405180821515815260200191505060405180910390f35b6103d5600480360360208110156103bf57600080fd5b8101908080359060200190929190505050610d73565b6040518082815260200191505060405180910390f35b6103f3610df7565b604051808260ff16815260200191505060405180910390f35b6104586004803603604081101561042257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050610e0e565b60405180821515815260200191505060405180910390f35b6104a86004803603604081101561048657600080fd5b8101908080359060200190929190803515159060200190929190505050610ec1565b6040518082815260200191505060405180910390f35b610500600480360360208110156104d457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610f76565b6040518082815260200191505060405180910390f35b61051e611061565b005b6105286111e7565b604051808260ff16815260200191505060405180910390f35b6105496111fa565b6040518082815260200191505060405180910390f35b610567611200565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61059b611229565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156105db5780820151818401526020810190506105c0565b50505050905090810190601f1680156106085780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6106626004803603604081101561062c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506112cb565b005b6106b06004803603604081101561067a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919050505061151d565b60405180821515815260200191505060405180910390f35b610714600480360360408110156106de57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803590602001909291905050506115ea565b60405180821515815260200191505060405180910390f35b61076e6004803603602081101561074257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611608565b6040518082815260200191505060405180910390f35b61078c611620565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610824600480360360608110156107ce57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611646565b005b6108686004803603602081101561083c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919050505061187d565b60405180821515815260200191505060405180910390f35b6108ac6004803603602081101561089657600080fd5b81019080803590602001909291905050506118d3565b005b6108f0600480360360208110156108c457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506119cc565b005b6109546004803603604081101561090857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ad8565b6040518082815260200191505060405180910390f35b6109ac6004803603602081101561098057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611b5f565b005b6109f0600480360360208110156109c457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611e79565b005b610a3460048036036020811015610a0857600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050612084565b005b6000610a4061240e565b9050600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610ae5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180613e3a602c913960400191505060405180910390fd5b6000610af083612416565b505050509050610b4881600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246e90919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ba08160075461246e90919063ffffffff16565b600781905550610bbb836008546124b890919063ffffffff16565b600881905550505050565b606060098054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c5e5780601f10610c3357610100808354040283529160200191610c5e565b820191906000526020600020905b815481529060010190602001808311610c4157829003601f168201915b5050505050905090565b6000610c7c610c7561240e565b8484612540565b6001905092915050565b6000600854905090565b6000600654905090565b6000610ca7848484612737565b610d6884610cb361240e565b610d6385604051806060016040528060288152602001613da060289139600360008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d1961240e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d9c9092919063ffffffff16565b612540565b600190509392505050565b6000600754821115610dd0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a815260200180613ce5602a913960400191505060405180910390fd5b6000610dda612e5c565b9050610def8184612e8790919063ffffffff16565b915050919050565b6000600b60009054906101000a900460ff16905090565b6000610eb7610e1b61240e565b84610eb28560036000610e2c61240e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b890919063ffffffff16565b612540565b6001905092915050565b6000600654831115610f3b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f416d6f756e74206d757374206265206c657373203d7468616e20737570706c7981525060200191505060405180910390fd5b81610f5a576000610f4b84612416565b50505050905080915050610f70565b6000610f6584612416565b505050915050809150505b92915050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161561101157600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905061105c565b611059600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d73565b90505b919050565b61106961240e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611129576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600b60019054906101000a900460ff1681565b600c5481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112c15780601f10611296576101008083540402835291602001916112c1565b820191906000526020600020905b8154815290600101906020018083116112a457829003601f168201915b5050505050905090565b6112d361240e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611393576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff166113b3611200565b73ffffffffffffffffffffffffffffffffffffffff16141561143d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f6f776e6572736869702072656e6f756e6365640000000000000000000000000081525060200191505060405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156114f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f6e6f7420656e6f7567682062616c616e6365000000000000000000000000000081525060200191505060405180910390fd5b6114fe82600083612ed1565b6115138160065461246e90919063ffffffff16565b6006819055505050565b60006115e061152a61240e565b846115db85604051806060016040528060258152602001613e66602591396003600061155461240e565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612d9c9092919063ffffffff16565b612540565b6001905092915050565b60006115fe6115f761240e565b8484612737565b6001905092915050565b600e6020528060005260406000206000915090505481565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61164e61240e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461170e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1661172e611200565b73ffffffffffffffffffffffffffffffffffffffff1614156117b8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f6f776e6572736869702072656e6f756e6365640000000000000000000000000081525060200191505060405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561186d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260128152602001807f6e6f7420656e6f7567682062616c616e6365000000000000000000000000000081525060200191505060405180910390fd5b611878838383612ed1565b505050565b6000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b6118db61240e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461199b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b6119c360646119b58360065461308f90919063ffffffff16565b612e8790919063ffffffff16565b600c8190555050565b6119d461240e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a94576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b611b6761240e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c27576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611ce7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611dbb57611d77600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d73565b600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6001600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506005819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611e8161240e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611f41576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611fc7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526026815260200180613d0f6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61208c61240e565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461214c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600460008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661220b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f4163636f756e7420697320616c7265616479206578636c75646564000000000081525060200191505060405180910390fd5b60005b60058054905081101561240a578173ffffffffffffffffffffffffffffffffffffffff166005828154811061223f57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614156123fd5760056001600580549050038154811061229b57fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600582815481106122d357fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555060058054806123c357fe5b6001900381819060005260206000200160006101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905561240a565b808060010191505061220e565b5050565b600033905090565b600080600080600080600061242a88613115565b915091506000612438612e5c565b9050600080600061244a8c8686613167565b92509250925082828288889a509a509a509a509a5050505050505091939590929450565b60006124b083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612d9c565b905092915050565b600080828401905083811015612536576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156125c6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180613e166024913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561264c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526022815260200180613d356022913960400191505060405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040518082815260200191505060405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156127bd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526025815260200180613df16025913960400191505060405180910390fd5b60008111612816576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526029815260200180613dc86029913960400191505060405180910390fd5b61281e611200565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561288c575061285c611200565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156128ed57600c548111156128ec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526028815260200180613d576028913960400191505060405180910390fd5b5b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156129885742600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612aa857600b60019054906101000a900460ff1660ff16600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205401421015612aa7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601e8152602001807f6c6f636b203230207365636f6e6473206166746572207075726368617365000081525060200191505060405180910390fd5b5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b4b5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b6057612b5b8383836131c5565b612d97565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612c035750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612c1857612c13838383613418565b612d96565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015612cbc5750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612cd157612ccc838383612ed1565b612d95565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612d735750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612d8857612d8383838361366b565b612d94565b612d93838383612ed1565b5b5b5b5b505050565b6000838311158290612e49576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015612e0e578082015181840152602081019050612df3565b50505050905090810190601f168015612e3b5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060008385039050809150509392505050565b6000806000612e69613953565b91509150612e808183612e8790919063ffffffff16565b9250505090565b6000612ec983836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250613be4565b905092915050565b6000806000806000612ee286612416565b94509450945094509450612f3e85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246e90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612fd384600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b890919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506130208382613caa565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b6000808314156130a2576000905061310f565b60008284029050828482816130b357fe5b041461310a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526021815260200180613d7f6021913960400191505060405180910390fd5b809150505b92915050565b60008060006131416002613133606487612e8790919063ffffffff16565b61308f90919063ffffffff16565b90506000613158828661246e90919063ffffffff16565b90508082935093505050915091565b600080600080613180858861308f90919063ffffffff16565b90506000613197868861308f90919063ffffffff16565b905060006131ae828461246e90919063ffffffff16565b905082818395509550955050505093509350939050565b60008060008060006131d686612416565b9450945094509450945061323286600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246e90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506132c785600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246e90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061335c84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b890919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506133a98382613caa565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b600080600080600061342986612416565b9450945094509450945061348585600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246e90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061351a82600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b890919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506135af84600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b890919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506135fc8382613caa565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b600080600080600061367c86612416565b945094509450945094506136d886600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246e90919063ffffffff16565b600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061376d85600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461246e90919063ffffffff16565b600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061380282600260008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b890919063ffffffff16565b600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061389784600160008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124b890919063ffffffff16565b600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506138e48382613caa565b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040518082815260200191505060405180910390a35050505050505050565b600080600060075490506000600654905060005b600580549050811015613ba75782600160006005848154811061398657fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541180613a6d5750816002600060058481548110613a0557fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054115b15613a845760075460065494509450505050613be0565b613b0d6001600060058481548110613a9857fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548461246e90919063ffffffff16565b9250613b986002600060058481548110613b2357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020548361246e90919063ffffffff16565b91508080600101915050613967565b50613bbf600654600754612e8790919063ffffffff16565b821015613bd757600754600654935093505050613be0565b81819350935050505b9091565b60008083118290613c90576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015613c55578082015181840152602081019050613c3a565b50505050905090810190601f168015613c825780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581613c9c57fe5b049050809150509392505050565b613cbf8260075461246e90919063ffffffff16565b600781905550613cda816008546124b890919063ffffffff16565b600881905550505056fe416d6f756e74206d757374206265206c657373207468616e20746f74616c207265666c656374696f6e734f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f20616464726573735472616e7366657220616d6f756e74206578636565647320746865206d61785478416d6f756e742e536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f7745524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63655472616e7366657220616d6f756e74206d7573742062652067726561746572207468616e207a65726f45524332303a207472616e736665722066726f6d20746865207a65726f206164647265737345524332303a20617070726f76652066726f6d20746865207a65726f20616464726573734578636c75646564206164647265737365732063616e6e6f742063616c6c20746869732066756e6374696f6e45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ac278f532c6a06311c3878f43c1ad090b550302fdb0f493a0ff0cc2a3135423464736f6c634300060c0033

Deployed Bytecode Sourcemap

12567:11736:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16035:376;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;13737:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14649:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15760:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14014:95;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14818:313;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16862:253;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13923:83;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15139:218;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;16419:435;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;14117:198;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;12011:148;;;:::i;:::-;;13280:33;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13320:53;;;:::i;:::-;;;;;;;;;;;;;;;;;;;11358:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13828:87;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22396:252;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15365:269;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;14323:167;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;13419:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;13386:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;22660:216;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;15642:110;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;15865:162;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;24204:96;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;14498:143;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;17123:332;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;12314:244;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;17463:478;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16035:376;16087:14;16104:12;:10;:12::i;:::-;16087:29;;16136:11;:19;16148:6;16136:19;;;;;;;;;;;;;;;;;;;;;;;;;16135:20;16127:77;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16216:15;16239:19;16250:7;16239:10;:19::i;:::-;16215:43;;;;;;16287:28;16307:7;16287;:15;16295:6;16287:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;16269:7;:15;16277:6;16269:15;;;;;;;;;;;;;;;:46;;;;16336:20;16348:7;16336;;:11;;:20;;;;:::i;:::-;16326:7;:30;;;;16380:23;16395:7;16380:10;;:14;;:23;;;;:::i;:::-;16367:10;:36;;;;16035:376;;;:::o;13737:83::-;13774:13;13807:5;13800:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13737:83;:::o;14649:161::-;14724:4;14741:39;14750:12;:10;:12::i;:::-;14764:7;14773:6;14741:8;:39::i;:::-;14798:4;14791:11;;14649:161;;;;:::o;15760:87::-;15802:7;15829:10;;15822:17;;15760:87;:::o;14014:95::-;14067:7;14094;;14087:14;;14014:95;:::o;14818:313::-;14916:4;14933:36;14943:6;14951:9;14962:6;14933:9;:36::i;:::-;14980:121;14989:6;14997:12;:10;:12::i;:::-;15011:89;15049:6;15011:89;;;;;;;;;;;;;;;;;:11;:19;15023:6;15011:19;;;;;;;;;;;;;;;:33;15031:12;:10;:12::i;:::-;15011:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;14980:8;:121::i;:::-;15119:4;15112:11;;14818:313;;;;;:::o;16862:253::-;16928:7;16967;;16956;:18;;16948:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17032:19;17055:10;:8;:10::i;:::-;17032:33;;17083:24;17095:11;17083:7;:11;;:24;;;;:::i;:::-;17076:31;;;16862:253;;;:::o;13923:83::-;13964:5;13989:9;;;;;;;;;;;13982:16;;13923:83;:::o;15139:218::-;15227:4;15244:83;15253:12;:10;:12::i;:::-;15267:7;15276:50;15315:10;15276:11;:25;15288:12;:10;:12::i;:::-;15276:25;;;;;;;;;;;;;;;:34;15302:7;15276:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;15244:8;:83::i;:::-;15345:4;15338:11;;15139:218;;;;:::o;16419:435::-;16509:7;16548;;16537;:18;;16529:63;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16608:17;16603:244;;16643:15;16666:19;16677:7;16666:10;:19::i;:::-;16642:43;;;;;;16707:7;16700:14;;;;;16603:244;16749:23;16779:19;16790:7;16779:10;:19::i;:::-;16747:51;;;;;;16820:15;16813:22;;;16419:435;;;;;:::o;14117:198::-;14183:7;14207:11;:20;14219:7;14207:20;;;;;;;;;;;;;;;;;;;;;;;;;14203:49;;;14236:7;:16;14244:7;14236:16;;;;;;;;;;;;;;;;14229:23;;;;14203:49;14270:37;14290:7;:16;14298:7;14290:16;;;;;;;;;;;;;;;;14270:19;:37::i;:::-;14263:44;;14117:198;;;;:::o;12011:148::-;11580:12;:10;:12::i;:::-;11570:22;;:6;;;;;;;;;;:22;;;11562:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12118:1:::1;12081:40;;12102:6;::::0;::::1;;;;;;;;12081:40;;;;;;;;;;;;12149:1;12132:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;12011:148::o:0;13280:33::-;;;;;;;;;;;;;:::o;13320:53::-;;;;:::o;11358:79::-;11396:7;11423:6;;;;;;;;;;;11416:13;;11358:79;:::o;13828:87::-;13867:13;13900:7;13893:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13828:87;:::o;22396:252::-;11580:12;:10;:12::i;:::-;11570:22;;:6;;;;;;;;;;:22;;;11562:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13544:1:::1;13527:19;;:7;:5;:7::i;:::-;:19;;;;13519:50;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;22526:4:::2;22509:7;:15;22517:6;22509:15;;;;;;;;;;;;;;;;:21;;22501:51;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;22563:41;22581:6;22596:1;22599:4;22563:17;:41::i;:::-;22623:17;22635:4;22623:7;;:11;;:17;;;;:::i;:::-;22615:7;:25;;;;22396:252:::0;;:::o;15365:269::-;15458:4;15475:129;15484:12;:10;:12::i;:::-;15498:7;15507:96;15546:15;15507:96;;;;;;;;;;;;;;;;;:11;:25;15519:12;:10;:12::i;:::-;15507:25;;;;;;;;;;;;;;;:34;15533:7;15507:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;15475:8;:129::i;:::-;15622:4;15615:11;;15365:269;;;;:::o;14323:167::-;14401:4;14418:42;14428:12;:10;:12::i;:::-;14442:9;14453:6;14418:9;:42::i;:::-;14478:4;14471:11;;14323:167;;;;:::o;13419:43::-;;;;;;;;;;;;;;;;;:::o;13386:26::-;;;;;;;;;;;;;:::o;22660:216::-;11580:12;:10;:12::i;:::-;11570:22;;:6;;;;;;;;;;:22;;;11562:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13544:1:::1;13527:19;;:7;:5;:7::i;:::-;:19;;;;13519:50;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;22798:4:::2;22782:7;:14;22790:5;22782:14;;;;;;;;;;;;;;;;:20;;22774:50;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::2;;;;;;;;;;;;;22835:33;22853:5;22859:3;22863:4;22835:17;:33::i;:::-;22660:216:::0;;;:::o;15642:110::-;15700:4;15724:11;:20;15736:7;15724:20;;;;;;;;;;;;;;;;;;;;;;;;;15717:27;;15642:110;;;:::o;15865:162::-;11580:12;:10;:12::i;:::-;11570:22;;:6;;;;;;;;;;:22;;;11562:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15959:60:::1;16003:5;15959:25;15971:12;15959:7;;:11;;:25;;;;:::i;:::-;:29;;:60;;;;:::i;:::-;15944:12;:75;;;;15865:162:::0;:::o;24204:96::-;11580:12;:10;:12::i;:::-;11570:22;;:6;;;;;;;;;;:22;;;11562:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24288:4:::1;24274:11;;:18;;;;;;;;;;;;;;;;;;24204:96:::0;:::o;14498:143::-;14579:7;14606:11;:18;14618:5;14606:18;;;;;;;;;;;;;;;:27;14625:7;14606:27;;;;;;;;;;;;;;;;14599:34;;14498:143;;;;:::o;17123:332::-;11580:12;:10;:12::i;:::-;11570:22;;:6;;;;;;;;;;:22;;;11562:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17205:11:::1;:20;17217:7;17205:20;;;;;;;;;;;;;;;;;;;;;;;;;17204:21;17196:61;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;17290:1;17271:7;:16;17279:7;17271:16;;;;;;;;;;;;;;;;:20;17268:108;;;17327:37;17347:7;:16;17355:7;17347:16;;;;;;;;;;;;;;;;17327:19;:37::i;:::-;17308:7;:16;17316:7;17308:16;;;;;;;;;;;;;;;:56;;;;17268:108;17409:4;17386:11;:20;17398:7;17386:20;;;;;;;;;;;;;;;;:27;;;;;;;;;;;;;;;;;;17424:9;17439:7;17424:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17123:332:::0;:::o;12314:244::-;11580:12;:10;:12::i;:::-;11570:22;;:6;;;;;;;;;;:22;;;11562:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12423:1:::1;12403:22;;:8;:22;;;;12395:73;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12513:8;12484:38;;12505:6;::::0;::::1;;;;;;;;12484:38;;;;;;;;;;;;12542:8;12533:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;12314:244:::0;:::o;17463:478::-;11580:12;:10;:12::i;:::-;11570:22;;:6;;;;;;;;;;:22;;;11562:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17544:11:::1;:20;17556:7;17544:20;;;;;;;;;;;;;;;;;;;;;;;;;17536:60;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;17612:9;17607:327;17631:9;:16;;;;17627:1;:20;17607:327;;;17689:7;17673:23;;:9;17683:1;17673:12;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;17669:254;;;17732:9;17761:1;17742:9;:16;;;;:20;17732:31;;;;;;;;;;;;;;;;;;;;;;;;;17717:9;17727:1;17717:12;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;17801:1;17782:7;:16;17790:7;17782:16;;;;;;;;;;;;;;;:20;;;;17844:5;17821:11;:20;17833:7;17821:20;;;;;;;;;;;;;;;;:28;;;;;;;;;;;;;;;;;;17868:9;:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17902:5;;17669:254;17649:3;;;;;;;17607:327;;;;17463:478:::0;:::o;61:106::-;114:15;149:10;142:17;;61:106;:::o;21973:411::-;22032:7;22041;22050;22059;22068;22089:23;22114:12;22130:20;22142:7;22130:11;:20::i;:::-;22088:62;;;;22161:19;22184:10;:8;:10::i;:::-;22161:33;;22206:15;22223:23;22248:12;22264:39;22276:7;22285:4;22291:11;22264;:39::i;:::-;22205:98;;;;;;22322:7;22331:15;22348:4;22354:15;22371:4;22314:62;;;;;;;;;;;;;;;;21973:411;;;;;;;:::o;1319:136::-;1377:7;1404:43;1408:1;1411;1404:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;1397:50;;1319:136;;;;:::o;1130:181::-;1188:7;1208:9;1224:1;1220;:5;1208:17;;1249:1;1244;:6;;1236:46;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1302:1;1295:8;;;1130:181;;;;:::o;17949:337::-;18059:1;18042:19;;:5;:19;;;;18034:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18140:1;18121:21;;:7;:21;;;;18113:68;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18224:6;18194:11;:18;18206:5;18194:18;;;;;;;;;;;;;;;:27;18213:7;18194:27;;;;;;;;;;;;;;;:36;;;;18262:7;18246:32;;18255:5;18246:32;;;18271:6;18246:32;;;;;;;;;;;;;;;;;;17949:337;;;:::o;18294:1409::-;18409:1;18391:20;;:6;:20;;;;18383:70;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18565:1;18556:6;:10;18548:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18636:7;:5;:7::i;:::-;18626:17;;:6;:17;;;;:41;;;;;18660:7;:5;:7::i;:::-;18647:20;;:9;:20;;;;18626:41;18623:132;;;18698:12;;18688:6;:22;;18680:75;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18623:132;18815:11;;;;;;;;;;;18805:21;;:6;:21;;;18801:90;;;18863:15;18842:7;:18;18850:9;18842:18;;;;;;;;;;;;;;;:36;;;;18801:90;18945:11;;;;;;;;;;;18932:24;;:9;:24;;;18928:151;;;19017:15;;;;;;;;;;;18999:33;;:7;:15;19007:6;18999:15;;;;;;;;;;;;;;;;:33;18980:15;:52;;18972:95;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18928:151;19103:11;:19;19115:6;19103:19;;;;;;;;;;;;;;;;;;;;;;;;;:46;;;;;19127:11;:22;19139:9;19127:22;;;;;;;;;;;;;;;;;;;;;;;;;19126:23;19103:46;19099:597;;;19166:48;19188:6;19196:9;19207:6;19166:21;:48::i;:::-;19099:597;;;19237:11;:19;19249:6;19237:19;;;;;;;;;;;;;;;;;;;;;;;;;19236:20;:46;;;;;19260:11;:22;19272:9;19260:22;;;;;;;;;;;;;;;;;;;;;;;;;19236:46;19232:464;;;19299:46;19319:6;19327:9;19338:6;19299:19;:46::i;:::-;19232:464;;;19368:11;:19;19380:6;19368:19;;;;;;;;;;;;;;;;;;;;;;;;;19367:20;:47;;;;;19392:11;:22;19404:9;19392:22;;;;;;;;;;;;;;;;;;;;;;;;;19391:23;19367:47;19363:333;;;19431:44;19449:6;19457:9;19468:6;19431:17;:44::i;:::-;19363:333;;;19497:11;:19;19509:6;19497:19;;;;;;;;;;;;;;;;;;;;;;;;;:45;;;;;19520:11;:22;19532:9;19520:22;;;;;;;;;;;;;;;;;;;;;;;;;19497:45;19493:203;;;19559:48;19581:6;19589:9;19600:6;19559:21;:48::i;:::-;19493:203;;;19640:44;19658:6;19666:9;19677:6;19640:17;:44::i;:::-;19493:203;19363:333;19232:464;19099:597;18294:1409;;;:::o;1463:192::-;1549:7;1582:1;1577;:6;;1585:12;1569:29;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1609:9;1625:1;1621;:5;1609:17;;1646:1;1639:8;;;1463:192;;;;;:::o;23464:163::-;23505:7;23526:15;23543;23562:19;:17;:19::i;:::-;23525:56;;;;23599:20;23611:7;23599;:11;;:20;;;;:::i;:::-;23592:27;;;;23464:163;:::o;2610:132::-;2668:7;2695:39;2699:1;2702;2695:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;2688:46;;2610:132;;;;:::o;19711:452::-;19810:15;19827:23;19852:12;19866:23;19891:12;19907:19;19918:7;19907:10;:19::i;:::-;19809:117;;;;;;;;;;19955:28;19975:7;19955;:15;19963:6;19955:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;19937:7;:15;19945:6;19937:15;;;;;;;;;;;;;;;:46;;;;20015:39;20038:15;20015:7;:18;20023:9;20015:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;19994:7;:18;20002:9;19994:18;;;;;;;;;;;;;;;:60;;;;20072:23;20084:4;20090;20072:11;:23::i;:::-;20128:9;20111:44;;20120:6;20111:44;;;20139:15;20111:44;;;;;;;;;;;;;;;;;;19711:452;;;;;;;;:::o;1663:471::-;1721:7;1971:1;1966;:6;1962:47;;;1996:1;1989:8;;;;1962:47;2021:9;2037:1;2033;:5;2021:17;;2066:1;2061;2057;:5;;;;;;:10;2049:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2125:1;2118:8;;;1663:471;;;;;:::o;22884:230::-;22944:7;22953;22973:12;22988:23;23009:1;22988:16;23000:3;22988:7;:11;;:16;;;;:::i;:::-;:20;;:23;;;;:::i;:::-;22973:38;;23022:23;23048:17;23060:4;23048:7;:11;;:17;;;;:::i;:::-;23022:43;;23084:15;23101:4;23076:30;;;;;;22884:230;;;:::o;23122:334::-;23217:7;23226;23235;23255:15;23273:24;23285:11;23273:7;:11;;:24;;;;:::i;:::-;23255:42;;23308:12;23323:21;23332:11;23323:4;:8;;:21;;;;:::i;:::-;23308:36;;23355:23;23381:17;23393:4;23381:7;:11;;:17;;;;:::i;:::-;23355:43;;23417:7;23426:15;23443:4;23409:39;;;;;;;;;23122:334;;;;;;;:::o;20708:509::-;20811:15;20828:23;20853:12;20867:23;20892:12;20908:19;20919:7;20908:10;:19::i;:::-;20810:117;;;;;;;;;;20956:28;20976:7;20956;:15;20964:6;20956:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;20938:7;:15;20946:6;20938:15;;;;;;;;;;;;;;;:46;;;;21013:28;21033:7;21013;:15;21021:6;21013:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;20995:7;:15;21003:6;20995:15;;;;;;;;;;;;;;;:46;;;;21073:39;21096:15;21073:7;:18;21081:9;21073:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;21052:7;:18;21060:9;21052:18;;;;;;;;;;;;;;;:60;;;;21126:23;21138:4;21144;21126:11;:23::i;:::-;21182:9;21165:44;;21174:6;21165:44;;;21193:15;21165:44;;;;;;;;;;;;;;;;;;20708:509;;;;;;;;:::o;20171:529::-;20272:15;20289:23;20314:12;20328:23;20353:12;20369:19;20380:7;20369:10;:19::i;:::-;20271:117;;;;;;;;;;20417:28;20437:7;20417;:15;20425:6;20417:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;20399:7;:15;20407:6;20399:15;;;;;;;;;;;;;;;:46;;;;20477:39;20500:15;20477:7;:18;20485:9;20477:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;20456:7;:18;20464:9;20456:18;;;;;;;;;;;;;;;:60;;;;20548:39;20571:15;20548:7;:18;20556:9;20548:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;20527:7;:18;20535:9;20527:18;;;;;;;;;;;;;;;:60;;;;20609:23;20621:4;20627;20609:11;:23::i;:::-;20665:9;20648:44;;20657:6;20648:44;;;20676:15;20648:44;;;;;;;;;;;;;;;;;;20171:529;;;;;;;;:::o;21225:585::-;21328:15;21345:23;21370:12;21384:23;21409:12;21425:19;21436:7;21425:10;:19::i;:::-;21327:117;;;;;;;;;;21473:28;21493:7;21473;:15;21481:6;21473:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;21455:7;:15;21463:6;21455:15;;;;;;;;;;;;;;;:46;;;;21530:28;21550:7;21530;:15;21538:6;21530:15;;;;;;;;;;;;;;;;:19;;:28;;;;:::i;:::-;21512:7;:15;21520:6;21512:15;;;;;;;;;;;;;;;:46;;;;21590:39;21613:15;21590:7;:18;21598:9;21590:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;21569:7;:18;21577:9;21569:18;;;;;;;;;;;;;;;:60;;;;21661:39;21684:15;21661:7;:18;21669:9;21661:18;;;;;;;;;;;;;;;;:22;;:39;;;;:::i;:::-;21640:7;:18;21648:9;21640:18;;;;;;;;;;;;;;;:60;;;;21719:23;21731:4;21737;21719:11;:23::i;:::-;21775:9;21758:44;;21767:6;21758:44;;;21786:15;21758:44;;;;;;;;;;;;;;;;;;21225:585;;;;;;;;:::o;23635:561::-;23685:7;23694;23714:15;23732:7;;23714:25;;23750:15;23768:7;;23750:25;;23797:9;23792:289;23816:9;:16;;;;23812:1;:20;23792:289;;;23882:7;23858;:21;23866:9;23876:1;23866:12;;;;;;;;;;;;;;;;;;;;;;;;;23858:21;;;;;;;;;;;;;;;;:31;:66;;;;23917:7;23893;:21;23901:9;23911:1;23901:12;;;;;;;;;;;;;;;;;;;;;;;;;23893:21;;;;;;;;;;;;;;;;:31;23858:66;23854:97;;;23934:7;;23943;;23926:25;;;;;;;;;23854:97;23976:34;23988:7;:21;23996:9;24006:1;23996:12;;;;;;;;;;;;;;;;;;;;;;;;;23988:21;;;;;;;;;;;;;;;;23976:7;:11;;:34;;;;:::i;:::-;23966:44;;24035:34;24047:7;:21;24055:9;24065:1;24055:12;;;;;;;;;;;;;;;;;;;;;;;;;24047:21;;;;;;;;;;;;;;;;24035:7;:11;;:34;;;;:::i;:::-;24025:44;;23834:3;;;;;;;23792:289;;;;24105:20;24117:7;;24105;;:11;;:20;;;;:::i;:::-;24095:7;:30;24091:61;;;24135:7;;24144;;24127:25;;;;;;;;24091:61;24171:7;24180;24163:25;;;;;;23635:561;;;:::o;3238:278::-;3324:7;3356:1;3352;:5;3359:12;3344:28;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3383:9;3399:1;3395;:5;;;;;;3383:17;;3507:1;3500:8;;;3238:278;;;;;:::o;21818:147::-;21896:17;21908:4;21896:7;;:11;;:17;;;;:::i;:::-;21886:7;:27;;;;21937:20;21952:4;21937:10;;:14;;:20;;;;:::i;:::-;21924:10;:33;;;;21818:147;;:::o

Swarm Source

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