// Copyright (C) 2023-2026 Free Software Foundation, Inc.

// This file is part of the GNU ISO C++ Library.  This library is free
// software; you can redistribute it and/or modify it under the
// terms of the GNU General Public License as published by the
// Free Software Foundation; either version 3, or (at your option)
// any later version.

// This library is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// Under Section 7 of GPL version 3, you are granted additional
// permissions described in the GCC Runtime Library Exception, version
// 3.1, as published by the Free Software Foundation.

// You should have received a copy of the GNU General Public License and
// a copy of the GCC Runtime Library Exception along with this program;
// see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
// <http://www.gnu.org/licenses/>.

// DO NOT EDIT THIS FILE   (version.h)
//
// It has been AutoGen-ed
// From the definitions    version.def
// and the template file   version.tpl

/** @file bits/version.h
 *  This is an internal header file, included by other library headers.
 *  Do not attempt to use it directly. @headername{version}
 */

// Usage guide:
//
// In your usual header, do something like:
//
//   #define __glibcxx_want_ranges
//   #define __glibcxx_want_concepts
//   #include <bits/version.h>
//
// This will generate the FTMs you named, and let you use them in your code as
// if it was user code.  All macros are also exposed under __glibcxx_NAME even
// if unwanted, to permit bits and other FTMs to depend on them for conditional
// computation without exposing extra FTMs to user code.

#ifdef _GLIBCXX_SYSHDR
#pragma GCC system_header
#endif

#include <bits/c++config.h>

#if !defined(__cpp_lib_incomplete_container_elements)
# if _GLIBCXX_HOSTED
#  define __glibcxx_incomplete_container_elements 201505L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_incomplete_container_elements)
#   define __cpp_lib_incomplete_container_elements 201505L
#  endif
# endif
#endif /* !defined(__cpp_lib_incomplete_container_elements) */
#undef __glibcxx_want_incomplete_container_elements

#if !defined(__cpp_lib_uncaught_exceptions)
# if ((defined(__STRICT_ANSI__) && __cplusplus >= 201703L) || (!defined(__STRICT_ANSI__) && __cplusplus >= 199711L))
#  define __glibcxx_uncaught_exceptions 201411L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_uncaught_exceptions)
#   define __cpp_lib_uncaught_exceptions 201411L
#  endif
# endif
#endif /* !defined(__cpp_lib_uncaught_exceptions) */
#undef __glibcxx_want_uncaught_exceptions

#if !defined(__cpp_lib_allocator_traits_is_always_equal)
# if (__cplusplus >= 201103L)
#  define __glibcxx_allocator_traits_is_always_equal 201411L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_allocator_traits_is_always_equal)
#   define __cpp_lib_allocator_traits_is_always_equal 201411L
#  endif
# endif
#endif /* !defined(__cpp_lib_allocator_traits_is_always_equal) */
#undef __glibcxx_want_allocator_traits_is_always_equal

#if !defined(__cpp_lib_allocate_at_least)
# if (__cplusplus >  202002L)
#  define __glibcxx_allocate_at_least 202302L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_allocate_at_least)
#   define __cpp_lib_allocate_at_least 202302L
#  endif
# endif
#endif /* !defined(__cpp_lib_allocate_at_least) */
#undef __glibcxx_want_allocate_at_least

#if !defined(__cpp_lib_is_null_pointer)
# if (__cplusplus >= 201103L)
#  define __glibcxx_is_null_pointer 201309L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_null_pointer)
#   define __cpp_lib_is_null_pointer 201309L
#  endif
# endif
#endif /* !defined(__cpp_lib_is_null_pointer) */
#undef __glibcxx_want_is_null_pointer

#if !defined(__cpp_lib_result_of_sfinae)
# if (__cplusplus >= 201103L)
#  define __glibcxx_result_of_sfinae 201210L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_result_of_sfinae)
#   define __cpp_lib_result_of_sfinae 201210L
#  endif
# endif
#endif /* !defined(__cpp_lib_result_of_sfinae) */
#undef __glibcxx_want_result_of_sfinae

#if !defined(__cpp_lib_shared_ptr_arrays)
# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
#  define __glibcxx_shared_ptr_arrays 201707L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_shared_ptr_arrays)
#   define __cpp_lib_shared_ptr_arrays 201707L
#  endif
# elif (__cplusplus >= 201103L) && _GLIBCXX_HOSTED
#  define __glibcxx_shared_ptr_arrays 201611L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_shared_ptr_arrays)
#   define __cpp_lib_shared_ptr_arrays 201611L
#  endif
# endif
#endif /* !defined(__cpp_lib_shared_ptr_arrays) */
#undef __glibcxx_want_shared_ptr_arrays

#if !defined(__cpp_lib_is_swappable)
# if ((defined(__STRICT_ANSI__) && __cplusplus >= 201703L) || (!defined(__STRICT_ANSI__) && __cplusplus >= 201103L))
#  define __glibcxx_is_swappable 201603L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_swappable)
#   define __cpp_lib_is_swappable 201603L
#  endif
# endif
#endif /* !defined(__cpp_lib_is_swappable) */
#undef __glibcxx_want_is_swappable

#if !defined(__cpp_lib_void_t)
# if ((defined(__STRICT_ANSI__) && __cplusplus >= 201703L) || (!defined(__STRICT_ANSI__) && __cplusplus >= 201103L))
#  define __glibcxx_void_t 201411L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_void_t)
#   define __cpp_lib_void_t 201411L
#  endif
# endif
#endif /* !defined(__cpp_lib_void_t) */
#undef __glibcxx_want_void_t

#if !defined(__cpp_lib_enable_shared_from_this)
# if ((defined(__STRICT_ANSI__) && __cplusplus >= 201703L) || (!defined(__STRICT_ANSI__) && __cplusplus >= 201103L)) && _GLIBCXX_HOSTED
#  define __glibcxx_enable_shared_from_this 201603L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_enable_shared_from_this)
#   define __cpp_lib_enable_shared_from_this 201603L
#  endif
# endif
#endif /* !defined(__cpp_lib_enable_shared_from_this) */
#undef __glibcxx_want_enable_shared_from_this

#if !defined(__cpp_lib_math_spec_funcs)
# if (__cplusplus >= 201103L)
#  define __glibcxx_math_spec_funcs 201003L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_math_spec_funcs)
#   define __STDCPP_MATH_SPEC_FUNCS__ 201003L
#  endif
# endif
#endif /* !defined(__cpp_lib_math_spec_funcs) */
#undef __glibcxx_want_math_spec_funcs

#if !defined(__cpp_lib_coroutine)
# if (__cplusplus >= 201402L) && (__cpp_impl_coroutine)
#  define __glibcxx_coroutine 201902L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_coroutine)
#   define __cpp_lib_coroutine 201902L
#  endif
# endif
#endif /* !defined(__cpp_lib_coroutine) */
#undef __glibcxx_want_coroutine

#if !defined(__cpp_lib_exchange_function)
# if (__cplusplus >= 201402L)
#  define __glibcxx_exchange_function 201304L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_exchange_function)
#   define __cpp_lib_exchange_function 201304L
#  endif
# endif
#endif /* !defined(__cpp_lib_exchange_function) */
#undef __glibcxx_want_exchange_function

#if !defined(__cpp_lib_integer_sequence)
# if (__cplusplus >  202302L) && (__cpp_pack_indexing)
#  define __glibcxx_integer_sequence 202511L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_integer_sequence)
#   define __cpp_lib_integer_sequence 202511L
#  endif
# elif (__cplusplus >= 201402L)
#  define __glibcxx_integer_sequence 201304L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_integer_sequence)
#   define __cpp_lib_integer_sequence 201304L
#  endif
# endif
#endif /* !defined(__cpp_lib_integer_sequence) */
#undef __glibcxx_want_integer_sequence

#if !defined(__cpp_lib_integral_constant_callable)
# if (__cplusplus >= 201402L)
#  define __glibcxx_integral_constant_callable 201304L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_integral_constant_callable)
#   define __cpp_lib_integral_constant_callable 201304L
#  endif
# endif
#endif /* !defined(__cpp_lib_integral_constant_callable) */
#undef __glibcxx_want_integral_constant_callable

#if !defined(__cpp_lib_is_final)
# if (__cplusplus >= 201402L)
#  define __glibcxx_is_final 201402L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_final)
#   define __cpp_lib_is_final 201402L
#  endif
# endif
#endif /* !defined(__cpp_lib_is_final) */
#undef __glibcxx_want_is_final

#if !defined(__cpp_lib_make_reverse_iterator)
# if (__cplusplus >= 201402L)
#  define __glibcxx_make_reverse_iterator 201402L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_make_reverse_iterator)
#   define __cpp_lib_make_reverse_iterator 201402L
#  endif
# endif
#endif /* !defined(__cpp_lib_make_reverse_iterator) */
#undef __glibcxx_want_make_reverse_iterator

#if !defined(__cpp_lib_null_iterators)
# if (__cplusplus >= 201402L)
#  define __glibcxx_null_iterators 201304L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_null_iterators)
#   define __cpp_lib_null_iterators 201304L
#  endif
# endif
#endif /* !defined(__cpp_lib_null_iterators) */
#undef __glibcxx_want_null_iterators

#if !defined(__cpp_lib_transformation_trait_aliases)
# if (__cplusplus >= 201402L)
#  define __glibcxx_transformation_trait_aliases 201304L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_transformation_trait_aliases)
#   define __cpp_lib_transformation_trait_aliases 201304L
#  endif
# endif
#endif /* !defined(__cpp_lib_transformation_trait_aliases) */
#undef __glibcxx_want_transformation_trait_aliases

#if !defined(__cpp_lib_transparent_operators)
# if (__cplusplus >= 201402L)
#  define __glibcxx_transparent_operators 201510L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_transparent_operators)
#   define __cpp_lib_transparent_operators 201510L
#  endif
# endif
#endif /* !defined(__cpp_lib_transparent_operators) */
#undef __glibcxx_want_transparent_operators

#if !defined(__cpp_lib_tuple_element_t)
# if (__cplusplus >= 201402L)
#  define __glibcxx_tuple_element_t 201402L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_tuple_element_t)
#   define __cpp_lib_tuple_element_t 201402L
#  endif
# endif
#endif /* !defined(__cpp_lib_tuple_element_t) */
#undef __glibcxx_want_tuple_element_t

#if !defined(__cpp_lib_tuples_by_type)
# if (__cplusplus >= 201402L)
#  define __glibcxx_tuples_by_type 201304L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_tuples_by_type)
#   define __cpp_lib_tuples_by_type 201304L
#  endif
# endif
#endif /* !defined(__cpp_lib_tuples_by_type) */
#undef __glibcxx_want_tuples_by_type

#if !defined(__cpp_lib_robust_nonmodifying_seq_ops)
# if (__cplusplus >= 201402L)
#  define __glibcxx_robust_nonmodifying_seq_ops 201304L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_robust_nonmodifying_seq_ops)
#   define __cpp_lib_robust_nonmodifying_seq_ops 201304L
#  endif
# endif
#endif /* !defined(__cpp_lib_robust_nonmodifying_seq_ops) */
#undef __glibcxx_want_robust_nonmodifying_seq_ops

#if !defined(__cpp_lib_to_chars)
# if (__cplusplus >  202302L) && (_GLIBCXX_FLOAT_IS_IEEE_BINARY32 && _GLIBCXX_DOUBLE_IS_IEEE_BINARY64 && __SIZE_WIDTH__ >= 32)
#  define __glibcxx_to_chars 202306L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_chars)
#   define __cpp_lib_to_chars 202306L
#  endif
# elif (__cplusplus >= 201402L) && (_GLIBCXX_FLOAT_IS_IEEE_BINARY32 && _GLIBCXX_DOUBLE_IS_IEEE_BINARY64 && __SIZE_WIDTH__ >= 32)
#  define __glibcxx_to_chars 201611L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_chars)
#   define __cpp_lib_to_chars 201611L
#  endif
# endif
#endif /* !defined(__cpp_lib_to_chars) */
#undef __glibcxx_want_to_chars

#if !defined(__cpp_lib_chrono_udls)
# if (__cplusplus >= 201402L)
#  define __glibcxx_chrono_udls 201304L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_chrono_udls)
#   define __cpp_lib_chrono_udls 201304L
#  endif
# endif
#endif /* !defined(__cpp_lib_chrono_udls) */
#undef __glibcxx_want_chrono_udls

#if !defined(__cpp_lib_complex_udls)
# if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED
#  define __glibcxx_complex_udls 201309L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_complex_udls)
#   define __cpp_lib_complex_udls 201309L
#  endif
# endif
#endif /* !defined(__cpp_lib_complex_udls) */
#undef __glibcxx_want_complex_udls

#if !defined(__cpp_lib_generic_associative_lookup)
# if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED
#  define __glibcxx_generic_associative_lookup 201304L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_generic_associative_lookup)
#   define __cpp_lib_generic_associative_lookup 201304L
#  endif
# endif
#endif /* !defined(__cpp_lib_generic_associative_lookup) */
#undef __glibcxx_want_generic_associative_lookup

#if !defined(__cpp_lib_make_unique)
# if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED
#  define __glibcxx_make_unique 201304L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_make_unique)
#   define __cpp_lib_make_unique 201304L
#  endif
# endif
#endif /* !defined(__cpp_lib_make_unique) */
#undef __glibcxx_want_make_unique

#if !defined(__cpp_lib_quoted_string_io)
# if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED
#  define __glibcxx_quoted_string_io 201304L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_quoted_string_io)
#   define __cpp_lib_quoted_string_io 201304L
#  endif
# endif
#endif /* !defined(__cpp_lib_quoted_string_io) */
#undef __glibcxx_want_quoted_string_io

#if !defined(__cpp_lib_shared_timed_mutex)
# if (__cplusplus >= 201402L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED
#  define __glibcxx_shared_timed_mutex 201402L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_shared_timed_mutex)
#   define __cpp_lib_shared_timed_mutex 201402L
#  endif
# endif
#endif /* !defined(__cpp_lib_shared_timed_mutex) */
#undef __glibcxx_want_shared_timed_mutex

