code:
//  (C) Copyright John Maddock 2005.
//  Use, modification and distribution are subject to 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/libs/type_traits for most recent version including documentation.

#ifndef BOOST_TT_RANK_HPP_INCLUDED
#define BOOST_TT_RANK_HPP_INCLUDED

#include <cstddef> // size_t
#include <boost/type_traits/integral_constant.hpp>

namespace boost {

#if !defined( __CODEGEARC__ )

namespace detail{

template <class T, std::size_t N>
struct rank_imp
{
   BOOST_STATIC_CONSTANT(std::size_t, value = N);
};
#if !defined(BOOST_NO_ARRAY_TYPE_SPECIALIZATIONS)
template <class T, std::size_t R, std::size_t N>
struct rank_imp<T[R], N>
{
   BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value));
};

template <class T, std::size_t R, std::size_t N>
struct rank_imp<T const[R], N>
{
   BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value));
};

template <class T, std::size_t R, std::size_t N>
struct rank_imp<T volatile[R], N>
{
   BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value));
};

template <class T, std::size_t R, std::size_t N>
struct rank_imp<T const volatile[R], N>
{
   BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value));
};

#if !BOOST_WORKAROUND(__BORLANDC__, < 0x600) && !defined(__IBMCPP__) &&  !BOOST_WORKAROUND(__DMC__, BOOST_TESTED_AT(0x840))
template <class T, std::size_t N>
struct rank_imp<T[], N>
{
   BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value));
};
template <class T, std::size_t N>
struct rank_imp<T const[], N>
{
   BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value));
};
template <class T, std::size_t N>
struct rank_imp<T volatile[], N>
{
   BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value));
};
template <class T, std::size_t N>
struct rank_imp<T const volatile[], N>
{
   BOOST_STATIC_CONSTANT(std::size_t, value = (::boost::detail::rank_imp<T, N+1>::value));
};
#endif
#endif
}

#endif // !defined( __CODEGEARC__ )

#if defined( __CODEGEARC__ )
template <class T> struct rank : public integral_constant<std::size_t, __array_rank(T)>{};
#else
template <class T> struct rank : public integral_constant<std::size_t, (::boost::detail::rank_imp<T, 0>::value)>{};
#endif

} // namespace boost

#endif // BOOST_TT_IS_MEMBER_FUNCTION_POINTER_HPP_INCLUDED


code:
subroutine msk144decodeframe(c,softbits,msgreceived,nsuccess,recent_calls,nrecent)
!  use timer_module, only: timer

  parameter (NSPM=864)
  character*22 msgreceived
  character*12 recent_calls(nrecent)
  complex cb(42)
  complex cfac,cca,ccb
  complex c(NSPM)
  integer*1 decoded(80)
  integer s8(8),hardbits(144)
  real*8 dt, fs, pi, twopi
  real cbi(42),cbq(42)
  real pp(12)
  real softbits(144)
  real llr(128)
  logical first
  data first/.true./
  data s8/0,1,1,1,0,0,1,0/
  save first,cb,fs,pi,twopi,dt,s8,pp

  if(first) then
! define half-sine pulse and raised-cosine edge window
     pi=4d0*datan(1d0)
     twopi=8d0*datan(1d0)
     fs=12000.0
     dt=1.0/fs

     do i=1,12
       angle=(i-1)*pi/12.0
       pp(i)=sin(angle)
     enddo

! define the sync word waveforms
     s8=2*s8-1
     cbq(1:6)=pp(7:12)*s8(1)
     cbq(7:18)=pp*s8(3)
     cbq(19:30)=pp*s8(5)
     cbq(31:42)=pp*s8(7)
     cbi(1:12)=pp*s8(2)
     cbi(13:24)=pp*s8(4)
     cbi(25:36)=pp*s8(6)
     cbi(37:42)=pp(1:6)*s8(8)
     cb=cmplx(cbi,cbq)
     first=.false.
  endif

  nsuccess=0
  msgreceived=' '

! Estimate carrier phase.
  cca=sum(c(1:1+41)*conjg(cb))
  ccb=sum(c(1+56*6:1+56*6+41)*conjg(cb))
  cfac=ccb*conjg(cca)
  phase0=atan2(imag(cca+ccb),real(cca+ccb))

! Remove phase error - want constellation rotated so that sample points lie on I/Q axes
  cfac=cmplx(cos(phase0),sin(phase0))
  c=c*conjg(cfac)

! matched filter -
  softbits(1)=sum(imag(c(1:6))*pp(7:12))+sum(imag(c(864-5:864))*pp(1:6))
  softbits(2)=sum(real(c(1:12))*pp)
  do i=2,72
    softbits(2*i-1)=sum(imag(c(1+(i-1)*12-6:1+(i-1)*12+5))*pp)
    softbits(2*i)=sum(real(c(7+(i-1)*12-6:7+(i-1)*12+5))*pp)
  enddo

! sync word hard error weight is used as a discriminator for
! frames that have reasonable probability of decoding
  hardbits=0
  do i=1,144
    if( softbits(i) .ge. 0.0 ) then
      hardbits(i)=1
    endif
  enddo
  nbadsync1=(8-sum( (2*hardbits(1:8)-1)*s8 ) )/2
  nbadsync2=(8-sum( (2*hardbits(1+56:8+56)-1)*s8 ) )/2
  nbadsync=nbadsync1+nbadsync2
  if( nbadsync .gt. 4 ) then
    return
  endif

! normalize the softsymbols before submitting to decoder
  sav=sum(softbits)/144
  s2av=sum(softbits*softbits)/144
  ssig=sqrt(s2av-sav*sav)
  softbits=softbits/ssig

  sigma=0.75
  llr(1:48)=softbits(9:9+47)
  llr(49:128)=softbits(65:65+80-1)
  llr=2.0*llr/(sigma*sigma)

  max_iterations=10
!  call timer('bpdec144 ',0)
  call bpdecode144(llr,max_iterations,decoded,niterations)
!  call timer('bpdec144 ',1)
  if( niterations .ge. 0.0 ) then
    call extractmessage144(decoded,msgreceived,nhashflag,recent_calls,nrecent)
    if( nhashflag .gt. 0 ) then         !Hash codes match, so print it
      nsuccess=1
    endif
  endif

  return
end subroutine msk144decodeframe

license: mit


code:
program fixwav

  use wavhdr
  parameter (NBANDS=23,NMODES=11)
  parameter(NMAX=120*12000)
  type(hdr) h
  integer*2 id2(NMAX),id(4)
  character*8 mode,mode0
  character*6 band
  character*12 arg
  character*80 infile
  character*1 c
  logical ok

  nargs=iargc()
  if(nargs.ne.1 .and. nargs.ne.5) then
     print*,'Usage: fixwav [fMHz mode submode TRperiod] infile'
     go to 999
  endif
  call getarg(1,infile)
  if(nargs.eq.1) go to 10
  read(infile,*) fMHz
  call getarg(2,mode0)
  call getarg(3,arg)
  nsubmode0=-1
  do i=1,8
     if(arg(1:1).eq.char(ichar('A')-1+i)) nsubmode0=i
  enddo
  if(nsubmode0.lt.0) read(arg,*) nsubmode0
  call getarg(4,arg)
  read(arg,*) ntrperiod0
  call getarg(5,infile)

10 open(10,file=infile,status='old',access='stream')
  read(10) h
  npts=h%ndata/2
  nfsample=h%nsamrate
  read(10) id2(1:npts)
  write(*,1002) h%nchan2,h%nbitsam2,h%nsamrate,npts
1002 format('Channels:',i2,'   Bits/sample:',i3,'   Sample rate:',i6,   &
          '   Npts:',i8)

  call get_wsjtx_wav_params(id2,band,mode,nsubmode,ntrperiod,ok)
  if(nfsample.ne.11025 .and. nfsample.ne.12000) ok=.false.
  if(ok) write(*,1010) band,ntrperiod,mode,char(ichar('A')-1+id2(3))
1010 format('Band: ',a6,'  T/R period:',i4,'   Mode: ',a8,1x,a1)

  if(.not.ok) write(*,'(a)') 'File has no valid WSJT-X params.'
  if(ok .and. nargs.eq.1) go to 999

  write(*,'(a)',advance='no') 'Do you want to add or change them? (Y/N): '
  read*,c
  if(c.ne.'y' .and. c.ne.'Y') go to 999

  print*,fMHz,mode0,nsubmode0,ntrperiod0
  call set_wsjtx_wav_params(fMHz,mode0,nsubmode0,ntrperiod0,id2)
  band=""
  mode=""
  nsubmode=0
  ntrperiod=0
  call get_wsjtx_wav_params(id2,band,mode,nsubmode,ntrperiod,ok)
  write(*,1010) band,ntrperiod,mode,char(ichar('A')-1+id2(3))
  rewind 10
  write(10) h,id2(1:npts)

999 end program fixwav


code:
program jt9w

  parameter (NSMAX=6827,NZMAX=60*12000)
  real ss(184,NSMAX)
  real ref(NSMAX)
  integer*2 id2(NZMAX)
  character*12 arg
  character*22 decoded

  call getarg(1,arg)
  read(arg,*) iutc

  open(20,file='refspec.dat',status='old')
  do i=1,NSMAX
     read(20,*) j,freq,ref(i)
  enddo

  do ifile=1,999
     read(60,end=999) nutc,nfqso,ntol,ndepth,nmode,nsubmode,ss,id2
     if(nutc.ne.iutc) cycle
     ntol=100
     call decode9w(nutc,nfqso,ntol,nsubmode,ss,id2,sync,nsnr,xdt,freq,decoded)
     write(*,1100) nutc,nsnr,xdt1-1.0,nint(freq),decoded
1100 format(i4.4,i4,f5.1,i5,1x,'@',1x,a22)
     exit
  enddo

999 end program jt9w


