ETH Price: $2,649.82 (+0.51%)

Token

CryptoClerks (CC)
 

Overview

Max Total Supply

10,000 CC

Holders

0

Market

Onchain Market Cap

$0.00

Circulating Supply Market Cap

-

Other Info

Token Contract (WITH 0 Decimals)

Balance
1 CC

Value
$0.00
0x9654299bea25e7d8d3e31ff03b51ee56f77e4862
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:
ERC721

Compiler Version
v0.8.4+commit.c7e474f2

Optimization Enabled:
No with 200 runs

Other Settings:
default evmVersion, MIT license

Contract Source Code (Solidity)

/**
 *Submitted for verification at Etherscan.io on 2021-08-17
*/

// SPDX-License-Identifier: MIT

pragma solidity ^0.8.4;

interface IERC165 {
    /**
     * @dev Returns true if this contract implements the interface defined by
     * `interfaceId`. See the corresponding
     * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section]
     * to learn more about how these ids are created.
     *
     * This function call must use less than 30 000 gas.
     */
    function supportsInterface(bytes4 interfaceId) external view returns (bool);
}

interface IERC721 is IERC165 {
    
    event Transfer(address indexed from, address indexed to, uint256 indexed tokenId);

    event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId);

    event ApprovalForAll(address indexed owner, address indexed operator, bool approved);

    function balanceOf(address owner) external view returns (uint256 balance);

    function ownerOf(uint256 tokenId) external view returns (address owner);
    
    function tokenCount() external view returns(uint256);
    
    function totalSupply() external view returns(uint256);

    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;

    function transferFrom(
        address from,
        address to,
        uint256 tokenId
    ) external;

    function approve(address to, uint256 tokenId) external;

    function getApproved(uint256 tokenId) external view returns (address operator);

    function setApprovalForAll(address operator, bool _approved) external;

    function isApprovedForAll(address owner, address operator) external view returns (bool);

    function safeTransferFrom(
        address from,
        address to,
        uint256 tokenId,
        bytes calldata data
    ) external;
    
    function mint(address to) external payable returns(uint256 ID);
    
    function multipleMint(address to, uint256 amount) external payable returns(uint256[] memory IDs);
}

interface IERC721Receiver {
    /**
     * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom}
     * by `operator` from `from`, this function is called.
     *
     * It must return its Solidity selector to confirm the token transfer.
     * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted.
     *
     * The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`.
     */
    function onERC721Received(
        address operator,
        address from,
        uint256 tokenId,
        bytes calldata data
    ) external returns (bytes4);
}

interface IERC721Metadata is IERC721 {
    /**
     * @dev Returns the token collection name.
     */
    function name() external view returns (string memory);

    /**
     * @dev Returns the token collection symbol.
     */
    function symbol() external view returns (string memory);

    /**
     * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token.
     */
    function tokenURI(uint256 tokenId) external view returns (string memory);
}

abstract contract ERC165 is IERC165 {
    /**
     * @dev See {IERC165-supportsInterface}.
     */
    function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
        return interfaceId == type(IERC165).interfaceId;
    }
}

library Strings {
    bytes16 private constant _HEX_SYMBOLS = "0123456789abcdef";

    /**
     * @dev Converts a `uint256` to its ASCII `string` decimal representation.
     */
    function toString(uint256 value) internal pure returns (string memory) {
        // Inspired by OraclizeAPI's implementation - MIT licence
        // https://github.com/oraclize/ethereum-api/blob/b42146b063c7d6ee1358846c198246239e9360e8/oraclizeAPI_0.4.25.sol

        if (value == 0) {
            return "0";
        }
        uint256 temp = value;
        uint256 digits;
        while (temp != 0) {
            digits++;
            temp /= 10;
        }
        bytes memory buffer = new bytes(digits);
        while (value != 0) {
            digits -= 1;
            buffer[digits] = bytes1(uint8(48 + uint256(value % 10)));
            value /= 10;
        }
        return string(buffer);
    }

    /**
     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation.
     */
    function toHexString(uint256 value) internal pure returns (string memory) {
        if (value == 0) {
            return "0x00";
        }
        uint256 temp = value;
        uint256 length = 0;
        while (temp != 0) {
            length++;
            temp >>= 8;
        }
        return toHexString(value, length);
    }

    /**
     * @dev Converts a `uint256` to its ASCII `string` hexadecimal representation with fixed length.
     */
    function toHexString(uint256 value, uint256 length) internal pure returns (string memory) {
        bytes memory buffer = new bytes(2 * length + 2);
        buffer[0] = "0";
        buffer[1] = "x";
        for (uint256 i = 2 * length + 1; i > 1; --i) {
            buffer[i] = _HEX_SYMBOLS[value & 0xf];
            value >>= 4;
        }
        require(value == 0, "Strings: hex length insufficient");
        return string(buffer);
    }
}

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) {
        // This method relies on extcodesize, which returns 0 for contracts in
        // construction, since the code is only stored at the end of the
        // constructor execution.

        uint256 size;
        assembly {
            size := extcodesize(account)
        }
        return size > 0;
    }

    /**
     * @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");

        (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");
        require(isContract(target), "Address: call to non-contract");

        (bool success, bytes memory returndata) = target.call{value: value}(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(address target, bytes memory data) internal view returns (bytes memory) {
        return functionStaticCall(target, data, "Address: low-level static call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a static call.
     *
     * _Available since v3.3._
     */
    function functionStaticCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal view returns (bytes memory) {
        require(isContract(target), "Address: static call to non-contract");

        (bool success, bytes memory returndata) = target.staticcall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(address target, bytes memory data) internal returns (bytes memory) {
        return functionDelegateCall(target, data, "Address: low-level delegate call failed");
    }

    /**
     * @dev Same as {xref-Address-functionCall-address-bytes-string-}[`functionCall`],
     * but performing a delegate call.
     *
     * _Available since v3.4._
     */
    function functionDelegateCall(
        address target,
        bytes memory data,
        string memory errorMessage
    ) internal returns (bytes memory) {
        require(isContract(target), "Address: delegate call to non-contract");

        (bool success, bytes memory returndata) = target.delegatecall(data);
        return verifyCallResult(success, returndata, errorMessage);
    }

    /**
     * @dev Tool to verifies that a low level call was successful, and revert if it wasn't, either by bubbling the
     * revert reason using the provided one.
     *
     * _Available since v4.3._
     */
    function verifyCallResult(
        bool success,
        bytes memory returndata,
        string memory errorMessage
    ) internal pure returns (bytes memory) {
        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

                assembly {
                    let returndata_size := mload(returndata)
                    revert(add(32, returndata), returndata_size)
                }
            } else {
                revert(errorMessage);
            }
        }
    }
}