#if !defined(__cpp_lib_string_udls)
# if (__cplusplus >= 201402L) && _GLIBCXX_HOSTED
#  define __glibcxx_string_udls 201304L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_udls)
#   define __cpp_lib_string_udls 201304L
#  endif
# endif
#endif /* !defined(__cpp_lib_string_udls) */
#undef __glibcxx_want_string_udls

#if !defined(__cpp_lib_addressof_constexpr)
# if (__cplusplus >= 201703L)
#  define __glibcxx_addressof_constexpr 201603L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_addressof_constexpr)
#   define __cpp_lib_addressof_constexpr 201603L
#  endif
# endif
#endif /* !defined(__cpp_lib_addressof_constexpr) */
#undef __glibcxx_want_addressof_constexpr

#if !defined(__cpp_lib_any)
# if (__cplusplus >= 201703L)
#  define __glibcxx_any 201606L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_any)
#   define __cpp_lib_any 201606L
#  endif
# endif
#endif /* !defined(__cpp_lib_any) */
#undef __glibcxx_want_any

#if !defined(__cpp_lib_apply)
# if (__cplusplus >= 201703L)
#  define __glibcxx_apply 201603L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_apply)
#   define __cpp_lib_apply 201603L
#  endif
# endif
#endif /* !defined(__cpp_lib_apply) */
#undef __glibcxx_want_apply

#if !defined(__cpp_lib_as_const)
# if (__cplusplus >= 201703L)
#  define __glibcxx_as_const 201510L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_as_const)
#   define __cpp_lib_as_const 201510L
#  endif
# endif
#endif /* !defined(__cpp_lib_as_const) */
#undef __glibcxx_want_as_const

#if !defined(__cpp_lib_atomic_is_always_lock_free)
# if (__cplusplus >= 201703L)
#  define __glibcxx_atomic_is_always_lock_free 201603L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_is_always_lock_free)
#   define __cpp_lib_atomic_is_always_lock_free 201603L
#  endif
# endif
#endif /* !defined(__cpp_lib_atomic_is_always_lock_free) */
#undef __glibcxx_want_atomic_is_always_lock_free

#if !defined(__cpp_lib_bool_constant)
# if (__cplusplus >= 201703L)
#  define __glibcxx_bool_constant 201505L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_bool_constant)
#   define __cpp_lib_bool_constant 201505L
#  endif
# endif
#endif /* !defined(__cpp_lib_bool_constant) */
#undef __glibcxx_want_bool_constant

#if !defined(__cpp_lib_byte)
# if (__cplusplus >= 201703L)
#  define __glibcxx_byte 201603L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_byte)
#   define __cpp_lib_byte 201603L
#  endif
# endif
#endif /* !defined(__cpp_lib_byte) */
#undef __glibcxx_want_byte

#if !defined(__cpp_lib_constant_wrapper)
# if (__cplusplus >  202302L)
#  define __glibcxx_constant_wrapper 202606L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constant_wrapper)
#   define __cpp_lib_constant_wrapper 202606L
#  endif
# endif
#endif /* !defined(__cpp_lib_constant_wrapper) */
#undef __glibcxx_want_constant_wrapper

#if !defined(__cpp_lib_has_unique_object_representations)
# if (__cplusplus >= 201703L) && (defined(_GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP))
#  define __glibcxx_has_unique_object_representations 201606L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_has_unique_object_representations)
#   define __cpp_lib_has_unique_object_representations 201606L
#  endif
# endif
#endif /* !defined(__cpp_lib_has_unique_object_representations) */
#undef __glibcxx_want_has_unique_object_representations

#if !defined(__cpp_lib_hardware_interference_size)
# if (__cplusplus >= 201703L) && (defined(__GCC_DESTRUCTIVE_SIZE))
#  define __glibcxx_hardware_interference_size 201703L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_hardware_interference_size)
#   define __cpp_lib_hardware_interference_size 201703L
#  endif
# endif
#endif /* !defined(__cpp_lib_hardware_interference_size) */
#undef __glibcxx_want_hardware_interference_size

#if !defined(__cpp_lib_invoke)
# if (__cplusplus >= 201703L)
#  define __glibcxx_invoke 201411L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_invoke)
#   define __cpp_lib_invoke 201411L
#  endif
# endif
#endif /* !defined(__cpp_lib_invoke) */
#undef __glibcxx_want_invoke

#if !defined(__cpp_lib_is_aggregate)
# if (__cplusplus >= 201703L) && (defined(_GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE))
#  define __glibcxx_is_aggregate 201703L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_aggregate)
#   define __cpp_lib_is_aggregate 201703L
#  endif
# endif
#endif /* !defined(__cpp_lib_is_aggregate) */
#undef __glibcxx_want_is_aggregate

#if !defined(__cpp_lib_is_invocable)
# if (__cplusplus >= 201703L)
#  define __glibcxx_is_invocable 201703L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_invocable)
#   define __cpp_lib_is_invocable 201703L
#  endif
# endif
#endif /* !defined(__cpp_lib_is_invocable) */
#undef __glibcxx_want_is_invocable

#if !defined(__cpp_lib_launder)
# if (__cplusplus >= 201703L) && (defined(_GLIBCXX_HAVE_BUILTIN_LAUNDER))
#  define __glibcxx_launder 201606L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_launder)
#   define __cpp_lib_launder 201606L
#  endif
# endif
#endif /* !defined(__cpp_lib_launder) */
#undef __glibcxx_want_launder

#if !defined(__cpp_lib_logical_traits)
# if (__cplusplus >= 201703L)
#  define __glibcxx_logical_traits 201510L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_logical_traits)
#   define __cpp_lib_logical_traits 201510L
#  endif
# endif
#endif /* !defined(__cpp_lib_logical_traits) */
#undef __glibcxx_want_logical_traits

#if !defined(__cpp_lib_make_from_tuple)
# if (__cplusplus >= 201703L)
#  define __glibcxx_make_from_tuple 201606L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_make_from_tuple)
#   define __cpp_lib_make_from_tuple 201606L
#  endif
# endif
#endif /* !defined(__cpp_lib_make_from_tuple) */
#undef __glibcxx_want_make_from_tuple

#if !defined(__cpp_lib_not_fn)
# if (__cplusplus >  202302L)
#  define __glibcxx_not_fn 202306L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_not_fn)
#   define __cpp_lib_not_fn 202306L
#  endif
# elif (__cplusplus >= 201703L)
#  define __glibcxx_not_fn 201603L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_not_fn)
#   define __cpp_lib_not_fn 201603L
#  endif
# endif
#endif /* !defined(__cpp_lib_not_fn) */
#undef __glibcxx_want_not_fn

#if !defined(__cpp_lib_type_trait_variable_templates)
# if (__cplusplus >= 201703L)
#  define __glibcxx_type_trait_variable_templates 201510L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_type_trait_variable_templates)
#   define __cpp_lib_type_trait_variable_templates 201510L
#  endif
# endif
#endif /* !defined(__cpp_lib_type_trait_variable_templates) */
#undef __glibcxx_want_type_trait_variable_templates

#if !defined(__cpp_lib_variant)
# if (__cplusplus >  202302L) && (__cpp_concepts >= 202002L && __cpp_constexpr >= 201811L && __cpp_explicit_this_parameter)
#  define __glibcxx_variant 202306L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_variant)
#   define __cpp_lib_variant 202306L
#  endif
# elif (__cplusplus >= 202002L) && (__cpp_concepts >= 202002L && __cpp_constexpr >= 201811L)
#  define __glibcxx_variant 202106L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_variant)
#   define __cpp_lib_variant 202106L
#  endif
# elif (__cplusplus >= 201703L)
#  define __glibcxx_variant 202102L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_variant)
#   define __cpp_lib_variant 202102L
#  endif
# endif
#endif /* !defined(__cpp_lib_variant) */
#undef __glibcxx_want_variant

#if !defined(__cpp_lib_lcm)
# if (__cplusplus >= 201703L)
#  define __glibcxx_lcm 201606L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_lcm)
#   define __cpp_lib_lcm 201606L
#  endif
# endif
#endif /* !defined(__cpp_lib_lcm) */
#undef __glibcxx_want_lcm

#if !defined(__cpp_lib_gcd)
# if (__cplusplus >= 201703L)
#  define __glibcxx_gcd 201606L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_gcd)
#   define __cpp_lib_gcd 201606L
#  endif
# endif
#endif /* !defined(__cpp_lib_gcd) */
#undef __glibcxx_want_gcd

#if !defined(__cpp_lib_gcd_lcm)
# if (__cplusplus >= 201703L)
#  define __glibcxx_gcd_lcm 201606L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_gcd_lcm)
#   define __cpp_lib_gcd_lcm 201606L
#  endif
# endif
#endif /* !defined(__cpp_lib_gcd_lcm) */
#undef __glibcxx_want_gcd_lcm

#if !defined(__cpp_lib_raw_memory_algorithms)
# if (__cplusplus >  202302L) && (__cpp_constexpr >= 202406L)
#  define __glibcxx_raw_memory_algorithms 202411L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_raw_memory_algorithms)
#   define __cpp_lib_raw_memory_algorithms 202411L
#  endif
# elif (__cplusplus >= 201703L)
#  define __glibcxx_raw_memory_algorithms 201606L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_raw_memory_algorithms)
#   define __cpp_lib_raw_memory_algorithms 201606L
#  endif
# endif
#endif /* !defined(__cpp_lib_raw_memory_algorithms) */
#undef __glibcxx_want_raw_memory_algorithms

#if !defined(__cpp_lib_array_constexpr)
# if (__cplusplus >= 202002L)
#  define __glibcxx_array_constexpr 201811L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_array_constexpr)
#   define __cpp_lib_array_constexpr 201811L
#  endif
# elif (__cplusplus >= 201703L)
#  define __glibcxx_array_constexpr 201803L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_array_constexpr)
#   define __cpp_lib_array_constexpr 201803L
#  endif
# endif
#endif /* !defined(__cpp_lib_array_constexpr) */
#undef __glibcxx_want_array_constexpr

#if !defined(__cpp_lib_nonmember_container_access)
# if (__cplusplus >= 201703L)
#  define __glibcxx_nonmember_container_access 201411L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_nonmember_container_access)
#   define __cpp_lib_nonmember_container_access 201411L
#  endif
# endif
#endif /* !defined(__cpp_lib_nonmember_container_access) */
#undef __glibcxx_want_nonmember_container_access

#if !defined(__cpp_lib_clamp)
# if (__cplusplus >= 201703L)
#  define __glibcxx_clamp 201603L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_clamp)
#   define __cpp_lib_clamp 201603L
#  endif
# endif
#endif /* !defined(__cpp_lib_clamp) */
#undef __glibcxx_want_clamp

#if !defined(__cpp_lib_sample)
# if (__cplusplus >= 201703L)
#  define __glibcxx_sample 201603L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_sample)
#   define __cpp_lib_sample 201603L
#  endif
# endif
#endif /* !defined(__cpp_lib_sample) */
#undef __glibcxx_want_sample

#if !defined(__cpp_lib_boyer_moore_searcher)
# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
#  define __glibcxx_boyer_moore_searcher 201603L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_boyer_moore_searcher)
#   define __cpp_lib_boyer_moore_searcher 201603L
#  endif
# endif
#endif /* !defined(__cpp_lib_boyer_moore_searcher) */
#undef __glibcxx_want_boyer_moore_searcher

#if !defined(__cpp_lib_chrono)
# if (__cplusplus >  202302L) && _GLIBCXX_USE_CXX11_ABI && _GLIBCXX_HOSTED
#  define __glibcxx_chrono 202306L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_chrono)
#   define __cpp_lib_chrono 202306L
#  endif
# elif (__cplusplus >= 202002L) && _GLIBCXX_USE_CXX11_ABI && _GLIBCXX_HOSTED
#  define __glibcxx_chrono 201907L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_chrono)
#   define __cpp_lib_chrono 201907L
#  endif
# elif (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
#  define __glibcxx_chrono 201611L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_chrono)
#   define __cpp_lib_chrono 201611L
#  endif
# endif
#endif /* !defined(__cpp_lib_chrono) */
#undef __glibcxx_want_chrono

#if !defined(__cpp_lib_chrono_cxx20)
# if (__cplusplus >  202302L)
#  define __glibcxx_chrono_cxx20 202306L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_chrono_cxx20)
#  endif
# elif (__cplusplus >= 202002L)
#  define __glibcxx_chrono_cxx20 201800L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_chrono_cxx20)
#  endif
# endif
#endif /* !defined(__cpp_lib_chrono_cxx20) */
#undef __glibcxx_want_chrono_cxx20

#if !defined(__cpp_lib_execution)
# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
#  define __glibcxx_execution 201902L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_execution)
#   define __cpp_lib_execution 201902L
#  endif
# endif
#endif /* !defined(__cpp_lib_execution) */
#undef __glibcxx_want_execution

#if !defined(__cpp_lib_filesystem)
# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
#  define __glibcxx_filesystem 201703L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_filesystem)
#   define __cpp_lib_filesystem 201703L
#  endif
# endif
#endif /* !defined(__cpp_lib_filesystem) */
#undef __glibcxx_want_filesystem

#if !defined(__cpp_lib_hypot)
# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
#  define __glibcxx_hypot 201603L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_hypot)
#   define __cpp_lib_hypot 201603L
#  endif
# endif
#endif /* !defined(__cpp_lib_hypot) */
#undef __glibcxx_want_hypot

#if !defined(__cpp_lib_map_try_emplace)
# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
#  define __glibcxx_map_try_emplace 201411L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_map_try_emplace)
#   define __cpp_lib_map_try_emplace 201411L
#  endif
# endif
#endif /* !defined(__cpp_lib_map_try_emplace) */
#undef __glibcxx_want_map_try_emplace

#if !defined(__cpp_lib_math_special_functions)
# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
#  define __glibcxx_math_special_functions 201603L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_math_special_functions)
#   define __cpp_lib_math_special_functions 201603L
#  endif
# endif
#endif /* !defined(__cpp_lib_math_special_functions) */
#undef __glibcxx_want_math_special_functions