code:
//---------------------------------------------------------------------------//
// Copyright (c) 2013 Kyle Lutz <kyle.r.lutz@gmail.com>
//
// 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://boostorg.github.com/compute for more information.
//---------------------------------------------------------------------------//

#ifndef BOOST_COMPUTE_CONTAINER_STRING_HPP
#define BOOST_COMPUTE_CONTAINER_STRING_HPP

#include <boost/compute/types/fundamental.hpp>
#include <boost/compute/container/basic_string.hpp>

namespace boost {
namespace compute {

typedef basic_string<char_> string;

} // end compute namespace
} // end boost namespace

#endif // BOOST_COMPUTE_CONTAINER_STRING_HPP


code:
# /* **************************************************************************
#  *                                                                          *
#  *     (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. */
#
# if defined(BOOST_PP_ITERATION_LIMITS)
#    if !defined(BOOST_PP_FILENAME_1)
#        error BOOST_PP_ERROR:  depth #1 filename is not defined
#    endif
#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 0, BOOST_PP_ITERATION_LIMITS)
#    include <boost/preprocessor/iteration/detail/bounds/lower1.hpp>
#    define BOOST_PP_VALUE BOOST_PP_TUPLE_ELEM(2, 1, BOOST_PP_ITERATION_LIMITS)
#    include <boost/preprocessor/iteration/detail/bounds/upper1.hpp>
#    define BOOST_PP_ITERATION_FLAGS_1() 0
#    undef BOOST_PP_ITERATION_LIMITS
# elif defined(BOOST_PP_ITERATION_PARAMS_1)
#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(0, BOOST_PP_ITERATION_PARAMS_1)
#    include <boost/preprocessor/iteration/detail/bounds/lower1.hpp>
#    define BOOST_PP_VALUE BOOST_PP_ARRAY_ELEM(1, BOOST_PP_ITERATION_PARAMS_1)
#    include <boost/preprocessor/iteration/detail/bounds/upper1.hpp>
#    define BOOST_PP_FILENAME_1 BOOST_PP_ARRAY_ELEM(2, BOOST_PP_ITERATION_PARAMS_1)
#    if BOOST_PP_ARRAY_SIZE(BOOST_PP_ITERATION_PARAMS_1) >= 4
#        define BOOST_PP_ITERATION_FLAGS_1() BOOST_PP_ARRAY_ELEM(3, BOOST_PP_ITERATION_PARAMS_1)
#    else
#        define BOOST_PP_ITERATION_FLAGS_1() 0
#    endif
# else
#    error BOOST_PP_ERROR:  depth #1 iteration boundaries or filename not defined
# endif
#
# undef BOOST_PP_ITERATION_DEPTH
# define BOOST_PP_ITERATION_DEPTH() 1
#
# define BOOST_PP_IS_ITERATING 1
#
# if (BOOST_PP_ITERATION_START_1) > (BOOST_PP_ITERATION_FINISH_1)
#    include <boost/preprocessor/iteration/detail/iter/reverse1.hpp>
# else
#    if BOOST_PP_ITERATION_START_1 <= 0 && BOOST_PP_ITERATION_FINISH_1 >= 0
#        define BOOST_PP_ITERATION_1 0
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 1 && BOOST_PP_ITERATION_FINISH_1 >= 1
#        define BOOST_PP_ITERATION_1 1
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 2 && BOOST_PP_ITERATION_FINISH_1 >= 2
#        define BOOST_PP_ITERATION_1 2
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 3 && BOOST_PP_ITERATION_FINISH_1 >= 3
#        define BOOST_PP_ITERATION_1 3
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 4 && BOOST_PP_ITERATION_FINISH_1 >= 4
#        define BOOST_PP_ITERATION_1 4
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 5 && BOOST_PP_ITERATION_FINISH_1 >= 5
#        define BOOST_PP_ITERATION_1 5
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 6 && BOOST_PP_ITERATION_FINISH_1 >= 6
#        define BOOST_PP_ITERATION_1 6
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 7 && BOOST_PP_ITERATION_FINISH_1 >= 7
#        define BOOST_PP_ITERATION_1 7
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 8 && BOOST_PP_ITERATION_FINISH_1 >= 8
#        define BOOST_PP_ITERATION_1 8
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 9 && BOOST_PP_ITERATION_FINISH_1 >= 9
#        define BOOST_PP_ITERATION_1 9
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 10 && BOOST_PP_ITERATION_FINISH_1 >= 10
#        define BOOST_PP_ITERATION_1 10
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 11 && BOOST_PP_ITERATION_FINISH_1 >= 11
#        define BOOST_PP_ITERATION_1 11
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 12 && BOOST_PP_ITERATION_FINISH_1 >= 12
#        define BOOST_PP_ITERATION_1 12
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 13 && BOOST_PP_ITERATION_FINISH_1 >= 13
#        define BOOST_PP_ITERATION_1 13
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 14 && BOOST_PP_ITERATION_FINISH_1 >= 14
#        define BOOST_PP_ITERATION_1 14
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 15 && BOOST_PP_ITERATION_FINISH_1 >= 15
#        define BOOST_PP_ITERATION_1 15
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 16 && BOOST_PP_ITERATION_FINISH_1 >= 16
#        define BOOST_PP_ITERATION_1 16
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 17 && BOOST_PP_ITERATION_FINISH_1 >= 17
#        define BOOST_PP_ITERATION_1 17
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 18 && BOOST_PP_ITERATION_FINISH_1 >= 18
#        define BOOST_PP_ITERATION_1 18
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 19 && BOOST_PP_ITERATION_FINISH_1 >= 19
#        define BOOST_PP_ITERATION_1 19
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 20 && BOOST_PP_ITERATION_FINISH_1 >= 20
#        define BOOST_PP_ITERATION_1 20
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 21 && BOOST_PP_ITERATION_FINISH_1 >= 21
#        define BOOST_PP_ITERATION_1 21
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 22 && BOOST_PP_ITERATION_FINISH_1 >= 22
#        define BOOST_PP_ITERATION_1 22
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 23 && BOOST_PP_ITERATION_FINISH_1 >= 23
#        define BOOST_PP_ITERATION_1 23
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 24 && BOOST_PP_ITERATION_FINISH_1 >= 24
#        define BOOST_PP_ITERATION_1 24
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 25 && BOOST_PP_ITERATION_FINISH_1 >= 25
#        define BOOST_PP_ITERATION_1 25
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 26 && BOOST_PP_ITERATION_FINISH_1 >= 26
#        define BOOST_PP_ITERATION_1 26
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 27 && BOOST_PP_ITERATION_FINISH_1 >= 27
#        define BOOST_PP_ITERATION_1 27
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 28 && BOOST_PP_ITERATION_FINISH_1 >= 28
#        define BOOST_PP_ITERATION_1 28
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 29 && BOOST_PP_ITERATION_FINISH_1 >= 29
#        define BOOST_PP_ITERATION_1 29
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 30 && BOOST_PP_ITERATION_FINISH_1 >= 30
#        define BOOST_PP_ITERATION_1 30
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 31 && BOOST_PP_ITERATION_FINISH_1 >= 31
#        define BOOST_PP_ITERATION_1 31
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 32 && BOOST_PP_ITERATION_FINISH_1 >= 32
#        define BOOST_PP_ITERATION_1 32
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 33 && BOOST_PP_ITERATION_FINISH_1 >= 33
#        define BOOST_PP_ITERATION_1 33
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 34 && BOOST_PP_ITERATION_FINISH_1 >= 34
#        define BOOST_PP_ITERATION_1 34
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 35 && BOOST_PP_ITERATION_FINISH_1 >= 35
#        define BOOST_PP_ITERATION_1 35
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 36 && BOOST_PP_ITERATION_FINISH_1 >= 36
#        define BOOST_PP_ITERATION_1 36
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 37 && BOOST_PP_ITERATION_FINISH_1 >= 37
#        define BOOST_PP_ITERATION_1 37
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 38 && BOOST_PP_ITERATION_FINISH_1 >= 38
#        define BOOST_PP_ITERATION_1 38
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 39 && BOOST_PP_ITERATION_FINISH_1 >= 39
#        define BOOST_PP_ITERATION_1 39
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 40 && BOOST_PP_ITERATION_FINISH_1 >= 40
#        define BOOST_PP_ITERATION_1 40
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 41 && BOOST_PP_ITERATION_FINISH_1 >= 41
#        define BOOST_PP_ITERATION_1 41
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 42 && BOOST_PP_ITERATION_FINISH_1 >= 42
#        define BOOST_PP_ITERATION_1 42
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 43 && BOOST_PP_ITERATION_FINISH_1 >= 43
#        define BOOST_PP_ITERATION_1 43
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 44 && BOOST_PP_ITERATION_FINISH_1 >= 44
#        define BOOST_PP_ITERATION_1 44
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 45 && BOOST_PP_ITERATION_FINISH_1 >= 45
#        define BOOST_PP_ITERATION_1 45
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 46 && BOOST_PP_ITERATION_FINISH_1 >= 46
#        define BOOST_PP_ITERATION_1 46
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 47 && BOOST_PP_ITERATION_FINISH_1 >= 47
#        define BOOST_PP_ITERATION_1 47
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 48 && BOOST_PP_ITERATION_FINISH_1 >= 48
#        define BOOST_PP_ITERATION_1 48
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 49 && BOOST_PP_ITERATION_FINISH_1 >= 49
#        define BOOST_PP_ITERATION_1 49
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 50 && BOOST_PP_ITERATION_FINISH_1 >= 50
#        define BOOST_PP_ITERATION_1 50
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 51 && BOOST_PP_ITERATION_FINISH_1 >= 51
#        define BOOST_PP_ITERATION_1 51
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 52 && BOOST_PP_ITERATION_FINISH_1 >= 52
#        define BOOST_PP_ITERATION_1 52
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 53 && BOOST_PP_ITERATION_FINISH_1 >= 53
#        define BOOST_PP_ITERATION_1 53
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 54 && BOOST_PP_ITERATION_FINISH_1 >= 54
#        define BOOST_PP_ITERATION_1 54
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 55 && BOOST_PP_ITERATION_FINISH_1 >= 55
#        define BOOST_PP_ITERATION_1 55
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 56 && BOOST_PP_ITERATION_FINISH_1 >= 56
#        define BOOST_PP_ITERATION_1 56
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 57 && BOOST_PP_ITERATION_FINISH_1 >= 57
#        define BOOST_PP_ITERATION_1 57
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 58 && BOOST_PP_ITERATION_FINISH_1 >= 58
#        define BOOST_PP_ITERATION_1 58
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 59 && BOOST_PP_ITERATION_FINISH_1 >= 59
#        define BOOST_PP_ITERATION_1 59
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 60 && BOOST_PP_ITERATION_FINISH_1 >= 60
#        define BOOST_PP_ITERATION_1 60
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 61 && BOOST_PP_ITERATION_FINISH_1 >= 61
#        define BOOST_PP_ITERATION_1 61
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 62 && BOOST_PP_ITERATION_FINISH_1 >= 62
#        define BOOST_PP_ITERATION_1 62
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 63 && BOOST_PP_ITERATION_FINISH_1 >= 63
#        define BOOST_PP_ITERATION_1 63
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 64 && BOOST_PP_ITERATION_FINISH_1 >= 64
#        define BOOST_PP_ITERATION_1 64
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 65 && BOOST_PP_ITERATION_FINISH_1 >= 65
#        define BOOST_PP_ITERATION_1 65
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 66 && BOOST_PP_ITERATION_FINISH_1 >= 66
#        define BOOST_PP_ITERATION_1 66
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 67 && BOOST_PP_ITERATION_FINISH_1 >= 67
#        define BOOST_PP_ITERATION_1 67
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 68 && BOOST_PP_ITERATION_FINISH_1 >= 68
#        define BOOST_PP_ITERATION_1 68
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 69 && BOOST_PP_ITERATION_FINISH_1 >= 69
#        define BOOST_PP_ITERATION_1 69
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 70 && BOOST_PP_ITERATION_FINISH_1 >= 70
#        define BOOST_PP_ITERATION_1 70
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 71 && BOOST_PP_ITERATION_FINISH_1 >= 71
#        define BOOST_PP_ITERATION_1 71
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 72 && BOOST_PP_ITERATION_FINISH_1 >= 72
#        define BOOST_PP_ITERATION_1 72
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 73 && BOOST_PP_ITERATION_FINISH_1 >= 73
#        define BOOST_PP_ITERATION_1 73
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 74 && BOOST_PP_ITERATION_FINISH_1 >= 74
#        define BOOST_PP_ITERATION_1 74
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 75 && BOOST_PP_ITERATION_FINISH_1 >= 75
#        define BOOST_PP_ITERATION_1 75
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 76 && BOOST_PP_ITERATION_FINISH_1 >= 76
#        define BOOST_PP_ITERATION_1 76
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 77 && BOOST_PP_ITERATION_FINISH_1 >= 77
#        define BOOST_PP_ITERATION_1 77
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 78 && BOOST_PP_ITERATION_FINISH_1 >= 78
#        define BOOST_PP_ITERATION_1 78
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 79 && BOOST_PP_ITERATION_FINISH_1 >= 79
#        define BOOST_PP_ITERATION_1 79
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 80 && BOOST_PP_ITERATION_FINISH_1 >= 80
#        define BOOST_PP_ITERATION_1 80
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 81 && BOOST_PP_ITERATION_FINISH_1 >= 81
#        define BOOST_PP_ITERATION_1 81
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 82 && BOOST_PP_ITERATION_FINISH_1 >= 82
#        define BOOST_PP_ITERATION_1 82
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 83 && BOOST_PP_ITERATION_FINISH_1 >= 83
#        define BOOST_PP_ITERATION_1 83
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 84 && BOOST_PP_ITERATION_FINISH_1 >= 84
#        define BOOST_PP_ITERATION_1 84
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 85 && BOOST_PP_ITERATION_FINISH_1 >= 85
#        define BOOST_PP_ITERATION_1 85
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 86 && BOOST_PP_ITERATION_FINISH_1 >= 86
#        define BOOST_PP_ITERATION_1 86
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 87 && BOOST_PP_ITERATION_FINISH_1 >= 87
#        define BOOST_PP_ITERATION_1 87
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 88 && BOOST_PP_ITERATION_FINISH_1 >= 88
#        define BOOST_PP_ITERATION_1 88
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 89 && BOOST_PP_ITERATION_FINISH_1 >= 89
#        define BOOST_PP_ITERATION_1 89
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 90 && BOOST_PP_ITERATION_FINISH_1 >= 90
#        define BOOST_PP_ITERATION_1 90
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 91 && BOOST_PP_ITERATION_FINISH_1 >= 91
#        define BOOST_PP_ITERATION_1 91
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 92 && BOOST_PP_ITERATION_FINISH_1 >= 92
#        define BOOST_PP_ITERATION_1 92
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 93 && BOOST_PP_ITERATION_FINISH_1 >= 93
#        define BOOST_PP_ITERATION_1 93
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 94 && BOOST_PP_ITERATION_FINISH_1 >= 94
#        define BOOST_PP_ITERATION_1 94
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 95 && BOOST_PP_ITERATION_FINISH_1 >= 95
#        define BOOST_PP_ITERATION_1 95
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 96 && BOOST_PP_ITERATION_FINISH_1 >= 96
#        define BOOST_PP_ITERATION_1 96
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 97 && BOOST_PP_ITERATION_FINISH_1 >= 97
#        define BOOST_PP_ITERATION_1 97
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 98 && BOOST_PP_ITERATION_FINISH_1 >= 98
#        define BOOST_PP_ITERATION_1 98
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 99 && BOOST_PP_ITERATION_FINISH_1 >= 99
#        define BOOST_PP_ITERATION_1 99
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 100 && BOOST_PP_ITERATION_FINISH_1 >= 100
#        define BOOST_PP_ITERATION_1 100
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 101 && BOOST_PP_ITERATION_FINISH_1 >= 101
#        define BOOST_PP_ITERATION_1 101
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 102 && BOOST_PP_ITERATION_FINISH_1 >= 102
#        define BOOST_PP_ITERATION_1 102
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 103 && BOOST_PP_ITERATION_FINISH_1 >= 103
#        define BOOST_PP_ITERATION_1 103
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 104 && BOOST_PP_ITERATION_FINISH_1 >= 104
#        define BOOST_PP_ITERATION_1 104
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 105 && BOOST_PP_ITERATION_FINISH_1 >= 105
#        define BOOST_PP_ITERATION_1 105
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 106 && BOOST_PP_ITERATION_FINISH_1 >= 106
#        define BOOST_PP_ITERATION_1 106
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 107 && BOOST_PP_ITERATION_FINISH_1 >= 107
#        define BOOST_PP_ITERATION_1 107
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 108 && BOOST_PP_ITERATION_FINISH_1 >= 108
#        define BOOST_PP_ITERATION_1 108
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 109 && BOOST_PP_ITERATION_FINISH_1 >= 109
#        define BOOST_PP_ITERATION_1 109
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 110 && BOOST_PP_ITERATION_FINISH_1 >= 110
#        define BOOST_PP_ITERATION_1 110
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 111 && BOOST_PP_ITERATION_FINISH_1 >= 111
#        define BOOST_PP_ITERATION_1 111
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 112 && BOOST_PP_ITERATION_FINISH_1 >= 112
#        define BOOST_PP_ITERATION_1 112
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 113 && BOOST_PP_ITERATION_FINISH_1 >= 113
#        define BOOST_PP_ITERATION_1 113
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 114 && BOOST_PP_ITERATION_FINISH_1 >= 114
#        define BOOST_PP_ITERATION_1 114
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 115 && BOOST_PP_ITERATION_FINISH_1 >= 115
#        define BOOST_PP_ITERATION_1 115
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 116 && BOOST_PP_ITERATION_FINISH_1 >= 116
#        define BOOST_PP_ITERATION_1 116
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 117 && BOOST_PP_ITERATION_FINISH_1 >= 117
#        define BOOST_PP_ITERATION_1 117
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 118 && BOOST_PP_ITERATION_FINISH_1 >= 118
#        define BOOST_PP_ITERATION_1 118
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 119 && BOOST_PP_ITERATION_FINISH_1 >= 119
#        define BOOST_PP_ITERATION_1 119
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 120 && BOOST_PP_ITERATION_FINISH_1 >= 120
#        define BOOST_PP_ITERATION_1 120
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 121 && BOOST_PP_ITERATION_FINISH_1 >= 121
#        define BOOST_PP_ITERATION_1 121
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 122 && BOOST_PP_ITERATION_FINISH_1 >= 122
#        define BOOST_PP_ITERATION_1 122
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 123 && BOOST_PP_ITERATION_FINISH_1 >= 123
#        define BOOST_PP_ITERATION_1 123
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 124 && BOOST_PP_ITERATION_FINISH_1 >= 124
#        define BOOST_PP_ITERATION_1 124
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 125 && BOOST_PP_ITERATION_FINISH_1 >= 125
#        define BOOST_PP_ITERATION_1 125
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 126 && BOOST_PP_ITERATION_FINISH_1 >= 126
#        define BOOST_PP_ITERATION_1 126
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 127 && BOOST_PP_ITERATION_FINISH_1 >= 127
#        define BOOST_PP_ITERATION_1 127
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 128 && BOOST_PP_ITERATION_FINISH_1 >= 128
#        define BOOST_PP_ITERATION_1 128
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 129 && BOOST_PP_ITERATION_FINISH_1 >= 129
#        define BOOST_PP_ITERATION_1 129
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 130 && BOOST_PP_ITERATION_FINISH_1 >= 130
#        define BOOST_PP_ITERATION_1 130
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 131 && BOOST_PP_ITERATION_FINISH_1 >= 131
#        define BOOST_PP_ITERATION_1 131
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 132 && BOOST_PP_ITERATION_FINISH_1 >= 132
#        define BOOST_PP_ITERATION_1 132
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 133 && BOOST_PP_ITERATION_FINISH_1 >= 133
#        define BOOST_PP_ITERATION_1 133
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 134 && BOOST_PP_ITERATION_FINISH_1 >= 134
#        define BOOST_PP_ITERATION_1 134
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 135 && BOOST_PP_ITERATION_FINISH_1 >= 135
#        define BOOST_PP_ITERATION_1 135
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 136 && BOOST_PP_ITERATION_FINISH_1 >= 136
#        define BOOST_PP_ITERATION_1 136
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 137 && BOOST_PP_ITERATION_FINISH_1 >= 137
#        define BOOST_PP_ITERATION_1 137
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 138 && BOOST_PP_ITERATION_FINISH_1 >= 138
#        define BOOST_PP_ITERATION_1 138
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 139 && BOOST_PP_ITERATION_FINISH_1 >= 139
#        define BOOST_PP_ITERATION_1 139
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 140 && BOOST_PP_ITERATION_FINISH_1 >= 140
#        define BOOST_PP_ITERATION_1 140
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 141 && BOOST_PP_ITERATION_FINISH_1 >= 141
#        define BOOST_PP_ITERATION_1 141
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 142 && BOOST_PP_ITERATION_FINISH_1 >= 142
#        define BOOST_PP_ITERATION_1 142
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 143 && BOOST_PP_ITERATION_FINISH_1 >= 143
#        define BOOST_PP_ITERATION_1 143
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 144 && BOOST_PP_ITERATION_FINISH_1 >= 144
#        define BOOST_PP_ITERATION_1 144
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 145 && BOOST_PP_ITERATION_FINISH_1 >= 145
#        define BOOST_PP_ITERATION_1 145
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 146 && BOOST_PP_ITERATION_FINISH_1 >= 146
#        define BOOST_PP_ITERATION_1 146
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 147 && BOOST_PP_ITERATION_FINISH_1 >= 147
#        define BOOST_PP_ITERATION_1 147
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 148 && BOOST_PP_ITERATION_FINISH_1 >= 148
#        define BOOST_PP_ITERATION_1 148
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 149 && BOOST_PP_ITERATION_FINISH_1 >= 149
#        define BOOST_PP_ITERATION_1 149
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 150 && BOOST_PP_ITERATION_FINISH_1 >= 150
#        define BOOST_PP_ITERATION_1 150
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 151 && BOOST_PP_ITERATION_FINISH_1 >= 151
#        define BOOST_PP_ITERATION_1 151
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 152 && BOOST_PP_ITERATION_FINISH_1 >= 152
#        define BOOST_PP_ITERATION_1 152
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 153 && BOOST_PP_ITERATION_FINISH_1 >= 153
#        define BOOST_PP_ITERATION_1 153
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 154 && BOOST_PP_ITERATION_FINISH_1 >= 154
#        define BOOST_PP_ITERATION_1 154
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 155 && BOOST_PP_ITERATION_FINISH_1 >= 155
#        define BOOST_PP_ITERATION_1 155
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 156 && BOOST_PP_ITERATION_FINISH_1 >= 156
#        define BOOST_PP_ITERATION_1 156
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 157 && BOOST_PP_ITERATION_FINISH_1 >= 157
#        define BOOST_PP_ITERATION_1 157
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 158 && BOOST_PP_ITERATION_FINISH_1 >= 158
#        define BOOST_PP_ITERATION_1 158
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 159 && BOOST_PP_ITERATION_FINISH_1 >= 159
#        define BOOST_PP_ITERATION_1 159
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 160 && BOOST_PP_ITERATION_FINISH_1 >= 160
#        define BOOST_PP_ITERATION_1 160
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 161 && BOOST_PP_ITERATION_FINISH_1 >= 161
#        define BOOST_PP_ITERATION_1 161
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 162 && BOOST_PP_ITERATION_FINISH_1 >= 162
#        define BOOST_PP_ITERATION_1 162
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 163 && BOOST_PP_ITERATION_FINISH_1 >= 163
#        define BOOST_PP_ITERATION_1 163
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 164 && BOOST_PP_ITERATION_FINISH_1 >= 164
#        define BOOST_PP_ITERATION_1 164
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 165 && BOOST_PP_ITERATION_FINISH_1 >= 165
#        define BOOST_PP_ITERATION_1 165
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 166 && BOOST_PP_ITERATION_FINISH_1 >= 166
#        define BOOST_PP_ITERATION_1 166
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 167 && BOOST_PP_ITERATION_FINISH_1 >= 167
#        define BOOST_PP_ITERATION_1 167
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 168 && BOOST_PP_ITERATION_FINISH_1 >= 168
#        define BOOST_PP_ITERATION_1 168
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 169 && BOOST_PP_ITERATION_FINISH_1 >= 169
#        define BOOST_PP_ITERATION_1 169
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 170 && BOOST_PP_ITERATION_FINISH_1 >= 170
#        define BOOST_PP_ITERATION_1 170
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 171 && BOOST_PP_ITERATION_FINISH_1 >= 171
#        define BOOST_PP_ITERATION_1 171
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 172 && BOOST_PP_ITERATION_FINISH_1 >= 172
#        define BOOST_PP_ITERATION_1 172
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 173 && BOOST_PP_ITERATION_FINISH_1 >= 173
#        define BOOST_PP_ITERATION_1 173
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 174 && BOOST_PP_ITERATION_FINISH_1 >= 174
#        define BOOST_PP_ITERATION_1 174
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 175 && BOOST_PP_ITERATION_FINISH_1 >= 175
#        define BOOST_PP_ITERATION_1 175
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 176 && BOOST_PP_ITERATION_FINISH_1 >= 176
#        define BOOST_PP_ITERATION_1 176
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 177 && BOOST_PP_ITERATION_FINISH_1 >= 177
#        define BOOST_PP_ITERATION_1 177
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 178 && BOOST_PP_ITERATION_FINISH_1 >= 178
#        define BOOST_PP_ITERATION_1 178
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 179 && BOOST_PP_ITERATION_FINISH_1 >= 179
#        define BOOST_PP_ITERATION_1 179
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 180 && BOOST_PP_ITERATION_FINISH_1 >= 180
#        define BOOST_PP_ITERATION_1 180
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 181 && BOOST_PP_ITERATION_FINISH_1 >= 181
#        define BOOST_PP_ITERATION_1 181
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 182 && BOOST_PP_ITERATION_FINISH_1 >= 182
#        define BOOST_PP_ITERATION_1 182
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 183 && BOOST_PP_ITERATION_FINISH_1 >= 183
#        define BOOST_PP_ITERATION_1 183
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 184 && BOOST_PP_ITERATION_FINISH_1 >= 184
#        define BOOST_PP_ITERATION_1 184
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 185 && BOOST_PP_ITERATION_FINISH_1 >= 185
#        define BOOST_PP_ITERATION_1 185
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 186 && BOOST_PP_ITERATION_FINISH_1 >= 186
#        define BOOST_PP_ITERATION_1 186
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 187 && BOOST_PP_ITERATION_FINISH_1 >= 187
#        define BOOST_PP_ITERATION_1 187
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 188 && BOOST_PP_ITERATION_FINISH_1 >= 188
#        define BOOST_PP_ITERATION_1 188
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 189 && BOOST_PP_ITERATION_FINISH_1 >= 189
#        define BOOST_PP_ITERATION_1 189
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 190 && BOOST_PP_ITERATION_FINISH_1 >= 190
#        define BOOST_PP_ITERATION_1 190
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 191 && BOOST_PP_ITERATION_FINISH_1 >= 191
#        define BOOST_PP_ITERATION_1 191
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 192 && BOOST_PP_ITERATION_FINISH_1 >= 192
#        define BOOST_PP_ITERATION_1 192
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 193 && BOOST_PP_ITERATION_FINISH_1 >= 193
#        define BOOST_PP_ITERATION_1 193
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 194 && BOOST_PP_ITERATION_FINISH_1 >= 194
#        define BOOST_PP_ITERATION_1 194
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 195 && BOOST_PP_ITERATION_FINISH_1 >= 195
#        define BOOST_PP_ITERATION_1 195
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 196 && BOOST_PP_ITERATION_FINISH_1 >= 196
#        define BOOST_PP_ITERATION_1 196
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 197 && BOOST_PP_ITERATION_FINISH_1 >= 197
#        define BOOST_PP_ITERATION_1 197
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 198 && BOOST_PP_ITERATION_FINISH_1 >= 198
#        define BOOST_PP_ITERATION_1 198
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 199 && BOOST_PP_ITERATION_FINISH_1 >= 199
#        define BOOST_PP_ITERATION_1 199
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 200 && BOOST_PP_ITERATION_FINISH_1 >= 200
#        define BOOST_PP_ITERATION_1 200
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 201 && BOOST_PP_ITERATION_FINISH_1 >= 201
#        define BOOST_PP_ITERATION_1 201
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 202 && BOOST_PP_ITERATION_FINISH_1 >= 202
#        define BOOST_PP_ITERATION_1 202
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 203 && BOOST_PP_ITERATION_FINISH_1 >= 203
#        define BOOST_PP_ITERATION_1 203
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 204 && BOOST_PP_ITERATION_FINISH_1 >= 204
#        define BOOST_PP_ITERATION_1 204
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 205 && BOOST_PP_ITERATION_FINISH_1 >= 205
#        define BOOST_PP_ITERATION_1 205
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 206 && BOOST_PP_ITERATION_FINISH_1 >= 206
#        define BOOST_PP_ITERATION_1 206
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 207 && BOOST_PP_ITERATION_FINISH_1 >= 207
#        define BOOST_PP_ITERATION_1 207
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 208 && BOOST_PP_ITERATION_FINISH_1 >= 208
#        define BOOST_PP_ITERATION_1 208
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 209 && BOOST_PP_ITERATION_FINISH_1 >= 209
#        define BOOST_PP_ITERATION_1 209
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 210 && BOOST_PP_ITERATION_FINISH_1 >= 210
#        define BOOST_PP_ITERATION_1 210
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 211 && BOOST_PP_ITERATION_FINISH_1 >= 211
#        define BOOST_PP_ITERATION_1 211
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 212 && BOOST_PP_ITERATION_FINISH_1 >= 212
#        define BOOST_PP_ITERATION_1 212
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 213 && BOOST_PP_ITERATION_FINISH_1 >= 213
#        define BOOST_PP_ITERATION_1 213
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 214 && BOOST_PP_ITERATION_FINISH_1 >= 214
#        define BOOST_PP_ITERATION_1 214
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 215 && BOOST_PP_ITERATION_FINISH_1 >= 215
#        define BOOST_PP_ITERATION_1 215
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 216 && BOOST_PP_ITERATION_FINISH_1 >= 216
#        define BOOST_PP_ITERATION_1 216
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 217 && BOOST_PP_ITERATION_FINISH_1 >= 217
#        define BOOST_PP_ITERATION_1 217
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 218 && BOOST_PP_ITERATION_FINISH_1 >= 218
#        define BOOST_PP_ITERATION_1 218
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 219 && BOOST_PP_ITERATION_FINISH_1 >= 219
#        define BOOST_PP_ITERATION_1 219
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 220 && BOOST_PP_ITERATION_FINISH_1 >= 220
#        define BOOST_PP_ITERATION_1 220
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 221 && BOOST_PP_ITERATION_FINISH_1 >= 221
#        define BOOST_PP_ITERATION_1 221
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 222 && BOOST_PP_ITERATION_FINISH_1 >= 222
#        define BOOST_PP_ITERATION_1 222
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 223 && BOOST_PP_ITERATION_FINISH_1 >= 223
#        define BOOST_PP_ITERATION_1 223
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 224 && BOOST_PP_ITERATION_FINISH_1 >= 224
#        define BOOST_PP_ITERATION_1 224
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 225 && BOOST_PP_ITERATION_FINISH_1 >= 225
#        define BOOST_PP_ITERATION_1 225
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 226 && BOOST_PP_ITERATION_FINISH_1 >= 226
#        define BOOST_PP_ITERATION_1 226
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 227 && BOOST_PP_ITERATION_FINISH_1 >= 227
#        define BOOST_PP_ITERATION_1 227
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 228 && BOOST_PP_ITERATION_FINISH_1 >= 228
#        define BOOST_PP_ITERATION_1 228
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 229 && BOOST_PP_ITERATION_FINISH_1 >= 229
#        define BOOST_PP_ITERATION_1 229
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 230 && BOOST_PP_ITERATION_FINISH_1 >= 230
#        define BOOST_PP_ITERATION_1 230
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 231 && BOOST_PP_ITERATION_FINISH_1 >= 231
#        define BOOST_PP_ITERATION_1 231
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 232 && BOOST_PP_ITERATION_FINISH_1 >= 232
#        define BOOST_PP_ITERATION_1 232
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 233 && BOOST_PP_ITERATION_FINISH_1 >= 233
#        define BOOST_PP_ITERATION_1 233
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 234 && BOOST_PP_ITERATION_FINISH_1 >= 234
#        define BOOST_PP_ITERATION_1 234
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 235 && BOOST_PP_ITERATION_FINISH_1 >= 235
#        define BOOST_PP_ITERATION_1 235
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 236 && BOOST_PP_ITERATION_FINISH_1 >= 236
#        define BOOST_PP_ITERATION_1 236
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 237 && BOOST_PP_ITERATION_FINISH_1 >= 237
#        define BOOST_PP_ITERATION_1 237
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 238 && BOOST_PP_ITERATION_FINISH_1 >= 238
#        define BOOST_PP_ITERATION_1 238
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 239 && BOOST_PP_ITERATION_FINISH_1 >= 239
#        define BOOST_PP_ITERATION_1 239
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 240 && BOOST_PP_ITERATION_FINISH_1 >= 240
#        define BOOST_PP_ITERATION_1 240
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 241 && BOOST_PP_ITERATION_FINISH_1 >= 241
#        define BOOST_PP_ITERATION_1 241
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 242 && BOOST_PP_ITERATION_FINISH_1 >= 242
#        define BOOST_PP_ITERATION_1 242
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 243 && BOOST_PP_ITERATION_FINISH_1 >= 243
#        define BOOST_PP_ITERATION_1 243
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 244 && BOOST_PP_ITERATION_FINISH_1 >= 244
#        define BOOST_PP_ITERATION_1 244
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 245 && BOOST_PP_ITERATION_FINISH_1 >= 245
#        define BOOST_PP_ITERATION_1 245
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 246 && BOOST_PP_ITERATION_FINISH_1 >= 246
#        define BOOST_PP_ITERATION_1 246
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 247 && BOOST_PP_ITERATION_FINISH_1 >= 247
#        define BOOST_PP_ITERATION_1 247
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 248 && BOOST_PP_ITERATION_FINISH_1 >= 248
#        define BOOST_PP_ITERATION_1 248
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 249 && BOOST_PP_ITERATION_FINISH_1 >= 249
#        define BOOST_PP_ITERATION_1 249
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 250 && BOOST_PP_ITERATION_FINISH_1 >= 250
#        define BOOST_PP_ITERATION_1 250
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 251 && BOOST_PP_ITERATION_FINISH_1 >= 251
#        define BOOST_PP_ITERATION_1 251
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 252 && BOOST_PP_ITERATION_FINISH_1 >= 252
#        define BOOST_PP_ITERATION_1 252
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 253 && BOOST_PP_ITERATION_FINISH_1 >= 253
#        define BOOST_PP_ITERATION_1 253
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 254 && BOOST_PP_ITERATION_FINISH_1 >= 254
#        define BOOST_PP_ITERATION_1 254
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 255 && BOOST_PP_ITERATION_FINISH_1 >= 255
#        define BOOST_PP_ITERATION_1 255
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
#    if BOOST_PP_ITERATION_START_1 <= 256 && BOOST_PP_ITERATION_FINISH_1 >= 256
#        define BOOST_PP_ITERATION_1 256
#        include BOOST_PP_FILENAME_1
#        undef BOOST_PP_ITERATION_1
#    endif
# endif
#
# undef BOOST_PP_IS_ITERATING
#
# undef BOOST_PP_ITERATION_DEPTH
# define BOOST_PP_ITERATION_DEPTH() 0
#
# undef BOOST_PP_ITERATION_START_1
# undef BOOST_PP_ITERATION_FINISH_1
# undef BOOST_PP_FILENAME_1
#
# undef BOOST_PP_ITERATION_FLAGS_1
# undef BOOST_PP_ITERATION_PARAMS_1