contract ERC721 is ERC165, IERC721, IERC721Metadata {
    using Address for address;
    using Strings for uint256;
    
    string private uriLink = "https://cryptoclerks.io/api/clerks/";
    
    address payable private _owner;
    
    uint256 private _count;
    
    string private _name;

    string private _symbol;

    mapping(uint256 => address) private _owners;
    
    mapping(uint256 => string) private _uri;

    mapping(address => uint256) private _balances;

    mapping(uint256 => address) private _tokenApprovals;

    mapping(address => mapping(address => bool)) private _operatorApprovals;

    constructor(string memory name_, string memory symbol_) {
        _name = name_;
        _symbol = symbol_;
        _owner = payable(msg.sender);
    }

    function supportsInterface(bytes4 interfaceId) public view override(ERC165, IERC165) returns (bool) {
        return
            interfaceId == type(IERC721).interfaceId ||
            interfaceId == type(IERC721Metadata).interfaceId ||
            super.supportsInterface(interfaceId);
    }
    
    function totalSupply() external view override returns(uint256){return 10000;}

    function balanceOf(address owner) external view override returns (uint256) {
        require(owner != address(0), "ERC721: balance query for the zero address");
        return _balances[owner];
    }

    function ownerOf(uint256 tokenId) external view override returns (address) {
        address owner = _owners[tokenId];
        require(owner != address(0), "ERC721: owner query for nonexistent token");
        return owner;
    }

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

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

    function tokenURI(uint256 tokenId) external view override returns (string memory) {
        require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token");

        return _uri[tokenId];
    }
    
    function tokenCount() external view override returns(uint256) {return _count;}
    
    function approve(address to, uint256 tokenId) external override {
        address owner = _owners[tokenId];
        require(to != owner, "ERC721: approval to current owner");

        require(
            msg.sender == owner || isApprovedForAll(owner, msg.sender),
            "ERC721: approve caller is not owner nor approved for all"
        );

        _approve(to, tokenId);
    }

    function getApproved(uint256 tokenId) public view override returns (address) {
        require(_exists(tokenId), "ERC721: approved query for nonexistent token");

        return _tokenApprovals[tokenId];
    }

    function setApprovalForAll(address operator, bool approved) external override {
        require(operator != msg.sender, "ERC721: approve to caller");

        _operatorApprovals[msg.sender][operator] = approved;
        emit ApprovalForAll(msg.sender, operator, approved);
    }

    function isApprovedForAll(address owner, address operator) public view override returns (bool) {
        return _operatorApprovals[owner][operator];
    }

    function transferFrom(address from, address to, uint256 tokenId) external override {
        //solhint-disable-next-line max-line-length
        require(_isApprovedOrOwner(msg.sender, tokenId), "ERC721: transfer caller is not owner nor approved");

        _transfer(from, to, tokenId);
    }

    function safeTransferFrom(address from, address to, uint256 tokenId) external override {
        safeTransferFrom(from, to, tokenId, "");
    }

    function safeTransferFrom(address from, address to, uint256 tokenId, bytes memory _data) public override {
        require(_isApprovedOrOwner(msg.sender, tokenId), "ERC721: transfer caller is not owner nor approved");
        _safeTransfer(from, to, tokenId, _data);
    }
    
    function emergencyWithdraw() external {
        _owner.transfer(address(this).balance);
    }
    function mint(address to) external payable override returns(uint256 ID){
        require(msg.value == 50000000000000000, "Insufficient Eth");
        _owner.transfer(address(this).balance);
        require(to != address(0), "ERC721: mint to the zero address");
        
        uint256 count = _count;
        require(count < 10000);
        
        
        _balances[to] += 1;
        _owners[count] = to;
        
        string memory uri = concat(uriLink, count.toString());
        uri = concat(uri, ".json");
        
        _uri[count] = uri;
        
        ++_count;
        
        emit Transfer(address(0), to, count);
        
        return count;
    }
    
    function multipleMint(address to, uint256 amount) external payable override returns(uint256[] memory IDs) {
        require(amount <= 10);
        require(msg.value == 50000000000000000*amount, "Insufficient Eth");
        _owner.transfer(address(this).balance);
        require(to != address(0), "ERC721: mint to the zero address");
        
        IDs = new uint256[](amount);
        for(uint256 t; t < amount; ++t) {
            
           uint256 count = _count;
            require(count < 10000);
            
            _owners[count] = to;
            
            string memory uri = concat(uriLink, count.toString());
            uri = concat(uri, ".json");
            
            _uri[count] = uri;
            
            ++_count;
            
            IDs[t] = count;
            emit Transfer(address(0), to, count);
        }
        
        _balances[to] += amount;
    }
    
    function concat(string memory _base, string memory _value) pure internal returns (string memory) {
        bytes memory _baseBytes = bytes(_base);
        bytes memory _valueBytes = bytes(_value);
        
        string memory _tmpValue = new string(_baseBytes.length + _valueBytes.length);
        bytes memory _newValue = bytes(_tmpValue);
        
        uint i;
        uint j;
        
        for(i=0;i<_baseBytes.length;i++) {
            _newValue[j++] = _baseBytes[i];
        }
        
        for(i=0;i<_valueBytes.length;i++) {
            _newValue[j++] = _valueBytes[i];
        }
        
        return string(_newValue);
    }
    
    function _safeTransfer(address from, address to, uint256 tokenId, bytes memory _data) internal {
        _transfer(from, to, tokenId);
        require(_checkOnERC721Received(from, to, tokenId, _data), "ERC721: transfer to non ERC721Receiver implementer");
    }
    
    //good
    function _exists(uint256 tokenId) internal view returns (bool) {
        return _owners[tokenId] != address(0);
    }

    function _isApprovedOrOwner(address spender, uint256 tokenId) internal view returns (bool) {
        require(_exists(tokenId), "ERC721: operator query for nonexistent token");
        address owner = _owners[tokenId];
        return (spender == owner || getApproved(tokenId) == spender || isApprovedForAll(owner, spender));
    }

    function _transfer(address from, address to, uint256 tokenId) internal {
        require(_owners[tokenId] == from, "ERC721: transfer of token that is not own");
        require(to != address(0), "ERC721: transfer to the zero address");

        // Clear approvals from the previous owner
        _approve(address(0), tokenId);

        _balances[from] -= 1;
        _balances[to] += 1;
        _owners[tokenId] = to;

        emit Transfer(from, to, tokenId);
    }

    function _approve(address to, uint256 tokenId) internal {
        _tokenApprovals[tokenId] = to;
        emit Approval(_owners[tokenId], to, tokenId);
    }

    function _checkOnERC721Received(address from, address to, uint256 tokenId, bytes memory _data) private returns (bool) {
        if (to.isContract()) {
            try IERC721Receiver(to).onERC721Received(msg.sender, from, tokenId, _data) returns (bytes4 retval) {
                return retval == IERC721Receiver.onERC721Received.selector;
            } catch (bytes memory reason) {
                if (reason.length == 0) {
                    revert("ERC721: transfer to non ERC721Receiver implementer");
                } else {
                    assembly {
                        revert(add(32, reason), mload(reason))
                    }
                }
            }
        } else {
            return true;
        }
    }

}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"emergencyWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"ID","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"multipleMint","outputs":[{"internalType":"uint256[]","name":"IDs","type":"uint256[]"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","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":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}]

6080604052604051806060016040528060238152602001620036be602391396000908051906020019062000035929190620000e4565b503480156200004357600080fd5b50604051620036e1380380620036e1833981810160405281019062000069919062000206565b816003908051906020019062000081929190620000e4565b5080600490805190602001906200009a929190620000e4565b5033600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050620003e9565b828054620000f2906200030e565b90600052602060002090601f01602090048101928262000116576000855562000162565b82601f106200013157805160ff191683800117855562000162565b8280016001018555821562000162579182015b828111156200016157825182559160200191906001019062000144565b5b50905062000171919062000175565b5090565b5b808211156200019057600081600090555060010162000176565b5090565b6000620001ab620001a584620002a2565b62000279565b905082815260208101848484011115620001c457600080fd5b620001d1848285620002d8565b509392505050565b600082601f830112620001eb57600080fd5b8151620001fd84826020860162000194565b91505092915050565b600080604083850312156200021a57600080fd5b600083015167ffffffffffffffff8111156200023557600080fd5b6200024385828601620001d9565b925050602083015167ffffffffffffffff8111156200026157600080fd5b6200026f85828601620001d9565b9150509250929050565b60006200028562000298565b905062000293828262000344565b919050565b6000604051905090565b600067ffffffffffffffff821115620002c057620002bf620003a9565b5b620002cb82620003d8565b9050602081019050919050565b60005b83811015620002f8578082015181840152602081019050620002db565b8381111562000308576000848401525b50505050565b600060028204905060018216806200032757607f821691505b602082108114156200033e576200033d6200037a565b5b50919050565b6200034f82620003d8565b810181811067ffffffffffffffff82111715620003715762000370620003a9565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b6132c580620003f96000396000f3fe6080604052600436106101095760003560e01c80636a62784211610095578063a22cb46511610064578063a22cb46514610389578063b88d4fde146103b2578063c87b56dd146103db578063db2e21bc14610418578063e985e9c51461042f57610109565b80636a627842146102c657806370a08231146102f657806395d89b41146103335780639f181b5e1461035e57610109565b806318160ddd116100dc57806318160ddd146101dc57806319f57e1a1461020757806323b872dd1461023757806342842e0e146102605780636352211e1461028957610109565b806301ffc9a71461010e57806306fdde031461014b578063081812fc14610176578063095ea7b3146101b3575b600080fd5b34801561011a57600080fd5b50610135600480360381019061013091906123ed565b61046c565b60405161014291906127ff565b60405180910390f35b34801561015757600080fd5b5061016061054e565b60405161016d919061281a565b60405180910390f35b34801561018257600080fd5b5061019d6004803603810190610198919061243f565b6105e0565b6040516101aa9190612776565b60405180910390f35b3480156101bf57600080fd5b506101da60048036038101906101d591906123b1565b610665565b005b3480156101e857600080fd5b506101f161079a565b6040516101fe91906129fc565b60405180910390f35b610221600480360381019061021c91906123b1565b6107a4565b60405161022e91906127dd565b60405180910390f35b34801561024357600080fd5b5061025e600480360381019061025991906122ab565b610bf5565b005b34801561026c57600080fd5b50610287600480360381019061028291906122ab565b610c4e565b005b34801561029557600080fd5b506102b060048036038101906102ab919061243f565b610c6e565b6040516102bd9190612776565b60405180910390f35b6102e060048036038101906102db9190612246565b610d20565b6040516102ed91906129fc565b60405180910390f35b34801561030257600080fd5b5061031d60048036038101906103189190612246565b611087565b60405161032a91906129fc565b60405180910390f35b34801561033f57600080fd5b5061034861113f565b604051610355919061281a565b60405180910390f35b34801561036a57600080fd5b506103736111d1565b60405161038091906129fc565b60405180910390f35b34801561039557600080fd5b506103b060048036038101906103ab9190612375565b6111db565b005b3480156103be57600080fd5b506103d960048036038101906103d491906122fa565b611347565b005b3480156103e757600080fd5b5061040260048036038101906103fd919061243f565b6113a2565b60405161040f919061281a565b60405180910390f35b34801561042457600080fd5b5061042d61148f565b005b34801561043b57600080fd5b506104566004803603810190610451919061226f565b6114fa565b60405161046391906127ff565b60405180910390f35b60007f74354816000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061053757507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061054757506105468261158e565b5b9050919050565b60606003805461055d90612ca9565b80601f016020809104026020016040519081016040528092919081815260200182805461058990612ca9565b80156105d65780601f106105ab576101008083540402835291602001916105d6565b820191906000526020600020905b8154815290600101906020018083116105b957829003601f168201915b5050505050905090565b60006105eb826115f8565b61062a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106219061295c565b60405180910390fd5b6008600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561070c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610703906129bc565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061074c575061074b81336114fa565b5b61078b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610782906128bc565b60405180910390fd5b6107958383611664565b505050565b6000612710905090565b6060600a8211156107b457600080fd5b8166b1a2bc2ec500006107c79190612b65565b3414610808576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ff9061291c565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610870573d6000803e3d6000fd5b50600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156108e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d89061293c565b60405180910390fd5b8167ffffffffffffffff811115610921577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561094f5781602001602082028036833780820191505090505b50905060005b82811015610b985760006002549050612710811061097257600080fd5b846005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000610a62600080546109d690612ca9565b80601f0160208091040260200160405190810160405280929190818152602001828054610a0290612ca9565b8015610a4f5780601f10610a2457610100808354040283529160200191610a4f565b820191906000526020600020905b815481529060010190602001808311610a3257829003601f168201915b5050505050610a5d84611748565b6118f5565b9050610aa3816040518060400160405280600581526020017f2e6a736f6e0000000000000000000000000000000000000000000000000000008152506118f5565b905080600660008481526020019081526020016000209080519060200190610acc9291906120d2565b50600260008154610adc90612d0c565b9190508190555081848481518110610b1d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018181525050818673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505080610b9190612d0c565b9050610955565b5081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610be89190612ade565b9250508190555092915050565b610bff3382611b4e565b610c3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c35906129dc565b60405180910390fd5b610c49838383611c57565b505050565b610c6983838360405180602001604052806000815250611347565b505050565b6000806005600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0e906128fc565b60405180910390fd5b80915050919050565b600066b1a2bc2ec500003414610d6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d629061291c565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610dd3573d6000803e3d6000fd5b50600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3b9061293c565b60405180910390fd5b600060025490506127108110610e5957600080fd5b6001600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ea99190612ade565b92505081905550826005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000610fa060008054610f1490612ca9565b80601f0160208091040260200160405190810160405280929190818152602001828054610f4090612ca9565b8015610f8d5780601f10610f6257610100808354040283529160200191610f8d565b820191906000526020600020905b815481529060010190602001808311610f7057829003601f168201915b5050505050610f9b84611748565b6118f5565b9050610fe1816040518060400160405280600581526020017f2e6a736f6e0000000000000000000000000000000000000000000000000000008152506118f5565b90508060066000848152602001908152602001600020908051906020019061100a9291906120d2565b5060026000815461101a90612d0c565b91905081905550818473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48192505050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ef906128dc565b60405180910390fd5b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461114e90612ca9565b80601f016020809104026020016040519081016040528092919081815260200182805461117a90612ca9565b80156111c75780601f1061119c576101008083540402835291602001916111c7565b820191906000526020600020905b8154815290600101906020018083116111aa57829003601f168201915b5050505050905090565b6000600254905090565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561124a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112419061287c565b60405180910390fd5b80600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161133b91906127ff565b60405180910390a35050565b6113513383611b4e565b611390576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611387906129dc565b60405180910390fd5b61139c84848484611ed3565b50505050565b60606113ad826115f8565b6113ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e39061299c565b60405180910390fd5b60066000838152602001908152602001600020805461140a90612ca9565b80601f016020809104026020016040519081016040528092919081815260200182805461143690612ca9565b80156114835780601f1061145857610100808354040283529160200191611483565b820191906000526020600020905b81548152906001019060200180831161146657829003601f168201915b50505050509050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156114f7573d6000803e3d6000fd5b50565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166005600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b816008600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166005600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60606000821415611790576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506118f0565b600082905060005b600082146117c25780806117ab90612d0c565b915050600a826117bb9190612b34565b9150611798565b60008167ffffffffffffffff811115611804577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156118365781602001600182028036833780820191505090505b5090505b600085146118e95760018261184f9190612bbf565b9150600a8561185e9190612d55565b603061186a9190612ade565b60f81b8183815181106118a6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856118e29190612b34565b945061183a565b8093505050505b919050565b6060600083905060008390506000815183516119119190612ade565b67ffffffffffffffff811115611950577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156119825781602001600182028036833780820191505090505b5090506000819050600080600091505b8551821015611a66578582815181106119d4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b8382806119eb90612d0c565b935081518110611a24577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508180611a5e90612d0c565b925050611992565b600091505b8451821015611b3f57848281518110611aad577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b838280611ac490612d0c565b935081518110611afd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508180611b3790612d0c565b925050611a6b565b82965050505050505092915050565b6000611b59826115f8565b611b98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8f9061289c565b60405180910390fd5b60006005600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611c3d57508373ffffffffffffffffffffffffffffffffffffffff16611c25846105e0565b73ffffffffffffffffffffffffffffffffffffffff16145b80611c4e5750611c4d81856114fa565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cef9061297c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5f9061285c565b60405180910390fd5b611d73600082611664565b6001600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611dc39190612bbf565b925050819055506001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e1a9190612ade565b92505081905550816005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b611ede848484611c57565b611eea84848484611f2f565b611f29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f209061283c565b60405180910390fd5b50505050565b6000611f508473ffffffffffffffffffffffffffffffffffffffff166120bf565b156120b2578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02338786866040518563ffffffff1660e01b8152600401611f949493929190612791565b602060405180830381600087803b158015611fae57600080fd5b505af1925050508015611fdf57506040513d601f19601f82011682018060405250810190611fdc9190612416565b60015b612062573d806000811461200f576040519150601f19603f3d011682016040523d82523d6000602084013e612014565b606091505b5060008151141561205a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120519061283c565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506120b7565b600190505b949350505050565b600080823b905060008111915050919050565b8280546120de90612ca9565b90600052602060002090601f0160209004810192826121005760008555612147565b82601f1061211957805160ff1916838001178555612147565b82800160010185558215612147579182015b8281111561214657825182559160200191906001019061212b565b5b5090506121549190612158565b5090565b5b80821115612171576000816000905550600101612159565b5090565b600061218861218384612a3c565b612a17565b9050828152602081018484840111156121a057600080fd5b6121ab848285612c67565b509392505050565b6000813590506121c281613233565b92915050565b6000813590506121d78161324a565b92915050565b6000813590506121ec81613261565b92915050565b60008151905061220181613261565b92915050565b600082601f83011261221857600080fd5b8135612228848260208601612175565b91505092915050565b60008135905061224081613278565b92915050565b60006020828403121561225857600080fd5b6000612266848285016121b3565b91505092915050565b6000806040838503121561228257600080fd5b6000612290858286016121b3565b92505060206122a1858286016121b3565b9150509250929050565b6000806000606084860312156122c057600080fd5b60006122ce868287016121b3565b93505060206122df868287016121b3565b92505060406122f086828701612231565b9150509250925092565b6000806000806080858703121561231057600080fd5b600061231e878288016121b3565b945050602061232f878288016121b3565b935050604061234087828801612231565b925050606085013567ffffffffffffffff81111561235d57600080fd5b61236987828801612207565b91505092959194509250565b6000806040838503121561238857600080fd5b6000612396858286016121b3565b92505060206123a7858286016121c8565b9150509250929050565b600080604083850312156123c457600080fd5b60006123d2858286016121b3565b92505060206123e385828601612231565b9150509250929050565b6000602082840312156123ff57600080fd5b600061240d848285016121dd565b91505092915050565b60006020828403121561242857600080fd5b6000612436848285016121f2565b91505092915050565b60006020828403121561245157600080fd5b600061245f84828501612231565b91505092915050565b60006124748383612758565b60208301905092915050565b61248981612bf3565b82525050565b600061249a82612a7d565b6124a48185612aab565b93506124af83612a6d565b8060005b838110156124e05781516124c78882612468565b97506124d283612a9e565b9250506001810190506124b3565b5085935050505092915050565b6124f681612c05565b82525050565b600061250782612a88565b6125118185612abc565b9350612521818560208601612c76565b61252a81612e42565b840191505092915050565b600061254082612a93565b61254a8185612acd565b935061255a818560208601612c76565b61256381612e42565b840191505092915050565b600061257b603283612acd565b915061258682612e53565b604082019050919050565b600061259e602483612acd565b91506125a982612ea2565b604082019050919050565b60006125c1601983612acd565b91506125cc82612ef1565b602082019050919050565b60006125e4602c83612acd565b91506125ef82612f1a565b604082019050919050565b6000612607603883612acd565b915061261282612f69565b604082019050919050565b600061262a602a83612acd565b915061263582612fb8565b604082019050919050565b600061264d602983612acd565b915061265882613007565b604082019050919050565b6000612670601083612acd565b915061267b82613056565b602082019050919050565b6000612693602083612acd565b915061269e8261307f565b602082019050919050565b60006126b6602c83612acd565b91506126c1826130a8565b604082019050919050565b60006126d9602983612acd565b91506126e4826130f7565b604082019050919050565b60006126fc602f83612acd565b915061270782613146565b604082019050919050565b600061271f602183612acd565b915061272a82613195565b604082019050919050565b6000612742603183612acd565b915061274d826131e4565b604082019050919050565b61276181612c5d565b82525050565b61277081612c5d565b82525050565b600060208201905061278b6000830184612480565b92915050565b60006080820190506127a66000830187612480565b6127b36020830186612480565b6127c06040830185612767565b81810360608301526127d281846124fc565b905095945050505050565b600060208201905081810360008301526127f7818461248f565b905092915050565b600060208201905061281460008301846124ed565b92915050565b600060208201905081810360008301526128348184612535565b905092915050565b600060208201905081810360008301526128558161256e565b9050919050565b6000602082019050818103600083015261287581612591565b9050919050565b60006020820190508181036000830152612895816125b4565b9050919050565b600060208201905081810360008301526128b5816125d7565b9050919050565b600060208201905081810360008301526128d5816125fa565b9050919050565b600060208201905081810360008301526128f58161261d565b9050919050565b6000602082019050818103600083015261291581612640565b9050919050565b6000602082019050818103600083015261293581612663565b9050919050565b6000602082019050818103600083015261295581612686565b9050919050565b60006020820190508181036000830152612975816126a9565b9050919050565b60006020820190508181036000830152612995816126cc565b9050919050565b600060208201905081810360008301526129b5816126ef565b9050919050565b600060208201905081810360008301526129d581612712565b9050919050565b600060208201905081810360008301526129f581612735565b9050919050565b6000602082019050612a116000830184612767565b92915050565b6000612a21612a32565b9050612a2d8282612cdb565b919050565b6000604051905090565b600067ffffffffffffffff821115612a5757612a56612e13565b5b612a6082612e42565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612ae982612c5d565b9150612af483612c5d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612b2957612b28612d86565b5b828201905092915050565b6000612b3f82612c5d565b9150612b4a83612c5d565b925082612b5a57612b59612db5565b5b828204905092915050565b6000612b7082612c5d565b9150612b7b83612c5d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612bb457612bb3612d86565b5b828202905092915050565b6000612bca82612c5d565b9150612bd583612c5d565b925082821015612be857612be7612d86565b5b828203905092915050565b6000612bfe82612c3d565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612c94578082015181840152602081019050612c79565b83811115612ca3576000848401525b50505050565b60006002820490506001821680612cc157607f821691505b60208210811415612cd557612cd4612de4565b5b50919050565b612ce482612e42565b810181811067ffffffffffffffff82111715612d0357612d02612e13565b5b80604052505050565b6000612d1782612c5d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612d4a57612d49612d86565b5b600182019050919050565b6000612d6082612c5d565b9150612d6b83612c5d565b925082612d7b57612d7a612db5565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f496e73756666696369656e742045746800000000000000000000000000000000600082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b61323c81612bf3565b811461324757600080fd5b50565b61325381612c05565b811461325e57600080fd5b50565b61326a81612c11565b811461327557600080fd5b50565b61328181612c5d565b811461328c57600080fd5b5056fea2646970667358221220a028b9ba5d0e0e2df99c254a46834850d92ea577532754cdd0817b330673c49564736f6c6343000804003368747470733a2f2f63727970746f636c65726b732e696f2f6170692f636c65726b732f00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000c43727970746f436c65726b73000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024343000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106101095760003560e01c80636a62784211610095578063a22cb46511610064578063a22cb46514610389578063b88d4fde146103b2578063c87b56dd146103db578063db2e21bc14610418578063e985e9c51461042f57610109565b80636a627842146102c657806370a08231146102f657806395d89b41146103335780639f181b5e1461035e57610109565b806318160ddd116100dc57806318160ddd146101dc57806319f57e1a1461020757806323b872dd1461023757806342842e0e146102605780636352211e1461028957610109565b806301ffc9a71461010e57806306fdde031461014b578063081812fc14610176578063095ea7b3146101b3575b600080fd5b34801561011a57600080fd5b50610135600480360381019061013091906123ed565b61046c565b60405161014291906127ff565b60405180910390f35b34801561015757600080fd5b5061016061054e565b60405161016d919061281a565b60405180910390f35b34801561018257600080fd5b5061019d6004803603810190610198919061243f565b6105e0565b6040516101aa9190612776565b60405180910390f35b3480156101bf57600080fd5b506101da60048036038101906101d591906123b1565b610665565b005b3480156101e857600080fd5b506101f161079a565b6040516101fe91906129fc565b60405180910390f35b610221600480360381019061021c91906123b1565b6107a4565b60405161022e91906127dd565b60405180910390f35b34801561024357600080fd5b5061025e600480360381019061025991906122ab565b610bf5565b005b34801561026c57600080fd5b50610287600480360381019061028291906122ab565b610c4e565b005b34801561029557600080fd5b506102b060048036038101906102ab919061243f565b610c6e565b6040516102bd9190612776565b60405180910390f35b6102e060048036038101906102db9190612246565b610d20565b6040516102ed91906129fc565b60405180910390f35b34801561030257600080fd5b5061031d60048036038101906103189190612246565b611087565b60405161032a91906129fc565b60405180910390f35b34801561033f57600080fd5b5061034861113f565b604051610355919061281a565b60405180910390f35b34801561036a57600080fd5b506103736111d1565b60405161038091906129fc565b60405180910390f35b34801561039557600080fd5b506103b060048036038101906103ab9190612375565b6111db565b005b3480156103be57600080fd5b506103d960048036038101906103d491906122fa565b611347565b005b3480156103e757600080fd5b5061040260048036038101906103fd919061243f565b6113a2565b60405161040f919061281a565b60405180910390f35b34801561042457600080fd5b5061042d61148f565b005b34801561043b57600080fd5b506104566004803603810190610451919061226f565b6114fa565b60405161046391906127ff565b60405180910390f35b60007f74354816000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061053757507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061054757506105468261158e565b5b9050919050565b60606003805461055d90612ca9565b80601f016020809104026020016040519081016040528092919081815260200182805461058990612ca9565b80156105d65780601f106105ab576101008083540402835291602001916105d6565b820191906000526020600020905b8154815290600101906020018083116105b957829003601f168201915b5050505050905090565b60006105eb826115f8565b61062a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106219061295c565b60405180910390fd5b6008600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561070c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610703906129bc565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16148061074c575061074b81336114fa565b5b61078b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610782906128bc565b60405180910390fd5b6107958383611664565b505050565b6000612710905090565b6060600a8211156107b457600080fd5b8166b1a2bc2ec500006107c79190612b65565b3414610808576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107ff9061291c565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610870573d6000803e3d6000fd5b50600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156108e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108d89061293c565b60405180910390fd5b8167ffffffffffffffff811115610921577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405190808252806020026020018201604052801561094f5781602001602082028036833780820191505090505b50905060005b82811015610b985760006002549050612710811061097257600080fd5b846005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000610a62600080546109d690612ca9565b80601f0160208091040260200160405190810160405280929190818152602001828054610a0290612ca9565b8015610a4f5780601f10610a2457610100808354040283529160200191610a4f565b820191906000526020600020905b815481529060010190602001808311610a3257829003601f168201915b5050505050610a5d84611748565b6118f5565b9050610aa3816040518060400160405280600581526020017f2e6a736f6e0000000000000000000000000000000000000000000000000000008152506118f5565b905080600660008481526020019081526020016000209080519060200190610acc9291906120d2565b50600260008154610adc90612d0c565b9190508190555081848481518110610b1d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001018181525050818673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505080610b9190612d0c565b9050610955565b5081600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610be89190612ade565b9250508190555092915050565b610bff3382611b4e565b610c3e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c35906129dc565b60405180910390fd5b610c49838383611c57565b505050565b610c6983838360405180602001604052806000815250611347565b505050565b6000806005600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d0e906128fc565b60405180910390fd5b80915050919050565b600066b1a2bc2ec500003414610d6b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d629061291c565b60405180910390fd5b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610dd3573d6000803e3d6000fd5b50600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3b9061293c565b60405180910390fd5b600060025490506127108110610e5957600080fd5b6001600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610ea99190612ade565b92505081905550826005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000610fa060008054610f1490612ca9565b80601f0160208091040260200160405190810160405280929190818152602001828054610f4090612ca9565b8015610f8d5780601f10610f6257610100808354040283529160200191610f8d565b820191906000526020600020905b815481529060010190602001808311610f7057829003601f168201915b5050505050610f9b84611748565b6118f5565b9050610fe1816040518060400160405280600581526020017f2e6a736f6e0000000000000000000000000000000000000000000000000000008152506118f5565b90508060066000848152602001908152602001600020908051906020019061100a9291906120d2565b5060026000815461101a90612d0c565b91905081905550818473ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48192505050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156110f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ef906128dc565b60405180910390fd5b600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b60606004805461114e90612ca9565b80601f016020809104026020016040519081016040528092919081815260200182805461117a90612ca9565b80156111c75780601f1061119c576101008083540402835291602001916111c7565b820191906000526020600020905b8154815290600101906020018083116111aa57829003601f168201915b5050505050905090565b6000600254905090565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561124a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112419061287c565b60405180910390fd5b80600960003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161133b91906127ff565b60405180910390a35050565b6113513383611b4e565b611390576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611387906129dc565b60405180910390fd5b61139c84848484611ed3565b50505050565b60606113ad826115f8565b6113ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113e39061299c565b60405180910390fd5b60066000838152602001908152602001600020805461140a90612ca9565b80601f016020809104026020016040519081016040528092919081815260200182805461143690612ca9565b80156114835780601f1061145857610100808354040283529160200191611483565b820191906000526020600020905b81548152906001019060200180831161146657829003601f168201915b50505050509050919050565b600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156114f7573d6000803e3d6000fd5b50565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166005600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b816008600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166005600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60606000821415611790576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506118f0565b600082905060005b600082146117c25780806117ab90612d0c565b915050600a826117bb9190612b34565b9150611798565b60008167ffffffffffffffff811115611804577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156118365781602001600182028036833780820191505090505b5090505b600085146118e95760018261184f9190612bbf565b9150600a8561185e9190612d55565b603061186a9190612ade565b60f81b8183815181106118a6577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856118e29190612b34565b945061183a565b8093505050505b919050565b6060600083905060008390506000815183516119119190612ade565b67ffffffffffffffff811115611950577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156119825781602001600182028036833780820191505090505b5090506000819050600080600091505b8551821015611a66578582815181106119d4577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b8382806119eb90612d0c565b935081518110611a24577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508180611a5e90612d0c565b925050611992565b600091505b8451821015611b3f57848281518110611aad577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602001015160f81c60f81b838280611ac490612d0c565b935081518110611afd577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053508180611b3790612d0c565b925050611a6b565b82965050505050505092915050565b6000611b59826115f8565b611b98576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b8f9061289c565b60405180910390fd5b60006005600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611c3d57508373ffffffffffffffffffffffffffffffffffffffff16611c25846105e0565b73ffffffffffffffffffffffffffffffffffffffff16145b80611c4e5750611c4d81856114fa565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166005600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611cf8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cef9061297c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611d68576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d5f9061285c565b60405180910390fd5b611d73600082611664565b6001600760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611dc39190612bbf565b925050819055506001600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e1a9190612ade565b92505081905550816005600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b611ede848484611c57565b611eea84848484611f2f565b611f29576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f209061283c565b60405180910390fd5b50505050565b6000611f508473ffffffffffffffffffffffffffffffffffffffff166120bf565b156120b2578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02338786866040518563ffffffff1660e01b8152600401611f949493929190612791565b602060405180830381600087803b158015611fae57600080fd5b505af1925050508015611fdf57506040513d601f19601f82011682018060405250810190611fdc9190612416565b60015b612062573d806000811461200f576040519150601f19603f3d011682016040523d82523d6000602084013e612014565b606091505b5060008151141561205a576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120519061283c565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506120b7565b600190505b949350505050565b600080823b905060008111915050919050565b8280546120de90612ca9565b90600052602060002090601f0160209004810192826121005760008555612147565b82601f1061211957805160ff1916838001178555612147565b82800160010185558215612147579182015b8281111561214657825182559160200191906001019061212b565b5b5090506121549190612158565b5090565b5b80821115612171576000816000905550600101612159565b5090565b600061218861218384612a3c565b612a17565b9050828152602081018484840111156121a057600080fd5b6121ab848285612c67565b509392505050565b6000813590506121c281613233565b92915050565b6000813590506121d78161324a565b92915050565b6000813590506121ec81613261565b92915050565b60008151905061220181613261565b92915050565b600082601f83011261221857600080fd5b8135612228848260208601612175565b91505092915050565b60008135905061224081613278565b92915050565b60006020828403121561225857600080fd5b6000612266848285016121b3565b91505092915050565b6000806040838503121561228257600080fd5b6000612290858286016121b3565b92505060206122a1858286016121b3565b9150509250929050565b6000806000606084860312156122c057600080fd5b60006122ce868287016121b3565b93505060206122df868287016121b3565b92505060406122f086828701612231565b9150509250925092565b6000806000806080858703121561231057600080fd5b600061231e878288016121b3565b945050602061232f878288016121b3565b935050604061234087828801612231565b925050606085013567ffffffffffffffff81111561235d57600080fd5b61236987828801612207565b91505092959194509250565b6000806040838503121561238857600080fd5b6000612396858286016121b3565b92505060206123a7858286016121c8565b9150509250929050565b600080604083850312156123c457600080fd5b60006123d2858286016121b3565b92505060206123e385828601612231565b9150509250929050565b6000602082840312156123ff57600080fd5b600061240d848285016121dd565b91505092915050565b60006020828403121561242857600080fd5b6000612436848285016121f2565b91505092915050565b60006020828403121561245157600080fd5b600061245f84828501612231565b91505092915050565b60006124748383612758565b60208301905092915050565b61248981612bf3565b82525050565b600061249a82612a7d565b6124a48185612aab565b93506124af83612a6d565b8060005b838110156124e05781516124c78882612468565b97506124d283612a9e565b9250506001810190506124b3565b5085935050505092915050565b6124f681612c05565b82525050565b600061250782612a88565b6125118185612abc565b9350612521818560208601612c76565b61252a81612e42565b840191505092915050565b600061254082612a93565b61254a8185612acd565b935061255a818560208601612c76565b61256381612e42565b840191505092915050565b600061257b603283612acd565b915061258682612e53565b604082019050919050565b600061259e602483612acd565b91506125a982612ea2565b604082019050919050565b60006125c1601983612acd565b91506125cc82612ef1565b602082019050919050565b60006125e4602c83612acd565b91506125ef82612f1a565b604082019050919050565b6000612607603883612acd565b915061261282612f69565b604082019050919050565b600061262a602a83612acd565b915061263582612fb8565b604082019050919050565b600061264d602983612acd565b915061265882613007565b604082019050919050565b6000612670601083612acd565b915061267b82613056565b602082019050919050565b6000612693602083612acd565b915061269e8261307f565b602082019050919050565b60006126b6602c83612acd565b91506126c1826130a8565b604082019050919050565b60006126d9602983612acd565b91506126e4826130f7565b604082019050919050565b60006126fc602f83612acd565b915061270782613146565b604082019050919050565b600061271f602183612acd565b915061272a82613195565b604082019050919050565b6000612742603183612acd565b915061274d826131e4565b604082019050919050565b61276181612c5d565b82525050565b61277081612c5d565b82525050565b600060208201905061278b6000830184612480565b92915050565b60006080820190506127a66000830187612480565b6127b36020830186612480565b6127c06040830185612767565b81810360608301526127d281846124fc565b905095945050505050565b600060208201905081810360008301526127f7818461248f565b905092915050565b600060208201905061281460008301846124ed565b92915050565b600060208201905081810360008301526128348184612535565b905092915050565b600060208201905081810360008301526128558161256e565b9050919050565b6000602082019050818103600083015261287581612591565b9050919050565b60006020820190508181036000830152612895816125b4565b9050919050565b600060208201905081810360008301526128b5816125d7565b9050919050565b600060208201905081810360008301526128d5816125fa565b9050919050565b600060208201905081810360008301526128f58161261d565b9050919050565b6000602082019050818103600083015261291581612640565b9050919050565b6000602082019050818103600083015261293581612663565b9050919050565b6000602082019050818103600083015261295581612686565b9050919050565b60006020820190508181036000830152612975816126a9565b9050919050565b60006020820190508181036000830152612995816126cc565b9050919050565b600060208201905081810360008301526129b5816126ef565b9050919050565b600060208201905081810360008301526129d581612712565b9050919050565b600060208201905081810360008301526129f581612735565b9050919050565b6000602082019050612a116000830184612767565b92915050565b6000612a21612a32565b9050612a2d8282612cdb565b919050565b6000604051905090565b600067ffffffffffffffff821115612a5757612a56612e13565b5b612a6082612e42565b9050602081019050919050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600082825260208201905092915050565b6000612ae982612c5d565b9150612af483612c5d565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115612b2957612b28612d86565b5b828201905092915050565b6000612b3f82612c5d565b9150612b4a83612c5d565b925082612b5a57612b59612db5565b5b828204905092915050565b6000612b7082612c5d565b9150612b7b83612c5d565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612bb457612bb3612d86565b5b828202905092915050565b6000612bca82612c5d565b9150612bd583612c5d565b925082821015612be857612be7612d86565b5b828203905092915050565b6000612bfe82612c3d565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b83811015612c94578082015181840152602081019050612c79565b83811115612ca3576000848401525b50505050565b60006002820490506001821680612cc157607f821691505b60208210811415612cd557612cd4612de4565b5b50919050565b612ce482612e42565b810181811067ffffffffffffffff82111715612d0357612d02612e13565b5b80604052505050565b6000612d1782612c5d565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415612d4a57612d49612d86565b5b600182019050919050565b6000612d6082612c5d565b9150612d6b83612c5d565b925082612d7b57612d7a612db5565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f496e73756666696369656e742045746800000000000000000000000000000000600082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b61323c81612bf3565b811461324757600080fd5b50565b61325381612c05565b811461325e57600080fd5b50565b61326a81612c11565b811461327557600080fd5b50565b61328181612c5d565b811461328c57600080fd5b5056fea2646970667358221220a028b9ba5d0e0e2df99c254a46834850d92ea577532754cdd0817b330673c49564736f6c63430008040033

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

00000000000000000000000000000000000000000000000000000000000000400000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000c43727970746f436c65726b73000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000024343000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : name_ (string): CryptoClerks
Arg [1] : symbol_ (string): CC

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000040
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [2] : 000000000000000000000000000000000000000000000000000000000000000c
Arg [3] : 43727970746f436c65726b730000000000000000000000000000000000000000
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [5] : 4343000000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

13376:8578:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14179:297;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15024:94;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15946:213;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15544:394;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14488:77;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18173:925;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16622:297;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16927:145;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14783:233;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17468:693;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14573:202;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15126:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15454:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16167:283;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17080:275;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15232:210;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17367:95;;;;;;;;;;;;;:::i;:::-;;16458:156;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14179:297;14273:4;14325:25;14310:40;;;:11;:40;;;;:105;;;;14382:33;14367:48;;;:11;:48;;;;14310:105;:158;;;;14432:36;14456:11;14432:23;:36::i;:::-;14310:158;14290:178;;14179:297;;;:::o;15024:94::-;15072:13;15105:5;15098:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15024:94;:::o;15946:213::-;16014:7;16042:16;16050:7;16042;:16::i;:::-;16034:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;16127:15;:24;16143:7;16127:24;;;;;;;;;;;;;;;;;;;;;16120:31;;15946:213;;;:::o;15544:394::-;15619:13;15635:7;:16;15643:7;15635:16;;;;;;;;;;;;;;;;;;;;;15619:32;;15676:5;15670:11;;:2;:11;;;;15662:57;;;;;;;;;;;;:::i;:::-;;;;;;;;;15768:5;15754:19;;:10;:19;;;:58;;;;15777:35;15794:5;15801:10;15777:16;:35::i;:::-;15754:58;15732:164;;;;;;;;;;;;:::i;:::-;;;;;;;;;15909:21;15918:2;15922:7;15909:8;:21::i;:::-;15544:394;;;:::o;14488:77::-;14542:7;14558:5;14551:12;;14488:77;:::o;18173:925::-;18257:20;18308:2;18298:6;:12;;18290:21;;;;;;18361:6;18343:17;:24;;;;:::i;:::-;18330:9;:37;18322:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;18399:6;;;;;;;;;;;:15;;:38;18415:21;18399:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18470:1;18456:16;;:2;:16;;;;18448:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;18550:6;18536:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18530:27;;18572:9;18568:479;18587:6;18583:1;:10;18568:479;;;18628:13;18644:6;;18628:22;;18681:5;18673;:13;18665:22;;;;;;18733:2;18716:7;:14;18724:5;18716:14;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;18764:17;18784:33;18791:7;18784:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18800:16;:5;:14;:16::i;:::-;18784:6;:33::i;:::-;18764:53;;18838:20;18845:3;18838:20;;;;;;;;;;;;;;;;;:6;:20::i;:::-;18832:26;;18901:3;18887:4;:11;18892:5;18887:11;;;;;;;;;;;:17;;;;;;;;;;;;:::i;:::-;;18935:6;;18933:8;;;;;:::i;:::-;;;;;;;;18979:5;18970:3;18974:1;18970:6;;;;;;;;;;;;;;;;;;;;;:14;;;;;19029:5;19025:2;19004:31;;19021:1;19004:31;;;;;;;;;;;;18568:479;;18595:3;;;;:::i;:::-;;;18568:479;;;;19084:6;19067:9;:13;19077:2;19067:13;;;;;;;;;;;;;;;;:23;;;;;;;:::i;:::-;;;;;;;;18173:925;;;;:::o;16622:297::-;16777:39;16796:10;16808:7;16777:18;:39::i;:::-;16769:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;16883:28;16893:4;16899:2;16903:7;16883:9;:28::i;:::-;16622:297;;;:::o;16927:145::-;17025:39;17042:4;17048:2;17052:7;17025:39;;;;;;;;;;;;:16;:39::i;:::-;16927:145;;;:::o;14783:233::-;14849:7;14869:13;14885:7;:16;14893:7;14885:16;;;;;;;;;;;;;;;;;;;;;14869:32;;14937:1;14920:19;;:5;:19;;;;14912:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;15003:5;14996:12;;;14783:233;;;:::o;17468:693::-;17528:10;17571:17;17558:9;:30;17550:59;;;;;;;;;;;;:::i;:::-;;;;;;;;;17620:6;;;;;;;;;;;:15;;:38;17636:21;17620:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17691:1;17677:16;;:2;:16;;;;17669:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;17751:13;17767:6;;17751:22;;17800:5;17792;:13;17784:22;;;;;;17854:1;17837:9;:13;17847:2;17837:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;17883:2;17866:7;:14;17874:5;17866:14;;;;;;;;;;;;:19;;;;;;;;;;;;;;;;;;17906:17;17926:33;17933:7;17926:33;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17942:16;:5;:14;:16::i;:::-;17926:6;:33::i;:::-;17906:53;;17976:20;17983:3;17976:20;;;;;;;;;;;;;;;;;:6;:20::i;:::-;17970:26;;18031:3;18017:4;:11;18022:5;18017:11;;;;;;;;;;;:17;;;;;;;;;;;;:::i;:::-;;18057:6;;18055:8;;;;;:::i;:::-;;;;;;;;18114:5;18110:2;18089:31;;18106:1;18089:31;;;;;;;;;;;;18148:5;18141:12;;;;17468:693;;;:::o;14573:202::-;14639:7;14684:1;14667:19;;:5;:19;;;;14659:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;14751:9;:16;14761:5;14751:16;;;;;;;;;;;;;;;;14744:23;;14573:202;;;:::o;15126:98::-;15176:13;15209:7;15202:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15126:98;:::o;15454:78::-;15507:7;15524:6;;15517:13;;15454:78;:::o;16167:283::-;16276:10;16264:22;;:8;:22;;;;16256:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;16372:8;16329:18;:30;16348:10;16329:30;;;;;;;;;;;;;;;:40;16360:8;16329:40;;;;;;;;;;;;;;;;:51;;;;;;;;;;;;;;;;;;16423:8;16396:46;;16411:10;16396:46;;;16433:8;16396:46;;;;;;:::i;:::-;;;;;;;;16167:283;;:::o;17080:275::-;17204:39;17223:10;17235:7;17204:18;:39::i;:::-;17196:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;17308:39;17322:4;17328:2;17332:7;17341:5;17308:13;:39::i;:::-;17080:275;;;;:::o;15232:210::-;15299:13;15333:16;15341:7;15333;:16::i;:::-;15325:76;;;;;;;;;;;;:::i;:::-;;;;;;;;;15421:4;:13;15426:7;15421:13;;;;;;;;;;;15414:20;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15232:210;;;:::o;17367:95::-;17416:6;;;;;;;;;;;:15;;:38;17432:21;17416:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17367:95::o;16458:156::-;16547:4;16571:18;:25;16590:5;16571:25;;;;;;;;;;;;;;;:35;16597:8;16571:35;;;;;;;;;;;;;;;;;;;;;;;;;16564:42;;16458:156;;;;:::o;3324:157::-;3409:4;3448:25;3433:40;;;:11;:40;;;;3426:47;;3324:157;;;:::o;20075:119::-;20132:4;20184:1;20156:30;;:7;:16;20164:7;20156:16;;;;;;;;;;;;;;;;;;;;;:30;;;;20149:37;;20075:119;;;:::o;21028:159::-;21122:2;21095:15;:24;21111:7;21095:24;;;;;;;;;;;;:29;;;;;;;;;;;;;;;;;;21171:7;21167:2;21140:39;;21149:7;:16;21157:7;21149:16;;;;;;;;;;;;;;;;;;;;;21140:39;;;;;;;;;;;;21028:159;;:::o;3676:723::-;3732:13;3962:1;3953:5;:10;3949:53;;;3980:10;;;;;;;;;;;;;;;;;;;;;3949:53;4012:12;4027:5;4012:20;;4043:14;4068:78;4083:1;4075:4;:9;4068:78;;4101:8;;;;;:::i;:::-;;;;4132:2;4124:10;;;;;:::i;:::-;;;4068:78;;;4156:19;4188:6;4178:17;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4156:39;;4206:154;4222:1;4213:5;:10;4206:154;;4250:1;4240:11;;;;;:::i;:::-;;;4317:2;4309:5;:10;;;;:::i;:::-;4296:2;:24;;;;:::i;:::-;4283:39;;4266:6;4273;4266:14;;;;;;;;;;;;;;;;;;;:56;;;;;;;;;;;4346:2;4337:11;;;;;:::i;:::-;;;4206:154;;;4384:6;4370:21;;;;;3676:723;;;;:::o;19110:665::-;19192:13;19218:23;19250:5;19218:38;;19267:24;19300:6;19267:40;;19328:23;19385:11;:18;19365:10;:17;:38;;;;:::i;:::-;19354:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19328:76;;19415:22;19446:9;19415:41;;19477:6;19494;19527:1;19525:3;;19521:90;19531:10;:17;19529:1;:19;19521:90;;;19586:10;19597:1;19586:13;;;;;;;;;;;;;;;;;;;;;;;;19569:9;19579:3;;;;;:::i;:::-;;;19569:14;;;;;;;;;;;;;;;;;;;:30;;;;;;;;;;;19549:3;;;;;:::i;:::-;;;;19521:90;;;19637:1;19635:3;;19631:92;19641:11;:18;19639:1;:20;19631:92;;;19697:11;19709:1;19697:14;;;;;;;;;;;;;;;;;;;;;;;;19680:9;19690:3;;;;;:::i;:::-;;;19680:14;;;;;;;;;;;;;;;;;;;:31;;;;;;;;;;;19660:3;;;;;:::i;:::-;;;;19631:92;;;19757:9;19743:24;;;;;;;;19110:665;;;;:::o;20202:333::-;20287:4;20312:16;20320:7;20312;:16::i;:::-;20304:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;20388:13;20404:7;:16;20412:7;20404:16;;;;;;;;;;;;;;;;;;;;;20388:32;;20450:5;20439:16;;:7;:16;;;:51;;;;20483:7;20459:31;;:20;20471:7;20459:11;:20::i;:::-;:31;;;20439:51;:87;;;;20494:32;20511:5;20518:7;20494:16;:32::i;:::-;20439:87;20431:96;;;20202:333;;;;:::o;20543:477::-;20653:4;20633:24;;:7;:16;20641:7;20633:16;;;;;;;;;;;;;;;;;;;;;:24;;;20625:78;;;;;;;;;;;;:::i;:::-;;;;;;;;;20736:1;20722:16;;:2;:16;;;;20714:65;;;;;;;;;;;;:::i;:::-;;;;;;;;;20844:29;20861:1;20865:7;20844:8;:29::i;:::-;20905:1;20886:9;:15;20896:4;20886:15;;;;;;;;;;;;;;;;:20;;;;;;;:::i;:::-;;;;;;;;20934:1;20917:9;:13;20927:2;20917:13;;;;;;;;;;;;;;;;:18;;;;;;;:::i;:::-;;;;;;;;20965:2;20946:7;:16;20954:7;20946:16;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;21004:7;21000:2;20985:27;;20994:4;20985:27;;;;;;;;;;;;20543:477;;;:::o;19787:264::-;19893:28;19903:4;19909:2;19913:7;19893:9;:28::i;:::-;19940:48;19963:4;19969:2;19973:7;19982:5;19940:22;:48::i;:::-;19932:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;19787:264;;;;:::o;21195:754::-;21307:4;21328:15;:2;:13;;;:15::i;:::-;21324:618;;;21380:2;21364:36;;;21401:10;21413:4;21419:7;21428:5;21364:70;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;21360:527;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;21621:1;21604:6;:13;:18;21600:272;;;21647:60;;;;;;;;;;:::i;:::-;;;;;;;;21600:272;21822:6;21816:13;21807:6;21803:2;21799:15;21792:38;21360:527;21495:41;;;21485:51;;;:6;:51;;;;21478:58;;;;;21324:618;21926:4;21919:11;;21195:754;;;;;;;:::o;6045:387::-;6105:4;6313:12;6380:7;6368:20;6360:28;;6423:1;6416:4;:8;6409:15;;;6045:387;;;:::o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;7:343:1:-;84:5;109:65;125:48;166:6;125:48;:::i;:::-;109:65;:::i;:::-;100:74;;197:6;190:5;183:21;235:4;228:5;224:16;273:3;264:6;259:3;255:16;252:25;249:2;;;290:1;287;280:12;249:2;303:41;337:6;332:3;327;303:41;:::i;:::-;90:260;;;;;;:::o;356:139::-;402:5;440:6;427:20;418:29;;456:33;483:5;456:33;:::i;:::-;408:87;;;;:::o;501:133::-;544:5;582:6;569:20;560:29;;598:30;622:5;598:30;:::i;:::-;550:84;;;;:::o;640:137::-;685:5;723:6;710:20;701:29;;739:32;765:5;739:32;:::i;:::-;691:86;;;;:::o;783:141::-;839:5;870:6;864:13;855:22;;886:32;912:5;886:32;:::i;:::-;845:79;;;;:::o;943:271::-;998:5;1047:3;1040:4;1032:6;1028:17;1024:27;1014:2;;1065:1;1062;1055:12;1014:2;1105:6;1092:20;1130:78;1204:3;1196:6;1189:4;1181:6;1177:17;1130:78;:::i;:::-;1121:87;;1004:210;;;;;:::o;1220:139::-;1266:5;1304:6;1291:20;1282:29;;1320:33;1347:5;1320:33;:::i;:::-;1272:87;;;;:::o;1365:262::-;1424:6;1473:2;1461:9;1452:7;1448:23;1444:32;1441:2;;;1489:1;1486;1479:12;1441:2;1532:1;1557:53;1602:7;1593:6;1582:9;1578:22;1557:53;:::i;:::-;1547:63;;1503:117;1431:196;;;;:::o;1633:407::-;1701:6;1709;1758:2;1746:9;1737:7;1733:23;1729:32;1726:2;;;1774:1;1771;1764:12;1726:2;1817:1;1842:53;1887:7;1878:6;1867:9;1863:22;1842:53;:::i;:::-;1832:63;;1788:117;1944:2;1970:53;2015:7;2006:6;1995:9;1991:22;1970:53;:::i;:::-;1960:63;;1915:118;1716:324;;;;;:::o;2046:552::-;2123:6;2131;2139;2188:2;2176:9;2167:7;2163:23;2159:32;2156:2;;;2204:1;2201;2194:12;2156:2;2247:1;2272:53;2317:7;2308:6;2297:9;2293:22;2272:53;:::i;:::-;2262:63;;2218:117;2374:2;2400:53;2445:7;2436:6;2425:9;2421:22;2400:53;:::i;:::-;2390:63;;2345:118;2502:2;2528:53;2573:7;2564:6;2553:9;2549:22;2528:53;:::i;:::-;2518:63;;2473:118;2146:452;;;;;:::o;2604:809::-;2699:6;2707;2715;2723;2772:3;2760:9;2751:7;2747:23;2743:33;2740:2;;;2789:1;2786;2779:12;2740:2;2832:1;2857:53;2902:7;2893:6;2882:9;2878:22;2857:53;:::i;:::-;2847:63;;2803:117;2959:2;2985:53;3030:7;3021:6;3010:9;3006:22;2985:53;:::i;:::-;2975:63;;2930:118;3087:2;3113:53;3158:7;3149:6;3138:9;3134:22;3113:53;:::i;:::-;3103:63;;3058:118;3243:2;3232:9;3228:18;3215:32;3274:18;3266:6;3263:30;3260:2;;;3306:1;3303;3296:12;3260:2;3334:62;3388:7;3379:6;3368:9;3364:22;3334:62;:::i;:::-;3324:72;;3186:220;2730:683;;;;;;;:::o;3419:401::-;3484:6;3492;3541:2;3529:9;3520:7;3516:23;3512:32;3509:2;;;3557:1;3554;3547:12;3509:2;3600:1;3625:53;3670:7;3661:6;3650:9;3646:22;3625:53;:::i;:::-;3615:63;;3571:117;3727:2;3753:50;3795:7;3786:6;3775:9;3771:22;3753:50;:::i;:::-;3743:60;;3698:115;3499:321;;;;;:::o;3826:407::-;3894:6;3902;3951:2;3939:9;3930:7;3926:23;3922:32;3919:2;;;3967:1;3964;3957:12;3919:2;4010:1;4035:53;4080:7;4071:6;4060:9;4056:22;4035:53;:::i;:::-;4025:63;;3981:117;4137:2;4163:53;4208:7;4199:6;4188:9;4184:22;4163:53;:::i;:::-;4153:63;;4108:118;3909:324;;;;;:::o;4239:260::-;4297:6;4346:2;4334:9;4325:7;4321:23;4317:32;4314:2;;;4362:1;4359;4352:12;4314:2;4405:1;4430:52;4474:7;4465:6;4454:9;4450:22;4430:52;:::i;:::-;4420:62;;4376:116;4304:195;;;;:::o;4505:282::-;4574:6;4623:2;4611:9;4602:7;4598:23;4594:32;4591:2;;;4639:1;4636;4629:12;4591:2;4682:1;4707:63;4762:7;4753:6;4742:9;4738:22;4707:63;:::i;:::-;4697:73;;4653:127;4581:206;;;;:::o;4793:262::-;4852:6;4901:2;4889:9;4880:7;4876:23;4872:32;4869:2;;;4917:1;4914;4907:12;4869:2;4960:1;4985:53;5030:7;5021:6;5010:9;5006:22;4985:53;:::i;:::-;4975:63;;4931:117;4859:196;;;;:::o;5061:179::-;5130:10;5151:46;5193:3;5185:6;5151:46;:::i;:::-;5229:4;5224:3;5220:14;5206:28;;5141:99;;;;:::o;5246:118::-;5333:24;5351:5;5333:24;:::i;:::-;5328:3;5321:37;5311:53;;:::o;5400:732::-;5519:3;5548:54;5596:5;5548:54;:::i;:::-;5618:86;5697:6;5692:3;5618:86;:::i;:::-;5611:93;;5728:56;5778:5;5728:56;:::i;:::-;5807:7;5838:1;5823:284;5848:6;5845:1;5842:13;5823:284;;;5924:6;5918:13;5951:63;6010:3;5995:13;5951:63;:::i;:::-;5944:70;;6037:60;6090:6;6037:60;:::i;:::-;6027:70;;5883:224;5870:1;5867;5863:9;5858:14;;5823:284;;;5827:14;6123:3;6116:10;;5524:608;;;;;;;:::o;6138:109::-;6219:21;6234:5;6219:21;:::i;:::-;6214:3;6207:34;6197:50;;:::o;6253:360::-;6339:3;6367:38;6399:5;6367:38;:::i;:::-;6421:70;6484:6;6479:3;6421:70;:::i;:::-;6414:77;;6500:52;6545:6;6540:3;6533:4;6526:5;6522:16;6500:52;:::i;:::-;6577:29;6599:6;6577:29;:::i;:::-;6572:3;6568:39;6561:46;;6343:270;;;;;:::o;6619:364::-;6707:3;6735:39;6768:5;6735:39;:::i;:::-;6790:71;6854:6;6849:3;6790:71;:::i;:::-;6783:78;;6870:52;6915:6;6910:3;6903:4;6896:5;6892:16;6870:52;:::i;:::-;6947:29;6969:6;6947:29;:::i;:::-;6942:3;6938:39;6931:46;;6711:272;;;;;:::o;6989:366::-;7131:3;7152:67;7216:2;7211:3;7152:67;:::i;:::-;7145:74;;7228:93;7317:3;7228:93;:::i;:::-;7346:2;7341:3;7337:12;7330:19;;7135:220;;;:::o;7361:366::-;7503:3;7524:67;7588:2;7583:3;7524:67;:::i;:::-;7517:74;;7600:93;7689:3;7600:93;:::i;:::-;7718:2;7713:3;7709:12;7702:19;;7507:220;;;:::o;7733:366::-;7875:3;7896:67;7960:2;7955:3;7896:67;:::i;:::-;7889:74;;7972:93;8061:3;7972:93;:::i;:::-;8090:2;8085:3;8081:12;8074:19;;7879:220;;;:::o;8105:366::-;8247:3;8268:67;8332:2;8327:3;8268:67;:::i;:::-;8261:74;;8344:93;8433:3;8344:93;:::i;:::-;8462:2;8457:3;8453:12;8446:19;;8251:220;;;:::o;8477:366::-;8619:3;8640:67;8704:2;8699:3;8640:67;:::i;:::-;8633:74;;8716:93;8805:3;8716:93;:::i;:::-;8834:2;8829:3;8825:12;8818:19;;8623:220;;;:::o;8849:366::-;8991:3;9012:67;9076:2;9071:3;9012:67;:::i;:::-;9005:74;;9088:93;9177:3;9088:93;:::i;:::-;9206:2;9201:3;9197:12;9190:19;;8995:220;;;:::o;9221:366::-;9363:3;9384:67;9448:2;9443:3;9384:67;:::i;:::-;9377:74;;9460:93;9549:3;9460:93;:::i;:::-;9578:2;9573:3;9569:12;9562:19;;9367:220;;;:::o;9593:366::-;9735:3;9756:67;9820:2;9815:3;9756:67;:::i;:::-;9749:74;;9832:93;9921:3;9832:93;:::i;:::-;9950:2;9945:3;9941:12;9934:19;;9739:220;;;:::o;9965:366::-;10107:3;10128:67;10192:2;10187:3;10128:67;:::i;:::-;10121:74;;10204:93;10293:3;10204:93;:::i;:::-;10322:2;10317:3;10313:12;10306:19;;10111:220;;;:::o;10337:366::-;10479:3;10500:67;10564:2;10559:3;10500:67;:::i;:::-;10493:74;;10576:93;10665:3;10576:93;:::i;:::-;10694:2;10689:3;10685:12;10678:19;;10483:220;;;:::o;10709:366::-;10851:3;10872:67;10936:2;10931:3;10872:67;:::i;:::-;10865:74;;10948:93;11037:3;10948:93;:::i;:::-;11066:2;11061:3;11057:12;11050:19;;10855:220;;;:::o;11081:366::-;11223:3;11244:67;11308:2;11303:3;11244:67;:::i;:::-;11237:74;;11320:93;11409:3;11320:93;:::i;:::-;11438:2;11433:3;11429:12;11422:19;;11227:220;;;:::o;11453:366::-;11595:3;11616:67;11680:2;11675:3;11616:67;:::i;:::-;11609:74;;11692:93;11781:3;11692:93;:::i;:::-;11810:2;11805:3;11801:12;11794:19;;11599:220;;;:::o;11825:366::-;11967:3;11988:67;12052:2;12047:3;11988:67;:::i;:::-;11981:74;;12064:93;12153:3;12064:93;:::i;:::-;12182:2;12177:3;12173:12;12166:19;;11971:220;;;:::o;12197:108::-;12274:24;12292:5;12274:24;:::i;:::-;12269:3;12262:37;12252:53;;:::o;12311:118::-;12398:24;12416:5;12398:24;:::i;:::-;12393:3;12386:37;12376:53;;:::o;12435:222::-;12528:4;12566:2;12555:9;12551:18;12543:26;;12579:71;12647:1;12636:9;12632:17;12623:6;12579:71;:::i;:::-;12533:124;;;;:::o;12663:640::-;12858:4;12896:3;12885:9;12881:19;12873:27;;12910:71;12978:1;12967:9;12963:17;12954:6;12910:71;:::i;:::-;12991:72;13059:2;13048:9;13044:18;13035:6;12991:72;:::i;:::-;13073;13141:2;13130:9;13126:18;13117:6;13073:72;:::i;:::-;13192:9;13186:4;13182:20;13177:2;13166:9;13162:18;13155:48;13220:76;13291:4;13282:6;13220:76;:::i;:::-;13212:84;;12863:440;;;;;;;:::o;13309:373::-;13452:4;13490:2;13479:9;13475:18;13467:26;;13539:9;13533:4;13529:20;13525:1;13514:9;13510:17;13503:47;13567:108;13670:4;13661:6;13567:108;:::i;:::-;13559:116;;13457:225;;;;:::o;13688:210::-;13775:4;13813:2;13802:9;13798:18;13790:26;;13826:65;13888:1;13877:9;13873:17;13864:6;13826:65;:::i;:::-;13780:118;;;;:::o;13904:313::-;14017:4;14055:2;14044:9;14040:18;14032:26;;14104:9;14098:4;14094:20;14090:1;14079:9;14075:17;14068:47;14132:78;14205:4;14196:6;14132:78;:::i;:::-;14124:86;;14022:195;;;;:::o;14223:419::-;14389:4;14427:2;14416:9;14412:18;14404:26;;14476:9;14470:4;14466:20;14462:1;14451:9;14447:17;14440:47;14504:131;14630:4;14504:131;:::i;:::-;14496:139;;14394:248;;;:::o;14648:419::-;14814:4;14852:2;14841:9;14837:18;14829:26;;14901:9;14895:4;14891:20;14887:1;14876:9;14872:17;14865:47;14929:131;15055:4;14929:131;:::i;:::-;14921:139;;14819:248;;;:::o;15073:419::-;15239:4;15277:2;15266:9;15262:18;15254:26;;15326:9;15320:4;15316:20;15312:1;15301:9;15297:17;15290:47;15354:131;15480:4;15354:131;:::i;:::-;15346:139;;15244:248;;;:::o;15498:419::-;15664:4;15702:2;15691:9;15687:18;15679:26;;15751:9;15745:4;15741:20;15737:1;15726:9;15722:17;15715:47;15779:131;15905:4;15779:131;:::i;:::-;15771:139;;15669:248;;;:::o;15923:419::-;16089:4;16127:2;16116:9;16112:18;16104:26;;16176:9;16170:4;16166:20;16162:1;16151:9;16147:17;16140:47;16204:131;16330:4;16204:131;:::i;:::-;16196:139;;16094:248;;;:::o;16348:419::-;16514:4;16552:2;16541:9;16537:18;16529:26;;16601:9;16595:4;16591:20;16587:1;16576:9;16572:17;16565:47;16629:131;16755:4;16629:131;:::i;:::-;16621:139;;16519:248;;;:::o;16773:419::-;16939:4;16977:2;16966:9;16962:18;16954:26;;17026:9;17020:4;17016:20;17012:1;17001:9;16997:17;16990:47;17054:131;17180:4;17054:131;:::i;:::-;17046:139;;16944:248;;;:::o;17198:419::-;17364:4;17402:2;17391:9;17387:18;17379:26;;17451:9;17445:4;17441:20;17437:1;17426:9;17422:17;17415:47;17479:131;17605:4;17479:131;:::i;:::-;17471:139;;17369:248;;;:::o;17623:419::-;17789:4;17827:2;17816:9;17812:18;17804:26;;17876:9;17870:4;17866:20;17862:1;17851:9;17847:17;17840:47;17904:131;18030:4;17904:131;:::i;:::-;17896:139;;17794:248;;;:::o;18048:419::-;18214:4;18252:2;18241:9;18237:18;18229:26;;18301:9;18295:4;18291:20;18287:1;18276:9;18272:17;18265:47;18329:131;18455:4;18329:131;:::i;:::-;18321:139;;18219:248;;;:::o;18473:419::-;18639:4;18677:2;18666:9;18662:18;18654:26;;18726:9;18720:4;18716:20;18712:1;18701:9;18697:17;18690:47;18754:131;18880:4;18754:131;:::i;:::-;18746:139;;18644:248;;;:::o;18898:419::-;19064:4;19102:2;19091:9;19087:18;19079:26;;19151:9;19145:4;19141:20;19137:1;19126:9;19122:17;19115:47;19179:131;19305:4;19179:131;:::i;:::-;19171:139;;19069:248;;;:::o;19323:419::-;19489:4;19527:2;19516:9;19512:18;19504:26;;19576:9;19570:4;19566:20;19562:1;19551:9;19547:17;19540:47;19604:131;19730:4;19604:131;:::i;:::-;19596:139;;19494:248;;;:::o;19748:419::-;19914:4;19952:2;19941:9;19937:18;19929:26;;20001:9;19995:4;19991:20;19987:1;19976:9;19972:17;19965:47;20029:131;20155:4;20029:131;:::i;:::-;20021:139;;19919:248;;;:::o;20173:222::-;20266:4;20304:2;20293:9;20289:18;20281:26;;20317:71;20385:1;20374:9;20370:17;20361:6;20317:71;:::i;:::-;20271:124;;;;:::o;20401:129::-;20435:6;20462:20;;:::i;:::-;20452:30;;20491:33;20519:4;20511:6;20491:33;:::i;:::-;20442:88;;;:::o;20536:75::-;20569:6;20602:2;20596:9;20586:19;;20576:35;:::o;20617:307::-;20678:4;20768:18;20760:6;20757:30;20754:2;;;20790:18;;:::i;:::-;20754:2;20828:29;20850:6;20828:29;:::i;:::-;20820:37;;20912:4;20906;20902:15;20894:23;;20683:241;;;:::o;20930:132::-;20997:4;21020:3;21012:11;;21050:4;21045:3;21041:14;21033:22;;21002:60;;;:::o;21068:114::-;21135:6;21169:5;21163:12;21153:22;;21142:40;;;:::o;21188:98::-;21239:6;21273:5;21267:12;21257:22;;21246:40;;;:::o;21292:99::-;21344:6;21378:5;21372:12;21362:22;;21351:40;;;:::o;21397:113::-;21467:4;21499;21494:3;21490:14;21482:22;;21472:38;;;:::o;21516:184::-;21615:11;21649:6;21644:3;21637:19;21689:4;21684:3;21680:14;21665:29;;21627:73;;;;:::o;21706:168::-;21789:11;21823:6;21818:3;21811:19;21863:4;21858:3;21854:14;21839:29;;21801:73;;;;:::o;21880:169::-;21964:11;21998:6;21993:3;21986:19;22038:4;22033:3;22029:14;22014:29;;21976:73;;;;:::o;22055:305::-;22095:3;22114:20;22132:1;22114:20;:::i;:::-;22109:25;;22148:20;22166:1;22148:20;:::i;:::-;22143:25;;22302:1;22234:66;22230:74;22227:1;22224:81;22221:2;;;22308:18;;:::i;:::-;22221:2;22352:1;22349;22345:9;22338:16;;22099:261;;;;:::o;22366:185::-;22406:1;22423:20;22441:1;22423:20;:::i;:::-;22418:25;;22457:20;22475:1;22457:20;:::i;:::-;22452:25;;22496:1;22486:2;;22501:18;;:::i;:::-;22486:2;22543:1;22540;22536:9;22531:14;;22408:143;;;;:::o;22557:348::-;22597:7;22620:20;22638:1;22620:20;:::i;:::-;22615:25;;22654:20;22672:1;22654:20;:::i;:::-;22649:25;;22842:1;22774:66;22770:74;22767:1;22764:81;22759:1;22752:9;22745:17;22741:105;22738:2;;;22849:18;;:::i;:::-;22738:2;22897:1;22894;22890:9;22879:20;;22605:300;;;;:::o;22911:191::-;22951:4;22971:20;22989:1;22971:20;:::i;:::-;22966:25;;23005:20;23023:1;23005:20;:::i;:::-;23000:25;;23044:1;23041;23038:8;23035:2;;;23049:18;;:::i;:::-;23035:2;23094:1;23091;23087:9;23079:17;;22956:146;;;;:::o;23108:96::-;23145:7;23174:24;23192:5;23174:24;:::i;:::-;23163:35;;23153:51;;;:::o;23210:90::-;23244:7;23287:5;23280:13;23273:21;23262:32;;23252:48;;;:::o;23306:149::-;23342:7;23382:66;23375:5;23371:78;23360:89;;23350:105;;;:::o;23461:126::-;23498:7;23538:42;23531:5;23527:54;23516:65;;23506:81;;;:::o;23593:77::-;23630:7;23659:5;23648:16;;23638:32;;;:::o;23676:154::-;23760:6;23755:3;23750;23737:30;23822:1;23813:6;23808:3;23804:16;23797:27;23727:103;;;:::o;23836:307::-;23904:1;23914:113;23928:6;23925:1;23922:13;23914:113;;;24013:1;24008:3;24004:11;23998:18;23994:1;23989:3;23985:11;23978:39;23950:2;23947:1;23943:10;23938:15;;23914:113;;;24045:6;24042:1;24039:13;24036:2;;;24125:1;24116:6;24111:3;24107:16;24100:27;24036:2;23885:258;;;;:::o;24149:320::-;24193:6;24230:1;24224:4;24220:12;24210:22;;24277:1;24271:4;24267:12;24298:18;24288:2;;24354:4;24346:6;24342:17;24332:27;;24288:2;24416;24408:6;24405:14;24385:18;24382:38;24379:2;;;24435:18;;:::i;:::-;24379:2;24200:269;;;;:::o;24475:281::-;24558:27;24580:4;24558:27;:::i;:::-;24550:6;24546:40;24688:6;24676:10;24673:22;24652:18;24640:10;24637:34;24634:62;24631:2;;;24699:18;;:::i;:::-;24631:2;24739:10;24735:2;24728:22;24518:238;;;:::o;24762:233::-;24801:3;24824:24;24842:5;24824:24;:::i;:::-;24815:33;;24870:66;24863:5;24860:77;24857:2;;;24940:18;;:::i;:::-;24857:2;24987:1;24980:5;24976:13;24969:20;;24805:190;;;:::o;25001:176::-;25033:1;25050:20;25068:1;25050:20;:::i;:::-;25045:25;;25084:20;25102:1;25084:20;:::i;:::-;25079:25;;25123:1;25113:2;;25128:18;;:::i;:::-;25113:2;25169:1;25166;25162:9;25157:14;;25035:142;;;;:::o;25183:180::-;25231:77;25228:1;25221:88;25328:4;25325:1;25318:15;25352:4;25349:1;25342:15;25369:180;25417:77;25414:1;25407:88;25514:4;25511:1;25504:15;25538:4;25535:1;25528:15;25555:180;25603:77;25600:1;25593:88;25700:4;25697:1;25690:15;25724:4;25721:1;25714:15;25741:180;25789:77;25786:1;25779:88;25886:4;25883:1;25876:15;25910:4;25907:1;25900:15;25927:102;25968:6;26019:2;26015:7;26010:2;26003:5;25999:14;25995:28;25985:38;;25975:54;;;:::o;26035:237::-;26175:34;26171:1;26163:6;26159:14;26152:58;26244:20;26239:2;26231:6;26227:15;26220:45;26141:131;:::o;26278:223::-;26418:34;26414:1;26406:6;26402:14;26395:58;26487:6;26482:2;26474:6;26470:15;26463:31;26384:117;:::o;26507:175::-;26647:27;26643:1;26635:6;26631:14;26624:51;26613:69;:::o;26688:231::-;26828:34;26824:1;26816:6;26812:14;26805:58;26897:14;26892:2;26884:6;26880:15;26873:39;26794:125;:::o;26925:243::-;27065:34;27061:1;27053:6;27049:14;27042:58;27134:26;27129:2;27121:6;27117:15;27110:51;27031:137;:::o;27174:229::-;27314:34;27310:1;27302:6;27298:14;27291:58;27383:12;27378:2;27370:6;27366:15;27359:37;27280:123;:::o;27409:228::-;27549:34;27545:1;27537:6;27533:14;27526:58;27618:11;27613:2;27605:6;27601:15;27594:36;27515:122;:::o;27643:166::-;27783:18;27779:1;27771:6;27767:14;27760:42;27749:60;:::o;27815:182::-;27955:34;27951:1;27943:6;27939:14;27932:58;27921:76;:::o;28003:231::-;28143:34;28139:1;28131:6;28127:14;28120:58;28212:14;28207:2;28199:6;28195:15;28188:39;28109:125;:::o;28240:228::-;28380:34;28376:1;28368:6;28364:14;28357:58;28449:11;28444:2;28436:6;28432:15;28425:36;28346:122;:::o;28474:234::-;28614:34;28610:1;28602:6;28598:14;28591:58;28683:17;28678:2;28670:6;28666:15;28659:42;28580:128;:::o;28714:220::-;28854:34;28850:1;28842:6;28838:14;28831:58;28923:3;28918:2;28910:6;28906:15;28899:28;28820:114;:::o;28940:236::-;29080:34;29076:1;29068:6;29064:14;29057:58;29149:19;29144:2;29136:6;29132:15;29125:44;29046:130;:::o;29182:122::-;29255:24;29273:5;29255:24;:::i;:::-;29248:5;29245:35;29235:2;;29294:1;29291;29284:12;29235:2;29225:79;:::o;29310:116::-;29380:21;29395:5;29380:21;:::i;:::-;29373:5;29370:32;29360:2;;29416:1;29413;29406:12;29360:2;29350:76;:::o;29432:120::-;29504:23;29521:5;29504:23;:::i;:::-;29497:5;29494:34;29484:2;;29542:1;29539;29532:12;29484:2;29474:78;:::o;29558:122::-;29631:24;29649:5;29631:24;:::i;:::-;29624:5;29621:35;29611:2;;29670:1;29667;29660:12;29611:2;29601:79;:::o

Swarm Source

ipfs://a028b9ba5d0e0e2df99c254a46834850d92ea577532754cdd0817b330673c495
Loading...
Loading
Loading...
Loading
[ 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.