#if !defined(__cpp_lib_memory_resource)
# if (__cplusplus >= 201703L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED
#  define __glibcxx_memory_resource 201603L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_memory_resource)
#   define __cpp_lib_memory_resource 201603L
#  endif
# elif (__cplusplus >= 201703L) && !defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED
#  define __glibcxx_memory_resource 1L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_memory_resource)
#   define __cpp_lib_memory_resource 1L
#  endif
# endif
#endif /* !defined(__cpp_lib_memory_resource) */
#undef __glibcxx_want_memory_resource

#if !defined(__cpp_lib_node_extract)
# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
#  define __glibcxx_node_extract 201606L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_node_extract)
#   define __cpp_lib_node_extract 201606L
#  endif
# endif
#endif /* !defined(__cpp_lib_node_extract) */
#undef __glibcxx_want_node_extract

#if !defined(__cpp_lib_parallel_algorithm)
# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
#  define __glibcxx_parallel_algorithm 201603L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_parallel_algorithm)
#   define __cpp_lib_parallel_algorithm 201603L
#  endif
# endif
#endif /* !defined(__cpp_lib_parallel_algorithm) */
#undef __glibcxx_want_parallel_algorithm

#if !defined(__cpp_lib_scoped_lock)
# if (__cplusplus >= 201703L)
#  define __glibcxx_scoped_lock 201703L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_scoped_lock)
#   define __cpp_lib_scoped_lock 201703L
#  endif
# endif
#endif /* !defined(__cpp_lib_scoped_lock) */
#undef __glibcxx_want_scoped_lock

#if !defined(__cpp_lib_shared_mutex)
# if (__cplusplus >= 201703L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED
#  define __glibcxx_shared_mutex 201505L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_shared_mutex)
#   define __cpp_lib_shared_mutex 201505L
#  endif
# endif
#endif /* !defined(__cpp_lib_shared_mutex) */
#undef __glibcxx_want_shared_mutex

#if !defined(__cpp_lib_shared_ptr_weak_type)
# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
#  define __glibcxx_shared_ptr_weak_type 201606L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_shared_ptr_weak_type)
#   define __cpp_lib_shared_ptr_weak_type 201606L
#  endif
# endif
#endif /* !defined(__cpp_lib_shared_ptr_weak_type) */
#undef __glibcxx_want_shared_ptr_weak_type

#if !defined(__cpp_lib_string_view)
# if (__cplusplus >  202302L) && _GLIBCXX_HOSTED
#  define __glibcxx_string_view 202403L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_view)
#   define __cpp_lib_string_view 202403L
#  endif
# elif (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
#  define __glibcxx_string_view 201803L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_view)
#   define __cpp_lib_string_view 201803L
#  endif
# endif
#endif /* !defined(__cpp_lib_string_view) */
#undef __glibcxx_want_string_view

#if !defined(__cpp_lib_unordered_map_try_emplace)
# if (__cplusplus >= 201703L) && _GLIBCXX_HOSTED
#  define __glibcxx_unordered_map_try_emplace 201411L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_unordered_map_try_emplace)
#   define __cpp_lib_unordered_map_try_emplace 201411L
#  endif
# endif
#endif /* !defined(__cpp_lib_unordered_map_try_emplace) */
#undef __glibcxx_want_unordered_map_try_emplace

#if !defined(__cpp_lib_assume_aligned)
# if (__cplusplus >= 202002L)
#  define __glibcxx_assume_aligned 201811L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_assume_aligned)
#   define __cpp_lib_assume_aligned 201811L
#  endif
# endif
#endif /* !defined(__cpp_lib_assume_aligned) */
#undef __glibcxx_want_assume_aligned

#if !defined(__cpp_lib_is_sufficiently_aligned)
# if (__cplusplus >  202302L)
#  define __glibcxx_is_sufficiently_aligned 202411L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_sufficiently_aligned)
#   define __cpp_lib_is_sufficiently_aligned 202411L
#  endif
# endif
#endif /* !defined(__cpp_lib_is_sufficiently_aligned) */
#undef __glibcxx_want_is_sufficiently_aligned

#if !defined(__cpp_lib_atomic_flag_test)
# if (__cplusplus >= 202002L)
#  define __glibcxx_atomic_flag_test 201907L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_flag_test)
#   define __cpp_lib_atomic_flag_test 201907L
#  endif
# endif
#endif /* !defined(__cpp_lib_atomic_flag_test) */
#undef __glibcxx_want_atomic_flag_test

#if !defined(__cpp_lib_atomic_float)
# if (__cplusplus >= 202002L)
#  define __glibcxx_atomic_float 201711L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_float)
#   define __cpp_lib_atomic_float 201711L
#  endif
# endif
#endif /* !defined(__cpp_lib_atomic_float) */
#undef __glibcxx_want_atomic_float

#if !defined(__cpp_lib_atomic_min_max)
# if (__cplusplus >  202302L)
#  define __glibcxx_atomic_min_max 202403L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_min_max)
#   define __cpp_lib_atomic_min_max 202403L
#  endif
# endif
#endif /* !defined(__cpp_lib_atomic_min_max) */
#undef __glibcxx_want_atomic_min_max

#if !defined(__cpp_lib_atomic_lock_free_type_aliases)
# if (__cplusplus >= 202002L) && ((__GCC_ATOMIC_INT_LOCK_FREE | __GCC_ATOMIC_LONG_LOCK_FREE | __GCC_ATOMIC_CHAR_LOCK_FREE) & 2)
#  define __glibcxx_atomic_lock_free_type_aliases 201907L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_lock_free_type_aliases)
#   define __cpp_lib_atomic_lock_free_type_aliases 201907L
#  endif
# endif
#endif /* !defined(__cpp_lib_atomic_lock_free_type_aliases) */
#undef __glibcxx_want_atomic_lock_free_type_aliases

#if !defined(__cpp_lib_atomic_ref)
# if (__cplusplus >  202302L)
#  define __glibcxx_atomic_ref 202603L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_ref)
#   define __cpp_lib_atomic_ref 202603L
#  endif
# elif (__cplusplus >= 202002L)
#  define __glibcxx_atomic_ref 201806L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_ref)
#   define __cpp_lib_atomic_ref 201806L
#  endif
# endif
#endif /* !defined(__cpp_lib_atomic_ref) */
#undef __glibcxx_want_atomic_ref

#if !defined(__cpp_lib_atomic_value_initialization)
# if (__cplusplus >= 202002L) && (__cpp_concepts >= 201907L)
#  define __glibcxx_atomic_value_initialization 201911L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_value_initialization)
#   define __cpp_lib_atomic_value_initialization 201911L
#  endif
# endif
#endif /* !defined(__cpp_lib_atomic_value_initialization) */
#undef __glibcxx_want_atomic_value_initialization

#if !defined(__cpp_lib_bind_front)
# if (__cplusplus >  202302L)
#  define __glibcxx_bind_front 202306L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_bind_front)
#   define __cpp_lib_bind_front 202306L
#  endif
# elif (__cplusplus >= 202002L)
#  define __glibcxx_bind_front 201907L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_bind_front)
#   define __cpp_lib_bind_front 201907L
#  endif
# endif
#endif /* !defined(__cpp_lib_bind_front) */
#undef __glibcxx_want_bind_front

#if !defined(__cpp_lib_bind_back)
# if (__cplusplus >  202302L)
#  define __glibcxx_bind_back 202306L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_bind_back)
#   define __cpp_lib_bind_back 202306L
#  endif
# elif (__cplusplus >  202002L) && (__cpp_explicit_this_parameter)
#  define __glibcxx_bind_back 202202L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_bind_back)
#   define __cpp_lib_bind_back 202202L
#  endif
# endif
#endif /* !defined(__cpp_lib_bind_back) */
#undef __glibcxx_want_bind_back

#if !defined(__cpp_lib_starts_ends_with)
# if (__cplusplus >= 202002L)
#  define __glibcxx_starts_ends_with 201711L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_starts_ends_with)
#   define __cpp_lib_starts_ends_with 201711L
#  endif
# endif
#endif /* !defined(__cpp_lib_starts_ends_with) */
#undef __glibcxx_want_starts_ends_with

#if !defined(__cpp_lib_bit_cast)
# if (__cplusplus >= 202002L) && (__has_builtin(__builtin_bit_cast))
#  define __glibcxx_bit_cast 201806L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_bit_cast)
#   define __cpp_lib_bit_cast 201806L
#  endif
# endif
#endif /* !defined(__cpp_lib_bit_cast) */
#undef __glibcxx_want_bit_cast

#if !defined(__cpp_lib_bitops)
# if (__cplusplus >  202603L)
#  define __glibcxx_bitops 202606L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_bitops)
#   define __cpp_lib_bitops 202606L
#  endif
# elif (__cplusplus >= 202002L)
#  define __glibcxx_bitops 201907L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_bitops)
#   define __cpp_lib_bitops 201907L
#  endif
# endif
#endif /* !defined(__cpp_lib_bitops) */
#undef __glibcxx_want_bitops

#if !defined(__cpp_lib_bounded_array_traits)
# if (__cplusplus >= 202002L)
#  define __glibcxx_bounded_array_traits 201902L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_bounded_array_traits)
#   define __cpp_lib_bounded_array_traits 201902L
#  endif
# endif
#endif /* !defined(__cpp_lib_bounded_array_traits) */
#undef __glibcxx_want_bounded_array_traits

#if !defined(__cpp_lib_concepts)
# if (__cplusplus >= 202002L) && (__cpp_concepts >= 201907L)
#  define __glibcxx_concepts 202207L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_concepts)
#   define __cpp_lib_concepts 202207L
#  endif
# endif
#endif /* !defined(__cpp_lib_concepts) */
#undef __glibcxx_want_concepts

#if !defined(__cpp_lib_optional)
# if (__cplusplus >  202302L) && (__glibcxx_concepts)
#  define __glibcxx_optional 202506L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_optional)
#   define __cpp_lib_optional 202506L
#  endif
# elif (__cplusplus >  202002L) && (__glibcxx_concepts)
#  define __glibcxx_optional 202110L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_optional)
#   define __cpp_lib_optional 202110L
#  endif
# elif (__cplusplus >= 202002L)
#  define __glibcxx_optional 202106L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_optional)
#   define __cpp_lib_optional 202106L
#  endif
# elif (__cplusplus >= 201703L)
#  define __glibcxx_optional 201606L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_optional)
#   define __cpp_lib_optional 201606L
#  endif
# endif
#endif /* !defined(__cpp_lib_optional) */
#undef __glibcxx_want_optional

#if !defined(__cpp_lib_optional_range_support)
# if (__cplusplus >  202302L)
#  define __glibcxx_optional_range_support 202406L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_optional_range_support)
#   define __cpp_lib_optional_range_support 202406L
#  endif
# endif
#endif /* !defined(__cpp_lib_optional_range_support) */
#undef __glibcxx_want_optional_range_support

#if !defined(__cpp_lib_destroying_delete)
# if (__cplusplus >= 202002L) && (__cpp_impl_destroying_delete)
#  define __glibcxx_destroying_delete 201806L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_destroying_delete)
#   define __cpp_lib_destroying_delete 201806L
#  endif
# endif
#endif /* !defined(__cpp_lib_destroying_delete) */
#undef __glibcxx_want_destroying_delete

#if !defined(__cpp_lib_constexpr_string_view)
# if (__cplusplus >= 202002L)
#  define __glibcxx_constexpr_string_view 201811L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_string_view)
#   define __cpp_lib_constexpr_string_view 201811L
#  endif
# endif
#endif /* !defined(__cpp_lib_constexpr_string_view) */
#undef __glibcxx_want_constexpr_string_view

#if !defined(__cpp_lib_endian)
# if (__cplusplus >= 202002L)
#  define __glibcxx_endian 201907L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_endian)
#   define __cpp_lib_endian 201907L
#  endif
# endif
#endif /* !defined(__cpp_lib_endian) */
#undef __glibcxx_want_endian

#if !defined(__cpp_lib_int_pow2)
# if (__cplusplus >= 202002L)
#  define __glibcxx_int_pow2 202002L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_int_pow2)
#   define __cpp_lib_int_pow2 202002L
#  endif
# endif
#endif /* !defined(__cpp_lib_int_pow2) */
#undef __glibcxx_want_int_pow2

#if !defined(__cpp_lib_integer_comparison_functions)
# if (__cplusplus >= 202002L)
#  define __glibcxx_integer_comparison_functions 202002L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_integer_comparison_functions)
#   define __cpp_lib_integer_comparison_functions 202002L
#  endif
# endif
#endif /* !defined(__cpp_lib_integer_comparison_functions) */
#undef __glibcxx_want_integer_comparison_functions

#if !defined(__cpp_lib_is_constant_evaluated)
# if (__cplusplus >= 202002L) && (defined(_GLIBCXX_HAVE_IS_CONSTANT_EVALUATED))
#  define __glibcxx_is_constant_evaluated 201811L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_constant_evaluated)
#   define __cpp_lib_is_constant_evaluated 201811L
#  endif
# endif
#endif /* !defined(__cpp_lib_is_constant_evaluated) */
#undef __glibcxx_want_is_constant_evaluated

#if !defined(__cpp_lib_constexpr_char_traits)
# if (__cplusplus >= 202002L) && (defined(__glibcxx_is_constant_evaluated))
#  define __glibcxx_constexpr_char_traits 201811L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_char_traits)
#   define __cpp_lib_constexpr_char_traits 201811L
#  endif
# elif (__cplusplus >= 201703L) && (_GLIBCXX_HAVE_IS_CONSTANT_EVALUATED)
#  define __glibcxx_constexpr_char_traits 201611L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_char_traits)
#   define __cpp_lib_constexpr_char_traits 201611L
#  endif
# endif
#endif /* !defined(__cpp_lib_constexpr_char_traits) */
#undef __glibcxx_want_constexpr_char_traits

#if !defined(__cpp_lib_is_layout_compatible)
# if (__cplusplus >= 202002L) && (__has_builtin(__is_layout_compatible) && __has_builtin(__builtin_is_corresponding_member))
#  define __glibcxx_is_layout_compatible 201907L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_layout_compatible)
#   define __cpp_lib_is_layout_compatible 201907L
#  endif
# endif
#endif /* !defined(__cpp_lib_is_layout_compatible) */
#undef __glibcxx_want_is_layout_compatible