code:
set (SAMPLE_FILES
  FT8/170709_135615.wav
  ISCAT/ISCAT-A/VK7MO_110401_235515.wav
  ISCAT/ISCAT-B/K0AWU_100714_115000.wav
  JT4/JT4A/DF2ZC_070926_040700.WAV
  JT4/JT4F/OK1KIR_141105_175700.WAV
  JT65/JT65B/DL7UAE_040308_002400.wav
  JT9+JT65/130610_2343.wav
  JT9/130418_1742.wav
  MSK144/160915_113100.wav
  MSK144/160915_113230.wav
  QRA64/QRA64C/161113_0111.wav
  WSPR/150426_0918.wav
  )

set (contents_file_name contents_${WSJTX_VERSION_MAJOR}.${WSJTX_VERSION_MINOR}.json)
set (contents_file ${CMAKE_CURRENT_BINARY_DIR}/${contents_file_name})
set (web_tree ${CMAKE_CURRENT_BINARY_DIR}/web)
set_source_files_properties (${contents_file} PROPERTIES GENERATED ON)

add_custom_command (
  OUTPUT ${contents_file}
  COMMAND ${CMAKE_COMMAND} ARGS -Dcontents_file=${contents_file} -DFILES="${SAMPLE_FILES}" -DDEST=${CMAKE_CURRENT_BINARY_DIR} -P make_contents.cmake
  WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
  DEPENDS ${SAMPLE_FILES} make_contents.cmake
)

