ETH Price: $3,419.46 (-1.07%)
Gas: 5 Gwei

Token

Santa Swap Participation Token ()
 

Overview

Max Total Supply

10,000

Holders

935

Market

Volume (24H)

N/A

Min Price (24H)

N/A

Max Price (24H)

N/A
0x20bDBD6b9CCCB80e9a44D0515577E8411f8c3Ff1
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:
SantaSwapNFT

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
Yes with 200 runs

Other Settings:
default evmVersion, GNU GPLv3 license
/**
 *Submitted for verification at Etherscan.io on 2021-12-21
*/

// SPDX-License-Identifier: GPL-3.0-or-later
pragma solidity >=0.8.0;

/// @notice Modern and gas-optimized ERC-1155 implementation.
/// @author Modified from Helios (https://github.com/z0r0z/Helios/blob/main/contracts/ERC1155.sol)
contract ERC1155 {
    /*///////////////////////////////////////////////////////////////
                            EVENTS
    //////////////////////////////////////////////////////////////*/

    event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 amount);

    event TransferBatch(address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] amounts);

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

    /*///////////////////////////////////////////////////////////////
                            ERC1155 STORAGE
    //////////////////////////////////////////////////////////////*/

    string public baseURI;

    string public name = "Santa Swap Participation Token";

    mapping(address => mapping(uint256 => uint256)) public balanceOf;

    mapping(address => mapping(address => bool)) internal operators;

    /*///////////////////////////////////////////////////////////////
                            ERRORS
    //////////////////////////////////////////////////////////////*/

    error ArrayParity();

    error InvalidOperator();

    error NullAddress();

    error InvalidReceiver();

    /*///////////////////////////////////////////////////////////////
                            ERC1155 LOGIC
    //////////////////////////////////////////////////////////////*/

    /* GETTERS */

    function balanceOfBatch(address[] calldata owners, uint256[] calldata ids) external view returns (uint256[] memory batchBalances) {
        if (owners.length != ids.length) revert ArrayParity();

        batchBalances = new uint256[](owners.length);

        for (uint256 i = 0; i < owners.length; i++) {
            batchBalances[i] = balanceOf[owners[i]][ids[i]];
        }
    }

    function supportsInterface(bytes4 interfaceId) external pure returns (bool supported) {
        supported = interfaceId == 0xd9b67a26 || interfaceId == 0x0e89341c;
    }

    function uri(uint256) external view returns (string memory meta) {
        meta = baseURI;
    }

    /* APPROVALS */

    function isApprovedForAll(address owner, address operator) public view returns (bool isOperator) {
        isOperator = operators[owner][operator];
    }
    
    function setApprovalForAll(address operator, bool approved) external {
        operators[msg.sender][operator] = approved;

        emit ApprovalForAll(msg.sender, operator, approved);
    }

    /* TRANSFERS */

    function safeTransferFrom(
        address from, 
        address to, 
        uint256 id, 
        uint256 amount, 
        bytes memory data
    ) external {
        if (msg.sender != from || !isApprovedForAll(from, msg.sender)) revert InvalidOperator();

        if (to == address(0)) revert NullAddress();

        balanceOf[from][id] -= amount;

        balanceOf[to][id] += amount;

        _callonERC1155Received(from, to, id, amount, gasleft(), data);

        emit TransferSingle(msg.sender, from, to, id, amount);
    }

    function safeBatchTransferFrom(
        address from, 
        address to, 
        uint256[] memory ids,
        uint256[] memory amounts, 
        bytes memory data
    ) external {
        if (msg.sender != from || !isApprovedForAll(from, msg.sender)) revert InvalidOperator();

        if (to == address(0)) revert NullAddress();

        if (ids.length != amounts.length) revert ArrayParity();

        for (uint256 i = 0; i < ids.length; i++) {
            balanceOf[from][ids[i]] -= amounts[i];

            balanceOf[to][ids[i]] += amounts[i];
        }

        _callonERC1155BatchReceived(from, to, ids, amounts, gasleft(), data);

        emit TransferBatch(msg.sender, from, to, ids, amounts);
    }

    function _callonERC1155Received(
        address from, 
        address to, 
        uint256 id, 
        uint256 amount, 
        uint256 gasLimit, 
        bytes memory data
    ) internal view {
        if (to.code.length != 0) {
            // selector = `bytes4(keccak256('onERC1155Received(address,address,uint256,uint256,bytes)'))`
            (, bytes memory returned) = to.staticcall{gas: gasLimit}(abi.encodeWithSelector(0xf23a6e61,
                msg.sender, from, id, amount, data));
                
            bytes4 selector = abi.decode(returned, (bytes4));

            if (selector != 0xf23a6e61) revert InvalidReceiver();
        }
    }

    function _callonERC1155BatchReceived(
        address from, 
        address to, 
        uint256[] memory ids,
        uint256[] memory amounts, 
        uint256 gasLimit, 
        bytes memory data
    ) internal view {
        if (to.code.length != 0) {
            // selector = `bytes4(keccak256('onERC1155BatchReceived(address,address,uint256[],uint256[],bytes)'))`
            (, bytes memory returned) = to.staticcall{gas: gasLimit}(abi.encodeWithSelector(0xbc197c81,
                msg.sender, from, ids, amounts, data));
                
            bytes4 selector = abi.decode(returned, (bytes4));

            if (selector != 0xbc197c81) revert InvalidReceiver();
        }
    }

    /*///////////////////////////////////////////////////////////////
                            MINT/BURN LOGIC
    //////////////////////////////////////////////////////////////*/

    function _mint(
        address to, 
        uint256 id, 
        uint256 amount, 
        bytes memory data
    ) internal {
        balanceOf[to][id] += amount;

        if (to.code.length != 0) _callonERC1155Received(address(0), to, id, amount, gasleft(), data);

        emit TransferSingle(msg.sender, address(0), to, id, amount);
    }

    function _batchMint(
        address to, 
        uint256[] memory ids, 
        uint256[] memory amounts, 
        bytes memory data
    ) internal {
        if (ids.length != amounts.length) revert ArrayParity();

        for (uint256 i = 0; i < ids.length; i++) {
            balanceOf[to][ids[i]] += amounts[i];
        }

        if (to.code.length != 0) _callonERC1155BatchReceived(address(0x0), to, ids, amounts, gasleft(), data);

        emit TransferBatch(msg.sender, address(0), to, ids, amounts);
    }

    /*///////////////////////////////////////////////////////////////
                            URI LOGIC
    //////////////////////////////////////////////////////////////*/

    function _updateURI(string memory newURI) internal {
        baseURI = newURI;
    }
}