#if !defined(__cpp_lib_is_nothrow_convertible)
# if (__cplusplus >= 202002L)
#  define __glibcxx_is_nothrow_convertible 201806L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_nothrow_convertible)
#   define __cpp_lib_is_nothrow_convertible 201806L
#  endif
# endif
#endif /* !defined(__cpp_lib_is_nothrow_convertible) */
#undef __glibcxx_want_is_nothrow_convertible

#if !defined(__cpp_lib_is_pointer_interconvertible)
# if (__cplusplus >= 202002L) && (__has_builtin(__is_pointer_interconvertible_base_of) && __has_builtin(__builtin_is_pointer_interconvertible_with_class))
#  define __glibcxx_is_pointer_interconvertible 201907L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_pointer_interconvertible)
#   define __cpp_lib_is_pointer_interconvertible 201907L
#  endif
# endif
#endif /* !defined(__cpp_lib_is_pointer_interconvertible) */
#undef __glibcxx_want_is_pointer_interconvertible

#if !defined(__cpp_lib_math_constants)
# if (__cplusplus >= 202002L)
#  define __glibcxx_math_constants 201907L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_math_constants)
#   define __cpp_lib_math_constants 201907L
#  endif
# endif
#endif /* !defined(__cpp_lib_math_constants) */
#undef __glibcxx_want_math_constants

#if !defined(__cpp_lib_make_obj_using_allocator)
# if (__cplusplus >= 202002L) && (__cpp_concepts)
#  define __glibcxx_make_obj_using_allocator 201811L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_make_obj_using_allocator)
#  endif
# endif
#endif /* !defined(__cpp_lib_make_obj_using_allocator) */
#undef __glibcxx_want_make_obj_using_allocator

#if !defined(__cpp_lib_remove_cvref)
# if (__cplusplus >= 202002L)
#  define __glibcxx_remove_cvref 201711L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_remove_cvref)
#   define __cpp_lib_remove_cvref 201711L
#  endif
# endif
#endif /* !defined(__cpp_lib_remove_cvref) */
#undef __glibcxx_want_remove_cvref

#if !defined(__cpp_lib_source_location)
# if (__cplusplus >= 202002L) && (__has_builtin(__builtin_source_location))
#  define __glibcxx_source_location 201907L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_source_location)
#   define __cpp_lib_source_location 201907L
#  endif
# endif
#endif /* !defined(__cpp_lib_source_location) */
#undef __glibcxx_want_source_location

#if !defined(__cpp_lib_span)
# if (__cplusplus >  202302L) && (__glibcxx_concepts)
#  define __glibcxx_span 202311L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_span)
#   define __cpp_lib_span 202311L
#  endif
# elif (__cplusplus >= 202002L) && (__glibcxx_concepts)
#  define __glibcxx_span 202002L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_span)
#   define __cpp_lib_span 202002L
#  endif
# endif
#endif /* !defined(__cpp_lib_span) */
#undef __glibcxx_want_span

#if !defined(__cpp_lib_mdspan)
# if (__cplusplus >  202302L)
#  define __glibcxx_mdspan 202406L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_mdspan)
#   define __cpp_lib_mdspan 202406L
#  endif
# elif (__cplusplus >  202002L)
#  define __glibcxx_mdspan 202207L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_mdspan)
#   define __cpp_lib_mdspan 202207L
#  endif
# endif
#endif /* !defined(__cpp_lib_mdspan) */
#undef __glibcxx_want_mdspan

#if !defined(__cpp_lib_aligned_accessor)
# if (__cplusplus >  202302L) && (__glibcxx_assume_aligned && __glibcxx_is_sufficiently_aligned)
#  define __glibcxx_aligned_accessor 202411L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_aligned_accessor)
#   define __cpp_lib_aligned_accessor 202411L
#  endif
# endif
#endif /* !defined(__cpp_lib_aligned_accessor) */
#undef __glibcxx_want_aligned_accessor

#if !defined(__cpp_lib_padded_layouts)
# if (__cplusplus >  202302L)
#  define __glibcxx_padded_layouts 202403L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_padded_layouts)
#  endif
# endif
#endif /* !defined(__cpp_lib_padded_layouts) */
#undef __glibcxx_want_padded_layouts

#if !defined(__cpp_lib_submdspan)
# if (__cplusplus >  202302L) && (__glibcxx_constant_wrapper >= 202506L)
#  define __glibcxx_submdspan 202603L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_submdspan)
#   define __cpp_lib_submdspan 202603L
#  endif
# endif
#endif /* !defined(__cpp_lib_submdspan) */
#undef __glibcxx_want_submdspan

#if !defined(__cpp_lib_ssize)
# if (__cplusplus >= 202002L)
#  define __glibcxx_ssize 201902L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ssize)
#   define __cpp_lib_ssize 201902L
#  endif
# endif
#endif /* !defined(__cpp_lib_ssize) */
#undef __glibcxx_want_ssize

#if !defined(__cpp_lib_three_way_comparison)
# if (__cplusplus >= 202002L) && (__cpp_impl_three_way_comparison >= 201907L && __glibcxx_concepts)
#  define __glibcxx_three_way_comparison 201907L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_three_way_comparison)
#   define __cpp_lib_three_way_comparison 201907L
#  endif
# endif
#endif /* !defined(__cpp_lib_three_way_comparison) */
#undef __glibcxx_want_three_way_comparison

#if !defined(__cpp_lib_to_address)
# if (__cplusplus >= 202002L)
#  define __glibcxx_to_address 201711L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_address)
#   define __cpp_lib_to_address 201711L
#  endif
# endif
#endif /* !defined(__cpp_lib_to_address) */
#undef __glibcxx_want_to_address

#if !defined(__cpp_lib_to_array)
# if (__cplusplus >= 202002L) && (__cpp_generic_lambdas >= 201707L)
#  define __glibcxx_to_array 201907L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_array)
#   define __cpp_lib_to_array 201907L
#  endif
# endif
#endif /* !defined(__cpp_lib_to_array) */
#undef __glibcxx_want_to_array

#if !defined(__cpp_lib_type_identity)
# if (__cplusplus >= 202002L)
#  define __glibcxx_type_identity 201806L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_type_identity)
#   define __cpp_lib_type_identity 201806L
#  endif
# endif
#endif /* !defined(__cpp_lib_type_identity) */
#undef __glibcxx_want_type_identity

#if !defined(__cpp_lib_unwrap_ref)
# if (__cplusplus >= 202002L)
#  define __glibcxx_unwrap_ref 201811L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_unwrap_ref)
#   define __cpp_lib_unwrap_ref 201811L
#  endif
# endif
#endif /* !defined(__cpp_lib_unwrap_ref) */
#undef __glibcxx_want_unwrap_ref

#if !defined(__cpp_lib_constexpr_iterator)
# if (__cplusplus >= 202002L)
#  define __glibcxx_constexpr_iterator 201811L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_iterator)
#   define __cpp_lib_constexpr_iterator 201811L
#  endif
# endif
#endif /* !defined(__cpp_lib_constexpr_iterator) */
#undef __glibcxx_want_constexpr_iterator

#if !defined(__cpp_lib_interpolate)
# if (__cplusplus >= 202002L)
#  define __glibcxx_interpolate 201902L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_interpolate)
#   define __cpp_lib_interpolate 201902L
#  endif
# endif
#endif /* !defined(__cpp_lib_interpolate) */
#undef __glibcxx_want_interpolate

#if !defined(__cpp_lib_constexpr_utility)
# if (__cplusplus >= 202002L)
#  define __glibcxx_constexpr_utility 201811L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_utility)
#   define __cpp_lib_constexpr_utility 201811L
#  endif
# endif
#endif /* !defined(__cpp_lib_constexpr_utility) */
#undef __glibcxx_want_constexpr_utility

#if !defined(__cpp_lib_shift)
# if (__cplusplus >  202002L)
#  define __glibcxx_shift 202202L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_shift)
#   define __cpp_lib_shift 202202L
#  endif
# elif (__cplusplus >= 202002L)
#  define __glibcxx_shift 201806L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_shift)
#   define __cpp_lib_shift 201806L
#  endif
# endif
#endif /* !defined(__cpp_lib_shift) */
#undef __glibcxx_want_shift

#if !defined(__cpp_lib_ranges)
# if (__cplusplus >  202302L) && (__glibcxx_concepts)
#  define __glibcxx_ranges 202406L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges)
#   define __cpp_lib_ranges 202406L
#  endif
# elif (__cplusplus >  202002L) && (__glibcxx_concepts)
#  define __glibcxx_ranges 202302L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges)
#   define __cpp_lib_ranges 202302L
#  endif
# elif (__cplusplus >= 202002L) && (__glibcxx_concepts)
#  define __glibcxx_ranges 202110L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges)
#   define __cpp_lib_ranges 202110L
#  endif
# endif
#endif /* !defined(__cpp_lib_ranges) */
#undef __glibcxx_want_ranges

#if !defined(__cpp_lib_constexpr_numeric)
# if (__cplusplus >= 202002L)
#  define __glibcxx_constexpr_numeric 201911L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_numeric)
#   define __cpp_lib_constexpr_numeric 201911L
#  endif
# endif
#endif /* !defined(__cpp_lib_constexpr_numeric) */
#undef __glibcxx_want_constexpr_numeric

#if !defined(__cpp_lib_constexpr_functional)
# if (__cplusplus >= 202002L)
#  define __glibcxx_constexpr_functional 201907L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_functional)
#   define __cpp_lib_constexpr_functional 201907L
#  endif
# endif
#endif /* !defined(__cpp_lib_constexpr_functional) */
#undef __glibcxx_want_constexpr_functional

#if !defined(__cpp_lib_constexpr_algorithms)
# if (__cplusplus >  202302L)
#  define __glibcxx_constexpr_algorithms 202306L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_algorithms)
#   define __cpp_lib_constexpr_algorithms 202306L
#  endif
# elif (__cplusplus >= 202002L)
#  define __glibcxx_constexpr_algorithms 201806L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_algorithms)
#   define __cpp_lib_constexpr_algorithms 201806L
#  endif
# endif
#endif /* !defined(__cpp_lib_constexpr_algorithms) */
#undef __glibcxx_want_constexpr_algorithms

#if !defined(__cpp_lib_constexpr_tuple)
# if (__cplusplus >= 202002L)
#  define __glibcxx_constexpr_tuple 201811L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_tuple)
#   define __cpp_lib_constexpr_tuple 201811L
#  endif
# endif
#endif /* !defined(__cpp_lib_constexpr_tuple) */
#undef __glibcxx_want_constexpr_tuple

#if !defined(__cpp_lib_constexpr_memory)
# if (__cplusplus >  202002L) && (__cpp_constexpr_dynamic_alloc)
#  define __glibcxx_constexpr_memory 202202L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_memory)
#   define __cpp_lib_constexpr_memory 202202L
#  endif
# elif (__cplusplus >= 202002L)
#  define __glibcxx_constexpr_memory 201811L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_memory)
#   define __cpp_lib_constexpr_memory 201811L
#  endif
# endif
#endif /* !defined(__cpp_lib_constexpr_memory) */
#undef __glibcxx_want_constexpr_memory

#if !defined(__cpp_lib_atomic_shared_ptr)
# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
#  define __glibcxx_atomic_shared_ptr 201711L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_shared_ptr)
#   define __cpp_lib_atomic_shared_ptr 201711L
#  endif
# endif
#endif /* !defined(__cpp_lib_atomic_shared_ptr) */
#undef __glibcxx_want_atomic_shared_ptr

#if !defined(__cpp_lib_atomic_wait)
# if (__cplusplus >= 202002L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED
#  define __glibcxx_atomic_wait 201907L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_wait)
#   define __cpp_lib_atomic_wait 201907L
#  endif
# elif (__cplusplus >= 202002L) && !defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED && (defined(_GLIBCXX_HAVE_LINUX_FUTEX))
#  define __glibcxx_atomic_wait 201907L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_atomic_wait)
#   define __cpp_lib_atomic_wait 201907L
#  endif
# endif
#endif /* !defined(__cpp_lib_atomic_wait) */
#undef __glibcxx_want_atomic_wait

#if !defined(__cpp_lib_barrier)
# if (__cplusplus >= 202002L) && (__cpp_aligned_new && __glibcxx_atomic_wait)
#  define __glibcxx_barrier 201907L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_barrier)
#   define __cpp_lib_barrier 201907L
#  endif
# endif
#endif /* !defined(__cpp_lib_barrier) */
#undef __glibcxx_want_barrier

#if !defined(__cpp_lib_constexpr_exceptions)
# if (__cplusplus >  202302L) && _GLIBCXX_USE_CXX11_ABI && (__cpp_constexpr_exceptions >= 202411L)
#  define __glibcxx_constexpr_exceptions 202502L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_exceptions)
#   define __cpp_lib_constexpr_exceptions 202502L
#  endif
# endif
#endif /* !defined(__cpp_lib_constexpr_exceptions) */
#undef __glibcxx_want_constexpr_exceptions

#if !defined(__cpp_lib_format)
# if (__cplusplus >  202302L) && _GLIBCXX_HOSTED
#  define __glibcxx_format 202603L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_format)
#   define __cpp_lib_format 202603L
#  endif
# elif (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
#  define __glibcxx_format 202304L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_format)
#   define __cpp_lib_format 202304L
#  endif
# endif
#endif /* !defined(__cpp_lib_format) */
#undef __glibcxx_want_format

#if !defined(__cpp_lib_constexpr_format)
# if (__cplusplus >  202302L) && _GLIBCXX_USE_CXX11_ABI && _GLIBCXX_HOSTED && (__cpp_lib_constexpr_exceptions >= 202502L)
#  define __glibcxx_constexpr_format 202511L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_format)
#   define __cpp_lib_constexpr_format 202511L
#  endif
# endif
#endif /* !defined(__cpp_lib_constexpr_format) */
#undef __glibcxx_want_constexpr_format

#if !defined(__cpp_lib_format_uchar)
# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
#  define __glibcxx_format_uchar 202311L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_format_uchar)
#   define __cpp_lib_format_uchar 202311L
#  endif
# endif
#endif /* !defined(__cpp_lib_format_uchar) */
#undef __glibcxx_want_format_uchar

