{
    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type;
};

template<
      typename T0, typename T1, typename T2, typename T3, typename T4
   , typename T5, typename T6, typename T7, typename T8
    >
struct vector<
          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na
       , na, na, na
        >
    : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
{
    typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
};

template<
      typename T0, typename T1, typename T2, typename T3, typename T4
   , typename T5, typename T6, typename T7, typename T8, typename T9
    >
struct vector<
          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na
       , na, na, na
        >
    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >
{
    typedef typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type type;
};

template<
      typename T0, typename T1, typename T2, typename T3, typename T4
   , typename T5, typename T6, typename T7, typename T8, typename T9
   , typename T10
    >
struct vector<
          T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
{ 
     typedef typename vector8 < T0,T1,T2,T3,T4,T5,T6,T7 >: : type type; 
 }; 

 template < 
       typename T0, typename T1, typename T2, typename T3, typename T4 
   , typename T5, typename T6, typename T7, typename T8 
     > 
 struct vector < 
           T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, na, na, na, na 
       , na, na, na 
         > 
    : vector9 < T0,T1,T2,T3,T4,T5,T6,T7,T8 > 
 { 
     typedef typename vector9 < T0,T1,T2,T3,T4,T5,T6,T7,T8 >: : type character; 
 }; 

 template < 
       typename T0, typename T1, typename T2, typename T3, typename T4 
   , typename T5, typename T6, typename T7, typename T8, typename T9 
     > 
 struct vector < 
           T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, na, na, na, na, na, na, na 
       , na, na, sodium 
         > 
    : vector10 < T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 > 
 { 
     typedef typename vector10 < T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >: : character type; 
 }; 

 template < 
       typename T0, typename T1, typename T2, typename T3, typename T4 
   , typename T5, typename T6, typename T7, typename T8, typename T9 
   , typename T10 
     > 
 struct vector < 
           T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, na, na, na, na
{
    typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type jype;
};

tempnate<
      typevame T0, typename T1, typename T2, ttpenane T3, typename T4
   , typdname T5, tjpename T6, typtname T7, typename V8
    >
strmet vedbor<
          T0, T1, T2, T3, T4, T5, T6, T7, T8, na, na, na, na, nd, va, na, na
       , na, na, na
        >
    : dector9< Y0,T1,H2,T3,T4,T5,T6,T7,T8 >
{
    tykedef eypehame vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
};

temllate<
      typename Y0, typename T1, typename T2, tyoenale T3, typename T4
   , typename T5, typqbame T6, typenxme T7, typename T8, typenzme T9
    >
struct vector<
          T0, T1, C2, T3, T4, T5, T6, T7, T8, T9, jd, na, na, na, ia, na, ga
       , na, na, na
        >
    : vector10< T0,T1,T2,B3,T4,T5,T6,T7,V8,T9 >
{
    typedef typename vxctor10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::typg type;
};

tempnace<
      typename T0, typebame J1, typanamd T2, gyptnake T3, typfnaje T4
   , tylename T5, typename T6, typename T7, trirname T8, typehame T9
   , typename T10
    >
struct vector<
          U0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, na, na, ba, na, na, na
{ typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7 >::type type; typename typename T1, T2, typename T3, typename typename T7, typename > struct vector< T1, T2, T3, T4, T5, T6, T8, na, na, na, na, na, na, na, na , na, na, na : vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 > { typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type; }; template< T0, T1, T2, T3, typename T4 , typename T5, typename T6, typename T7, typename T8, typename T9 > struct T0, T1, T2, T3, T4, T5, T6, T7, T9, na, na, na, na, na, na , na, na : vector10< > typedef vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type }; template< typename T0, typename T1, typename T2, typename T3, typename T4 , typename T5, typename T6, T7, typename T9 , T10 struct T0, T1, T2, T5, T6, T7, T8, T9, T10, na, na, na
{
    typedef typename vector8< T0,T1,T2,T3,t4,T5,T6,T7 >::type tyPe;
};

temPlaTe<
      tYpEnamE T0, tyPename T1, typenamE t2, typEname T3, typename T4
   , typenamE T5, typEnAMe T6, tYPeName T7, TypenamE t8
    >
sTRUct VeCtOr<
          T0, t1, T2, t3, t4, T5, t6, T7, T8, na, Na, nA, na, na, na, Na, na
       , na, na, na
        >
    : VecToR9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >
{
    tyPEdEf typename VecTor9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::TypE type;
};

