0xb75f09b4340aeb85cd5f2dd87d31751edc11ed39

deployer: unknown relevance score: 0 status: partially_identified bytecode: 14810 bytes

DECOMPILED SOLIDITY (Heimdall)

// SPDX-License-Identifier: MIT
pragma solidity >=0.8.0;

/// @title            Decompiled Contract
/// @author           Jonathan Becker <jonathan@jbecker.dev>
/// @custom:version   heimdall-rs v0.9.2
///
/// @notice           This contract was decompiled using the heimdall-rs decompiler.
///                     It was generated directly by tracing the EVM opcodes from this contract.
///                     As a result, it may not compile or even be valid solidity code.
///                     Despite this, it should be obvious what each function does. Overall
///                     logic should have been preserved throughout decompiling.
///
/// @custom:github    You can find the open-source decompiler here:
///                       https://heimdall.rs

contract DecompiledContract {
    uint256 public constant withdrawAddress = 1198556756346365469228398164930815342986650862464;
    uint256 public constant REFUND_ROLE = 77031104791342605956728934273502334494440618085674589960722602090638445534792;
    uint256 public constant DEFAULT_ADMIN_ROLE = 0;
    uint256 public constant SUPPORT_ROLE = 98004723066652866835523930881156781081683319332295575154267376734294213944891;
    uint256 public constant MAX_SUPPLY = 24000;
    
    uint256 store_d;
    uint256 public minimumContribution;
    uint256 store_k;
    mapping(bytes32 => bytes32) storage_map_q;
    bytes32 store_n;
    mapping(bytes32 => bytes32) storage_map_j;
    uint256 public unresolved_18160ddd;
    bytes32 store_c;
    mapping(bytes32 => bytes32) storage_map_b;
    mapping(bytes32 => bytes32) storage_map_m;
    bool public auctionActive;
    address public owner;
    bytes32 store_h;
    bytes32 store_l;
    mapping(bytes32 => bytes32) storage_map_e;
    uint256 public price;
    bytes32 store_o;
    
    event Bid(address, uint256, uint256, uint256);
    error TransferToNonERC721ReceiverImplementer();
    event Transfer(address, address, uint256);
    event RoleRevoked(bytes32, address, address);
    event RoleGranted(bytes32, address, address);
    event Event_8c5be1e5();
    event Event_17307eab();
    event OwnershipTransferred(address, address);
    
    /// @custom:selector    0x095ea7b3
    /// @custom:signature   Unresolved_095ea7b3(address arg0, uint256 arg1) public
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    /// @param              arg1 ["uint256", "bytes32", "int256"]
    function Unresolved_095ea7b3(address arg0, uint256 arg1) public {
        require(arg0 == (address(arg0)));
        require(!(arg1 < unresolved_18160ddd), CustomError_df2d9b42());
        uint256 var_e = arg1;
        var_a = var_a + 0x60;
        require(!(!bytes1(storage_map_b[var_e] / 0x0100000000000000000000000000000000000000000000000000000000)), CustomError_df2d9b42());
        require(!(address(var_a.length)), CustomError_cfb3b942());
        require(!(address(arg0) == (address(var_a.length))), CustomError_cfb3b942());
        require(address(var_a.length) == msg.sender, CustomError_cfb3b942());
        var_e = address(msg.sender);
        require(!(!bytes1(storage_map_b[var_e])), CustomError_cfb3b942());
        var_e = arg1;
        storage_map_b[var_e] = (address(arg0)) | (uint96(storage_map_b[var_e]));
        emit Event_8c5be1e5(address(var_a.length), address(arg0), arg1);
        require(!(!(address(var_a.length)) == msg.sender), CustomError_cfb3b942());
        var_e = arg1;
        storage_map_b[var_e] = (address(arg0)) | (uint96(storage_map_b[var_e]));
        emit Event_8c5be1e5(address(var_a.length), address(arg0), arg1);
        var_e = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + arg1;
        if (!address(storage_map_b[var_e])) {
            var_e = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + arg1);
            if (!address(storage_map_b[var_e])) {
                var_e = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + arg1));
                if (!address(storage_map_b[var_e])) {
                    var_e = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + arg1)));
                    if (!address(storage_map_b[var_e])) {
                    }
                }
            }
        }
    }
    
    /// @custom:selector    0x0f7309e8
    /// @custom:signature   provenance() public view returns (bytes memory)
    function provenance() public view returns (bytes memory) {
        if (store_d) {
            if (!(store_d) == ((store_d >> 0x01) < 0x20)) {
                uint256 var_c = var_c + (0x20 + (((0x1f + (store_d >> 0x01)) / 0x20) * 0x20));
                if (store_d) {
                    if (!(store_d) == ((store_d >> 0x01) < 0x20)) {
                        if (!store_d >> 0x01) {
                            if (0x1f < (store_d >> 0x01)) {
                                var_a = 0x0e;
                                if ((0x20 + var_c) + (store_d >> 0x01) > (0x20 + (0x20 + var_c))) {
                                    if (!0 > var_c.length) {
                                        return abi.encodePacked(0x20, var_c.length);
                                        return abi.encodePacked(0x20, var_c.length);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    
    /// @custom:selector    0x3ccfd60b
    /// @custom:signature   withdraw() public
    function withdraw() public {
        require(msg.sender == (address(owner)), "Ownable: caller is not the owner");
        (bool success, bytes memory ret0) = address(0xd1f124cc900624e1ff2d923180b3924147364380).transfer(address(this).balance);
        require(ret0.length == 0, "Transfer failed.");
    }
    
    /// @custom:selector    0xa466cb1a
    /// @custom:signature   Unresolved_a466cb1a(uint256 arg0, address arg1) public
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    /// @param              arg1 ["address", "uint160", "bytes20", "int160"]
    function Unresolved_a466cb1a(uint256 arg0, address arg1) public {
        require(!arg0 > 0xffffffffffffffff);
        require(!(arg0) > 0xffffffffffffffff);
        address var_a = address(msg.sender);
        require(bytes1(storage_map_e[var_a]));
        require(!0 < (arg0));
        require(0 < (arg0));
        require(!(((0 + (0x20 + (0x04 + arg0))) + 0x20) - (0 + (0x20 + (0x04 + arg0)))) < 0x20);
        require((0 + (0x20 + (arg0))) == (address(0 + (0x20 + (arg0)))));
        var_a = address(msg.sender);
        require(bytes1(storage_map_e[var_a]), "ReentrancyGuard: reentrant call");
        require(!(store_h == 0x02), "ReentrancyGuard: reentrant call");
        store_h = 0x02;
        require(price, "Already sent refunds to this address.");
        var_a = address(0 + (0x20 + (arg0)));
        require(!(bytes1(storage_map_e[var_a] / 0x0100000000000000000000000000000000000000000000000000000000000000)), "Already sent refunds to this address.");
        storage_map_e[var_a] = 0x0100000000000000000000000000000000000000000000000000000000000000 | (uint248(storage_map_e[var_a]));
        require(price, "Refund failed.");
        (bool success, bytes memory ret0) = address(0 + (0x20 + (arg0))).transfer(uint216(storage_map_e[var_a]) % price);
        require(ret0.length == 0, "Refund failed.");
        require(price, "Already sent tokens to this address.");
        require(!(uint216(storage_map_e[var_a]) / price), "Already sent tokens to this address.");
        require(!(uint32(storage_map_e[var_a] / 0x01000000000000000000000000000000000000000000000000000000)), "Already sent tokens to this address.");
        storage_map_e[var_a] = (uint32(uint216(storage_map_e[var_a]) / price) * 0x01000000000000000000000000000000000000000000000000000000) | (uint224(storage_map_e[var_a]));
        require(!(unresolved_18160ddd > (~(uint216(storage_map_e[var_a]) / price))), "Number would exceed max supply");
        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        require(!((unresolved_18160ddd + (uint216(storage_map_e[var_a]) / price)) > 0x5dc0), "Number would exceed max supply");
        var_d = 0x20;
        uint256 var_i = var_d + var_i;
        require(address(0 + (0x20 + (arg0))));
        require(uint216(storage_map_e[var_a]) / price);
        var_a = address(0 + (0x20 + (arg0)));
        storage_map_e[var_a] = (0x010000000000000000 * (uint64((uint216(storage_map_e[var_a]) / price) + ((uint216(storage_map_e[var_a]) / price) + (storage_map_e[var_a]) | (uint192(storage_map_e[var_a])) / 0x010000000000000000)))) | (uint64((uint216(storage_map_e[var_a]) / price) + (storage_map_e[var_a])) | (address(storage_map_e[var_a])));
        var_a = unresolved_18160ddd;
        storage_map_e[var_a] = (uint64(block.timestamp) * 0x010000000000000000000000000000000000000000) | (address(0 + (0x20 + (arg0))) | (uint32(storage_map_e[var_a])));
        require(!0x01);
        require(!0x01);
        emit Transfer(0, address(0 + (0x20 + (arg0))), unresolved_18160ddd);
        require(!(unresolved_18160ddd + 0x01) == ((uint216(storage_map_e[var_a]) / price) + unresolved_18160ddd));
        unresolved_18160ddd = unresolved_18160ddd + 0x01;
        store_h = 0x01;
        require(!0 == 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff);
        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        emit Transfer(0, address(0 + (0x20 + (arg0))), unresolved_18160ddd);
        address var_e = address(msg.sender);
        uint256 var_f = 0;
        require(!0 > var_i.length);
        require(address(0 + (0x20 + (arg0))).code.length);
        (bool success, bytes memory ret0) = address(0 + (0x20 + (arg0))).{ value: var_f ether }Unresolved_150b7a02(var_e); // call
        require(!ret0.length);
        require(var_n);
        var_i = var_i + (uint248(ret0.length + 0x3f));
        require(var_i.length, CustomError_d1a57ed6());
        var_i = var_i + (uint248(ret0.length + 0x1f));
        require(!((var_i + ret0.length) - var_i) < 0x20);
        require(var_i.length == (uint32(var_i.length)));
        require(0x01);
        require(!ret0.length);
        require(var_n);
        var_i = var_i + (uint248(ret0.length + 0x3f));
        require(var_i.length, CustomError_d1a57ed6());
        require(0x150b7a0200000000000000000000000000000000000000000000000000000000 == (uint32(var_i.length)), CustomError_d1a57ed6());
        require(!(0x01 + unresolved_18160ddd) == ((uint216(storage_map_e[var_a]) / price) + unresolved_18160ddd));
        require(unresolved_18160ddd == unresolved_18160ddd);
        require(!(0x02) & (0x14 > 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff));
    }
    
    /// @custom:selector    0x248a9ca3
    /// @custom:signature   getRoleAdmin(bytes32 arg0) public view returns (uint256)
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    function getRoleAdmin(bytes32 arg0) public view returns (uint256) {
        uint256 var_a = arg0;
        return storage_map_j[var_a];
    }
    
    /// @custom:selector    0xacde5d28
    /// @custom:signature   refundAmount(address arg0) public view returns (uint216)
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    function refundAmount(address arg0) public view returns (uint216) {
        require(arg0 == (address(arg0)));
        address var_a = address(arg0);
        require(price);
        return (uint216(storage_map_e[var_a])) % price;
    }
    
    /// @custom:selector    0x91d14854
    /// @custom:signature   hasRole(bytes32 arg0, address arg1) public view returns (bool)
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    /// @param              arg1 ["address", "uint160", "bytes20", "int160"]
    function hasRole(bytes32 arg0, address arg1) public view returns (bool) {
        require(arg1 == (address(arg1)));
        var_a = address(arg1);
        return !(!bytes1(storage_map_e[var_a]));
    }
    
    /// @custom:selector    0x55f804b3
    /// @custom:signature   Unresolved_55f804b3(uint256 arg0) public
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    function Unresolved_55f804b3(uint256 arg0) public {
        require(!arg0 > 0xffffffffffffffff);
        require(!(arg0 > 0xffffffffffffffff), "Strings: hex length insufficient");
        require(!(((var_c + (uint248(0x3f + (arg0 + 0x1f)))) < var_c) | ((var_c + (uint248(0x3f + (arg0 + 0x1f)))) > 0xffffffffffffffff)), "Strings: hex length insufficient");
        uint256 var_c = var_c + (uint248(0x3f + (arg0 + 0x1f)));
        address var_a = address(msg.sender);
        require(bytes1(storage_map_e[var_a]), "Strings: hex length insufficient");
        require(bytes1(store_k), "Strings: hex length insufficient");
        require(!(bytes1(store_k) == ((store_k >> 0x01) < 0x20)), "Strings: hex length insufficient");
        var_a = 0x0f;
        require(var_c.length, "Strings: hex length insufficient");
        require(0x1f < var_c.length, "Strings: hex length insufficient");
        store_k = 0x01 + (var_c.length + var_c.length);
        require(!var_c.length, "Strings: hex length insufficient");
        require(!(((var_c + 0x20) + var_c.length) > (var_c + 0x20)), "Strings: hex length insufficient");
        require(!(keccak256(var_a) + ((0x1f + (store_k >> 0x01)) / 0x20) > keccak256(var_a)), "Strings: hex length insufficient");
        require(!(0x02 & (0x14 > 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)), "Strings: hex length insufficient");
        require(!(0x02 > 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7), "Strings: hex length insufficient");
        require(!(0x2a > 0xffffffffffffffff), "Strings: hex length insufficient");
        var_c = var_c + 0x60;
        require(!0x2a, "Strings: hex length insufficient");
        require(!(0x02 & (0x14 > 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)), "Strings: hex length insufficient");
        require(!(0x01 > 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7), "Strings: hex length insufficient");
        require(!(0x29 > 0x01), "Strings: hex length insufficient");
        require(!(address(msg.sender)), "Strings: hex length insufficient");
        require(bytes1(address(msg.sender)) < 0x10);
        require(0x29 < var_c.length);
        require(0x29);
    }
    
    /// @custom:selector    0xcae4d676
    /// @custom:signature   sendRefund(address arg0) public
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    function sendRefund(address arg0) public {
        require(arg0 == (address(arg0)));
        address var_a = address(msg.sender);
        require(bytes1(storage_map_e[var_a]), "ReentrancyGuard: reentrant call");
        require(!(store_h == 0x02), "ReentrancyGuard: reentrant call");
        store_h = 0x02;
        require(price, "Address has already claimed their refund.");
        var_a = address(arg0);
        require(!(bytes1(storage_map_e[var_a] / 0x0100000000000000000000000000000000000000000000000000000000000000)), "Address has already claimed their refund.");
        storage_map_e[var_a] = 0x0100000000000000000000000000000000000000000000000000000000000000 | (uint248(storage_map_e[var_a]));
        require(price, "Refund failed.");
        (bool success, bytes memory ret0) = address(arg0).transfer(uint216(storage_map_e[var_a]) % price);
        require(ret0.length == 0, "Refund failed.");
        store_h = 0x01;
        require(!(0x02 & (0x14 > 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)), "Strings: hex length insufficient");
        require(!(0x02 > 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7), "Strings: hex length insufficient");
        require(!(0x2a > 0xffffffffffffffff), "Strings: hex length insufficient");
        uint256 var_i = var_i + 0x60;
        require(!0x2a, "Strings: hex length insufficient");
        require(!(0x02 & (0x14 > 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)), "Strings: hex length insufficient");
        require(!(0x01 > 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7), "Strings: hex length insufficient");
        require(!(0x29 > 0x01), "Strings: hex length insufficient");
        require(!(address(msg.sender)), "Strings: hex length insufficient");
        require(bytes1(address(msg.sender)) < 0x10);
        require(0x29 < var_i.length);
        require(0x29);
    }
    
    /// @custom:selector    0xd547741f
    /// @custom:signature   revokeRole(bytes32 arg0, address arg1) public
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    /// @param              arg1 ["address", "uint160", "bytes20", "int160"]
    function revokeRole(bytes32 arg0, address arg1) public {
        require(arg1 == (address(arg1)));
        var_a = address(msg.sender);
        require(bytes1(storage_map_e[var_a]), "Strings: hex length insufficient");
        var_a = address(arg1);
        require(!(bytes1(storage_map_e[var_a])), "Strings: hex length insufficient");
        var_a = address(arg1);
        storage_map_e[var_a] = uint248(storage_map_e[var_a]);
        emit RoleRevoked(arg0, address(arg1), msg.sender);
        require(!(0x02 & (0x14 > 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)), "Strings: hex length insufficient");
        require(!(0x02 > 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7), "Strings: hex length insufficient");
        require(!(0x2a > 0xffffffffffffffff), "Strings: hex length insufficient");
        uint256 var_e = var_e + 0x60;
        require(!0x2a, "Strings: hex length insufficient");
        require(!(0x02 & (0x14 > 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)), "Strings: hex length insufficient");
        require(!(0x01 > 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7), "Strings: hex length insufficient");
        require(!(0x29 > 0x01), "Strings: hex length insufficient");
        require(!(address(msg.sender)), "Strings: hex length insufficient");
        require(bytes1(address(msg.sender)) < 0x10);
        require(0x29 < var_e.length);
        require(0x29);
    }
    
    /// @custom:selector    0x2f2ff15d
    /// @custom:signature   grantRole(bytes32 arg0, address arg1) public
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    /// @param              arg1 ["address", "uint160", "bytes20", "int160"]
    function grantRole(bytes32 arg0, address arg1) public {
        require(arg1 == (address(arg1)));
        var_a = address(msg.sender);
        require(bytes1(storage_map_e[var_a]), "Strings: hex length insufficient");
        var_a = address(arg1);
        require(bytes1(storage_map_e[var_a]), "Strings: hex length insufficient");
        var_a = address(arg1);
        storage_map_e[var_a] = 0x01 | (uint248(storage_map_e[var_a]));
        emit RoleGranted(arg0, address(arg1), address(msg.sender));
        require(!(0x02 & (0x14 > 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)), "Strings: hex length insufficient");
        require(!(0x02 > 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7), "Strings: hex length insufficient");
        require(!(0x2a > 0xffffffffffffffff), "Strings: hex length insufficient");
        uint256 var_e = var_e + 0x60;
        require(!0x2a, "Strings: hex length insufficient");
        require(!(0x02 & (0x14 > 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)), "Strings: hex length insufficient");
        require(!(0x01 > 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7), "Strings: hex length insufficient");
        require(!(0x29 > 0x01), "Strings: hex length insufficient");
        require(!(address(msg.sender)), "Strings: hex length insufficient");
        require(bytes1(address(msg.sender)) < 0x10);
        require(0x29 < var_e.length);
        require(0x29);
    }
    
    /// @custom:selector    0xe985e9c5
    /// @custom:signature   Unresolved_e985e9c5(address arg0) public pure
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    function Unresolved_e985e9c5(address arg0) public pure {
        require(arg0 == (address(arg0)));
    }
    
    /// @custom:selector    0xc87b56dd
    /// @custom:signature   Unresolved_c87b56dd(uint256 arg0) public view
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    function Unresolved_c87b56dd(uint256 arg0) public view {
        require(!(arg0 < unresolved_18160ddd), CustomError_a14c4b50());
        uint256 var_a = arg0;
        require(!(bytes1(storage_map_e[var_a] / 0x0100000000000000000000000000000000000000000000000000000000)), CustomError_a14c4b50());
        if (store_k) {
            if (!(store_k) == ((store_k >> 0x01) < 0x20)) {
                uint256 var_e = var_e + (0x20 + (((0x1f + (store_k >> 0x01)) / 0x20) * 0x20));
                require(bytes1(store_k), CustomError_a14c4b50());
                require(!(bytes1(store_k) == ((store_k >> 0x01) < 0x20)), CustomError_a14c4b50());
                require(bytes1(store_k), CustomError_a14c4b50());
                require(!(bytes1(store_k) == ((store_k >> 0x01) < 0x20)), CustomError_a14c4b50());
                var_a = 0x0f;
                require(!(store_k >> 0x01), CustomError_a14c4b50());
                require(0x1f < (store_k >> 0x01), CustomError_a14c4b50());
                require((0x20 + var_e) + (store_k >> 0x01) > (0x20 + (0x20 + var_e)), CustomError_a14c4b50());
                require(!(0 == var_e.length), CustomError_a14c4b50());
                require(arg0, CustomError_a14c4b50());
                require(!arg0, CustomError_a14c4b50());
                require(!(0 == 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff), CustomError_a14c4b50());
                var_e = var_e + 0x20;
                require(0x0a, CustomError_a14c4b50());
                require(!(0 > 0xffffffffffffffff), CustomError_a14c4b50());
                require(!0, CustomError_a14c4b50());
                require(!arg0, CustomError_a14c4b50());
                require(!(0 < 0x01), CustomError_a14c4b50());
                require(0x0a, CustomError_a14c4b50());
                require(!(0x30 > (~(arg0 % 0x0a))), CustomError_a14c4b50());
                require(0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff < var_e.length, CustomError_a14c4b50());
                require(0x0a, CustomError_a14c4b50());
            }
        }
        require(arg0 < unresolved_18160ddd, CustomError_a14c4b50());
    }
    
    /// @custom:selector    0x819b25ba
    /// @custom:signature   reserve(uint256 arg0) public
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    function reserve(uint256 arg0) public {
        require(msg.sender == (address(owner)), "Ownable: caller is not the owner");
        require(!(unresolved_18160ddd > ~(arg0)), "Number would exceed max supply");
        require(!((unresolved_18160ddd + arg0) > 0x5dc0), "Number would exceed max supply");
        var_b = 0x20;
        uint256 var_g = var_b + var_g;
        require(address(msg.sender));
        require(arg0);
        address var_e = address(msg.sender);
        storage_map_b[var_e] = (0x010000000000000000 * (uint64(arg0 + ((arg0 + (storage_map_b[var_e])) | (uint192(storage_map_b[var_e])) / 0x010000000000000000)))) | (uint64(arg0 + (storage_map_b[var_e])) | (address(storage_map_b[var_e])));
        var_e = unresolved_18160ddd;
        storage_map_b[var_e] = (uint64(block.timestamp) * 0x010000000000000000000000000000000000000000) | (address(msg.sender) | (uint32(storage_map_b[var_e])));
        require(!0x01);
        require(!0x01);
        emit Transfer(0, address(msg.sender), unresolved_18160ddd);
        require(!(unresolved_18160ddd + 0x01) == (arg0 + unresolved_18160ddd));
        unresolved_18160ddd = unresolved_18160ddd + 0x01;
        emit Transfer(0, address(msg.sender), unresolved_18160ddd);
        address var_c = address(msg.sender);
        uint256 var_d = 0;
        require(!0 > var_g.length);
        require(address(msg.sender).code.length);
        (bool success, bytes memory ret0) = address(msg.sender).{ value: var_d ether }Unresolved_150b7a02(var_c); // call
        require(!ret0.length);
        require(var_n);
        var_g = var_g + (uint248(ret0.length + 0x3f));
        require(var_g.length, CustomError_d1a57ed6());
        var_g = var_g + (uint248(ret0.length + 0x1f));
        require(!((var_g + ret0.length) - var_g) < 0x20);
        require(var_g.length == (uint32(var_g.length)));
        require(0x01);
        require(!ret0.length);
        require(var_n);
        var_g = var_g + (uint248(ret0.length + 0x3f));
        require(var_g.length, CustomError_d1a57ed6());
        require(0x150b7a0200000000000000000000000000000000000000000000000000000000 == (uint32(var_g.length)), CustomError_d1a57ed6());
        require(!(0x01 + unresolved_18160ddd) == (arg0 + unresolved_18160ddd));
        require(unresolved_18160ddd == unresolved_18160ddd);
        unresolved_18160ddd = 0x01 + unresolved_18160ddd;
    }
    
    /// @custom:selector    0x8a616bc0
    /// @custom:signature   resetTokenRoyalty(uint256 arg0) public
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    function resetTokenRoyalty(uint256 arg0) public {
        address var_a = address(msg.sender);
        require(bytes1(storage_map_e[var_a]), "Strings: hex length insufficient");
        var_a = arg0;
        storage_map_e[var_a] = 0;
        require(!(0x02 & (0x14 > 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)), "Strings: hex length insufficient");
        require(!(0x02 > 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7), "Strings: hex length insufficient");
        require(!(0x2a > 0xffffffffffffffff), "Strings: hex length insufficient");
        uint256 var_e = var_e + 0x60;
        require(!0x2a, "Strings: hex length insufficient");
        require(!(0x02 & (0x14 > 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)), "Strings: hex length insufficient");
        require(!(0x01 > 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7), "Strings: hex length insufficient");
        require(!(0x29 > 0x01), "Strings: hex length insufficient");
        require(!(address(msg.sender)), "Strings: hex length insufficient");
        require(bytes1(address(msg.sender)) < 0x10);
        require(0x29 < var_e.length);
        require(0x29);
    }
    
    /// @custom:selector    0xffe630b5
    /// @custom:signature   Unresolved_ffe630b5(uint256 arg0) public
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    function Unresolved_ffe630b5(uint256 arg0) public {
        require(!arg0 > 0xffffffffffffffff);
        require(!(arg0 > 0xffffffffffffffff), "Strings: hex length insufficient");
        require(!(((var_c + (uint248(0x3f + (arg0 + 0x1f)))) < var_c) | ((var_c + (uint248(0x3f + (arg0 + 0x1f)))) > 0xffffffffffffffff)), "Strings: hex length insufficient");
        uint256 var_c = var_c + (uint248(0x3f + (arg0 + 0x1f)));
        address var_a = address(msg.sender);
        require(bytes1(storage_map_e[var_a]), "Strings: hex length insufficient");
        require(bytes1(store_d), "Strings: hex length insufficient");
        require(!(bytes1(store_d) == ((store_d >> 0x01) < 0x20)), "Strings: hex length insufficient");
        var_a = 0x0e;
        require(var_c.length, "Strings: hex length insufficient");
        require(0x1f < var_c.length, "Strings: hex length insufficient");
        store_d = 0x01 + (var_c.length + var_c.length);
        require(!var_c.length, "Strings: hex length insufficient");
        require(!(((var_c + 0x20) + var_c.length) > (var_c + 0x20)), "Strings: hex length insufficient");
        require(!(keccak256(var_a) + ((0x1f + (store_d >> 0x01)) / 0x20) > keccak256(var_a)), "Strings: hex length insufficient");
        require(!(0x02 & (0x14 > 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)), "Strings: hex length insufficient");
        require(!(0x02 > 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7), "Strings: hex length insufficient");
        require(!(0x2a > 0xffffffffffffffff), "Strings: hex length insufficient");
        var_c = var_c + 0x60;
        require(!0x2a, "Strings: hex length insufficient");
        require(!(0x02 & (0x14 > 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)), "Strings: hex length insufficient");
        require(!(0x01 > 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7), "Strings: hex length insufficient");
        require(!(0x29 > 0x01), "Strings: hex length insufficient");
        require(!(address(msg.sender)), "Strings: hex length insufficient");
        require(bytes1(address(msg.sender)) < 0x10);
        require(0x29 < var_c.length);
        require(0x29);
    }
    
    /// @custom:selector    0xa22cb465
    /// @custom:signature   Unresolved_a22cb465(address arg0, uint256 arg1) public
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    /// @param              arg1 ["uint256", "bytes32", "int256"]
    function Unresolved_a22cb465(address arg0, uint256 arg1) public {
        require(arg0 == (address(arg0)));
        require(arg1 == arg1);
        require(!(msg.sender == (address(arg0))), CustomError_b06307db());
        var_a = address(arg0);
        storage_map_e[var_a] = arg1 | (uint248(storage_map_e[var_a]));
        emit Event_17307eab(msg.sender, address(arg0), arg1);
    }
    
    /// @custom:selector    0x074ba79d
    /// @custom:signature   amountPurchased(address arg0) public view returns (uint216)
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    function amountPurchased(address arg0) public view returns (uint216) {
        require(arg0 == (address(arg0)));
        address var_a = address(arg0);
        require(price);
        return (uint216(storage_map_e[var_a])) / price;
    }
    
    /// @custom:selector    0xc02bd9a5
    /// @custom:signature   sendAllTokens(address arg0) public
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    function sendAllTokens(address arg0) public {
        require(arg0 == (address(arg0)));
        address var_a = address(msg.sender);
        require(bytes1(storage_map_e[var_a]), "Trying to send more than they purchased.");
        require(price, "Trying to send more than they purchased.");
        require(price, "Trying to send more than they purchased.");
        var_a = address(arg0);
        require(!(uint32(storage_map_e[var_a] / 0x01000000000000000000000000000000000000000000000000000000) > (~(uint216(storage_map_e[var_a]) / price))), "Trying to send more than they purchased.");
        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        require(price, "Trying to send more than they purchased.");
        require(!(uint32(storage_map_e[var_a] / 0x01000000000000000000000000000000000000000000000000000000) + (uint216(storage_map_e[var_a]) / price) > (uint216(storage_map_e[var_a]) / price)), "Trying to send more than they purchased.");
        storage_map_e[var_a] = (uint32((storage_map_e[var_a] / 0x01000000000000000000000000000000000000000000000000000000) + (uint216(storage_map_e[var_a]) / price)) * 0x01000000000000000000000000000000000000000000000000000000) | (uint224(storage_map_e[var_a]));
        require(!(unresolved_18160ddd > (~(uint216(storage_map_e[var_a]) / price))), "Number would exceed max supply");
        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        require(!((unresolved_18160ddd + (uint216(storage_map_e[var_a]) / price)) > 0x5dc0), "Number would exceed max supply");
        var_e = 0x20;
        uint256 var_i = var_e + var_i;
        uint256 var_d = 0;
        require(address(arg0));
        require(uint216(storage_map_e[var_a]) / price);
        var_a = address(arg0);
        storage_map_e[var_a] = (0x010000000000000000 * (uint64((uint216(storage_map_e[var_a]) / price) + ((uint216(storage_map_e[var_a]) / price) + (storage_map_e[var_a]) | (uint192(storage_map_e[var_a])) / 0x010000000000000000)))) | (uint64((uint216(storage_map_e[var_a]) / price) + (storage_map_e[var_a])) | (address(storage_map_e[var_a])));
        var_a = unresolved_18160ddd;
        storage_map_e[var_a] = (uint64(block.timestamp) * 0x010000000000000000000000000000000000000000) | (address(arg0) | (uint32(storage_map_e[var_a])));
        require(!0x01);
        require(!0x01);
        emit Transfer(0, address(arg0), unresolved_18160ddd);
        require(!(unresolved_18160ddd + 0x01) == ((uint216(storage_map_e[var_a]) / price) + unresolved_18160ddd));
        unresolved_18160ddd = unresolved_18160ddd + 0x01;
        emit Transfer(0, address(arg0), unresolved_18160ddd);
        address var_f = address(msg.sender);
        require(!0 > var_i.length);
        require(address(arg0).code.length);
        (bool success, bytes memory ret0) = address(arg0).{ value: var_d ether }Unresolved_150b7a02(var_f); // call
        require(!ret0.length);
        require(var_n);
        var_i = var_i + (uint248(ret0.length + 0x3f));
        require(var_i.length, CustomError_d1a57ed6());
        var_i = var_i + (uint248(ret0.length + 0x1f));
        require(!((var_i + ret0.length) - var_i) < 0x20);
        require(var_i.length == (uint32(var_i.length)));
        require(0x01);
        require(!ret0.length);
        require(var_n);
        var_i = var_i + (uint248(ret0.length + 0x3f));
        require(var_i.length, CustomError_d1a57ed6());
        require(0x150b7a0200000000000000000000000000000000000000000000000000000000 == (uint32(var_i.length)), CustomError_d1a57ed6());
        require(!(0x01 + unresolved_18160ddd) == ((uint216(storage_map_e[var_a]) / price) + unresolved_18160ddd));
        require(unresolved_18160ddd == unresolved_18160ddd);
        unresolved_18160ddd = 0x01 + unresolved_18160ddd;
        require(!(0x02) & (0x14 > 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff));
    }
    
    /// @custom:selector    0xc9edb3cc
    /// @custom:signature   Unresolved_c9edb3cc(uint256 arg0) public
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    function Unresolved_c9edb3cc(uint256 arg0) public {
        require(arg0 == arg0);
        address var_a = address(msg.sender);
        require(bytes1(storage_map_e[var_a]), "Price has been set");
        require(!price, "Price has been set");
        auctionActive = arg0 | (uint248(auctionActive));
        require(!(0x02 & (0x14 > 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)), "Strings: hex length insufficient");
        require(!(0x02 > 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7), "Strings: hex length insufficient");
        require(!(0x2a > 0xffffffffffffffff), "Strings: hex length insufficient");
        uint256 var_h = var_h + 0x60;
        require(!0x2a, "Strings: hex length insufficient");
        require(!(0x02 & (0x14 > 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)), "Strings: hex length insufficient");
        require(!(0x01 > 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7), "Strings: hex length insufficient");
        require(!(0x29 > 0x01), "Strings: hex length insufficient");
        require(!(address(msg.sender)), "Strings: hex length insufficient");
        require(bytes1(address(msg.sender)) < 0x10);
        require(0x29 < var_h.length);
        require(0x29);
    }
    
    /// @custom:selector    0x6352211e
    /// @custom:signature   Unresolved_6352211e(uint256 arg0) public view returns (address)
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    function Unresolved_6352211e(uint256 arg0) public view returns (address) {
        require(!(arg0 < unresolved_18160ddd), CustomError_df2d9b42());
        uint256 var_e = arg0;
        var_a = var_a + 0x60;
        require(!(!bytes1(storage_map_b[var_e] / 0x0100000000000000000000000000000000000000000000000000000000)), CustomError_df2d9b42());
        require(!(address(var_a.length)), CustomError_df2d9b42());
        return address(var_a.length);
        var_e = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + arg0;
        var_a = var_a + 0x60;
        require(!(address(storage_map_b[var_e])), CustomError_df2d9b42());
        return address(var_a.length);
        var_e = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + arg0);
        var_a = var_a + 0x60;
        require(!(address(storage_map_b[var_e])), CustomError_df2d9b42());
        return address(var_a.length);
        var_e = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + arg0));
        var_a = var_a + 0x60;
        require(!(address(storage_map_b[var_e])), CustomError_df2d9b42());
        return address(var_a.length);
        var_e = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + arg0)));
        var_a = var_a + 0x60;
        require(!(address(storage_map_b[var_e])), CustomError_df2d9b42());
        return address(var_a.length);
        var_e = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + arg0))));
        var_a = var_a + 0x60;
        require(!(address(storage_map_b[var_e])), CustomError_df2d9b42());
        return address(var_a.length);
        var_e = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + arg0)))));
        var_a = var_a + 0x60;
        require(!(address(storage_map_b[var_e])), CustomError_df2d9b42());
        return address(var_a.length);
        var_e = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + arg0))))));
        var_a = var_a + 0x60;
        require(!(address(storage_map_b[var_e])), CustomError_df2d9b42());
        return address(var_a.length);
        var_e = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + arg0)))))));
        var_a = var_a + 0x60;
        require(!(address(storage_map_b[var_e])), CustomError_df2d9b42());
        return address(var_a.length);
        var_e = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + arg0))))))));
        var_a = var_a + 0x60;
        require(!(address(storage_map_b[var_e])), CustomError_df2d9b42());
        return address(var_a.length);
        var_e = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + arg0)))))))));
        var_a = var_a + 0x60;
        require(!(address(storage_map_b[var_e])), CustomError_df2d9b42());
        return address(var_a.length);
    }
    
    /// @custom:selector    0x06fdde03
    /// @custom:signature   Unresolved_06fdde03() public view returns (string memory)
    function Unresolved_06fdde03() public view returns (string memory) {
        if (store_l) {
            if (!(store_l) == ((store_l >> 0x01) < 0x20)) {
                uint256 var_c = var_c + (0x20 + (((0x1f + (store_l >> 0x01)) / 0x20) * 0x20));
                if (store_l) {
                    if (!(store_l) == ((store_l >> 0x01) < 0x20)) {
                        if (!store_l >> 0x01) {
                            if (0x1f < (store_l >> 0x01)) {
                                var_a = 0x02;
                                if ((0x20 + var_c) + (store_l >> 0x01) > (0x20 + (0x20 + var_c))) {
                                    if (!0 > var_c.length) {
                                        return abi.encodePacked(0x20, var_c.length);
                                        return abi.encodePacked(0x20, var_c.length);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    
    /// @custom:selector    0x01ffc9a7
    /// @custom:signature   Unresolved_01ffc9a7(uint32 arg0) public pure returns (bool)
    /// @param              arg0 ["uint32", "bytes4", "int32"]
    function Unresolved_01ffc9a7(uint32 arg0) public pure returns (bool) {
        require(arg0 == (uint32(arg0)));
        require(0x7965db0b00000000000000000000000000000000000000000000000000000000 == (uint32(arg0)));
        return !(!0x7965db0b00000000000000000000000000000000000000000000000000000000 == (uint32(arg0)));
        require(0x2a55205a00000000000000000000000000000000000000000000000000000000 == (uint32(arg0)));
        return !(!0x2a55205a00000000000000000000000000000000000000000000000000000000 == (uint32(arg0)));
        require(0x80ac58cd00000000000000000000000000000000000000000000000000000000 == (uint32(arg0)));
        require(0x80ac58cd00000000000000000000000000000000000000000000000000000000 == (uint32(arg0)));
        return !(!0x80ac58cd00000000000000000000000000000000000000000000000000000000 == (uint32(arg0)));
        return !(!(uint32(arg0)) == 0x01ffc9a700000000000000000000000000000000000000000000000000000000);
    }
    
    /// @custom:selector    0xc8910913
    /// @custom:signature   userData(address arg0) public view returns (bool)
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    function userData(address arg0) public view returns (bool) {
        require(arg0 == (address(arg0)));
        address var_b = arg0;
        return abi.encodePacked(uint216(storage_map_m[var_b]), uint32(storage_map_m[var_b] / 0x01000000000000000000000000000000000000000000000000000000), (bytes1(storage_map_m[var_b] / 0x0100000000000000000000000000000000000000000000000000000000000000)));
    }
    
    /// @custom:selector    0x95d89b41
    /// @custom:signature   Unresolved_95d89b41() public view returns (string memory)
    function Unresolved_95d89b41() public view returns (string memory) {
        if (store_n) {
            if (!(store_n) == ((store_n >> 0x01) < 0x20)) {
                uint256 var_c = var_c + (0x20 + (((0x1f + (store_n >> 0x01)) / 0x20) * 0x20));
                if (store_n) {
                    if (!(store_n) == ((store_n >> 0x01) < 0x20)) {
                        if (!store_n >> 0x01) {
                            if (0x1f < (store_n >> 0x01)) {
                                var_a = 0x03;
                                if ((0x20 + var_c) + (store_n >> 0x01) > (0x20 + (0x20 + var_c))) {
                                    if (!0 > var_c.length) {
                                        return abi.encodePacked(0x20, var_c.length);
                                        return abi.encodePacked(0x20, var_c.length);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    
    /// @custom:selector    0xdb422e0b
    /// @custom:signature   sendTokensAndRefund(address arg0) public
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    function sendTokensAndRefund(address arg0) public {
        require(arg0 == (address(arg0)));
        address var_a = address(msg.sender);
        require(bytes1(storage_map_e[var_a]), "ReentrancyGuard: reentrant call");
        require(!(store_h == 0x02), "ReentrancyGuard: reentrant call");
        store_h = 0x02;
        require(price, "Already sent refunds to this address.");
        var_a = address(arg0);
        require(!(bytes1(storage_map_e[var_a] / 0x0100000000000000000000000000000000000000000000000000000000000000)), "Already sent refunds to this address.");
        storage_map_e[var_a] = 0x0100000000000000000000000000000000000000000000000000000000000000 | (uint248(storage_map_e[var_a]));
        require(price, "Refund failed.");
        (bool success, bytes memory ret0) = address(arg0).transfer(uint216(storage_map_e[var_a]) % price);
        require(ret0.length == 0, "Refund failed.");
        require(price, "Already sent tokens to this address.");
        require(!(uint216(storage_map_e[var_a]) / price), "Already sent tokens to this address.");
        require(!(uint32(storage_map_e[var_a] / 0x01000000000000000000000000000000000000000000000000000000)), "Already sent tokens to this address.");
        storage_map_e[var_a] = (uint32(uint216(storage_map_e[var_a]) / price) * 0x01000000000000000000000000000000000000000000000000000000) | (uint224(storage_map_e[var_a]));
        require(!(unresolved_18160ddd > (~(uint216(storage_map_e[var_a]) / price))), "Number would exceed max supply");
        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        require(!((unresolved_18160ddd + (uint216(storage_map_e[var_a]) / price)) > 0x5dc0), "Number would exceed max supply");
        var_d = 0x20;
        uint256 var_i = var_d + var_i;
        require(address(arg0));
        require(uint216(storage_map_e[var_a]) / price);
        var_a = address(arg0);
        storage_map_e[var_a] = (0x010000000000000000 * (uint64((uint216(storage_map_e[var_a]) / price) + ((uint216(storage_map_e[var_a]) / price) + (storage_map_e[var_a]) | (uint192(storage_map_e[var_a])) / 0x010000000000000000)))) | (uint64((uint216(storage_map_e[var_a]) / price) + (storage_map_e[var_a])) | (address(storage_map_e[var_a])));
        var_a = unresolved_18160ddd;
        storage_map_e[var_a] = (uint64(block.timestamp) * 0x010000000000000000000000000000000000000000) | (address(arg0) | (uint32(storage_map_e[var_a])));
        require(!0x01);
        require(!0x01);
        emit Transfer(0, address(arg0), unresolved_18160ddd);
        require(!(unresolved_18160ddd + 0x01) == ((uint216(storage_map_e[var_a]) / price) + unresolved_18160ddd));
        unresolved_18160ddd = unresolved_18160ddd + 0x01;
        store_h = 0x01;
        emit Transfer(0, address(arg0), unresolved_18160ddd);
        address var_e = address(msg.sender);
        uint256 var_f = 0;
        require(!0 > var_i.length);
        require(address(arg0).code.length);
        (bool success, bytes memory ret0) = address(arg0).{ value: var_f ether }Unresolved_150b7a02(var_e); // call
        require(!ret0.length);
        require(var_n);
        var_i = var_i + (uint248(ret0.length + 0x3f));
        require(var_i.length, CustomError_d1a57ed6());
        var_i = var_i + (uint248(ret0.length + 0x1f));
        require(!((var_i + ret0.length) - var_i) < 0x20);
        require(var_i.length == (uint32(var_i.length)));
        require(0x01);
        require(!ret0.length);
        require(var_n);
        var_i = var_i + (uint248(ret0.length + 0x3f));
        require(var_i.length, CustomError_d1a57ed6());
        require(0x150b7a0200000000000000000000000000000000000000000000000000000000 == (uint32(var_i.length)), CustomError_d1a57ed6());
        require(!(0x01 + unresolved_18160ddd) == ((uint216(storage_map_e[var_a]) / price) + unresolved_18160ddd));
        require(unresolved_18160ddd == unresolved_18160ddd);
        unresolved_18160ddd = store_h + unresolved_18160ddd;
        store_h = 0x01;
        store_h = 0x01;
        require(!(0x02) & (0x14 > 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff));
    }
    
    /// @custom:selector    0xb88d4fde
    /// @custom:signature   Unresolved_b88d4fde(address arg0) public pure
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    function Unresolved_b88d4fde(address arg0) public pure {
        require(arg0 == (address(arg0)));
    }
    
    /// @custom:selector    0x081812fc
    /// @custom:signature   Unresolved_081812fc(uint256 arg0) public view returns (address)
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    function Unresolved_081812fc(uint256 arg0) public view returns (address) {
        require(!(arg0 < unresolved_18160ddd), CustomError_cf4700e4());
        uint256 var_a = arg0;
        require(!(bytes1(storage_map_e[var_a] / 0x0100000000000000000000000000000000000000000000000000000000)), CustomError_cf4700e4());
        var_a = arg0;
        return address(storage_map_e[var_a]);
        require(arg0 < unresolved_18160ddd, CustomError_cf4700e4());
        var_a = arg0;
        return address(storage_map_e[var_a]);
    }
    
    /// @custom:selector    0x04634d8d
    /// @custom:signature   setDefaultRoyalty(address arg0, uint96 arg1) public
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    /// @param              arg1 ["uint96", "bytes12", "int96"]
    function setDefaultRoyalty(address arg0, uint96 arg1) public {
        require(arg0 == (address(arg0)));
        require(arg1 == (uint96(arg1)));
        address var_a = address(msg.sender);
        require(bytes1(storage_map_e[var_a]), "ERC2981: royalty fee will exceed salePrice");
        require(!(uint96(arg1) > 0x2710), "ERC2981: royalty fee will exceed salePrice");
        require(address(arg0), "ERC2981: invalid receiver");
        store_o = (uint96(arg1) * 0x010000000000000000000000000000000000000000) | (address(arg0));
        require(!(0x02 & (0x14 > 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)), "Strings: hex length insufficient");
        require(!(0x02 > 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7), "Strings: hex length insufficient");
        require(!(0x2a > 0xffffffffffffffff), "Strings: hex length insufficient");
        var_h = var_h + 0x60;
        require(!0x2a, "Strings: hex length insufficient");
        require(!(0x02 & (0x14 > 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)), "Strings: hex length insufficient");
        require(!(0x01 > 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7), "Strings: hex length insufficient");
        require(!(0x29 > 0x01), "Strings: hex length insufficient");
        require(!(address(msg.sender)), "Strings: hex length insufficient");
        require(bytes1(address(msg.sender)) < 0x10);
        require(0x29 < var_h.length);
        require(0x29);
    }
    
    /// @custom:selector    0xdba3e704
    /// @custom:signature   setMinimumContribution(uint256 arg0) public
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    function setMinimumContribution(uint256 arg0) public {
        address var_a = address(msg.sender);
        require(bytes1(storage_map_e[var_a]), "Strings: hex length insufficient");
        minimumContribution = arg0;
        require(!(0x02 & (0x14 > 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)), "Strings: hex length insufficient");
        require(!(0x02 > 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7), "Strings: hex length insufficient");
        require(!(0x2a > 0xffffffffffffffff), "Strings: hex length insufficient");
        uint256 var_e = var_e + 0x60;
        require(!0x2a, "Strings: hex length insufficient");
        require(!(0x02 & (0x14 > 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)), "Strings: hex length insufficient");
        require(!(0x01 > 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7), "Strings: hex length insufficient");
        require(!(0x29 > 0x01), "Strings: hex length insufficient");
        require(!(address(msg.sender)), "Strings: hex length insufficient");
        require(bytes1(address(msg.sender)) < 0x10);
        require(0x29 < var_e.length);
        require(0x29);
    }
    
    /// @custom:selector    0x36568abe
    /// @custom:signature   renounceRole(bytes32 arg0, address arg1) public
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    /// @param              arg1 ["address", "uint160", "bytes20", "int160"]
    function renounceRole(bytes32 arg0, address arg1) public {
        require(arg1 == (address(arg1)));
        require(msg.sender == (address(arg1)), "AccessControl: can only renounce roles for self");
        var_f = address(arg1);
        require(!bytes1(storage_map_q[var_f]));
        var_f = address(arg1);
        storage_map_q[var_f] = uint248(storage_map_q[var_f]);
        emit RoleRevoked(arg0, address(arg1), msg.sender);
    }
    
    /// @custom:selector    0xf2fde38b
    /// @custom:signature   transferOwnership(address arg0) public
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    function transferOwnership(address arg0) public {
        require(arg0 == (address(arg0)));
        require(msg.sender == (address(owner)), "Ownable: caller is not the owner");
        require(address(arg0), "Ownable: new owner is the zero address");
        owner = (address(arg0)) | (uint96(owner));
        emit OwnershipTransferred(address(owner), address(arg0));
    }
    
    /// @custom:selector    0x70a08231
    /// @custom:signature   Unresolved_70a08231(address arg0) public view returns (uint64)
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    function Unresolved_70a08231(address arg0) public view returns (uint64) {
        require(arg0 == (address(arg0)));
        require(address(arg0), CustomError_8f4eb604());
        address var_a = address(arg0);
        return uint64(storage_map_e[var_a]);
    }
    
    /// @custom:selector    0x2a55205a
    /// @custom:signature   royaltyInfo(uint256 arg0, uint256 arg1) public view returns (bytes memory)
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    /// @param              arg1 ["uint256", "bytes32", "int256"]
    function royaltyInfo(uint256 arg0, uint256 arg1) public view returns (bytes memory) {
        uint256 var_a = arg0;
        uint256 var_c = 0x40 + var_c;
        require(address(storage_map_e[var_a]));
        require(!(arg1) & (uint96(var_f) > (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff / arg1)));
        require(0x2710);
        return abi.encodePacked(address(var_c.length), (arg1 * (uint96(var_j))) / 0x2710);
    }
    
    /// @custom:selector    0x42842e0e
    /// @custom:signature   Unresolved_42842e0e(address arg0) public pure
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    function Unresolved_42842e0e(address arg0) public pure {
        require(arg0 == (address(arg0)));
    }
    
    /// @custom:selector    0x23b872dd
    /// @custom:signature   Unresolved_23b872dd(address arg0) public pure
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    function Unresolved_23b872dd(address arg0) public pure {
        require(arg0 == (address(arg0)));
    }
    
    /// @custom:selector    0xaa1b103f
    /// @custom:signature   deleteDefaultRoyalty() public
    function deleteDefaultRoyalty() public {
        address var_a = address(msg.sender);
        require(bytes1(storage_map_e[var_a]), "Strings: hex length insufficient");
        store_o = 0;
        require(!(0x02 & (0x14 > 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)), "Strings: hex length insufficient");
        require(!(0x02 > 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7), "Strings: hex length insufficient");
        require(!(0x2a > 0xffffffffffffffff), "Strings: hex length insufficient");
        uint256 var_e = var_e + 0x60;
        require(!0x2a, "Strings: hex length insufficient");
        require(!(0x02 & (0x14 > 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)), "Strings: hex length insufficient");
        require(!(0x01 > 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7), "Strings: hex length insufficient");
        require(!(0x29 > 0x01), "Strings: hex length insufficient");
        require(!(address(msg.sender)), "Strings: hex length insufficient");
        if (address(msg.sender) < 0x10) {
            if (0x29 < var_e.length) {
                if (0x29) {
                }
            }
        }
    }
    
    /// @custom:selector    0x5944c753
    /// @custom:signature   setTokenRoyalty(uint256 arg0, address arg1, uint96 arg2) public
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    /// @param              arg1 ["address", "uint160", "bytes20", "int160"]
    /// @param              arg2 ["uint96", "bytes12", "int96"]
    function setTokenRoyalty(uint256 arg0, address arg1, uint96 arg2) public {
        require(arg1 == (address(arg1)));
        require(arg2 == (uint96(arg2)));
        address var_a = address(msg.sender);
        require(bytes1(storage_map_e[var_a]), "ERC2981: royalty fee will exceed salePrice");
        require(!(uint96(arg2) > 0x2710), "ERC2981: royalty fee will exceed salePrice");
        require(address(arg1), "ERC2981: Invalid parameters");
        uint256 var_h = 0x40 + var_h;
        var_a = arg0;
        storage_map_e[var_a] = (address(var_h.length)) | (0x010000000000000000000000000000000000000000 * (uint96(var_j)));
        require(!(0x02 & (0x14 > 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)), "Strings: hex length insufficient");
        require(!(0x02 > 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7), "Strings: hex length insufficient");
        require(!(0x2a > 0xffffffffffffffff), "Strings: hex length insufficient");
        var_h = var_h + 0x60;
        require(!0x2a, "Strings: hex length insufficient");
        require(!(0x02 & (0x14 > 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)), "Strings: hex length insufficient");
        require(!(0x01 > 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7), "Strings: hex length insufficient");
        require(!(0x29 > 0x01), "Strings: hex length insufficient");
        require(!(address(msg.sender)), "Strings: hex length insufficient");
        require(bytes1(address(msg.sender)) < 0x10);
        require(0x29 < var_h.length);
        require(0x29);
    }
    
    /// @custom:selector    0x42966c68
    /// @custom:signature   Unresolved_42966c68(uint256 arg0) public
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    function Unresolved_42966c68(uint256 arg0) public {
        uint256 var_c = 0;
        require(!(arg0 < unresolved_18160ddd), CustomError_df2d9b42());
        uint256 var_e = arg0;
        var_a = var_a + 0x60;
        require(!(!bytes1(storage_map_b[var_e] / 0x0100000000000000000000000000000000000000000000000000000000)), CustomError_df2d9b42());
        require(!(address(var_a.length)), CustomError_59c896be());
        require(!0x01, CustomError_59c896be());
        var_e = arg0;
        storage_map_b[var_e] = var_c | (uint96(storage_map_b[var_e]));
        emit Event_8c5be1e5(address(var_a.length), 0, arg0);
        var_e = address(var_a.length);
        storage_map_b[var_e] = (address(storage_map_b[var_e]) | (uint64(storage_map_b[var_e] + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))) | (0x0100000000000000000000000000000000 * (uint64(0x01 + ((storage_map_b[var_e] + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) | (uint192(storage_map_b[var_e])) / 0x0100000000000000000000000000000000))));
        var_e = arg0;
        storage_map_b[var_e] = 0x0100000000000000000000000000000000000000000000000000000000 | (uint248(address(var_a.length) | (uint32(storage_map_b[var_e])) | (0x010000000000000000000000000000000000000000 * (uint64(block.timestamp)))));
        var_e = arg0 + 0x01;
        require(address(storage_map_b[var_e]), CustomError_59c896be());
        emit Transfer(address(var_a.length), 0, arg0);
        store_c = 0x01 + store_c;
        var_e = arg0;
        storage_map_b[var_e] = 0;
        require((arg0 + 0x01) == unresolved_18160ddd, CustomError_59c896be());
        emit Transfer(address(var_a.length), 0, arg0);
        store_c = 0x01 + store_c;
        var_e = arg0;
        storage_map_b[var_e] = 0;
        storage_map_b[var_e] = (address(var_a.length) | (uint32(storage_map_b[var_e]))) | (0x010000000000000000000000000000000000000000 * (uint64(var_k)));
        emit Transfer(address(var_a.length), 0, arg0);
        store_c = 0x01 + store_c;
        var_e = arg0;
        storage_map_b[var_e] = 0;
        require(address(var_a.length) == msg.sender, CustomError_59c896be());
        var_e = address(msg.sender);
        require(bytes1(storage_map_b[var_e]), CustomError_59c896be());
        require(bytes1(storage_map_b[var_e]), CustomError_59c896be());
        require(!(arg0 < unresolved_18160ddd), CustomError_cf4700e4());
        var_e = arg0;
        require(!(bytes1(storage_map_b[var_e] / 0x0100000000000000000000000000000000000000000000000000000000)), CustomError_cf4700e4());
        var_e = arg0;
        require(address(storage_map_b[var_e]) == msg.sender, CustomError_59c896be());
        require(arg0 < unresolved_18160ddd, CustomError_cf4700e4());
        if (address(var_a.length) == msg.sender) {
        }
        var_e = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + arg0;
        var_a = var_a + 0x60;
        if (!address(storage_map_b[var_e])) {
            if (!0x01) {
                var_e = arg0;
                storage_map_b[var_e] = var_c | (uint96(storage_map_b[var_e]));
                emit Event_8c5be1e5(address(var_a.length), 0, arg0);
                var_e = address(var_a.length);
                storage_map_b[var_e] = (address(storage_map_b[var_e]) | (uint64(storage_map_b[var_e] + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff))) | (0x0100000000000000000000000000000000 * (uint64(0x01 + ((storage_map_b[var_e] + 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff) | (uint192(storage_map_b[var_e])) / 0x0100000000000000000000000000000000))));
                var_e = arg0;
                storage_map_b[var_e] = 0x0100000000000000000000000000000000000000000000000000000000 | (uint248(address(var_a.length) | (uint32(storage_map_b[var_e])) | (0x010000000000000000000000000000000000000000 * (uint64(block.timestamp)))));
                var_e = arg0 + 0x01;
                if (address(storage_map_b[var_e])) {
                    emit Transfer(address(var_a.length), 0, arg0);
                    store_c = 0x01 + store_c;
                    var_e = arg0;
                    storage_map_b[var_e] = 0;
                    if ((arg0 + 0x01) == unresolved_18160ddd) {
                        emit Transfer(address(var_a.length), 0, arg0);
                        store_c = 0x01 + store_c;
                        var_e = arg0;
                        storage_map_b[var_e] = 0;
                        storage_map_b[var_e] = (address(var_a.length) | (uint32(storage_map_b[var_e]))) | (0x010000000000000000000000000000000000000000 * (uint64(var_k)));
                        emit Transfer(address(var_a.length), 0, arg0);
                        store_c = 0x01 + store_c;
                        var_e = arg0;
                        storage_map_b[var_e] = 0;
                        var_e = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + arg0);
                        if (!address(storage_map_b[var_e])) {
                            if (!0x01) {
                            }
                            var_e = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + arg0));
                            require(address(storage_map_b[var_e]), CustomError_df2d9b42());
                            require((arg0 + 0x01) == unresolved_18160ddd, CustomError_df2d9b42());
                        }
                        var_e = 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + (0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff + arg0)));
                        require(!0x01, CustomError_df2d9b42());
                    }
                }
            }
        }
    }
    
    /// @custom:selector    0x05ab421d
    /// @custom:signature   sendTokens(address arg0, uint256 arg1) public
    /// @param              arg0 ["address", "uint160", "bytes20", "int160"]
    /// @param              arg1 ["uint256", "bytes32", "int256"]
    function sendTokens(address arg0, uint256 arg1) public {
        require(arg0 == (address(arg0)));
        address var_a = address(msg.sender);
        require(bytes1(storage_map_e[var_a]), "Trying to send more than they purchased.");
        require(price, "Trying to send more than they purchased.");
        var_a = address(arg0);
        require(!(uint32(storage_map_e[var_a] / 0x01000000000000000000000000000000000000000000000000000000) > ~(arg1)), "Trying to send more than they purchased.");
        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        require(price, "Trying to send more than they purchased.");
        require(!((uint32(storage_map_e[var_a] / 0x01000000000000000000000000000000000000000000000000000000) + arg1) > (uint216(storage_map_e[var_a]) / price)), "Trying to send more than they purchased.");
        storage_map_e[var_a] = (uint32((storage_map_e[var_a] / 0x01000000000000000000000000000000000000000000000000000000) + arg1) * 0x01000000000000000000000000000000000000000000000000000000) | (uint224(storage_map_e[var_a]));
        require(!(unresolved_18160ddd > ~(arg1)), "Number would exceed max supply");
        require(!((unresolved_18160ddd + arg1) > 0x5dc0), "Number would exceed max supply");
        var_e = 0x20;
        uint256 var_i = var_e + var_i;
        uint256 var_d = 0;
        require(address(arg0));
        require(arg1);
        var_a = address(arg0);
        storage_map_e[var_a] = (0x010000000000000000 * (uint64(arg1 + ((arg1 + (storage_map_e[var_a])) | (uint192(storage_map_e[var_a])) / 0x010000000000000000)))) | (uint64(arg1 + (storage_map_e[var_a])) | (address(storage_map_e[var_a])));
        var_a = unresolved_18160ddd;
        storage_map_e[var_a] = (uint64(block.timestamp) * 0x010000000000000000000000000000000000000000) | (address(arg0) | (uint32(storage_map_e[var_a])));
        require(!0x01);
        require(!0x01);
        emit Transfer(0, address(arg0), unresolved_18160ddd);
        require(!(unresolved_18160ddd + 0x01) == (arg1 + unresolved_18160ddd));
        unresolved_18160ddd = unresolved_18160ddd + 0x01;
        emit Transfer(0, address(arg0), unresolved_18160ddd);
        address var_f = address(msg.sender);
        require(!0 > var_i.length);
        require(address(arg0).code.length);
        (bool success, bytes memory ret0) = address(arg0).{ value: var_d ether }Unresolved_150b7a02(var_f); // call
        require(!ret0.length);
        require(var_n);
        var_i = var_i + (uint248(ret0.length + 0x3f));
        require(var_i.length, CustomError_d1a57ed6());
        var_i = var_i + (uint248(ret0.length + 0x1f));
        require(!((var_i + ret0.length) - var_i) < 0x20);
        require(var_i.length == (uint32(var_i.length)));
        require(0x01);
        require(!ret0.length);
        require(var_n);
        var_i = var_i + (uint248(ret0.length + 0x3f));
        require(var_i.length, CustomError_d1a57ed6());
        require(0x150b7a0200000000000000000000000000000000000000000000000000000000 == (uint32(var_i.length)), CustomError_d1a57ed6());
        require(!(0x01 + unresolved_18160ddd) == (arg1 + unresolved_18160ddd));
        require(unresolved_18160ddd == unresolved_18160ddd);
        unresolved_18160ddd = 0x01 + unresolved_18160ddd;
        require(!(0x02) & (0x14 > 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff));
    }
    
    /// @custom:selector    0xa718cd4e
    /// @custom:signature   Unresolved_a718cd4e(uint256 arg0, address arg1) public
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    /// @param              arg1 ["address", "uint160", "bytes20", "int160"]
    function Unresolved_a718cd4e(uint256 arg0, address arg1) public {
        require(!arg0 > 0xffffffffffffffff);
        require(!(arg0) > 0xffffffffffffffff);
        address var_a = address(msg.sender);
        require(bytes1(storage_map_e[var_a]));
        require(!0 < (arg0));
        require(0 < (arg0));
        require(!(((0 + (0x20 + (0x04 + arg0))) + 0x20) - (0 + (0x20 + (0x04 + arg0)))) < 0x20);
        require((0 + (0x20 + (arg0))) == (address(0 + (0x20 + (arg0)))));
        var_a = address(msg.sender);
        require(bytes1(storage_map_e[var_a]), "ReentrancyGuard: reentrant call");
        require(!(store_h == 0x02), "ReentrancyGuard: reentrant call");
        store_h = 0x02;
        require(price, "Address has already claimed their refund.");
        var_a = address(0 + (0x20 + (arg0)));
        require(!(bytes1(storage_map_e[var_a] / 0x0100000000000000000000000000000000000000000000000000000000000000)), "Address has already claimed their refund.");
        storage_map_e[var_a] = 0x0100000000000000000000000000000000000000000000000000000000000000 | (uint248(storage_map_e[var_a]));
        require(price, "Refund failed.");
        (bool success, bytes memory ret0) = address(0 + (0x20 + (arg0))).transfer(uint216(storage_map_e[var_a]) % price);
        require(ret0.length == 0, "Refund failed.");
        store_h = 0x01;
        require(!(0 == 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff), "Price has not been set");
        require(!(0x02 & (0x14 > 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)), "Strings: hex length insufficient");
        require(!(0x02 > 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7), "Strings: hex length insufficient");
        require(!(0x2a > 0xffffffffffffffff), "Strings: hex length insufficient");
        uint256 var_i = var_i + 0x60;
        require(!0x2a, "Strings: hex length insufficient");
        require(!(0x02 & (0x14 > 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)), "Strings: hex length insufficient");
        require(!(0x01 > 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7), "Strings: hex length insufficient");
        require(!(0x29 > 0x01), "Strings: hex length insufficient");
        require(!(address(msg.sender)), "Strings: hex length insufficient");
        require(bytes1(address(msg.sender)) < 0x10);
        require(0x29 < var_i.length);
        require(0x29);
    }
    
    /// @custom:selector    0x91b7f5ed
    /// @custom:signature   setPrice(uint256 arg0) public
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    function setPrice(uint256 arg0) public {
        address var_a = address(msg.sender);
        require(bytes1(storage_map_e[var_a]), "Users can still add bids");
        require(!(bytes1(auctionActive)), "Users can still add bids");
        price = arg0;
        require(!(0x02 & (0x14 > 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)), "Strings: hex length insufficient");
        require(!(0x02 > 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7), "Strings: hex length insufficient");
        require(!(0x2a > 0xffffffffffffffff), "Strings: hex length insufficient");
        uint256 var_h = var_h + 0x60;
        require(!0x2a, "Strings: hex length insufficient");
        require(!(0x02 & (0x14 > 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff)), "Strings: hex length insufficient");
        require(!(0x01 > 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd7), "Strings: hex length insufficient");
        require(!(0x29 > 0x01), "Strings: hex length insufficient");
        require(!(address(msg.sender)), "Strings: hex length insufficient");
        require(bytes1(address(msg.sender)) < 0x10);
        require(0x29 < var_h.length);
        require(0x29);
    }
    
    /// @custom:selector    0x5b910336
    /// @custom:signature   Unresolved_5b910336(uint256 arg0, address arg1) public
    /// @param              arg0 ["uint256", "bytes32", "int256"]
    /// @param              arg1 ["address", "uint160", "bytes20", "int160"]
    function Unresolved_5b910336(uint256 arg0, address arg1) public {
        require(!arg0 > 0xffffffffffffffff);
        require(!(arg0) > 0xffffffffffffffff);
        address var_a = address(msg.sender);
        require(bytes1(storage_map_e[var_a]));
        require(!0 < (arg0));
        require(0 < (arg0));
        require(!(((0 + (0x20 + (0x04 + arg0))) + 0x20) - (0 + (0x20 + (0x04 + arg0)))) < 0x20);
        require((0 + (0x20 + (arg0))) == (address(0 + (0x20 + (arg0)))));
        require(0 < (arg0));
        require(!(((0 + (0x20 + (0x04 + arg0))) + 0x20) - (0 + (0x20 + (0x04 + arg0)))) < 0x20);
        require((0 + (0x20 + (arg0))) == (address(0 + (0x20 + (arg0)))));
        require(price, "Trying to send more than they purchased.");
        require(price, "Trying to send more than they purchased.");
        var_a = address(0 + (0x20 + (arg0)));
        require(!(uint32(storage_map_e[var_a] / 0x01000000000000000000000000000000000000000000000000000000) > (~(uint216(storage_map_e[var_a]) / price))), "Trying to send more than they purchased.");
        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        require(price, "Trying to send more than they purchased.");
        require(!(uint32(storage_map_e[var_a] / 0x01000000000000000000000000000000000000000000000000000000) + (uint216(storage_map_e[var_a]) / price) > (uint216(storage_map_e[var_a]) / price)), "Trying to send more than they purchased.");
        storage_map_e[var_a] = (uint32((storage_map_e[var_a] / 0x01000000000000000000000000000000000000000000000000000000) + (uint216(storage_map_e[var_a]) / price)) * 0x01000000000000000000000000000000000000000000000000000000) | (uint224(storage_map_e[var_a]));
        require(!(unresolved_18160ddd > (~(uint216(storage_map_e[var_a]) / price))), "Number would exceed max supply");
        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        require(!((unresolved_18160ddd + (uint216(storage_map_e[var_a]) / price)) > 0x5dc0), "Number would exceed max supply");
        var_e = 0x20;
        uint256 var_i = var_e + var_i;
        uint256 var_d = 0;
        require(address(0 + (0x20 + (arg0))));
        require(uint216(storage_map_e[var_a]) / price);
        var_a = address(0 + (0x20 + (arg0)));
        storage_map_e[var_a] = (0x010000000000000000 * (uint64((uint216(storage_map_e[var_a]) / price) + ((uint216(storage_map_e[var_a]) / price) + (storage_map_e[var_a]) | (uint192(storage_map_e[var_a])) / 0x010000000000000000)))) | (uint64((uint216(storage_map_e[var_a]) / price) + (storage_map_e[var_a])) | (address(storage_map_e[var_a])));
        var_a = unresolved_18160ddd;
        storage_map_e[var_a] = (uint64(block.timestamp) * 0x010000000000000000000000000000000000000000) | (address(0 + (0x20 + (arg0))) | (uint32(storage_map_e[var_a])));
        require(!0x01);
        require(!0x01);
        emit Transfer(0, address(0 + (0x20 + (arg0))), unresolved_18160ddd);
        require(!(unresolved_18160ddd + 0x01) == ((uint216(storage_map_e[var_a]) / price) + unresolved_18160ddd));
        unresolved_18160ddd = unresolved_18160ddd + 0x01;
        require(!0 == 0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff);
        var_a = 0x4e487b7100000000000000000000000000000000000000000000000000000000;
        emit Transfer(0, address(0 + (0x20 + (arg0))), unresolved_18160ddd);
        address var_f = address(msg.sender);
        require(!0 > var_i.length);
        require(address(0 + (0x20 + (arg0))).code.length);
        (bool success, bytes memory ret0) = address(0 + (0x20 + (arg0))).{ value: var_d ether }Unresolved_150b7a02(var_f); // call
        require(!ret0.length);
        require(var_n);
        var_i = var_i + (uint248(ret0.length + 0x3f));
        require(var_i.length, CustomError_d1a57ed6());
        var_i = var_i + (uint248(ret0.length + 0x1f));
        require(!((var_i + ret0.length) - var_i) < 0x20);
        require(var_i.length == (uint32(var_i.length)));
        require(0x01);
        require(!ret0.length);
        require(var_n);
        var_i = var_i + (uint248(ret0.length + 0x3f));
        require(var_i.length, CustomError_d1a57ed6());
        require(0x150b7a0200000000000000000000000000000000000000000000000000000000 == (uint32(var_i.length)), CustomError_d1a57ed6());
        require(!(0x01 + unresolved_18160ddd) == ((uint216(storage_map_e[var_a]) / price) + unresolved_18160ddd));
        require(unresolved_18160ddd == unresolved_18160ddd);
        require(!(0x02) & (0x14 > 0x7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff));
    }
    
    /// @custom:selector    0x1998aeef
    /// @custom:signature   bid() public payable
    function bid() public payable {
        require(bytes1(auctionActive), "Lower than min bid amount");
        address var_a = msg.sender;
        require(!((msg.value + (uint216(storage_map_e[var_a]))) < minimumContribution), "Lower than min bid amount");
        storage_map_e[var_a] = (uint216(msg.value + (storage_map_e[var_a]))) | (uint40(storage_map_e[var_a]));
        uint256 var_g = msg.value;
        emit Bid(msg.sender, msg.value, var_g + (uint216(storage_map_e[var_a])), address(this).balance);
    }
    
    /// @custom:selector    0x715018a6
    /// @custom:signature   renounceOwnership() public
    function renounceOwnership() public {
        require(msg.sender == (address(owner)), "Ownable: caller is not the owner");
        owner = 0 | (uint96(owner));
        emit OwnershipTransferred(address(owner), 0);
    }
}

ABI

[
  {
    "type": "function",
    "name": "DEFAULT_ADMIN_ROLE",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "pure"
  },
  {
    "type": "function",
    "name": "MAX_SUPPLY",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "pure"
  },
  {
    "type": "function",
    "name": "REFUND_ROLE",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "pure"
  },
  {
    "type": "function",
    "name": "SUPPORT_ROLE",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "pure"
  },
  {
    "type": "function",
    "name": "Unresolved_01ffc9a7",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint32"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "pure"
  },
  {
    "type": "function",
    "name": "Unresolved_06fdde03",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "Unresolved_081812fc",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "Unresolved_095ea7b3",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      },
      {
        "name": "arg1",
        "type": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "Unresolved_18160ddd",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "Unresolved_23b872dd",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "pure"
  },
  {
    "type": "function",
    "name": "Unresolved_42842e0e",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "pure"
  },
  {
    "type": "function",
    "name": "Unresolved_42966c68",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "Unresolved_55f804b3",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "Unresolved_5b910336",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      },
      {
        "name": "arg1",
        "type": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "Unresolved_6352211e",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "Unresolved_70a08231",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint64"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "Unresolved_95d89b41",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "Unresolved_a22cb465",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      },
      {
        "name": "arg1",
        "type": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "Unresolved_a466cb1a",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      },
      {
        "name": "arg1",
        "type": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "Unresolved_a718cd4e",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      },
      {
        "name": "arg1",
        "type": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "Unresolved_b88d4fde",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "pure"
  },
  {
    "type": "function",
    "name": "Unresolved_c87b56dd",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "Unresolved_c9edb3cc",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "Unresolved_e985e9c5",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "pure"
  },
  {
    "type": "function",
    "name": "Unresolved_ffe630b5",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "amountPurchased",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint216"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "auctionActive",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "bid",
    "inputs": [],
    "outputs": [],
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "deleteDefaultRoyalty",
    "inputs": [],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "getRoleAdmin",
    "inputs": [
      {
        "name": "arg0",
        "type": "bytes32"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "grantRole",
    "inputs": [
      {
        "name": "arg0",
        "type": "bytes32"
      },
      {
        "name": "arg1",
        "type": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "hasRole",
    "inputs": [
      {
        "name": "arg0",
        "type": "bytes32"
      },
      {
        "name": "arg1",
        "type": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "minimumContribution",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "owner",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "price",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "provenance",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "bytes"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "refundAmount",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint216"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "renounceOwnership",
    "inputs": [],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "renounceRole",
    "inputs": [
      {
        "name": "arg0",
        "type": "bytes32"
      },
      {
        "name": "arg1",
        "type": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "reserve",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "resetTokenRoyalty",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "revokeRole",
    "inputs": [
      {
        "name": "arg0",
        "type": "bytes32"
      },
      {
        "name": "arg1",
        "type": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "royaltyInfo",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      },
      {
        "name": "arg1",
        "type": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bytes"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "sendAllTokens",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "sendRefund",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "sendTokens",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      },
      {
        "name": "arg1",
        "type": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "sendTokensAndRefund",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setDefaultRoyalty",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      },
      {
        "name": "arg1",
        "type": "uint96"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setMinimumContribution",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setPrice",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "setTokenRoyalty",
    "inputs": [
      {
        "name": "arg0",
        "type": "uint256"
      },
      {
        "name": "arg1",
        "type": "address"
      },
      {
        "name": "arg2",
        "type": "uint96"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "transferOwnership",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "userData",
    "inputs": [
      {
        "name": "arg0",
        "type": "address"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "withdraw",
    "inputs": [],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "withdrawAddress",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "pure"
  },
  {
    "type": "event",
    "name": "Bid",
    "inputs": [
      {
        "name": "arg0",
        "type": "address",
        "indexed": false
      },
      {
        "name": "arg1",
        "type": "uint256",
        "indexed": false
      },
      {
        "name": "arg2",
        "type": "uint256",
        "indexed": false
      },
      {
        "name": "arg3",
        "type": "uint256",
        "indexed": false
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "Event_17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31",
    "inputs": [],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "Event_8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925",
    "inputs": [],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "OwnershipTransferred",
    "inputs": [
      {
        "name": "arg0",
        "type": "address",
        "indexed": false
      },
      {
        "name": "arg1",
        "type": "address",
        "indexed": false
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "RoleGranted",
    "inputs": [
      {
        "name": "arg0",
        "type": "bytes32",
        "indexed": false
      },
      {
        "name": "arg1",
        "type": "address",
        "indexed": false
      },
      {
        "name": "arg2",
        "type": "address",
        "indexed": false
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "RoleRevoked",
    "inputs": [
      {
        "name": "arg0",
        "type": "bytes32",
        "indexed": false
      },
      {
        "name": "arg1",
        "type": "address",
        "indexed": false
      },
      {
        "name": "arg2",
        "type": "address",
        "indexed": false
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "Transfer",
    "inputs": [
      {
        "name": "arg0",
        "type": "address",
        "indexed": false
      },
      {
        "name": "arg1",
        "type": "address",
        "indexed": false
      },
      {
        "name": "arg2",
        "type": "uint256",
        "indexed": false
      }
    ],
    "anonymous": false
  },
  {
    "type": "error",
    "name": "ApprovalCallerNotOwnerNorApproved",
    "inputs": []
  },
  {
    "type": "error",
    "name": "ApprovalQueryForNonexistentToken",
    "inputs": []
  },
  {
    "type": "error",
    "name": "ApprovalToCurrentOwner",
    "inputs": []
  },
  {
    "type": "error",
    "name": "ApproveToCaller",
    "inputs": []
  },
  {
    "type": "error",
    "name": "BalanceQueryForZeroAddress",
    "inputs": []
  },
  {
    "type": "error",
    "name": "MintToZeroAddress",
    "inputs": []
  },
  {
    "type": "error",
    "name": "MintZeroQuantity",
    "inputs": []
  },
  {
    "type": "error",
    "name": "OwnerQueryForNonexistentToken",
    "inputs": []
  },
  {
    "type": "error",
    "name": "TransferCallerNotOwnerNorApproved",
    "inputs": []
  },
  {
    "type": "error",
    "name": "TransferToNonERC721ReceiverImplementer",
    "inputs": []
  },
  {
    "type": "error",
    "name": "URIQueryForNonexistentToken",
    "inputs": []
  }
]

UNKNOWN SELECTORS (4)

0x0a85bd01unknown
0x68d2bf6bunknown
0x2ce44b5funknown
0x7748d2c6unknown
These selectors are not yet in the research database — they are being investigated and will be added as known functions once identified. They are also marked in red in the decompiled Solidity above.

KNOWN CLUSTER ADDRESSES IN THIS BYTECODE (0)

(none)