#if !defined(__cpp_lib_constexpr_complex)
# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
#  define __glibcxx_constexpr_complex 201711L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_complex)
#   define __cpp_lib_constexpr_complex 201711L
#  endif
# endif
#endif /* !defined(__cpp_lib_constexpr_complex) */
#undef __glibcxx_want_constexpr_complex

#if !defined(__cpp_lib_constexpr_dynamic_alloc)
# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
#  define __glibcxx_constexpr_dynamic_alloc 201907L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_dynamic_alloc)
#   define __cpp_lib_constexpr_dynamic_alloc 201907L
#  endif
# endif
#endif /* !defined(__cpp_lib_constexpr_dynamic_alloc) */
#undef __glibcxx_want_constexpr_dynamic_alloc

#if !defined(__cpp_lib_constexpr_flat_map)
# if (__cplusplus >  202302L)
#  define __glibcxx_constexpr_flat_map 202502L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_flat_map)
#   define __cpp_lib_constexpr_flat_map 202502L
#  endif
# endif
#endif /* !defined(__cpp_lib_constexpr_flat_map) */
#undef __glibcxx_want_constexpr_flat_map

#if !defined(__cpp_lib_constexpr_flat_set)
# if (__cplusplus >  202302L)
#  define __glibcxx_constexpr_flat_set 202502L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_flat_set)
#   define __cpp_lib_constexpr_flat_set 202502L
#  endif
# endif
#endif /* !defined(__cpp_lib_constexpr_flat_set) */
#undef __glibcxx_want_constexpr_flat_set

#if !defined(__cpp_lib_constexpr_string)
# if (__cplusplus >  202302L) && _GLIBCXX_USE_CXX11_ABI && _GLIBCXX_HOSTED
#  define __glibcxx_constexpr_string 202511L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_string)
#   define __cpp_lib_constexpr_string 202511L
#  endif
# elif (__cplusplus >= 202002L) && _GLIBCXX_USE_CXX11_ABI && _GLIBCXX_HOSTED && (defined(__glibcxx_is_constant_evaluated))
#  define __glibcxx_constexpr_string 201907L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_string)
#   define __cpp_lib_constexpr_string 201907L
#  endif
# elif (__cplusplus >= 202002L) && !_GLIBCXX_USE_CXX11_ABI && _GLIBCXX_HOSTED && (defined(__glibcxx_is_constant_evaluated))
#  define __glibcxx_constexpr_string 201811L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_string)
#   define __cpp_lib_constexpr_string 201811L
#  endif
# elif (__cplusplus >= 201703L) && _GLIBCXX_HOSTED && (_GLIBCXX_HAVE_IS_CONSTANT_EVALUATED)
#  define __glibcxx_constexpr_string 201611L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_string)
#   define __cpp_lib_constexpr_string 201611L
#  endif
# endif
#endif /* !defined(__cpp_lib_constexpr_string) */
#undef __glibcxx_want_constexpr_string

#if !defined(__cpp_lib_constexpr_vector)
# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
#  define __glibcxx_constexpr_vector 201907L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_vector)
#   define __cpp_lib_constexpr_vector 201907L
#  endif
# endif
#endif /* !defined(__cpp_lib_constexpr_vector) */
#undef __glibcxx_want_constexpr_vector

#if !defined(__cpp_lib_constexpr_deque)
# if (__cplusplus >  202302L) && _GLIBCXX_HOSTED
#  define __glibcxx_constexpr_deque 202502L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_deque)
#   define __cpp_lib_constexpr_deque 202502L
#  endif
# endif
#endif /* !defined(__cpp_lib_constexpr_deque) */
#undef __glibcxx_want_constexpr_deque

#if !defined(__cpp_lib_constexpr_queue)
# if (__cplusplus >  202302L) && _GLIBCXX_HOSTED
#  define __glibcxx_constexpr_queue 202502L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_queue)
#   define __cpp_lib_constexpr_queue 202502L
#  endif
# endif
#endif /* !defined(__cpp_lib_constexpr_queue) */
#undef __glibcxx_want_constexpr_queue

#if !defined(__cpp_lib_constexpr_stack)
# if (__cplusplus >  202302L) && _GLIBCXX_HOSTED
#  define __glibcxx_constexpr_stack 202502L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_stack)
#   define __cpp_lib_constexpr_stack 202502L
#  endif
# endif
#endif /* !defined(__cpp_lib_constexpr_stack) */
#undef __glibcxx_want_constexpr_stack

#if !defined(__cpp_lib_constrained_equality)
# if (__cplusplus >  202002L) && (__glibcxx_three_way_comparison)
#  define __glibcxx_constrained_equality 202411L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constrained_equality)
#   define __cpp_lib_constrained_equality 202411L
#  endif
# elif (__cplusplus >= 202002L) && (__glibcxx_three_way_comparison)
#  define __glibcxx_constrained_equality 202403L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constrained_equality)
#   define __cpp_lib_constrained_equality 202403L
#  endif
# endif
#endif /* !defined(__cpp_lib_constrained_equality) */
#undef __glibcxx_want_constrained_equality

#if !defined(__cpp_lib_erase_if)
# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
#  define __glibcxx_erase_if 202002L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_erase_if)
#   define __cpp_lib_erase_if 202002L
#  endif
# endif
#endif /* !defined(__cpp_lib_erase_if) */
#undef __glibcxx_want_erase_if

#if !defined(__cpp_lib_generic_unordered_lookup)
# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
#  define __glibcxx_generic_unordered_lookup 201811L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_generic_unordered_lookup)
#   define __cpp_lib_generic_unordered_lookup 201811L
#  endif
# endif
#endif /* !defined(__cpp_lib_generic_unordered_lookup) */
#undef __glibcxx_want_generic_unordered_lookup

#if !defined(__cpp_lib_jthread)
# if (__cplusplus >= 202002L) && defined(_GLIBCXX_HAS_GTHREADS) && _GLIBCXX_HOSTED
#  define __glibcxx_jthread 201911L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_jthread)
#   define __cpp_lib_jthread 201911L
#  endif
# endif
#endif /* !defined(__cpp_lib_jthread) */
#undef __glibcxx_want_jthread

#if !defined(__cpp_lib_latch)
# if (__cplusplus >= 202002L) && (__glibcxx_atomic_wait)
#  define __glibcxx_latch 201907L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_latch)
#   define __cpp_lib_latch 201907L
#  endif
# endif
#endif /* !defined(__cpp_lib_latch) */
#undef __glibcxx_want_latch

#if !defined(__cpp_lib_list_remove_return_type)
# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
#  define __glibcxx_list_remove_return_type 201806L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_list_remove_return_type)
#   define __cpp_lib_list_remove_return_type 201806L
#  endif
# endif
#endif /* !defined(__cpp_lib_list_remove_return_type) */
#undef __glibcxx_want_list_remove_return_type

#if !defined(__cpp_lib_polymorphic_allocator)
# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
#  define __glibcxx_polymorphic_allocator 201902L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_polymorphic_allocator)
#   define __cpp_lib_polymorphic_allocator 201902L
#  endif
# endif
#endif /* !defined(__cpp_lib_polymorphic_allocator) */
#undef __glibcxx_want_polymorphic_allocator

#if !defined(__cpp_lib_move_iterator_concept)
# if (__cplusplus >= 202002L) && (__glibcxx_concepts)
#  define __glibcxx_move_iterator_concept 202207L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_move_iterator_concept)
#   define __cpp_lib_move_iterator_concept 202207L
#  endif
# endif
#endif /* !defined(__cpp_lib_move_iterator_concept) */
#undef __glibcxx_want_move_iterator_concept

#if !defined(__cpp_lib_semaphore)
# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED && (__glibcxx_atomic_wait)
#  define __glibcxx_semaphore 201907L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_semaphore)
#   define __cpp_lib_semaphore 201907L
#  endif
# endif
#endif /* !defined(__cpp_lib_semaphore) */
#undef __glibcxx_want_semaphore

#if !defined(__cpp_lib_smart_ptr_for_overwrite)
# if (__cplusplus >= 202002L) && _GLIBCXX_HOSTED
#  define __glibcxx_smart_ptr_for_overwrite 202002L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_smart_ptr_for_overwrite)
#   define __cpp_lib_smart_ptr_for_overwrite 202002L
#  endif
# endif
#endif /* !defined(__cpp_lib_smart_ptr_for_overwrite) */
#undef __glibcxx_want_smart_ptr_for_overwrite

#if !defined(__cpp_lib_syncbuf)
# if (__cplusplus >= 202002L) && _GLIBCXX_USE_CXX11_ABI && _GLIBCXX_HOSTED
#  define __glibcxx_syncbuf 201803L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_syncbuf)
#   define __cpp_lib_syncbuf 201803L
#  endif
# endif
#endif /* !defined(__cpp_lib_syncbuf) */
#undef __glibcxx_want_syncbuf

#if !defined(__cpp_lib_byteswap)
# if (__cplusplus >  202002L)
#  define __glibcxx_byteswap 202110L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_byteswap)
#   define __cpp_lib_byteswap 202110L
#  endif
# endif
#endif /* !defined(__cpp_lib_byteswap) */
#undef __glibcxx_want_byteswap

#if !defined(__cpp_lib_constexpr_charconv)
# if (__cplusplus >  202002L)
#  define __glibcxx_constexpr_charconv 202207L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_charconv)
#   define __cpp_lib_constexpr_charconv 202207L
#  endif
# endif
#endif /* !defined(__cpp_lib_constexpr_charconv) */
#undef __glibcxx_want_constexpr_charconv

#if !defined(__cpp_lib_constexpr_typeinfo)
# if (__cplusplus >  202002L)
#  define __glibcxx_constexpr_typeinfo 202106L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_typeinfo)
#   define __cpp_lib_constexpr_typeinfo 202106L
#  endif
# endif
#endif /* !defined(__cpp_lib_constexpr_typeinfo) */
#undef __glibcxx_want_constexpr_typeinfo

#if !defined(__cpp_lib_expected)
# if (__cplusplus >  202002L) && (__cpp_concepts >= 202002L)
#  define __glibcxx_expected 202211L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_expected)
#   define __cpp_lib_expected 202211L
#  endif
# endif
#endif /* !defined(__cpp_lib_expected) */
#undef __glibcxx_want_expected

#if !defined(__cpp_lib_format_ranges)
# if (__cplusplus >  202002L) && _GLIBCXX_HOSTED
#  define __glibcxx_format_ranges 202207L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_format_ranges)
#   define __cpp_lib_format_ranges 202207L
#  endif
# endif
#endif /* !defined(__cpp_lib_format_ranges) */
#undef __glibcxx_want_format_ranges

#if !defined(__cpp_lib_format_path)
# if (__cplusplus >  202302L) && _GLIBCXX_HOSTED
#  define __glibcxx_format_path 202506L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_format_path)
#   define __cpp_lib_format_path 202506L
#  endif
# endif
#endif /* !defined(__cpp_lib_format_path) */
#undef __glibcxx_want_format_path

#if !defined(__cpp_lib_freestanding_algorithm)
# if (__cplusplus >  202002L)
#  define __glibcxx_freestanding_algorithm 202311L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_algorithm)
#   define __cpp_lib_freestanding_algorithm 202311L
#  endif
# endif
#endif /* !defined(__cpp_lib_freestanding_algorithm) */
#undef __glibcxx_want_freestanding_algorithm

#if !defined(__cpp_lib_freestanding_array)
# if (__cplusplus >  202002L)
#  define __glibcxx_freestanding_array 202311L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_array)
#   define __cpp_lib_freestanding_array 202311L
#  endif
# endif
#endif /* !defined(__cpp_lib_freestanding_array) */
#undef __glibcxx_want_freestanding_array

#if !defined(__cpp_lib_freestanding_cstring)
# if (__cplusplus >  202002L)
#  define __glibcxx_freestanding_cstring 202311L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_cstring)
#   define __cpp_lib_freestanding_cstring 202311L
#  endif
# endif
#endif /* !defined(__cpp_lib_freestanding_cstring) */
#undef __glibcxx_want_freestanding_cstring

#if !defined(__cpp_lib_freestanding_expected)
# if (__cplusplus >  202002L) && (__cpp_lib_expected)
#  define __glibcxx_freestanding_expected 202311L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_expected)
#   define __cpp_lib_freestanding_expected 202311L
#  endif
# endif
#endif /* !defined(__cpp_lib_freestanding_expected) */
#undef __glibcxx_want_freestanding_expected

#if !defined(__cpp_lib_freestanding_optional)
# if (__cplusplus >  202002L)
#  define __glibcxx_freestanding_optional 202311L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_optional)
#   define __cpp_lib_freestanding_optional 202311L
#  endif
# endif
#endif /* !defined(__cpp_lib_freestanding_optional) */
#undef __glibcxx_want_freestanding_optional

#if !defined(__cpp_lib_freestanding_string_view)
# if (__cplusplus >  202002L)
#  define __glibcxx_freestanding_string_view 202311L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_string_view)
#   define __cpp_lib_freestanding_string_view 202311L
#  endif
# endif
#endif /* !defined(__cpp_lib_freestanding_string_view) */
#undef __glibcxx_want_freestanding_string_view

#if !defined(__cpp_lib_freestanding_variant)
# if (__cplusplus >  202002L)
#  define __glibcxx_freestanding_variant 202311L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_freestanding_variant)
#   define __cpp_lib_freestanding_variant 202311L
#  endif
# endif
#endif /* !defined(__cpp_lib_freestanding_variant) */
#undef __glibcxx_want_freestanding_variant

#if !defined(__cpp_lib_invoke_r)
# if (__cplusplus >  202002L)
#  define __glibcxx_invoke_r 202106L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_invoke_r)
#   define __cpp_lib_invoke_r 202106L
#  endif
# endif
#endif /* !defined(__cpp_lib_invoke_r) */
#undef __glibcxx_want_invoke_r