find_program (RSYNC_EXECUTABLE rsync)
add_custom_command (
  OUTPUT upload.timestamp
  COMMAND ${CMAKE_COMMAND} ARGS -E copy_if_different ${contents_file} ${web_tree}/samples/${contents_file_name}
  COMMAND ${RSYNC_EXECUTABLE} ARGS -avz --progress ${CMAKE_CURRENT_BINARY_DIR}/web/samples ${PROJECT_SAMPLES_UPLOAD_DEST}
  COMMAND ${CMAKE_COMMAND} ARGS -E touch upload.timestamp
  DEPENDS ${contents_file}
  COMMENT "Uploading WSJT-X samples to web server"
  )
add_custom_target (upload-samples DEPENDS upload.timestamp)


code:
/*
 [auto_generated]
 boost/numeric/odeint/algebra/operations_dispatcher.hpp

 [begin_description]
 Operations dispatcher to automatically chose suitable operations.
 [end_description]

 Copyright 2013 Karsten Ahnert
 Copyright 2013 Mario Mulansky

 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)
 */

#ifndef BOOST_NUMERIC_ODEINT_ALGEBRA_OPERATIONS_DISPATCHER_HPP_INCLUDED
#define BOOST_NUMERIC_ODEINT_ALGEBRA_OPERATIONS_DISPATCHER_HPP_INCLUDED