/// @title SantaSwapNFT
/// @author Anish Agnihotri
/// @notice Participation tickets for 2021 Santa Swap NFT Gift Exchange
contract SantaSwapNFT is ERC1155 {

    /// ============ Immutable storage ============

    /// @notice Maximum number of mintable NFTs (global)
    uint256 immutable MAX_NFTS = 10_000;
    /// @notice Maximum number of mintable NFTs (local, by address)
    uint256 immutable MAX_NFTS_PER_ADDRESS = 10;

    /// ============ Mutable storage ============

    /// @notice Contract owner
    address public owner;
    /// @notice Number of NFTs minted
    uint256 public nftsMinted = 0;

    /// ============ Events ============

    /// @notice Emitted after an NFT is minted
    /// @param to new NFT owner
    /// @param handleHash custom hashed Twitter handle of owner
    /// @param amount number of NFTs minted
    event NFTMinted(address indexed to, bytes32 handleHash, uint256 amount);

    /// ============ Errors ============

    /// @notice Thrown when not enough ETH provided to pay for NFT mint
    error InsufficientPayment();

    /// @notice Thrown when attempting to call owner functions as non-owner
    error NotOwner();

    /// @notice Thrown when max number of NFTs have or would be minted (total or by address)
    error MaxMinted();

    /// @notice Thrown when error in low-level call
    error CallError();

    /// ============ Constructor ============

    /// @notice Creates a new SantaSwapNFT contract
    /// @param baseURI of ERC-1155 compatible metadata 
    constructor(string memory baseURI) {
        // Update owner to deployer
        owner = msg.sender;
        // Update URI
        _updateURI(baseURI);
    }

    /// ============ Functions ============

    /// @notice Mints a single NFT
    /// @param handleHash custom hashed Twitter handle of owner
    function mintSingle(bytes32 handleHash) external payable {
        // Revert if not enough payment provided
        if (msg.value < 0.03 ether) revert InsufficientPayment();
        // Revert if maximum NFTs minted (address) after minting single
        if (balanceOf[msg.sender][0] + 1 > MAX_NFTS_PER_ADDRESS) revert MaxMinted();
        // Revert if maximum NFTs minted (global) after minting single
        if (nftsMinted + 1 > MAX_NFTS) revert MaxMinted();

        // Mint NFT
        _mint(msg.sender, 0, 1, "");
        // Increment number of mints
        nftsMinted++;

        // Emit NFTMinted event
        emit NFTMinted(msg.sender, handleHash, 1);
    }

    /// @notice Mints many NFTs
    /// @param handleHash custom hashed Twitter handle of owner
    /// @param numToMint number of NFTs to mint in bulk
    function mintBatch(bytes32 handleHash, uint256 numToMint) external payable {
        // Revert if not enough payment provided
        if (msg.value < (numToMint * 0.03 ether)) revert InsufficientPayment();
        // Revert if maximum NFTs minted (address) after minting bulk
        if (balanceOf[msg.sender][0] + numToMint > MAX_NFTS_PER_ADDRESS) revert MaxMinted();
        // Revert if maximum NFTs minted (global) after minting bulk
        if (nftsMinted + numToMint > MAX_NFTS) revert MaxMinted();

        // Batch mint NFTs
        uint256[] memory ids = new uint256[](1);
        ids[0] = 0;
        uint256[] memory amounts = new uint256[](1);
        amounts[0] = numToMint;
        _batchMint(msg.sender, ids, amounts, "");
        // Increment number of mints
        nftsMinted += numToMint;

        // Emit NFTMinted event
        emit NFTMinted(msg.sender, handleHash, numToMint);
    }

    /// @notice Allows owner to withdraw balance of contract
    function withdrawBalance() external {
        // Revert if caller is not owner
        if (msg.sender != owner) revert NotOwner();
        // Drain balance
        (bool sent,) = owner.call{value: address(this).balance}("");
        if (!sent) revert CallError();
    }

    /// @notice Allows owner to update owner of contract
    function updateOwner(address newOwner) external {
        // Revert if caller is not owner
        if (msg.sender != owner) revert NotOwner();
        // Update new owner
        owner = newOwner;
    }

    /// @notice Allows owner to update contract URI
    function updateURI(string memory newURI) external {
        // Revert if caller is not owner
        if (msg.sender != owner) revert NotOwner();
        // Update new URI
        _updateURI(newURI);
    }

    /// @notice Returns total supply of NFTs
    /// @return Total supply
    function totalSupply() public pure returns (uint256) {
        return MAX_NFTS;
    }
}

Contract Security Audit

Contract ABI

[{"inputs":[{"internalType":"string","name":"baseURI","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ArrayParity","type":"error"},{"inputs":[],"name":"CallError","type":"error"},{"inputs":[],"name":"InsufficientPayment","type":"error"},{"inputs":[],"name":"InvalidOperator","type":"error"},{"inputs":[],"name":"InvalidReceiver","type":"error"},{"inputs":[],"name":"MaxMinted","type":"error"},{"inputs":[],"name":"NotOwner","type":"error"},{"inputs":[],"name":"NullAddress","type":"error"},{"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":"to","type":"address"},{"indexed":false,"internalType":"bytes32","name":"handleHash","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"NFTMinted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"name":"TransferBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"TransferSingle","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"owners","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"batchBalances","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"baseURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"isOperator","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"handleHash","type":"bytes32"},{"internalType":"uint256","name":"numToMint","type":"uint256"}],"name":"mintBatch","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"handleHash","type":"bytes32"}],"name":"mintSingle","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nftsMinted","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","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":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeBatchTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","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":"supported","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"updateOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newURI","type":"string"}],"name":"updateURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"meta","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawBalance","outputs":[],"stateMutability":"nonpayable","type":"function"}]