#if !defined(__cpp_lib_associative_heterogeneous_erasure)
# if (__cplusplus >  202002L)
#  define __glibcxx_associative_heterogeneous_erasure 202110L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_associative_heterogeneous_erasure)
#   define __cpp_lib_associative_heterogeneous_erasure 202110L
#  endif
# endif
#endif /* !defined(__cpp_lib_associative_heterogeneous_erasure) */
#undef __glibcxx_want_associative_heterogeneous_erasure

#if !defined(__cpp_lib_associative_heterogeneous_insertion)
# if (__cplusplus >  202302L)
#  define __glibcxx_associative_heterogeneous_insertion 202306L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_associative_heterogeneous_insertion)
#   define __cpp_lib_associative_heterogeneous_insertion 202306L
#  endif
# endif
#endif /* !defined(__cpp_lib_associative_heterogeneous_insertion) */
#undef __glibcxx_want_associative_heterogeneous_insertion

#if !defined(__cpp_lib_is_scoped_enum)
# if (__cplusplus >  202002L)
#  define __glibcxx_is_scoped_enum 202011L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_scoped_enum)
#   define __cpp_lib_is_scoped_enum 202011L
#  endif
# endif
#endif /* !defined(__cpp_lib_is_scoped_enum) */
#undef __glibcxx_want_is_scoped_enum

#if !defined(__cpp_lib_reference_from_temporary)
# if (__cplusplus >  202002L) && (__has_builtin(__reference_constructs_from_temporary) && __has_builtin(__reference_converts_from_temporary))
#  define __glibcxx_reference_from_temporary 202202L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_reference_from_temporary)
#   define __cpp_lib_reference_from_temporary 202202L
#  endif
# endif
#endif /* !defined(__cpp_lib_reference_from_temporary) */
#undef __glibcxx_want_reference_from_temporary

#if !defined(__cpp_lib_containers_ranges)
# if (__cplusplus >  202002L) && _GLIBCXX_HOSTED
#  define __glibcxx_containers_ranges 202202L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_containers_ranges)
#   define __cpp_lib_containers_ranges 202202L
#  endif
# endif
#endif /* !defined(__cpp_lib_containers_ranges) */
#undef __glibcxx_want_containers_ranges

#if !defined(__cpp_lib_ranges_to_container)
# if (__cplusplus >  202002L) && _GLIBCXX_HOSTED
#  define __glibcxx_ranges_to_container 202202L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_to_container)
#   define __cpp_lib_ranges_to_container 202202L
#  endif
# endif
#endif /* !defined(__cpp_lib_ranges_to_container) */
#undef __glibcxx_want_ranges_to_container

#if !defined(__cpp_lib_ranges_zip)
# if (__cplusplus >  202002L)
#  define __glibcxx_ranges_zip 202110L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_zip)
#   define __cpp_lib_ranges_zip 202110L
#  endif
# endif
#endif /* !defined(__cpp_lib_ranges_zip) */
#undef __glibcxx_want_ranges_zip

#if !defined(__cpp_lib_ranges_chunk)
# if (__cplusplus >  202002L)
#  define __glibcxx_ranges_chunk 202202L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_chunk)
#   define __cpp_lib_ranges_chunk 202202L
#  endif
# endif
#endif /* !defined(__cpp_lib_ranges_chunk) */
#undef __glibcxx_want_ranges_chunk

#if !defined(__cpp_lib_ranges_slide)
# if (__cplusplus >  202002L)
#  define __glibcxx_ranges_slide 202202L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_slide)
#   define __cpp_lib_ranges_slide 202202L
#  endif
# endif
#endif /* !defined(__cpp_lib_ranges_slide) */
#undef __glibcxx_want_ranges_slide

#if !defined(__cpp_lib_ranges_chunk_by)
# if (__cplusplus >  202002L)
#  define __glibcxx_ranges_chunk_by 202202L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_chunk_by)
#   define __cpp_lib_ranges_chunk_by 202202L
#  endif
# endif
#endif /* !defined(__cpp_lib_ranges_chunk_by) */
#undef __glibcxx_want_ranges_chunk_by

#if !defined(__cpp_lib_ranges_join_with)
# if (__cplusplus >  202002L)
#  define __glibcxx_ranges_join_with 202202L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_join_with)
#   define __cpp_lib_ranges_join_with 202202L
#  endif
# endif
#endif /* !defined(__cpp_lib_ranges_join_with) */
#undef __glibcxx_want_ranges_join_with

#if !defined(__cpp_lib_ranges_repeat)
# if (__cplusplus >  202002L)
#  define __glibcxx_ranges_repeat 202207L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_repeat)
#   define __cpp_lib_ranges_repeat 202207L
#  endif
# endif
#endif /* !defined(__cpp_lib_ranges_repeat) */
#undef __glibcxx_want_ranges_repeat

#if !defined(__cpp_lib_ranges_stride)
# if (__cplusplus >  202002L)
#  define __glibcxx_ranges_stride 202207L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_stride)
#   define __cpp_lib_ranges_stride 202207L
#  endif
# endif
#endif /* !defined(__cpp_lib_ranges_stride) */
#undef __glibcxx_want_ranges_stride

#if !defined(__cpp_lib_ranges_cartesian_product)
# if (__cplusplus >  202002L)
#  define __glibcxx_ranges_cartesian_product 202207L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_cartesian_product)
#   define __cpp_lib_ranges_cartesian_product 202207L
#  endif
# endif
#endif /* !defined(__cpp_lib_ranges_cartesian_product) */
#undef __glibcxx_want_ranges_cartesian_product

#if !defined(__cpp_lib_ranges_as_rvalue)
# if (__cplusplus >  202002L)
#  define __glibcxx_ranges_as_rvalue 202207L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_as_rvalue)
#   define __cpp_lib_ranges_as_rvalue 202207L
#  endif
# endif
#endif /* !defined(__cpp_lib_ranges_as_rvalue) */
#undef __glibcxx_want_ranges_as_rvalue

#if !defined(__cpp_lib_ranges_as_const)
# if (__cplusplus >  202002L)
#  define __glibcxx_ranges_as_const 202311L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_as_const)
#   define __cpp_lib_ranges_as_const 202311L
#  endif
# endif
#endif /* !defined(__cpp_lib_ranges_as_const) */
#undef __glibcxx_want_ranges_as_const

#if !defined(__cpp_lib_ranges_enumerate)
# if (__cplusplus >  202002L)
#  define __glibcxx_ranges_enumerate 202302L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_enumerate)
#   define __cpp_lib_ranges_enumerate 202302L
#  endif
# endif
#endif /* !defined(__cpp_lib_ranges_enumerate) */
#undef __glibcxx_want_ranges_enumerate

#if !defined(__cpp_lib_ranges_fold)
# if (__cplusplus >  202002L)
#  define __glibcxx_ranges_fold 202207L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_fold)
#   define __cpp_lib_ranges_fold 202207L
#  endif
# endif
#endif /* !defined(__cpp_lib_ranges_fold) */
#undef __glibcxx_want_ranges_fold

#if !defined(__cpp_lib_ranges_contains)
# if (__cplusplus >  202002L)
#  define __glibcxx_ranges_contains 202207L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_contains)
#   define __cpp_lib_ranges_contains 202207L
#  endif
# endif
#endif /* !defined(__cpp_lib_ranges_contains) */
#undef __glibcxx_want_ranges_contains

#if !defined(__cpp_lib_ranges_iota)
# if (__cplusplus >  202002L)
#  define __glibcxx_ranges_iota 202202L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_iota)
#   define __cpp_lib_ranges_iota 202202L
#  endif
# endif
#endif /* !defined(__cpp_lib_ranges_iota) */
#undef __glibcxx_want_ranges_iota

#if !defined(__cpp_lib_ranges_find_last)
# if (__cplusplus >  202002L)
#  define __glibcxx_ranges_find_last 202207L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_find_last)
#   define __cpp_lib_ranges_find_last 202207L
#  endif
# endif
#endif /* !defined(__cpp_lib_ranges_find_last) */
#undef __glibcxx_want_ranges_find_last

#if !defined(__cpp_lib_ranges_starts_ends_with)
# if (__cplusplus >  202002L)
#  define __glibcxx_ranges_starts_ends_with 202106L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_starts_ends_with)
#   define __cpp_lib_ranges_starts_ends_with 202106L
#  endif
# endif
#endif /* !defined(__cpp_lib_ranges_starts_ends_with) */
#undef __glibcxx_want_ranges_starts_ends_with

#if !defined(__cpp_lib_ranges_indices)
# if (__cplusplus >  202302L)
#  define __glibcxx_ranges_indices 202506L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_indices)
#   define __cpp_lib_ranges_indices 202506L
#  endif
# endif
#endif /* !defined(__cpp_lib_ranges_indices) */
#undef __glibcxx_want_ranges_indices

#if !defined(__cpp_lib_constexpr_bitset)
# if (__cplusplus >  202002L) && _GLIBCXX_HOSTED && (__cpp_constexpr_dynamic_alloc)
#  define __glibcxx_constexpr_bitset 202202L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_bitset)
#   define __cpp_lib_constexpr_bitset 202202L
#  endif
# endif
#endif /* !defined(__cpp_lib_constexpr_bitset) */
#undef __glibcxx_want_constexpr_bitset

#if !defined(__cpp_lib_stdatomic_h)
# if (__cplusplus >  202002L)
#  define __glibcxx_stdatomic_h 202011L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_stdatomic_h)
#   define __cpp_lib_stdatomic_h 202011L
#  endif
# endif
#endif /* !defined(__cpp_lib_stdatomic_h) */
#undef __glibcxx_want_stdatomic_h

#if !defined(__cpp_lib_stdbit_h)
# if (__cplusplus >  202302L)
#  define __glibcxx_stdbit_h 202603L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_stdbit_h)
#   define __cpp_lib_stdbit_h 202603L
#  endif
# endif
#endif /* !defined(__cpp_lib_stdbit_h) */
#undef __glibcxx_want_stdbit_h

#if !defined(__cpp_lib_stdckdint_h)
# if (__cplusplus >  202302L)
#  define __glibcxx_stdckdint_h 202603L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_stdckdint_h)
#   define __cpp_lib_stdckdint_h 202603L
#  endif
# endif
#endif /* !defined(__cpp_lib_stdckdint_h) */
#undef __glibcxx_want_stdckdint_h

#if !defined(__cpp_lib_adaptor_iterator_pair_constructor)
# if (__cplusplus >  202002L) && _GLIBCXX_HOSTED
#  define __glibcxx_adaptor_iterator_pair_constructor 202106L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_adaptor_iterator_pair_constructor)
#   define __cpp_lib_adaptor_iterator_pair_constructor 202106L
#  endif
# endif
#endif /* !defined(__cpp_lib_adaptor_iterator_pair_constructor) */
#undef __glibcxx_want_adaptor_iterator_pair_constructor

#if !defined(__cpp_lib_flat_map)
# if (__cplusplus >  202002L)
#  define __glibcxx_flat_map 202511L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_flat_map)
#   define __cpp_lib_flat_map 202511L
#  endif
# endif
#endif /* !defined(__cpp_lib_flat_map) */
#undef __glibcxx_want_flat_map

#if !defined(__cpp_lib_flat_set)
# if (__cplusplus >  202002L)
#  define __glibcxx_flat_set 202511L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_flat_set)
#   define __cpp_lib_flat_set 202511L
#  endif
# endif
#endif /* !defined(__cpp_lib_flat_set) */
#undef __glibcxx_want_flat_set

#if !defined(__cpp_lib_common_reference)
# if (__cplusplus >= 202002L)
#  define __glibcxx_common_reference 202302L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_common_reference)
#   define __cpp_lib_common_reference 202302L
#  endif
# endif
#endif /* !defined(__cpp_lib_common_reference) */
#undef __glibcxx_want_common_reference

#if !defined(__cpp_lib_common_reference_wrapper)
# if (__cplusplus >= 202002L)
#  define __glibcxx_common_reference_wrapper 202302L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_common_reference_wrapper)
#   define __cpp_lib_common_reference_wrapper 202302L
#  endif
# endif
#endif /* !defined(__cpp_lib_common_reference_wrapper) */
#undef __glibcxx_want_common_reference_wrapper

#if !defined(__cpp_lib_formatters)
# if (__cplusplus >  202002L) && _GLIBCXX_HOSTED
#  define __glibcxx_formatters 202302L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_formatters)
#   define __cpp_lib_formatters 202302L
#  endif
# endif
#endif /* !defined(__cpp_lib_formatters) */
#undef __glibcxx_want_formatters

#if !defined(__cpp_lib_forward_like)
# if (__cplusplus >  202002L)
#  define __glibcxx_forward_like 202207L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_forward_like)
#   define __cpp_lib_forward_like 202207L
#  endif
# endif
#endif /* !defined(__cpp_lib_forward_like) */
#undef __glibcxx_want_forward_like

#if !defined(__cpp_lib_generator)
# if (__cplusplus >  202002L) && (__glibcxx_coroutine && __cpp_sized_deallocation)
#  define __glibcxx_generator 202207L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_generator)
#   define __cpp_lib_generator 202207L
#  endif
# endif
#endif /* !defined(__cpp_lib_generator) */
#undef __glibcxx_want_generator

#if !defined(__cpp_lib_ios_noreplace)
# if (__cplusplus >  202002L) && _GLIBCXX_HOSTED
#  define __glibcxx_ios_noreplace 202207L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ios_noreplace)
#   define __cpp_lib_ios_noreplace 202207L
#  endif
# endif
#endif /* !defined(__cpp_lib_ios_noreplace) */
#undef __glibcxx_want_ios_noreplace

#if !defined(__cpp_lib_move_only_function)
# if (__cplusplus >  202002L) && _GLIBCXX_HOSTED
#  define __glibcxx_move_only_function 202110L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_move_only_function)
#   define __cpp_lib_move_only_function 202110L
#  endif
# endif
#endif /* !defined(__cpp_lib_move_only_function) */
#undef __glibcxx_want_move_only_function

#if !defined(__cpp_lib_copyable_function)
# if (__cplusplus >  202302L) && _GLIBCXX_HOSTED
#  define __glibcxx_copyable_function 202306L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_copyable_function)
#   define __cpp_lib_copyable_function 202306L
#  endif
# endif
#endif /* !defined(__cpp_lib_copyable_function) */
#undef __glibcxx_want_copyable_function