#include <boost/numeric/odeint/algebra/default_operations.hpp>

namespace boost {
namespace numeric {
namespace odeint {

template< class StateType , class Enabler = void >
struct operations_dispatcher_sfinae
{
    typedef default_operations operations_type;
};

template< class StateType >
struct operations_dispatcher : operations_dispatcher_sfinae< StateType > {};

// no further specializations required

}
}
}

#endif


code:
//  (C) Copyright John Maddock 2007.
//  Use, modification and distribution are subject to 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)
//
//  This file is machine generated, do not edit by hand

// Polynomial evaluation using second order Horners rule
#ifndef BOOST_MATH_TOOLS_POLY_EVAL_4_HPP
#define BOOST_MATH_TOOLS_POLY_EVAL_4_HPP

namespace boost{ namespace math{ namespace tools{ namespace detail{

template <class T, class V>
inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*) BOOST_MATH_NOEXCEPT(V)
{
   return static_cast<V>(0);
}

template <class T, class V>
inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*) BOOST_MATH_NOEXCEPT(V)
{
   return static_cast<V>(a[0]);
}

template <class T, class V>
inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*) BOOST_MATH_NOEXCEPT(V)
{
   return static_cast<V>(a[1] * x + a[0]);
}

template <class T, class V>
inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*) BOOST_MATH_NOEXCEPT(V)
{
   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
}