610100604052601e60c08190527f53616e746120537761702050617274696369706174696f6e20546f6b656e000060e0908152620000419160019190620000bf565b50612710608052600a60a05260006005553480156200005f57600080fd5b5060405162001d0838038062001d08833981016040819052620000829162000165565b600480546001600160a01b031916331790556200009f81620000a6565b5062000294565b8051620000bb906000906020840190620000bf565b5050565b828054620000cd9062000241565b90600052602060002090601f016020900481019282620000f157600085556200013c565b82601f106200010c57805160ff19168380011785556200013c565b828001600101855582156200013c579182015b828111156200013c5782518255916020019190600101906200011f565b506200014a9291506200014e565b5090565b5b808211156200014a57600081556001016200014f565b600060208083850312156200017957600080fd5b82516001600160401b03808211156200019157600080fd5b818501915085601f830112620001a657600080fd5b815181811115620001bb57620001bb6200027e565b604051601f8201601f19908116603f01168101908382118183101715620001e657620001e66200027e565b816040528281528886848701011115620001ff57600080fd5b600093505b8284101562000223578484018601518185018701529285019262000204565b82841115620002355760008684830101525b98975050505050505050565b600181811c908216806200025657607f821691505b602082108114156200027857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b60805160a051611a39620002cf6000396000818161085e0152610a340152600081816101d9015281816108aa0152610a800152611a396000f3fe6080604052600436106101085760003560e01c80635fd8c710116100955780638da5cb5b116100645780638da5cb5b146102d2578063a22cb4651461030a578063c30f4a5a1461032a578063e985e9c51461034a578063f242432a1461036a57600080fd5b80635fd8c7101461027257806360df19e0146102875780636c0360eb1461029d578063880cdc31146102b257600080fd5b806318160ddd116100dc57806318160ddd146101ca5780632eb2c2d6146101fd5780634e1273f41461021f578063513db2411461024c57806355c5002a1461025f57600080fd5b8062fdd58e1461010d57806301ffc9a71461015857806306fdde03146101885780630e89341c146101aa575b600080fd5b34801561011957600080fd5b506101456101283660046115d0565b600260209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b34801561016457600080fd5b506101786101733660046116a1565b61038a565b604051901515815260200161014f565b34801561019457600080fd5b5061019d6103c1565b60405161014f9190611893565b3480156101b657600080fd5b5061019d6101c5366004611666565b61044f565b3480156101d657600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610145565b34801561020957600080fd5b5061021d610218366004611485565b6104e3565b005b34801561022b57600080fd5b5061023f61023a3660046115fa565b6106f1565b60405161014f9190611852565b61021d61025a36600461167f565b610810565b61021d61026d366004611666565b6109ef565b34801561027e57600080fd5b5061021d610b3d565b34801561029357600080fd5b5061014560055481565b3480156102a957600080fd5b5061019d610bdf565b3480156102be57600080fd5b5061021d6102cd366004611437565b610bec565b3480156102de57600080fd5b506004546102f2906001600160a01b031681565b6040516001600160a01b03909116815260200161014f565b34801561031657600080fd5b5061021d610325366004611594565b610c39565b34801561033657600080fd5b5061021d6103453660046116db565b610ca5565b34801561035657600080fd5b50610178610365366004611452565b610cd9565b34801561037657600080fd5b5061021d61038536600461152f565b610d07565b6000636cdb3d1360e11b6001600160e01b0319831614806103bb57506303a24d0760e21b6001600160e01b03198316145b92915050565b600180546103ce90611955565b80601f01602080910402602001604051908101604052809291908181526020018280546103fa90611955565b80156104475780601f1061041c57610100808354040283529160200191610447565b820191906000526020600020905b81548152906001019060200180831161042a57829003601f168201915b505050505081565b60606000805461045e90611955565b80601f016020809104026020016040519081016040528092919081815260200182805461048a90611955565b80156104d75780601f106104ac576101008083540402835291602001916104d7565b820191906000526020600020905b8154815290600101906020018083116104ba57829003601f168201915b50505050509050919050565b336001600160a01b03861614158061050257506105008533610cd9565b155b156105205760405163ccea9e6f60e01b815260040160405180910390fd5b6001600160a01b0384166105475760405163e99d5ac560e01b815260040160405180910390fd5b815183511461056957604051630bb9738760e31b815260040160405180910390fd5b60005b835181101561068457828181518110610587576105876119c1565b602002602001015160026000886001600160a01b03166001600160a01b0316815260200190815260200160002060008684815181106105c8576105c86119c1565b6020026020010151815260200190815260200160002060008282546105ed919061190e565b92505081905550828181518110610606576106066119c1565b602002602001015160026000876001600160a01b03166001600160a01b031681526020019081526020016000206000868481518110610647576106476119c1565b60200260200101518152602001908152602001600020600082825461066c91906118d7565b9091555081905061067c81611990565b91505061056c565b50610693858585855a86610e32565b836001600160a01b0316856001600160a01b0316336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516106e2929190611865565b60405180910390a45050505050565b606083821461071357604051630bb9738760e31b815260040160405180910390fd5b8367ffffffffffffffff81111561072c5761072c6119d7565b604051908082528060200260200182016040528015610755578160200160208202803683370190505b50905060005b848110156108075760026000878784818110610779576107796119c1565b905060200201602081019061078e9190611437565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008585848181106107c2576107c26119c1565b905060200201358152602001908152602001600020548282815181106107ea576107ea6119c1565b6020908102919091010152806107ff81611990565b91505061075b565b50949350505050565b61082181666a94d74f4300006118ef565b3410156108415760405163cd1c886760e01b815260040160405180910390fd5b3360009081526002602090815260408083208380529091529020547f0000000000000000000000000000000000000000000000000000000000000000906108899083906118d7565b11156108a85760405163c109f51160e01b815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000000000816005546108d791906118d7565b11156108f65760405163c109f51160e01b815260040160405180910390fd5b6040805160018082528183019092526000916020808301908036833701905050905060008160008151811061092d5761092d6119c1565b60209081029190910101526040805160018082528183019092526000918160200160208202803683370190505090508281600081518110610970576109706119c1565b60200260200101818152505061099733838360405180602001604052806000815250610f3f565b82600560008282546109a991906118d7565b9091555050604080518581526020810185905233917f782ea917e792a4898a2d6de6653a331d367dce2eeaf57963f1efd32a3a217f65910160405180910390a250505050565b666a94d74f430000341015610a175760405163cd1c886760e01b815260040160405180910390fd5b3360009081526002602090815260408083208380529091529020547f000000000000000000000000000000000000000000000000000000000000000090610a5f9060016118d7565b1115610a7e5760405163c109f51160e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006005546001610aae91906118d7565b1115610acd5760405163c109f51160e01b815260040160405180910390fd5b610aea33600060016040518060200160405280600081525061107b565b60058054906000610afa83611990565b9091555050604080518281526001602082015233917f782ea917e792a4898a2d6de6653a331d367dce2eeaf57963f1efd32a3a217f65910160405180910390a250565b6004546001600160a01b03163314610b68576040516330cd747160e01b815260040160405180910390fd5b6004546040516000916001600160a01b03169047908381818185875af1925050503d8060008114610bb5576040519150601f19603f3d011682016040523d82523d6000602084013e610bba565b606091505b5050905080610bdc57604051630d93a8fd60e31b815260040160405180910390fd5b50565b600080546103ce90611955565b6004546001600160a01b03163314610c17576040516330cd747160e01b815260040160405180910390fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b3360008181526003602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6004546001600160a01b03163314610cd0576040516330cd747160e01b815260040160405180910390fd5b610bdc81611118565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205460ff1690565b336001600160a01b038616141580610d265750610d248533610cd9565b155b15610d445760405163ccea9e6f60e01b815260040160405180910390fd5b6001600160a01b038416610d6b5760405163e99d5ac560e01b815260040160405180910390fd5b6001600160a01b038516600090815260026020908152604080832086845290915281208054849290610d9e90849061190e565b90915550506001600160a01b038416600090815260026020908152604080832086845290915281208054849290610dd69084906118d7565b90915550610dea9050858585855a8661112f565b60408051848152602081018490526001600160a01b03808716929088169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6291016106e2565b6001600160a01b0385163b15610f37576000856001600160a01b03168363bc197c81338a898988604051602401610e6d9594939291906117af565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051610ea69190611793565b6000604051808303818686fa925050503d8060008114610ee2576040519150601f19603f3d011682016040523d82523d6000602084013e610ee7565b606091505b50915050600081806020019051810190610f0191906116be565b905063bc197c8160e01b6001600160e01b0319821614610f3457604051631e4ec46b60e01b815260040160405180910390fd5b50505b505050505050565b8151835114610f6157604051630bb9738760e31b815260040160405180910390fd5b60005b8351811015610ffd57828181518110610f7f57610f7f6119c1565b602002602001015160026000876001600160a01b03166001600160a01b031681526020019081526020016000206000868481518110610fc057610fc06119c1565b602002602001015181526020019081526020016000206000828254610fe591906118d7565b90915550819050610ff581611990565b915050610f64565b506001600160a01b0384163b1561101d5761101d60008585855a86610e32565b836001600160a01b031660006001600160a01b0316336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb868660405161106d929190611865565b60405180910390a450505050565b6001600160a01b0384166000908152600260209081526040808320868452909152812080548492906110ae9084906118d7565b90915550506001600160a01b0384163b156110d2576110d260008585855a8661112f565b60408051848152602081018490526001600160a01b0386169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910161106d565b805161112b906000906020840190611231565b5050565b6001600160a01b0385163b15610f37576000856001600160a01b03168363f23a6e61338a89898860405160240161116a95949392919061180d565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516111a39190611793565b6000604051808303818686fa925050503d80600081146111df576040519150601f19603f3d011682016040523d82523d6000602084013e6111e4565b606091505b509150506000818060200190518101906111fe91906116be565b905063f23a6e6160e01b6001600160e01b0319821614610f3457604051631e4ec46b60e01b815260040160405180910390fd5b82805461123d90611955565b90600052602060002090601f01602090048101928261125f57600085556112a5565b82601f1061127857805160ff19168380011785556112a5565b828001600101855582156112a5579182015b828111156112a557825182559160200191906001019061128a565b506112b19291506112b5565b5090565b5b808211156112b157600081556001016112b6565b600067ffffffffffffffff8311156112e4576112e46119d7565b6112f7601f8401601f19166020016118a6565b905082815283838301111561130b57600080fd5b828260208301376000602084830101529392505050565b80356001600160a01b038116811461133957600080fd5b919050565b60008083601f84011261135057600080fd5b50813567ffffffffffffffff81111561136857600080fd5b6020830191508360208260051b850101111561138357600080fd5b9250929050565b600082601f83011261139b57600080fd5b8135602067ffffffffffffffff8211156113b7576113b76119d7565b8160051b6113c68282016118a6565b8381528281019086840183880185018910156113e157600080fd5b600093505b858410156114045780358352600193909301929184019184016113e6565b50979650505050505050565b600082601f83011261142157600080fd5b611430838335602085016112ca565b9392505050565b60006020828403121561144957600080fd5b61143082611322565b6000806040838503121561146557600080fd5b61146e83611322565b915061147c60208401611322565b90509250929050565b600080600080600060a0868803121561149d57600080fd5b6114a686611322565b94506114b460208701611322565b9350604086013567ffffffffffffffff808211156114d157600080fd5b6114dd89838a0161138a565b945060608801359150808211156114f357600080fd5b6114ff89838a0161138a565b9350608088013591508082111561151557600080fd5b5061152288828901611410565b9150509295509295909350565b600080600080600060a0868803121561154757600080fd5b61155086611322565b945061155e60208701611322565b93506040860135925060608601359150608086013567ffffffffffffffff81111561158857600080fd5b61152288828901611410565b600080604083850312156115a757600080fd5b6115b083611322565b9150602083013580151581146115c557600080fd5b809150509250929050565b600080604083850312156115e357600080fd5b6115ec83611322565b946020939093013593505050565b6000806000806040858703121561161057600080fd5b843567ffffffffffffffff8082111561162857600080fd5b6116348883890161133e565b9096509450602087013591508082111561164d57600080fd5b5061165a8782880161133e565b95989497509550505050565b60006020828403121561167857600080fd5b5035919050565b6000806040838503121561169257600080fd5b50508035926020909101359150565b6000602082840312156116b357600080fd5b8135611430816119ed565b6000602082840312156116d057600080fd5b8151611430816119ed565b6000602082840312156116ed57600080fd5b813567ffffffffffffffff81111561170457600080fd5b8201601f8101841361171557600080fd5b611724848235602084016112ca565b949350505050565b600081518084526020808501945080840160005b8381101561175c57815187529582019590820190600101611740565b509495945050505050565b6000815180845261177f816020860160208601611925565b601f01601f19169290920160200192915050565b600082516117a5818460208701611925565b9190910192915050565b6001600160a01b0386811682528516602082015260a0604082018190526000906117db9083018661172c565b82810360608401526117ed818661172c565b905082810360808401526118018185611767565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061184790830184611767565b979650505050505050565b602081526000611430602083018461172c565b604081526000611878604083018561172c565b828103602084015261188a818561172c565b95945050505050565b6020815260006114306020830184611767565b604051601f8201601f1916810167ffffffffffffffff811182821017156118cf576118cf6119d7565b604052919050565b600082198211156118ea576118ea6119ab565b500190565b6000816000190483118215151615611909576119096119ab565b500290565b600082821015611920576119206119ab565b500390565b60005b83811015611940578181015183820152602001611928565b8381111561194f576000848401525b50505050565b600181811c9082168061196957607f821691505b6020821081141561198a57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156119a4576119a46119ab565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031981168114610bdc57600080fdfea264697066735822122085c73a70e6349352c5d96623ca5d265a18064b7b50fc2312d488e8408f041b6064736f6c6343000807003300000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000042697066733a2f2f6261667962656965773579627936737935716d3572746d65696c693661767476376a6c7672766f75783375356a6a326d6367736c6c74616468676d000000000000000000000000000000000000000000000000000000000000