#if !defined(__cpp_lib_function_ref)
# if (__cplusplus >  202302L)
#  define __glibcxx_function_ref 202604L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_function_ref)
#   define __cpp_lib_function_ref 202604L
#  endif
# endif
#endif /* !defined(__cpp_lib_function_ref) */
#undef __glibcxx_want_function_ref

#if !defined(__cpp_lib_out_ptr)
# if (__cplusplus >  202002L)
#  define __glibcxx_out_ptr 202311L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_out_ptr)
#   define __cpp_lib_out_ptr 202311L
#  endif
# endif
#endif /* !defined(__cpp_lib_out_ptr) */
#undef __glibcxx_want_out_ptr

#if !defined(__cpp_lib_print)
# if (__cplusplus >  202002L) && _GLIBCXX_HOSTED
#  define __glibcxx_print 202406L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_print)
#   define __cpp_lib_print 202406L
#  endif
# endif
#endif /* !defined(__cpp_lib_print) */
#undef __glibcxx_want_print

#if !defined(__cpp_lib_spanstream)
# if (__cplusplus >  202002L) && _GLIBCXX_HOSTED && (__glibcxx_span)
#  define __glibcxx_spanstream 202106L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_spanstream)
#   define __cpp_lib_spanstream 202106L
#  endif
# endif
#endif /* !defined(__cpp_lib_spanstream) */
#undef __glibcxx_want_spanstream

#if !defined(__cpp_lib_stacktrace)
# if (__cplusplus >  202002L) && _GLIBCXX_HOSTED && (_GLIBCXX_HAVE_STACKTRACE)
#  define __glibcxx_stacktrace 202011L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_stacktrace)
#   define __cpp_lib_stacktrace 202011L
#  endif
# endif
#endif /* !defined(__cpp_lib_stacktrace) */
#undef __glibcxx_want_stacktrace

#if !defined(__cpp_lib_start_lifetime_as)
# if (__cplusplus >  202002L)
#  define __glibcxx_start_lifetime_as 202207L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_start_lifetime_as)
#   define __cpp_lib_start_lifetime_as 202207L
#  endif
# endif
#endif /* !defined(__cpp_lib_start_lifetime_as) */
#undef __glibcxx_want_start_lifetime_as

#if !defined(__cpp_lib_string_contains)
# if (__cplusplus >  202002L) && _GLIBCXX_HOSTED
#  define __glibcxx_string_contains 202011L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_contains)
#   define __cpp_lib_string_contains 202011L
#  endif
# endif
#endif /* !defined(__cpp_lib_string_contains) */
#undef __glibcxx_want_string_contains

#if !defined(__cpp_lib_string_resize_and_overwrite)
# if (__cplusplus >  202002L) && _GLIBCXX_HOSTED
#  define __glibcxx_string_resize_and_overwrite 202110L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_resize_and_overwrite)
#   define __cpp_lib_string_resize_and_overwrite 202110L
#  endif
# endif
#endif /* !defined(__cpp_lib_string_resize_and_overwrite) */
#undef __glibcxx_want_string_resize_and_overwrite

#if !defined(__cpp_lib_string_subview)
# if (__cplusplus >  202302L)
#  define __glibcxx_string_subview 202506L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_string_subview)
#   define __cpp_lib_string_subview 202506L
#  endif
# endif
#endif /* !defined(__cpp_lib_string_subview) */
#undef __glibcxx_want_string_subview

#if !defined(__cpp_lib_to_underlying)
# if (__cplusplus >  202002L)
#  define __glibcxx_to_underlying 202102L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_underlying)
#   define __cpp_lib_to_underlying 202102L
#  endif
# endif
#endif /* !defined(__cpp_lib_to_underlying) */
#undef __glibcxx_want_to_underlying

#if !defined(__cpp_lib_tuple_like)
# if (__cplusplus >  202302L) && (__cpp_explicit_this_parameter >= 202110L)
#  define __glibcxx_tuple_like 202311L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_tuple_like)
#   define __cpp_lib_tuple_like 202311L
#  endif
# elif (__cplusplus >  202002L)
#  define __glibcxx_tuple_like 202207L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_tuple_like)
#   define __cpp_lib_tuple_like 202207L
#  endif
# endif
#endif /* !defined(__cpp_lib_tuple_like) */
#undef __glibcxx_want_tuple_like

#if !defined(__cpp_lib_unreachable)
# if (__cplusplus >  202002L)
#  define __glibcxx_unreachable 202202L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_unreachable)
#   define __cpp_lib_unreachable 202202L
#  endif
# endif
#endif /* !defined(__cpp_lib_unreachable) */
#undef __glibcxx_want_unreachable

#if !defined(__cpp_lib_observable_checkpoint)
# if (__cplusplus >  202302L) && (__has_builtin(__builtin_observable_checkpoint))
#  define __glibcxx_observable_checkpoint 202506L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_observable_checkpoint)
#   define __cpp_lib_observable_checkpoint 202506L
#  endif
# endif
#endif /* !defined(__cpp_lib_observable_checkpoint) */
#undef __glibcxx_want_observable_checkpoint

#if !defined(__cpp_lib_algorithm_iterator_requirements)
# if (__cplusplus >= 202002L)
#  define __glibcxx_algorithm_iterator_requirements 202207L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_algorithm_iterator_requirements)
#   define __cpp_lib_algorithm_iterator_requirements 202207L
#  endif
# endif
#endif /* !defined(__cpp_lib_algorithm_iterator_requirements) */
#undef __glibcxx_want_algorithm_iterator_requirements

#if !defined(__cpp_lib_algorithm_default_value_type)
# if (__cplusplus >  202302L)
#  define __glibcxx_algorithm_default_value_type 202603L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_algorithm_default_value_type)
#   define __cpp_lib_algorithm_default_value_type 202603L
#  endif
# endif
#endif /* !defined(__cpp_lib_algorithm_default_value_type) */
#undef __glibcxx_want_algorithm_default_value_type

#if !defined(__cpp_lib_constexpr_new)
# if (__cplusplus >  202302L) && (__cpp_constexpr >= 202406L)
#  define __glibcxx_constexpr_new 202406L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_new)
#   define __cpp_lib_constexpr_new 202406L
#  endif
# endif
#endif /* !defined(__cpp_lib_constexpr_new) */
#undef __glibcxx_want_constexpr_new

#if !defined(__cpp_lib_debugging)
# if (__cplusplus >  202302L)
#  define __glibcxx_debugging 202403L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_debugging)
#   define __cpp_lib_debugging 202403L
#  endif
# endif
#endif /* !defined(__cpp_lib_debugging) */
#undef __glibcxx_want_debugging

#if !defined(__cpp_lib_fstream_native_handle)
# if (__cplusplus >  202302L) && _GLIBCXX_HOSTED
#  define __glibcxx_fstream_native_handle 202306L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_fstream_native_handle)
#   define __cpp_lib_fstream_native_handle 202306L
#  endif
# endif
#endif /* !defined(__cpp_lib_fstream_native_handle) */
#undef __glibcxx_want_fstream_native_handle

#if !defined(__cpp_lib_is_virtual_base_of)
# if (__cplusplus >  202302L) && (__has_builtin(__builtin_is_virtual_base_of))
#  define __glibcxx_is_virtual_base_of 202406L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_virtual_base_of)
#   define __cpp_lib_is_virtual_base_of 202406L
#  endif
# endif
#endif /* !defined(__cpp_lib_is_virtual_base_of) */
#undef __glibcxx_want_is_virtual_base_of

#if !defined(__cpp_lib_ranges_cache_latest)
# if (__cplusplus >  202302L)
#  define __glibcxx_ranges_cache_latest 202411L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_cache_latest)
#   define __cpp_lib_ranges_cache_latest 202411L
#  endif
# endif
#endif /* !defined(__cpp_lib_ranges_cache_latest) */
#undef __glibcxx_want_ranges_cache_latest

#if !defined(__cpp_lib_ranges_concat)
# if (__cplusplus >  202302L) && (__cpp_pack_indexing)
#  define __glibcxx_ranges_concat 202403L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_concat)
#   define __cpp_lib_ranges_concat 202403L
#  endif
# endif
#endif /* !defined(__cpp_lib_ranges_concat) */
#undef __glibcxx_want_ranges_concat

#if !defined(__cpp_lib_ratio)
# if (__cplusplus >  202302L)
#  define __glibcxx_ratio 202306L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ratio)
#   define __cpp_lib_ratio 202306L
#  endif
# endif
#endif /* !defined(__cpp_lib_ratio) */
#undef __glibcxx_want_ratio

#if !defined(__cpp_lib_reference_wrapper)
# if (__cplusplus >  202302L)
#  define __glibcxx_reference_wrapper 202403L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_reference_wrapper)
#   define __cpp_lib_reference_wrapper 202403L
#  endif
# endif
#endif /* !defined(__cpp_lib_reference_wrapper) */
#undef __glibcxx_want_reference_wrapper

#if !defined(__cpp_lib_saturation_arithmetic)
# if (__cplusplus >  202302L)
#  define __glibcxx_saturation_arithmetic 202603L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_saturation_arithmetic)
#   define __cpp_lib_saturation_arithmetic 202603L
#  endif
# endif
#endif /* !defined(__cpp_lib_saturation_arithmetic) */
#undef __glibcxx_want_saturation_arithmetic

#if !defined(__cpp_lib_text_encoding)
# if (__cplusplus >  202302L) && _GLIBCXX_HOSTED && (_GLIBCXX_USE_NL_LANGINFO_L)
#  define __glibcxx_text_encoding 202306L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_text_encoding)
#   define __cpp_lib_text_encoding 202306L
#  endif
# endif
#endif /* !defined(__cpp_lib_text_encoding) */
#undef __glibcxx_want_text_encoding

#if !defined(__cpp_lib_ranges_filter)
# if (__cplusplus >= 202002L)
#  define __glibcxx_ranges_filter 202603L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_filter)
#   define __cpp_lib_ranges_filter 202603L
#  endif
# endif
#endif /* !defined(__cpp_lib_ranges_filter) */
#undef __glibcxx_want_ranges_filter

#if !defined(__cpp_lib_ranges_as_input)
# if (__cplusplus >  202302L)
#  define __glibcxx_ranges_as_input 202502L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_ranges_as_input)
#   define __cpp_lib_ranges_as_input 202502L
#  endif
# endif
#endif /* !defined(__cpp_lib_ranges_as_input) */
#undef __glibcxx_want_ranges_as_input

#if !defined(__cpp_lib_to_string)
# if (__cplusplus >  202302L) && _GLIBCXX_HOSTED && (__glibcxx_to_chars)
#  define __glibcxx_to_string 202306L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_to_string)
#   define __cpp_lib_to_string 202306L
#  endif
# endif
#endif /* !defined(__cpp_lib_to_string) */
#undef __glibcxx_want_to_string

#if !defined(__cpp_lib_modules)
# if (__cplusplus >= 202002L) && (__cpp_modules)
#  define __glibcxx_modules 202207L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_modules)
#   define __cpp_lib_modules 202207L
#  endif
# endif
#endif /* !defined(__cpp_lib_modules) */
#undef __glibcxx_want_modules

#if !defined(__cpp_lib_start_lifetime)
# if (__cplusplus >  202302L) && (__has_builtin(__builtin_start_lifetime))
#  define __glibcxx_start_lifetime 202603L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_start_lifetime)
#   define __cpp_lib_start_lifetime 202603L
#  endif
# endif
#endif /* !defined(__cpp_lib_start_lifetime) */
#undef __glibcxx_want_start_lifetime

#if !defined(__cpp_lib_inplace_vector)
# if (__cplusplus >  202302L)
#  define __glibcxx_inplace_vector 202603L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_inplace_vector)
#   define __cpp_lib_inplace_vector 202603L
#  endif
# endif
#endif /* !defined(__cpp_lib_inplace_vector) */
#undef __glibcxx_want_inplace_vector

#if !defined(__cpp_lib_constexpr_inplace_vector)
# if (__cplusplus >  202302L) && (__glibcxx_start_lifetime)
#  define __glibcxx_constexpr_inplace_vector 202502L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_constexpr_inplace_vector)
#   define __cpp_lib_constexpr_inplace_vector 202502L
#  endif
# endif
#endif /* !defined(__cpp_lib_constexpr_inplace_vector) */
#undef __glibcxx_want_constexpr_inplace_vector

#if !defined(__cpp_lib_indirect)
# if (__cplusplus >  202302L) && _GLIBCXX_HOSTED
#  define __glibcxx_indirect 202502L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_indirect)
#   define __cpp_lib_indirect 202502L
#  endif
# endif
#endif /* !defined(__cpp_lib_indirect) */
#undef __glibcxx_want_indirect

#if !defined(__cpp_lib_polymorphic)
# if (__cplusplus >  202302L) && _GLIBCXX_HOSTED
#  define __glibcxx_polymorphic 202502L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_polymorphic)
#   define __cpp_lib_polymorphic 202502L
#  endif
# endif
#endif /* !defined(__cpp_lib_polymorphic) */
#undef __glibcxx_want_polymorphic

#if !defined(__cpp_lib_smart_ptr_owner_equality)
# if (__cplusplus >  202302L) && _GLIBCXX_HOSTED
#  define __glibcxx_smart_ptr_owner_equality 202306L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_smart_ptr_owner_equality)
#   define __cpp_lib_smart_ptr_owner_equality 202306L
#  endif
# endif
#endif /* !defined(__cpp_lib_smart_ptr_owner_equality) */
#undef __glibcxx_want_smart_ptr_owner_equality

#if !defined(__cpp_lib_sstream_from_string_view)
# if (__cplusplus >  202302L) && _GLIBCXX_HOSTED
#  define __glibcxx_sstream_from_string_view 202306L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_sstream_from_string_view)
#   define __cpp_lib_sstream_from_string_view 202306L
#  endif
# endif
#endif /* !defined(__cpp_lib_sstream_from_string_view) */
#undef __glibcxx_want_sstream_from_string_view

#if !defined(__cpp_lib_type_order)
# if (__cplusplus >  202302L) && (__has_builtin(__builtin_type_order) && __cpp_lib_three_way_comparison >= 201907L)
#  define __glibcxx_type_order 202506L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_type_order)
#   define __cpp_lib_type_order 202506L
#  endif
# endif
#endif /* !defined(__cpp_lib_type_order) */
#undef __glibcxx_want_type_order

