custom-macros.hh
上传用户:dzyhzl
上传日期:2019-04-29
资源大小:56270k
文件大小:1348k
源码类别:

模拟服务器

开发平台:

C/C++

  1.       s << obj.manip << obj.obj->names[15];
  2.       before = true; 
  3.      } 
  4.     if ((*obj.include)[16]) { 
  5.       if (before) s << obj.delem;
  6.       s << obj.manip << obj.obj->names[16];
  7.       before = true; 
  8.      } 
  9.     if ((*obj.include)[17]) { 
  10.       if (before) s << obj.delem;
  11.       s << obj.manip << obj.obj->names[17];
  12.       before = true; 
  13.      } 
  14.     if ((*obj.include)[18]) { 
  15.       if (before) s << obj.delem;
  16.       s << obj.manip << obj.obj->names[18];
  17.       before = true; 
  18.      } 
  19.     if ((*obj.include)[19]) { 
  20.       if (before) s << obj.delem;
  21.       s << obj.manip << obj.obj->names[19];
  22.       before = true; 
  23.      } 
  24.     if ((*obj.include)[20]) { 
  25.       if (before) s << obj.delem;
  26.       s << obj.manip << obj.obj->names[20];
  27.       before = true; 
  28.      } 
  29.     if ((*obj.include)[21]) { 
  30.       if (before) s << obj.delem;
  31.       s << obj.manip << obj.obj->names[21];
  32.       before = true; 
  33.      } 
  34.     if ((*obj.include)[22]) { 
  35.       if (before) s << obj.delem;
  36.       s << obj.manip << obj.obj->names[22];
  37.       before = true; 
  38.      } 
  39.     if ((*obj.include)[23]) { 
  40.       if (before) s << obj.delem;
  41.       s << obj.manip << obj.obj->names[23];
  42.      } 
  43.     return s; 
  44.   } 
  45.   template <class Manip>
  46.   ostream& operator << (ostream& s, const NAME##_cus_equal_list<Manip>& obj) { 
  47.     bool before = false; 
  48.     if ((*obj.include)[0]) { 
  49.       s << obj.obj->names[0] << obj.comp << obj.manip << obj.obj->##I1;
  50.       before = true; 
  51.      } 
  52.     if ((*obj.include)[1]) { 
  53.       if (before) s << obj.delem;
  54.       s << obj.obj->names[1] << obj.comp << obj.manip << obj.obj->##I2;
  55.       before = true; 
  56.      } 
  57.     if ((*obj.include)[2]) { 
  58.       if (before) s << obj.delem;
  59.       s << obj.obj->names[2] << obj.comp << obj.manip << obj.obj->##I3;
  60.       before = true; 
  61.      } 
  62.     if ((*obj.include)[3]) { 
  63.       if (before) s << obj.delem;
  64.       s << obj.obj->names[3] << obj.comp << obj.manip << obj.obj->##I4;
  65.       before = true; 
  66.      } 
  67.     if ((*obj.include)[4]) { 
  68.       if (before) s << obj.delem;
  69.       s << obj.obj->names[4] << obj.comp << obj.manip << obj.obj->##I5;
  70.       before = true; 
  71.      } 
  72.     if ((*obj.include)[5]) { 
  73.       if (before) s << obj.delem;
  74.       s << obj.obj->names[5] << obj.comp << obj.manip << obj.obj->##I6;
  75.       before = true; 
  76.      } 
  77.     if ((*obj.include)[6]) { 
  78.       if (before) s << obj.delem;
  79.       s << obj.obj->names[6] << obj.comp << obj.manip << obj.obj->##I7;
  80.       before = true; 
  81.      } 
  82.     if ((*obj.include)[7]) { 
  83.       if (before) s << obj.delem;
  84.       s << obj.obj->names[7] << obj.comp << obj.manip << obj.obj->##I8;
  85.       before = true; 
  86.      } 
  87.     if ((*obj.include)[8]) { 
  88.       if (before) s << obj.delem;
  89.       s << obj.obj->names[8] << obj.comp << obj.manip << obj.obj->##I9;
  90.       before = true; 
  91.      } 
  92.     if ((*obj.include)[9]) { 
  93.       if (before) s << obj.delem;
  94.       s << obj.obj->names[9] << obj.comp << obj.manip << obj.obj->##I10;
  95.       before = true; 
  96.      } 
  97.     if ((*obj.include)[10]) { 
  98.       if (before) s << obj.delem;
  99.       s << obj.obj->names[10] << obj.comp << obj.manip << obj.obj->##I11;
  100.       before = true; 
  101.      } 
  102.     if ((*obj.include)[11]) { 
  103.       if (before) s << obj.delem;
  104.       s << obj.obj->names[11] << obj.comp << obj.manip << obj.obj->##I12;
  105.       before = true; 
  106.      } 
  107.     if ((*obj.include)[12]) { 
  108.       if (before) s << obj.delem;
  109.       s << obj.obj->names[12] << obj.comp << obj.manip << obj.obj->##I13;
  110.       before = true; 
  111.      } 
  112.     if ((*obj.include)[13]) { 
  113.       if (before) s << obj.delem;
  114.       s << obj.obj->names[13] << obj.comp << obj.manip << obj.obj->##I14;
  115.       before = true; 
  116.      } 
  117.     if ((*obj.include)[14]) { 
  118.       if (before) s << obj.delem;
  119.       s << obj.obj->names[14] << obj.comp << obj.manip << obj.obj->##I15;
  120.       before = true; 
  121.      } 
  122.     if ((*obj.include)[15]) { 
  123.       if (before) s << obj.delem;
  124.       s << obj.obj->names[15] << obj.comp << obj.manip << obj.obj->##I16;
  125.       before = true; 
  126.      } 
  127.     if ((*obj.include)[16]) { 
  128.       if (before) s << obj.delem;
  129.       s << obj.obj->names[16] << obj.comp << obj.manip << obj.obj->##I17;
  130.       before = true; 
  131.      } 
  132.     if ((*obj.include)[17]) { 
  133.       if (before) s << obj.delem;
  134.       s << obj.obj->names[17] << obj.comp << obj.manip << obj.obj->##I18;
  135.       before = true; 
  136.      } 
  137.     if ((*obj.include)[18]) { 
  138.       if (before) s << obj.delem;
  139.       s << obj.obj->names[18] << obj.comp << obj.manip << obj.obj->##I19;
  140.       before = true; 
  141.      } 
  142.     if ((*obj.include)[19]) { 
  143.       if (before) s << obj.delem;
  144.       s << obj.obj->names[19] << obj.comp << obj.manip << obj.obj->##I20;
  145.       before = true; 
  146.      } 
  147.     if ((*obj.include)[20]) { 
  148.       if (before) s << obj.delem;
  149.       s << obj.obj->names[20] << obj.comp << obj.manip << obj.obj->##I21;
  150.       before = true; 
  151.      } 
  152.     if ((*obj.include)[21]) { 
  153.       if (before) s << obj.delem;
  154.       s << obj.obj->names[21] << obj.comp << obj.manip << obj.obj->##I22;
  155.       before = true; 
  156.      } 
  157.     if ((*obj.include)[22]) { 
  158.       if (before) s << obj.delem;
  159.       s << obj.obj->names[22] << obj.comp << obj.manip << obj.obj->##I23;
  160.       before = true; 
  161.      } 
  162.     if ((*obj.include)[23]) { 
  163.       if (before) s << obj.delem;
  164.       s << obj.obj->names[23] << obj.comp << obj.manip << obj.obj->##I24;
  165.      } 
  166.     return s; 
  167.   } 
  168.   template <class Manip>
  169.   inline NAME##_value_list<Manip> NAME##::value_list(cchar *d, Manip m) const { 
  170.     return NAME##_value_list<Manip> (this, d, m); 
  171.   } 
  172.   template <class Manip>
  173.   inline NAME##_field_list<Manip> NAME##::field_list(cchar *d, Manip m) const { 
  174.     return NAME##_field_list<Manip> (this, d, m); 
  175.   } 
  176.   template <class Manip>
  177.   inline NAME##_equal_list<Manip> NAME##::equal_list(cchar *d, cchar *c, Manip m) const { 
  178.     return NAME##_equal_list<Manip> (this, d, c, m); 
  179.   } 
  180.   template <class Manip>
  181.   inline NAME##_cus_value_list<Manip> NAME##::value_list(cchar *d, Manip m,
  182.        bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18, bool i19, bool i20, bool i21, bool i22, bool i23, bool i24) const {
  183.     return NAME##_cus_value_list<Manip> (this, d, m, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24); 
  184.   } 
  185.   template <class Manip>
  186.   inline NAME##_cus_field_list<Manip> NAME##::field_list(cchar *d, Manip m,
  187.  bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18, bool i19, bool i20, bool i21, bool i22, bool i23, bool i24) const { 
  188.     return NAME##_cus_field_list<Manip> (this, d, m, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24); 
  189.   } 
  190.   template <class Manip>
  191.   inline NAME##_cus_equal_list<Manip> NAME##::equal_list(cchar *d, cchar *c, Manip m,
  192.  bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18, bool i19, bool i20, bool i21, bool i22, bool i23, bool i24) const { 
  193.     return NAME##_cus_equal_list<Manip> (this, d, c, m, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24); 
  194.   } 
  195.   template <class Manip>
  196.   inline NAME##_cus_value_list<Manip> NAME##::value_list(cchar *d, Manip m,
  197.        ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18, ##NAME##_enum i19, ##NAME##_enum i20, ##NAME##_enum i21, ##NAME##_enum i22, ##NAME##_enum i23, ##NAME##_enum i24) const { 
  198.     return NAME##_cus_value_list<Manip> (this, d, m, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24); 
  199.   } 
  200.   template <class Manip>
  201.   inline NAME##_cus_field_list<Manip> NAME##::field_list(cchar *d, Manip m,
  202.  ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18, ##NAME##_enum i19, ##NAME##_enum i20, ##NAME##_enum i21, ##NAME##_enum i22, ##NAME##_enum i23, ##NAME##_enum i24) const {
  203.     return NAME##_cus_field_list<Manip> (this, d, m, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24); 
  204.   } 
  205.   template <class Manip>
  206.   inline NAME##_cus_equal_list<Manip> NAME##::equal_list(cchar *d, cchar *c, Manip m, 
  207.  ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18, ##NAME##_enum i19, ##NAME##_enum i20, ##NAME##_enum i21, ##NAME##_enum i22, ##NAME##_enum i23, ##NAME##_enum i24) const { 
  208.     return NAME##_cus_equal_list<Manip> (this, d, c, m, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24); 
  209.   } 
  210.   template <class Manip>
  211.   inline NAME##_cus_value_list<Manip> 
  212.   NAME##::value_list(cchar *d, Manip m, sql_cmp_type sc) const {
  213.     sql_compare_type_def_##CMP (NAME, value, NUM);
  214.   }
  215.   template <class Manip>
  216.   inline NAME##_cus_field_list<Manip> 
  217.   NAME##::field_list(cchar *d, Manip m, sql_cmp_type sc) const {
  218.     sql_compare_type_def_##CMP (NAME, field, NUM);
  219.   }
  220.   template <class Manip>
  221.   inline NAME##_cus_equal_list<Manip> 
  222.   NAME##::equal_list(cchar *d, cchar *c, Manip m, sql_cmp_type sc) const {
  223.     sql_compare_type_defe_##CMP (NAME, equal, NUM);
  224.   }
  225.   template <sql_dummy_type dummy> 
  226.   void populate_##NAME (NAME *s, const MysqlRow &row) { 
  227.     s->##I1 = row[ O1 ];
  228.     s->##I2 = row[ O2 ];
  229.     s->##I3 = row[ O3 ];
  230.     s->##I4 = row[ O4 ];
  231.     s->##I5 = row[ O5 ];
  232.     s->##I6 = row[ O6 ];
  233.     s->##I7 = row[ O7 ];
  234.     s->##I8 = row[ O8 ];
  235.     s->##I9 = row[ O9 ];
  236.     s->##I10 = row[ O10 ];
  237.     s->##I11 = row[ O11 ];
  238.     s->##I12 = row[ O12 ];
  239.     s->##I13 = row[ O13 ];
  240.     s->##I14 = row[ O14 ];
  241.     s->##I15 = row[ O15 ];
  242.     s->##I16 = row[ O16 ];
  243.     s->##I17 = row[ O17 ];
  244.     s->##I18 = row[ O18 ];
  245.     s->##I19 = row[ O19 ];
  246.     s->##I20 = row[ O20 ];
  247.     s->##I21 = row[ O21 ];
  248.     s->##I22 = row[ O22 ];
  249.     s->##I23 = row[ O23 ];
  250.     s->##I24 = row[ O24 ];
  251.   } 
  252.   inline NAME##::##NAME (const MysqlRow &row) 
  253.                                         {populate_##NAME##<sql_dummy>(this, row);}
  254.   inline void NAME##::set (const MysqlRow &row)
  255.                                         {populate_##NAME##<sql_dummy>(this, row);}
  256.   sql_COMPARE__##CMP##(NAME, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15, I16, I17, I18, I19, I20, I21, I22, I23, I24, 0, 0 )
  257. #define sql_create_basic_24(NAME, CMP, CONTR, T1, I1, T2, I2, T3, I3, T4, I4, T5, I5, T6, I6, T7, I7, T8, I8, T9, I9, T10, I10, T11, I11, T12, I12, T13, I13, T14, I14, T15, I15, T16, I16, T17, I17, T18, I18, T19, I19, T20, I20, T21, I21, T22, I22, T23, I23, T24, I24) 
  258.   sql_create_basic_c_order_24(NAME, CMP, CONTR, T1, I1, 0, T2, I2, 1, T3, I3, 2, T4, I4, 3, T5, I5, 4, T6, I6, 5, T7, I7, 6, T8, I8, 7, T9, I9, 8, T10, I10, 9, T11, I11, 10, T12, I12, 11, T13, I13, 12, T14, I14, 13, T15, I15, 14, T16, I16, 15, T17, I17, 16, T18, I18, 17, T19, I19, 18, T20, I20, 19, T21, I21, 20, T22, I22, 21, T23, I23, 22, T24, I24, 23)
  259. #define sql_create_24(NAME, CMP, CONTR, T1, I1, T2, I2, T3, I3, T4, I4, T5, I5, T6, I6, T7, I7, T8, I8, T9, I9, T10, I10, T11, I11, T12, I12, T13, I13, T14, I14, T15, I15, T16, I16, T17, I17, T18, I18, T19, I19, T20, I20, T21, I21, T22, I22, T23, I23, T24, I24) 
  260.   sql_create_complete_24(NAME, CMP, CONTR, T1, I1, #I1, 0, T2, I2, #I2, 1, T3, I3, #I3, 2, T4, I4, #I4, 3, T5, I5, #I5, 4, T6, I6, #I6, 5, T7, I7, #I7, 6, T8, I8, #I8, 7, T9, I9, #I9, 8, T10, I10, #I10, 9, T11, I11, #I11, 10, T12, I12, #I12, 11, T13, I13, #I13, 12, T14, I14, #I14, 13, T15, I15, #I15, 14, T16, I16, #I16, 15, T17, I17, #I17, 16, T18, I18, #I18, 17, T19, I19, #I19, 18, T20, I20, #I20, 19, T21, I21, #I21, 20, T22, I22, #I22, 21, T23, I23, #I23, 22, T24, I24, #I24, 23) 
  261. #define sql_create_c_order_24(NAME, CMP, CONTR, T1, I1, O1, T2, I2, O2, T3, I3, O3, T4, I4, O4, T5, I5, O5, T6, I6, O6, T7, I7, O7, T8, I8, O8, T9, I9, O9, T10, I10, O10, T11, I11, O11, T12, I12, O12, T13, I13, O13, T14, I14, O14, T15, I15, O15, T16, I16, O16, T17, I17, O17, T18, I18, O18, T19, I19, O19, T20, I20, O20, T21, I21, O21, T22, I22, O22, T23, I23, O23, T24, I24, O24) 
  262.   sql_create_complete_24(NAME, CMP, CONTR, T1, I1, #I1, O1, T2, I2, #I2, O2, T3, I3, #I3, O3, T4, I4, #I4, O4, T5, I5, #I5, O5, T6, I6, #I6, O6, T7, I7, #I7, O7, T8, I8, #I8, O8, T9, I9, #I9, O9, T10, I10, #I10, O10, T11, I11, #I11, O11, T12, I12, #I12, O12, T13, I13, #I13, O13, T14, I14, #I14, O14, T15, I15, #I15, O15, T16, I16, #I16, O16, T17, I17, #I17, O17, T18, I18, #I18, O18, T19, I19, #I19, O19, T20, I20, #I20, O20, T21, I21, #I21, O21, T22, I22, #I22, O22, T23, I23, #I23, O23, T24, I24, #I24, O24)
  263. #define sql_create_c_names_24(NAME, CMP, CONTR, T1, I1, N1, T2, I2, N2, T3, I3, N3, T4, I4, N4, T5, I5, N5, T6, I6, N6, T7, I7, N7, T8, I8, N8, T9, I9, N9, T10, I10, N10, T11, I11, N11, T12, I12, N12, T13, I13, N13, T14, I14, N14, T15, I15, N15, T16, I16, N16, T17, I17, N17, T18, I18, N18, T19, I19, N19, T20, I20, N20, T21, I21, N21, T22, I22, N22, T23, I23, N23, T24, I24, N24) 
  264.   sql_create_complete_24(NAME, CMP, CONTR, T1, I1, N1, 0, T2, I2, N2, 1, T3, I3, N3, 2, T4, I4, N4, 3, T5, I5, N5, 4, T6, I6, N6, 5, T7, I7, N7, 6, T8, I8, N8, 7, T9, I9, N9, 8, T10, I10, N10, 9, T11, I11, N11, 10, T12, I12, N12, 11, T13, I13, N13, 12, T14, I14, N14, 13, T15, I15, N15, 14, T16, I16, N16, 15, T17, I17, N17, 16, T18, I18, N18, 17, T19, I19, N19, 18, T20, I20, N20, 19, T21, I21, N21, 20, T22, I22, N22, 21, T23, I23, N23, 22, T24, I24, N24, 23)
  265. // ---------------------------------------------------
  266. //                  End Create 24
  267. // ---------------------------------------------------
  268. // ---------------------------------------------------
  269. //                  Begin Create 25
  270. // ---------------------------------------------------
  271. #define sql_create_basic_c_order_25(NAME, CMP, CONTR, T1, I1, O1, T2, I2, O2, T3, I3, O3, T4, I4, O4, T5, I5, O5, T6, I6, O6, T7, I7, O7, T8, I8, O8, T9, I9, O9, T10, I10, O10, T11, I11, O11, T12, I12, O12, T13, I13, O13, T14, I14, O14, T15, I15, O15, T16, I16, O16, T17, I17, O17, T18, I18, O18, T19, I19, O19, T20, I20, O20, T21, I21, O21, T22, I22, O22, T23, I23, O23, T24, I24, O24, T25, I25, O25)
  272.   struct NAME; 
  273.   template <sql_dummy_type dummy> int sql_compare_##NAME (const NAME &, const NAME &);
  274.   struct NAME { 
  275.     T1 I1;
  276.     T2 I2;
  277.     T3 I3;
  278.     T4 I4;
  279.     T5 I5;
  280.     T6 I6;
  281.     T7 I7;
  282.     T8 I8;
  283.     T9 I9;
  284.     T10 I10;
  285.     T11 I11;
  286.     T12 I12;
  287.     T13 I13;
  288.     T14 I14;
  289.     T15 I15;
  290.     T16 I16;
  291.     T17 I17;
  292.     T18 I18;
  293.     T19 I19;
  294.     T20 I20;
  295.     T21 I21;
  296.     T22 I22;
  297.     T23 I23;
  298.     T24 I24;
  299.     T25 I25; 
  300.     NAME () {} 
  301.     NAME (const MysqlRow &row);
  302.     sql_compare_define_##CMP(NAME, T1, I1, T2, I2, T3, I3, T4, I4, T5, I5, T6, I6, T7, I7, T8, I8, T9, I9, T10, I10, T11, I11, T12, I12, T13, I13, T14, I14, T15, I15, T16, I16, T17, I17, T18, I18, T19, I19, T20, I20, T21, I21, T22, I22, T23, I23, T24, I24, T25, I25, 0, 0)
  303.   }; 
  304.   template <sql_dummy_type dummy> 
  305.     void populate_##NAME (NAME *s, const MysqlRow &row) { 
  306.     s->##I1 = row[ O1 ];
  307.     s->##I2 = row[ O2 ];
  308.     s->##I3 = row[ O3 ];
  309.     s->##I4 = row[ O4 ];
  310.     s->##I5 = row[ O5 ];
  311.     s->##I6 = row[ O6 ];
  312.     s->##I7 = row[ O7 ];
  313.     s->##I8 = row[ O8 ];
  314.     s->##I9 = row[ O9 ];
  315.     s->##I10 = row[ O10 ];
  316.     s->##I11 = row[ O11 ];
  317.     s->##I12 = row[ O12 ];
  318.     s->##I13 = row[ O13 ];
  319.     s->##I14 = row[ O14 ];
  320.     s->##I15 = row[ O15 ];
  321.     s->##I16 = row[ O16 ];
  322.     s->##I17 = row[ O17 ];
  323.     s->##I18 = row[ O18 ];
  324.     s->##I19 = row[ O19 ];
  325.     s->##I20 = row[ O20 ];
  326.     s->##I21 = row[ O21 ];
  327.     s->##I22 = row[ O22 ];
  328.     s->##I23 = row[ O23 ];
  329.     s->##I24 = row[ O24 ];
  330.     s->##I25 = row[ O25 ]; 
  331.   } 
  332.   inline NAME##::##NAME (const MysqlRow &row) 
  333.     {populate_##NAME##<sql_dummy>(this, row);} 
  334.   sql_COMPARE__##CMP##(NAME, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15, I16, I17, I18, I19, I20, I21, I22, I23, I24, I25, 0 )
  335. #define sql_create_complete_25(NAME, CMP, CONTR, T1, I1, N1, O1, T2, I2, N2, O2, T3, I3, N3, O3, T4, I4, N4, O4, T5, I5, N5, O5, T6, I6, N6, O6, T7, I7, N7, O7, T8, I8, N8, O8, T9, I9, N9, O9, T10, I10, N10, O10, T11, I11, N11, O11, T12, I12, N12, O12, T13, I13, N13, O13, T14, I14, N14, O14, T15, I15, N15, O15, T16, I16, N16, O16, T17, I17, N17, O17, T18, I18, N18, O18, T19, I19, N19, O19, T20, I20, N20, O20, T21, I21, N21, O21, T22, I22, N22, O22, T23, I23, N23, O23, T24, I24, N24, O24, T25, I25, N25, O25) 
  336.   struct NAME; 
  337.   enum NAME##_enum { 
  338.     NAME##_##I1,
  339.     NAME##_##I2,
  340.     NAME##_##I3,
  341.     NAME##_##I4,
  342.     NAME##_##I5,
  343.     NAME##_##I6,
  344.     NAME##_##I7,
  345.     NAME##_##I8,
  346.     NAME##_##I9,
  347.     NAME##_##I10,
  348.     NAME##_##I11,
  349.     NAME##_##I12,
  350.     NAME##_##I13,
  351.     NAME##_##I14,
  352.     NAME##_##I15,
  353.     NAME##_##I16,
  354.     NAME##_##I17,
  355.     NAME##_##I18,
  356.     NAME##_##I19,
  357.     NAME##_##I20,
  358.     NAME##_##I21,
  359.     NAME##_##I22,
  360.     NAME##_##I23,
  361.     NAME##_##I24,
  362.     NAME##_##I25 
  363.     ,NAME##_NULL 
  364.   }; 
  365.   template <class Manip>
  366.   class NAME##_value_list { 
  367.   /*friend ostream& operator << <> (ostream&, const NAME##_value_list&); */
  368.   public: 
  369.     const NAME *obj;
  370.     cchar *delem;
  371.     Manip manip;
  372.   public: 
  373.     NAME##_value_list (const NAME *o, cchar *d, Manip m) 
  374.       : obj(o), delem(d), manip(m) {} 
  375.   };
  376.   template <class Manip>
  377.   class NAME##_##field_list {
  378.   /* friend ostream& operator << <> (ostream&, const NAME##_field_list&); */
  379.   public: 
  380.     const NAME *obj; 
  381.     cchar *delem;
  382.     Manip manip;
  383.   public: 
  384.     NAME##_field_list (const NAME *o, cchar *d, Manip m) 
  385.       : obj(o), delem(d), manip(m) {} 
  386.   };
  387.   template <class Manip>
  388.   class NAME##_equal_list { 
  389.   /* friend ostream& operator << <> (ostream&, const NAME##_equal_list&); */
  390.   public: 
  391.     const NAME *obj;
  392.     cchar *delem;
  393.     cchar *comp;
  394.     Manip manip;
  395.   public: 
  396.     NAME##_equal_list (const NAME *o, cchar *d, cchar *c, Manip m) 
  397.       : obj(o), delem(d), comp(c), manip(m) {}
  398.   };
  399.   template <class Manip>
  400.   class NAME##_cus_value_list {
  401.   /* friend ostream& operator << <> (ostream&, 
  402.      const NAME##_cus_value_list<Manip>&); */
  403.   public:
  404.     const NAME *obj;
  405.     cchar *delem;
  406.     Manip manip;
  407.     vector<bool> *include;
  408.     bool del_vector;
  409.   public: 
  410.     ~##NAME##_cus_value_list () {if (del_vector) delete include;} 
  411.     NAME##_cus_value_list (const NAME *o, cchar *d, Manip m, bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18, bool i19, bool i20, bool i21, bool i22, bool i23, bool i24, bool i25);
  412.     NAME##_cus_value_list (const NAME *o, cchar *d, Manip m, ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18, ##NAME##_enum i19, ##NAME##_enum i20, ##NAME##_enum i21, ##NAME##_enum i22, ##NAME##_enum i23, ##NAME##_enum i24, ##NAME##_enum i25); 
  413.     NAME##_cus_value_list (const NAME *o, cchar *d, Manip m ,vector<bool>)
  414.       : obj(o), include(i), del_vector(false), delem(d), manip(m) {}
  415.   };
  416.   template <class Manip>
  417.   class NAME##_cus_field_list { 
  418.   /* friend ostream& operator << <> (ostream&, 
  419.         const NAME##_cus_field_list<Manip>&); */
  420.   public:
  421.     const NAME *obj; 
  422.     cchar *delem;
  423.     Manip manip;
  424.     vector<bool> *include; 
  425.     bool del_vector; 
  426.   public: 
  427.     ~##NAME##_cus_field_list () {if (del_vector) delete include;} 
  428.     NAME##_cus_field_list (const NAME *o, cchar *d, Manip m, bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18, bool i19, bool i20, bool i21, bool i22, bool i23, bool i24, bool i25); 
  429.     NAME##_cus_field_list (const NAME *o, cchar *d, Manip m, ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18, ##NAME##_enum i19, ##NAME##_enum i20, ##NAME##_enum i21, ##NAME##_enum i22, ##NAME##_enum i23, ##NAME##_enum i24, ##NAME##_enum i25); 
  430.     NAME##_cus_field_list (const NAME *o, cchar *d, Manip m, vector<bool> *i) 
  431.       : obj(o), include(i), del_vector(false), delem(d), manip(m) {}
  432.   };
  433.  template <class Manip>
  434.  class NAME##_cus_equal_list {
  435.  /* friend ostream& operator << <> (ostream&, 
  436.   const NAME##_cus_equal_list<Manip>&); */
  437.   public:
  438.     const NAME *obj;
  439.     vector<bool> *include;
  440.     bool del_vector;
  441.     cchar *delem;
  442.     cchar *comp;
  443.     Manip manip;
  444.   public:
  445.     ~##NAME##_##cus_equal_list () {if (del_vector) delete include;}
  446.     NAME##_##cus_equal_list (const NAME *o, cchar *d, cchar *c, Manip m, bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18, bool i19, bool i20, bool i21, bool i22, bool i23, bool i24, bool i25); 
  447.     NAME##_##cus_equal_list (const NAME *o, cchar *d, cchar *c, Manip m, ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18, ##NAME##_enum i19, ##NAME##_enum i20, ##NAME##_enum i21, ##NAME##_enum i22, ##NAME##_enum i23, ##NAME##_enum i24, ##NAME##_enum i25); 
  448.     NAME##_##cus_equal_list (const NAME *o, cchar *d, cchar *c, Manip m, vector<bool> *i) 
  449.       : obj(o), include(i), del_vector(false), delem(d), comp(c), manip(m) {}
  450.   };
  451.   template <sql_dummy_type dummy> int sql_compare_##NAME (const NAME &, const NAME &);
  452.   struct NAME { 
  453.     T1 I1;
  454.     T2 I2;
  455.     T3 I3;
  456.     T4 I4;
  457.     T5 I5;
  458.     T6 I6;
  459.     T7 I7;
  460.     T8 I8;
  461.     T9 I9;
  462.     T10 I10;
  463.     T11 I11;
  464.     T12 I12;
  465.     T13 I13;
  466.     T14 I14;
  467.     T15 I15;
  468.     T16 I16;
  469.     T17 I17;
  470.     T18 I18;
  471.     T19 I19;
  472.     T20 I20;
  473.     T21 I21;
  474.     T22 I22;
  475.     T23 I23;
  476.     T24 I24;
  477.     T25 I25; 
  478.     NAME () {} 
  479.     NAME (const MysqlRow &row);
  480.     void set (const MysqlRow &row);
  481.     sql_compare_define_##CMP(NAME, T1, I1, T2, I2, T3, I3, T4, I4, T5, I5, T6, I6, T7, I7, T8, I8, T9, I9, T10, I10, T11, I11, T12, I12, T13, I13, T14, I14, T15, I15, T16, I16, T17, I17, T18, I18, T19, I19, T20, I20, T21, I21, T22, I22, T23, I23, T24, I24, T25, I25, 0, 0)
  482.     sql_construct_define_##CONTR(NAME, T1, I1, T2, I2, T3, I3, T4, I4, T5, I5, T6, I6, T7, I7, T8, I8, T9, I9, T10, I10, T11, I11, T12, I12, T13, I13, T14, I14, T15, I15, T16, I16, T17, I17, T18, I18, T19, I19, T20, I20, T21, I21, T22, I22, T23, I23, T24, I24, T25, I25, 0, 0)
  483.     static char *names[];
  484.     static char *_table;
  485.     static char *& table() {return _table;}
  486.     /* cus_data */
  487.     NAME##_cus_value_list<quote_type0> value_list(bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false, bool i19 = false, bool i20 = false, bool i21 = false, bool i22 = false, bool i23 = false, bool i24 = false, bool i25 = false) const {
  488.       return value_list(",", mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25);
  489.     }
  490.     NAME##_cus_value_list<quote_type0> value_list(##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL, ##NAME##_enum i19 = ##NAME##_NULL, ##NAME##_enum i20 = ##NAME##_NULL, ##NAME##_enum i21 = ##NAME##_NULL, ##NAME##_enum i22 = ##NAME##_NULL, ##NAME##_enum i23 = ##NAME##_NULL, ##NAME##_enum i24 = ##NAME##_NULL, ##NAME##_enum i25 = ##NAME##_NULL) const {
  491.       return value_list(",", mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25);
  492.     }
  493.     NAME##_cus_value_list<quote_type0> value_list(vector<bool> *i) const {
  494.       return value_list(",", mysql_quote, i);
  495.     }
  496.     NAME##_cus_value_list<quote_type0> value_list(sql_cmp_type sc) const {
  497.       return value_list(",", mysql_quote, sc);
  498.     }
  499.     NAME##_cus_value_list<quote_type0> value_list(cchar *d, bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false, bool i19 = false, bool i20 = false, bool i21 = false, bool i22 = false, bool i23 = false, bool i24 = false, bool i25 = false) const {
  500.       return value_list(d, mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25);
  501.     }
  502.     NAME##_cus_value_list<quote_type0> value_list(cchar *d, ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL, ##NAME##_enum i19 = ##NAME##_NULL, ##NAME##_enum i20 = ##NAME##_NULL, ##NAME##_enum i21 = ##NAME##_NULL, ##NAME##_enum i22 = ##NAME##_NULL, ##NAME##_enum i23 = ##NAME##_NULL, ##NAME##_enum i24 = ##NAME##_NULL, ##NAME##_enum i25 = ##NAME##_NULL) const {
  503.       return value_list(d, mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25);
  504.     }
  505.     NAME##_cus_value_list<quote_type0> value_list(cchar *d, 
  506. vector<bool> *i) const {
  507.       return value_list(d, mysql_quote, i);
  508.     }
  509.     NAME##_cus_value_list<quote_type0> value_list(cchar *d, 
  510. sql_cmp_type sc) const {
  511.       return value_list(d, mysql_quote, sc);
  512.     }
  513.     template <class Manip>
  514.     NAME##_cus_value_list<Manip> value_list(cchar *d, Manip m,
  515.   bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false, bool i19 = false, bool i20 = false, bool i21 = false, bool i22 = false, bool i23 = false, bool i24 = false, bool i25 = false) const; 
  516.     template <class Manip>
  517.     NAME##_cus_value_list<Manip> value_list(cchar *d, Manip m,
  518.   ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL, ##NAME##_enum i19 = ##NAME##_NULL, ##NAME##_enum i20 = ##NAME##_NULL, ##NAME##_enum i21 = ##NAME##_NULL, ##NAME##_enum i22 = ##NAME##_NULL, ##NAME##_enum i23 = ##NAME##_NULL, ##NAME##_enum i24 = ##NAME##_NULL, ##NAME##_enum i25 = ##NAME##_NULL) const; 
  519.     template <class Manip>
  520.     NAME##_cus_value_list<Manip> value_list(cchar *d, Manip m, 
  521.   vector<bool> *i) const;
  522.     template <class Manip>
  523.     NAME##_cus_value_list<Manip> value_list(cchar *d, Manip m, 
  524.   sql_cmp_type sc) const;
  525.     /* cus field */
  526.     NAME##_cus_field_list<do_nothing_type0> field_list(bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false, bool i19 = false, bool i20 = false, bool i21 = false, bool i22 = false, bool i23 = false, bool i24 = false, bool i25 = false) const {
  527.       return field_list(",", mysql_do_nothing, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25);
  528.     }
  529.     NAME##_cus_field_list<do_nothing_type0> field_list(##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL, ##NAME##_enum i19 = ##NAME##_NULL, ##NAME##_enum i20 = ##NAME##_NULL, ##NAME##_enum i21 = ##NAME##_NULL, ##NAME##_enum i22 = ##NAME##_NULL, ##NAME##_enum i23 = ##NAME##_NULL, ##NAME##_enum i24 = ##NAME##_NULL, ##NAME##_enum i25 = ##NAME##_NULL) const {
  530.       return field_list(",", mysql_do_nothing, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25);
  531.     }
  532.     NAME##_cus_field_list<do_nothing_type0> field_list(vector<bool> *i) const {
  533.       return field_list(",", mysql_do_nothing, i);
  534.     }
  535.     NAME##_cus_field_list<do_nothing_type0> field_list(sql_cmp_type sc) const
  536.     {
  537.       return field_list(",", mysql_do_nothing, sc);
  538.     }
  539.     NAME##_cus_field_list<do_nothing_type0> field_list(cchar *d, 
  540.        bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false, bool i19 = false, bool i20 = false, bool i21 = false, bool i22 = false, bool i23 = false, bool i24 = false, bool i25 = false) const {
  541.       return field_list(d, mysql_do_nothing, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25);
  542.     }
  543.     NAME##_cus_field_list<do_nothing_type0> field_list(cchar *d,
  544.        ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL, ##NAME##_enum i19 = ##NAME##_NULL, ##NAME##_enum i20 = ##NAME##_NULL, ##NAME##_enum i21 = ##NAME##_NULL, ##NAME##_enum i22 = ##NAME##_NULL, ##NAME##_enum i23 = ##NAME##_NULL, ##NAME##_enum i24 = ##NAME##_NULL, ##NAME##_enum i25 = ##NAME##_NULL) const {
  545.       return field_list(d, mysql_do_nothing, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25);
  546.     }
  547.     NAME##_cus_field_list<do_nothing_type0> field_list(cchar *d, 
  548. vector<bool> *i) const {
  549.       return field_list(d, mysql_do_nothing, i);
  550.     }
  551.     NAME##_cus_field_list<do_nothing_type0> field_list(cchar *d, 
  552. sql_cmp_type sc) const {
  553.       return field_list(d, mysql_do_nothing, sc);
  554.     }
  555.     template <class Manip>
  556.     NAME##_cus_field_list<Manip> field_list(cchar *d, Manip m,
  557.     bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false, bool i19 = false, bool i20 = false, bool i21 = false, bool i22 = false, bool i23 = false, bool i24 = false, bool i25 = false) const; 
  558.     template <class Manip>
  559.     NAME##_cus_field_list<Manip> field_list(cchar *d, Manip m,
  560.     ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL, ##NAME##_enum i19 = ##NAME##_NULL, ##NAME##_enum i20 = ##NAME##_NULL, ##NAME##_enum i21 = ##NAME##_NULL, ##NAME##_enum i22 = ##NAME##_NULL, ##NAME##_enum i23 = ##NAME##_NULL, ##NAME##_enum i24 = ##NAME##_NULL, ##NAME##_enum i25 = ##NAME##_NULL) const; 
  561.     template <class Manip>
  562.     NAME##_cus_field_list<Manip> field_list(cchar *d, Manip m,
  563.     vector<bool> *i) const;
  564.     template <class Manip>
  565.     NAME##_cus_field_list<Manip> field_list(cchar *d, Manip m, 
  566.     sql_cmp_type sc) const;
  567.     /* cus equal */
  568.     NAME##_cus_equal_list<quote_type0> equal_list(bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false, bool i19 = false, bool i20 = false, bool i21 = false, bool i22 = false, bool i23 = false, bool i24 = false, bool i25 = false) const {
  569.       return equal_list(",", " = ", mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25);
  570.     }
  571.     NAME##_cus_equal_list<quote_type0> equal_list(##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL, ##NAME##_enum i19 = ##NAME##_NULL, ##NAME##_enum i20 = ##NAME##_NULL, ##NAME##_enum i21 = ##NAME##_NULL, ##NAME##_enum i22 = ##NAME##_NULL, ##NAME##_enum i23 = ##NAME##_NULL, ##NAME##_enum i24 = ##NAME##_NULL, ##NAME##_enum i25 = ##NAME##_NULL) const {
  572.       return equal_list(",", " = ", mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25);
  573.     }
  574.     NAME##_cus_equal_list<quote_type0> equal_list(vector<bool> *i) const {
  575.       return equal_list(",", " = ", mysql_quote, i);
  576.     }
  577.     NAME##_cus_equal_list<quote_type0> equal_list(sql_cmp_type sc) const {
  578.       return equal_list(",", " = ", mysql_quote, sc);
  579.     }
  580.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false, bool i19 = false, bool i20 = false, bool i21 = false, bool i22 = false, bool i23 = false, bool i24 = false, bool i25 = false) const {
  581.       return equal_list(d, " = ", mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25);
  582.     }
  583.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL, ##NAME##_enum i19 = ##NAME##_NULL, ##NAME##_enum i20 = ##NAME##_NULL, ##NAME##_enum i21 = ##NAME##_NULL, ##NAME##_enum i22 = ##NAME##_NULL, ##NAME##_enum i23 = ##NAME##_NULL, ##NAME##_enum i24 = ##NAME##_NULL, ##NAME##_enum i25 = ##NAME##_NULL) const {
  584.       return equal_list(d, " = ", mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25);
  585.     }
  586.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, 
  587. vector<bool> *i) const {
  588.       return equal_list(d, " = ", mysql_quote, i);
  589.     }
  590.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, 
  591. sql_cmp_type sc) const {
  592.       return equal_list(d, " = ", mysql_quote, sc);
  593.     }
  594.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, cchar *c,
  595.                                                 bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false, bool i19 = false, bool i20 = false, bool i21 = false, bool i22 = false, bool i23 = false, bool i24 = false, bool i25 = false) const {
  596.       return equal_list(d, c, mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25);
  597.     }
  598.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, cchar *c,
  599.                                                 ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL, ##NAME##_enum i19 = ##NAME##_NULL, ##NAME##_enum i20 = ##NAME##_NULL, ##NAME##_enum i21 = ##NAME##_NULL, ##NAME##_enum i22 = ##NAME##_NULL, ##NAME##_enum i23 = ##NAME##_NULL, ##NAME##_enum i24 = ##NAME##_NULL, ##NAME##_enum i25 = ##NAME##_NULL) const {
  600.       return equal_list(d, c, mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25);
  601.     }
  602.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, cchar *c,
  603. vector<bool> *i) const {
  604.       return equal_list(d, c, mysql_quote, i);
  605.     }
  606.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, cchar *c,
  607. sql_cmp_type sc) const {
  608.       return equal_list(d, c, mysql_quote, sc);
  609.     }
  610.     template <class Manip>
  611.     NAME##_cus_equal_list<Manip> equal_list(cchar *d, cchar *c, Manip m, 
  612.     bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false, bool i19 = false, bool i20 = false, bool i21 = false, bool i22 = false, bool i23 = false, bool i24 = false, bool i25 = false) const; 
  613.     template <class Manip>
  614.     NAME##_cus_equal_list<Manip> equal_list(cchar *d, cchar *c, Manip m, 
  615.     ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL, ##NAME##_enum i19 = ##NAME##_NULL, ##NAME##_enum i20 = ##NAME##_NULL, ##NAME##_enum i21 = ##NAME##_NULL, ##NAME##_enum i22 = ##NAME##_NULL, ##NAME##_enum i23 = ##NAME##_NULL, ##NAME##_enum i24 = ##NAME##_NULL, ##NAME##_enum i25 = ##NAME##_NULL) const; 
  616.     template <class Manip>
  617.     NAME##_cus_equal_list<Manip> equal_list(cchar *d, cchar *c, Manip m, 
  618.     vector<bool> *i) const;
  619.     template <class Manip>
  620.     NAME##_cus_equal_list<Manip> equal_list(cchar *d, cchar *c, Manip m, 
  621.     sql_cmp_type sc) const;
  622.     NAME##_value_list<quote_type0> value_list() const {
  623.       return value_list(",", mysql_quote);}
  624.     NAME##_value_list<quote_type0> value_list(cchar *d) const {
  625.       return value_list(d, mysql_quote);}
  626.     template <class Manip> 
  627.     NAME##_value_list<Manip> value_list(cchar *d, Manip m) const; 
  628.     NAME##_field_list<do_nothing_type0> field_list() const {
  629.       return field_list(",", mysql_do_nothing);}
  630.     NAME##_field_list<do_nothing_type0> field_list(cchar *d) const {
  631.       return field_list(d, mysql_do_nothing);}
  632.     template <class Manip>
  633.     NAME##_field_list<Manip> field_list(cchar *d, Manip m) const; 
  634.     NAME##_equal_list<quote_type0> equal_list(cchar *d = ",", 
  635.                                               cchar *c = " = ") const{
  636.       return equal_list(d, c, mysql_quote);}
  637.     template <class Manip>
  638.     NAME##_equal_list<Manip> equal_list(cchar *d, cchar *c, Manip m) const; 
  639.   }; 
  640.   char *##NAME##::names[] = { 
  641.     N1 ,
  642.     N2 ,
  643.     N3 ,
  644.     N4 ,
  645.     N5 ,
  646.     N6 ,
  647.     N7 ,
  648.     N8 ,
  649.     N9 ,
  650.     N10 ,
  651.     N11 ,
  652.     N12 ,
  653.     N13 ,
  654.     N14 ,
  655.     N15 ,
  656.     N16 ,
  657.     N17 ,
  658.     N18 ,
  659.     N19 ,
  660.     N20 ,
  661.     N21 ,
  662.     N22 ,
  663.     N23 ,
  664.     N24 ,
  665.     N25  
  666.   }; 
  667.   char *##NAME##::_table = #NAME ;  
  668.   template <class Manip>
  669.   NAME##_cus_value_list<Manip>::NAME##_cus_value_list
  670.   (const NAME *o, cchar *d, Manip m, bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18, bool i19, bool i20, bool i21, bool i22, bool i23, bool i24, bool i25) 
  671.   { 
  672.     delem = d;
  673.     manip = m;
  674.     del_vector = true;
  675.     obj = o; 
  676.     include = new vector<bool>(25, false);
  677.     if (i1) (*include)[0]=true;
  678.     if (i2) (*include)[1]=true;
  679.     if (i3) (*include)[2]=true;
  680.     if (i4) (*include)[3]=true;
  681.     if (i5) (*include)[4]=true;
  682.     if (i6) (*include)[5]=true;
  683.     if (i7) (*include)[6]=true;
  684.     if (i8) (*include)[7]=true;
  685.     if (i9) (*include)[8]=true;
  686.     if (i10) (*include)[9]=true;
  687.     if (i11) (*include)[10]=true;
  688.     if (i12) (*include)[11]=true;
  689.     if (i13) (*include)[12]=true;
  690.     if (i14) (*include)[13]=true;
  691.     if (i15) (*include)[14]=true;
  692.     if (i16) (*include)[15]=true;
  693.     if (i17) (*include)[16]=true;
  694.     if (i18) (*include)[17]=true;
  695.     if (i19) (*include)[18]=true;
  696.     if (i20) (*include)[19]=true;
  697.     if (i21) (*include)[20]=true;
  698.     if (i22) (*include)[21]=true;
  699.     if (i23) (*include)[22]=true;
  700.     if (i24) (*include)[23]=true;
  701.     if (i25) (*include)[24]=true;
  702.   } 
  703.   template <class Manip>
  704.   NAME##_cus_value_list<Manip>::NAME##_cus_value_list
  705.   (const NAME *o, cchar *d, Manip m, ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18, ##NAME##_enum i19, ##NAME##_enum i20, ##NAME##_enum i21, ##NAME##_enum i22, ##NAME##_enum i23, ##NAME##_enum i24, ##NAME##_enum i25) { 
  706.     delem = d;
  707.     manip = m;
  708.     del_vector = true; 
  709.     obj = o; 
  710.     include = new vector<bool>(25, false); 
  711.     if (i1 == NAME##_NULL) return;
  712.     (*include)[i1]=true;
  713.     if (i2 == NAME##_NULL) return;
  714.     (*include)[i2]=true;
  715.     if (i3 == NAME##_NULL) return;
  716.     (*include)[i3]=true;
  717.     if (i4 == NAME##_NULL) return;
  718.     (*include)[i4]=true;
  719.     if (i5 == NAME##_NULL) return;
  720.     (*include)[i5]=true;
  721.     if (i6 == NAME##_NULL) return;
  722.     (*include)[i6]=true;
  723.     if (i7 == NAME##_NULL) return;
  724.     (*include)[i7]=true;
  725.     if (i8 == NAME##_NULL) return;
  726.     (*include)[i8]=true;
  727.     if (i9 == NAME##_NULL) return;
  728.     (*include)[i9]=true;
  729.     if (i10 == NAME##_NULL) return;
  730.     (*include)[i10]=true;
  731.     if (i11 == NAME##_NULL) return;
  732.     (*include)[i11]=true;
  733.     if (i12 == NAME##_NULL) return;
  734.     (*include)[i12]=true;
  735.     if (i13 == NAME##_NULL) return;
  736.     (*include)[i13]=true;
  737.     if (i14 == NAME##_NULL) return;
  738.     (*include)[i14]=true;
  739.     if (i15 == NAME##_NULL) return;
  740.     (*include)[i15]=true;
  741.     if (i16 == NAME##_NULL) return;
  742.     (*include)[i16]=true;
  743.     if (i17 == NAME##_NULL) return;
  744.     (*include)[i17]=true;
  745.     if (i18 == NAME##_NULL) return;
  746.     (*include)[i18]=true;
  747.     if (i19 == NAME##_NULL) return;
  748.     (*include)[i19]=true;
  749.     if (i20 == NAME##_NULL) return;
  750.     (*include)[i20]=true;
  751.     if (i21 == NAME##_NULL) return;
  752.     (*include)[i21]=true;
  753.     if (i22 == NAME##_NULL) return;
  754.     (*include)[i22]=true;
  755.     if (i23 == NAME##_NULL) return;
  756.     (*include)[i23]=true;
  757.     if (i24 == NAME##_NULL) return;
  758.     (*include)[i24]=true;
  759.     if (i25 == NAME##_NULL) return;
  760.     (*include)[i25]=true;
  761.   }
  762.   template <class Manip>
  763.   NAME##_cus_field_list<Manip>::NAME##_cus_field_list
  764.   (const NAME *o, cchar *d, Manip m, bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18, bool i19, bool i20, bool i21, bool i22, bool i23, bool i24, bool i25) {
  765.     delem = d;
  766.     manip = m;
  767.     del_vector = true; 
  768.     obj = o; 
  769.     include = new vector<bool>(25, false); 
  770.     if (i1) (*include)[0]=true;
  771.     if (i2) (*include)[1]=true;
  772.     if (i3) (*include)[2]=true;
  773.     if (i4) (*include)[3]=true;
  774.     if (i5) (*include)[4]=true;
  775.     if (i6) (*include)[5]=true;
  776.     if (i7) (*include)[6]=true;
  777.     if (i8) (*include)[7]=true;
  778.     if (i9) (*include)[8]=true;
  779.     if (i10) (*include)[9]=true;
  780.     if (i11) (*include)[10]=true;
  781.     if (i12) (*include)[11]=true;
  782.     if (i13) (*include)[12]=true;
  783.     if (i14) (*include)[13]=true;
  784.     if (i15) (*include)[14]=true;
  785.     if (i16) (*include)[15]=true;
  786.     if (i17) (*include)[16]=true;
  787.     if (i18) (*include)[17]=true;
  788.     if (i19) (*include)[18]=true;
  789.     if (i20) (*include)[19]=true;
  790.     if (i21) (*include)[20]=true;
  791.     if (i22) (*include)[21]=true;
  792.     if (i23) (*include)[22]=true;
  793.     if (i24) (*include)[23]=true;
  794.     if (i25) (*include)[24]=true;
  795.   } 
  796.   template <class Manip>
  797.   NAME##_cus_field_list<Manip>::NAME##_cus_field_list
  798.   (const NAME *o, cchar *d, Manip m, ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18, ##NAME##_enum i19, ##NAME##_enum i20, ##NAME##_enum i21, ##NAME##_enum i22, ##NAME##_enum i23, ##NAME##_enum i24, ##NAME##_enum i25) { 
  799.     delem = d;
  800.     manip = m;
  801.     del_vector = true; 
  802.     obj = o; 
  803.     include = new vector<bool>(25, false); 
  804.     if (i1 == NAME##_NULL) return;
  805.     (*include)[i1]=true;
  806.     if (i2 == NAME##_NULL) return;
  807.     (*include)[i2]=true;
  808.     if (i3 == NAME##_NULL) return;
  809.     (*include)[i3]=true;
  810.     if (i4 == NAME##_NULL) return;
  811.     (*include)[i4]=true;
  812.     if (i5 == NAME##_NULL) return;
  813.     (*include)[i5]=true;
  814.     if (i6 == NAME##_NULL) return;
  815.     (*include)[i6]=true;
  816.     if (i7 == NAME##_NULL) return;
  817.     (*include)[i7]=true;
  818.     if (i8 == NAME##_NULL) return;
  819.     (*include)[i8]=true;
  820.     if (i9 == NAME##_NULL) return;
  821.     (*include)[i9]=true;
  822.     if (i10 == NAME##_NULL) return;
  823.     (*include)[i10]=true;
  824.     if (i11 == NAME##_NULL) return;
  825.     (*include)[i11]=true;
  826.     if (i12 == NAME##_NULL) return;
  827.     (*include)[i12]=true;
  828.     if (i13 == NAME##_NULL) return;
  829.     (*include)[i13]=true;
  830.     if (i14 == NAME##_NULL) return;
  831.     (*include)[i14]=true;
  832.     if (i15 == NAME##_NULL) return;
  833.     (*include)[i15]=true;
  834.     if (i16 == NAME##_NULL) return;
  835.     (*include)[i16]=true;
  836.     if (i17 == NAME##_NULL) return;
  837.     (*include)[i17]=true;
  838.     if (i18 == NAME##_NULL) return;
  839.     (*include)[i18]=true;
  840.     if (i19 == NAME##_NULL) return;
  841.     (*include)[i19]=true;
  842.     if (i20 == NAME##_NULL) return;
  843.     (*include)[i20]=true;
  844.     if (i21 == NAME##_NULL) return;
  845.     (*include)[i21]=true;
  846.     if (i22 == NAME##_NULL) return;
  847.     (*include)[i22]=true;
  848.     if (i23 == NAME##_NULL) return;
  849.     (*include)[i23]=true;
  850.     if (i24 == NAME##_NULL) return;
  851.     (*include)[i24]=true;
  852.     if (i25 == NAME##_NULL) return;
  853.     (*include)[i25]=true;
  854.   }
  855.   template <class Manip>
  856.   NAME##_cus_equal_list<Manip>::NAME##_cus_equal_list
  857.   (const NAME *o, cchar *d, cchar *c, Manip m, bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18, bool i19, bool i20, bool i21, bool i22, bool i23, bool i24, bool i25) { 
  858.     delem = d;
  859.     comp = c;
  860.     manip = m;
  861.     del_vector = true; 
  862.     obj = o; 
  863.     include = new vector<bool>(25, false); 
  864.     if (i1) (*include)[0]=true;
  865.     if (i2) (*include)[1]=true;
  866.     if (i3) (*include)[2]=true;
  867.     if (i4) (*include)[3]=true;
  868.     if (i5) (*include)[4]=true;
  869.     if (i6) (*include)[5]=true;
  870.     if (i7) (*include)[6]=true;
  871.     if (i8) (*include)[7]=true;
  872.     if (i9) (*include)[8]=true;
  873.     if (i10) (*include)[9]=true;
  874.     if (i11) (*include)[10]=true;
  875.     if (i12) (*include)[11]=true;
  876.     if (i13) (*include)[12]=true;
  877.     if (i14) (*include)[13]=true;
  878.     if (i15) (*include)[14]=true;
  879.     if (i16) (*include)[15]=true;
  880.     if (i17) (*include)[16]=true;
  881.     if (i18) (*include)[17]=true;
  882.     if (i19) (*include)[18]=true;
  883.     if (i20) (*include)[19]=true;
  884.     if (i21) (*include)[20]=true;
  885.     if (i22) (*include)[21]=true;
  886.     if (i23) (*include)[22]=true;
  887.     if (i24) (*include)[23]=true;
  888.     if (i25) (*include)[24]=true;
  889.   } 
  890.   template <class Manip>
  891.   NAME##_cus_equal_list<Manip>::NAME##_cus_equal_list
  892.   (const NAME *o, cchar *d, cchar *c, Manip m, ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18, ##NAME##_enum i19, ##NAME##_enum i20, ##NAME##_enum i21, ##NAME##_enum i22, ##NAME##_enum i23, ##NAME##_enum i24, ##NAME##_enum i25) { 
  893.     delem = d;
  894.     comp = c;
  895.     manip = m;
  896.     del_vector = true; 
  897.     obj = o; 
  898.     include = new vector<bool>(25, false); 
  899.     if (i1 == NAME##_NULL) return;
  900.     (*include)[i1]=true;
  901.     if (i2 == NAME##_NULL) return;
  902.     (*include)[i2]=true;
  903.     if (i3 == NAME##_NULL) return;
  904.     (*include)[i3]=true;
  905.     if (i4 == NAME##_NULL) return;
  906.     (*include)[i4]=true;
  907.     if (i5 == NAME##_NULL) return;
  908.     (*include)[i5]=true;
  909.     if (i6 == NAME##_NULL) return;
  910.     (*include)[i6]=true;
  911.     if (i7 == NAME##_NULL) return;
  912.     (*include)[i7]=true;
  913.     if (i8 == NAME##_NULL) return;
  914.     (*include)[i8]=true;
  915.     if (i9 == NAME##_NULL) return;
  916.     (*include)[i9]=true;
  917.     if (i10 == NAME##_NULL) return;
  918.     (*include)[i10]=true;
  919.     if (i11 == NAME##_NULL) return;
  920.     (*include)[i11]=true;
  921.     if (i12 == NAME##_NULL) return;
  922.     (*include)[i12]=true;
  923.     if (i13 == NAME##_NULL) return;
  924.     (*include)[i13]=true;
  925.     if (i14 == NAME##_NULL) return;
  926.     (*include)[i14]=true;
  927.     if (i15 == NAME##_NULL) return;
  928.     (*include)[i15]=true;
  929.     if (i16 == NAME##_NULL) return;
  930.     (*include)[i16]=true;
  931.     if (i17 == NAME##_NULL) return;
  932.     (*include)[i17]=true;
  933.     if (i18 == NAME##_NULL) return;
  934.     (*include)[i18]=true;
  935.     if (i19 == NAME##_NULL) return;
  936.     (*include)[i19]=true;
  937.     if (i20 == NAME##_NULL) return;
  938.     (*include)[i20]=true;
  939.     if (i21 == NAME##_NULL) return;
  940.     (*include)[i21]=true;
  941.     if (i22 == NAME##_NULL) return;
  942.     (*include)[i22]=true;
  943.     if (i23 == NAME##_NULL) return;
  944.     (*include)[i23]=true;
  945.     if (i24 == NAME##_NULL) return;
  946.     (*include)[i24]=true;
  947.     if (i25 == NAME##_NULL) return;
  948.     (*include)[i25]=true;
  949.   }
  950.   template <class Manip>
  951.   ostream& operator << (ostream& s, const NAME##_value_list<Manip>& obj) { 
  952.     s << obj.manip << obj.obj->##I1 << obj.delem;
  953.     s << obj.manip << obj.obj->##I2 << obj.delem;
  954.     s << obj.manip << obj.obj->##I3 << obj.delem;
  955.     s << obj.manip << obj.obj->##I4 << obj.delem;
  956.     s << obj.manip << obj.obj->##I5 << obj.delem;
  957.     s << obj.manip << obj.obj->##I6 << obj.delem;
  958.     s << obj.manip << obj.obj->##I7 << obj.delem;
  959.     s << obj.manip << obj.obj->##I8 << obj.delem;
  960.     s << obj.manip << obj.obj->##I9 << obj.delem;
  961.     s << obj.manip << obj.obj->##I10 << obj.delem;
  962.     s << obj.manip << obj.obj->##I11 << obj.delem;
  963.     s << obj.manip << obj.obj->##I12 << obj.delem;
  964.     s << obj.manip << obj.obj->##I13 << obj.delem;
  965.     s << obj.manip << obj.obj->##I14 << obj.delem;
  966.     s << obj.manip << obj.obj->##I15 << obj.delem;
  967.     s << obj.manip << obj.obj->##I16 << obj.delem;
  968.     s << obj.manip << obj.obj->##I17 << obj.delem;
  969.     s << obj.manip << obj.obj->##I18 << obj.delem;
  970.     s << obj.manip << obj.obj->##I19 << obj.delem;
  971.     s << obj.manip << obj.obj->##I20 << obj.delem;
  972.     s << obj.manip << obj.obj->##I21 << obj.delem;
  973.     s << obj.manip << obj.obj->##I22 << obj.delem;
  974.     s << obj.manip << obj.obj->##I23 << obj.delem;
  975.     s << obj.manip << obj.obj->##I24 << obj.delem;
  976.     s << obj.manip << obj.obj->##I25; 
  977.     return s; 
  978.   } 
  979.   template <class Manip>
  980.   ostream& operator << (ostream& s, const NAME##_field_list<Manip>& obj) { 
  981.     s << obj.manip << obj.obj->names[0] << obj.delem;
  982.     s << obj.manip << obj.obj->names[1] << obj.delem;
  983.     s << obj.manip << obj.obj->names[2] << obj.delem;
  984.     s << obj.manip << obj.obj->names[3] << obj.delem;
  985.     s << obj.manip << obj.obj->names[4] << obj.delem;
  986.     s << obj.manip << obj.obj->names[5] << obj.delem;
  987.     s << obj.manip << obj.obj->names[6] << obj.delem;
  988.     s << obj.manip << obj.obj->names[7] << obj.delem;
  989.     s << obj.manip << obj.obj->names[8] << obj.delem;
  990.     s << obj.manip << obj.obj->names[9] << obj.delem;
  991.     s << obj.manip << obj.obj->names[10] << obj.delem;
  992.     s << obj.manip << obj.obj->names[11] << obj.delem;
  993.     s << obj.manip << obj.obj->names[12] << obj.delem;
  994.     s << obj.manip << obj.obj->names[13] << obj.delem;
  995.     s << obj.manip << obj.obj->names[14] << obj.delem;
  996.     s << obj.manip << obj.obj->names[15] << obj.delem;
  997.     s << obj.manip << obj.obj->names[16] << obj.delem;
  998.     s << obj.manip << obj.obj->names[17] << obj.delem;
  999.     s << obj.manip << obj.obj->names[18] << obj.delem;
  1000.     s << obj.manip << obj.obj->names[19] << obj.delem;
  1001.     s << obj.manip << obj.obj->names[20] << obj.delem;
  1002.     s << obj.manip << obj.obj->names[21] << obj.delem;
  1003.     s << obj.manip << obj.obj->names[22] << obj.delem;
  1004.     s << obj.manip << obj.obj->names[23] << obj.delem;
  1005.     s << obj.manip << obj.obj->names[24]; 
  1006.     return s; 
  1007.   } 
  1008.   template <class Manip>
  1009.   ostream& operator << (ostream& s, const NAME##_equal_list<Manip>& obj) { 
  1010.     s << obj.obj->names[0] << obj.comp << obj.manip << obj.obj->##I1 << obj.delem;
  1011.     s << obj.obj->names[1] << obj.comp << obj.manip << obj.obj->##I2 << obj.delem;
  1012.     s << obj.obj->names[2] << obj.comp << obj.manip << obj.obj->##I3 << obj.delem;
  1013.     s << obj.obj->names[3] << obj.comp << obj.manip << obj.obj->##I4 << obj.delem;
  1014.     s << obj.obj->names[4] << obj.comp << obj.manip << obj.obj->##I5 << obj.delem;
  1015.     s << obj.obj->names[5] << obj.comp << obj.manip << obj.obj->##I6 << obj.delem;
  1016.     s << obj.obj->names[6] << obj.comp << obj.manip << obj.obj->##I7 << obj.delem;
  1017.     s << obj.obj->names[7] << obj.comp << obj.manip << obj.obj->##I8 << obj.delem;
  1018.     s << obj.obj->names[8] << obj.comp << obj.manip << obj.obj->##I9 << obj.delem;
  1019.     s << obj.obj->names[9] << obj.comp << obj.manip << obj.obj->##I10 << obj.delem;
  1020.     s << obj.obj->names[10] << obj.comp << obj.manip << obj.obj->##I11 << obj.delem;
  1021.     s << obj.obj->names[11] << obj.comp << obj.manip << obj.obj->##I12 << obj.delem;
  1022.     s << obj.obj->names[12] << obj.comp << obj.manip << obj.obj->##I13 << obj.delem;
  1023.     s << obj.obj->names[13] << obj.comp << obj.manip << obj.obj->##I14 << obj.delem;
  1024.     s << obj.obj->names[14] << obj.comp << obj.manip << obj.obj->##I15 << obj.delem;
  1025.     s << obj.obj->names[15] << obj.comp << obj.manip << obj.obj->##I16 << obj.delem;
  1026.     s << obj.obj->names[16] << obj.comp << obj.manip << obj.obj->##I17 << obj.delem;
  1027.     s << obj.obj->names[17] << obj.comp << obj.manip << obj.obj->##I18 << obj.delem;
  1028.     s << obj.obj->names[18] << obj.comp << obj.manip << obj.obj->##I19 << obj.delem;
  1029.     s << obj.obj->names[19] << obj.comp << obj.manip << obj.obj->##I20 << obj.delem;
  1030.     s << obj.obj->names[20] << obj.comp << obj.manip << obj.obj->##I21 << obj.delem;
  1031.     s << obj.obj->names[21] << obj.comp << obj.manip << obj.obj->##I22 << obj.delem;
  1032.     s << obj.obj->names[22] << obj.comp << obj.manip << obj.obj->##I23 << obj.delem;
  1033.     s << obj.obj->names[23] << obj.comp << obj.manip << obj.obj->##I24 << obj.delem;
  1034.     s << obj.obj->names[24] << obj.comp << obj.manip << obj.obj->##I25; 
  1035.     return s; 
  1036.   } 
  1037.   template <class Manip>
  1038.   ostream& operator << (ostream& s, const NAME##_cus_value_list<Manip>& obj) { 
  1039.     bool before = false; 
  1040.     if ((*obj.include)[0]) { 
  1041.       s << obj.manip << obj.obj->##I1;
  1042.       before = true; 
  1043.      } 
  1044.     if ((*obj.include)[1]) { 
  1045.       if (before) s << obj.delem;
  1046.       s << obj.manip << obj.obj->##I2;
  1047.       before = true; 
  1048.      } 
  1049.     if ((*obj.include)[2]) { 
  1050.       if (before) s << obj.delem;
  1051.       s << obj.manip << obj.obj->##I3;
  1052.       before = true; 
  1053.      } 
  1054.     if ((*obj.include)[3]) { 
  1055.       if (before) s << obj.delem;
  1056.       s << obj.manip << obj.obj->##I4;
  1057.       before = true; 
  1058.      } 
  1059.     if ((*obj.include)[4]) { 
  1060.       if (before) s << obj.delem;
  1061.       s << obj.manip << obj.obj->##I5;
  1062.       before = true; 
  1063.      } 
  1064.     if ((*obj.include)[5]) { 
  1065.       if (before) s << obj.delem;
  1066.       s << obj.manip << obj.obj->##I6;
  1067.       before = true; 
  1068.      } 
  1069.     if ((*obj.include)[6]) { 
  1070.       if (before) s << obj.delem;
  1071.       s << obj.manip << obj.obj->##I7;
  1072.       before = true; 
  1073.      } 
  1074.     if ((*obj.include)[7]) { 
  1075.       if (before) s << obj.delem;
  1076.       s << obj.manip << obj.obj->##I8;
  1077.       before = true; 
  1078.      } 
  1079.     if ((*obj.include)[8]) { 
  1080.       if (before) s << obj.delem;
  1081.       s << obj.manip << obj.obj->##I9;
  1082.       before = true; 
  1083.      } 
  1084.     if ((*obj.include)[9]) { 
  1085.       if (before) s << obj.delem;
  1086.       s << obj.manip << obj.obj->##I10;
  1087.       before = true; 
  1088.      } 
  1089.     if ((*obj.include)[10]) { 
  1090.       if (before) s << obj.delem;
  1091.       s << obj.manip << obj.obj->##I11;
  1092.       before = true; 
  1093.      } 
  1094.     if ((*obj.include)[11]) { 
  1095.       if (before) s << obj.delem;
  1096.       s << obj.manip << obj.obj->##I12;
  1097.       before = true; 
  1098.      } 
  1099.     if ((*obj.include)[12]) { 
  1100.       if (before) s << obj.delem;
  1101.       s << obj.manip << obj.obj->##I13;
  1102.       before = true; 
  1103.      } 
  1104.     if ((*obj.include)[13]) { 
  1105.       if (before) s << obj.delem;
  1106.       s << obj.manip << obj.obj->##I14;
  1107.       before = true; 
  1108.      } 
  1109.     if ((*obj.include)[14]) { 
  1110.       if (before) s << obj.delem;
  1111.       s << obj.manip << obj.obj->##I15;
  1112.       before = true; 
  1113.      } 
  1114.     if ((*obj.include)[15]) { 
  1115.       if (before) s << obj.delem;
  1116.       s << obj.manip << obj.obj->##I16;
  1117.       before = true; 
  1118.      } 
  1119.     if ((*obj.include)[16]) { 
  1120.       if (before) s << obj.delem;
  1121.       s << obj.manip << obj.obj->##I17;
  1122.       before = true; 
  1123.      } 
  1124.     if ((*obj.include)[17]) { 
  1125.       if (before) s << obj.delem;
  1126.       s << obj.manip << obj.obj->##I18;
  1127.       before = true; 
  1128.      } 
  1129.     if ((*obj.include)[18]) { 
  1130.       if (before) s << obj.delem;
  1131.       s << obj.manip << obj.obj->##I19;
  1132.       before = true; 
  1133.      } 
  1134.     if ((*obj.include)[19]) { 
  1135.       if (before) s << obj.delem;
  1136.       s << obj.manip << obj.obj->##I20;
  1137.       before = true; 
  1138.      } 
  1139.     if ((*obj.include)[20]) { 
  1140.       if (before) s << obj.delem;
  1141.       s << obj.manip << obj.obj->##I21;
  1142.       before = true; 
  1143.      } 
  1144.     if ((*obj.include)[21]) { 
  1145.       if (before) s << obj.delem;
  1146.       s << obj.manip << obj.obj->##I22;
  1147.       before = true; 
  1148.      } 
  1149.     if ((*obj.include)[22]) { 
  1150.       if (before) s << obj.delem;
  1151.       s << obj.manip << obj.obj->##I23;
  1152.       before = true; 
  1153.      } 
  1154.     if ((*obj.include)[23]) { 
  1155.       if (before) s << obj.delem;
  1156.       s << obj.manip << obj.obj->##I24;
  1157.       before = true; 
  1158.      } 
  1159.     if ((*obj.include)[24]) { 
  1160.       if (before) s << obj.delem;
  1161.       s << obj.manip << obj.obj->##I25;
  1162.      } 
  1163.     return s; 
  1164.   } 
  1165.   template <class Manip>
  1166.   ostream& operator << (ostream& s, const NAME##_cus_field_list<Manip>& obj) { 
  1167.     bool before = false; 
  1168.     if ((*obj.include)[0]) { 
  1169.       s << obj.manip << obj.obj->names[0];
  1170.       before = true; 
  1171.      } 
  1172.     if ((*obj.include)[1]) { 
  1173.       if (before) s << obj.delem;
  1174.       s << obj.manip << obj.obj->names[1];
  1175.       before = true; 
  1176.      } 
  1177.     if ((*obj.include)[2]) { 
  1178.       if (before) s << obj.delem;
  1179.       s << obj.manip << obj.obj->names[2];
  1180.       before = true; 
  1181.      } 
  1182.     if ((*obj.include)[3]) { 
  1183.       if (before) s << obj.delem;
  1184.       s << obj.manip << obj.obj->names[3];
  1185.       before = true; 
  1186.      } 
  1187.     if ((*obj.include)[4]) { 
  1188.       if (before) s << obj.delem;
  1189.       s << obj.manip << obj.obj->names[4];
  1190.       before = true; 
  1191.      } 
  1192.     if ((*obj.include)[5]) { 
  1193.       if (before) s << obj.delem;
  1194.       s << obj.manip << obj.obj->names[5];
  1195.       before = true; 
  1196.      } 
  1197.     if ((*obj.include)[6]) { 
  1198.       if (before) s << obj.delem;
  1199.       s << obj.manip << obj.obj->names[6];
  1200.       before = true; 
  1201.      } 
  1202.     if ((*obj.include)[7]) { 
  1203.       if (before) s << obj.delem;
  1204.       s << obj.manip << obj.obj->names[7];
  1205.       before = true; 
  1206.      } 
  1207.     if ((*obj.include)[8]) { 
  1208.       if (before) s << obj.delem;
  1209.       s << obj.manip << obj.obj->names[8];
  1210.       before = true; 
  1211.      } 
  1212.     if ((*obj.include)[9]) { 
  1213.       if (before) s << obj.delem;
  1214.       s << obj.manip << obj.obj->names[9];
  1215.       before = true; 
  1216.      } 
  1217.     if ((*obj.include)[10]) { 
  1218.       if (before) s << obj.delem;
  1219.       s << obj.manip << obj.obj->names[10];
  1220.       before = true; 
  1221.      } 
  1222.     if ((*obj.include)[11]) { 
  1223.       if (before) s << obj.delem;
  1224.       s << obj.manip << obj.obj->names[11];
  1225.       before = true; 
  1226.      } 
  1227.     if ((*obj.include)[12]) { 
  1228.       if (before) s << obj.delem;
  1229.       s << obj.manip << obj.obj->names[12];
  1230.       before = true; 
  1231.      } 
  1232.     if ((*obj.include)[13]) { 
  1233.       if (before) s << obj.delem;
  1234.       s << obj.manip << obj.obj->names[13];
  1235.       before = true; 
  1236.      } 
  1237.     if ((*obj.include)[14]) { 
  1238.       if (before) s << obj.delem;
  1239.       s << obj.manip << obj.obj->names[14];
  1240.       before = true; 
  1241.      } 
  1242.     if ((*obj.include)[15]) { 
  1243.       if (before) s << obj.delem;
  1244.       s << obj.manip << obj.obj->names[15];
  1245.       before = true; 
  1246.      } 
  1247.     if ((*obj.include)[16]) { 
  1248.       if (before) s << obj.delem;
  1249.       s << obj.manip << obj.obj->names[16];
  1250.       before = true; 
  1251.      } 
  1252.     if ((*obj.include)[17]) { 
  1253.       if (before) s << obj.delem;
  1254.       s << obj.manip << obj.obj->names[17];
  1255.       before = true; 
  1256.      } 
  1257.     if ((*obj.include)[18]) { 
  1258.       if (before) s << obj.delem;
  1259.       s << obj.manip << obj.obj->names[18];
  1260.       before = true; 
  1261.      } 
  1262.     if ((*obj.include)[19]) { 
  1263.       if (before) s << obj.delem;
  1264.       s << obj.manip << obj.obj->names[19];
  1265.       before = true; 
  1266.      } 
  1267.     if ((*obj.include)[20]) { 
  1268.       if (before) s << obj.delem;
  1269.       s << obj.manip << obj.obj->names[20];
  1270.       before = true; 
  1271.      } 
  1272.     if ((*obj.include)[21]) { 
  1273.       if (before) s << obj.delem;
  1274.       s << obj.manip << obj.obj->names[21];
  1275.       before = true; 
  1276.      } 
  1277.     if ((*obj.include)[22]) { 
  1278.       if (before) s << obj.delem;
  1279.       s << obj.manip << obj.obj->names[22];
  1280.       before = true; 
  1281.      } 
  1282.     if ((*obj.include)[23]) { 
  1283.       if (before) s << obj.delem;
  1284.       s << obj.manip << obj.obj->names[23];
  1285.       before = true; 
  1286.      } 
  1287.     if ((*obj.include)[24]) { 
  1288.       if (before) s << obj.delem;
  1289.       s << obj.manip << obj.obj->names[24];
  1290.      } 
  1291.     return s; 
  1292.   } 
  1293.   template <class Manip>
  1294.   ostream& operator << (ostream& s, const NAME##_cus_equal_list<Manip>& obj) { 
  1295.     bool before = false; 
  1296.     if ((*obj.include)[0]) { 
  1297.       s << obj.obj->names[0] << obj.comp << obj.manip << obj.obj->##I1;
  1298.       before = true; 
  1299.      } 
  1300.     if ((*obj.include)[1]) { 
  1301.       if (before) s << obj.delem;
  1302.       s << obj.obj->names[1] << obj.comp << obj.manip << obj.obj->##I2;
  1303.       before = true; 
  1304.      } 
  1305.     if ((*obj.include)[2]) { 
  1306.       if (before) s << obj.delem;
  1307.       s << obj.obj->names[2] << obj.comp << obj.manip << obj.obj->##I3;
  1308.       before = true; 
  1309.      } 
  1310.     if ((*obj.include)[3]) { 
  1311.       if (before) s << obj.delem;
  1312.       s << obj.obj->names[3] << obj.comp << obj.manip << obj.obj->##I4;
  1313.       before = true; 
  1314.      } 
  1315.     if ((*obj.include)[4]) { 
  1316.       if (before) s << obj.delem;
  1317.       s << obj.obj->names[4] << obj.comp << obj.manip << obj.obj->##I5;
  1318.       before = true; 
  1319.      } 
  1320.     if ((*obj.include)[5]) { 
  1321.       if (before) s << obj.delem;
  1322.       s << obj.obj->names[5] << obj.comp << obj.manip << obj.obj->##I6;
  1323.       before = true; 
  1324.      } 
  1325.     if ((*obj.include)[6]) { 
  1326.       if (before) s << obj.delem;
  1327.       s << obj.obj->names[6] << obj.comp << obj.manip << obj.obj->##I7;
  1328.       before = true; 
  1329.      } 
  1330.     if ((*obj.include)[7]) { 
  1331.       if (before) s << obj.delem;
  1332.       s << obj.obj->names[7] << obj.comp << obj.manip << obj.obj->##I8;
  1333.       before = true; 
  1334.      } 
  1335.     if ((*obj.include)[8]) { 
  1336.       if (before) s << obj.delem;
  1337.       s << obj.obj->names[8] << obj.comp << obj.manip << obj.obj->##I9;
  1338.       before = true; 
  1339.      } 
  1340.     if ((*obj.include)[9]) { 
  1341.       if (before) s << obj.delem;
  1342.       s << obj.obj->names[9] << obj.comp << obj.manip << obj.obj->##I10;
  1343.       before = true; 
  1344.      } 
  1345.     if ((*obj.include)[10]) { 
  1346.       if (before) s << obj.delem;
  1347.       s << obj.obj->names[10] << obj.comp << obj.manip << obj.obj->##I11;
  1348.       before = true; 
  1349.      } 
  1350.     if ((*obj.include)[11]) { 
  1351.       if (before) s << obj.delem;
  1352.       s << obj.obj->names[11] << obj.comp << obj.manip << obj.obj->##I12;
  1353.       before = true; 
  1354.      } 
  1355.     if ((*obj.include)[12]) { 
  1356.       if (before) s << obj.delem;
  1357.       s << obj.obj->names[12] << obj.comp << obj.manip << obj.obj->##I13;
  1358.       before = true; 
  1359.      } 
  1360.     if ((*obj.include)[13]) { 
  1361.       if (before) s << obj.delem;
  1362.       s << obj.obj->names[13] << obj.comp << obj.manip << obj.obj->##I14;
  1363.       before = true; 
  1364.      } 
  1365.     if ((*obj.include)[14]) { 
  1366.       if (before) s << obj.delem;
  1367.       s << obj.obj->names[14] << obj.comp << obj.manip << obj.obj->##I15;
  1368.       before = true; 
  1369.      } 
  1370.     if ((*obj.include)[15]) { 
  1371.       if (before) s << obj.delem;
  1372.       s << obj.obj->names[15] << obj.comp << obj.manip << obj.obj->##I16;
  1373.       before = true; 
  1374.      } 
  1375.     if ((*obj.include)[16]) { 
  1376.       if (before) s << obj.delem;
  1377.       s << obj.obj->names[16] << obj.comp << obj.manip << obj.obj->##I17;
  1378.       before = true; 
  1379.      } 
  1380.     if ((*obj.include)[17]) { 
  1381.       if (before) s << obj.delem;
  1382.       s << obj.obj->names[17] << obj.comp << obj.manip << obj.obj->##I18;
  1383.       before = true; 
  1384.      } 
  1385.     if ((*obj.include)[18]) { 
  1386.       if (before) s << obj.delem;
  1387.       s << obj.obj->names[18] << obj.comp << obj.manip << obj.obj->##I19;
  1388.       before = true; 
  1389.      } 
  1390.     if ((*obj.include)[19]) { 
  1391.       if (before) s << obj.delem;
  1392.       s << obj.obj->names[19] << obj.comp << obj.manip << obj.obj->##I20;
  1393.       before = true; 
  1394.      } 
  1395.     if ((*obj.include)[20]) { 
  1396.       if (before) s << obj.delem;
  1397.       s << obj.obj->names[20] << obj.comp << obj.manip << obj.obj->##I21;
  1398.       before = true; 
  1399.      } 
  1400.     if ((*obj.include)[21]) { 
  1401.       if (before) s << obj.delem;
  1402.       s << obj.obj->names[21] << obj.comp << obj.manip << obj.obj->##I22;
  1403.       before = true; 
  1404.      } 
  1405.     if ((*obj.include)[22]) { 
  1406.       if (before) s << obj.delem;
  1407.       s << obj.obj->names[22] << obj.comp << obj.manip << obj.obj->##I23;
  1408.       before = true; 
  1409.      } 
  1410.     if ((*obj.include)[23]) { 
  1411.       if (before) s << obj.delem;
  1412.       s << obj.obj->names[23] << obj.comp << obj.manip << obj.obj->##I24;
  1413.       before = true; 
  1414.      } 
  1415.     if ((*obj.include)[24]) { 
  1416.       if (before) s << obj.delem;
  1417.       s << obj.obj->names[24] << obj.comp << obj.manip << obj.obj->##I25;
  1418.      } 
  1419.     return s; 
  1420.   } 
  1421.   template <class Manip>
  1422.   inline NAME##_value_list<Manip> NAME##::value_list(cchar *d, Manip m) const { 
  1423.     return NAME##_value_list<Manip> (this, d, m); 
  1424.   } 
  1425.   template <class Manip>
  1426.   inline NAME##_field_list<Manip> NAME##::field_list(cchar *d, Manip m) const { 
  1427.     return NAME##_field_list<Manip> (this, d, m); 
  1428.   } 
  1429.   template <class Manip>
  1430.   inline NAME##_equal_list<Manip> NAME##::equal_list(cchar *d, cchar *c, Manip m) const { 
  1431.     return NAME##_equal_list<Manip> (this, d, c, m); 
  1432.   } 
  1433.   template <class Manip>
  1434.   inline NAME##_cus_value_list<Manip> NAME##::value_list(cchar *d, Manip m,
  1435.        bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18, bool i19, bool i20, bool i21, bool i22, bool i23, bool i24, bool i25) const {
  1436.     return NAME##_cus_value_list<Manip> (this, d, m, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25); 
  1437.   } 
  1438.   template <class Manip>
  1439.   inline NAME##_cus_field_list<Manip> NAME##::field_list(cchar *d, Manip m,
  1440.  bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18, bool i19, bool i20, bool i21, bool i22, bool i23, bool i24, bool i25) const { 
  1441.     return NAME##_cus_field_list<Manip> (this, d, m, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25); 
  1442.   } 
  1443.   template <class Manip>
  1444.   inline NAME##_cus_equal_list<Manip> NAME##::equal_list(cchar *d, cchar *c, Manip m,
  1445.  bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18, bool i19, bool i20, bool i21, bool i22, bool i23, bool i24, bool i25) const { 
  1446.     return NAME##_cus_equal_list<Manip> (this, d, c, m, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25); 
  1447.   } 
  1448.   template <class Manip>
  1449.   inline NAME##_cus_value_list<Manip> NAME##::value_list(cchar *d, Manip m,
  1450.        ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18, ##NAME##_enum i19, ##NAME##_enum i20, ##NAME##_enum i21, ##NAME##_enum i22, ##NAME##_enum i23, ##NAME##_enum i24, ##NAME##_enum i25) const { 
  1451.     return NAME##_cus_value_list<Manip> (this, d, m, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25); 
  1452.   } 
  1453.   template <class Manip>
  1454.   inline NAME##_cus_field_list<Manip> NAME##::field_list(cchar *d, Manip m,
  1455.  ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18, ##NAME##_enum i19, ##NAME##_enum i20, ##NAME##_enum i21, ##NAME##_enum i22, ##NAME##_enum i23, ##NAME##_enum i24, ##NAME##_enum i25) const {
  1456.     return NAME##_cus_field_list<Manip> (this, d, m, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25); 
  1457.   } 
  1458.   template <class Manip>
  1459.   inline NAME##_cus_equal_list<Manip> NAME##::equal_list(cchar *d, cchar *c, Manip m, 
  1460.  ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18, ##NAME##_enum i19, ##NAME##_enum i20, ##NAME##_enum i21, ##NAME##_enum i22, ##NAME##_enum i23, ##NAME##_enum i24, ##NAME##_enum i25) const { 
  1461.     return NAME##_cus_equal_list<Manip> (this, d, c, m, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25); 
  1462.   } 
  1463.   template <class Manip>
  1464.   inline NAME##_cus_value_list<Manip> 
  1465.   NAME##::value_list(cchar *d, Manip m, sql_cmp_type sc) const {
  1466.     sql_compare_type_def_##CMP (NAME, value, NUM);
  1467.   }
  1468.   template <class Manip>
  1469.   inline NAME##_cus_field_list<Manip> 
  1470.   NAME##::field_list(cchar *d, Manip m, sql_cmp_type sc) const {
  1471.     sql_compare_type_def_##CMP (NAME, field, NUM);
  1472.   }
  1473.   template <class Manip>
  1474.   inline NAME##_cus_equal_list<Manip> 
  1475.   NAME##::equal_list(cchar *d, cchar *c, Manip m, sql_cmp_type sc) const {
  1476.     sql_compare_type_defe_##CMP (NAME, equal, NUM);
  1477.   }
  1478.   template <sql_dummy_type dummy> 
  1479.   void populate_##NAME (NAME *s, const MysqlRow &row) { 
  1480.     s->##I1 = row[ O1 ];
  1481.     s->##I2 = row[ O2 ];
  1482.     s->##I3 = row[ O3 ];
  1483.     s->##I4 = row[ O4 ];
  1484.     s->##I5 = row[ O5 ];
  1485.     s->##I6 = row[ O6 ];
  1486.     s->##I7 = row[ O7 ];
  1487.     s->##I8 = row[ O8 ];
  1488.     s->##I9 = row[ O9 ];
  1489.     s->##I10 = row[ O10 ];
  1490.     s->##I11 = row[ O11 ];
  1491.     s->##I12 = row[ O12 ];
  1492.     s->##I13 = row[ O13 ];
  1493.     s->##I14 = row[ O14 ];
  1494.     s->##I15 = row[ O15 ];
  1495.     s->##I16 = row[ O16 ];
  1496.     s->##I17 = row[ O17 ];
  1497.     s->##I18 = row[ O18 ];
  1498.     s->##I19 = row[ O19 ];
  1499.     s->##I20 = row[ O20 ];
  1500.     s->##I21 = row[ O21 ];
  1501.     s->##I22 = row[ O22 ];
  1502.     s->##I23 = row[ O23 ];
  1503.     s->##I24 = row[ O24 ];
  1504.     s->##I25 = row[ O25 ];
  1505.   } 
  1506.   inline NAME##::##NAME (const MysqlRow &row) 
  1507.                                         {populate_##NAME##<sql_dummy>(this, row);}
  1508.   inline void NAME##::set (const MysqlRow &row)
  1509.                                         {populate_##NAME##<sql_dummy>(this, row);}
  1510.   sql_COMPARE__##CMP##(NAME, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15, I16, I17, I18, I19, I20, I21, I22, I23, I24, I25, 0 )
  1511. #define sql_create_basic_25(NAME, CMP, CONTR, T1, I1, T2, I2, T3, I3, T4, I4, T5, I5, T6, I6, T7, I7, T8, I8, T9, I9, T10, I10, T11, I11, T12, I12, T13, I13, T14, I14, T15, I15, T16, I16, T17, I17, T18, I18, T19, I19, T20, I20, T21, I21, T22, I22, T23, I23, T24, I24, T25, I25) 
  1512.   sql_create_basic_c_order_25(NAME, CMP, CONTR, T1, I1, 0, T2, I2, 1, T3, I3, 2, T4, I4, 3, T5, I5, 4, T6, I6, 5, T7, I7, 6, T8, I8, 7, T9, I9, 8, T10, I10, 9, T11, I11, 10, T12, I12, 11, T13, I13, 12, T14, I14, 13, T15, I15, 14, T16, I16, 15, T17, I17, 16, T18, I18, 17, T19, I19, 18, T20, I20, 19, T21, I21, 20, T22, I22, 21, T23, I23, 22, T24, I24, 23, T25, I25, 24)
  1513. #define sql_create_25(NAME, CMP, CONTR, T1, I1, T2, I2, T3, I3, T4, I4, T5, I5, T6, I6, T7, I7, T8, I8, T9, I9, T10, I10, T11, I11, T12, I12, T13, I13, T14, I14, T15, I15, T16, I16, T17, I17, T18, I18, T19, I19, T20, I20, T21, I21, T22, I22, T23, I23, T24, I24, T25, I25) 
  1514.   sql_create_complete_25(NAME, CMP, CONTR, T1, I1, #I1, 0, T2, I2, #I2, 1, T3, I3, #I3, 2, T4, I4, #I4, 3, T5, I5, #I5, 4, T6, I6, #I6, 5, T7, I7, #I7, 6, T8, I8, #I8, 7, T9, I9, #I9, 8, T10, I10, #I10, 9, T11, I11, #I11, 10, T12, I12, #I12, 11, T13, I13, #I13, 12, T14, I14, #I14, 13, T15, I15, #I15, 14, T16, I16, #I16, 15, T17, I17, #I17, 16, T18, I18, #I18, 17, T19, I19, #I19, 18, T20, I20, #I20, 19, T21, I21, #I21, 20, T22, I22, #I22, 21, T23, I23, #I23, 22, T24, I24, #I24, 23, T25, I25, #I25, 24) 
  1515. #define sql_create_c_order_25(NAME, CMP, CONTR, T1, I1, O1, T2, I2, O2, T3, I3, O3, T4, I4, O4, T5, I5, O5, T6, I6, O6, T7, I7, O7, T8, I8, O8, T9, I9, O9, T10, I10, O10, T11, I11, O11, T12, I12, O12, T13, I13, O13, T14, I14, O14, T15, I15, O15, T16, I16, O16, T17, I17, O17, T18, I18, O18, T19, I19, O19, T20, I20, O20, T21, I21, O21, T22, I22, O22, T23, I23, O23, T24, I24, O24, T25, I25, O25) 
  1516.   sql_create_complete_25(NAME, CMP, CONTR, T1, I1, #I1, O1, T2, I2, #I2, O2, T3, I3, #I3, O3, T4, I4, #I4, O4, T5, I5, #I5, O5, T6, I6, #I6, O6, T7, I7, #I7, O7, T8, I8, #I8, O8, T9, I9, #I9, O9, T10, I10, #I10, O10, T11, I11, #I11, O11, T12, I12, #I12, O12, T13, I13, #I13, O13, T14, I14, #I14, O14, T15, I15, #I15, O15, T16, I16, #I16, O16, T17, I17, #I17, O17, T18, I18, #I18, O18, T19, I19, #I19, O19, T20, I20, #I20, O20, T21, I21, #I21, O21, T22, I22, #I22, O22, T23, I23, #I23, O23, T24, I24, #I24, O24, T25, I25, #I25, O25)
  1517. #define sql_create_c_names_25(NAME, CMP, CONTR, T1, I1, N1, T2, I2, N2, T3, I3, N3, T4, I4, N4, T5, I5, N5, T6, I6, N6, T7, I7, N7, T8, I8, N8, T9, I9, N9, T10, I10, N10, T11, I11, N11, T12, I12, N12, T13, I13, N13, T14, I14, N14, T15, I15, N15, T16, I16, N16, T17, I17, N17, T18, I18, N18, T19, I19, N19, T20, I20, N20, T21, I21, N21, T22, I22, N22, T23, I23, N23, T24, I24, N24, T25, I25, N25) 
  1518.   sql_create_complete_25(NAME, CMP, CONTR, T1, I1, N1, 0, T2, I2, N2, 1, T3, I3, N3, 2, T4, I4, N4, 3, T5, I5, N5, 4, T6, I6, N6, 5, T7, I7, N7, 6, T8, I8, N8, 7, T9, I9, N9, 8, T10, I10, N10, 9, T11, I11, N11, 10, T12, I12, N12, 11, T13, I13, N13, 12, T14, I14, N14, 13, T15, I15, N15, 14, T16, I16, N16, 15, T17, I17, N17, 16, T18, I18, N18, 17, T19, I19, N19, 18, T20, I20, N20, 19, T21, I21, N21, 20, T22, I22, N22, 21, T23, I23, N23, 22, T24, I24, N24, 23, T25, I25, N25, 24)
  1519. // ---------------------------------------------------
  1520. //                  End Create 25
  1521. // ---------------------------------------------------
  1522. // ---------------------------------------------------
  1523. //                  Begin Create 26
  1524. // ---------------------------------------------------
  1525. #define sql_create_basic_c_order_26(NAME, CMP, CONTR, T1, I1, O1, T2, I2, O2, T3, I3, O3, T4, I4, O4, T5, I5, O5, T6, I6, O6, T7, I7, O7, T8, I8, O8, T9, I9, O9, T10, I10, O10, T11, I11, O11, T12, I12, O12, T13, I13, O13, T14, I14, O14, T15, I15, O15, T16, I16, O16, T17, I17, O17, T18, I18, O18, T19, I19, O19, T20, I20, O20, T21, I21, O21, T22, I22, O22, T23, I23, O23, T24, I24, O24, T25, I25, O25, T26, I26, O26)
  1526.   struct NAME; 
  1527.   template <sql_dummy_type dummy> int sql_compare_##NAME (const NAME &, const NAME &);
  1528.   struct NAME { 
  1529.     T1 I1;
  1530.     T2 I2;
  1531.     T3 I3;
  1532.     T4 I4;
  1533.     T5 I5;
  1534.     T6 I6;
  1535.     T7 I7;
  1536.     T8 I8;
  1537.     T9 I9;
  1538.     T10 I10;
  1539.     T11 I11;
  1540.     T12 I12;
  1541.     T13 I13;
  1542.     T14 I14;
  1543.     T15 I15;
  1544.     T16 I16;
  1545.     T17 I17;
  1546.     T18 I18;
  1547.     T19 I19;
  1548.     T20 I20;
  1549.     T21 I21;
  1550.     T22 I22;
  1551.     T23 I23;
  1552.     T24 I24;
  1553.     T25 I25;
  1554.     T26 I26; 
  1555.     NAME () {} 
  1556.     NAME (const MysqlRow &row);
  1557.     sql_compare_define_##CMP(NAME, T1, I1, T2, I2, T3, I3, T4, I4, T5, I5, T6, I6, T7, I7, T8, I8, T9, I9, T10, I10, T11, I11, T12, I12, T13, I13, T14, I14, T15, I15, T16, I16, T17, I17, T18, I18, T19, I19, T20, I20, T21, I21, T22, I22, T23, I23, T24, I24, T25, I25, T26, I26)
  1558.   }; 
  1559.   template <sql_dummy_type dummy> 
  1560.     void populate_##NAME (NAME *s, const MysqlRow &row) { 
  1561.     s->##I1 = row[ O1 ];
  1562.     s->##I2 = row[ O2 ];
  1563.     s->##I3 = row[ O3 ];
  1564.     s->##I4 = row[ O4 ];
  1565.     s->##I5 = row[ O5 ];
  1566.     s->##I6 = row[ O6 ];
  1567.     s->##I7 = row[ O7 ];
  1568.     s->##I8 = row[ O8 ];
  1569.     s->##I9 = row[ O9 ];
  1570.     s->##I10 = row[ O10 ];
  1571.     s->##I11 = row[ O11 ];
  1572.     s->##I12 = row[ O12 ];
  1573.     s->##I13 = row[ O13 ];
  1574.     s->##I14 = row[ O14 ];
  1575.     s->##I15 = row[ O15 ];
  1576.     s->##I16 = row[ O16 ];
  1577.     s->##I17 = row[ O17 ];
  1578.     s->##I18 = row[ O18 ];
  1579.     s->##I19 = row[ O19 ];
  1580.     s->##I20 = row[ O20 ];
  1581.     s->##I21 = row[ O21 ];
  1582.     s->##I22 = row[ O22 ];
  1583.     s->##I23 = row[ O23 ];
  1584.     s->##I24 = row[ O24 ];
  1585.     s->##I25 = row[ O25 ];
  1586.     s->##I26 = row[ O26 ]; 
  1587.   } 
  1588.   inline NAME##::##NAME (const MysqlRow &row) 
  1589.     {populate_##NAME##<sql_dummy>(this, row);} 
  1590.   sql_COMPARE__##CMP##(NAME, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15, I16, I17, I18, I19, I20, I21, I22, I23, I24, I25, I26 )
  1591. #define sql_create_complete_26(NAME, CMP, CONTR, T1, I1, N1, O1, T2, I2, N2, O2, T3, I3, N3, O3, T4, I4, N4, O4, T5, I5, N5, O5, T6, I6, N6, O6, T7, I7, N7, O7, T8, I8, N8, O8, T9, I9, N9, O9, T10, I10, N10, O10, T11, I11, N11, O11, T12, I12, N12, O12, T13, I13, N13, O13, T14, I14, N14, O14, T15, I15, N15, O15, T16, I16, N16, O16, T17, I17, N17, O17, T18, I18, N18, O18, T19, I19, N19, O19, T20, I20, N20, O20, T21, I21, N21, O21, T22, I22, N22, O22, T23, I23, N23, O23, T24, I24, N24, O24, T25, I25, N25, O25, T26, I26, N26, O26) 
  1592.   struct NAME; 
  1593.   enum NAME##_enum { 
  1594.     NAME##_##I1,
  1595.     NAME##_##I2,
  1596.     NAME##_##I3,
  1597.     NAME##_##I4,
  1598.     NAME##_##I5,
  1599.     NAME##_##I6,
  1600.     NAME##_##I7,
  1601.     NAME##_##I8,
  1602.     NAME##_##I9,
  1603.     NAME##_##I10,
  1604.     NAME##_##I11,
  1605.     NAME##_##I12,
  1606.     NAME##_##I13,
  1607.     NAME##_##I14,
  1608.     NAME##_##I15,
  1609.     NAME##_##I16,
  1610.     NAME##_##I17,
  1611.     NAME##_##I18,
  1612.     NAME##_##I19,
  1613.     NAME##_##I20,
  1614.     NAME##_##I21,
  1615.     NAME##_##I22,
  1616.     NAME##_##I23,
  1617.     NAME##_##I24,
  1618.     NAME##_##I25,
  1619.     NAME##_##I26 
  1620.     ,NAME##_NULL 
  1621.   }; 
  1622.   template <class Manip>
  1623.   class NAME##_value_list { 
  1624.   /*friend ostream& operator << <> (ostream&, const NAME##_value_list&); */
  1625.   public: 
  1626.     const NAME *obj;
  1627.     cchar *delem;
  1628.     Manip manip;
  1629.   public: 
  1630.     NAME##_value_list (const NAME *o, cchar *d, Manip m) 
  1631.       : obj(o), delem(d), manip(m) {} 
  1632.   };
  1633.   template <class Manip>
  1634.   class NAME##_##field_list {
  1635.   /* friend ostream& operator << <> (ostream&, const NAME##_field_list&); */
  1636.   public: 
  1637.     const NAME *obj; 
  1638.     cchar *delem;
  1639.     Manip manip;
  1640.   public: 
  1641.     NAME##_field_list (const NAME *o, cchar *d, Manip m) 
  1642.       : obj(o), delem(d), manip(m) {} 
  1643.   };
  1644.   template <class Manip>
  1645.   class NAME##_equal_list { 
  1646.   /* friend ostream& operator << <> (ostream&, const NAME##_equal_list&); */
  1647.   public: 
  1648.     const NAME *obj;
  1649.     cchar *delem;
  1650.     cchar *comp;
  1651.     Manip manip;
  1652.   public: 
  1653.     NAME##_equal_list (const NAME *o, cchar *d, cchar *c, Manip m) 
  1654.       : obj(o), delem(d), comp(c), manip(m) {}
  1655.   };
  1656.   template <class Manip>
  1657.   class NAME##_cus_value_list {
  1658.   /* friend ostream& operator << <> (ostream&, 
  1659.      const NAME##_cus_value_list<Manip>&); */
  1660.   public:
  1661.     const NAME *obj;
  1662.     cchar *delem;
  1663.     Manip manip;
  1664.     vector<bool> *include;
  1665.     bool del_vector;
  1666.   public: 
  1667.     ~##NAME##_cus_value_list () {if (del_vector) delete include;} 
  1668.     NAME##_cus_value_list (const NAME *o, cchar *d, Manip m, bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18, bool i19, bool i20, bool i21, bool i22, bool i23, bool i24, bool i25, bool i26);
  1669.     NAME##_cus_value_list (const NAME *o, cchar *d, Manip m, ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18, ##NAME##_enum i19, ##NAME##_enum i20, ##NAME##_enum i21, ##NAME##_enum i22, ##NAME##_enum i23, ##NAME##_enum i24, ##NAME##_enum i25, ##NAME##_enum i26); 
  1670.     NAME##_cus_value_list (const NAME *o, cchar *d, Manip m ,vector<bool>)
  1671.       : obj(o), include(i), del_vector(false), delem(d), manip(m) {}
  1672.   };
  1673.   template <class Manip>
  1674.   class NAME##_cus_field_list { 
  1675.   /* friend ostream& operator << <> (ostream&, 
  1676.         const NAME##_cus_field_list<Manip>&); */
  1677.   public:
  1678.     const NAME *obj; 
  1679.     cchar *delem;
  1680.     Manip manip;
  1681.     vector<bool> *include; 
  1682.     bool del_vector; 
  1683.   public: 
  1684.     ~##NAME##_cus_field_list () {if (del_vector) delete include;} 
  1685.     NAME##_cus_field_list (const NAME *o, cchar *d, Manip m, bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18, bool i19, bool i20, bool i21, bool i22, bool i23, bool i24, bool i25, bool i26); 
  1686.     NAME##_cus_field_list (const NAME *o, cchar *d, Manip m, ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18, ##NAME##_enum i19, ##NAME##_enum i20, ##NAME##_enum i21, ##NAME##_enum i22, ##NAME##_enum i23, ##NAME##_enum i24, ##NAME##_enum i25, ##NAME##_enum i26); 
  1687.     NAME##_cus_field_list (const NAME *o, cchar *d, Manip m, vector<bool> *i) 
  1688.       : obj(o), include(i), del_vector(false), delem(d), manip(m) {}
  1689.   };
  1690.  template <class Manip>
  1691.  class NAME##_cus_equal_list {
  1692.  /* friend ostream& operator << <> (ostream&, 
  1693.   const NAME##_cus_equal_list<Manip>&); */
  1694.   public:
  1695.     const NAME *obj;
  1696.     vector<bool> *include;
  1697.     bool del_vector;
  1698.     cchar *delem;
  1699.     cchar *comp;
  1700.     Manip manip;
  1701.   public:
  1702.     ~##NAME##_##cus_equal_list () {if (del_vector) delete include;}
  1703.     NAME##_##cus_equal_list (const NAME *o, cchar *d, cchar *c, Manip m, bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18, bool i19, bool i20, bool i21, bool i22, bool i23, bool i24, bool i25, bool i26); 
  1704.     NAME##_##cus_equal_list (const NAME *o, cchar *d, cchar *c, Manip m, ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18, ##NAME##_enum i19, ##NAME##_enum i20, ##NAME##_enum i21, ##NAME##_enum i22, ##NAME##_enum i23, ##NAME##_enum i24, ##NAME##_enum i25, ##NAME##_enum i26); 
  1705.     NAME##_##cus_equal_list (const NAME *o, cchar *d, cchar *c, Manip m, vector<bool> *i) 
  1706.       : obj(o), include(i), del_vector(false), delem(d), comp(c), manip(m) {}
  1707.   };
  1708.   template <sql_dummy_type dummy> int sql_compare_##NAME (const NAME &, const NAME &);
  1709.   struct NAME { 
  1710.     T1 I1;
  1711.     T2 I2;
  1712.     T3 I3;
  1713.     T4 I4;
  1714.     T5 I5;
  1715.     T6 I6;
  1716.     T7 I7;
  1717.     T8 I8;
  1718.     T9 I9;
  1719.     T10 I10;
  1720.     T11 I11;
  1721.     T12 I12;
  1722.     T13 I13;
  1723.     T14 I14;
  1724.     T15 I15;
  1725.     T16 I16;
  1726.     T17 I17;
  1727.     T18 I18;
  1728.     T19 I19;
  1729.     T20 I20;
  1730.     T21 I21;
  1731.     T22 I22;
  1732.     T23 I23;
  1733.     T24 I24;
  1734.     T25 I25;
  1735.     T26 I26; 
  1736.     NAME () {} 
  1737.     NAME (const MysqlRow &row);
  1738.     void set (const MysqlRow &row);
  1739.     sql_compare_define_##CMP(NAME, T1, I1, T2, I2, T3, I3, T4, I4, T5, I5, T6, I6, T7, I7, T8, I8, T9, I9, T10, I10, T11, I11, T12, I12, T13, I13, T14, I14, T15, I15, T16, I16, T17, I17, T18, I18, T19, I19, T20, I20, T21, I21, T22, I22, T23, I23, T24, I24, T25, I25, T26, I26)
  1740.     sql_construct_define_##CONTR(NAME, T1, I1, T2, I2, T3, I3, T4, I4, T5, I5, T6, I6, T7, I7, T8, I8, T9, I9, T10, I10, T11, I11, T12, I12, T13, I13, T14, I14, T15, I15, T16, I16, T17, I17, T18, I18, T19, I19, T20, I20, T21, I21, T22, I22, T23, I23, T24, I24, T25, I25, T26, I26)
  1741.     static char *names[];
  1742.     static char *_table;
  1743.     static char *& table() {return _table;}
  1744.     /* cus_data */
  1745.     NAME##_cus_value_list<quote_type0> value_list(bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false, bool i19 = false, bool i20 = false, bool i21 = false, bool i22 = false, bool i23 = false, bool i24 = false, bool i25 = false, bool i26 = false) const {
  1746.       return value_list(",", mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25, i26);
  1747.     }
  1748.     NAME##_cus_value_list<quote_type0> value_list(##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL, ##NAME##_enum i19 = ##NAME##_NULL, ##NAME##_enum i20 = ##NAME##_NULL, ##NAME##_enum i21 = ##NAME##_NULL, ##NAME##_enum i22 = ##NAME##_NULL, ##NAME##_enum i23 = ##NAME##_NULL, ##NAME##_enum i24 = ##NAME##_NULL, ##NAME##_enum i25 = ##NAME##_NULL, ##NAME##_enum i26 = ##NAME##_NULL) const {
  1749.       return value_list(",", mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25, i26);
  1750.     }
  1751.     NAME##_cus_value_list<quote_type0> value_list(vector<bool> *i) const {
  1752.       return value_list(",", mysql_quote, i);
  1753.     }
  1754.     NAME##_cus_value_list<quote_type0> value_list(sql_cmp_type sc) const {
  1755.       return value_list(",", mysql_quote, sc);
  1756.     }
  1757.     NAME##_cus_value_list<quote_type0> value_list(cchar *d, bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false, bool i19 = false, bool i20 = false, bool i21 = false, bool i22 = false, bool i23 = false, bool i24 = false, bool i25 = false, bool i26 = false) const {
  1758.       return value_list(d, mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25, i26);
  1759.     }
  1760.     NAME##_cus_value_list<quote_type0> value_list(cchar *d, ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL, ##NAME##_enum i19 = ##NAME##_NULL, ##NAME##_enum i20 = ##NAME##_NULL, ##NAME##_enum i21 = ##NAME##_NULL, ##NAME##_enum i22 = ##NAME##_NULL, ##NAME##_enum i23 = ##NAME##_NULL, ##NAME##_enum i24 = ##NAME##_NULL, ##NAME##_enum i25 = ##NAME##_NULL, ##NAME##_enum i26 = ##NAME##_NULL) const {
  1761.       return value_list(d, mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25, i26);
  1762.     }
  1763.     NAME##_cus_value_list<quote_type0> value_list(cchar *d, 
  1764. vector<bool> *i) const {
  1765.       return value_list(d, mysql_quote, i);
  1766.     }
  1767.     NAME##_cus_value_list<quote_type0> value_list(cchar *d, 
  1768. sql_cmp_type sc) const {
  1769.       return value_list(d, mysql_quote, sc);
  1770.     }
  1771.     template <class Manip>
  1772.     NAME##_cus_value_list<Manip> value_list(cchar *d, Manip m,
  1773.   bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false, bool i19 = false, bool i20 = false, bool i21 = false, bool i22 = false, bool i23 = false, bool i24 = false, bool i25 = false, bool i26 = false) const; 
  1774.     template <class Manip>
  1775.     NAME##_cus_value_list<Manip> value_list(cchar *d, Manip m,
  1776.   ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL, ##NAME##_enum i19 = ##NAME##_NULL, ##NAME##_enum i20 = ##NAME##_NULL, ##NAME##_enum i21 = ##NAME##_NULL, ##NAME##_enum i22 = ##NAME##_NULL, ##NAME##_enum i23 = ##NAME##_NULL, ##NAME##_enum i24 = ##NAME##_NULL, ##NAME##_enum i25 = ##NAME##_NULL, ##NAME##_enum i26 = ##NAME##_NULL) const; 
  1777.     template <class Manip>
  1778.     NAME##_cus_value_list<Manip> value_list(cchar *d, Manip m, 
  1779.   vector<bool> *i) const;
  1780.     template <class Manip>
  1781.     NAME##_cus_value_list<Manip> value_list(cchar *d, Manip m, 
  1782.   sql_cmp_type sc) const;
  1783.     /* cus field */
  1784.     NAME##_cus_field_list<do_nothing_type0> field_list(bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false, bool i19 = false, bool i20 = false, bool i21 = false, bool i22 = false, bool i23 = false, bool i24 = false, bool i25 = false, bool i26 = false) const {
  1785.       return field_list(",", mysql_do_nothing, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25, i26);
  1786.     }
  1787.     NAME##_cus_field_list<do_nothing_type0> field_list(##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL, ##NAME##_enum i19 = ##NAME##_NULL, ##NAME##_enum i20 = ##NAME##_NULL, ##NAME##_enum i21 = ##NAME##_NULL, ##NAME##_enum i22 = ##NAME##_NULL, ##NAME##_enum i23 = ##NAME##_NULL, ##NAME##_enum i24 = ##NAME##_NULL, ##NAME##_enum i25 = ##NAME##_NULL, ##NAME##_enum i26 = ##NAME##_NULL) const {
  1788.       return field_list(",", mysql_do_nothing, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25, i26);
  1789.     }
  1790.     NAME##_cus_field_list<do_nothing_type0> field_list(vector<bool> *i) const {
  1791.       return field_list(",", mysql_do_nothing, i);
  1792.     }
  1793.     NAME##_cus_field_list<do_nothing_type0> field_list(sql_cmp_type sc) const
  1794.     {
  1795.       return field_list(",", mysql_do_nothing, sc);
  1796.     }
  1797.     NAME##_cus_field_list<do_nothing_type0> field_list(cchar *d, 
  1798.        bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false, bool i19 = false, bool i20 = false, bool i21 = false, bool i22 = false, bool i23 = false, bool i24 = false, bool i25 = false, bool i26 = false) const {
  1799.       return field_list(d, mysql_do_nothing, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25, i26);
  1800.     }
  1801.     NAME##_cus_field_list<do_nothing_type0> field_list(cchar *d,
  1802.        ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL, ##NAME##_enum i19 = ##NAME##_NULL, ##NAME##_enum i20 = ##NAME##_NULL, ##NAME##_enum i21 = ##NAME##_NULL, ##NAME##_enum i22 = ##NAME##_NULL, ##NAME##_enum i23 = ##NAME##_NULL, ##NAME##_enum i24 = ##NAME##_NULL, ##NAME##_enum i25 = ##NAME##_NULL, ##NAME##_enum i26 = ##NAME##_NULL) const {
  1803.       return field_list(d, mysql_do_nothing, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25, i26);
  1804.     }
  1805.     NAME##_cus_field_list<do_nothing_type0> field_list(cchar *d, 
  1806. vector<bool> *i) const {
  1807.       return field_list(d, mysql_do_nothing, i);
  1808.     }
  1809.     NAME##_cus_field_list<do_nothing_type0> field_list(cchar *d, 
  1810. sql_cmp_type sc) const {
  1811.       return field_list(d, mysql_do_nothing, sc);
  1812.     }
  1813.     template <class Manip>
  1814.     NAME##_cus_field_list<Manip> field_list(cchar *d, Manip m,
  1815.     bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false, bool i19 = false, bool i20 = false, bool i21 = false, bool i22 = false, bool i23 = false, bool i24 = false, bool i25 = false, bool i26 = false) const; 
  1816.     template <class Manip>
  1817.     NAME##_cus_field_list<Manip> field_list(cchar *d, Manip m,
  1818.     ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL, ##NAME##_enum i19 = ##NAME##_NULL, ##NAME##_enum i20 = ##NAME##_NULL, ##NAME##_enum i21 = ##NAME##_NULL, ##NAME##_enum i22 = ##NAME##_NULL, ##NAME##_enum i23 = ##NAME##_NULL, ##NAME##_enum i24 = ##NAME##_NULL, ##NAME##_enum i25 = ##NAME##_NULL, ##NAME##_enum i26 = ##NAME##_NULL) const; 
  1819.     template <class Manip>
  1820.     NAME##_cus_field_list<Manip> field_list(cchar *d, Manip m,
  1821.     vector<bool> *i) const;
  1822.     template <class Manip>
  1823.     NAME##_cus_field_list<Manip> field_list(cchar *d, Manip m, 
  1824.     sql_cmp_type sc) const;
  1825.     /* cus equal */
  1826.     NAME##_cus_equal_list<quote_type0> equal_list(bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false, bool i19 = false, bool i20 = false, bool i21 = false, bool i22 = false, bool i23 = false, bool i24 = false, bool i25 = false, bool i26 = false) const {
  1827.       return equal_list(",", " = ", mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25, i26);
  1828.     }
  1829.     NAME##_cus_equal_list<quote_type0> equal_list(##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL, ##NAME##_enum i19 = ##NAME##_NULL, ##NAME##_enum i20 = ##NAME##_NULL, ##NAME##_enum i21 = ##NAME##_NULL, ##NAME##_enum i22 = ##NAME##_NULL, ##NAME##_enum i23 = ##NAME##_NULL, ##NAME##_enum i24 = ##NAME##_NULL, ##NAME##_enum i25 = ##NAME##_NULL, ##NAME##_enum i26 = ##NAME##_NULL) const {
  1830.       return equal_list(",", " = ", mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25, i26);
  1831.     }
  1832.     NAME##_cus_equal_list<quote_type0> equal_list(vector<bool> *i) const {
  1833.       return equal_list(",", " = ", mysql_quote, i);
  1834.     }
  1835.     NAME##_cus_equal_list<quote_type0> equal_list(sql_cmp_type sc) const {
  1836.       return equal_list(",", " = ", mysql_quote, sc);
  1837.     }
  1838.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false, bool i19 = false, bool i20 = false, bool i21 = false, bool i22 = false, bool i23 = false, bool i24 = false, bool i25 = false, bool i26 = false) const {
  1839.       return equal_list(d, " = ", mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25, i26);
  1840.     }
  1841.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL, ##NAME##_enum i19 = ##NAME##_NULL, ##NAME##_enum i20 = ##NAME##_NULL, ##NAME##_enum i21 = ##NAME##_NULL, ##NAME##_enum i22 = ##NAME##_NULL, ##NAME##_enum i23 = ##NAME##_NULL, ##NAME##_enum i24 = ##NAME##_NULL, ##NAME##_enum i25 = ##NAME##_NULL, ##NAME##_enum i26 = ##NAME##_NULL) const {
  1842.       return equal_list(d, " = ", mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25, i26);
  1843.     }
  1844.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, 
  1845. vector<bool> *i) const {
  1846.       return equal_list(d, " = ", mysql_quote, i);
  1847.     }
  1848.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, 
  1849. sql_cmp_type sc) const {
  1850.       return equal_list(d, " = ", mysql_quote, sc);
  1851.     }
  1852.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, cchar *c,
  1853.                                                 bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false, bool i19 = false, bool i20 = false, bool i21 = false, bool i22 = false, bool i23 = false, bool i24 = false, bool i25 = false, bool i26 = false) const {
  1854.       return equal_list(d, c, mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25, i26);
  1855.     }
  1856.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, cchar *c,
  1857.                                                 ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL, ##NAME##_enum i19 = ##NAME##_NULL, ##NAME##_enum i20 = ##NAME##_NULL, ##NAME##_enum i21 = ##NAME##_NULL, ##NAME##_enum i22 = ##NAME##_NULL, ##NAME##_enum i23 = ##NAME##_NULL, ##NAME##_enum i24 = ##NAME##_NULL, ##NAME##_enum i25 = ##NAME##_NULL, ##NAME##_enum i26 = ##NAME##_NULL) const {
  1858.       return equal_list(d, c, mysql_quote, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25, i26);
  1859.     }
  1860.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, cchar *c,
  1861. vector<bool> *i) const {
  1862.       return equal_list(d, c, mysql_quote, i);
  1863.     }
  1864.     NAME##_cus_equal_list<quote_type0> equal_list(cchar *d, cchar *c,
  1865. sql_cmp_type sc) const {
  1866.       return equal_list(d, c, mysql_quote, sc);
  1867.     }
  1868.     template <class Manip>
  1869.     NAME##_cus_equal_list<Manip> equal_list(cchar *d, cchar *c, Manip m, 
  1870.     bool i1, bool i2 = false, bool i3 = false, bool i4 = false, bool i5 = false, bool i6 = false, bool i7 = false, bool i8 = false, bool i9 = false, bool i10 = false, bool i11 = false, bool i12 = false, bool i13 = false, bool i14 = false, bool i15 = false, bool i16 = false, bool i17 = false, bool i18 = false, bool i19 = false, bool i20 = false, bool i21 = false, bool i22 = false, bool i23 = false, bool i24 = false, bool i25 = false, bool i26 = false) const; 
  1871.     template <class Manip>
  1872.     NAME##_cus_equal_list<Manip> equal_list(cchar *d, cchar *c, Manip m, 
  1873.     ##NAME##_enum i1, ##NAME##_enum i2 = ##NAME##_NULL, ##NAME##_enum i3 = ##NAME##_NULL, ##NAME##_enum i4 = ##NAME##_NULL, ##NAME##_enum i5 = ##NAME##_NULL, ##NAME##_enum i6 = ##NAME##_NULL, ##NAME##_enum i7 = ##NAME##_NULL, ##NAME##_enum i8 = ##NAME##_NULL, ##NAME##_enum i9 = ##NAME##_NULL, ##NAME##_enum i10 = ##NAME##_NULL, ##NAME##_enum i11 = ##NAME##_NULL, ##NAME##_enum i12 = ##NAME##_NULL, ##NAME##_enum i13 = ##NAME##_NULL, ##NAME##_enum i14 = ##NAME##_NULL, ##NAME##_enum i15 = ##NAME##_NULL, ##NAME##_enum i16 = ##NAME##_NULL, ##NAME##_enum i17 = ##NAME##_NULL, ##NAME##_enum i18 = ##NAME##_NULL, ##NAME##_enum i19 = ##NAME##_NULL, ##NAME##_enum i20 = ##NAME##_NULL, ##NAME##_enum i21 = ##NAME##_NULL, ##NAME##_enum i22 = ##NAME##_NULL, ##NAME##_enum i23 = ##NAME##_NULL, ##NAME##_enum i24 = ##NAME##_NULL, ##NAME##_enum i25 = ##NAME##_NULL, ##NAME##_enum i26 = ##NAME##_NULL) const; 
  1874.     template <class Manip>
  1875.     NAME##_cus_equal_list<Manip> equal_list(cchar *d, cchar *c, Manip m, 
  1876.     vector<bool> *i) const;
  1877.     template <class Manip>
  1878.     NAME##_cus_equal_list<Manip> equal_list(cchar *d, cchar *c, Manip m, 
  1879.     sql_cmp_type sc) const;
  1880.     NAME##_value_list<quote_type0> value_list() const {
  1881.       return value_list(",", mysql_quote);}
  1882.     NAME##_value_list<quote_type0> value_list(cchar *d) const {
  1883.       return value_list(d, mysql_quote);}
  1884.     template <class Manip> 
  1885.     NAME##_value_list<Manip> value_list(cchar *d, Manip m) const; 
  1886.     NAME##_field_list<do_nothing_type0> field_list() const {
  1887.       return field_list(",", mysql_do_nothing);}
  1888.     NAME##_field_list<do_nothing_type0> field_list(cchar *d) const {
  1889.       return field_list(d, mysql_do_nothing);}
  1890.     template <class Manip>
  1891.     NAME##_field_list<Manip> field_list(cchar *d, Manip m) const; 
  1892.     NAME##_equal_list<quote_type0> equal_list(cchar *d = ",", 
  1893.                                               cchar *c = " = ") const{
  1894.       return equal_list(d, c, mysql_quote);}
  1895.     template <class Manip>
  1896.     NAME##_equal_list<Manip> equal_list(cchar *d, cchar *c, Manip m) const; 
  1897.   }; 
  1898.   char *##NAME##::names[] = { 
  1899.     N1 ,
  1900.     N2 ,
  1901.     N3 ,
  1902.     N4 ,
  1903.     N5 ,
  1904.     N6 ,
  1905.     N7 ,
  1906.     N8 ,
  1907.     N9 ,
  1908.     N10 ,
  1909.     N11 ,
  1910.     N12 ,
  1911.     N13 ,
  1912.     N14 ,
  1913.     N15 ,
  1914.     N16 ,
  1915.     N17 ,
  1916.     N18 ,
  1917.     N19 ,
  1918.     N20 ,
  1919.     N21 ,
  1920.     N22 ,
  1921.     N23 ,
  1922.     N24 ,
  1923.     N25 ,
  1924.     N26  
  1925.   }; 
  1926.   char *##NAME##::_table = #NAME ;  
  1927.   template <class Manip>
  1928.   NAME##_cus_value_list<Manip>::NAME##_cus_value_list
  1929.   (const NAME *o, cchar *d, Manip m, bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18, bool i19, bool i20, bool i21, bool i22, bool i23, bool i24, bool i25, bool i26) 
  1930.   { 
  1931.     delem = d;
  1932.     manip = m;
  1933.     del_vector = true;
  1934.     obj = o; 
  1935.     include = new vector<bool>(26, false);
  1936.     if (i1) (*include)[0]=true;
  1937.     if (i2) (*include)[1]=true;
  1938.     if (i3) (*include)[2]=true;
  1939.     if (i4) (*include)[3]=true;
  1940.     if (i5) (*include)[4]=true;
  1941.     if (i6) (*include)[5]=true;
  1942.     if (i7) (*include)[6]=true;
  1943.     if (i8) (*include)[7]=true;
  1944.     if (i9) (*include)[8]=true;
  1945.     if (i10) (*include)[9]=true;
  1946.     if (i11) (*include)[10]=true;
  1947.     if (i12) (*include)[11]=true;
  1948.     if (i13) (*include)[12]=true;
  1949.     if (i14) (*include)[13]=true;
  1950.     if (i15) (*include)[14]=true;
  1951.     if (i16) (*include)[15]=true;
  1952.     if (i17) (*include)[16]=true;
  1953.     if (i18) (*include)[17]=true;
  1954.     if (i19) (*include)[18]=true;
  1955.     if (i20) (*include)[19]=true;
  1956.     if (i21) (*include)[20]=true;
  1957.     if (i22) (*include)[21]=true;
  1958.     if (i23) (*include)[22]=true;
  1959.     if (i24) (*include)[23]=true;
  1960.     if (i25) (*include)[24]=true;
  1961.     if (i26) (*include)[25]=true;
  1962.   } 
  1963.   template <class Manip>
  1964.   NAME##_cus_value_list<Manip>::NAME##_cus_value_list
  1965.   (const NAME *o, cchar *d, Manip m, ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18, ##NAME##_enum i19, ##NAME##_enum i20, ##NAME##_enum i21, ##NAME##_enum i22, ##NAME##_enum i23, ##NAME##_enum i24, ##NAME##_enum i25, ##NAME##_enum i26) { 
  1966.     delem = d;
  1967.     manip = m;
  1968.     del_vector = true; 
  1969.     obj = o; 
  1970.     include = new vector<bool>(26, false); 
  1971.     if (i1 == NAME##_NULL) return;
  1972.     (*include)[i1]=true;
  1973.     if (i2 == NAME##_NULL) return;
  1974.     (*include)[i2]=true;
  1975.     if (i3 == NAME##_NULL) return;
  1976.     (*include)[i3]=true;
  1977.     if (i4 == NAME##_NULL) return;
  1978.     (*include)[i4]=true;
  1979.     if (i5 == NAME##_NULL) return;
  1980.     (*include)[i5]=true;
  1981.     if (i6 == NAME##_NULL) return;
  1982.     (*include)[i6]=true;
  1983.     if (i7 == NAME##_NULL) return;
  1984.     (*include)[i7]=true;
  1985.     if (i8 == NAME##_NULL) return;
  1986.     (*include)[i8]=true;
  1987.     if (i9 == NAME##_NULL) return;
  1988.     (*include)[i9]=true;
  1989.     if (i10 == NAME##_NULL) return;
  1990.     (*include)[i10]=true;
  1991.     if (i11 == NAME##_NULL) return;
  1992.     (*include)[i11]=true;
  1993.     if (i12 == NAME##_NULL) return;
  1994.     (*include)[i12]=true;
  1995.     if (i13 == NAME##_NULL) return;
  1996.     (*include)[i13]=true;
  1997.     if (i14 == NAME##_NULL) return;
  1998.     (*include)[i14]=true;
  1999.     if (i15 == NAME##_NULL) return;
  2000.     (*include)[i15]=true;
  2001.     if (i16 == NAME##_NULL) return;
  2002.     (*include)[i16]=true;
  2003.     if (i17 == NAME##_NULL) return;
  2004.     (*include)[i17]=true;
  2005.     if (i18 == NAME##_NULL) return;
  2006.     (*include)[i18]=true;
  2007.     if (i19 == NAME##_NULL) return;
  2008.     (*include)[i19]=true;
  2009.     if (i20 == NAME##_NULL) return;
  2010.     (*include)[i20]=true;
  2011.     if (i21 == NAME##_NULL) return;
  2012.     (*include)[i21]=true;
  2013.     if (i22 == NAME##_NULL) return;
  2014.     (*include)[i22]=true;
  2015.     if (i23 == NAME##_NULL) return;
  2016.     (*include)[i23]=true;
  2017.     if (i24 == NAME##_NULL) return;
  2018.     (*include)[i24]=true;
  2019.     if (i25 == NAME##_NULL) return;
  2020.     (*include)[i25]=true;
  2021.     if (i26 == NAME##_NULL) return;
  2022.     (*include)[i26]=true;
  2023.   }
  2024.   template <class Manip>
  2025.   NAME##_cus_field_list<Manip>::NAME##_cus_field_list
  2026.   (const NAME *o, cchar *d, Manip m, bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18, bool i19, bool i20, bool i21, bool i22, bool i23, bool i24, bool i25, bool i26) {
  2027.     delem = d;
  2028.     manip = m;
  2029.     del_vector = true; 
  2030.     obj = o; 
  2031.     include = new vector<bool>(26, false); 
  2032.     if (i1) (*include)[0]=true;
  2033.     if (i2) (*include)[1]=true;
  2034.     if (i3) (*include)[2]=true;
  2035.     if (i4) (*include)[3]=true;
  2036.     if (i5) (*include)[4]=true;
  2037.     if (i6) (*include)[5]=true;
  2038.     if (i7) (*include)[6]=true;
  2039.     if (i8) (*include)[7]=true;
  2040.     if (i9) (*include)[8]=true;
  2041.     if (i10) (*include)[9]=true;
  2042.     if (i11) (*include)[10]=true;
  2043.     if (i12) (*include)[11]=true;
  2044.     if (i13) (*include)[12]=true;
  2045.     if (i14) (*include)[13]=true;
  2046.     if (i15) (*include)[14]=true;
  2047.     if (i16) (*include)[15]=true;
  2048.     if (i17) (*include)[16]=true;
  2049.     if (i18) (*include)[17]=true;
  2050.     if (i19) (*include)[18]=true;
  2051.     if (i20) (*include)[19]=true;
  2052.     if (i21) (*include)[20]=true;
  2053.     if (i22) (*include)[21]=true;
  2054.     if (i23) (*include)[22]=true;
  2055.     if (i24) (*include)[23]=true;
  2056.     if (i25) (*include)[24]=true;
  2057.     if (i26) (*include)[25]=true;
  2058.   } 
  2059.   template <class Manip>
  2060.   NAME##_cus_field_list<Manip>::NAME##_cus_field_list
  2061.   (const NAME *o, cchar *d, Manip m, ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18, ##NAME##_enum i19, ##NAME##_enum i20, ##NAME##_enum i21, ##NAME##_enum i22, ##NAME##_enum i23, ##NAME##_enum i24, ##NAME##_enum i25, ##NAME##_enum i26) { 
  2062.     delem = d;
  2063.     manip = m;
  2064.     del_vector = true; 
  2065.     obj = o; 
  2066.     include = new vector<bool>(26, false); 
  2067.     if (i1 == NAME##_NULL) return;
  2068.     (*include)[i1]=true;
  2069.     if (i2 == NAME##_NULL) return;
  2070.     (*include)[i2]=true;
  2071.     if (i3 == NAME##_NULL) return;
  2072.     (*include)[i3]=true;
  2073.     if (i4 == NAME##_NULL) return;
  2074.     (*include)[i4]=true;
  2075.     if (i5 == NAME##_NULL) return;
  2076.     (*include)[i5]=true;
  2077.     if (i6 == NAME##_NULL) return;
  2078.     (*include)[i6]=true;
  2079.     if (i7 == NAME##_NULL) return;
  2080.     (*include)[i7]=true;
  2081.     if (i8 == NAME##_NULL) return;
  2082.     (*include)[i8]=true;
  2083.     if (i9 == NAME##_NULL) return;
  2084.     (*include)[i9]=true;
  2085.     if (i10 == NAME##_NULL) return;
  2086.     (*include)[i10]=true;
  2087.     if (i11 == NAME##_NULL) return;
  2088.     (*include)[i11]=true;
  2089.     if (i12 == NAME##_NULL) return;
  2090.     (*include)[i12]=true;
  2091.     if (i13 == NAME##_NULL) return;
  2092.     (*include)[i13]=true;
  2093.     if (i14 == NAME##_NULL) return;
  2094.     (*include)[i14]=true;
  2095.     if (i15 == NAME##_NULL) return;
  2096.     (*include)[i15]=true;
  2097.     if (i16 == NAME##_NULL) return;
  2098.     (*include)[i16]=true;
  2099.     if (i17 == NAME##_NULL) return;
  2100.     (*include)[i17]=true;
  2101.     if (i18 == NAME##_NULL) return;
  2102.     (*include)[i18]=true;
  2103.     if (i19 == NAME##_NULL) return;
  2104.     (*include)[i19]=true;
  2105.     if (i20 == NAME##_NULL) return;
  2106.     (*include)[i20]=true;
  2107.     if (i21 == NAME##_NULL) return;
  2108.     (*include)[i21]=true;
  2109.     if (i22 == NAME##_NULL) return;
  2110.     (*include)[i22]=true;
  2111.     if (i23 == NAME##_NULL) return;
  2112.     (*include)[i23]=true;
  2113.     if (i24 == NAME##_NULL) return;
  2114.     (*include)[i24]=true;
  2115.     if (i25 == NAME##_NULL) return;
  2116.     (*include)[i25]=true;
  2117.     if (i26 == NAME##_NULL) return;
  2118.     (*include)[i26]=true;
  2119.   }
  2120.   template <class Manip>
  2121.   NAME##_cus_equal_list<Manip>::NAME##_cus_equal_list
  2122.   (const NAME *o, cchar *d, cchar *c, Manip m, bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18, bool i19, bool i20, bool i21, bool i22, bool i23, bool i24, bool i25, bool i26) { 
  2123.     delem = d;
  2124.     comp = c;
  2125.     manip = m;
  2126.     del_vector = true; 
  2127.     obj = o; 
  2128.     include = new vector<bool>(26, false); 
  2129.     if (i1) (*include)[0]=true;
  2130.     if (i2) (*include)[1]=true;
  2131.     if (i3) (*include)[2]=true;
  2132.     if (i4) (*include)[3]=true;
  2133.     if (i5) (*include)[4]=true;
  2134.     if (i6) (*include)[5]=true;
  2135.     if (i7) (*include)[6]=true;
  2136.     if (i8) (*include)[7]=true;
  2137.     if (i9) (*include)[8]=true;
  2138.     if (i10) (*include)[9]=true;
  2139.     if (i11) (*include)[10]=true;
  2140.     if (i12) (*include)[11]=true;
  2141.     if (i13) (*include)[12]=true;
  2142.     if (i14) (*include)[13]=true;
  2143.     if (i15) (*include)[14]=true;
  2144.     if (i16) (*include)[15]=true;
  2145.     if (i17) (*include)[16]=true;
  2146.     if (i18) (*include)[17]=true;
  2147.     if (i19) (*include)[18]=true;
  2148.     if (i20) (*include)[19]=true;
  2149.     if (i21) (*include)[20]=true;
  2150.     if (i22) (*include)[21]=true;
  2151.     if (i23) (*include)[22]=true;
  2152.     if (i24) (*include)[23]=true;
  2153.     if (i25) (*include)[24]=true;
  2154.     if (i26) (*include)[25]=true;
  2155.   } 
  2156.   template <class Manip>
  2157.   NAME##_cus_equal_list<Manip>::NAME##_cus_equal_list
  2158.   (const NAME *o, cchar *d, cchar *c, Manip m, ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18, ##NAME##_enum i19, ##NAME##_enum i20, ##NAME##_enum i21, ##NAME##_enum i22, ##NAME##_enum i23, ##NAME##_enum i24, ##NAME##_enum i25, ##NAME##_enum i26) { 
  2159.     delem = d;
  2160.     comp = c;
  2161.     manip = m;
  2162.     del_vector = true; 
  2163.     obj = o; 
  2164.     include = new vector<bool>(26, false); 
  2165.     if (i1 == NAME##_NULL) return;
  2166.     (*include)[i1]=true;
  2167.     if (i2 == NAME##_NULL) return;
  2168.     (*include)[i2]=true;
  2169.     if (i3 == NAME##_NULL) return;
  2170.     (*include)[i3]=true;
  2171.     if (i4 == NAME##_NULL) return;
  2172.     (*include)[i4]=true;
  2173.     if (i5 == NAME##_NULL) return;
  2174.     (*include)[i5]=true;
  2175.     if (i6 == NAME##_NULL) return;
  2176.     (*include)[i6]=true;
  2177.     if (i7 == NAME##_NULL) return;
  2178.     (*include)[i7]=true;
  2179.     if (i8 == NAME##_NULL) return;
  2180.     (*include)[i8]=true;
  2181.     if (i9 == NAME##_NULL) return;
  2182.     (*include)[i9]=true;
  2183.     if (i10 == NAME##_NULL) return;
  2184.     (*include)[i10]=true;
  2185.     if (i11 == NAME##_NULL) return;
  2186.     (*include)[i11]=true;
  2187.     if (i12 == NAME##_NULL) return;
  2188.     (*include)[i12]=true;
  2189.     if (i13 == NAME##_NULL) return;
  2190.     (*include)[i13]=true;
  2191.     if (i14 == NAME##_NULL) return;
  2192.     (*include)[i14]=true;
  2193.     if (i15 == NAME##_NULL) return;
  2194.     (*include)[i15]=true;
  2195.     if (i16 == NAME##_NULL) return;
  2196.     (*include)[i16]=true;
  2197.     if (i17 == NAME##_NULL) return;
  2198.     (*include)[i17]=true;
  2199.     if (i18 == NAME##_NULL) return;
  2200.     (*include)[i18]=true;
  2201.     if (i19 == NAME##_NULL) return;
  2202.     (*include)[i19]=true;
  2203.     if (i20 == NAME##_NULL) return;
  2204.     (*include)[i20]=true;
  2205.     if (i21 == NAME##_NULL) return;
  2206.     (*include)[i21]=true;
  2207.     if (i22 == NAME##_NULL) return;
  2208.     (*include)[i22]=true;
  2209.     if (i23 == NAME##_NULL) return;
  2210.     (*include)[i23]=true;
  2211.     if (i24 == NAME##_NULL) return;
  2212.     (*include)[i24]=true;
  2213.     if (i25 == NAME##_NULL) return;
  2214.     (*include)[i25]=true;
  2215.     if (i26 == NAME##_NULL) return;
  2216.     (*include)[i26]=true;
  2217.   }
  2218.   template <class Manip>
  2219.   ostream& operator << (ostream& s, const NAME##_value_list<Manip>& obj) { 
  2220.     s << obj.manip << obj.obj->##I1 << obj.delem;
  2221.     s << obj.manip << obj.obj->##I2 << obj.delem;
  2222.     s << obj.manip << obj.obj->##I3 << obj.delem;
  2223.     s << obj.manip << obj.obj->##I4 << obj.delem;
  2224.     s << obj.manip << obj.obj->##I5 << obj.delem;
  2225.     s << obj.manip << obj.obj->##I6 << obj.delem;
  2226.     s << obj.manip << obj.obj->##I7 << obj.delem;
  2227.     s << obj.manip << obj.obj->##I8 << obj.delem;
  2228.     s << obj.manip << obj.obj->##I9 << obj.delem;
  2229.     s << obj.manip << obj.obj->##I10 << obj.delem;
  2230.     s << obj.manip << obj.obj->##I11 << obj.delem;
  2231.     s << obj.manip << obj.obj->##I12 << obj.delem;
  2232.     s << obj.manip << obj.obj->##I13 << obj.delem;
  2233.     s << obj.manip << obj.obj->##I14 << obj.delem;
  2234.     s << obj.manip << obj.obj->##I15 << obj.delem;
  2235.     s << obj.manip << obj.obj->##I16 << obj.delem;
  2236.     s << obj.manip << obj.obj->##I17 << obj.delem;
  2237.     s << obj.manip << obj.obj->##I18 << obj.delem;
  2238.     s << obj.manip << obj.obj->##I19 << obj.delem;
  2239.     s << obj.manip << obj.obj->##I20 << obj.delem;
  2240.     s << obj.manip << obj.obj->##I21 << obj.delem;
  2241.     s << obj.manip << obj.obj->##I22 << obj.delem;
  2242.     s << obj.manip << obj.obj->##I23 << obj.delem;
  2243.     s << obj.manip << obj.obj->##I24 << obj.delem;
  2244.     s << obj.manip << obj.obj->##I25 << obj.delem;
  2245.     s << obj.manip << obj.obj->##I26; 
  2246.     return s; 
  2247.   } 
  2248.   template <class Manip>
  2249.   ostream& operator << (ostream& s, const NAME##_field_list<Manip>& obj) { 
  2250.     s << obj.manip << obj.obj->names[0] << obj.delem;
  2251.     s << obj.manip << obj.obj->names[1] << obj.delem;
  2252.     s << obj.manip << obj.obj->names[2] << obj.delem;
  2253.     s << obj.manip << obj.obj->names[3] << obj.delem;
  2254.     s << obj.manip << obj.obj->names[4] << obj.delem;
  2255.     s << obj.manip << obj.obj->names[5] << obj.delem;
  2256.     s << obj.manip << obj.obj->names[6] << obj.delem;
  2257.     s << obj.manip << obj.obj->names[7] << obj.delem;
  2258.     s << obj.manip << obj.obj->names[8] << obj.delem;
  2259.     s << obj.manip << obj.obj->names[9] << obj.delem;
  2260.     s << obj.manip << obj.obj->names[10] << obj.delem;
  2261.     s << obj.manip << obj.obj->names[11] << obj.delem;
  2262.     s << obj.manip << obj.obj->names[12] << obj.delem;
  2263.     s << obj.manip << obj.obj->names[13] << obj.delem;
  2264.     s << obj.manip << obj.obj->names[14] << obj.delem;
  2265.     s << obj.manip << obj.obj->names[15] << obj.delem;
  2266.     s << obj.manip << obj.obj->names[16] << obj.delem;
  2267.     s << obj.manip << obj.obj->names[17] << obj.delem;
  2268.     s << obj.manip << obj.obj->names[18] << obj.delem;
  2269.     s << obj.manip << obj.obj->names[19] << obj.delem;
  2270.     s << obj.manip << obj.obj->names[20] << obj.delem;
  2271.     s << obj.manip << obj.obj->names[21] << obj.delem;
  2272.     s << obj.manip << obj.obj->names[22] << obj.delem;
  2273.     s << obj.manip << obj.obj->names[23] << obj.delem;
  2274.     s << obj.manip << obj.obj->names[24] << obj.delem;
  2275.     s << obj.manip << obj.obj->names[25]; 
  2276.     return s; 
  2277.   } 
  2278.   template <class Manip>
  2279.   ostream& operator << (ostream& s, const NAME##_equal_list<Manip>& obj) { 
  2280.     s << obj.obj->names[0] << obj.comp << obj.manip << obj.obj->##I1 << obj.delem;
  2281.     s << obj.obj->names[1] << obj.comp << obj.manip << obj.obj->##I2 << obj.delem;
  2282.     s << obj.obj->names[2] << obj.comp << obj.manip << obj.obj->##I3 << obj.delem;
  2283.     s << obj.obj->names[3] << obj.comp << obj.manip << obj.obj->##I4 << obj.delem;
  2284.     s << obj.obj->names[4] << obj.comp << obj.manip << obj.obj->##I5 << obj.delem;
  2285.     s << obj.obj->names[5] << obj.comp << obj.manip << obj.obj->##I6 << obj.delem;
  2286.     s << obj.obj->names[6] << obj.comp << obj.manip << obj.obj->##I7 << obj.delem;
  2287.     s << obj.obj->names[7] << obj.comp << obj.manip << obj.obj->##I8 << obj.delem;
  2288.     s << obj.obj->names[8] << obj.comp << obj.manip << obj.obj->##I9 << obj.delem;
  2289.     s << obj.obj->names[9] << obj.comp << obj.manip << obj.obj->##I10 << obj.delem;
  2290.     s << obj.obj->names[10] << obj.comp << obj.manip << obj.obj->##I11 << obj.delem;
  2291.     s << obj.obj->names[11] << obj.comp << obj.manip << obj.obj->##I12 << obj.delem;
  2292.     s << obj.obj->names[12] << obj.comp << obj.manip << obj.obj->##I13 << obj.delem;
  2293.     s << obj.obj->names[13] << obj.comp << obj.manip << obj.obj->##I14 << obj.delem;
  2294.     s << obj.obj->names[14] << obj.comp << obj.manip << obj.obj->##I15 << obj.delem;
  2295.     s << obj.obj->names[15] << obj.comp << obj.manip << obj.obj->##I16 << obj.delem;
  2296.     s << obj.obj->names[16] << obj.comp << obj.manip << obj.obj->##I17 << obj.delem;
  2297.     s << obj.obj->names[17] << obj.comp << obj.manip << obj.obj->##I18 << obj.delem;
  2298.     s << obj.obj->names[18] << obj.comp << obj.manip << obj.obj->##I19 << obj.delem;
  2299.     s << obj.obj->names[19] << obj.comp << obj.manip << obj.obj->##I20 << obj.delem;
  2300.     s << obj.obj->names[20] << obj.comp << obj.manip << obj.obj->##I21 << obj.delem;
  2301.     s << obj.obj->names[21] << obj.comp << obj.manip << obj.obj->##I22 << obj.delem;
  2302.     s << obj.obj->names[22] << obj.comp << obj.manip << obj.obj->##I23 << obj.delem;
  2303.     s << obj.obj->names[23] << obj.comp << obj.manip << obj.obj->##I24 << obj.delem;
  2304.     s << obj.obj->names[24] << obj.comp << obj.manip << obj.obj->##I25 << obj.delem;
  2305.     s << obj.obj->names[25] << obj.comp << obj.manip << obj.obj->##I26; 
  2306.     return s; 
  2307.   } 
  2308.   template <class Manip>
  2309.   ostream& operator << (ostream& s, const NAME##_cus_value_list<Manip>& obj) { 
  2310.     bool before = false; 
  2311.     if ((*obj.include)[0]) { 
  2312.       s << obj.manip << obj.obj->##I1;
  2313.       before = true; 
  2314.      } 
  2315.     if ((*obj.include)[1]) { 
  2316.       if (before) s << obj.delem;
  2317.       s << obj.manip << obj.obj->##I2;
  2318.       before = true; 
  2319.      } 
  2320.     if ((*obj.include)[2]) { 
  2321.       if (before) s << obj.delem;
  2322.       s << obj.manip << obj.obj->##I3;
  2323.       before = true; 
  2324.      } 
  2325.     if ((*obj.include)[3]) { 
  2326.       if (before) s << obj.delem;
  2327.       s << obj.manip << obj.obj->##I4;
  2328.       before = true; 
  2329.      } 
  2330.     if ((*obj.include)[4]) { 
  2331.       if (before) s << obj.delem;
  2332.       s << obj.manip << obj.obj->##I5;
  2333.       before = true; 
  2334.      } 
  2335.     if ((*obj.include)[5]) { 
  2336.       if (before) s << obj.delem;
  2337.       s << obj.manip << obj.obj->##I6;
  2338.       before = true; 
  2339.      } 
  2340.     if ((*obj.include)[6]) { 
  2341.       if (before) s << obj.delem;
  2342.       s << obj.manip << obj.obj->##I7;
  2343.       before = true; 
  2344.      } 
  2345.     if ((*obj.include)[7]) { 
  2346.       if (before) s << obj.delem;
  2347.       s << obj.manip << obj.obj->##I8;
  2348.       before = true; 
  2349.      } 
  2350.     if ((*obj.include)[8]) { 
  2351.       if (before) s << obj.delem;
  2352.       s << obj.manip << obj.obj->##I9;
  2353.       before = true; 
  2354.      } 
  2355.     if ((*obj.include)[9]) { 
  2356.       if (before) s << obj.delem;
  2357.       s << obj.manip << obj.obj->##I10;
  2358.       before = true; 
  2359.      } 
  2360.     if ((*obj.include)[10]) { 
  2361.       if (before) s << obj.delem;
  2362.       s << obj.manip << obj.obj->##I11;
  2363.       before = true; 
  2364.      } 
  2365.     if ((*obj.include)[11]) { 
  2366.       if (before) s << obj.delem;
  2367.       s << obj.manip << obj.obj->##I12;
  2368.       before = true; 
  2369.      } 
  2370.     if ((*obj.include)[12]) { 
  2371.       if (before) s << obj.delem;
  2372.       s << obj.manip << obj.obj->##I13;
  2373.       before = true; 
  2374.      } 
  2375.     if ((*obj.include)[13]) { 
  2376.       if (before) s << obj.delem;
  2377.       s << obj.manip << obj.obj->##I14;
  2378.       before = true; 
  2379.      } 
  2380.     if ((*obj.include)[14]) { 
  2381.       if (before) s << obj.delem;
  2382.       s << obj.manip << obj.obj->##I15;
  2383.       before = true; 
  2384.      } 
  2385.     if ((*obj.include)[15]) { 
  2386.       if (before) s << obj.delem;
  2387.       s << obj.manip << obj.obj->##I16;
  2388.       before = true; 
  2389.      } 
  2390.     if ((*obj.include)[16]) { 
  2391.       if (before) s << obj.delem;
  2392.       s << obj.manip << obj.obj->##I17;
  2393.       before = true; 
  2394.      } 
  2395.     if ((*obj.include)[17]) { 
  2396.       if (before) s << obj.delem;
  2397.       s << obj.manip << obj.obj->##I18;
  2398.       before = true; 
  2399.      } 
  2400.     if ((*obj.include)[18]) { 
  2401.       if (before) s << obj.delem;
  2402.       s << obj.manip << obj.obj->##I19;
  2403.       before = true; 
  2404.      } 
  2405.     if ((*obj.include)[19]) { 
  2406.       if (before) s << obj.delem;
  2407.       s << obj.manip << obj.obj->##I20;
  2408.       before = true; 
  2409.      } 
  2410.     if ((*obj.include)[20]) { 
  2411.       if (before) s << obj.delem;
  2412.       s << obj.manip << obj.obj->##I21;
  2413.       before = true; 
  2414.      } 
  2415.     if ((*obj.include)[21]) { 
  2416.       if (before) s << obj.delem;
  2417.       s << obj.manip << obj.obj->##I22;
  2418.       before = true; 
  2419.      } 
  2420.     if ((*obj.include)[22]) { 
  2421.       if (before) s << obj.delem;
  2422.       s << obj.manip << obj.obj->##I23;
  2423.       before = true; 
  2424.      } 
  2425.     if ((*obj.include)[23]) { 
  2426.       if (before) s << obj.delem;
  2427.       s << obj.manip << obj.obj->##I24;
  2428.       before = true; 
  2429.      } 
  2430.     if ((*obj.include)[24]) { 
  2431.       if (before) s << obj.delem;
  2432.       s << obj.manip << obj.obj->##I25;
  2433.       before = true; 
  2434.      } 
  2435.     if ((*obj.include)[25]) { 
  2436.       if (before) s << obj.delem;
  2437.       s << obj.manip << obj.obj->##I26;
  2438.      } 
  2439.     return s; 
  2440.   } 
  2441.   template <class Manip>
  2442.   ostream& operator << (ostream& s, const NAME##_cus_field_list<Manip>& obj) { 
  2443.     bool before = false; 
  2444.     if ((*obj.include)[0]) { 
  2445.       s << obj.manip << obj.obj->names[0];
  2446.       before = true; 
  2447.      } 
  2448.     if ((*obj.include)[1]) { 
  2449.       if (before) s << obj.delem;
  2450.       s << obj.manip << obj.obj->names[1];
  2451.       before = true; 
  2452.      } 
  2453.     if ((*obj.include)[2]) { 
  2454.       if (before) s << obj.delem;
  2455.       s << obj.manip << obj.obj->names[2];
  2456.       before = true; 
  2457.      } 
  2458.     if ((*obj.include)[3]) { 
  2459.       if (before) s << obj.delem;
  2460.       s << obj.manip << obj.obj->names[3];
  2461.       before = true; 
  2462.      } 
  2463.     if ((*obj.include)[4]) { 
  2464.       if (before) s << obj.delem;
  2465.       s << obj.manip << obj.obj->names[4];
  2466.       before = true; 
  2467.      } 
  2468.     if ((*obj.include)[5]) { 
  2469.       if (before) s << obj.delem;
  2470.       s << obj.manip << obj.obj->names[5];
  2471.       before = true; 
  2472.      } 
  2473.     if ((*obj.include)[6]) { 
  2474.       if (before) s << obj.delem;
  2475.       s << obj.manip << obj.obj->names[6];
  2476.       before = true; 
  2477.      } 
  2478.     if ((*obj.include)[7]) { 
  2479.       if (before) s << obj.delem;
  2480.       s << obj.manip << obj.obj->names[7];
  2481.       before = true; 
  2482.      } 
  2483.     if ((*obj.include)[8]) { 
  2484.       if (before) s << obj.delem;
  2485.       s << obj.manip << obj.obj->names[8];
  2486.       before = true; 
  2487.      } 
  2488.     if ((*obj.include)[9]) { 
  2489.       if (before) s << obj.delem;
  2490.       s << obj.manip << obj.obj->names[9];
  2491.       before = true; 
  2492.      } 
  2493.     if ((*obj.include)[10]) { 
  2494.       if (before) s << obj.delem;
  2495.       s << obj.manip << obj.obj->names[10];
  2496.       before = true; 
  2497.      } 
  2498.     if ((*obj.include)[11]) { 
  2499.       if (before) s << obj.delem;
  2500.       s << obj.manip << obj.obj->names[11];
  2501.       before = true; 
  2502.      } 
  2503.     if ((*obj.include)[12]) { 
  2504.       if (before) s << obj.delem;
  2505.       s << obj.manip << obj.obj->names[12];
  2506.       before = true; 
  2507.      } 
  2508.     if ((*obj.include)[13]) { 
  2509.       if (before) s << obj.delem;
  2510.       s << obj.manip << obj.obj->names[13];
  2511.       before = true; 
  2512.      } 
  2513.     if ((*obj.include)[14]) { 
  2514.       if (before) s << obj.delem;
  2515.       s << obj.manip << obj.obj->names[14];
  2516.       before = true; 
  2517.      } 
  2518.     if ((*obj.include)[15]) { 
  2519.       if (before) s << obj.delem;
  2520.       s << obj.manip << obj.obj->names[15];
  2521.       before = true; 
  2522.      } 
  2523.     if ((*obj.include)[16]) { 
  2524.       if (before) s << obj.delem;
  2525.       s << obj.manip << obj.obj->names[16];
  2526.       before = true; 
  2527.      } 
  2528.     if ((*obj.include)[17]) { 
  2529.       if (before) s << obj.delem;
  2530.       s << obj.manip << obj.obj->names[17];
  2531.       before = true; 
  2532.      } 
  2533.     if ((*obj.include)[18]) { 
  2534.       if (before) s << obj.delem;
  2535.       s << obj.manip << obj.obj->names[18];
  2536.       before = true; 
  2537.      } 
  2538.     if ((*obj.include)[19]) { 
  2539.       if (before) s << obj.delem;
  2540.       s << obj.manip << obj.obj->names[19];
  2541.       before = true; 
  2542.      } 
  2543.     if ((*obj.include)[20]) { 
  2544.       if (before) s << obj.delem;
  2545.       s << obj.manip << obj.obj->names[20];
  2546.       before = true; 
  2547.      } 
  2548.     if ((*obj.include)[21]) { 
  2549.       if (before) s << obj.delem;
  2550.       s << obj.manip << obj.obj->names[21];
  2551.       before = true; 
  2552.      } 
  2553.     if ((*obj.include)[22]) { 
  2554.       if (before) s << obj.delem;
  2555.       s << obj.manip << obj.obj->names[22];
  2556.       before = true; 
  2557.      } 
  2558.     if ((*obj.include)[23]) { 
  2559.       if (before) s << obj.delem;
  2560.       s << obj.manip << obj.obj->names[23];
  2561.       before = true; 
  2562.      } 
  2563.     if ((*obj.include)[24]) { 
  2564.       if (before) s << obj.delem;
  2565.       s << obj.manip << obj.obj->names[24];
  2566.       before = true; 
  2567.      } 
  2568.     if ((*obj.include)[25]) { 
  2569.       if (before) s << obj.delem;
  2570.       s << obj.manip << obj.obj->names[25];
  2571.      } 
  2572.     return s; 
  2573.   } 
  2574.   template <class Manip>
  2575.   ostream& operator << (ostream& s, const NAME##_cus_equal_list<Manip>& obj) { 
  2576.     bool before = false; 
  2577.     if ((*obj.include)[0]) { 
  2578.       s << obj.obj->names[0] << obj.comp << obj.manip << obj.obj->##I1;
  2579.       before = true; 
  2580.      } 
  2581.     if ((*obj.include)[1]) { 
  2582.       if (before) s << obj.delem;
  2583.       s << obj.obj->names[1] << obj.comp << obj.manip << obj.obj->##I2;
  2584.       before = true; 
  2585.      } 
  2586.     if ((*obj.include)[2]) { 
  2587.       if (before) s << obj.delem;
  2588.       s << obj.obj->names[2] << obj.comp << obj.manip << obj.obj->##I3;
  2589.       before = true; 
  2590.      } 
  2591.     if ((*obj.include)[3]) { 
  2592.       if (before) s << obj.delem;
  2593.       s << obj.obj->names[3] << obj.comp << obj.manip << obj.obj->##I4;
  2594.       before = true; 
  2595.      } 
  2596.     if ((*obj.include)[4]) { 
  2597.       if (before) s << obj.delem;
  2598.       s << obj.obj->names[4] << obj.comp << obj.manip << obj.obj->##I5;
  2599.       before = true; 
  2600.      } 
  2601.     if ((*obj.include)[5]) { 
  2602.       if (before) s << obj.delem;
  2603.       s << obj.obj->names[5] << obj.comp << obj.manip << obj.obj->##I6;
  2604.       before = true; 
  2605.      } 
  2606.     if ((*obj.include)[6]) { 
  2607.       if (before) s << obj.delem;
  2608.       s << obj.obj->names[6] << obj.comp << obj.manip << obj.obj->##I7;
  2609.       before = true; 
  2610.      } 
  2611.     if ((*obj.include)[7]) { 
  2612.       if (before) s << obj.delem;
  2613.       s << obj.obj->names[7] << obj.comp << obj.manip << obj.obj->##I8;
  2614.       before = true; 
  2615.      } 
  2616.     if ((*obj.include)[8]) { 
  2617.       if (before) s << obj.delem;
  2618.       s << obj.obj->names[8] << obj.comp << obj.manip << obj.obj->##I9;
  2619.       before = true; 
  2620.      } 
  2621.     if ((*obj.include)[9]) { 
  2622.       if (before) s << obj.delem;
  2623.       s << obj.obj->names[9] << obj.comp << obj.manip << obj.obj->##I10;
  2624.       before = true; 
  2625.      } 
  2626.     if ((*obj.include)[10]) { 
  2627.       if (before) s << obj.delem;
  2628.       s << obj.obj->names[10] << obj.comp << obj.manip << obj.obj->##I11;
  2629.       before = true; 
  2630.      } 
  2631.     if ((*obj.include)[11]) { 
  2632.       if (before) s << obj.delem;
  2633.       s << obj.obj->names[11] << obj.comp << obj.manip << obj.obj->##I12;
  2634.       before = true; 
  2635.      } 
  2636.     if ((*obj.include)[12]) { 
  2637.       if (before) s << obj.delem;
  2638.       s << obj.obj->names[12] << obj.comp << obj.manip << obj.obj->##I13;
  2639.       before = true; 
  2640.      } 
  2641.     if ((*obj.include)[13]) { 
  2642.       if (before) s << obj.delem;
  2643.       s << obj.obj->names[13] << obj.comp << obj.manip << obj.obj->##I14;
  2644.       before = true; 
  2645.      } 
  2646.     if ((*obj.include)[14]) { 
  2647.       if (before) s << obj.delem;
  2648.       s << obj.obj->names[14] << obj.comp << obj.manip << obj.obj->##I15;
  2649.       before = true; 
  2650.      } 
  2651.     if ((*obj.include)[15]) { 
  2652.       if (before) s << obj.delem;
  2653.       s << obj.obj->names[15] << obj.comp << obj.manip << obj.obj->##I16;
  2654.       before = true; 
  2655.      } 
  2656.     if ((*obj.include)[16]) { 
  2657.       if (before) s << obj.delem;
  2658.       s << obj.obj->names[16] << obj.comp << obj.manip << obj.obj->##I17;
  2659.       before = true; 
  2660.      } 
  2661.     if ((*obj.include)[17]) { 
  2662.       if (before) s << obj.delem;
  2663.       s << obj.obj->names[17] << obj.comp << obj.manip << obj.obj->##I18;
  2664.       before = true; 
  2665.      } 
  2666.     if ((*obj.include)[18]) { 
  2667.       if (before) s << obj.delem;
  2668.       s << obj.obj->names[18] << obj.comp << obj.manip << obj.obj->##I19;
  2669.       before = true; 
  2670.      } 
  2671.     if ((*obj.include)[19]) { 
  2672.       if (before) s << obj.delem;
  2673.       s << obj.obj->names[19] << obj.comp << obj.manip << obj.obj->##I20;
  2674.       before = true; 
  2675.      } 
  2676.     if ((*obj.include)[20]) { 
  2677.       if (before) s << obj.delem;
  2678.       s << obj.obj->names[20] << obj.comp << obj.manip << obj.obj->##I21;
  2679.       before = true; 
  2680.      } 
  2681.     if ((*obj.include)[21]) { 
  2682.       if (before) s << obj.delem;
  2683.       s << obj.obj->names[21] << obj.comp << obj.manip << obj.obj->##I22;
  2684.       before = true; 
  2685.      } 
  2686.     if ((*obj.include)[22]) { 
  2687.       if (before) s << obj.delem;
  2688.       s << obj.obj->names[22] << obj.comp << obj.manip << obj.obj->##I23;
  2689.       before = true; 
  2690.      } 
  2691.     if ((*obj.include)[23]) { 
  2692.       if (before) s << obj.delem;
  2693.       s << obj.obj->names[23] << obj.comp << obj.manip << obj.obj->##I24;
  2694.       before = true; 
  2695.      } 
  2696.     if ((*obj.include)[24]) { 
  2697.       if (before) s << obj.delem;
  2698.       s << obj.obj->names[24] << obj.comp << obj.manip << obj.obj->##I25;
  2699.       before = true; 
  2700.      } 
  2701.     if ((*obj.include)[25]) { 
  2702.       if (before) s << obj.delem;
  2703.       s << obj.obj->names[25] << obj.comp << obj.manip << obj.obj->##I26;
  2704.      } 
  2705.     return s; 
  2706.   } 
  2707.   template <class Manip>
  2708.   inline NAME##_value_list<Manip> NAME##::value_list(cchar *d, Manip m) const { 
  2709.     return NAME##_value_list<Manip> (this, d, m); 
  2710.   } 
  2711.   template <class Manip>
  2712.   inline NAME##_field_list<Manip> NAME##::field_list(cchar *d, Manip m) const { 
  2713.     return NAME##_field_list<Manip> (this, d, m); 
  2714.   } 
  2715.   template <class Manip>
  2716.   inline NAME##_equal_list<Manip> NAME##::equal_list(cchar *d, cchar *c, Manip m) const { 
  2717.     return NAME##_equal_list<Manip> (this, d, c, m); 
  2718.   } 
  2719.   template <class Manip>
  2720.   inline NAME##_cus_value_list<Manip> NAME##::value_list(cchar *d, Manip m,
  2721.        bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18, bool i19, bool i20, bool i21, bool i22, bool i23, bool i24, bool i25, bool i26) const {
  2722.     return NAME##_cus_value_list<Manip> (this, d, m, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25, i26); 
  2723.   } 
  2724.   template <class Manip>
  2725.   inline NAME##_cus_field_list<Manip> NAME##::field_list(cchar *d, Manip m,
  2726.  bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18, bool i19, bool i20, bool i21, bool i22, bool i23, bool i24, bool i25, bool i26) const { 
  2727.     return NAME##_cus_field_list<Manip> (this, d, m, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25, i26); 
  2728.   } 
  2729.   template <class Manip>
  2730.   inline NAME##_cus_equal_list<Manip> NAME##::equal_list(cchar *d, cchar *c, Manip m,
  2731.  bool i1, bool i2, bool i3, bool i4, bool i5, bool i6, bool i7, bool i8, bool i9, bool i10, bool i11, bool i12, bool i13, bool i14, bool i15, bool i16, bool i17, bool i18, bool i19, bool i20, bool i21, bool i22, bool i23, bool i24, bool i25, bool i26) const { 
  2732.     return NAME##_cus_equal_list<Manip> (this, d, c, m, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25, i26); 
  2733.   } 
  2734.   template <class Manip>
  2735.   inline NAME##_cus_value_list<Manip> NAME##::value_list(cchar *d, Manip m,
  2736.        ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18, ##NAME##_enum i19, ##NAME##_enum i20, ##NAME##_enum i21, ##NAME##_enum i22, ##NAME##_enum i23, ##NAME##_enum i24, ##NAME##_enum i25, ##NAME##_enum i26) const { 
  2737.     return NAME##_cus_value_list<Manip> (this, d, m, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25, i26); 
  2738.   } 
  2739.   template <class Manip>
  2740.   inline NAME##_cus_field_list<Manip> NAME##::field_list(cchar *d, Manip m,
  2741.  ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18, ##NAME##_enum i19, ##NAME##_enum i20, ##NAME##_enum i21, ##NAME##_enum i22, ##NAME##_enum i23, ##NAME##_enum i24, ##NAME##_enum i25, ##NAME##_enum i26) const {
  2742.     return NAME##_cus_field_list<Manip> (this, d, m, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25, i26); 
  2743.   } 
  2744.   template <class Manip>
  2745.   inline NAME##_cus_equal_list<Manip> NAME##::equal_list(cchar *d, cchar *c, Manip m, 
  2746.  ##NAME##_enum i1, ##NAME##_enum i2, ##NAME##_enum i3, ##NAME##_enum i4, ##NAME##_enum i5, ##NAME##_enum i6, ##NAME##_enum i7, ##NAME##_enum i8, ##NAME##_enum i9, ##NAME##_enum i10, ##NAME##_enum i11, ##NAME##_enum i12, ##NAME##_enum i13, ##NAME##_enum i14, ##NAME##_enum i15, ##NAME##_enum i16, ##NAME##_enum i17, ##NAME##_enum i18, ##NAME##_enum i19, ##NAME##_enum i20, ##NAME##_enum i21, ##NAME##_enum i22, ##NAME##_enum i23, ##NAME##_enum i24, ##NAME##_enum i25, ##NAME##_enum i26) const { 
  2747.     return NAME##_cus_equal_list<Manip> (this, d, c, m, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23, i24, i25, i26); 
  2748.   } 
  2749.   template <class Manip>
  2750.   inline NAME##_cus_value_list<Manip> 
  2751.   NAME##::value_list(cchar *d, Manip m, sql_cmp_type sc) const {
  2752.     sql_compare_type_def_##CMP (NAME, value, NUM);
  2753.   }
  2754.   template <class Manip>
  2755.   inline NAME##_cus_field_list<Manip> 
  2756.   NAME##::field_list(cchar *d, Manip m, sql_cmp_type sc) const {
  2757.     sql_compare_type_def_##CMP (NAME, field, NUM);
  2758.   }
  2759.   template <class Manip>
  2760.   inline NAME##_cus_equal_list<Manip> 
  2761.   NAME##::equal_list(cchar *d, cchar *c, Manip m, sql_cmp_type sc) const {
  2762.     sql_compare_type_defe_##CMP (NAME, equal, NUM);
  2763.   }
  2764.   template <sql_dummy_type dummy> 
  2765.   void populate_##NAME (NAME *s, const MysqlRow &row) { 
  2766.     s->##I1 = row[ O1 ];
  2767.     s->##I2 = row[ O2 ];
  2768.     s->##I3 = row[ O3 ];
  2769.     s->##I4 = row[ O4 ];
  2770.     s->##I5 = row[ O5 ];
  2771.     s->##I6 = row[ O6 ];
  2772.     s->##I7 = row[ O7 ];
  2773.     s->##I8 = row[ O8 ];
  2774.     s->##I9 = row[ O9 ];
  2775.     s->##I10 = row[ O10 ];
  2776.     s->##I11 = row[ O11 ];
  2777.     s->##I12 = row[ O12 ];
  2778.     s->##I13 = row[ O13 ];
  2779.     s->##I14 = row[ O14 ];
  2780.     s->##I15 = row[ O15 ];
  2781.     s->##I16 = row[ O16 ];
  2782.     s->##I17 = row[ O17 ];
  2783.     s->##I18 = row[ O18 ];
  2784.     s->##I19 = row[ O19 ];
  2785.     s->##I20 = row[ O20 ];
  2786.     s->##I21 = row[ O21 ];
  2787.     s->##I22 = row[ O22 ];
  2788.     s->##I23 = row[ O23 ];
  2789.     s->##I24 = row[ O24 ];
  2790.     s->##I25 = row[ O25 ];
  2791.     s->##I26 = row[ O26 ];
  2792.   } 
  2793.   inline NAME##::##NAME (const MysqlRow &row) 
  2794.                                         {populate_##NAME##<sql_dummy>(this, row);}
  2795.   inline void NAME##::set (const MysqlRow &row)
  2796.                                         {populate_##NAME##<sql_dummy>(this, row);}
  2797.   sql_COMPARE__##CMP##(NAME, I1, I2, I3, I4, I5, I6, I7, I8, I9, I10, I11, I12, I13, I14, I15, I16, I17, I18, I19, I20, I21, I22, I23, I24, I25, I26 )
  2798. #define sql_create_basic_26(NAME, CMP, CONTR, T1, I1, T2, I2, T3, I3, T4, I4, T5, I5, T6, I6, T7, I7, T8, I8, T9, I9, T10, I10, T11, I11, T12, I12, T13, I13, T14, I14, T15, I15, T16, I16, T17, I17, T18, I18, T19, I19, T20, I20, T21, I21, T22, I22, T23, I23, T24, I24, T25, I25, T26, I26) 
  2799.   sql_create_basic_c_order_26(NAME, CMP, CONTR, T1, I1, 0, T2, I2, 1, T3, I3, 2, T4, I4, 3, T5, I5, 4, T6, I6, 5, T7, I7, 6, T8, I8, 7, T9, I9, 8, T10, I10, 9, T11, I11, 10, T12, I12, 11, T13, I13, 12, T14, I14, 13, T15, I15, 14, T16, I16, 15, T17, I17, 16, T18, I18, 17, T19, I19, 18, T20, I20, 19, T21, I21, 20, T22, I22, 21, T23, I23, 22, T24, I24, 23, T25, I25, 24, T26, I26, 25)
  2800. #define sql_create_26(NAME, CMP, CONTR, T1, I1, T2, I2, T3, I3, T4, I4, T5, I5, T6, I6, T7, I7, T8, I8, T9, I9, T10, I10, T11, I11, T12, I12, T13, I13, T14, I14, T15, I15, T16, I16, T17, I17, T18, I18, T19, I19, T20, I20, T21, I21, T22, I22, T23, I23, T24, I24, T25, I25, T26, I26) 
  2801.   sql_create_complete_26(NAME, CMP, CONTR, T1, I1, #I1, 0, T2, I2, #I2, 1, T3, I3, #I3, 2, T4, I4, #I4, 3, T5, I5, #I5, 4, T6, I6, #I6, 5, T7, I7, #I7, 6, T8, I8, #I8, 7, T9, I9, #I9, 8, T10, I10, #I10, 9, T11, I11, #I11, 10, T12, I12, #I12, 11, T13, I13, #I13, 12, T14, I14, #I14, 13, T15, I15, #I15, 14, T16, I16, #I16, 15, T17, I17, #I17, 16, T18, I18, #I18, 17, T19, I19, #I19, 18, T20, I20, #I20, 19, T21, I21, #I21, 20, T22, I22, #I22, 21, T23, I23, #I23, 22, T24, I24, #I24, 23, T25, I25, #I25, 24, T26, I26, #I26, 25) 
  2802. #define sql_create_c_order_26(NAME, CMP, CONTR, T1, I1, O1, T2, I2, O2, T3, I3, O3, T4, I4, O4, T5, I5, O5, T6, I6, O6, T7, I7, O7, T8, I8, O8, T9, I9, O9, T10, I10, O10, T11, I11, O11, T12, I12, O12, T13, I13, O13, T14, I14, O14, T15, I15, O15, T16, I16, O16, T17, I17, O17, T18, I18, O18, T19, I19, O19, T20, I20, O20, T21, I21, O21, T22, I22, O22, T23, I23, O23, T24, I24, O24, T25, I25, O25, T26, I26, O26) 
  2803.   sql_create_complete_26(NAME, CMP, CONTR, T1, I1, #I1, O1, T2, I2, #I2, O2, T3, I3, #I3, O3, T4, I4, #I4, O4, T5, I5, #I5, O5, T6, I6, #I6, O6, T7, I7, #I7, O7, T8, I8, #I8, O8, T9, I9, #I9, O9, T10, I10, #I10, O10, T11, I11, #I11, O11, T12, I12, #I12, O12, T13, I13, #I13, O13, T14, I14, #I14, O14, T15, I15, #I15, O15, T16, I16, #I16, O16, T17, I17, #I17, O17, T18, I18, #I18, O18, T19, I19, #I19, O19, T20, I20, #I20, O20, T21, I21, #I21, O21, T22, I22, #I22, O22, T23, I23, #I23, O23, T24, I24, #I24, O24, T25, I25, #I25, O25, T26, I26, #I26, O26)
  2804. #define sql_create_c_names_26(NAME, CMP, CONTR, T1, I1, N1, T2, I2, N2, T3, I3, N3, T4, I4, N4, T5, I5, N5, T6, I6, N6, T7, I7, N7, T8, I8, N8, T9, I9, N9, T10, I10, N10, T11, I11, N11, T12, I12, N12, T13, I13, N13, T14, I14, N14, T15, I15, N15, T16, I16, N16, T17, I17, N17, T18, I18, N18, T19, I19, N19, T20, I20, N20, T21, I21, N21, T22, I22, N22, T23, I23, N23, T24, I24, N24, T25, I25, N25, T26, I26, N26) 
  2805.   sql_create_complete_26(NAME, CMP, CONTR, T1, I1, N1, 0, T2, I2, N2, 1, T3, I3, N3, 2, T4, I4, N4, 3, T5, I5, N5, 4, T6, I6, N6, 5, T7, I7, N7, 6, T8, I8, N8, 7, T9, I9, N9, 8, T10, I10, N10, 9, T11, I11, N11, 10, T12, I12, N12, 11, T13, I13, N13, 12, T14, I14, N14, 13, T15, I15, N15, 14, T16, I16, N16, 15, T17, I17, N17, 16, T18, I18, N18, 17, T19, I19, N19, 18, T20, I20, N20, 19, T21, I21, N21, 20, T22, I22, N22, 21, T23, I23, N23, 22, T24, I24, N24, 23, T25, I25, N25, 24, T26, I26, N26, 25)
  2806. // ---------------------------------------------------
  2807. //                  End Create 26
  2808. // ---------------------------------------------------