Deployed Bytecode

0x6080604052600436106101085760003560e01c80635fd8c710116100955780638da5cb5b116100645780638da5cb5b146102d2578063a22cb4651461030a578063c30f4a5a1461032a578063e985e9c51461034a578063f242432a1461036a57600080fd5b80635fd8c7101461027257806360df19e0146102875780636c0360eb1461029d578063880cdc31146102b257600080fd5b806318160ddd116100dc57806318160ddd146101ca5780632eb2c2d6146101fd5780634e1273f41461021f578063513db2411461024c57806355c5002a1461025f57600080fd5b8062fdd58e1461010d57806301ffc9a71461015857806306fdde03146101885780630e89341c146101aa575b600080fd5b34801561011957600080fd5b506101456101283660046115d0565b600260209081526000928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b34801561016457600080fd5b506101786101733660046116a1565b61038a565b604051901515815260200161014f565b34801561019457600080fd5b5061019d6103c1565b60405161014f9190611893565b3480156101b657600080fd5b5061019d6101c5366004611666565b61044f565b3480156101d657600080fd5b507f0000000000000000000000000000000000000000000000000000000000002710610145565b34801561020957600080fd5b5061021d610218366004611485565b6104e3565b005b34801561022b57600080fd5b5061023f61023a3660046115fa565b6106f1565b60405161014f9190611852565b61021d61025a36600461167f565b610810565b61021d61026d366004611666565b6109ef565b34801561027e57600080fd5b5061021d610b3d565b34801561029357600080fd5b5061014560055481565b3480156102a957600080fd5b5061019d610bdf565b3480156102be57600080fd5b5061021d6102cd366004611437565b610bec565b3480156102de57600080fd5b506004546102f2906001600160a01b031681565b6040516001600160a01b03909116815260200161014f565b34801561031657600080fd5b5061021d610325366004611594565b610c39565b34801561033657600080fd5b5061021d6103453660046116db565b610ca5565b34801561035657600080fd5b50610178610365366004611452565b610cd9565b34801561037657600080fd5b5061021d61038536600461152f565b610d07565b6000636cdb3d1360e11b6001600160e01b0319831614806103bb57506303a24d0760e21b6001600160e01b03198316145b92915050565b600180546103ce90611955565b80601f01602080910402602001604051908101604052809291908181526020018280546103fa90611955565b80156104475780601f1061041c57610100808354040283529160200191610447565b820191906000526020600020905b81548152906001019060200180831161042a57829003601f168201915b505050505081565b60606000805461045e90611955565b80601f016020809104026020016040519081016040528092919081815260200182805461048a90611955565b80156104d75780601f106104ac576101008083540402835291602001916104d7565b820191906000526020600020905b8154815290600101906020018083116104ba57829003601f168201915b50505050509050919050565b336001600160a01b03861614158061050257506105008533610cd9565b155b156105205760405163ccea9e6f60e01b815260040160405180910390fd5b6001600160a01b0384166105475760405163e99d5ac560e01b815260040160405180910390fd5b815183511461056957604051630bb9738760e31b815260040160405180910390fd5b60005b835181101561068457828181518110610587576105876119c1565b602002602001015160026000886001600160a01b03166001600160a01b0316815260200190815260200160002060008684815181106105c8576105c86119c1565b6020026020010151815260200190815260200160002060008282546105ed919061190e565b92505081905550828181518110610606576106066119c1565b602002602001015160026000876001600160a01b03166001600160a01b031681526020019081526020016000206000868481518110610647576106476119c1565b60200260200101518152602001908152602001600020600082825461066c91906118d7565b9091555081905061067c81611990565b91505061056c565b50610693858585855a86610e32565b836001600160a01b0316856001600160a01b0316336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516106e2929190611865565b60405180910390a45050505050565b606083821461071357604051630bb9738760e31b815260040160405180910390fd5b8367ffffffffffffffff81111561072c5761072c6119d7565b604051908082528060200260200182016040528015610755578160200160208202803683370190505b50905060005b848110156108075760026000878784818110610779576107796119c1565b905060200201602081019061078e9190611437565b6001600160a01b03166001600160a01b0316815260200190815260200160002060008585848181106107c2576107c26119c1565b905060200201358152602001908152602001600020548282815181106107ea576107ea6119c1565b6020908102919091010152806107ff81611990565b91505061075b565b50949350505050565b61082181666a94d74f4300006118ef565b3410156108415760405163cd1c886760e01b815260040160405180910390fd5b3360009081526002602090815260408083208380529091529020547f000000000000000000000000000000000000000000000000000000000000000a906108899083906118d7565b11156108a85760405163c109f51160e01b815260040160405180910390fd5b7f0000000000000000000000000000000000000000000000000000000000002710816005546108d791906118d7565b11156108f65760405163c109f51160e01b815260040160405180910390fd5b6040805160018082528183019092526000916020808301908036833701905050905060008160008151811061092d5761092d6119c1565b60209081029190910101526040805160018082528183019092526000918160200160208202803683370190505090508281600081518110610970576109706119c1565b60200260200101818152505061099733838360405180602001604052806000815250610f3f565b82600560008282546109a991906118d7565b9091555050604080518581526020810185905233917f782ea917e792a4898a2d6de6653a331d367dce2eeaf57963f1efd32a3a217f65910160405180910390a250505050565b666a94d74f430000341015610a175760405163cd1c886760e01b815260040160405180910390fd5b3360009081526002602090815260408083208380529091529020547f000000000000000000000000000000000000000000000000000000000000000a90610a5f9060016118d7565b1115610a7e5760405163c109f51160e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000027106005546001610aae91906118d7565b1115610acd5760405163c109f51160e01b815260040160405180910390fd5b610aea33600060016040518060200160405280600081525061107b565b60058054906000610afa83611990565b9091555050604080518281526001602082015233917f782ea917e792a4898a2d6de6653a331d367dce2eeaf57963f1efd32a3a217f65910160405180910390a250565b6004546001600160a01b03163314610b68576040516330cd747160e01b815260040160405180910390fd5b6004546040516000916001600160a01b03169047908381818185875af1925050503d8060008114610bb5576040519150601f19603f3d011682016040523d82523d6000602084013e610bba565b606091505b5050905080610bdc57604051630d93a8fd60e31b815260040160405180910390fd5b50565b600080546103ce90611955565b6004546001600160a01b03163314610c17576040516330cd747160e01b815260040160405180910390fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b3360008181526003602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6004546001600160a01b03163314610cd0576040516330cd747160e01b815260040160405180910390fd5b610bdc81611118565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205460ff1690565b336001600160a01b038616141580610d265750610d248533610cd9565b155b15610d445760405163ccea9e6f60e01b815260040160405180910390fd5b6001600160a01b038416610d6b5760405163e99d5ac560e01b815260040160405180910390fd5b6001600160a01b038516600090815260026020908152604080832086845290915281208054849290610d9e90849061190e565b90915550506001600160a01b038416600090815260026020908152604080832086845290915281208054849290610dd69084906118d7565b90915550610dea9050858585855a8661112f565b60408051848152602081018490526001600160a01b03808716929088169133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f6291016106e2565b6001600160a01b0385163b15610f37576000856001600160a01b03168363bc197c81338a898988604051602401610e6d9594939291906117af565b6040516020818303038152906040529060e01b6020820180516001600160e01b038381831617835250505050604051610ea69190611793565b6000604051808303818686fa925050503d8060008114610ee2576040519150601f19603f3d011682016040523d82523d6000602084013e610ee7565b606091505b50915050600081806020019051810190610f0191906116be565b905063bc197c8160e01b6001600160e01b0319821614610f3457604051631e4ec46b60e01b815260040160405180910390fd5b50505b505050505050565b8151835114610f6157604051630bb9738760e31b815260040160405180910390fd5b60005b8351811015610ffd57828181518110610f7f57610f7f6119c1565b602002602001015160026000876001600160a01b03166001600160a01b031681526020019081526020016000206000868481518110610fc057610fc06119c1565b602002602001015181526020019081526020016000206000828254610fe591906118d7565b90915550819050610ff581611990565b915050610f64565b506001600160a01b0384163b1561101d5761101d60008585855a86610e32565b836001600160a01b031660006001600160a01b0316336001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb868660405161106d929190611865565b60405180910390a450505050565b6001600160a01b0384166000908152600260209081526040808320868452909152812080548492906110ae9084906118d7565b90915550506001600160a01b0384163b156110d2576110d260008585855a8661112f565b60408051848152602081018490526001600160a01b0386169160009133917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910161106d565b805161112b906000906020840190611231565b5050565b6001600160a01b0385163b15610f37576000856001600160a01b03168363f23a6e61338a89898860405160240161116a95949392919061180d565b6040516020818303038152906040529060e01b6020820180516001600160e01b0383818316178352505050506040516111a39190611793565b6000604051808303818686fa925050503d80600081146111df576040519150601f19603f3d011682016040523d82523d6000602084013e6111e4565b606091505b509150506000818060200190518101906111fe91906116be565b905063f23a6e6160e01b6001600160e01b0319821614610f3457604051631e4ec46b60e01b815260040160405180910390fd5b82805461123d90611955565b90600052602060002090601f01602090048101928261125f57600085556112a5565b82601f1061127857805160ff19168380011785556112a5565b828001600101855582156112a5579182015b828111156112a557825182559160200191906001019061128a565b506112b19291506112b5565b5090565b5b808211156112b157600081556001016112b6565b600067ffffffffffffffff8311156112e4576112e46119d7565b6112f7601f8401601f19166020016118a6565b905082815283838301111561130b57600080fd5b828260208301376000602084830101529392505050565b80356001600160a01b038116811461133957600080fd5b919050565b60008083601f84011261135057600080fd5b50813567ffffffffffffffff81111561136857600080fd5b6020830191508360208260051b850101111561138357600080fd5b9250929050565b600082601f83011261139b57600080fd5b8135602067ffffffffffffffff8211156113b7576113b76119d7565b8160051b6113c68282016118a6565b8381528281019086840183880185018910156113e157600080fd5b600093505b858410156114045780358352600193909301929184019184016113e6565b50979650505050505050565b600082601f83011261142157600080fd5b611430838335602085016112ca565b9392505050565b60006020828403121561144957600080fd5b61143082611322565b6000806040838503121561146557600080fd5b61146e83611322565b915061147c60208401611322565b90509250929050565b600080600080600060a0868803121561149d57600080fd5b6114a686611322565b94506114b460208701611322565b9350604086013567ffffffffffffffff808211156114d157600080fd5b6114dd89838a0161138a565b945060608801359150808211156114f357600080fd5b6114ff89838a0161138a565b9350608088013591508082111561151557600080fd5b5061152288828901611410565b9150509295509295909350565b600080600080600060a0868803121561154757600080fd5b61155086611322565b945061155e60208701611322565b93506040860135925060608601359150608086013567ffffffffffffffff81111561158857600080fd5b61152288828901611410565b600080604083850312156115a757600080fd5b6115b083611322565b9150602083013580151581146115c557600080fd5b809150509250929050565b600080604083850312156115e357600080fd5b6115ec83611322565b946020939093013593505050565b6000806000806040858703121561161057600080fd5b843567ffffffffffffffff8082111561162857600080fd5b6116348883890161133e565b9096509450602087013591508082111561164d57600080fd5b5061165a8782880161133e565b95989497509550505050565b60006020828403121561167857600080fd5b5035919050565b6000806040838503121561169257600080fd5b50508035926020909101359150565b6000602082840312156116b357600080fd5b8135611430816119ed565b6000602082840312156116d057600080fd5b8151611430816119ed565b6000602082840312156116ed57600080fd5b813567ffffffffffffffff81111561170457600080fd5b8201601f8101841361171557600080fd5b611724848235602084016112ca565b949350505050565b600081518084526020808501945080840160005b8381101561175c57815187529582019590820190600101611740565b509495945050505050565b6000815180845261177f816020860160208601611925565b601f01601f19169290920160200192915050565b600082516117a5818460208701611925565b9190910192915050565b6001600160a01b0386811682528516602082015260a0604082018190526000906117db9083018661172c565b82810360608401526117ed818661172c565b905082810360808401526118018185611767565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061184790830184611767565b979650505050505050565b602081526000611430602083018461172c565b604081526000611878604083018561172c565b828103602084015261188a818561172c565b95945050505050565b6020815260006114306020830184611767565b604051601f8201601f1916810167ffffffffffffffff811182821017156118cf576118cf6119d7565b604052919050565b600082198211156118ea576118ea6119ab565b500190565b6000816000190483118215151615611909576119096119ab565b500290565b600082821015611920576119206119ab565b500390565b60005b83811015611940578181015183820152602001611928565b8381111561194f576000848401525b50505050565b600181811c9082168061196957607f821691505b6020821081141561198a57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156119a4576119a46119ab565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160e01b031981168114610bdc57600080fdfea264697066735822122085c73a70e6349352c5d96623ca5d265a18064b7b50fc2312d488e8408f041b6064736f6c63430008070033

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

