# /* **************************************************************************
#  *                                                                          *
#  *     (C) Copyright Paul Mensonides 2002.
#  *     Distributed under the Boost Software License, Version 1.0. (See
#  *     accompanying file LICENSE_1_0.txt or copy at
#  *     http://www.boost.org/LICENSE_1_0.txt)
#  *                                                                          *
#  ************************************************************************** */
#
# /* See http://www.boost.org for most recent version. */
#
# include <ndnboost/preprocessor/slot/detail/shared.hpp>
#
# undef NDNBOOST_PP_SLOT_1
#
# undef NDNBOOST_PP_SLOT_1_DIGIT_1
# undef NDNBOOST_PP_SLOT_1_DIGIT_2
# undef NDNBOOST_PP_SLOT_1_DIGIT_3
# undef NDNBOOST_PP_SLOT_1_DIGIT_4
# undef NDNBOOST_PP_SLOT_1_DIGIT_5
# undef NDNBOOST_PP_SLOT_1_DIGIT_6
# undef NDNBOOST_PP_SLOT_1_DIGIT_7
# undef NDNBOOST_PP_SLOT_1_DIGIT_8
# undef NDNBOOST_PP_SLOT_1_DIGIT_9
# undef NDNBOOST_PP_SLOT_1_DIGIT_10
#
# if NDNBOOST_PP_SLOT_TEMP_10 == 0
#    define NDNBOOST_PP_SLOT_1_DIGIT_10 0
# elif NDNBOOST_PP_SLOT_TEMP_10 == 1
#    define NDNBOOST_PP_SLOT_1_DIGIT_10 1
# elif NDNBOOST_PP_SLOT_TEMP_10 == 2
#    define NDNBOOST_PP_SLOT_1_DIGIT_10 2
# elif NDNBOOST_PP_SLOT_TEMP_10 == 3
#    define NDNBOOST_PP_SLOT_1_DIGIT_10 3
# elif NDNBOOST_PP_SLOT_TEMP_10 == 4
#    define NDNBOOST_PP_SLOT_1_DIGIT_10 4
# elif NDNBOOST_PP_SLOT_TEMP_10 == 5
#    define NDNBOOST_PP_SLOT_1_DIGIT_10 5
# elif NDNBOOST_PP_SLOT_TEMP_10 == 6
#    define NDNBOOST_PP_SLOT_1_DIGIT_10 6
# elif NDNBOOST_PP_SLOT_TEMP_10 == 7
#    define NDNBOOST_PP_SLOT_1_DIGIT_10 7
# elif NDNBOOST_PP_SLOT_TEMP_10 == 8
#    define NDNBOOST_PP_SLOT_1_DIGIT_10 8
# elif NDNBOOST_PP_SLOT_TEMP_10 == 9
#    define NDNBOOST_PP_SLOT_1_DIGIT_10 9
# endif
#
# if NDNBOOST_PP_SLOT_TEMP_9 == 0
#    define NDNBOOST_PP_SLOT_1_DIGIT_9 0
# elif NDNBOOST_PP_SLOT_TEMP_9 == 1
#    define NDNBOOST_PP_SLOT_1_DIGIT_9 1
# elif NDNBOOST_PP_SLOT_TEMP_9 == 2
#    define NDNBOOST_PP_SLOT_1_DIGIT_9 2
# elif NDNBOOST_PP_SLOT_TEMP_9 == 3
#    define NDNBOOST_PP_SLOT_1_DIGIT_9 3
# elif NDNBOOST_PP_SLOT_TEMP_9 == 4
#    define NDNBOOST_PP_SLOT_1_DIGIT_9 4
# elif NDNBOOST_PP_SLOT_TEMP_9 == 5
#    define NDNBOOST_PP_SLOT_1_DIGIT_9 5
# elif NDNBOOST_PP_SLOT_TEMP_9 == 6
#    define NDNBOOST_PP_SLOT_1_DIGIT_9 6
# elif NDNBOOST_PP_SLOT_TEMP_9 == 7
#    define NDNBOOST_PP_SLOT_1_DIGIT_9 7
# elif NDNBOOST_PP_SLOT_TEMP_9 == 8
#    define NDNBOOST_PP_SLOT_1_DIGIT_9 8
# elif NDNBOOST_PP_SLOT_TEMP_9 == 9
#    define NDNBOOST_PP_SLOT_1_DIGIT_9 9
# endif
#
# if NDNBOOST_PP_SLOT_TEMP_8 == 0
#    define NDNBOOST_PP_SLOT_1_DIGIT_8 0
# elif NDNBOOST_PP_SLOT_TEMP_8 == 1
#    define NDNBOOST_PP_SLOT_1_DIGIT_8 1
# elif NDNBOOST_PP_SLOT_TEMP_8 == 2
#    define NDNBOOST_PP_SLOT_1_DIGIT_8 2
# elif NDNBOOST_PP_SLOT_TEMP_8 == 3
#    define NDNBOOST_PP_SLOT_1_DIGIT_8 3
# elif NDNBOOST_PP_SLOT_TEMP_8 == 4
#    define NDNBOOST_PP_SLOT_1_DIGIT_8 4
# elif NDNBOOST_PP_SLOT_TEMP_8 == 5
#    define NDNBOOST_PP_SLOT_1_DIGIT_8 5
# elif NDNBOOST_PP_SLOT_TEMP_8 == 6
#    define NDNBOOST_PP_SLOT_1_DIGIT_8 6
# elif NDNBOOST_PP_SLOT_TEMP_8 == 7
#    define NDNBOOST_PP_SLOT_1_DIGIT_8 7
# elif NDNBOOST_PP_SLOT_TEMP_8 == 8
#    define NDNBOOST_PP_SLOT_1_DIGIT_8 8
# elif NDNBOOST_PP_SLOT_TEMP_8 == 9
#    define NDNBOOST_PP_SLOT_1_DIGIT_8 9
# endif
#
# if NDNBOOST_PP_SLOT_TEMP_7 == 0
#    define NDNBOOST_PP_SLOT_1_DIGIT_7 0
# elif NDNBOOST_PP_SLOT_TEMP_7 == 1
#    define NDNBOOST_PP_SLOT_1_DIGIT_7 1
# elif NDNBOOST_PP_SLOT_TEMP_7 == 2
#    define NDNBOOST_PP_SLOT_1_DIGIT_7 2
# elif NDNBOOST_PP_SLOT_TEMP_7 == 3
#    define NDNBOOST_PP_SLOT_1_DIGIT_7 3
# elif NDNBOOST_PP_SLOT_TEMP_7 == 4
#    define NDNBOOST_PP_SLOT_1_DIGIT_7 4
# elif NDNBOOST_PP_SLOT_TEMP_7 == 5
#    define NDNBOOST_PP_SLOT_1_DIGIT_7 5
# elif NDNBOOST_PP_SLOT_TEMP_7 == 6
#    define NDNBOOST_PP_SLOT_1_DIGIT_7 6
# elif NDNBOOST_PP_SLOT_TEMP_7 == 7
#    define NDNBOOST_PP_SLOT_1_DIGIT_7 7
# elif NDNBOOST_PP_SLOT_TEMP_7 == 8
#    define NDNBOOST_PP_SLOT_1_DIGIT_7 8
# elif NDNBOOST_PP_SLOT_TEMP_7 == 9
#    define NDNBOOST_PP_SLOT_1_DIGIT_7 9
# endif
#
# if NDNBOOST_PP_SLOT_TEMP_6 == 0
#    define NDNBOOST_PP_SLOT_1_DIGIT_6 0
# elif NDNBOOST_PP_SLOT_TEMP_6 == 1
#    define NDNBOOST_PP_SLOT_1_DIGIT_6 1
# elif NDNBOOST_PP_SLOT_TEMP_6 == 2
#    define NDNBOOST_PP_SLOT_1_DIGIT_6 2
# elif NDNBOOST_PP_SLOT_TEMP_6 == 3
#    define NDNBOOST_PP_SLOT_1_DIGIT_6 3
# elif NDNBOOST_PP_SLOT_TEMP_6 == 4
#    define NDNBOOST_PP_SLOT_1_DIGIT_6 4
# elif NDNBOOST_PP_SLOT_TEMP_6 == 5
#    define NDNBOOST_PP_SLOT_1_DIGIT_6 5
# elif NDNBOOST_PP_SLOT_TEMP_6 == 6
#    define NDNBOOST_PP_SLOT_1_DIGIT_6 6
# elif NDNBOOST_PP_SLOT_TEMP_6 == 7
#    define NDNBOOST_PP_SLOT_1_DIGIT_6 7
# elif NDNBOOST_PP_SLOT_TEMP_6 == 8
#    define NDNBOOST_PP_SLOT_1_DIGIT_6 8
# elif NDNBOOST_PP_SLOT_TEMP_6 == 9
#    define NDNBOOST_PP_SLOT_1_DIGIT_6 9
# endif
#
# if NDNBOOST_PP_SLOT_TEMP_5 == 0
#    define NDNBOOST_PP_SLOT_1_DIGIT_5 0
# elif NDNBOOST_PP_SLOT_TEMP_5 == 1
#    define NDNBOOST_PP_SLOT_1_DIGIT_5 1
# elif NDNBOOST_PP_SLOT_TEMP_5 == 2
#    define NDNBOOST_PP_SLOT_1_DIGIT_5 2
# elif NDNBOOST_PP_SLOT_TEMP_5 == 3
#    define NDNBOOST_PP_SLOT_1_DIGIT_5 3
# elif NDNBOOST_PP_SLOT_TEMP_5 == 4
#    define NDNBOOST_PP_SLOT_1_DIGIT_5 4
# elif NDNBOOST_PP_SLOT_TEMP_5 == 5
#    define NDNBOOST_PP_SLOT_1_DIGIT_5 5
# elif NDNBOOST_PP_SLOT_TEMP_5 == 6
#    define NDNBOOST_PP_SLOT_1_DIGIT_5 6
# elif NDNBOOST_PP_SLOT_TEMP_5 == 7
#    define NDNBOOST_PP_SLOT_1_DIGIT_5 7
# elif NDNBOOST_PP_SLOT_TEMP_5 == 8
#    define NDNBOOST_PP_SLOT_1_DIGIT_5 8
# elif NDNBOOST_PP_SLOT_TEMP_5 == 9
#    define NDNBOOST_PP_SLOT_1_DIGIT_5 9
# endif
#
# if NDNBOOST_PP_SLOT_TEMP_4 == 0
#    define NDNBOOST_PP_SLOT_1_DIGIT_4 0
# elif NDNBOOST_PP_SLOT_TEMP_4 == 1
#    define NDNBOOST_PP_SLOT_1_DIGIT_4 1
# elif NDNBOOST_PP_SLOT_TEMP_4 == 2
#    define NDNBOOST_PP_SLOT_1_DIGIT_4 2
# elif NDNBOOST_PP_SLOT_TEMP_4 == 3
#    define NDNBOOST_PP_SLOT_1_DIGIT_4 3
# elif NDNBOOST_PP_SLOT_TEMP_4 == 4
#    define NDNBOOST_PP_SLOT_1_DIGIT_4 4
# elif NDNBOOST_PP_SLOT_TEMP_4 == 5
#    define NDNBOOST_PP_SLOT_1_DIGIT_4 5
# elif NDNBOOST_PP_SLOT_TEMP_4 == 6
#    define NDNBOOST_PP_SLOT_1_DIGIT_4 6
# elif NDNBOOST_PP_SLOT_TEMP_4 == 7
#    define NDNBOOST_PP_SLOT_1_DIGIT_4 7
# elif NDNBOOST_PP_SLOT_TEMP_4 == 8
#    define NDNBOOST_PP_SLOT_1_DIGIT_4 8
# elif NDNBOOST_PP_SLOT_TEMP_4 == 9
#    define NDNBOOST_PP_SLOT_1_DIGIT_4 9
# endif
#
# if NDNBOOST_PP_SLOT_TEMP_3 == 0
#    define NDNBOOST_PP_SLOT_1_DIGIT_3 0
# elif NDNBOOST_PP_SLOT_TEMP_3 == 1
#    define NDNBOOST_PP_SLOT_1_DIGIT_3 1
# elif NDNBOOST_PP_SLOT_TEMP_3 == 2
#    define NDNBOOST_PP_SLOT_1_DIGIT_3 2
# elif NDNBOOST_PP_SLOT_TEMP_3 == 3
#    define NDNBOOST_PP_SLOT_1_DIGIT_3 3
# elif NDNBOOST_PP_SLOT_TEMP_3 == 4
#    define NDNBOOST_PP_SLOT_1_DIGIT_3 4
# elif NDNBOOST_PP_SLOT_TEMP_3 == 5
#    define NDNBOOST_PP_SLOT_1_DIGIT_3 5
# elif NDNBOOST_PP_SLOT_TEMP_3 == 6
#    define NDNBOOST_PP_SLOT_1_DIGIT_3 6
# elif NDNBOOST_PP_SLOT_TEMP_3 == 7
#    define NDNBOOST_PP_SLOT_1_DIGIT_3 7
# elif NDNBOOST_PP_SLOT_TEMP_3 == 8
#    define NDNBOOST_PP_SLOT_1_DIGIT_3 8
# elif NDNBOOST_PP_SLOT_TEMP_3 == 9
#    define NDNBOOST_PP_SLOT_1_DIGIT_3 9
# endif
#
# if NDNBOOST_PP_SLOT_TEMP_2 == 0
#    define NDNBOOST_PP_SLOT_1_DIGIT_2 0
# elif NDNBOOST_PP_SLOT_TEMP_2 == 1
#    define NDNBOOST_PP_SLOT_1_DIGIT_2 1
# elif NDNBOOST_PP_SLOT_TEMP_2 == 2
#    define NDNBOOST_PP_SLOT_1_DIGIT_2 2
# elif NDNBOOST_PP_SLOT_TEMP_2 == 3
#    define NDNBOOST_PP_SLOT_1_DIGIT_2 3
# elif NDNBOOST_PP_SLOT_TEMP_2 == 4
#    define NDNBOOST_PP_SLOT_1_DIGIT_2 4
# elif NDNBOOST_PP_SLOT_TEMP_2 == 5
#    define NDNBOOST_PP_SLOT_1_DIGIT_2 5
# elif NDNBOOST_PP_SLOT_TEMP_2 == 6
#    define NDNBOOST_PP_SLOT_1_DIGIT_2 6
# elif NDNBOOST_PP_SLOT_TEMP_2 == 7
#    define NDNBOOST_PP_SLOT_1_DIGIT_2 7
# elif NDNBOOST_PP_SLOT_TEMP_2 == 8
#    define NDNBOOST_PP_SLOT_1_DIGIT_2 8
# elif NDNBOOST_PP_SLOT_TEMP_2 == 9
#    define NDNBOOST_PP_SLOT_1_DIGIT_2 9
# endif
#
# if NDNBOOST_PP_SLOT_TEMP_1 == 0
#    define NDNBOOST_PP_SLOT_1_DIGIT_1 0
# elif NDNBOOST_PP_SLOT_TEMP_1 == 1
#    define NDNBOOST_PP_SLOT_1_DIGIT_1 1
# elif NDNBOOST_PP_SLOT_TEMP_1 == 2
#    define NDNBOOST_PP_SLOT_1_DIGIT_1 2
# elif NDNBOOST_PP_SLOT_TEMP_1 == 3
#    define NDNBOOST_PP_SLOT_1_DIGIT_1 3
# elif NDNBOOST_PP_SLOT_TEMP_1 == 4
#    define NDNBOOST_PP_SLOT_1_DIGIT_1 4
# elif NDNBOOST_PP_SLOT_TEMP_1 == 5
#    define NDNBOOST_PP_SLOT_1_DIGIT_1 5
# elif NDNBOOST_PP_SLOT_TEMP_1 == 6
#    define NDNBOOST_PP_SLOT_1_DIGIT_1 6
# elif NDNBOOST_PP_SLOT_TEMP_1 == 7
#    define NDNBOOST_PP_SLOT_1_DIGIT_1 7
# elif NDNBOOST_PP_SLOT_TEMP_1 == 8
#    define NDNBOOST_PP_SLOT_1_DIGIT_1 8
# elif NDNBOOST_PP_SLOT_TEMP_1 == 9
#    define NDNBOOST_PP_SLOT_1_DIGIT_1 9
# endif
#
# if NDNBOOST_PP_SLOT_1_DIGIT_10
#    define NDNBOOST_PP_SLOT_1() NDNBOOST_PP_SLOT_CC_10(NDNBOOST_PP_SLOT_1_DIGIT_10, NDNBOOST_PP_SLOT_1_DIGIT_9, NDNBOOST_PP_SLOT_1_DIGIT_8, NDNBOOST_PP_SLOT_1_DIGIT_7, NDNBOOST_PP_SLOT_1_DIGIT_6, NDNBOOST_PP_SLOT_1_DIGIT_5, NDNBOOST_PP_SLOT_1_DIGIT_4, NDNBOOST_PP_SLOT_1_DIGIT_3, NDNBOOST_PP_SLOT_1_DIGIT_2, NDNBOOST_PP_SLOT_1_DIGIT_1)
# elif NDNBOOST_PP_SLOT_1_DIGIT_9
#    define NDNBOOST_PP_SLOT_1() NDNBOOST_PP_SLOT_CC_9(NDNBOOST_PP_SLOT_1_DIGIT_9, NDNBOOST_PP_SLOT_1_DIGIT_8, NDNBOOST_PP_SLOT_1_DIGIT_7, NDNBOOST_PP_SLOT_1_DIGIT_6, NDNBOOST_PP_SLOT_1_DIGIT_5, NDNBOOST_PP_SLOT_1_DIGIT_4, NDNBOOST_PP_SLOT_1_DIGIT_3, NDNBOOST_PP_SLOT_1_DIGIT_2, NDNBOOST_PP_SLOT_1_DIGIT_1)
# elif NDNBOOST_PP_SLOT_1_DIGIT_8
#    define NDNBOOST_PP_SLOT_1() NDNBOOST_PP_SLOT_CC_8(NDNBOOST_PP_SLOT_1_DIGIT_8, NDNBOOST_PP_SLOT_1_DIGIT_7, NDNBOOST_PP_SLOT_1_DIGIT_6, NDNBOOST_PP_SLOT_1_DIGIT_5, NDNBOOST_PP_SLOT_1_DIGIT_4, NDNBOOST_PP_SLOT_1_DIGIT_3, NDNBOOST_PP_SLOT_1_DIGIT_2, NDNBOOST_PP_SLOT_1_DIGIT_1)
# elif NDNBOOST_PP_SLOT_1_DIGIT_7
#    define NDNBOOST_PP_SLOT_1() NDNBOOST_PP_SLOT_CC_7(NDNBOOST_PP_SLOT_1_DIGIT_7, NDNBOOST_PP_SLOT_1_DIGIT_6, NDNBOOST_PP_SLOT_1_DIGIT_5, NDNBOOST_PP_SLOT_1_DIGIT_4, NDNBOOST_PP_SLOT_1_DIGIT_3, NDNBOOST_PP_SLOT_1_DIGIT_2, NDNBOOST_PP_SLOT_1_DIGIT_1)
# elif NDNBOOST_PP_SLOT_1_DIGIT_6
#    define NDNBOOST_PP_SLOT_1() NDNBOOST_PP_SLOT_CC_6(NDNBOOST_PP_SLOT_1_DIGIT_6, NDNBOOST_PP_SLOT_1_DIGIT_5, NDNBOOST_PP_SLOT_1_DIGIT_4, NDNBOOST_PP_SLOT_1_DIGIT_3, NDNBOOST_PP_SLOT_1_DIGIT_2, NDNBOOST_PP_SLOT_1_DIGIT_1)
# elif NDNBOOST_PP_SLOT_1_DIGIT_5
#    define NDNBOOST_PP_SLOT_1() NDNBOOST_PP_SLOT_CC_5(NDNBOOST_PP_SLOT_1_DIGIT_5, NDNBOOST_PP_SLOT_1_DIGIT_4, NDNBOOST_PP_SLOT_1_DIGIT_3, NDNBOOST_PP_SLOT_1_DIGIT_2, NDNBOOST_PP_SLOT_1_DIGIT_1)
# elif NDNBOOST_PP_SLOT_1_DIGIT_4
#    define NDNBOOST_PP_SLOT_1() NDNBOOST_PP_SLOT_CC_4(NDNBOOST_PP_SLOT_1_DIGIT_4, NDNBOOST_PP_SLOT_1_DIGIT_3, NDNBOOST_PP_SLOT_1_DIGIT_2, NDNBOOST_PP_SLOT_1_DIGIT_1)
# elif NDNBOOST_PP_SLOT_1_DIGIT_3
#    define NDNBOOST_PP_SLOT_1() NDNBOOST_PP_SLOT_CC_3(NDNBOOST_PP_SLOT_1_DIGIT_3, NDNBOOST_PP_SLOT_1_DIGIT_2, NDNBOOST_PP_SLOT_1_DIGIT_1)
# elif NDNBOOST_PP_SLOT_1_DIGIT_2
#    define NDNBOOST_PP_SLOT_1() NDNBOOST_PP_SLOT_CC_2(NDNBOOST_PP_SLOT_1_DIGIT_2, NDNBOOST_PP_SLOT_1_DIGIT_1)
# else
#    define NDNBOOST_PP_SLOT_1() NDNBOOST_PP_SLOT_1_DIGIT_1
# endif