template <class T, class V>
inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*) BOOST_MATH_NOEXCEPT(V)
{
   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
}

}}}} // namespaces

#endif // include guard


code:
//  (C) Copyright John Maddock 2001 - 2003.
//  (C) Copyright Jens Maurer 2003.
//  Use, modification and distribution are subject to 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.

//  SGI Irix specific config options:

#define BOOST_PLATFORM "SGI Irix"

#define BOOST_NO_SWPRINTF
//
// these are not auto detected by POSIX feature tests:
//
#define BOOST_HAS_GETTIMEOFDAY
#define BOOST_HAS_PTHREAD_MUTEXATTR_SETTYPE

#ifdef __GNUC__
   // GNU C on IRIX does not support threads (checked up to gcc 3.3)
#  define BOOST_DISABLE_THREADS
#endif

// boilerplate code:
#define BOOST_HAS_UNISTD_H
#include <boost/config/posix_features.hpp>


code:
/*=============================================================================
    Copyright (c) 2001-2011 Joel de Guzman

    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)
==============================================================================*/
#if !defined(BOOST_FUSION_BEGIN_IMPL_09272006_0719)
#define BOOST_FUSION_BEGIN_IMPL_09272006_0719

#include <boost/fusion/support/config.hpp>
#include <boost/fusion/adapted/boost_tuple/boost_tuple_iterator.hpp>

namespace boost { namespace fusion
{
    struct boost_tuple_tag;

    namespace extension
    {
        template<typename T>
        struct begin_impl;

        template <>
        struct begin_impl<boost_tuple_tag>
        {
            template <typename Sequence>
            struct apply
            {
                typedef boost_tuple_iterator<Sequence> type;

                BOOST_FUSION_GPU_ENABLED
                static type
                call(Sequence& v)
                {
                    return type(v);
                }
            };
        };
    }
}}

#endif


code:
// Copyright David Abrahams 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)
#ifndef DEFAULT_CALL_POLICIES_DWA2002131_HPP
# define DEFAULT_CALL_POLICIES_DWA2002131_HPP

# include <boost/python/detail/prefix.hpp>
# include <boost/mpl/if.hpp>
# include <boost/python/to_python_value.hpp>
# include <boost/python/detail/value_arg.hpp>
# include <boost/type_traits/transform_traits.hpp>
# include <boost/type_traits/is_pointer.hpp>
# include <boost/type_traits/is_reference.hpp>
# include <boost/mpl/or.hpp>
# include <boost/mpl/front.hpp>

namespace boost { namespace python {

template <class T> struct to_python_value;

namespace detail
{
// for "readable" error messages
  template <class T> struct specify_a_return_value_policy_to_wrap_functions_returning
# if defined(__GNUC__) || defined(__EDG__)
  {}
# endif
  ;
}

struct default_result_converter;

struct default_call_policies
{
    // Ownership of this argument tuple will ultimately be adopted by
    // the caller.
    template <class ArgumentPackage>
    static bool precall(ArgumentPackage const&)
    {
        return true;
    }

    // Pass the result through
    template <class ArgumentPackage>
    static PyObject* postcall(ArgumentPackage const&, PyObject* result)
    {
        return result;
    }

    typedef default_result_converter result_converter;
    typedef PyObject* argument_package;

    template <class Sig>
    struct extract_return_type : mpl::front<Sig>
    {
    };

};

struct default_result_converter
{
    template <class R>
    struct apply
    {
        typedef typename mpl::if_<
            mpl::or_<is_pointer<R>, is_reference<R> >
          , detail::specify_a_return_value_policy_to_wrap_functions_returning<R>
          , boost::python::to_python_value<
                typename detail::value_arg<R>::type
            >
        >::type type;
    };
};

// Exceptions for c strings an PyObject*s
template <>
struct default_result_converter::apply<char const*>
{
    typedef boost::python::to_python_value<char const*const&> type;
};

template <>
struct default_result_converter::apply<PyObject*>
{
    typedef boost::python::to_python_value<PyObject*const&> type;
};

}} // namespace boost::python

#endif // DEFAULT_CALL_POLICIES_DWA2002131_HPP


code:
#ifndef _DATE_TIME_INT_ADAPTER_HPP__
#define _DATE_TIME_INT_ADAPTER_HPP__

/* Copyright (c) 2002,2003 CrystalClear Software, Inc.
 * Use, modification and distribution is subject to the
 * Boost Software License, Version 1.0. (See accompanying
 * file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
 * Author: Jeff Garland, Bart Garst
 * $Date$
 */

#include "boost/config.hpp"
#include "boost/limits.hpp" //work around compilers without limits
#include "boost/date_time/special_defs.hpp"
#include "boost/date_time/locale_config.hpp"
#ifndef BOOST_DATE_TIME_NO_LOCALE
#  include <ostream>
#endif

namespace boost {
namespace date_time {

//! Adapter to create integer types with +-infinity, and not a value
/*! This class is used internally in counted date/time representations.
 *  It adds the floating point like features of infinities and
 *  not a number. It also provides mathmatical operations with
 *  consideration to special values following these rules:
 *@code
 *  +infinity  -  infinity  == Not A Number (NAN)
 *   infinity  *  non-zero  == infinity
 *   infinity  *  zero      == NAN
 *  +infinity  * -integer   == -infinity
 *   infinity  /  infinity  == NAN
 *   infinity  *  infinity  == infinity
 *@endcode
 */
template<typename int_type_>
class int_adapter {
public:
  typedef int_type_ int_type;
  int_adapter(int_type v) :
    value_(v)
  {}
  static bool has_infinity()
  {
    return  true;
  }
  static const int_adapter  pos_infinity()
  {
    return (::std::numeric_limits<int_type>::max)();
  }
  static const int_adapter  neg_infinity()
  {
    return (::std::numeric_limits<int_type>::min)();
  }
  static const int_adapter  not_a_number()
  {
    return (::std::numeric_limits<int_type>::max)()-1;
  }
  static  int_adapter max BOOST_PREVENT_MACRO_SUBSTITUTION ()
  {
    return (::std::numeric_limits<int_type>::max)()-2;
  }
  static  int_adapter min BOOST_PREVENT_MACRO_SUBSTITUTION ()
  {
    return (::std::numeric_limits<int_type>::min)()+1;
  }
  static int_adapter from_special(special_values sv)
  {
    switch (sv) {
    case not_a_date_time: return not_a_number();
    case neg_infin:       return neg_infinity();
    case pos_infin:       return pos_infinity();
    case max_date_time:   return (max)();
    case min_date_time:   return (min)();
    default:              return not_a_number();
    }
  }
  static bool is_inf(int_type v)
  {
    return (v == neg_infinity().as_number() ||
            v == pos_infinity().as_number());
  }
  static bool is_neg_inf(int_type v)
  {
    return (v == neg_infinity().as_number());
  }
  static bool is_pos_inf(int_type v)
  {
    return (v == pos_infinity().as_number());
  }
  static bool is_not_a_number(int_type v)
  {
    return (v == not_a_number().as_number());
  }
  //! Returns either special value type or is_not_special
  static special_values to_special(int_type v)
  {
    if (is_not_a_number(v)) return not_a_date_time;
    if (is_neg_inf(v)) return neg_infin;
    if (is_pos_inf(v)) return pos_infin;
    return not_special;
  }

  //-3 leaves room for representations of infinity and not a date
  static  int_type maxcount()
  {
    return (::std::numeric_limits<int_type>::max)()-3;
  }
  bool is_infinity() const
  {
    return (value_ == neg_infinity().as_number() ||
            value_ == pos_infinity().as_number());
  }
  bool is_pos_infinity()const
  {
    return(value_ == pos_infinity().as_number());
  }
  bool is_neg_infinity()const
  {
    return(value_ == neg_infinity().as_number());
  }
  bool is_nan() const
  {
    return (value_ == not_a_number().as_number());
  }
  bool is_special() const
  {
    return(is_infinity() || is_nan());
  }
  bool operator==(const int_adapter& rhs) const
  {
    return (compare(rhs) == 0);
  }
  bool operator==(const int& rhs) const
  {
    // quiets compiler warnings
    bool is_signed = std::numeric_limits<int_type>::is_signed;
    if(!is_signed)
    {
      if(is_neg_inf(value_) && rhs == 0)
      {
        return false;
      }
    }
    return (compare(rhs) == 0);
  }
  bool operator!=(const int_adapter& rhs) const
  {
    return (compare(rhs) != 0);
  }
  bool operator!=(const int& rhs) const
  {
    // quiets compiler warnings
    bool is_signed = std::numeric_limits<int_type>::is_signed;
    if(!is_signed)
    {
      if(is_neg_inf(value_) && rhs == 0)
      {
        return true;
      }
    }
    return (compare(rhs) != 0);
  }
  bool operator<(const int_adapter& rhs) const
  {
    return (compare(rhs) == -1);
  }
  bool operator<(const int& rhs) const
  {
    // quiets compiler warnings
    bool is_signed = std::numeric_limits<int_type>::is_signed;
    if(!is_signed)
    {
      if(is_neg_inf(value_) && rhs == 0)
      {
        return true;
      }
    }
    return (compare(rhs) == -1);
  }
  bool operator>(const int_adapter& rhs) const
  {
    return (compare(rhs) == 1);
  }
  int_type as_number() const
  {
    return value_;
  }
  //! Returns either special value type or is_not_special
  special_values as_special() const
  {
    return int_adapter::to_special(value_);
  }
  //creates nasty ambiguities
//   operator int_type() const
//   {
//     return value_;
//   }