00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000000042697066733a2f2f6261667962656965773579627936737935716d3572746d65696c693661767476376a6c7672766f75783375356a6a326d6367736c6c74616468676d000000000000000000000000000000000000000000000000000000000000

-----Decoded View---------------
Arg [0] : baseURI (string): ipfs://bafybeiew5yby6sy5qm5rtmeili6avtv7jlvrvoux3u5jj2mcgslltadhgm

-----Encoded View---------------
5 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000020
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000042
Arg [2] : 697066733a2f2f6261667962656965773579627936737935716d3572746d6569
Arg [3] : 6c693661767476376a6c7672766f75783375356a6a326d6367736c6c74616468
Arg [4] : 676d000000000000000000000000000000000000000000000000000000000000


Deployed Bytecode Sourcemap

7000:4583:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1068:64;;;;;;;;;;-1:-1:-1;1068:64:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;11521:25:1;;;11509:2;11494:18;1068:64:0;;;;;;;;2116:171;;;;;;;;;;-1:-1:-1;2116:171:0;;;;;:::i;:::-;;:::i;:::-;;;10610:14:1;;10603:22;10585:41;;10573:2;10558:18;2116:171:0;10445:187:1;1006:53:0;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;2295:98::-;;;;;;;;;;-1:-1:-1;2295:98:0;;;;;:::i;:::-;;:::i;11493:87::-;;;;;;;;;;-1:-1:-1;11564:8:0;11493:87;;3371:733;;;;;;;;;;-1:-1:-1;3371:733:0;;;;;:::i;:::-;;:::i;:::-;;1719:389;;;;;;;;;;-1:-1:-1;1719:389:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;9598:923::-;;;;;;:::i;:::-;;:::i;8753:682::-;;;;;;:::i;:::-;;:::i;10591:275::-;;;;;;;;;;;;;:::i;7469:29::-;;;;;;;;;;;;;;;;976:21;;;;;;;;;;;;;:::i;10932:207::-;;;;;;;;;;-1:-1:-1;10932:207:0;;;;;:::i;:::-;;:::i;7403:20::-;;;;;;;;;;-1:-1:-1;7403:20:0;;;;-1:-1:-1;;;;;7403:20:0;;;;;;-1:-1:-1;;;;;8269:32:1;;;8251:51;;8239:2;8224:18;7403:20:0;8105:203:1;2591:194:0;;;;;;;;;;-1:-1:-1;2591:194:0;;;;;:::i;:::-;;:::i;11200:209::-;;;;;;;;;;-1:-1:-1;11200:209:0;;;;;:::i;:::-;;:::i;2424:155::-;;;;;;;;;;-1:-1:-1;2424:155:0;;;;;:::i;:::-;;:::i;2816:547::-;;;;;;;;;;-1:-1:-1;2816:547:0;;;;;:::i;:::-;;:::i;2116:171::-;2186:14;-1:-1:-1;;;;;;;;;2225:25:0;;;;:54;;-1:-1:-1;;;;;;;;;;2254:25:0;;;2225:54;2213:66;2116:171;-1:-1:-1;;2116:171:0:o;1006:53::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2295:98::-;2340:18;2378:7;2371:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2295:98;;;:::o;3371:733::-;3574:10;-1:-1:-1;;;;;3574:18:0;;;;;:57;;;3597:34;3614:4;3620:10;3597:16;:34::i;:::-;3596:35;3574:57;3570:87;;;3640:17;;-1:-1:-1;;;3640:17:0;;;;;;;;;;;3570:87;-1:-1:-1;;;;;3674:16:0;;3670:42;;3699:13;;-1:-1:-1;;;3699:13:0;;;;;;;;;;;3670:42;3743:7;:14;3729:3;:10;:28;3725:54;;3766:13;;-1:-1:-1;;;3766:13:0;;;;;;;;;;;3725:54;3797:9;3792:157;3816:3;:10;3812:1;:14;3792:157;;;3875:7;3883:1;3875:10;;;;;;;;:::i;:::-;;;;;;;3848:9;:15;3858:4;-1:-1:-1;;;;;3848:15:0;-1:-1:-1;;;;;3848:15:0;;;;;;;;;;;;:23;3864:3;3868:1;3864:6;;;;;;;;:::i;:::-;;;;;;;3848:23;;;;;;;;;;;;:37;;;;;;;:::i;:::-;;;;;;;;3927:7;3935:1;3927:10;;;;;;;;:::i;:::-;;;;;;;3902:9;:13;3912:2;-1:-1:-1;;;;;3902:13:0;-1:-1:-1;;;;;3902:13:0;;;;;;;;;;;;:21;3916:3;3920:1;3916:6;;;;;;;;:::i;:::-;;;;;;;3902:21;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;-1:-1:-1;3828:3:0;;-1:-1:-1;3828:3:0;;;:::i;:::-;;;;3792:157;;;;3961:68;3989:4;3995:2;3999:3;4004:7;4013:9;4024:4;3961:27;:68::i;:::-;4079:2;-1:-1:-1;;;;;4047:49:0;4073:4;-1:-1:-1;;;;;4047:49:0;4061:10;-1:-1:-1;;;;;4047:49:0;;4083:3;4088:7;4047:49;;;;;;;:::i;:::-;;;;;;;;3371:733;;;;;:::o;1719:389::-;1817:30;1864:27;;;1860:53;;1900:13;;-1:-1:-1;;;1900:13:0;;;;;;;;;;;1860:53;1956:6;1942:28;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1942:28:0;;1926:44;;1988:9;1983:118;2003:17;;;1983:118;;;2061:9;:20;2071:6;;2078:1;2071:9;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2061:20:0;-1:-1:-1;;;;;2061:20:0;;;;;;;;;;;;:28;2082:3;;2086:1;2082:6;;;;;;;:::i;:::-;;;;;;;2061:28;;;;;;;;;;;;2042:13;2056:1;2042:16;;;;;;;;:::i;:::-;;;;;;;;;;:47;2022:3;;;;:::i;:::-;;;;1983:118;;;;1719:389;;;;;;:::o;9598:923::-;9751:22;:9;9763:10;9751:22;:::i;:::-;9738:9;:36;9734:70;;;9783:21;;-1:-1:-1;;;9783:21:0;;;;;;;;;;;9734:70;9900:10;9890:21;;;;:9;:21;;;;;;;;:24;;;;;;;;;9929:20;;9890:36;;9917:9;;9890:36;:::i;:::-;:59;9886:83;;;9958:11;;-1:-1:-1;;;9958:11:0;;;;;;;;;;;9886:83;10079:8;10067:9;10054:10;;:22;;;;:::i;:::-;:33;10050:57;;;10096:11;;-1:-1:-1;;;10096:11:0;;;;;;;;;;;10050:57;10171:16;;;10185:1;10171:16;;;;;;;;;10148:20;;10171:16;;;;;;;;;;;-1:-1:-1;10171:16:0;10148:39;;10207:1;10198:3;10202:1;10198:6;;;;;;;;:::i;:::-;;;;;;;;;;:10;10246:16;;;10260:1;10246:16;;;;;;;;;10219:24;;10246:16;;;;;;;;;;;;-1:-1:-1;10246:16:0;10219:43;;10286:9;10273:7;10281:1;10273:10;;;;;;;;:::i;:::-;;;;;;:22;;;;;10306:40;10317:10;10329:3;10334:7;10306:40;;;;;;;;;;;;:10;:40::i;:::-;10409:9;10395:10;;:23;;;;;;;:::i;:::-;;;;-1:-1:-1;;10469:44:0;;;10819:25:1;;;10875:2;10860:18;;10853:34;;;10479:10:0;;10469:44;;10792:18:1;10469:44:0;;;;;;;9673:848;;9598:923;;:::o;8753:682::-;8887:10;8875:9;:22;8871:56;;;8906:21;;-1:-1:-1;;;8906:21:0;;;;;;;;;;;8871:56;9025:10;9015:21;;;;:9;:21;;;;;;;;:24;;;;;;;;;9046:20;;9015:28;;9042:1;9015:28;:::i;:::-;:51;9011:75;;;9075:11;;-1:-1:-1;;;9075:11:0;;;;;;;;;;;9011:75;9190:8;9173:10;;9186:1;9173:14;;;;:::i;:::-;:25;9169:49;;;9207:11;;-1:-1:-1;;;9207:11:0;;;;;;;;;;;9169:49;9252:27;9258:10;9270:1;9273;9252:27;;;;;;;;;;;;:5;:27::i;:::-;9328:10;:12;;;:10;:12;;;:::i;:::-;;;;-1:-1:-1;;9391:36:0;;;10819:25:1;;;9425:1:0;10875:2:1;10860:18;;10853:34;9401:10:0;;9391:36;;10792:18:1;9391:36:0;;;;;;;8753:682;:::o;10591:275::-;10698:5;;-1:-1:-1;;;;;10698:5:0;10684:10;:19;10680:42;;10712:10;;-1:-1:-1;;;10712:10:0;;;;;;;;;;;10680:42;10774:5;;:44;;10760:9;;-1:-1:-1;;;;;10774:5:0;;10792:21;;10760:9;10774:44;10760:9;10774:44;10792:21;10774:5;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10759:59;;;10834:4;10829:29;;10847:11;;-1:-1:-1;;;10847:11:0;;;;;;;;;;;10829:29;10627:239;10591:275::o;976:21::-;;;;;;;:::i;10932:207::-;11051:5;;-1:-1:-1;;;;;11051:5:0;11037:10;:19;11033:42;;11065:10;;-1:-1:-1;;;11065:10:0;;;;;;;;;;;11033:42;11115:5;:16;;-1:-1:-1;;;;;;11115:16:0;-1:-1:-1;;;;;11115:16:0;;;;;;;;;;10932:207::o;2591:194::-;2681:10;2671:21;;;;:9;:21;;;;;;;;-1:-1:-1;;;;;2671:31:0;;;;;;;;;;;;:42;;-1:-1:-1;;2671:42:0;;;;;;;;;;2731:46;;10585:41:1;;;2671:31:0;;2681:10;2731:46;;10558:18:1;2731:46:0;;;;;;;2591:194;;:::o;11200:209::-;11321:5;;-1:-1:-1;;;;;11321:5:0;11307:10;:19;11303:42;;11335:10;;-1:-1:-1;;;11335:10:0;;;;;;;;;;;11303:42;11383:18;11394:6;11383:10;:18::i;2424:155::-;-1:-1:-1;;;;;2545:16:0;;;2504:15;2545:16;;;:9;:16;;;;;;;;:26;;;;;;;;;;;;;;;2424:155::o;2816:547::-;2995:10;-1:-1:-1;;;;;2995:18:0;;;;;:57;;;3018:34;3035:4;3041:10;3018:16;:34::i;:::-;3017:35;2995:57;2991:87;;;3061:17;;-1:-1:-1;;;3061:17:0;;;;;;;;;;;2991:87;-1:-1:-1;;;;;3095:16:0;;3091:42;;3120:13;;-1:-1:-1;;;3120:13:0;;;;;;;;;;;3091:42;-1:-1:-1;;;;;3146:15:0;;;;;;:9;:15;;;;;;;;:19;;;;;;;;:29;;3169:6;;3146:15;:29;;3169:6;;3146:29;:::i;:::-;;;;-1:-1:-1;;;;;;;3188:13:0;;;;;;:9;:13;;;;;;;;:17;;;;;;;;:27;;3209:6;;3188:13;:27;;3209:6;;3188:27;:::i;:::-;;;;-1:-1:-1;3228:61:0;;-1:-1:-1;3251:4:0;3257:2;3261;3265:6;3273:9;3284:4;3228:22;:61::i;:::-;3307:48;;;10819:25:1;;;10875:2;10860:18;;10853:34;;;-1:-1:-1;;;;;3307:48:0;;;;;;;;3322:10;;3307:48;;10792:18:1;3307:48:0;10637:256:1;4795:710:0;-1:-1:-1;;;;;5037:14:0;;;:19;5033:465;;5192:21;5217:2;-1:-1:-1;;;;;5217:13:0;5236:8;5269:10;5298;5310:4;5316:3;5321:7;5330:4;5246:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5246:89:0;;;;;;;;;;;5217:119;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5189:147;;;5369:15;5398:8;5387:30;;;;;;;;;;;;:::i;:::-;5369:48;-1:-1:-1;;;;;;;;;;5438:22:0;;;5434:52;;5469:17;;-1:-1:-1;;;5469:17:0;;;;;;;;;;;5434:52;5058:440;;5033:465;4795:710;;;;;;:::o;6061:529::-;6244:7;:14;6230:3;:10;:28;6226:54;;6267:13;;-1:-1:-1;;;6267:13:0;;;;;;;;;;;6226:54;6298:9;6293:103;6317:3;:10;6313:1;:14;6293:103;;;6374:7;6382:1;6374:10;;;;;;;;:::i;:::-;;;;;;;6349:9;:13;6359:2;-1:-1:-1;;;;;6349:13:0;-1:-1:-1;;;;;6349:13:0;;;;;;;;;;;;:21;6363:3;6367:1;6363:6;;;;;;;;:::i;:::-;;;;;;;6349:21;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;-1:-1:-1;6329:3:0;;-1:-1:-1;6329:3:0;;;:::i;:::-;;;;6293:103;;;-1:-1:-1;;;;;;6412:14:0;;;:19;6408:101;;6433:76;6469:3;6475:2;6479:3;6484:7;6493:9;6504:4;6433:27;:76::i;:::-;6565:2;-1:-1:-1;;;;;6527:55:0;6561:1;-1:-1:-1;;;;;6527:55:0;6541:10;-1:-1:-1;;;;;6527:55:0;;6569:3;6574:7;6527:55;;;;;;;:::i;:::-;;;;;;;;6061:529;;;;:::o;5701:352::-;-1:-1:-1;;;;;5841:13:0;;;;;;:9;:13;;;;;;;;:17;;;;;;;;:27;;5862:6;;5841:13;:27;;5862:6;;5841:27;:::i;:::-;;;;-1:-1:-1;;;;;;;5885:14:0;;;:19;5881:92;;5906:67;5937:1;5941:2;5945;5949:6;5957:9;5968:4;5906:22;:67::i;:::-;5991:54;;;10819:25:1;;;10875:2;10860:18;;10853:34;;;-1:-1:-1;;;;;5991:54:0;;;6026:1;;6006:10;;5991:54;;10792:18:1;5991:54:0;10637:256:1;6780:86:0;6842:16;;;;:7;;:16;;;;;:::i;:::-;;6780:86;:::o;4112:675::-;-1:-1:-1;;;;;4330:14:0;;;:19;4326:454;;4476:21;4501:2;-1:-1:-1;;;;;4501:13:0;4520:8;4553:10;4582;4594:4;4600:2;4604:6;4612:4;4530:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4530:87:0;;;;;;;;;;;4501:117;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4473:145;;;4651:15;4680:8;4669:30;;;;;;;;;;;;:::i;:::-;4651:48;-1:-1:-1;;;;;;;;;;4720:22:0;;;4716:52;;4751:17;;-1:-1:-1;;;4751:17:0;;;;;;;;;;;-1:-1:-1;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:406:1;78:5;112:18;104:6;101:30;98:56;;;134:18;;:::i;:::-;172:57;217:2;196:15;;-1:-1:-1;;192:29:1;223:4;188:40;172:57;:::i;:::-;163:66;;252:6;245:5;238:21;292:3;283:6;278:3;274:16;271:25;268:45;;;309:1;306;299:12;268:45;358:6;353:3;346:4;339:5;335:16;322:43;412:1;405:4;396:6;389:5;385:18;381:29;374:40;14:406;;;;;:::o;425:173::-;493:20;;-1:-1:-1;;;;;542:31:1;;532:42;;522:70;;588:1;585;578:12;522:70;425:173;;;:::o;603:367::-;666:8;676:6;730:3;723:4;715:6;711:17;707:27;697:55;;748:1;745;738:12;697:55;-1:-1:-1;771:20:1;;814:18;803:30;;800:50;;;846:1;843;836:12;800:50;883:4;875:6;871:17;859:29;;943:3;936:4;926:6;923:1;919:14;911:6;907:27;903:38;900:47;897:67;;;960:1;957;950:12;897:67;603:367;;;;;:::o;975:723::-;1029:5;1082:3;1075:4;1067:6;1063:17;1059:27;1049:55;;1100:1;1097;1090:12;1049:55;1136:6;1123:20;1162:4;1185:18;1181:2;1178:26;1175:52;;;1207:18;;:::i;:::-;1253:2;1250:1;1246:10;1276:28;1300:2;1296;1292:11;1276:28;:::i;:::-;1338:15;;;1369:12;;;;1401:15;;;1435;;;1431:24;;1428:33;-1:-1:-1;1425:53:1;;;1474:1;1471;1464:12;1425:53;1496:1;1487:10;;1506:163;1520:2;1517:1;1514:9;1506:163;;;1577:17;;1565:30;;1538:1;1531:9;;;;;1615:12;;;;1647;;1506:163;;;-1:-1:-1;1687:5:1;975:723;-1:-1:-1;;;;;;;975:723:1:o;1703:220::-;1745:5;1798:3;1791:4;1783:6;1779:17;1775:27;1765:55;;1816:1;1813;1806:12;1765:55;1838:79;1913:3;1904:6;1891:20;1884:4;1876:6;1872:17;1838:79;:::i;:::-;1829:88;1703:220;-1:-1:-1;;;1703:220:1:o;1928:186::-;1987:6;2040:2;2028:9;2019:7;2015:23;2011:32;2008:52;;;2056:1;2053;2046:12;2008:52;2079:29;2098:9;2079:29;:::i;2119:260::-;2187:6;2195;2248:2;2236:9;2227:7;2223:23;2219:32;2216:52;;;2264:1;2261;2254:12;2216:52;2287:29;2306:9;2287:29;:::i;:::-;2277:39;;2335:38;2369:2;2358:9;2354:18;2335:38;:::i;:::-;2325:48;;2119:260;;;;;:::o;2384:943::-;2538:6;2546;2554;2562;2570;2623:3;2611:9;2602:7;2598:23;2594:33;2591:53;;;2640:1;2637;2630:12;2591:53;2663:29;2682:9;2663:29;:::i;:::-;2653:39;;2711:38;2745:2;2734:9;2730:18;2711:38;:::i;:::-;2701:48;;2800:2;2789:9;2785:18;2772:32;2823:18;2864:2;2856:6;2853:14;2850:34;;;2880:1;2877;2870:12;2850:34;2903:61;2956:7;2947:6;2936:9;2932:22;2903:61;:::i;:::-;2893:71;;3017:2;3006:9;3002:18;2989:32;2973:48;;3046:2;3036:8;3033:16;3030:36;;;3062:1;3059;3052:12;3030:36;3085:63;3140:7;3129:8;3118:9;3114:24;3085:63;:::i;:::-;3075:73;;3201:3;3190:9;3186:19;3173:33;3157:49;;3231:2;3221:8;3218:16;3215:36;;;3247:1;3244;3237:12;3215:36;;3270:51;3313:7;3302:8;3291:9;3287:24;3270:51;:::i;:::-;3260:61;;;2384:943;;;;;;;;:::o;3332:606::-;3436:6;3444;3452;3460;3468;3521:3;3509:9;3500:7;3496:23;3492:33;3489:53;;;3538:1;3535;3528:12;3489:53;3561:29;3580:9;3561:29;:::i;:::-;3551:39;;3609:38;3643:2;3632:9;3628:18;3609:38;:::i;:::-;3599:48;;3694:2;3683:9;3679:18;3666:32;3656:42;;3745:2;3734:9;3730:18;3717:32;3707:42;;3800:3;3789:9;3785:19;3772:33;3828:18;3820:6;3817:30;3814:50;;;3860:1;3857;3850:12;3814:50;3883:49;3924:7;3915:6;3904:9;3900:22;3883:49;:::i;3943:347::-;4008:6;4016;4069:2;4057:9;4048:7;4044:23;4040:32;4037:52;;;4085:1;4082;4075:12;4037:52;4108:29;4127:9;4108:29;:::i;:::-;4098:39;;4187:2;4176:9;4172:18;4159:32;4234:5;4227:13;4220:21;4213:5;4210:32;4200:60;;4256:1;4253;4246:12;4200:60;4279:5;4269:15;;;3943:347;;;;;:::o;4295:254::-;4363:6;4371;4424:2;4412:9;4403:7;4399:23;4395:32;4392:52;;;4440:1;4437;4430:12;4392:52;4463:29;4482:9;4463:29;:::i;:::-;4453:39;4539:2;4524:18;;;;4511:32;;-1:-1:-1;;;4295:254:1:o;4554:773::-;4676:6;4684;4692;4700;4753:2;4741:9;4732:7;4728:23;4724:32;4721:52;;;4769:1;4766;4759:12;4721:52;4809:9;4796:23;4838:18;4879:2;4871:6;4868:14;4865:34;;;4895:1;4892;4885:12;4865:34;4934:70;4996:7;4987:6;4976:9;4972:22;4934:70;:::i;:::-;5023:8;;-1:-1:-1;4908:96:1;-1:-1:-1;5111:2:1;5096:18;;5083:32;;-1:-1:-1;5127:16:1;;;5124:36;;;5156:1;5153;5146:12;5124:36;;5195:72;5259:7;5248:8;5237:9;5233:24;5195:72;:::i;:::-;4554:773;;;;-1:-1:-1;5286:8:1;-1:-1:-1;;;;4554:773:1:o;5332:180::-;5391:6;5444:2;5432:9;5423:7;5419:23;5415:32;5412:52;;;5460:1;5457;5450:12;5412:52;-1:-1:-1;5483:23:1;;5332:180;-1:-1:-1;5332:180:1:o;5517:248::-;5585:6;5593;5646:2;5634:9;5625:7;5621:23;5617:32;5614:52;;;5662:1;5659;5652:12;5614:52;-1:-1:-1;;5685:23:1;;;5755:2;5740:18;;;5727:32;;-1:-1:-1;5517:248:1:o;5770:245::-;5828:6;5881:2;5869:9;5860:7;5856:23;5852:32;5849:52;;;5897:1;5894;5887:12;5849:52;5936:9;5923:23;5955:30;5979:5;5955:30;:::i;6020:249::-;6089:6;6142:2;6130:9;6121:7;6117:23;6113:32;6110:52;;;6158:1;6155;6148:12;6110:52;6190:9;6184:16;6209:30;6233:5;6209:30;:::i;6274:450::-;6343:6;6396:2;6384:9;6375:7;6371:23;6367:32;6364:52;;;6412:1;6409;6402:12;6364:52;6452:9;6439:23;6485:18;6477:6;6474:30;6471:50;;;6517:1;6514;6507:12;6471:50;6540:22;;6593:4;6585:13;;6581:27;-1:-1:-1;6571:55:1;;6622:1;6619;6612:12;6571:55;6645:73;6710:7;6705:2;6692:16;6687:2;6683;6679:11;6645:73;:::i;:::-;6635:83;6274:450;-1:-1:-1;;;;6274:450:1:o;6914:435::-;6967:3;7005:5;6999:12;7032:6;7027:3;7020:19;7058:4;7087:2;7082:3;7078:12;7071:19;;7124:2;7117:5;7113:14;7145:1;7155:169;7169:6;7166:1;7163:13;7155:169;;;7230:13;;7218:26;;7264:12;;;;7299:15;;;;7191:1;7184:9;7155:169;;;-1:-1:-1;7340:3:1;;6914:435;-1:-1:-1;;;;;6914:435:1:o;7354:257::-;7395:3;7433:5;7427:12;7460:6;7455:3;7448:19;7476:63;7532:6;7525:4;7520:3;7516:14;7509:4;7502:5;7498:16;7476:63;:::i;:::-;7593:2;7572:15;-1:-1:-1;;7568:29:1;7559:39;;;;7600:4;7555:50;;7354:257;-1:-1:-1;;7354:257:1:o;7616:274::-;7745:3;7783:6;7777:13;7799:53;7845:6;7840:3;7833:4;7825:6;7821:17;7799:53;:::i;:::-;7868:16;;;;;7616:274;-1:-1:-1;;7616:274:1:o;8313:826::-;-1:-1:-1;;;;;8710:15:1;;;8692:34;;8762:15;;8757:2;8742:18;;8735:43;8672:3;8809:2;8794:18;;8787:31;;;8635:4;;8841:57;;8878:19;;8870:6;8841:57;:::i;:::-;8946:9;8938:6;8934:22;8929:2;8918:9;8914:18;8907:50;8980:44;9017:6;9009;8980:44;:::i;:::-;8966:58;;9073:9;9065:6;9061:22;9055:3;9044:9;9040:19;9033:51;9101:32;9126:6;9118;9101:32;:::i;:::-;9093:40;8313:826;-1:-1:-1;;;;;;;;8313:826:1:o;9144:560::-;-1:-1:-1;;;;;9441:15:1;;;9423:34;;9493:15;;9488:2;9473:18;;9466:43;9540:2;9525:18;;9518:34;;;9583:2;9568:18;;9561:34;;;9403:3;9626;9611:19;;9604:32;;;9366:4;;9653:45;;9678:19;;9670:6;9653:45;:::i;:::-;9645:53;9144:560;-1:-1:-1;;;;;;;9144:560:1:o;9709:261::-;9888:2;9877:9;9870:21;9851:4;9908:56;9960:2;9949:9;9945:18;9937:6;9908:56;:::i;9975:465::-;10232:2;10221:9;10214:21;10195:4;10258:56;10310:2;10299:9;10295:18;10287:6;10258:56;:::i;:::-;10362:9;10354:6;10350:22;10345:2;10334:9;10330:18;10323:50;10390:44;10427:6;10419;10390:44;:::i;:::-;10382:52;9975:465;-1:-1:-1;;;;;9975:465:1:o;11151:219::-;11300:2;11289:9;11282:21;11263:4;11320:44;11360:2;11349:9;11345:18;11337:6;11320:44;:::i;11810:275::-;11881:2;11875:9;11946:2;11927:13;;-1:-1:-1;;11923:27:1;11911:40;;11981:18;11966:34;;12002:22;;;11963:62;11960:88;;;12028:18;;:::i;:::-;12064:2;12057:22;11810:275;;-1:-1:-1;11810:275:1:o;12090:128::-;12130:3;12161:1;12157:6;12154:1;12151:13;12148:39;;;12167:18;;:::i;:::-;-1:-1:-1;12203:9:1;;12090:128::o;12223:168::-;12263:7;12329:1;12325;12321:6;12317:14;12314:1;12311:21;12306:1;12299:9;12292:17;12288:45;12285:71;;;12336:18;;:::i;:::-;-1:-1:-1;12376:9:1;;12223:168::o;12396:125::-;12436:4;12464:1;12461;12458:8;12455:34;;;12469:18;;:::i;:::-;-1:-1:-1;12506:9:1;;12396:125::o;12526:258::-;12598:1;12608:113;12622:6;12619:1;12616:13;12608:113;;;12698:11;;;12692:18;12679:11;;;12672:39;12644:2;12637:10;12608:113;;;12739:6;12736:1;12733:13;12730:48;;;12774:1;12765:6;12760:3;12756:16;12749:27;12730:48;;12526:258;;;:::o;12789:380::-;12868:1;12864:12;;;;12911;;;12932:61;;12986:4;12978:6;12974:17;12964:27;;12932:61;13039:2;13031:6;13028:14;13008:18;13005:38;13002:161;;;13085:10;13080:3;13076:20;13073:1;13066:31;13120:4;13117:1;13110:15;13148:4;13145:1;13138:15;13002:161;;12789:380;;;:::o;13174:135::-;13213:3;-1:-1:-1;;13234:17:1;;13231:43;;;13254:18;;:::i;:::-;-1:-1:-1;13301:1:1;13290:13;;13174:135::o;13314:127::-;13375:10;13370:3;13366:20;13363:1;13356:31;13406:4;13403:1;13396:15;13430:4;13427:1;13420:15;13446:127;13507:10;13502:3;13498:20;13495:1;13488:31;13538:4;13535:1;13528:15;13562:4;13559:1;13552:15;13578:127;13639:10;13634:3;13630:20;13627:1;13620:31;13670:4;13667:1;13660:15;13694:4;13691:1;13684:15;13710:131;-1:-1:-1;;;;;;13784:32:1;;13774:43;;13764:71;;13831:1;13828;13821:12

Swarm Source

ipfs://85c73a70e6349352c5d96623ca5d265a18064b7b50fc2312d488e8408f041b60
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.