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