#if !defined(__cpp_lib_exception_ptr_cast)
# if (__cplusplus >  202302L)
#  define __glibcxx_exception_ptr_cast 202603L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_exception_ptr_cast)
#   define __cpp_lib_exception_ptr_cast 202603L
#  endif
# endif
#endif /* !defined(__cpp_lib_exception_ptr_cast) */
#undef __glibcxx_want_exception_ptr_cast

#if !defined(__cpp_lib_bitset)
# if (__cplusplus >  202302L)
#  define __glibcxx_bitset 202306L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_bitset)
#   define __cpp_lib_bitset 202306L
#  endif
# endif
#endif /* !defined(__cpp_lib_bitset) */
#undef __glibcxx_want_bitset

#if !defined(__cpp_lib_philox_engine)
# if (__cplusplus >  202302L)
#  define __glibcxx_philox_engine 202406L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_philox_engine)
#   define __cpp_lib_philox_engine 202406L
#  endif
# endif
#endif /* !defined(__cpp_lib_philox_engine) */
#undef __glibcxx_want_philox_engine

#if !defined(__cpp_lib_reflection)
# if (__cplusplus >  202302L) && _GLIBCXX_USE_CXX11_ABI && (__cpp_impl_reflection >= 202603L)
#  define __glibcxx_reflection 202603L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_reflection)
#   define __cpp_lib_reflection 202603L
#  endif
# endif
#endif /* !defined(__cpp_lib_reflection) */
#undef __glibcxx_want_reflection

#if !defined(__cpp_lib_define_static)
# if (__cplusplus >  202302L) && _GLIBCXX_USE_CXX11_ABI && (__cpp_impl_reflection >= 202506L)
#  define __glibcxx_define_static 202506L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_define_static)
#   define __cpp_lib_define_static 202506L
#  endif
# endif
#endif /* !defined(__cpp_lib_define_static) */
#undef __glibcxx_want_define_static

#if !defined(__cpp_lib_is_implicit_lifetime)
# if (__cplusplus >  202002L) && (__has_builtin(__builtin_is_implicit_lifetime))
#  define __glibcxx_is_implicit_lifetime 202302L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_implicit_lifetime)
#   define __cpp_lib_is_implicit_lifetime 202302L
#  endif
# endif
#endif /* !defined(__cpp_lib_is_implicit_lifetime) */
#undef __glibcxx_want_is_implicit_lifetime

#if !defined(__cpp_lib_contracts)
# if (__cplusplus >  202302L) && (__cpp_contracts >= 202502L)
#  define __glibcxx_contracts 202502L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_contracts)
#   define __cpp_lib_contracts 202502L
#  endif
# endif
#endif /* !defined(__cpp_lib_contracts) */
#undef __glibcxx_want_contracts

#if !defined(__cpp_lib_replaceable_contract_violation_handler)
# if (__cplusplus >  202302L) && (__cpp_contracts >= 202502L && __ELF__)
#  define __glibcxx_replaceable_contract_violation_handler 202603L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_replaceable_contract_violation_handler)
#   define __cpp_lib_replaceable_contract_violation_handler 202603L
#  endif
# elif (__cplusplus >  202302L) && (__cpp_contracts >= 202502L)
#  define __glibcxx_replaceable_contract_violation_handler 0L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_replaceable_contract_violation_handler)
#   define __cpp_lib_replaceable_contract_violation_handler 0L
#  endif
# endif
#endif /* !defined(__cpp_lib_replaceable_contract_violation_handler) */
#undef __glibcxx_want_replaceable_contract_violation_handler

#if !defined(__cpp_lib_simd)
# if (__cplusplus >  202302L) && _GLIBCXX_HOSTED && (__cpp_structured_bindings >= 202411L && __cpp_expansion_statements >= 202411L && __SSE2__)
#  define __glibcxx_simd 202506L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_simd)
#  endif
# endif
#endif /* !defined(__cpp_lib_simd) */
#undef __glibcxx_want_simd

#if !defined(__cpp_lib_simd_complex)
# if (__cplusplus >  202302L) && _GLIBCXX_HOSTED && (defined __glibcxx_simd)
#  define __glibcxx_simd_complex 202502L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_simd_complex)
#  endif
# endif
#endif /* !defined(__cpp_lib_simd_complex) */
#undef __glibcxx_want_simd_complex

#if !defined(__cpp_lib_is_structural)
# if (__cplusplus >  202302L) && (__has_builtin(__builtin_is_structural))
#  define __glibcxx_is_structural 202603L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_is_structural)
#   define __cpp_lib_is_structural 202603L
#  endif
# endif
#endif /* !defined(__cpp_lib_is_structural) */
#undef __glibcxx_want_is_structural

#if !defined(__cpp_lib_initializer_list)
# if (__cplusplus >  202302L)
#  define __glibcxx_initializer_list 202511L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_initializer_list)
#   define __cpp_lib_initializer_list 202511L
#  endif
# endif
#endif /* !defined(__cpp_lib_initializer_list) */
#undef __glibcxx_want_initializer_list

#if !defined(__cpp_lib_valarray)
# if (__cplusplus >  202302L)
#  define __glibcxx_valarray 202511L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_valarray)
#   define __cpp_lib_valarray 202511L
#  endif
# endif
#endif /* !defined(__cpp_lib_valarray) */
#undef __glibcxx_want_valarray

#if !defined(__cpp_lib_within_lifetime)
# if (__cplusplus >  202302L) && (__has_builtin(__builtin_is_within_lifetime))
#  define __glibcxx_within_lifetime 202603L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_within_lifetime)
#   define __cpp_lib_within_lifetime 202603L
#  endif
# endif
#endif /* !defined(__cpp_lib_within_lifetime) */
#undef __glibcxx_want_within_lifetime

#if !defined(__cpp_lib_hardened_array)
# if (__cplusplus >= 201103L) && (defined(_GLIBCXX_ASSERTIONS))
#  define __glibcxx_hardened_array 202502L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_hardened_array)
#   define __cpp_lib_hardened_array 202502L
#  endif
# endif
#endif /* !defined(__cpp_lib_hardened_array) */
#undef __glibcxx_want_hardened_array

#if !defined(__cpp_lib_hardened_basic_stacktrace)
# if (__cplusplus >  202002L) && _GLIBCXX_HOSTED && (defined(__glibcxx_stacktrace) && defined(_GLIBCXX_ASSERTIONS))
#  define __glibcxx_hardened_basic_stacktrace 202502L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_hardened_basic_stacktrace)
#   define __cpp_lib_hardened_basic_stacktrace 202502L
#  endif
# endif
#endif /* !defined(__cpp_lib_hardened_basic_stacktrace) */
#undef __glibcxx_want_hardened_basic_stacktrace

#if !defined(__cpp_lib_hardened_basic_string)
# if (defined(_GLIBCXX_ASSERTIONS))
#  define __glibcxx_hardened_basic_string 202502L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_hardened_basic_string)
#   define __cpp_lib_hardened_basic_string 202502L
#  endif
# endif
#endif /* !defined(__cpp_lib_hardened_basic_string) */
#undef __glibcxx_want_hardened_basic_string

#if !defined(__cpp_lib_hardened_basic_string_view)
# if (defined(__glibcxx_string_view) && defined(_GLIBCXX_ASSERTIONS))
#  define __glibcxx_hardened_basic_string_view 202502L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_hardened_basic_string_view)
#   define __cpp_lib_hardened_basic_string_view 202502L
#  endif
# endif
#endif /* !defined(__cpp_lib_hardened_basic_string_view) */
#undef __glibcxx_want_hardened_basic_string_view

#if !defined(__cpp_lib_hardened_bitset)
# if (defined(_GLIBCXX_ASSERTIONS))
#  define __glibcxx_hardened_bitset 202502L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_hardened_bitset)
#   define __cpp_lib_hardened_bitset 202502L
#  endif
# endif
#endif /* !defined(__cpp_lib_hardened_bitset) */
#undef __glibcxx_want_hardened_bitset

#if !defined(__cpp_lib_hardened_common_iterator)
# if (defined(__glibcxx_ranges) && defined(_GLIBCXX_ASSERTIONS))
#  define __glibcxx_hardened_common_iterator 202502L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_hardened_common_iterator)
#   define __cpp_lib_hardened_common_iterator 202502L
#  endif
# endif
#endif /* !defined(__cpp_lib_hardened_common_iterator) */
#undef __glibcxx_want_hardened_common_iterator

#if !defined(__cpp_lib_hardened_counted_iterator)
# if (defined(__glibcxx_ranges) && defined(_GLIBCXX_ASSERTIONS))
#  define __glibcxx_hardened_counted_iterator 202502L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_hardened_counted_iterator)
#   define __cpp_lib_hardened_counted_iterator 202502L
#  endif
# endif
#endif /* !defined(__cpp_lib_hardened_counted_iterator) */
#undef __glibcxx_want_hardened_counted_iterator

#if !defined(__cpp_lib_hardened_deque)
# if (defined(_GLIBCXX_ASSERTIONS))
#  define __glibcxx_hardened_deque 202502L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_hardened_deque)
#   define __cpp_lib_hardened_deque 202502L
#  endif
# endif
#endif /* !defined(__cpp_lib_hardened_deque) */
#undef __glibcxx_want_hardened_deque

#if !defined(__cpp_lib_hardened_expected)
# if (defined(__glibcxx_expected) && defined(_GLIBCXX_ASSERTIONS))
#  define __glibcxx_hardened_expected 202502L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_hardened_expected)
#   define __cpp_lib_hardened_expected 202502L
#  endif
# endif
#endif /* !defined(__cpp_lib_hardened_expected) */
#undef __glibcxx_want_hardened_expected

#if !defined(__cpp_lib_hardened_forward_list)
# if (__cplusplus >= 201103L) && (defined(_GLIBCXX_ASSERTIONS))
#  define __glibcxx_hardened_forward_list 202502L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_hardened_forward_list)
#   define __cpp_lib_hardened_forward_list 202502L
#  endif
# endif
#endif /* !defined(__cpp_lib_hardened_forward_list) */
#undef __glibcxx_want_hardened_forward_list

#if !defined(__cpp_lib_hardened_inplace_vector)
# if (defined(__glibcxx_inplace_vector) && defined(_GLIBCXX_ASSERTIONS))
#  define __glibcxx_hardened_inplace_vector 202502L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_hardened_inplace_vector)
#   define __cpp_lib_hardened_inplace_vector 202502L
#  endif
# endif
#endif /* !defined(__cpp_lib_hardened_inplace_vector) */
#undef __glibcxx_want_hardened_inplace_vector

#if !defined(__cpp_lib_hardened_list)
# if (defined(_GLIBCXX_ASSERTIONS))
#  define __glibcxx_hardened_list 202502L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_hardened_list)
#   define __cpp_lib_hardened_list 202502L
#  endif
# endif
#endif /* !defined(__cpp_lib_hardened_list) */
#undef __glibcxx_want_hardened_list

#if !defined(__cpp_lib_hardened_mdspan)
# if (defined(__glibcxx_mdspan) && defined(_GLIBCXX_ASSERTIONS))
#  define __glibcxx_hardened_mdspan 202502L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_hardened_mdspan)
#   define __cpp_lib_hardened_mdspan 202502L
#  endif
# endif
#endif /* !defined(__cpp_lib_hardened_mdspan) */
#undef __glibcxx_want_hardened_mdspan

#if !defined(__cpp_lib_hardened_optional)
# if (defined(__glibcxx_optional) && defined(_GLIBCXX_ASSERTIONS))
#  define __glibcxx_hardened_optional 202502L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_hardened_optional)
#   define __cpp_lib_hardened_optional 202502L
#  endif
# endif
#endif /* !defined(__cpp_lib_hardened_optional) */
#undef __glibcxx_want_hardened_optional

#if !defined(__cpp_lib_hardened_shared_ptr_array)
# if (defined(__glibcxx_shared_ptr_arrays) && defined(_GLIBCXX_ASSERTIONS))
#  define __glibcxx_hardened_shared_ptr_array 202502L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_hardened_shared_ptr_array)
#   define __cpp_lib_hardened_shared_ptr_array 202502L
#  endif
# endif
#endif /* !defined(__cpp_lib_hardened_shared_ptr_array) */
#undef __glibcxx_want_hardened_shared_ptr_array

#if !defined(__cpp_lib_hardened_span)
# if (defined(__glibcxx_span) && defined(_GLIBCXX_ASSERTIONS))
#  define __glibcxx_hardened_span 202502L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_hardened_span)
#   define __cpp_lib_hardened_span 202502L
#  endif
# endif
#endif /* !defined(__cpp_lib_hardened_span) */
#undef __glibcxx_want_hardened_span

#if !defined(__cpp_lib_hardened_valarray)
# if (defined(_GLIBCXX_ASSERTIONS))
#  define __glibcxx_hardened_valarray 202502L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_hardened_valarray)
#   define __cpp_lib_hardened_valarray 202502L
#  endif
# endif
#endif /* !defined(__cpp_lib_hardened_valarray) */
#undef __glibcxx_want_hardened_valarray

#if !defined(__cpp_lib_hardened_vector)
# if (defined(_GLIBCXX_ASSERTIONS))
#  define __glibcxx_hardened_vector 202502L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_hardened_vector)
#   define __cpp_lib_hardened_vector 202502L
#  endif
# endif
#endif /* !defined(__cpp_lib_hardened_vector) */
#undef __glibcxx_want_hardened_vector

#if !defined(__cpp_lib_hardened_view_interface)
# if (defined(__glibcxx_ranges) && defined(_GLIBCXX_ASSERTIONS))
#  define __glibcxx_hardened_view_interface 202502L
#  if defined(__glibcxx_want_all) || defined(__glibcxx_want_hardened_view_interface)
#   define __cpp_lib_hardened_view_interface 202502L
#  endif
# endif
#endif /* !defined(__cpp_lib_hardened_view_interface) */
#undef __glibcxx_want_hardened_view_interface

#undef __glibcxx_want_all