  /*! Operator allows for adding dissimilar int_adapter types.
   * The return type will match that of the the calling object's type */
  template<class rhs_type>
  inline
  int_adapter operator+(const int_adapter<rhs_type>& rhs) const
  {
    if(is_special() || rhs.is_special())
    {
      if (is_nan() || rhs.is_nan())
      {
        return int_adapter::not_a_number();
      }
      if((is_pos_inf(value_) && rhs.is_neg_inf(rhs.as_number())) ||
      (is_neg_inf(value_) && rhs.is_pos_inf(rhs.as_number())) )
      {
        return int_adapter::not_a_number();
      }
      if (is_infinity())
      {
        return *this;
      }
      if (rhs.is_pos_inf(rhs.as_number()))
      {
        return int_adapter::pos_infinity();
      }
      if (rhs.is_neg_inf(rhs.as_number()))
      {
        return int_adapter::neg_infinity();
      }
    }
    return int_adapter<int_type>(value_ + static_cast<int_type>(rhs.as_number()));
  }

  int_adapter operator+(const int_type rhs) const
  {
    if(is_special())
    {
      if (is_nan())
      {
        return int_adapter<int_type>(not_a_number());
      }
      if (is_infinity())
      {
        return *this;
      }
    }
    return int_adapter<int_type>(value_ + rhs);
  }

  /*! Operator allows for subtracting dissimilar int_adapter types.
   * The return type will match that of the the calling object's type */
  template<class rhs_type>
  inline
  int_adapter operator-(const int_adapter<rhs_type>& rhs)const
  {
    if(is_special() || rhs.is_special())
    {
      if (is_nan() || rhs.is_nan())
      {
        return int_adapter::not_a_number();
      }
      if((is_pos_inf(value_) && rhs.is_pos_inf(rhs.as_number())) ||
         (is_neg_inf(value_) && rhs.is_neg_inf(rhs.as_number())) )
      {
        return int_adapter::not_a_number();
      }
      if (is_infinity())
      {
        return *this;
      }
      if (rhs.is_pos_inf(rhs.as_number()))
      {
        return int_adapter::neg_infinity();
      }
      if (rhs.is_neg_inf(rhs.as_number()))
      {
        return int_adapter::pos_infinity();
      }
    }
    return int_adapter<int_type>(value_ - static_cast<int_type>(rhs.as_number()));
  }
  int_adapter operator-(const int_type rhs) const
  {
    if(is_special())
    {
      if (is_nan())
      {
        return int_adapter<int_type>(not_a_number());
      }
      if (is_infinity())
      {
        return *this;
      }
    }
    return int_adapter<int_type>(value_ - rhs);
  }

  // should templatize this to be consistant with op +-
  int_adapter operator*(const int_adapter& rhs)const
  {
    if(this->is_special() || rhs.is_special())
    {
      return mult_div_specials(rhs);
    }
    return int_adapter<int_type>(value_ * rhs.value_);
  }
  /*! Provided for cases when automatic conversion from
   * 'int' to 'int_adapter' causes incorrect results. */
  int_adapter operator*(const int rhs) const
  {
    if(is_special())
    {
      return mult_div_specials(rhs);
    }
    return int_adapter<int_type>(value_ * rhs);
  }

  // should templatize this to be consistant with op +-
  int_adapter operator/(const int_adapter& rhs)const
  {
    if(this->is_special() || rhs.is_special())
    {
      if(is_infinity() && rhs.is_infinity())
      {
        return int_adapter<int_type>(not_a_number());
      }
      if(rhs != 0)
      {
        return mult_div_specials(rhs);
      }
      else { // let divide by zero blow itself up
        return int_adapter<int_type>(value_ / rhs.value_);
      }
    }
    return int_adapter<int_type>(value_ / rhs.value_);
  }
  /*! Provided for cases when automatic conversion from
   * 'int' to 'int_adapter' causes incorrect results. */
  int_adapter operator/(const int rhs) const
  {
    if(is_special() && rhs != 0)
    {
      return mult_div_specials(rhs);
    }
    return int_adapter<int_type>(value_ / rhs);
  }

  // should templatize this to be consistant with op +-
  int_adapter operator%(const int_adapter& rhs)const
  {
    if(this->is_special() || rhs.is_special())
    {
      if(is_infinity() && rhs.is_infinity())
      {
        return int_adapter<int_type>(not_a_number());
      }
      if(rhs != 0)
      {
        return mult_div_specials(rhs);
      }
      else { // let divide by zero blow itself up
        return int_adapter<int_type>(value_ % rhs.value_);
      }
    }
    return int_adapter<int_type>(value_ % rhs.value_);
  }
  /*! Provided for cases when automatic conversion from
   * 'int' to 'int_adapter' causes incorrect results. */
  int_adapter operator%(const int rhs) const
  {
    if(is_special() && rhs != 0)
    {
      return mult_div_specials(rhs);
    }
    return int_adapter<int_type>(value_ % rhs);
  }
private:
  int_type value_;

  //! returns -1, 0, 1, or 2 if 'this' is <, ==, >, or 'nan comparison' rhs
  int compare(const int_adapter& rhs)const
  {
    if(this->is_special() || rhs.is_special())
    {
      if(this->is_nan() || rhs.is_nan()) {
        if(this->is_nan() && rhs.is_nan()) {
          return 0; // equal
        }
        else {
          return 2; // nan
        }
      }
      if((is_neg_inf(value_) && !is_neg_inf(rhs.value_)) ||
         (is_pos_inf(rhs.value_) && !is_pos_inf(value_)) )
        {
          return -1; // less than
        }
      if((is_pos_inf(value_) && !is_pos_inf(rhs.value_)) ||
         (is_neg_inf(rhs.value_) && !is_neg_inf(value_)) ) {
        return 1; // greater than
      }
    }
    if(value_ < rhs.value_) return -1;
    if(value_ > rhs.value_) return 1;
    // implied-> if(value_ == rhs.value_)
    return 0;
  }
  /* When multiplying and dividing with at least 1 special value
   * very simmilar rules apply. In those cases where the rules
   * are different, they are handled in the respective operator
   * function. */
  //! Assumes at least 'this' or 'rhs' is a special value
  int_adapter mult_div_specials(const int_adapter& rhs)const
  {
    int min_value;
    // quiets compiler warnings
    bool is_signed = std::numeric_limits<int_type>::is_signed;
    if(is_signed) {
      min_value = 0;
    }
    else {
      min_value = 1;// there is no zero with unsigned
    }
    if(this->is_nan() || rhs.is_nan()) {
      return int_adapter<int_type>(not_a_number());
    }
    if((*this > 0 && rhs > 0) || (*this < min_value && rhs < min_value)) {
        return int_adapter<int_type>(pos_infinity());
    }
    if((*this > 0 && rhs < min_value) || (*this < min_value && rhs > 0)) {
        return int_adapter<int_type>(neg_infinity());
    }
    //implied -> if(this->value_ == 0 || rhs.value_ == 0)
    return int_adapter<int_type>(not_a_number());
  }
  /* Overloaded function necessary because of special
   * situation where int_adapter is instantiated with
   * 'unsigned' and func is called with negative int.
   * It would produce incorrect results since 'unsigned'
   * wraps around when initialized with a negative value */
  //! Assumes 'this' is a special value
  int_adapter mult_div_specials(const int& rhs) const
  {
    int min_value;
    // quiets compiler warnings
    bool is_signed = std::numeric_limits<int_type>::is_signed;
    if(is_signed) {
      min_value = 0;
    }
    else {
      min_value = 1;// there is no zero with unsigned
    }
    if(this->is_nan()) {
      return int_adapter<int_type>(not_a_number());
    }
    if((*this > 0 && rhs > 0) || (*this < min_value && rhs < 0)) {
        return int_adapter<int_type>(pos_infinity());
    }
    if((*this > 0 && rhs < 0) || (*this < min_value && rhs > 0)) {
        return int_adapter<int_type>(neg_infinity());
    }
    //implied -> if(this->value_ == 0 || rhs.value_ == 0)
    return int_adapter<int_type>(not_a_number());
  }

};

#ifndef BOOST_DATE_TIME_NO_LOCALE
  /*! Expected output is either a numeric representation
   * or a special values representation.<BR>
   * Ex. "12", "+infinity", "not-a-number", etc. */
  //template<class charT = char, class traits = std::traits<charT>, typename int_type>
  template<class charT, class traits, typename int_type>
  inline
  std::basic_ostream<charT, traits>&
  operator<<(std::basic_ostream<charT, traits>& os, const int_adapter<int_type>& ia)
  {
    if(ia.is_special()) {
      // switch copied from date_names_put.hpp
      switch(ia.as_special())
        {
      case not_a_date_time:
        os << "not-a-number";
        break;
      case pos_infin:
        os << "+infinity";
        break;
      case neg_infin:
        os << "-infinity";
        break;
      default:
        os << "";
      }
    }
    else {
      os << ia.as_number();
    }
    return os;
  }
#endif

} } //namespace date_time

#endif