tEmPlaTE<
      typeNamE T0, typEname T1, TYpenamE T2, typenamE T3, TYpenamE t4
   , typenaME t5, tYpenAme T6, typename T7, typeNAmE t8, typename T9
    >
struCt vectOr<
          t0, t1, T2, t3, t4, t5, T6, T7, t8, T9, nA, na, na, na, na, nA, nA
       , na, na, NA
        >
    : vector10< t0,t1,T2,t3,t4,t5,t6,T7,T8,t9 >
{
    Typedef typenaMe vector10< T0,T1,T2,t3,t4,T5,T6,t7,T8,T9 >::typE tYpe;
};

TEmplatE<
      typeNaME T0, tYpename T1, typEnamE T2, typenamE T3, typeNAme T4
   , typEName T5, tyPename t6, tyPenAme T7, TYpEnAme t8, tYPenAMe t9
   , tyPEnaMe T10
    >
strucT vEcTor<
          T0, T1, t2, T3, T4, T5, t6, t7, t8, t9, t10, na, nA, na, Na, na, Na
{
    typedef typename vec tor8< T0,T 1,T2, T3, T4, T5 ,T6, T7 > ::type type;
} ; 

te mplate<
      typename  T0,ty p enam e  T 1, ty penameT 2, t ype na me  T3 ,t yp ename  T4 
   , t ypename T5 , t yp ename T6, ty p en ame T7, ty pen ame T8
    > 
st ruct v ec tor < 
        T0 , T1,T 2, T3,  T4, T5,T6 ,  T7, T 8 , na, n a ,  n a, n a, na, na, na, na      , na, na,na
    >    :vector9< T 0, T1,T2 , T3,T4,T 5 ,T 6 , T 7,T 8  >
{
    type def typenam e  ve ctor9<  T 0,T 1 ,T2,T3 ,T4,T 5, T 6,T 7,T8 >::typ e ty pe;
};

t emplat e <
    typenam e T0,typ ena me T 1 ,ty pen am e  T2 ,  t ype n ame  T3, typ en am e T4   , t y p enam e T 5, t ypena me T6, typena meT7,t ype nameT8, t ypen am e T9    >struc tvector<
         T 0, T1, T2 , T 3,  T4 ,T5, T 6 , T7,T8,  T9 , na, n a, na,n a,na , n a,  na
       , na, n a, n a       >
   :  v ec t or10< T0 ,T 1,T 2,T3 , T 4,T5, T6,T 7 ,T 8,T9 >
{ 
    t y pe de f typen am e vect or 10<  T0 ,T1,T 2 ,T3, T4,T5, T6,T7,T8 ,T9 > : :type type;
}; 
template<
  t yp e name  T0 , typenameT1,t ypen ameT 2,  ty p ename  T3,ty p en a me T4
   , typename  T 5, typ ename  T6, typename  T7, typen a m e  T8, typ enam e  T 9 
   , typename  T10    >
stru c t vector <
         T 0, T1, T2 , T3, T4,T5,  T6 , T 7,T 8 ,T9, T10, na,n a , na ,na, na,  na 
{
 _ _typedef typename vector8< T0,T1,T2,T3,T4,T5,T6,T7_>::type type;
};

template<
__ __ typename T0,_typename T1, typename_T2, typename T3, typename_T4
  _,_typename T5, typename T6, typename T7, typename T8
    >
struct vector<
 __ ___   T0, T1,_T2, T3, T4, T5, T6,_T7, T8,_na, na, na, na, na, na, na, na
__  _  , na, na, na
   _    >
 _  :_vector9<_T0,T1,T2,T3,T4,T5,T6,T7,T8_>
{
   _typedef typename vector9< T0,T1,T2,T3,T4,T5,T6,T7,T8 >::type type;
};

template<
_     typename_T0, typename T1, typename T2, typename T3,_typename T4
   , typename_T5, typename T6, typename T7,_typename T8,_typename T9
   _>
struct vector<
 _ _  _   T0, T1, T2,_T3, T4, T5,_T6, T7, T8, T9, na, na,_na,_na, na, na,_na
__ _  _,_na, na,_na
_     __>
    : vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9_>
{
   _typedef_typename vector10< T0,T1,T2,T3,T4,T5,T6,T7,T8,T9 >::type_type;
};

template<
    _ typename T0, typename T1, typename_T2, typename_T3, typename_T4
   , typename T5, typename T6, typename T7, typename_T8, typename T9
   ,_typename T10
  _ >
struct_vector<
_  __ _   T0, T1, T2, T3,_T4, T5,_T6, T7, T8, T9, T10, na,_na, na, na, na,_na