code:
/*=============================================================================
    Copyright (c) 2001-2011 Joel de Guzman

    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)

    This is an auto-generated file. Do not edit!
==============================================================================*/
namespace boost { namespace fusion { namespace detail
{
    template<typename Key, typename Value, typename Rest>
    struct keyed_element;
    struct nil_keyed_element;
    template<typename N, typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_>
    struct deque_keyed_values_impl;
    template<typename N>
    struct deque_keyed_values_impl<N, void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_ , void_>
    {
        typedef nil_keyed_element type;
        BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
        static type construct()
        {
            return type();
        }
        BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
        static type forward_()
        {
            return type();
        }
    };
    template<typename N, typename T0 , typename T1 , typename T2 , typename T3 , typename T4 , typename T5 , typename T6 , typename T7 , typename T8 , typename T9>
    struct deque_keyed_values_impl
    {
        typedef mpl::int_<mpl::plus<N, mpl::int_<1> >::value> next_index;
        typedef typename deque_keyed_values_impl<
            next_index,
            T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9>::type tail;
        typedef keyed_element<N, T0, tail> type;
        BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
        static type construct(typename detail::call_param<T0 >::type t0)
        {
            return type(t0,
                        deque_keyed_values_impl<
                        next_index
                        >::construct());
        }
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
        template <typename T_0>
        BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
        static type forward_(T_0 && t0)
        {
            return type(std::forward<T_0>( t0),
                        deque_keyed_values_impl<
                        next_index
                        >::forward_());
        }
# endif
        BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
        static type construct(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1)
        {
            return type(t0,
                        deque_keyed_values_impl<
                        next_index
                        , T1
                        >::construct(t1));
        }
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
        template <typename T_0 , typename T_1>
        BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
        static type forward_(T_0 && t0 , T_1 && t1)
        {
            return type(std::forward<T_0>( t0),
                        deque_keyed_values_impl<
                        next_index
                        , T_1
                        >::forward_(std::forward<T_1>( t1)));
        }
# endif
        BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
        static type construct(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2)
        {
            return type(t0,
                        deque_keyed_values_impl<
                        next_index
                        , T1 , T2
                        >::construct(t1 , t2));
        }
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
        template <typename T_0 , typename T_1 , typename T_2>
        BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
        static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2)
        {
            return type(std::forward<T_0>( t0),
                        deque_keyed_values_impl<
                        next_index
                        , T_1 , T_2
                        >::forward_(std::forward<T_1>( t1) , std::forward<T_2>( t2)));
        }
# endif
        BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
        static type construct(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3)
        {
            return type(t0,
                        deque_keyed_values_impl<
                        next_index
                        , T1 , T2 , T3
                        >::construct(t1 , t2 , t3));
        }
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
        template <typename T_0 , typename T_1 , typename T_2 , typename T_3>
        BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
        static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3)
        {
            return type(std::forward<T_0>( t0),
                        deque_keyed_values_impl<
                        next_index
                        , T_1 , T_2 , T_3
                        >::forward_(std::forward<T_1>( t1) , std::forward<T_2>( t2) , std::forward<T_3>( t3)));
        }
# endif
        BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
        static type construct(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3 , typename detail::call_param<T4 >::type t4)
        {
            return type(t0,
                        deque_keyed_values_impl<
                        next_index
                        , T1 , T2 , T3 , T4
                        >::construct(t1 , t2 , t3 , t4));
        }
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
        template <typename T_0 , typename T_1 , typename T_2 , typename T_3 , typename T_4>
        BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
        static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4)
        {
            return type(std::forward<T_0>( t0),
                        deque_keyed_values_impl<
                        next_index
                        , T_1 , T_2 , T_3 , T_4
                        >::forward_(std::forward<T_1>( t1) , std::forward<T_2>( t2) , std::forward<T_3>( t3) , std::forward<T_4>( t4)));
        }
# endif
        BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
        static type construct(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3 , typename detail::call_param<T4 >::type t4 , typename detail::call_param<T5 >::type t5)
        {
            return type(t0,
                        deque_keyed_values_impl<
                        next_index
                        , T1 , T2 , T3 , T4 , T5
                        >::construct(t1 , t2 , t3 , t4 , t5));
        }
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
        template <typename T_0 , typename T_1 , typename T_2 , typename T_3 , typename T_4 , typename T_5>
        BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
        static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5)
        {
            return type(std::forward<T_0>( t0),
                        deque_keyed_values_impl<
                        next_index
                        , T_1 , T_2 , T_3 , T_4 , T_5
                        >::forward_(std::forward<T_1>( t1) , std::forward<T_2>( t2) , std::forward<T_3>( t3) , std::forward<T_4>( t4) , std::forward<T_5>( t5)));
        }
# endif
        BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
        static type construct(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3 , typename detail::call_param<T4 >::type t4 , typename detail::call_param<T5 >::type t5 , typename detail::call_param<T6 >::type t6)
        {
            return type(t0,
                        deque_keyed_values_impl<
                        next_index
                        , T1 , T2 , T3 , T4 , T5 , T6
                        >::construct(t1 , t2 , t3 , t4 , t5 , t6));
        }
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
        template <typename T_0 , typename T_1 , typename T_2 , typename T_3 , typename T_4 , typename T_5 , typename T_6>
        BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
        static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6)
        {
            return type(std::forward<T_0>( t0),
                        deque_keyed_values_impl<
                        next_index
                        , T_1 , T_2 , T_3 , T_4 , T_5 , T_6
                        >::forward_(std::forward<T_1>( t1) , std::forward<T_2>( t2) , std::forward<T_3>( t3) , std::forward<T_4>( t4) , std::forward<T_5>( t5) , std::forward<T_6>( t6)));
        }
# endif
        BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
        static type construct(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3 , typename detail::call_param<T4 >::type t4 , typename detail::call_param<T5 >::type t5 , typename detail::call_param<T6 >::type t6 , typename detail::call_param<T7 >::type t7)
        {
            return type(t0,
                        deque_keyed_values_impl<
                        next_index
                        , T1 , T2 , T3 , T4 , T5 , T6 , T7
                        >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7));
        }
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
        template <typename T_0 , typename T_1 , typename T_2 , typename T_3 , typename T_4 , typename T_5 , typename T_6 , typename T_7>
        BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
        static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7)
        {
            return type(std::forward<T_0>( t0),
                        deque_keyed_values_impl<
                        next_index
                        , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7
                        >::forward_(std::forward<T_1>( t1) , std::forward<T_2>( t2) , std::forward<T_3>( t3) , std::forward<T_4>( t4) , std::forward<T_5>( t5) , std::forward<T_6>( t6) , std::forward<T_7>( t7)));
        }
# endif
        BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
        static type construct(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3 , typename detail::call_param<T4 >::type t4 , typename detail::call_param<T5 >::type t5 , typename detail::call_param<T6 >::type t6 , typename detail::call_param<T7 >::type t7 , typename detail::call_param<T8 >::type t8)
        {
            return type(t0,
                        deque_keyed_values_impl<
                        next_index
                        , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8
                        >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8));
        }
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
        template <typename T_0 , typename T_1 , typename T_2 , typename T_3 , typename T_4 , typename T_5 , typename T_6 , typename T_7 , typename T_8>
        BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
        static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8)
        {
            return type(std::forward<T_0>( t0),
                        deque_keyed_values_impl<
                        next_index
                        , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8
                        >::forward_(std::forward<T_1>( t1) , std::forward<T_2>( t2) , std::forward<T_3>( t3) , std::forward<T_4>( t4) , std::forward<T_5>( t5) , std::forward<T_6>( t6) , std::forward<T_7>( t7) , std::forward<T_8>( t8)));
        }
# endif
        BOOST_CONSTEXPR BOOST_FUSION_GPU_ENABLED
        static type construct(typename detail::call_param<T0 >::type t0 , typename detail::call_param<T1 >::type t1 , typename detail::call_param<T2 >::type t2 , typename detail::call_param<T3 >::type t3 , typename detail::call_param<T4 >::type t4 , typename detail::call_param<T5 >::type t5 , typename detail::call_param<T6 >::type t6 , typename detail::call_param<T7 >::type t7 , typename detail::call_param<T8 >::type t8 , typename detail::call_param<T9 >::type t9)
        {
            return type(t0,
                        deque_keyed_values_impl<
                        next_index
                        , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9
                        >::construct(t1 , t2 , t3 , t4 , t5 , t6 , t7 , t8 , t9));
        }
# if !defined(BOOST_NO_CXX11_RVALUE_REFERENCES)
        template <typename T_0 , typename T_1 , typename T_2 , typename T_3 , typename T_4 , typename T_5 , typename T_6 , typename T_7 , typename T_8 , typename T_9>
        BOOST_CXX14_CONSTEXPR BOOST_FUSION_GPU_ENABLED
        static type forward_(T_0 && t0 , T_1 && t1 , T_2 && t2 , T_3 && t3 , T_4 && t4 , T_5 && t5 , T_6 && t6 , T_7 && t7 , T_8 && t8 , T_9 && t9)
        {
            return type(std::forward<T_0>( t0),
                        deque_keyed_values_impl<
                        next_index
                        , T_1 , T_2 , T_3 , T_4 , T_5 , T_6 , T_7 , T_8 , T_9
                        >::forward_(std::forward<T_1>( t1) , std::forward<T_2>( t2) , std::forward<T_3>( t3) , std::forward<T_4>( t4) , std::forward<T_5>( t5) , std::forward<T_6>( t6) , std::forward<T_7>( t7) , std::forward<T_8>( t8) , std::forward<T_9>( t9)));
        }
# endif
    };
    template<typename T0 = void_ , typename T1 = void_ , typename T2 = void_ , typename T3 = void_ , typename T4 = void_ , typename T5 = void_ , typename T6 = void_ , typename T7 = void_ , typename T8 = void_ , typename T9 = void_>
    struct deque_keyed_values
        : deque_keyed_values_impl<mpl::int_<0>, T0 , T1 , T2 , T3 , T4 , T5 , T6 , T7 , T8 , T9>
    {};
}}}