- Rebuilt parser files
authormichael <michael@82007160-df01-0410-b94d-b575c5fd34c7>
Thu, 25 Jun 2015 15:58:33 +0000 (15:58 +0000)
committermichael <michael@82007160-df01-0410-b94d-b575c5fd34c7>
Thu, 25 Jun 2015 15:58:33 +0000 (15:58 +0000)
git-svn-id: svn://svn.ircd-hybrid.org/svnroot/hopm/branches/1.0.x@6202 82007160-df01-0410-b94d-b575c5fd34c7

src/config-lexer.c
src/config-parser.c
src/config-parser.h

index fa8af87c1d1d0986f429b317d97779cf6386da28..f387bf9a257dec0186adc8068fb55ab4c3e78eda 100644 (file)
@@ -365,8 +365,8 @@ static void yy_fatal_error (yyconst char msg[]  );
        *yy_cp = '\0'; \
        (yy_c_buf_p) = yy_cp;
 
-#define YY_NUM_RULES 94
-#define YY_END_OF_BUFFER 95
+#define YY_NUM_RULES 95
+#define YY_END_OF_BUFFER 96
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -374,50 +374,52 @@ struct yy_trans_info
        flex_int32_t yy_verify;
        flex_int32_t yy_nxt;
        };
-static yyconst flex_int16_t yy_accept[386] =
+static yyconst flex_int16_t yy_accept[393] =
     {   0,
-       92,   92,   95,   93,   92,   91,   93,    2,   93,   84,
-       93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
-       93,   93,   93,   93,   93,   93,   93,   93,   93,   93,
-       92,   91,    0,    3,    2,    1,    2,   84,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   13,
-        0,    0,    0,    0,   71,    0,    0,    0,    0,   76,
-        0,    0,    0,    0,    0,    0,   89,    0,   87,    0,
+       93,   93,   96,   94,   93,   92,   94,    2,   94,   85,
+       94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
+       94,   94,   94,   94,   94,   94,   94,   94,   94,   94,
+       93,   92,    0,    3,    2,    1,    2,   85,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   14,
+        0,    0,    0,    0,   72,    0,    0,    0,    0,   77,
+        0,    0,    0,    0,    0,    0,   90,    0,   88,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   58,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,   59,    0,    0,    0,    0,
 
-        0,    0,    0,   15,    0,   17,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,   90,
-        0,   28,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,   16,    0,   18,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   91,
+        0,   29,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,   86,    4,    0,    0,
-       66,    0,    0,   57,    0,    0,    0,    0,    0,   60,
-       77,    0,    0,    0,    0,   18,    0,    0,    0,    0,
-       20,    0,   21,    0,   24,    0,   27,    0,    0,    0,
-        0,   33,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   85,   47,   48,    0,   56,
-
-        0,   52,    0,    0,   65,    0,    0,    0,    0,    0,
-        0,   88,   59,    0,    0,   70,    0,   16,    0,   75,
-        0,    0,   54,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,   38,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,   50,   55,    0,   51,    0,
-        0,    0,    0,    0,    0,    0,   12,    0,   14,   69,
-        0,    0,   74,    0,   62,   53,    0,    0,   26,    0,
-        0,    0,    0,    0,    0,    0,    0,   82,    0,    0,
-       64,    0,   42,   79,   80,    0,    0,    0,    0,    0,
-        0,    7,    0,    0,    0,    0,    0,    0,    0,    0,
-
-        0,   61,    0,    0,   29,    0,   31,   32,    0,    0,
-        0,    0,   39,   40,   63,    0,    0,   46,    0,   81,
-        0,    0,    0,    0,   11,    0,   83,   78,   68,   19,
-       73,   22,   25,   30,   34,    0,   36,    0,   41,    0,
-        0,    0,   49,    0,    6,    8,    0,    0,   67,   72,
-        0,    0,    0,   43,    0,    0,    0,   10,    0,    0,
-        0,    0,    0,    0,    5,    9,    0,   35,    0,   44,
-        0,    0,    0,    0,    0,    0,   45,    0,    0,    0,
-        0,   23,    0,   37,    0
+        0,    0,    0,    0,    0,    0,   87,    4,    0,    0,
+       67,    0,    0,   58,    0,    0,    0,    0,    0,   61,
+       78,    0,    0,    0,    0,   19,    0,    0,    0,    0,
+       21,    0,   22,    0,   25,    0,   28,    0,    0,    0,
+        0,   34,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,   86,   48,   49,    0,   57,
+
+        0,   53,    0,    0,   66,    0,    0,    0,    0,    0,
+        0,    0,   89,   60,    0,    0,   71,    0,   17,    0,
+       76,    0,    0,   55,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,   39,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,   51,   56,    0,   52,
+        0,    0,    0,    0,    0,    0,    0,    0,   13,    0,
+       15,   70,    0,    0,   75,    0,   63,   54,    0,    0,
+       27,    0,    0,    0,    0,    0,    0,    0,    0,   83,
+        0,    0,   65,    0,   43,   80,   81,    0,    0,    0,
+        0,    0,    0,    7,    0,    0,    0,    0,    0,    0,
+
+        0,    0,    0,    0,   62,    0,    0,   30,    0,   32,
+       33,    0,    0,    0,    0,   40,   41,   64,    0,    0,
+       47,    0,   82,    0,    0,    0,    0,   12,    0,    0,
+       84,   79,   69,   20,   74,   23,   26,   31,   35,    0,
+       37,    0,   42,    0,    0,    0,   50,    0,    6,    8,
+        0,    0,    0,   68,   73,    0,    0,    0,   44,    0,
+        0,    0,   11,    0,    0,    0,    0,    0,    0,    0,
+        5,    9,   10,    0,   36,    0,   45,    0,    0,    0,
+        0,    0,    0,   46,    0,    0,    0,    0,   24,    0,
+       38,    0
+
     } ;
 
 static yyconst flex_int32_t yy_ec[256] =
@@ -462,99 +464,103 @@ static yyconst flex_int32_t yy_meta[58] =
         1,    1,    1,    1,    1,    1,    1
     } ;
 
-static yyconst flex_int16_t yy_base[389] =
+static yyconst flex_int16_t yy_base[396] =
     {   0,
-        0,    0,  230,  776,  167,    0,   55,    0,   54,   54,
+        0,    0,  230,  786,  167,    0,   55,    0,   54,   54,
        34,   55,   49,   57,   37,   60,   51,   55,   94,  129,
        99,  103,  167,   72,  112,  155,   43,   59,  116,   69,
-      165,    0,   82,  776,    0,  776,    0,  148,  110,   99,
-      150,  135,  159,  148,  140,  148,  161,  164,  159,  776,
+      165,    0,   82,  786,    0,  786,    0,  148,  110,   99,
+      150,  135,  159,  148,  140,  148,  161,  164,  159,  786,
       154,  156,  159,  179,  163,  168,  188,  192,  187,  185,
-      204,  199,  209,  202,  209,  214,  200,  213,  776,  239,
+      204,  199,  209,  202,  209,  214,  200,  213,  786,  239,
       204,  208,  222,  213,  216,  246,  212,  233,  249,  236,
       240,  247,  241,  249,  261,  253,  264,  257,  278,  249,
       128,  271,  272,  265,  269,  270,  290,  296,  287,  283,
 
-      288,  290,  298,  776,  290,  776,  295,  297,  302,  120,
-      295,  314,  298,  313,  302,  317,  322,  316,  318,  776,
-      314,  776,  326,  321,  334,  337,  327,  329,  344,  338,
+      288,  290,  298,  786,  290,  786,  295,  297,  302,  120,
+      295,  314,  298,  313,  302,  317,  322,  316,  318,  786,
+      314,  786,  326,  321,  334,  337,  327,  329,  344,  338,
       342,  338,  344,  344,  356,  341,  353,  358,  361,  363,
-      365,  357,  357,  365,  371,  367,  776,  776,  367,  378,
-      374,  380,  379,  776,  385,  394,  389,  388,  399,  388,
-      391,  390,  404,  409,  408,  776,  398,  411,  416,  403,
-      776,  414,  776,  422,  409,  428,  776,  420,  415,  425,
-      432,  776,  429,  426,  435,  436,  428,  447,  443,  440,
-      445,  454,  444,  457,  450,  776,  776,  453,  451,  453,
-
-      470,  457,  466,  471,  776,  479,  482,   98,  485,  489,
-      474,  776,  776,  482,  492,  482,  477,  776,  496,  485,
-      481,  500,  490,  506,  505,  507,  501,  503,  502,  508,
-      519,  518,  529,  519,  776,  519,  523,  534,  536,  543,
-      529,  107,  529,  529,  548,  776,  776,  532,  776,  542,
-      544,  544,  550,  552,  549,  548,  776,  548,  776,  776,
-      548,  566,  776,  557,  561,  776,  572,  567,  776,  568,
-      571,  576,  587,  579,  583,  584,  592,  776,  591,  584,
-      584,  594,  776,  776,  776,   95,  587,  594,  603,  597,
-      596,  776,  609,  599,  604,  614,  604,  610,  626,  629,
-
-      630,  776,  631,  620,  776,  637,  776,  776,  632,  639,
-      640,  643,  776,  776,  776,  637,  662,  776,  644,  776,
-      637,  636,  634,  644,  776,  649,  776,  776,  645,  776,
-      646,   90,  776,  776,  776,  652,  776,  656,  776,  661,
-      667,  665,  776,  663,  776,  776,  676,  680,  776,  776,
-      675,  673,  684,  776,  678,  680,  684,  776,  681,  697,
-      686,  693,  691,  701,  776,  776,  709,  776,  696,  776,
-      706,  703,  719,  718,  718,  713,  776,  720,  712,  732,
-      736,  776,  728,  776,  776,   81,  773,   71
+      365,  357,  357,  365,  371,  367,  786,  786,  367,  378,
+      374,  380,  379,  786,  385,  395,  388,  388,  399,  388,
+      391,  390,  404,  409,  409,  786,  400,  413,  419,  404,
+      786,  415,  786,  425,  414,  431,  786,  422,  418,  427,
+      434,  786,  430,  430,  436,  438,  429,  448,  443,  444,
+      447,  456,  445,  459,  452,  786,  786,  456,  452,  454,
+
+      473,  462,  469,  473,  786,  482,  484,   98,  487,  483,
+      494,  479,  786,  786,  485,  495,  484,  479,  786,  499,
+      488,  484,  504,  493,  509,  509,  512,  505,  505,  506,
+      516,  527,  523,  534,  524,  786,  523,  526,  539,  541,
+      546,  532,  107,  531,  531,  551,  786,  786,  535,  786,
+      545,  548,  547,  553,  560,  551,  553,  553,  786,  553,
+      786,  786,  557,  579,  786,  565,  568,  786,  579,  572,
+      786,  575,  577,  583,  591,  583,  586,  588,  596,  786,
+      596,  589,  589,  599,  786,  786,  786,   95,  592,  601,
+      609,  602,  601,  786,  618,  610,  614,  622,  628,  613,
+
+      618,  635,  637,  638,  786,  639,  625,  786,  642,  786,
+      786,  637,  644,  646,  650,  786,  786,  786,  643,  665,
+      786,  656,  786,  648,  645,  644,  657,  786,  664,  665,
+      786,  786,  664,  786,  666,   90,  786,  786,  786,  670,
+      786,  670,  786,  674,  677,  674,  786,  672,  786,  786,
+      682,  687,  678,  786,  786,  683,  682,  693,  786,  693,
+      694,  698,  786,  696,  701,  717,  706,  714,  710,  720,
+      786,  786,  786,  728,  786,  713,  786,  719,  717,  732,
+      732,  731,  725,  786,  731,  724,  741,  746,  786,  738,
+      786,  786,   81,  783,   71
+
     } ;
 
-static yyconst flex_int16_t yy_def[389] =
+static yyconst flex_int16_t yy_def[396] =
     {   0,
-      385,    1,  385,  385,  385,  386,  387,  388,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  386,  387,  385,  388,  385,  388,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,    0,  385,  385,  385
+      392,    1,  392,  392,  392,  393,  394,  395,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  393,  394,  392,  395,  392,  395,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,    0,  392,  392,  392
+
     } ;
 
-static yyconst flex_int16_t yy_nxt[834] =
+static yyconst flex_int16_t yy_nxt[844] =
     {   0,
         4,    5,    6,    7,    8,    4,    9,   10,   10,   10,
        11,   12,   13,   14,   15,   16,    4,   17,   18,   19,
@@ -568,9 +574,9 @@ static yyconst flex_int16_t yy_nxt[834] =
        43,   45,   48,   85,   49,   77,   44,   50,   51,   41,
 
        86,   53,   52,   46,   54,   55,   47,   89,   56,   64,
-       76,   42,   57,   65,   58,  284,  285,   66,   68,   77,
-       90,   91,   67,  351,   78,   69,   79,   70,  317,   55,
-       87,  254,   56,   64,   88,   80,   57,   65,   58,   59,
+       76,   42,   57,   65,   58,  286,  287,   66,   68,   77,
+       90,   91,   67,  356,   78,   69,   79,   70,  320,   55,
+       87,  255,   56,   64,   88,   80,   57,   65,   58,   59,
        60,   66,   68,   61,   90,   91,   67,   62,   78,   69,
        79,   70,   63,  167,   87,   38,   38,   38,   88,   80,
        92,  149,   93,   59,   60,   81,   31,   61,   31,   94,
@@ -580,8 +586,8 @@ static yyconst flex_int16_t yy_nxt[834] =
 
       106,   71,   99,  100,   83,   72,  101,  102,  107,   73,
       108,   84,  103,  109,   74,  104,   75,  111,  110,  105,
-      112,  113,  114,  116,  106,  117,  118,  119,  120,  385,
-      124,  115,  107,  125,  108,  126,  385,  109,  127,  128,
+      112,  113,  114,  116,  106,  117,  118,  119,  120,  392,
+      124,  115,  107,  125,  108,  126,  392,  109,  127,  128,
       132,  111,  110,  133,  112,  113,  114,  116,  137,  117,
       118,  119,  120,  121,  124,  115,  129,  125,  130,  126,
       122,  134,  127,  128,  132,  138,  123,  133,  139,  140,
@@ -600,57 +606,58 @@ static yyconst flex_int16_t yy_nxt[834] =
       183,  184,  198,  199,  200,  186,  187,  201,  185,  188,
       189,  190,  202,  191,  192,  203,  193,  204,  194,  195,
 
-      205,  196,  206,  197,  207,  208,  198,  199,  200,  209,
-      210,  201,  211,  212,  213,  214,  202,  215,  216,  203,
-      217,  204,  218,  219,  205,  220,  206,  221,  207,  208,
-      222,  223,  224,  209,  210,  225,  211,  212,  213,  214,
-      226,  215,  216,  227,  217,  228,  218,  219,  229,  220,
+      205,  196,  206,  197,  207,  208,  198,  199,  200,  211,
+      209,  201,  212,  213,  214,  215,  202,  216,  217,  203,
+      218,  204,  210,  219,  205,  220,  206,  221,  207,  208,
+      222,  223,  224,  211,  209,  225,  212,  213,  214,  215,
+      226,  216,  217,  227,  218,  228,  210,  219,  229,  220,
       230,  221,  231,  232,  222,  223,  224,  233,  234,  225,
-      235,  236,  239,  237,  226,  238,  240,  227,  241,  228,
+      235,  236,  237,  238,  226,  239,  240,  227,  241,  228,
       242,  243,  229,  244,  230,  245,  231,  232,  246,  247,
-      248,  233,  234,  249,  235,  236,  239,  237,  250,  238,
-      240,  251,  241,  252,  242,  243,  253,  244,  255,  245,
+      248,  233,  234,  249,  235,  236,  237,  238,  250,  239,
+      240,  251,  241,  252,  242,  243,  253,  244,  254,  245,
 
       256,  257,  246,  247,  248,  258,  259,  249,  260,  261,
       262,  263,  250,  264,  265,  251,  266,  252,  267,  268,
-      253,  269,  255,  270,  256,  257,  271,  272,  273,  258,
+      253,  269,  254,  270,  256,  257,  271,  272,  273,  258,
       259,  274,  260,  261,  262,  263,  275,  264,  265,  276,
       266,  277,  267,  268,  278,  269,  279,  270,  280,  281,
-      271,  272,  273,  282,  283,  274,  286,  287,  288,  289,
-      275,  290,  291,  276,  292,  277,  293,  294,  278,  296,
-      279,  297,  280,  281,  298,  299,  300,  282,  283,  295,
-      286,  287,  288,  289,  301,  290,  291,  302,  292,  303,
-      293,  294,  304,  296,  305,  297,  306,  307,  298,  299,
-
-      300,  308,  309,  295,  310,  311,  312,  313,  301,  314,
-      315,  302,  316,  303,  318,  319,  304,  320,  305,  321,
+      271,  272,  273,  282,  283,  274,  284,  285,  288,  289,
+      275,  290,  291,  276,  292,  277,  293,  294,  278,  295,
+      279,  298,  280,  281,  299,  296,  300,  282,  283,  301,
+      284,  285,  288,  289,  302,  290,  291,  297,  292,  303,
+      293,  294,  304,  295,  305,  298,  306,  307,  299,  296,
+
+      300,  308,  309,  301,  310,  311,  312,  313,  302,  314,
+      315,  297,  316,  303,  317,  318,  304,  319,  305,  321,
       306,  307,  322,  323,  324,  308,  309,  325,  310,  311,
-      312,  313,  326,  314,  315,  327,  316,  328,  318,  319,
-      329,  320,  330,  321,  331,  332,  322,  323,  324,  333,
-      334,  325,  335,  336,  337,  338,  326,  339,  343,  327,
-      344,  328,  385,  345,  329,  346,  330,  347,  331,  332,
-      348,  349,  350,  333,  334,  352,  335,  336,  337,  338,
-      340,  339,  343,  353,  344,  354,  341,  345,  342,  346,
-      355,  347,  356,  357,  348,  349,  350,  358,  359,  352,
-
-      360,  361,  362,  363,  340,  364,  365,  353,  366,  354,
-      341,  367,  342,  368,  355,  369,  356,  357,  370,  371,
-      372,  358,  359,  373,  360,  361,  362,  363,  374,  364,
-      365,  375,  366,  376,  377,  367,  378,  368,  379,  369,
-      380,  381,  370,  371,  372,  382,  383,  373,  384,  385,
-      385,  385,  374,  385,  385,  375,  385,  376,  377,  385,
-      378,  385,  379,  385,  380,  381,  385,  385,  385,  382,
-      383,  385,  384,   33,   33,    3,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385
+      312,  313,  326,  314,  315,  327,  316,  328,  317,  318,
+      329,  319,  330,  321,  331,  332,  322,  323,  324,  333,
+      334,  325,  335,  336,  337,  338,  326,  339,  340,  327,
+      341,  328,  342,  343,  329,  392,  330,  392,  331,  332,
+      347,  348,  349,  333,  334,  350,  335,  336,  337,  338,
+      351,  339,  340,  344,  341,  352,  342,  343,  353,  345,
+      354,  346,  355,  357,  347,  348,  349,  358,  359,  350,
+
+      360,  361,  362,  363,  351,  364,  365,  344,  366,  352,
+      367,  368,  353,  345,  354,  346,  355,  357,  369,  370,
+      371,  358,  359,  372,  360,  361,  362,  363,  373,  364,
+      365,  374,  366,  375,  367,  368,  376,  377,  378,  379,
+      380,  381,  369,  370,  371,  382,  383,  372,  384,  385,
+      386,  387,  373,  388,  389,  374,  390,  375,  391,  392,
+      376,  377,  378,  379,  380,  381,  392,  392,  392,  382,
+      383,  392,  384,  385,  386,  387,  392,  388,  389,  392,
+      390,  392,  391,   33,   33,    3,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392
     } ;
 
-static yyconst flex_int16_t yy_chk[834] =
+static yyconst flex_int16_t yy_chk[844] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -659,13 +666,13 @@ static yyconst flex_int16_t yy_chk[834] =
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    7,    7,    9,
         9,   10,   10,   10,   11,   12,   13,   14,   15,   27,
-       16,  388,   13,   16,   17,   12,   28,   18,   17,   14,
-       18,  386,   14,   30,   33,   33,   24,   12,   11,   12,
+       16,  395,   13,   16,   17,   12,   28,   18,   17,   14,
+       18,  393,   14,   30,   33,   33,   24,   12,   11,   12,
        13,   14,   15,   27,   16,   24,   13,   16,   17,   12,
 
        28,   18,   17,   14,   18,   19,   14,   30,   19,   21,
-       24,   12,   19,   21,   19,  242,  242,   21,   22,   24,
-       39,   40,   21,  332,   25,   22,   25,   22,  286,   19,
+       24,   12,   19,   21,   19,  243,  243,   21,   22,   24,
+       39,   40,   21,  336,   25,   22,   25,   22,  288,   19,
        29,  208,   19,   21,   29,   25,   19,   21,   19,   20,
        20,   21,   22,   20,   39,   40,   21,   20,   25,   22,
        25,   22,   20,  110,   29,   38,   38,   38,   29,   25,
@@ -696,54 +703,55 @@ static yyconst flex_int16_t yy_chk[834] =
       128,  129,  142,  143,  144,  130,  131,  145,  129,  132,
       133,  134,  146,  135,  136,  149,  137,  150,  138,  139,
 
-      151,  140,  152,  141,  153,  155,  142,  143,  144,  156,
-      157,  145,  158,  159,  160,  161,  146,  162,  163,  149,
-      164,  150,  165,  167,  151,  168,  152,  169,  153,  155,
-      170,  172,  174,  156,  157,  175,  158,  159,  160,  161,
-      176,  162,  163,  178,  164,  179,  165,  167,  180,  168,
-      181,  169,  183,  184,  170,  172,  174,  185,  186,  175,
-      187,  188,  190,  189,  176,  189,  191,  178,  192,  179,
-      193,  194,  180,  195,  181,  198,  183,  184,  199,  200,
-      201,  185,  186,  202,  187,  188,  190,  189,  203,  189,
-      191,  204,  192,  206,  193,  194,  207,  195,  209,  198,
-
-      210,  211,  199,  200,  201,  214,  215,  202,  216,  217,
-      219,  220,  203,  221,  222,  204,  223,  206,  224,  225,
-      207,  226,  209,  227,  210,  211,  228,  229,  230,  214,
-      215,  231,  216,  217,  219,  220,  232,  221,  222,  233,
-      223,  234,  224,  225,  236,  226,  237,  227,  238,  239,
-      228,  229,  230,  240,  241,  231,  243,  244,  245,  248,
-      232,  250,  251,  233,  252,  234,  253,  254,  236,  255,
-      237,  256,  238,  239,  258,  261,  262,  240,  241,  254,
-      243,  244,  245,  248,  264,  250,  251,  265,  252,  267,
-      253,  254,  268,  255,  270,  256,  271,  272,  258,  261,
-
-      262,  273,  274,  254,  275,  276,  277,  279,  264,  280,
-      281,  265,  282,  267,  287,  288,  268,  289,  270,  290,
-      271,  272,  291,  293,  294,  273,  274,  295,  275,  276,
-      277,  279,  296,  280,  281,  297,  282,  298,  287,  288,
-      299,  289,  300,  290,  301,  303,  291,  293,  294,  304,
-      306,  295,  309,  310,  311,  312,  296,  316,  319,  297,
-      321,  298,    0,  322,  299,  323,  300,  324,  301,  303,
-      326,  329,  331,  304,  306,  336,  309,  310,  311,  312,
-      317,  316,  319,  338,  321,  340,  317,  322,  317,  323,
-      341,  324,  342,  344,  326,  329,  331,  347,  348,  336,
-
-      351,  352,  353,  355,  317,  356,  357,  338,  359,  340,
-      317,  360,  317,  361,  341,  362,  342,  344,  363,  364,
-      367,  347,  348,  369,  351,  352,  353,  355,  371,  356,
-      357,  372,  359,  373,  374,  360,  375,  361,  376,  362,
-      378,  379,  363,  364,  367,  380,  381,  369,  383,    0,
-        0,    0,  371,    0,    0,  372,    0,  373,  374,    0,
-      375,    0,  376,    0,  378,  379,    0,    0,    0,  380,
-      381,    0,  383,  387,  387,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385,  385,  385,  385,  385,  385,  385,  385,
-      385,  385,  385
+      151,  140,  152,  141,  153,  155,  142,  143,  144,  157,
+      156,  145,  158,  159,  160,  161,  146,  162,  163,  149,
+      164,  150,  156,  165,  151,  167,  152,  168,  153,  155,
+      169,  170,  172,  157,  156,  174,  158,  159,  160,  161,
+      175,  162,  163,  176,  164,  178,  156,  165,  179,  167,
+      180,  168,  181,  183,  169,  170,  172,  184,  185,  174,
+      186,  187,  188,  189,  175,  189,  190,  176,  191,  178,
+      192,  193,  179,  194,  180,  195,  181,  183,  198,  199,
+      200,  184,  185,  201,  186,  187,  188,  189,  202,  189,
+      190,  203,  191,  204,  192,  193,  206,  194,  207,  195,
+
+      209,  210,  198,  199,  200,  211,  212,  201,  215,  216,
+      217,  218,  202,  220,  221,  203,  222,  204,  223,  224,
+      206,  225,  207,  226,  209,  210,  227,  228,  229,  211,
+      212,  230,  215,  216,  217,  218,  231,  220,  221,  232,
+      222,  233,  223,  224,  234,  225,  235,  226,  237,  238,
+      227,  228,  229,  239,  240,  230,  241,  242,  244,  245,
+      231,  246,  249,  232,  251,  233,  252,  253,  234,  254,
+      235,  256,  237,  238,  257,  255,  258,  239,  240,  260,
+      241,  242,  244,  245,  263,  246,  249,  255,  251,  264,
+      252,  253,  266,  254,  267,  256,  269,  270,  257,  255,
+
+      258,  272,  273,  260,  274,  275,  276,  277,  263,  278,
+      279,  255,  281,  264,  282,  283,  266,  284,  267,  289,
+      269,  270,  290,  291,  292,  272,  273,  293,  274,  275,
+      276,  277,  295,  278,  279,  296,  281,  297,  282,  283,
+      298,  284,  299,  289,  300,  301,  290,  291,  292,  302,
+      303,  293,  304,  306,  307,  309,  295,  312,  313,  296,
+      314,  297,  315,  319,  298,    0,  299,    0,  300,  301,
+      322,  324,  325,  302,  303,  326,  304,  306,  307,  309,
+      327,  312,  313,  320,  314,  329,  315,  319,  330,  320,
+      333,  320,  335,  340,  322,  324,  325,  342,  344,  326,
+
+      345,  346,  348,  351,  327,  352,  353,  320,  356,  329,
+      357,  358,  330,  320,  333,  320,  335,  340,  360,  361,
+      362,  342,  344,  364,  345,  346,  348,  351,  365,  352,
+      353,  366,  356,  367,  357,  358,  368,  369,  370,  374,
+      376,  378,  360,  361,  362,  379,  380,  364,  381,  382,
+      383,  385,  365,  386,  387,  366,  388,  367,  390,    0,
+      368,  369,  370,  374,  376,  378,    0,    0,    0,  379,
+      380,    0,  381,  382,  383,  385,    0,  386,  387,    0,
+      388,    0,  390,  394,  394,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392,  392,  392,  392,  392,  392,  392,  392,
+      392,  392,  392
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -796,7 +804,7 @@ static void ccomment(void);
 unsigned int linenum = 1;
 char linebuf[512];
 
-#line 800 "config-lexer.c"
+#line 808 "config-lexer.c"
 
 #define INITIAL 0
 
@@ -1006,7 +1014,7 @@ YY_DECL
 #line 46 "config-lexer.l"
 
 
-#line 1010 "config-lexer.c"
+#line 1018 "config-lexer.c"
 
        while ( 1 )             /* loops until end-of-file is reached */
                {
@@ -1039,13 +1047,13 @@ yy_match:
                        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                                {
                                yy_current_state = (int) yy_def[yy_current_state];
-                               if ( yy_current_state >= 386 )
+                               if ( yy_current_state >= 393 )
                                        yy_c = yy_meta[(unsigned int) yy_c];
                                }
                        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
                        ++yy_cp;
                        }
-               while ( yy_current_state != 385 );
+               while ( yy_current_state != 392 );
                yy_cp = (yy_last_accepting_cpos);
                yy_current_state = (yy_last_accepting_state);
 
@@ -1150,212 +1158,212 @@ YY_RULE_SETUP
 case 10:
 YY_RULE_SETUP
 #line 96 "config-lexer.l"
-{ return DNSBL_FROM;   }
+{ return DNS_TIMEOUT;  }
        YY_BREAK
 case 11:
 YY_RULE_SETUP
 #line 97 "config-lexer.l"
-{ return DNSBL_TO;     }
+{ return DNSBL_FROM;   }
        YY_BREAK
 case 12:
 YY_RULE_SETUP
 #line 98 "config-lexer.l"
-{ return EXEMPT;       }
+{ return DNSBL_TO;     }
        YY_BREAK
 case 13:
 YY_RULE_SETUP
 #line 99 "config-lexer.l"
-{ return FD;           }
+{ return EXEMPT;       }
        YY_BREAK
 case 14:
 YY_RULE_SETUP
 #line 100 "config-lexer.l"
-{ return INVITE;       }
+{ return FD;           }
        YY_BREAK
 case 15:
 YY_RULE_SETUP
 #line 101 "config-lexer.l"
-{ return IRC;          }
+{ return INVITE;       }
        YY_BREAK
 case 16:
 YY_RULE_SETUP
 #line 102 "config-lexer.l"
-{ return KLINE;        }
+{ return IRC;          }
        YY_BREAK
 case 17:
 YY_RULE_SETUP
 #line 103 "config-lexer.l"
-{ return KEY;          }
+{ return KLINE;        }
        YY_BREAK
 case 18:
 YY_RULE_SETUP
 #line 104 "config-lexer.l"
-{ return MASK;         }
+{ return KEY;          }
        YY_BREAK
 case 19:
 YY_RULE_SETUP
 #line 105 "config-lexer.l"
-{ return MAX_READ;     }
+{ return MASK;         }
        YY_BREAK
 case 20:
 YY_RULE_SETUP
 #line 106 "config-lexer.l"
-{ return MODE;         }
+{ return MAX_READ;     }
        YY_BREAK
 case 21:
 YY_RULE_SETUP
 #line 107 "config-lexer.l"
-{ return NAME;         }
+{ return MODE;         }
        YY_BREAK
 case 22:
 YY_RULE_SETUP
 #line 108 "config-lexer.l"
-{ return NEGCACHE;     }
+{ return NAME;         }
        YY_BREAK
 case 23:
 YY_RULE_SETUP
 #line 109 "config-lexer.l"
-{ return NEGCACHE_REBUILD; }
+{ return NEGCACHE;     }
        YY_BREAK
 case 24:
 YY_RULE_SETUP
 #line 110 "config-lexer.l"
-{ return NICK;         }
+{ return NEGCACHE_REBUILD; }
        YY_BREAK
 case 25:
 YY_RULE_SETUP
 #line 111 "config-lexer.l"
-{ return NICKSERV;     }
+{ return NICK;         }
        YY_BREAK
 case 26:
 YY_RULE_SETUP
 #line 112 "config-lexer.l"
-{ return NOTICE;       }
+{ return NICKSERV;     }
        YY_BREAK
 case 27:
 YY_RULE_SETUP
 #line 113 "config-lexer.l"
-{ return OPER;         }
+{ return NOTICE;       }
        YY_BREAK
 case 28:
 YY_RULE_SETUP
 #line 114 "config-lexer.l"
-{ return OPM;          }
+{ return OPER;         }
        YY_BREAK
 case 29:
 YY_RULE_SETUP
 #line 115 "config-lexer.l"
-{ return OPTIONS;      }
+{ return OPM;          }
        YY_BREAK
 case 30:
 YY_RULE_SETUP
 #line 116 "config-lexer.l"
-{ return PASSWORD;     }
+{ return OPTIONS;      }
        YY_BREAK
 case 31:
 YY_RULE_SETUP
 #line 117 "config-lexer.l"
-{ return PERFORM;      }
+{ return PASSWORD;     }
        YY_BREAK
 case 32:
 YY_RULE_SETUP
 #line 118 "config-lexer.l"
-{ return PIDFILE;      }
+{ return PERFORM;      }
        YY_BREAK
 case 33:
 YY_RULE_SETUP
 #line 119 "config-lexer.l"
-{ return PORT;         }
+{ return PIDFILE;      }
        YY_BREAK
 case 34:
 YY_RULE_SETUP
 #line 120 "config-lexer.l"
-{ return PROTOCOL;     }
+{ return PORT;         }
        YY_BREAK
 case 35:
 YY_RULE_SETUP
 #line 121 "config-lexer.l"
-{ return READTIMEOUT;  }
+{ return PROTOCOL;     }
        YY_BREAK
 case 36:
 YY_RULE_SETUP
 #line 122 "config-lexer.l"
-{ return REALNAME;     }
+{ return READTIMEOUT;  }
        YY_BREAK
 case 37:
 YY_RULE_SETUP
 #line 123 "config-lexer.l"
-{ return RECONNECTINTERVAL; }
+{ return REALNAME;     }
        YY_BREAK
 case 38:
 YY_RULE_SETUP
 #line 124 "config-lexer.l"
-{ return REPLY;        }
+{ return RECONNECTINTERVAL; }
        YY_BREAK
 case 39:
 YY_RULE_SETUP
 #line 125 "config-lexer.l"
-{ return SCANLOG;      }
+{ return REPLY;        }
        YY_BREAK
 case 40:
 YY_RULE_SETUP
 #line 126 "config-lexer.l"
-{ return SCANNER;      }
+{ return SCANLOG;      }
        YY_BREAK
 case 41:
 YY_RULE_SETUP
 #line 127 "config-lexer.l"
-{ return SENDMAIL;     }
+{ return SCANNER;      }
        YY_BREAK
 case 42:
 YY_RULE_SETUP
 #line 128 "config-lexer.l"
-{ return SERVER;       }
+{ return SENDMAIL;     }
        YY_BREAK
 case 43:
 YY_RULE_SETUP
 #line 129 "config-lexer.l"
-{ return TARGET_IP;    }
+{ return SERVER;       }
        YY_BREAK
 case 44:
 YY_RULE_SETUP
 #line 130 "config-lexer.l"
-{ return TARGET_PORT;  }
+{ return TARGET_IP;    }
        YY_BREAK
 case 45:
 YY_RULE_SETUP
 #line 131 "config-lexer.l"
-{ return TARGET_STRING;}
+{ return TARGET_PORT;  }
        YY_BREAK
 case 46:
 YY_RULE_SETUP
 #line 132 "config-lexer.l"
-{ return TIMEOUT;      }
+{ return TARGET_STRING;}
        YY_BREAK
 case 47:
 YY_RULE_SETUP
 #line 133 "config-lexer.l"
-{ return TYPE;         }
+{ return TIMEOUT;      }
        YY_BREAK
 case 48:
 YY_RULE_SETUP
 #line 134 "config-lexer.l"
-{ return USER;         }
+{ return TYPE;         }
        YY_BREAK
 case 49:
 YY_RULE_SETUP
 #line 135 "config-lexer.l"
-{ return USERNAME;     }
+{ return USER;         }
        YY_BREAK
 case 50:
 YY_RULE_SETUP
 #line 136 "config-lexer.l"
-{ return VHOST;        }
+{ return USERNAME;     }
        YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 138 "config-lexer.l"
-{ return YEARS; }
+#line 137 "config-lexer.l"
+{ return VHOST;        }
        YY_BREAK
 case 52:
 YY_RULE_SETUP
@@ -1365,7 +1373,7 @@ YY_RULE_SETUP
 case 53:
 YY_RULE_SETUP
 #line 140 "config-lexer.l"
-{ return MONTHS; }
+{ return YEARS; }
        YY_BREAK
 case 54:
 YY_RULE_SETUP
@@ -1375,7 +1383,7 @@ YY_RULE_SETUP
 case 55:
 YY_RULE_SETUP
 #line 142 "config-lexer.l"
-{ return WEEKS; }
+{ return MONTHS; }
        YY_BREAK
 case 56:
 YY_RULE_SETUP
@@ -1385,7 +1393,7 @@ YY_RULE_SETUP
 case 57:
 YY_RULE_SETUP
 #line 144 "config-lexer.l"
-{ return DAYS; }
+{ return WEEKS; }
        YY_BREAK
 case 58:
 YY_RULE_SETUP
@@ -1395,7 +1403,7 @@ YY_RULE_SETUP
 case 59:
 YY_RULE_SETUP
 #line 146 "config-lexer.l"
-{ return HOURS; }
+{ return DAYS; }
        YY_BREAK
 case 60:
 YY_RULE_SETUP
@@ -1405,7 +1413,7 @@ YY_RULE_SETUP
 case 61:
 YY_RULE_SETUP
 #line 148 "config-lexer.l"
-{ return MINUTES; }
+{ return HOURS; }
        YY_BREAK
 case 62:
 YY_RULE_SETUP
@@ -1415,7 +1423,7 @@ YY_RULE_SETUP
 case 63:
 YY_RULE_SETUP
 #line 150 "config-lexer.l"
-{ return SECONDS; }
+{ return MINUTES; }
        YY_BREAK
 case 64:
 YY_RULE_SETUP
@@ -1424,8 +1432,8 @@ YY_RULE_SETUP
        YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 153 "config-lexer.l"
-{ return BYTES; }
+#line 152 "config-lexer.l"
+{ return SECONDS; }
        YY_BREAK
 case 66:
 YY_RULE_SETUP
@@ -1435,7 +1443,7 @@ YY_RULE_SETUP
 case 67:
 YY_RULE_SETUP
 #line 155 "config-lexer.l"
-{ return KBYTES; }
+{ return BYTES; }
        YY_BREAK
 case 68:
 YY_RULE_SETUP
@@ -1460,7 +1468,7 @@ YY_RULE_SETUP
 case 72:
 YY_RULE_SETUP
 #line 160 "config-lexer.l"
-{ return MBYTES; }
+{ return KBYTES; }
        YY_BREAK
 case 73:
 YY_RULE_SETUP
@@ -1484,142 +1492,147 @@ YY_RULE_SETUP
        YY_BREAK
 case 77:
 YY_RULE_SETUP
-#line 166 "config-lexer.l"
+#line 165 "config-lexer.l"
+{ return MBYTES; }
+       YY_BREAK
+case 78:
+YY_RULE_SETUP
+#line 167 "config-lexer.l"
 {
                           yylval.number = OPM_TYPE_HTTP;
                           return PROTOCOLTYPE;
                         }
        YY_BREAK
-case 78:
+case 79:
 YY_RULE_SETUP
-#line 171 "config-lexer.l"
+#line 172 "config-lexer.l"
 {
                           yylval.number = OPM_TYPE_HTTPPOST;
                           return PROTOCOLTYPE;
                         }
        YY_BREAK
-case 79:
+case 80:
 YY_RULE_SETUP
-#line 176 "config-lexer.l"
+#line 177 "config-lexer.l"
 {
                           yylval.number = OPM_TYPE_SOCKS4;
                           return PROTOCOLTYPE;
                         }
        YY_BREAK
-case 80:
+case 81:
 YY_RULE_SETUP
-#line 181 "config-lexer.l"
+#line 182 "config-lexer.l"
 {
                           yylval.number = OPM_TYPE_SOCKS5;
                           return PROTOCOLTYPE;
                         }
        YY_BREAK
-case 81:
+case 82:
 YY_RULE_SETUP
-#line 186 "config-lexer.l"
+#line 187 "config-lexer.l"
 {
                           yylval.number = OPM_TYPE_WINGATE;
                           return PROTOCOLTYPE;
                         }
        YY_BREAK
-case 82:
+case 83:
 YY_RULE_SETUP
-#line 191 "config-lexer.l"
+#line 192 "config-lexer.l"
 {
                           yylval.number = OPM_TYPE_ROUTER;
                           return PROTOCOLTYPE;
                         }
        YY_BREAK
-case 83:
+case 84:
 YY_RULE_SETUP
-#line 196 "config-lexer.l"
+#line 197 "config-lexer.l"
 {
                           yylval.number = OPM_TYPE_DREAMBOX;
                           return PROTOCOLTYPE;
                         }
        YY_BREAK
-case 84:
+case 85:
 YY_RULE_SETUP
-#line 203 "config-lexer.l"
+#line 204 "config-lexer.l"
 {
                            yylval.number=atoi(yytext);
                            return NUMBER;
                         }
        YY_BREAK
-case 85:
+case 86:
 YY_RULE_SETUP
-#line 212 "config-lexer.l"
+#line 213 "config-lexer.l"
 {
                            yylval.number=1;
                            return NUMBER;
                          }
        YY_BREAK
-case 86:
+case 87:
 YY_RULE_SETUP
-#line 216 "config-lexer.l"
+#line 217 "config-lexer.l"
 {
                            yylval.number=1;
                            return NUMBER;
                          }
        YY_BREAK
-case 87:
+case 88:
 YY_RULE_SETUP
-#line 220 "config-lexer.l"
+#line 221 "config-lexer.l"
 {
                            yylval.number=1;
                            return NUMBER;
                          }
        YY_BREAK
-case 88:
+case 89:
 YY_RULE_SETUP
-#line 227 "config-lexer.l"
+#line 228 "config-lexer.l"
 {
                            yylval.number=0;
                            return NUMBER;
                          }
        YY_BREAK
-case 89:
+case 90:
 YY_RULE_SETUP
-#line 232 "config-lexer.l"
+#line 233 "config-lexer.l"
 {
                            yylval.number=0;
                            return NUMBER;
                          }
        YY_BREAK
-case 90:
+case 91:
 YY_RULE_SETUP
-#line 237 "config-lexer.l"
+#line 238 "config-lexer.l"
 {
                            yylval.number=0;
                            return NUMBER;
                          }
        YY_BREAK
-case 91:
-/* rule 91 can match eol */
+case 92:
+/* rule 92 can match eol */
 YY_RULE_SETUP
-#line 243 "config-lexer.l"
+#line 244 "config-lexer.l"
 {
                            strlcpy(linebuf, yytext + 1, sizeof(linebuf));
                            ++linenum;
                            yyless(1);
                          }
        YY_BREAK
-case 92:
+case 93:
 YY_RULE_SETUP
-#line 249 "config-lexer.l"
+#line 250 "config-lexer.l"
 /* ignore whitespace */;
        YY_BREAK
-case 93:
+case 94:
 YY_RULE_SETUP
-#line 251 "config-lexer.l"
+#line 252 "config-lexer.l"
 return yytext[0];
        YY_BREAK
-case 94:
+case 95:
 YY_RULE_SETUP
-#line 253 "config-lexer.l"
+#line 254 "config-lexer.l"
 ECHO;
        YY_BREAK
-#line 1623 "config-lexer.c"
+#line 1636 "config-lexer.c"
 case YY_STATE_EOF(INITIAL):
        yyterminate();
 
@@ -1913,7 +1926,7 @@ static int yy_get_next_buffer (void)
                while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                        {
                        yy_current_state = (int) yy_def[yy_current_state];
-                       if ( yy_current_state >= 386 )
+                       if ( yy_current_state >= 393 )
                                yy_c = yy_meta[(unsigned int) yy_c];
                        }
                yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -1941,11 +1954,11 @@ static int yy_get_next_buffer (void)
        while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
                {
                yy_current_state = (int) yy_def[yy_current_state];
-               if ( yy_current_state >= 386 )
+               if ( yy_current_state >= 393 )
                        yy_c = yy_meta[(unsigned int) yy_c];
                }
        yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-       yy_is_jam = (yy_current_state == 385);
+       yy_is_jam = (yy_current_state == 392);
 
                return yy_is_jam ? 0 : yy_current_state;
 }
@@ -2578,7 +2591,7 @@ void yyfree (void * ptr )
 
 #define YYTABLES_NAME "yytables"
 
-#line 253 "config-lexer.l"
+#line 254 "config-lexer.l"
 
 
 
index abe8de44f82a98e5a88b302fa1a6fc65bbb05c0b..b1839668dbbbda72f024f42445051fd3ad3cafd6 100644 (file)
@@ -119,57 +119,58 @@ extern int yydebug;
     CHANNEL = 264,
     CONNREGEX = 265,
     DNS_FDLIMIT = 266,
-    DNSBL_FROM = 267,
-    DNSBL_TO = 268,
-    EXEMPT = 269,
-    FD = 270,
-    INVITE = 271,
-    IRC = 272,
-    KLINE = 273,
-    KEY = 274,
-    MASK = 275,
-    MAX_READ = 276,
-    MODE = 277,
-    NAME = 278,
-    NEGCACHE = 279,
-    NEGCACHE_REBUILD = 280,
-    NICK = 281,
-    NICKSERV = 282,
-    NOTICE = 283,
-    OPER = 284,
-    OPM = 285,
-    OPTIONS = 286,
-    PASSWORD = 287,
-    PERFORM = 288,
-    PIDFILE = 289,
-    PORT = 290,
-    PROTOCOL = 291,
-    READTIMEOUT = 292,
-    REALNAME = 293,
-    RECONNECTINTERVAL = 294,
-    REPLY = 295,
-    SCANLOG = 296,
-    SCANNER = 297,
-    SECONDS = 298,
-    MINUTES = 299,
-    HOURS = 300,
-    DAYS = 301,
-    WEEKS = 302,
-    MONTHS = 303,
-    YEARS = 304,
-    SENDMAIL = 305,
-    SERVER = 306,
-    TARGET_IP = 307,
-    TARGET_PORT = 308,
-    TARGET_STRING = 309,
-    TIMEOUT = 310,
-    TYPE = 311,
-    USERNAME = 312,
-    USER = 313,
-    VHOST = 314,
-    NUMBER = 315,
-    STRING = 316,
-    PROTOCOLTYPE = 317
+    DNS_TIMEOUT = 267,
+    DNSBL_FROM = 268,
+    DNSBL_TO = 269,
+    EXEMPT = 270,
+    FD = 271,
+    INVITE = 272,
+    IRC = 273,
+    KLINE = 274,
+    KEY = 275,
+    MASK = 276,
+    MAX_READ = 277,
+    MODE = 278,
+    NAME = 279,
+    NEGCACHE = 280,
+    NEGCACHE_REBUILD = 281,
+    NICK = 282,
+    NICKSERV = 283,
+    NOTICE = 284,
+    OPER = 285,
+    OPM = 286,
+    OPTIONS = 287,
+    PASSWORD = 288,
+    PERFORM = 289,
+    PIDFILE = 290,
+    PORT = 291,
+    PROTOCOL = 292,
+    READTIMEOUT = 293,
+    REALNAME = 294,
+    RECONNECTINTERVAL = 295,
+    REPLY = 296,
+    SCANLOG = 297,
+    SCANNER = 298,
+    SECONDS = 299,
+    MINUTES = 300,
+    HOURS = 301,
+    DAYS = 302,
+    WEEKS = 303,
+    MONTHS = 304,
+    YEARS = 305,
+    SENDMAIL = 306,
+    SERVER = 307,
+    TARGET_IP = 308,
+    TARGET_PORT = 309,
+    TARGET_STRING = 310,
+    TIMEOUT = 311,
+    TYPE = 312,
+    USERNAME = 313,
+    USER = 314,
+    VHOST = 315,
+    NUMBER = 316,
+    STRING = 317,
+    PROTOCOLTYPE = 318
   };
 #endif
 /* Tokens.  */
@@ -182,69 +183,70 @@ extern int yydebug;
 #define CHANNEL 264
 #define CONNREGEX 265
 #define DNS_FDLIMIT 266
-#define DNSBL_FROM 267
-#define DNSBL_TO 268
-#define EXEMPT 269
-#define FD 270
-#define INVITE 271
-#define IRC 272
-#define KLINE 273
-#define KEY 274
-#define MASK 275
-#define MAX_READ 276
-#define MODE 277
-#define NAME 278
-#define NEGCACHE 279
-#define NEGCACHE_REBUILD 280
-#define NICK 281
-#define NICKSERV 282
-#define NOTICE 283
-#define OPER 284
-#define OPM 285
-#define OPTIONS 286
-#define PASSWORD 287
-#define PERFORM 288
-#define PIDFILE 289
-#define PORT 290
-#define PROTOCOL 291
-#define READTIMEOUT 292
-#define REALNAME 293
-#define RECONNECTINTERVAL 294
-#define REPLY 295
-#define SCANLOG 296
-#define SCANNER 297
-#define SECONDS 298
-#define MINUTES 299
-#define HOURS 300
-#define DAYS 301
-#define WEEKS 302
-#define MONTHS 303
-#define YEARS 304
-#define SENDMAIL 305
-#define SERVER 306
-#define TARGET_IP 307
-#define TARGET_PORT 308
-#define TARGET_STRING 309
-#define TIMEOUT 310
-#define TYPE 311
-#define USERNAME 312
-#define USER 313
-#define VHOST 314
-#define NUMBER 315
-#define STRING 316
-#define PROTOCOLTYPE 317
+#define DNS_TIMEOUT 267
+#define DNSBL_FROM 268
+#define DNSBL_TO 269
+#define EXEMPT 270
+#define FD 271
+#define INVITE 272
+#define IRC 273
+#define KLINE 274
+#define KEY 275
+#define MASK 276
+#define MAX_READ 277
+#define MODE 278
+#define NAME 279
+#define NEGCACHE 280
+#define NEGCACHE_REBUILD 281
+#define NICK 282
+#define NICKSERV 283
+#define NOTICE 284
+#define OPER 285
+#define OPM 286
+#define OPTIONS 287
+#define PASSWORD 288
+#define PERFORM 289
+#define PIDFILE 290
+#define PORT 291
+#define PROTOCOL 292
+#define READTIMEOUT 293
+#define REALNAME 294
+#define RECONNECTINTERVAL 295
+#define REPLY 296
+#define SCANLOG 297
+#define SCANNER 298
+#define SECONDS 299
+#define MINUTES 300
+#define HOURS 301
+#define DAYS 302
+#define WEEKS 303
+#define MONTHS 304
+#define YEARS 305
+#define SENDMAIL 306
+#define SERVER 307
+#define TARGET_IP 308
+#define TARGET_PORT 309
+#define TARGET_STRING 310
+#define TIMEOUT 311
+#define TYPE 312
+#define USERNAME 313
+#define USER 314
+#define VHOST 315
+#define NUMBER 316
+#define STRING 317
+#define PROTOCOLTYPE 318
 
 /* Value type.  */
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 
 union YYSTYPE
 {
-#line 85 "config-parser.y" /* yacc.c:355  */
+#line 86 "config-parser.y" /* yacc.c:355  */
 
   int number;
   char *string;
 
-#line 248 "config-parser.c" /* yacc.c:355  */
+#line 250 "config-parser.c" /* yacc.c:355  */
 };
 
 typedef union YYSTYPE YYSTYPE;
@@ -261,7 +263,7 @@ int yyparse (void);
 
 /* Copy the second part of user declarations.  */
 
-#line 265 "config-parser.c" /* yacc.c:358  */
+#line 267 "config-parser.c" /* yacc.c:358  */
 
 #ifdef short
 # undef short
@@ -503,21 +505,21 @@ union yyalloc
 /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  2
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   333
+#define YYLAST   330
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  68
+#define YYNTOKENS  69
 /* YYNNTS -- Number of nonterminals.  */
-#define YYNNTS  82
+#define YYNNTS  83
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  155
+#define YYNRULES  157
 /* YYNSTATES -- Number of states.  */
-#define YYNSTATES  339
+#define YYNSTATES  344
 
 /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
    by yylex, with out-of-bounds checking.  */
 #define YYUNDEFTOK  2
-#define YYMAXUTOK   317
+#define YYMAXUTOK   318
 
 #define YYTRANSLATE(YYX)                                                \
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -531,14 +533,14 @@ static const yytype_uint8 yytranslate[] =
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,     2,    67,    65,
-       2,    66,     2,     2,     2,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,     2,    68,    66,
+       2,    67,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,    63,     2,    64,     2,     2,     2,     2,
+       2,     2,     2,    64,     2,    65,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -557,29 +559,29 @@ static const yytype_uint8 yytranslate[] =
       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
       35,    36,    37,    38,    39,    40,    41,    42,    43,    44,
       45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,    57,    58,    59,    60,    61,    62
+      55,    56,    57,    58,    59,    60,    61,    62,    63
 };
 
 #if YYDEBUG
   /* YYRLINE[YYN] -- Source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =
 {
-       0,   100,   100,   101,   104,   105,   106,   107,   108,   109,
-     111,   111,   112,   113,   114,   115,   116,   117,   118,   119,
-     122,   122,   123,   124,   125,   126,   131,   133,   134,   136,
-     137,   138,   139,   140,   141,   143,   148,   153,   159,   164,
-     172,   174,   175,   177,   178,   179,   180,   181,   182,   183,
-     184,   185,   186,   187,   188,   189,   190,   191,   192,   193,
-     194,   195,   197,   203,   209,   215,   221,   227,   233,   239,
-     247,   255,   260,   265,   270,   276,   282,   288,   294,   303,
-     303,   319,   320,   322,   323,   324,   326,   334,   342,   353,
-     353,   368,   369,   371,   372,   373,   375,   385,   398,   398,
-     441,   442,   444,   445,   446,   447,   448,   449,   450,   451,
-     452,   453,   455,   463,   471,   479,   495,   502,   509,   516,
-     523,   541,   543,   544,   546,   547,   548,   549,   550,   552,
-     558,   564,   573,   573,   591,   592,   594,   595,   596,   597,
-     598,   599,   601,   609,   617,   629,   636,   638,   639,   641,
-     657,   659,   660,   662,   663,   665
+       0,   101,   101,   102,   105,   106,   107,   108,   109,   110,
+     112,   112,   113,   114,   115,   116,   117,   118,   119,   120,
+     123,   123,   124,   125,   126,   127,   132,   134,   135,   137,
+     138,   139,   140,   141,   142,   143,   145,   150,   155,   161,
+     166,   171,   179,   181,   182,   184,   185,   186,   187,   188,
+     189,   190,   191,   192,   193,   194,   195,   196,   197,   198,
+     199,   200,   201,   202,   204,   210,   216,   222,   228,   234,
+     240,   246,   254,   262,   267,   272,   277,   283,   289,   295,
+     301,   310,   310,   326,   327,   329,   330,   331,   333,   341,
+     349,   360,   360,   375,   376,   378,   379,   380,   382,   392,
+     405,   405,   448,   449,   451,   452,   453,   454,   455,   456,
+     457,   458,   459,   460,   462,   470,   478,   486,   502,   509,
+     516,   523,   530,   548,   550,   551,   553,   554,   555,   556,
+     557,   559,   565,   571,   580,   580,   598,   599,   601,   602,
+     603,   604,   605,   606,   608,   616,   624,   636,   643,   645,
+     646,   648,   664,   666,   667,   669,   670,   672
 };
 #endif
 
@@ -590,8 +592,8 @@ static const char *const yytname[] =
 {
   "$end", "error", "$undefined", "AWAY", "BAN_UNKNOWN", "BLACKLIST",
   "BYTES", "KBYTES", "MBYTES", "CHANNEL", "CONNREGEX", "DNS_FDLIMIT",
-  "DNSBL_FROM", "DNSBL_TO", "EXEMPT", "FD", "INVITE", "IRC", "KLINE",
-  "KEY", "MASK", "MAX_READ", "MODE", "NAME", "NEGCACHE",
+  "DNS_TIMEOUT", "DNSBL_FROM", "DNSBL_TO", "EXEMPT", "FD", "INVITE", "IRC",
+  "KLINE", "KEY", "MASK", "MAX_READ", "MODE", "NAME", "NEGCACHE",
   "NEGCACHE_REBUILD", "NICK", "NICKSERV", "NOTICE", "OPER", "OPM",
   "OPTIONS", "PASSWORD", "PERFORM", "PIDFILE", "PORT", "PROTOCOL",
   "READTIMEOUT", "REALNAME", "RECONNECTINTERVAL", "REPLY", "SCANLOG",
@@ -602,23 +604,24 @@ static const char *const yytname[] =
   "$accept", "config", "config_items", "timespec_", "timespec",
   "sizespec_", "sizespec", "options_entry", "options_items",
   "options_item", "options_negcache", "options_negcache_rebuild",
-  "options_pidfile", "options_dns_fdlimit", "options_scanlog", "irc_entry",
-  "irc_items", "irc_item", "irc_away", "irc_kline", "irc_mode", "irc_nick",
-  "irc_nickserv", "irc_oper", "irc_password", "irc_perform", "irc_notice",
-  "irc_port", "irc_readtimeout", "irc_reconnectinterval", "irc_realname",
-  "irc_server", "irc_username", "irc_vhost", "irc_connregex",
-  "channel_entry", "$@1", "channel_items", "channel_item", "channel_name",
-  "channel_key", "channel_invite", "user_entry", "$@2", "user_items",
-  "user_item", "user_mask", "user_scanner", "scanner_entry", "$@3",
-  "scanner_items", "scanner_item", "scanner_name", "scanner_vhost",
-  "scanner_target_ip", "scanner_target_string", "scanner_fd",
-  "scanner_target_port", "scanner_timeout", "scanner_max_read",
-  "scanner_protocol", "opm_entry", "opm_items", "opm_item",
-  "opm_dnsbl_from", "opm_dnsbl_to", "opm_sendmail", "opm_blacklist_entry",
-  "$@4", "blacklist_items", "blacklist_item", "blacklist_name",
-  "blacklist_kline", "blacklist_type", "blacklist_ban_unknown",
-  "blacklist_reply", "blacklist_reply_items", "blacklist_reply_item",
-  "exempt_entry", "exempt_items", "exempt_item", "exempt_mask", YY_NULLPTR
+  "options_pidfile", "options_dns_fdlimit", "options_dns_timeout",
+  "options_scanlog", "irc_entry", "irc_items", "irc_item", "irc_away",
+  "irc_kline", "irc_mode", "irc_nick", "irc_nickserv", "irc_oper",
+  "irc_password", "irc_perform", "irc_notice", "irc_port",
+  "irc_readtimeout", "irc_reconnectinterval", "irc_realname", "irc_server",
+  "irc_username", "irc_vhost", "irc_connregex", "channel_entry", "$@1",
+  "channel_items", "channel_item", "channel_name", "channel_key",
+  "channel_invite", "user_entry", "$@2", "user_items", "user_item",
+  "user_mask", "user_scanner", "scanner_entry", "$@3", "scanner_items",
+  "scanner_item", "scanner_name", "scanner_vhost", "scanner_target_ip",
+  "scanner_target_string", "scanner_fd", "scanner_target_port",
+  "scanner_timeout", "scanner_max_read", "scanner_protocol", "opm_entry",
+  "opm_items", "opm_item", "opm_dnsbl_from", "opm_dnsbl_to",
+  "opm_sendmail", "opm_blacklist_entry", "$@4", "blacklist_items",
+  "blacklist_item", "blacklist_name", "blacklist_kline", "blacklist_type",
+  "blacklist_ban_unknown", "blacklist_reply", "blacklist_reply_items",
+  "blacklist_reply_item", "exempt_entry", "exempt_items", "exempt_item",
+  "exempt_mask", YY_NULLPTR
 };
 #endif
 
@@ -633,16 +636,16 @@ static const yytype_uint16 yytoknum[] =
      285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
      295,   296,   297,   298,   299,   300,   301,   302,   303,   304,
      305,   306,   307,   308,   309,   310,   311,   312,   313,   314,
-     315,   316,   317,   123,   125,    59,    61,    58
+     315,   316,   317,   318,   123,   125,    59,    61,    58
 };
 # endif
 
-#define YYPACT_NINF -249
+#define YYPACT_NINF -226
 
 #define yypact_value_is_default(Yystate) \
-  (!!((Yystate) == (-249)))
+  (!!((Yystate) == (-226)))
 
-#define YYTABLE_NINF -133
+#define YYTABLE_NINF -135
 
 #define yytable_value_is_error(Yytable_value) \
   0
@@ -651,40 +654,41 @@ static const yytype_uint16 yytoknum[] =
      STATE-NUM.  */
 static const yytype_int16 yypact[] =
 {
-    -249,   137,  -249,   -56,   -50,   -49,   -39,  -249,  -249,  -249,
-    -249,   -22,  -249,    -1,  -249,  -249,     5,    90,   147,   165,
-      -7,    12,  -249,    -3,     3,  -249,  -249,  -249,     2,    11,
-      21,    23,    24,    26,    29,    30,    31,    35,    37,    38,
-      45,    47,    48,    49,    58,     0,  -249,  -249,  -249,  -249,
-    -249,  -249,  -249,  -249,  -249,  -249,  -249,  -249,  -249,  -249,
-    -249,  -249,  -249,  -249,  -249,    67,  -249,    60,    64,    65,
-      57,  -249,  -249,  -249,  -249,  -249,    80,  -249,    66,    69,
-      72,    77,    78,    20,  -249,  -249,  -249,  -249,  -249,  -249,
-      10,   119,    25,    81,  -249,    84,    89,    95,    96,   100,
-     101,   102,   103,   104,   108,   110,   117,   127,   117,   131,
-     132,   133,   115,  -249,   139,   134,   140,   142,   149,  -249,
-     141,   136,   117,   117,   144,   154,   151,  -249,  -249,   152,
-     153,    46,  -249,  -249,  -249,  -249,   155,   156,   157,   158,
-     159,   160,   161,   162,   163,    19,  -249,  -249,  -249,  -249,
-    -249,  -249,  -249,  -249,  -249,  -249,   166,  -249,   167,   168,
-     169,   170,   171,   172,   173,   174,   175,   176,   177,   138,
-     178,   179,   180,   181,   182,   183,  -249,    86,   184,   185,
-     186,  -249,   135,   187,   188,   189,   190,   191,  -249,   196,
-     197,   194,  -249,   200,   201,   202,   203,   205,   204,   206,
-     117,   207,   208,  -249,  -249,  -249,  -249,  -249,  -249,  -249,
-    -249,  -249,  -249,  -249,  -249,  -249,   117,   117,   117,   117,
-     117,   117,   117,  -249,  -249,  -249,  -249,  -249,  -249,  -249,
-    -249,   164,   209,   210,   -11,  -249,  -249,  -249,  -249,  -249,
-    -249,  -249,  -249,   211,   212,   213,   199,   214,    42,  -249,
-    -249,  -249,  -249,  -249,  -249,  -249,  -249,  -249,  -249,  -249,
-     216,   217,  -249,   218,    73,   219,   220,   150,   221,   222,
-     223,   224,   225,  -249,  -249,  -249,  -249,  -249,  -249,  -249,
-    -249,   230,   231,   232,   229,  -249,   235,   236,   237,   239,
-     240,   238,  -249,  -249,  -249,  -249,   201,   201,   201,  -249,
-    -249,  -249,  -249,   242,  -249,  -249,  -249,  -249,  -249,   241,
-     243,   244,  -249,   245,   246,   247,   234,   -45,  -249,   248,
-    -249,  -249,  -249,  -249,   249,  -249,  -249,  -249,  -249,  -249,
-    -249,   254,   251,  -249,  -249,  -249,   252,  -249,  -249
+    -226,   131,  -226,   -57,   -27,   -20,   -14,  -226,  -226,  -226,
+    -226,    -5,  -226,    16,  -226,  -226,     5,    90,   101,   144,
+      -1,    17,  -226,    15,     3,  -226,  -226,  -226,    22,    25,
+      27,    30,    31,    41,    44,    55,    58,    69,    71,    74,
+      80,    84,    87,    91,    92,     0,  -226,  -226,  -226,  -226,
+    -226,  -226,  -226,  -226,  -226,  -226,  -226,  -226,  -226,  -226,
+    -226,  -226,  -226,  -226,  -226,   148,  -226,    93,    94,    97,
+      56,  -226,  -226,  -226,  -226,  -226,    78,  -226,    98,    99,
+     100,   104,   105,   106,    20,  -226,  -226,  -226,  -226,  -226,
+    -226,  -226,     4,    79,   113,   102,  -226,   114,   115,   116,
+     118,   119,   121,   122,   139,   140,   141,   145,   146,   147,
+     146,   149,   150,   151,   142,  -226,    89,   152,   153,   154,
+     155,  -226,   156,   157,   146,   146,   146,   160,   161,   158,
+    -226,  -226,   138,   159,    21,  -226,  -226,  -226,  -226,   162,
+     163,   164,   165,   166,   167,   168,   169,   170,    19,  -226,
+    -226,  -226,  -226,  -226,  -226,  -226,  -226,  -226,  -226,   172,
+    -226,   173,   174,   175,   176,   177,   178,   179,   180,   181,
+     182,   183,   143,   184,   185,   186,   187,   188,   189,  -226,
+      -9,   190,   191,   192,  -226,    86,   193,   194,   195,   196,
+     197,   198,  -226,   203,   204,   201,  -226,   207,   208,   209,
+     210,   212,   211,   213,   146,   214,   215,  -226,  -226,  -226,
+    -226,  -226,  -226,  -226,  -226,  -226,  -226,  -226,  -226,  -226,
+     146,   146,   146,   146,   146,   146,   146,  -226,  -226,  -226,
+    -226,  -226,  -226,  -226,  -226,   216,   217,   218,   120,  -226,
+    -226,  -226,  -226,  -226,  -226,  -226,  -226,   219,   220,   221,
+     206,   222,    47,  -226,  -226,  -226,  -226,  -226,  -226,  -226,
+    -226,  -226,  -226,  -226,  -226,   224,   225,  -226,   226,     6,
+     227,   228,   229,   230,   232,   233,   234,   235,  -226,  -226,
+    -226,  -226,  -226,  -226,  -226,  -226,   240,   241,   242,   239,
+    -226,   245,   246,   247,   249,   250,   248,  -226,  -226,  -226,
+    -226,   208,   208,   208,  -226,  -226,  -226,  -226,   252,  -226,
+    -226,  -226,  -226,  -226,   251,   253,   254,  -226,   255,   256,
+     257,   244,   -12,  -226,   258,  -226,  -226,  -226,  -226,   259,
+    -226,  -226,  -226,  -226,  -226,  -226,   264,   261,  -226,  -226,
+    -226,   262,  -226,  -226
 };
 
   /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -692,68 +696,69 @@ static const yytype_int16 yypact[] =
      means the default is an error.  */
 static const yytype_uint8 yydefact[] =
 {
-       2,    89,     1,     0,     0,     0,     0,     3,     5,     4,
+       2,    91,     1,     0,     0,     0,     0,     3,     5,     4,
        7,     0,     8,     0,     6,     9,     0,     0,     0,     0,
-       0,     0,   154,     0,     0,   152,   153,    61,     0,     0,
+       0,     0,   156,     0,     0,   154,   155,    63,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    42,    43,    45,    48,
-      46,    47,    49,    50,    58,    59,    51,    52,    53,    54,
-      55,    56,    57,    44,    60,     0,   128,     0,     0,     0,
-       0,   123,   124,   125,   126,   127,     0,    34,     0,     0,
-       0,     0,     0,     0,    28,    29,    30,    31,    32,    33,
-       0,     0,     0,     0,   151,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,    44,    45,    47,    50,
+      48,    49,    51,    52,    60,    61,    53,    54,    55,    56,
+      57,    58,    59,    46,    62,     0,   130,     0,     0,     0,
+       0,   125,   126,   127,   128,   129,     0,    35,     0,     0,
+       0,     0,     0,     0,     0,    28,    29,    30,    31,    32,
+      33,    34,     0,     0,     0,     0,   153,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    41,     0,     0,     0,     0,     0,   122,
-       0,     0,     0,     0,     0,     0,     0,    27,    95,     0,
-       0,     0,    92,    93,    94,   111,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,   101,   102,   103,   105,
-     107,   104,   106,   109,   110,   108,     0,   150,     0,     0,
-       0,     0,     0,     0,     0,     0,     0,     0,     0,    10,
-       0,     0,     0,     0,     0,     0,    40,     0,     0,     0,
-       0,   121,     0,     0,     0,     0,     0,     0,    26,     0,
-       0,     0,    91,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   100,   155,    62,    78,    63,    64,    65,
-      66,    70,    67,    68,    69,    71,    10,    10,    10,    10,
-      10,    10,    10,    12,    11,    72,    74,    73,    75,    76,
-      77,     0,     0,     0,     0,    82,    83,    84,    85,   129,
-     130,   131,   141,     0,     0,     0,     0,     0,     0,   135,
-     136,   138,   137,   139,   140,    38,    35,    36,    37,    39,
-       0,     0,    90,     0,    20,     0,     0,     0,     0,     0,
-       0,     0,     0,    99,    13,    14,    15,    16,    17,    18,
-      19,     0,     0,     0,     0,    81,     0,     0,     0,     0,
-       0,     0,   134,    96,    97,   116,    20,    20,    20,    22,
-      21,   119,   112,     0,   114,   117,   115,   118,   113,     0,
-       0,     0,    80,     0,     0,     0,     0,     0,   148,     0,
-     133,    23,    24,    25,     0,    88,    87,    86,   145,   143,
-     142,     0,     0,   147,   144,   120,     0,   146,   149
+       0,     0,     0,     0,     0,    43,     0,     0,     0,     0,
+       0,   124,     0,     0,     0,     0,     0,     0,     0,     0,
+      27,    97,     0,     0,     0,    94,    95,    96,   113,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,   103,
+     104,   105,   107,   109,   106,   108,   111,   112,   110,     0,
+     152,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,    10,     0,     0,     0,     0,     0,     0,    42,
+       0,     0,     0,     0,   123,     0,     0,     0,     0,     0,
+       0,     0,    26,     0,     0,     0,    93,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,   102,   157,    64,
+      80,    65,    66,    67,    68,    72,    69,    70,    71,    73,
+      10,    10,    10,    10,    10,    10,    10,    12,    11,    74,
+      76,    75,    77,    78,    79,     0,     0,     0,     0,    84,
+      85,    86,    87,   131,   132,   133,   143,     0,     0,     0,
+       0,     0,     0,   137,   138,   140,   139,   141,   142,    39,
+      40,    36,    37,    38,    41,     0,     0,    92,     0,    20,
+       0,     0,     0,     0,     0,     0,     0,     0,   101,    13,
+      14,    15,    16,    17,    18,    19,     0,     0,     0,     0,
+      83,     0,     0,     0,     0,     0,     0,   136,    98,    99,
+     118,    20,    20,    20,    22,    21,   121,   114,     0,   116,
+     119,   117,   120,   115,     0,     0,     0,    82,     0,     0,
+       0,     0,     0,   150,     0,   135,    23,    24,    25,     0,
+      90,    89,    88,   147,   145,   144,     0,     0,   149,   146,
+     122,     0,   148,   151
 };
 
   /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =
 {
-    -249,  -249,  -249,    -9,  -106,  -248,     6,  -249,  -249,   250,
-    -249,  -249,  -249,  -249,  -249,  -249,  -249,   226,  -249,  -249,
-    -249,  -249,  -249,  -249,  -249,  -249,  -249,  -249,  -249,  -249,
-    -249,  -249,  -249,  -249,  -249,  -249,  -249,  -249,   -14,  -249,
-    -249,  -249,  -249,  -249,  -249,   143,  -249,  -249,  -249,  -249,
-    -249,   124,  -249,  -249,  -249,  -249,  -249,  -249,  -249,  -249,
-    -249,  -249,  -249,   253,  -249,  -249,  -249,  -249,  -249,  -249,
-      22,  -249,  -249,  -249,  -249,  -249,  -249,   -21,  -249,  -249,
-     280,  -249
+    -226,  -226,  -226,   -26,  -108,  -225,   -16,  -226,  -226,   126,
+    -226,  -226,  -226,  -226,  -226,  -226,  -226,  -226,   237,  -226,
+    -226,  -226,  -226,  -226,  -226,  -226,  -226,  -226,  -226,  -226,
+    -226,  -226,  -226,  -226,  -226,  -226,  -226,  -226,  -226,   -21,
+    -226,  -226,  -226,  -226,  -226,  -226,    85,  -226,  -226,  -226,
+    -226,  -226,    77,  -226,  -226,  -226,  -226,  -226,  -226,  -226,
+    -226,  -226,  -226,  -226,   260,  -226,  -226,  -226,  -226,  -226,
+    -226,   -25,  -226,  -226,  -226,  -226,  -226,  -226,   -94,  -226,
+    -226,   271,  -226
 };
 
   /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int16 yydefgoto[] =
 {
-      -1,     1,     7,   223,   224,   299,   300,     8,    83,    84,
-      85,    86,    87,    88,    89,     9,    45,    46,    47,    48,
-      49,    50,    51,    52,    53,    54,    55,    56,    57,    58,
-      59,    60,    61,    62,    63,    64,    65,   234,   235,   236,
-     237,   238,    10,    11,   131,   132,   133,   134,    12,    13,
-     145,   146,   147,   148,   149,   150,   151,   152,   153,   154,
-     155,    14,    70,    71,    72,    73,    74,    75,    76,   248,
-     249,   250,   251,   252,   253,   254,   317,   318,    15,    24,
-      25,    26
+      -1,     1,     7,   227,   228,   304,   305,     8,    84,    85,
+      86,    87,    88,    89,    90,    91,     9,    45,    46,    47,
+      48,    49,    50,    51,    52,    53,    54,    55,    56,    57,
+      58,    59,    60,    61,    62,    63,    64,    65,   238,   239,
+     240,   241,   242,    10,    11,   134,   135,   136,   137,    12,
+      13,   148,   149,   150,   151,   152,   153,   154,   155,   156,
+     157,   158,    14,    70,    71,    72,    73,    74,    75,    76,
+     252,   253,   254,   255,   256,   257,   258,   322,   323,    15,
+      24,    25,    26
 };
 
   /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM.  If
@@ -761,139 +766,140 @@ static const yytype_int16 yydefgoto[] =
      number is the opposite.  If YYTABLE_NINF, syntax error.  */
 static const yytype_int16 yytable[] =
 {
-     170,    27,   172,    28,    22,   231,    22,    16,   232,   -79,
-      29,   128,   233,    17,    18,   316,   184,   185,    30,   332,
-     135,    77,    31,    23,    19,    23,    32,    33,    34,    35,
-     129,    78,    36,    37,   136,    38,    20,    39,    40,    41,
-     137,    21,   138,   242,    79,    80,   243,   128,   321,   322,
-     323,    42,   130,   284,    81,   139,    90,    43,    66,    44,
-     244,    82,  -132,    92,   112,   245,   129,    93,    95,    67,
-      68,   140,   141,   142,   143,    91,   114,    96,   144,   296,
-     297,   298,   246,   202,   126,   120,   156,    97,   130,    98,
-      99,    27,   100,    28,   271,   101,   102,   103,   247,   -79,
-      29,   104,   231,   105,   106,   232,   291,    69,    30,   233,
-     191,   107,    31,   108,   109,   110,    32,    33,    34,    35,
-     135,   118,    36,    37,   111,    38,   115,    39,    40,    41,
-     116,   117,   121,   264,   136,   122,   242,     2,   123,   243,
-     137,    42,   138,   124,   125,   158,   157,    43,    66,    44,
-     159,     3,  -132,   244,     4,   139,   160,   161,   245,    67,
-      68,   162,   163,   164,   165,   166,    77,     5,     6,   167,
-     168,   140,   141,   142,   143,   246,    78,   169,   144,   -98,
-     176,   216,   217,   218,   219,   220,   221,   222,   171,    79,
-      80,   247,   173,   174,   175,   178,   183,    69,   169,    81,
-     265,   179,   177,   180,   182,   186,    82,   274,   275,   276,
-     277,   278,   279,   280,   181,   187,   188,   303,   189,   190,
-     285,   193,   194,   195,   196,   197,   198,   199,   200,   201,
-     281,   204,   205,   206,   207,   208,   209,   210,   211,   212,
-     213,   214,   215,   225,   226,   227,   228,   229,   230,   239,
-     240,   241,   255,   256,   257,   258,   259,   260,   261,   262,
-     263,   264,   289,   266,   269,   267,   268,   270,   272,   203,
-     292,   113,     0,   273,   192,   282,   283,   286,   287,   288,
-     290,   293,   294,   295,   301,   302,   304,   305,   306,   307,
-     308,   309,   310,   311,   312,   313,   333,   314,   315,   316,
-     331,   319,   324,   320,    94,     0,   325,     0,   326,   327,
-     328,   329,   330,   334,   335,   336,   337,   338,     0,     0,
-       0,     0,     0,   119,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,   127
+     173,    27,   175,    28,    22,   131,    22,    16,   235,   -81,
+      29,   236,   301,   302,   303,   237,   187,   188,   189,    30,
+     138,    77,   131,    31,    23,   132,    23,    32,    33,    34,
+      35,    78,    79,    36,    37,   139,    38,    17,    39,    40,
+      41,   140,   132,   141,    18,    80,    81,   133,   246,   321,
+      19,   247,    42,   337,    20,    82,   142,    66,    43,    21,
+      44,  -134,    83,    92,   133,   114,   248,   269,    95,    67,
+      68,   249,   143,   144,   145,   146,   326,   327,   328,   147,
+     138,    93,    94,   122,   206,   129,   195,   246,   250,    97,
+     247,    27,    98,    28,    99,   139,   276,   100,   101,   -81,
+      29,   140,    66,   141,   251,   248,  -134,    69,   102,    30,
+     249,   103,   296,    31,    67,    68,   142,    32,    33,    34,
+      35,   120,   104,    36,    37,   105,    38,   250,    39,    40,
+      41,     2,   143,   144,   145,   146,   106,   235,   107,   147,
+     236,   108,    42,   251,   237,    77,     3,   109,    43,     4,
+      44,   110,    69,   180,   111,    78,    79,   116,   112,   113,
+     117,   118,     5,     6,   119,   123,   124,   125,   160,    80,
+      81,   126,   127,   128,  -100,   159,   161,   162,   163,    82,
+     164,   165,   270,   166,   167,   289,    83,   220,   221,   222,
+     223,   224,   225,   226,   279,   280,   281,   282,   283,   284,
+     285,   168,   169,   170,   172,   193,   171,   172,   179,   174,
+     130,   176,   177,   178,   181,   182,   183,   290,   186,   196,
+     185,   184,   190,   191,   192,   207,   194,   297,   338,   197,
+     198,   199,   200,   201,   202,   203,   204,   205,   208,   209,
+     210,   211,   212,   213,   214,   215,   216,   217,   218,   219,
+     229,   230,   231,   232,   233,   234,   243,   244,   245,   259,
+     260,   261,   262,   263,   264,   265,   266,   267,   268,   269,
+     294,   271,   274,   272,   273,   275,   277,     0,     0,     0,
+       0,   278,   115,   286,   287,   288,   291,   292,   293,   295,
+     298,   299,   300,   306,   307,    96,   309,   308,   310,   311,
+     312,   313,   314,   315,   316,   317,   318,     0,   319,   320,
+     321,   336,   324,   329,   325,     0,     0,   330,     0,   331,
+     332,   333,   334,   335,   339,   340,   341,   342,   343,     0,
+     121
 };
 
 static const yytype_int16 yycheck[] =
 {
-     106,     1,   108,     3,     1,    16,     1,    63,    19,     9,
-      10,     1,    23,    63,    63,    60,   122,   123,    18,    64,
-       1,     1,    22,    20,    63,    20,    26,    27,    28,    29,
-      20,    11,    32,    33,    15,    35,    58,    37,    38,    39,
-      21,    42,    23,     1,    24,    25,     4,     1,   296,   297,
-     298,    51,    42,    64,    34,    36,    63,    57,     1,    59,
-      18,    41,     5,    66,    64,    23,    20,    64,    66,    12,
-      13,    52,    53,    54,    55,    63,     9,    66,    59,     6,
-       7,     8,    40,    64,    64,     5,    61,    66,    42,    66,
-      66,     1,    66,     3,   200,    66,    66,    66,    56,     9,
-      10,    66,    16,    66,    66,    19,    64,    50,    18,    23,
-      64,    66,    22,    66,    66,    66,    26,    27,    28,    29,
-       1,    64,    32,    33,    66,    35,    66,    37,    38,    39,
-      66,    66,    66,    60,    15,    66,     1,     0,    66,     4,
-      21,    51,    23,    66,    66,    61,    65,    57,     1,    59,
-      61,    14,     5,    18,    17,    36,    61,    61,    23,    12,
-      13,    61,    61,    61,    61,    61,     1,    30,    31,    61,
-      60,    52,    53,    54,    55,    40,    11,    60,    59,    42,
-      65,    43,    44,    45,    46,    47,    48,    49,    61,    24,
-      25,    56,    61,    61,    61,    61,    60,    50,    60,    34,
-     194,    61,    63,    61,    63,    61,    41,   216,   217,   218,
-     219,   220,   221,   222,    65,    61,    65,    67,    66,    66,
-     234,    66,    66,    66,    66,    66,    66,    66,    66,    66,
-      66,    65,    65,    65,    65,    65,    65,    65,    65,    65,
-      65,    65,    65,    65,    65,    65,    65,    65,    65,    65,
-      65,    65,    65,    65,    65,    65,    65,    61,    61,    65,
-      60,    60,    63,    61,    60,    62,    61,    61,    61,   145,
-     248,    45,    -1,    65,   131,    66,    66,    66,    66,    66,
-      66,    65,    65,    65,    65,    65,    65,    65,    65,    65,
-      65,    61,    61,    61,    65,    60,   317,    61,    61,    60,
-      66,    61,    60,    65,    24,    -1,    65,    -1,    65,    65,
-      65,    65,    65,    65,    65,    61,    65,    65,    -1,    -1,
-      -1,    -1,    -1,    70,    -1,    -1,    -1,    -1,    -1,    -1,
-      -1,    -1,    -1,    83
+     108,     1,   110,     3,     1,     1,     1,    64,    17,     9,
+      10,    20,     6,     7,     8,    24,   124,   125,   126,    19,
+       1,     1,     1,    23,    21,    21,    21,    27,    28,    29,
+      30,    11,    12,    33,    34,    16,    36,    64,    38,    39,
+      40,    22,    21,    24,    64,    25,    26,    43,     1,    61,
+      64,     4,    52,    65,    59,    35,    37,     1,    58,    43,
+      60,     5,    42,    64,    43,    65,    19,    61,    65,    13,
+      14,    24,    53,    54,    55,    56,   301,   302,   303,    60,
+       1,    64,    67,     5,    65,    65,    65,     1,    41,    67,
+       4,     1,    67,     3,    67,    16,   204,    67,    67,     9,
+      10,    22,     1,    24,    57,    19,     5,    51,    67,    19,
+      24,    67,    65,    23,    13,    14,    37,    27,    28,    29,
+      30,    65,    67,    33,    34,    67,    36,    41,    38,    39,
+      40,     0,    53,    54,    55,    56,    67,    17,    67,    60,
+      20,    67,    52,    57,    24,     1,    15,    67,    58,    18,
+      60,    67,    51,    64,    67,    11,    12,     9,    67,    67,
+      67,    67,    31,    32,    67,    67,    67,    67,    66,    25,
+      26,    67,    67,    67,    43,    62,    62,    62,    62,    35,
+      62,    62,   198,    62,    62,    65,    42,    44,    45,    46,
+      47,    48,    49,    50,   220,   221,   222,   223,   224,   225,
+     226,    62,    62,    62,    61,    67,    61,    61,    66,    62,
+      84,    62,    62,    62,    62,    62,    62,   238,    61,   134,
+      64,    66,    62,    62,    66,   148,    67,   252,   322,    67,
+      67,    67,    67,    67,    67,    67,    67,    67,    66,    66,
+      66,    66,    66,    66,    66,    66,    66,    66,    66,    66,
+      66,    66,    66,    66,    66,    66,    66,    66,    66,    66,
+      66,    66,    66,    66,    66,    62,    62,    66,    61,    61,
+      64,    62,    61,    63,    62,    62,    62,    -1,    -1,    -1,
+      -1,    66,    45,    67,    67,    67,    67,    67,    67,    67,
+      66,    66,    66,    66,    66,    24,    66,    68,    66,    66,
+      66,    66,    62,    62,    62,    66,    61,    -1,    62,    62,
+      61,    67,    62,    61,    66,    -1,    -1,    66,    -1,    66,
+      66,    66,    66,    66,    66,    66,    62,    66,    66,    -1,
+      70
 };
 
   /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
      symbol of state STATE-NUM.  */
 static const yytype_uint8 yystos[] =
 {
-       0,    69,     0,    14,    17,    30,    31,    70,    75,    83,
-     110,   111,   116,   117,   129,   146,    63,    63,    63,    63,
-      58,    42,     1,    20,   147,   148,   149,     1,     3,    10,
-      18,    22,    26,    27,    28,    29,    32,    33,    35,    37,
-      38,    39,    51,    57,    59,    84,    85,    86,    87,    88,
-      89,    90,    91,    92,    93,    94,    95,    96,    97,    98,
-      99,   100,   101,   102,   103,   104,     1,    12,    13,    50,
-     130,   131,   132,   133,   134,   135,   136,     1,    11,    24,
-      25,    34,    41,    76,    77,    78,    79,    80,    81,    82,
-      63,    63,    66,    64,   148,    66,    66,    66,    66,    66,
+       0,    70,     0,    15,    18,    31,    32,    71,    76,    85,
+     112,   113,   118,   119,   131,   148,    64,    64,    64,    64,
+      59,    43,     1,    21,   149,   150,   151,     1,     3,    10,
+      19,    23,    27,    28,    29,    30,    33,    34,    36,    38,
+      39,    40,    52,    58,    60,    86,    87,    88,    89,    90,
+      91,    92,    93,    94,    95,    96,    97,    98,    99,   100,
+     101,   102,   103,   104,   105,   106,     1,    13,    14,    51,
+     132,   133,   134,   135,   136,   137,   138,     1,    11,    12,
+      25,    26,    35,    42,    77,    78,    79,    80,    81,    82,
+      83,    84,    64,    64,    67,    65,   150,    67,    67,    67,
+      67,    67,    67,    67,    67,    67,    67,    67,    67,    67,
+      67,    67,    67,    67,    65,    87,     9,    67,    67,    67,
+      65,   133,     5,    67,    67,    67,    67,    67,    67,    65,
+      78,     1,    21,    43,   114,   115,   116,   117,     1,    16,
+      22,    24,    37,    53,    54,    55,    56,    60,   120,   121,
+     122,   123,   124,   125,   126,   127,   128,   129,   130,    62,
+      66,    62,    62,    62,    62,    62,    62,    62,    62,    62,
+      62,    61,    61,    73,    62,    73,    62,    62,    62,    66,
+      64,    62,    62,    62,    66,    64,    61,    73,    73,    73,
+      62,    62,    66,    67,    67,    65,   115,    67,    67,    67,
+      67,    67,    67,    67,    67,    67,    65,   121,    66,    66,
       66,    66,    66,    66,    66,    66,    66,    66,    66,    66,
-      66,    66,    64,    85,     9,    66,    66,    66,    64,   131,
-       5,    66,    66,    66,    66,    66,    64,    77,     1,    20,
-      42,   112,   113,   114,   115,     1,    15,    21,    23,    36,
-      52,    53,    54,    55,    59,   118,   119,   120,   121,   122,
-     123,   124,   125,   126,   127,   128,    61,    65,    61,    61,
-      61,    61,    61,    61,    61,    61,    61,    61,    60,    60,
-      72,    61,    72,    61,    61,    61,    65,    63,    61,    61,
-      61,    65,    63,    60,    72,    72,    61,    61,    65,    66,
-      66,    64,   113,    66,    66,    66,    66,    66,    66,    66,
-      66,    66,    64,   119,    65,    65,    65,    65,    65,    65,
-      65,    65,    65,    65,    65,    65,    43,    44,    45,    46,
-      47,    48,    49,    71,    72,    65,    65,    65,    65,    65,
-      65,    16,    19,    23,   105,   106,   107,   108,   109,    65,
-      65,    65,     1,     4,    18,    23,    40,    56,   137,   138,
-     139,   140,   141,   142,   143,    65,    65,    65,    65,    65,
-      61,    61,    65,    60,    60,    74,    61,    62,    61,    60,
-      61,    72,    61,    65,    71,    71,    71,    71,    71,    71,
-      71,    66,    66,    66,    64,   106,    66,    66,    66,    63,
-      66,    64,   138,    65,    65,    65,     6,     7,     8,    73,
-      74,    65,    65,    67,    65,    65,    65,    65,    65,    61,
-      61,    61,    65,    60,    61,    61,    60,   144,   145,    61,
-      65,    73,    73,    73,    60,    65,    65,    65,    65,    65,
-      65,    66,    64,   145,    65,    65,    61,    65,    65
+      44,    45,    46,    47,    48,    49,    50,    72,    73,    66,
+      66,    66,    66,    66,    66,    17,    20,    24,   107,   108,
+     109,   110,   111,    66,    66,    66,     1,     4,    19,    24,
+      41,    57,   139,   140,   141,   142,   143,   144,   145,    66,
+      66,    66,    66,    66,    66,    62,    62,    66,    61,    61,
+      75,    62,    63,    62,    61,    62,    73,    62,    66,    72,
+      72,    72,    72,    72,    72,    72,    67,    67,    67,    65,
+     108,    67,    67,    67,    64,    67,    65,   140,    66,    66,
+      66,     6,     7,     8,    74,    75,    66,    66,    68,    66,
+      66,    66,    66,    66,    62,    62,    62,    66,    61,    62,
+      62,    61,   146,   147,    62,    66,    74,    74,    74,    61,
+      66,    66,    66,    66,    66,    66,    67,    65,   147,    66,
+      66,    62,    66,    66
 };
 
   /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const yytype_uint8 yyr1[] =
 {
-       0,    68,    69,    69,    70,    70,    70,    70,    70,    70,
-      71,    71,    72,    72,    72,    72,    72,    72,    72,    72,
-      73,    73,    74,    74,    74,    74,    75,    76,    76,    77,
-      77,    77,    77,    77,    77,    78,    79,    80,    81,    82,
-      83,    84,    84,    85,    85,    85,    85,    85,    85,    85,
-      85,    85,    85,    85,    85,    85,    85,    85,    85,    85,
-      85,    85,    86,    87,    88,    89,    90,    91,    92,    93,
-      94,    95,    96,    97,    98,    99,   100,   101,   102,   104,
-     103,   105,   105,   106,   106,   106,   107,   108,   109,   111,
-     110,   112,   112,   113,   113,   113,   114,   115,   117,   116,
-     118,   118,   119,   119,   119,   119,   119,   119,   119,   119,
-     119,   119,   120,   121,   122,   123,   124,   125,   126,   127,
-     128,   129,   130,   130,   131,   131,   131,   131,   131,   132,
-     133,   134,   136,   135,   137,   137,   138,   138,   138,   138,
-     138,   138,   139,   140,   141,   142,   143,   144,   144,   145,
-     146,   147,   147,   148,   148,   149
+       0,    69,    70,    70,    71,    71,    71,    71,    71,    71,
+      72,    72,    73,    73,    73,    73,    73,    73,    73,    73,
+      74,    74,    75,    75,    75,    75,    76,    77,    77,    78,
+      78,    78,    78,    78,    78,    78,    79,    80,    81,    82,
+      83,    84,    85,    86,    86,    87,    87,    87,    87,    87,
+      87,    87,    87,    87,    87,    87,    87,    87,    87,    87,
+      87,    87,    87,    87,    88,    89,    90,    91,    92,    93,
+      94,    95,    96,    97,    98,    99,   100,   101,   102,   103,
+     104,   106,   105,   107,   107,   108,   108,   108,   109,   110,
+     111,   113,   112,   114,   114,   115,   115,   115,   116,   117,
+     119,   118,   120,   120,   121,   121,   121,   121,   121,   121,
+     121,   121,   121,   121,   122,   123,   124,   125,   126,   127,
+     128,   129,   130,   131,   132,   132,   133,   133,   133,   133,
+     133,   134,   135,   136,   138,   137,   139,   139,   140,   140,
+     140,   140,   140,   140,   141,   142,   143,   144,   145,   146,
+     146,   147,   148,   149,   149,   150,   150,   151
 };
 
   /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN.  */
@@ -902,19 +908,19 @@ static const yytype_uint8 yyr2[] =
        0,     2,     0,     2,     1,     1,     1,     1,     1,     1,
        0,     1,     2,     3,     3,     3,     3,     3,     3,     3,
        0,     1,     2,     3,     3,     3,     5,     2,     1,     1,
-       1,     1,     1,     1,     1,     4,     4,     4,     4,     4,
-       5,     2,     1,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     1,     1,     4,     4,     4,     4,
+       4,     4,     5,     2,     1,     1,     1,     1,     1,     1,
        1,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
-       4,     4,     4,     4,     4,     4,     4,     4,     4,     0,
-       6,     2,     1,     1,     1,     1,     4,     4,     4,     0,
-       6,     2,     1,     1,     1,     1,     4,     4,     0,     6,
-       2,     1,     1,     1,     1,     1,     1,     1,     1,     1,
-       1,     1,     4,     4,     4,     4,     4,     4,     4,     4,
-       6,     5,     2,     1,     1,     1,     1,     1,     1,     4,
-       4,     4,     0,     6,     2,     1,     1,     1,     1,     1,
-       1,     1,     4,     4,     4,     4,     5,     2,     1,     4,
-       5,     2,     1,     1,     1,     4
+       1,     1,     1,     1,     4,     4,     4,     4,     4,     4,
+       4,     4,     4,     4,     4,     4,     4,     4,     4,     4,
+       4,     0,     6,     2,     1,     1,     1,     1,     4,     4,
+       4,     0,     6,     2,     1,     1,     1,     1,     4,     4,
+       0,     6,     2,     1,     1,     1,     1,     1,     1,     1,
+       1,     1,     1,     1,     4,     4,     4,     4,     4,     4,
+       4,     4,     6,     5,     2,     1,     1,     1,     1,     1,
+       1,     4,     4,     4,     0,     6,     2,     1,     1,     1,
+       1,     1,     1,     1,     4,     4,     4,     4,     5,     2,
+       1,     4,     5,     2,     1,     1,     1,     4
 };
 
 
@@ -1591,287 +1597,295 @@ yyreduce:
   switch (yyn)
     {
         case 10:
-#line 111 "config-parser.y" /* yacc.c:1646  */
+#line 112 "config-parser.y" /* yacc.c:1646  */
     { (yyval.number) = 0; }
-#line 1597 "config-parser.c" /* yacc.c:1646  */
+#line 1603 "config-parser.c" /* yacc.c:1646  */
     break;
 
   case 12:
-#line 112 "config-parser.y" /* yacc.c:1646  */
+#line 113 "config-parser.y" /* yacc.c:1646  */
     { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
-#line 1603 "config-parser.c" /* yacc.c:1646  */
+#line 1609 "config-parser.c" /* yacc.c:1646  */
     break;
 
   case 13:
-#line 113 "config-parser.y" /* yacc.c:1646  */
+#line 114 "config-parser.y" /* yacc.c:1646  */
     { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
-#line 1609 "config-parser.c" /* yacc.c:1646  */
+#line 1615 "config-parser.c" /* yacc.c:1646  */
     break;
 
   case 14:
-#line 114 "config-parser.y" /* yacc.c:1646  */
+#line 115 "config-parser.y" /* yacc.c:1646  */
     { (yyval.number) = (yyvsp[-2].number) * 60 + (yyvsp[0].number); }
-#line 1615 "config-parser.c" /* yacc.c:1646  */
+#line 1621 "config-parser.c" /* yacc.c:1646  */
     break;
 
   case 15:
-#line 115 "config-parser.y" /* yacc.c:1646  */
+#line 116 "config-parser.y" /* yacc.c:1646  */
     { (yyval.number) = (yyvsp[-2].number) * 60 * 60 + (yyvsp[0].number); }
-#line 1621 "config-parser.c" /* yacc.c:1646  */
+#line 1627 "config-parser.c" /* yacc.c:1646  */
     break;
 
   case 16:
-#line 116 "config-parser.y" /* yacc.c:1646  */
+#line 117 "config-parser.y" /* yacc.c:1646  */
     { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 + (yyvsp[0].number); }
-#line 1627 "config-parser.c" /* yacc.c:1646  */
+#line 1633 "config-parser.c" /* yacc.c:1646  */
     break;
 
   case 17:
-#line 117 "config-parser.y" /* yacc.c:1646  */
+#line 118 "config-parser.y" /* yacc.c:1646  */
     { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 + (yyvsp[0].number); }
-#line 1633 "config-parser.c" /* yacc.c:1646  */
+#line 1639 "config-parser.c" /* yacc.c:1646  */
     break;
 
   case 18:
-#line 118 "config-parser.y" /* yacc.c:1646  */
+#line 119 "config-parser.y" /* yacc.c:1646  */
     { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 7 * 4 + (yyvsp[0].number); }
-#line 1639 "config-parser.c" /* yacc.c:1646  */
+#line 1645 "config-parser.c" /* yacc.c:1646  */
     break;
 
   case 19:
-#line 119 "config-parser.y" /* yacc.c:1646  */
+#line 120 "config-parser.y" /* yacc.c:1646  */
     { (yyval.number) = (yyvsp[-2].number) * 60 * 60 * 24 * 365 + (yyvsp[0].number); }
-#line 1645 "config-parser.c" /* yacc.c:1646  */
+#line 1651 "config-parser.c" /* yacc.c:1646  */
     break;
 
   case 20:
-#line 122 "config-parser.y" /* yacc.c:1646  */
+#line 123 "config-parser.y" /* yacc.c:1646  */
     { (yyval.number) = 0; }
-#line 1651 "config-parser.c" /* yacc.c:1646  */
+#line 1657 "config-parser.c" /* yacc.c:1646  */
     break;
 
   case 22:
-#line 123 "config-parser.y" /* yacc.c:1646  */
+#line 124 "config-parser.y" /* yacc.c:1646  */
     { (yyval.number) = (yyvsp[-1].number) + (yyvsp[0].number); }
-#line 1657 "config-parser.c" /* yacc.c:1646  */
+#line 1663 "config-parser.c" /* yacc.c:1646  */
     break;
 
   case 23:
-#line 124 "config-parser.y" /* yacc.c:1646  */
+#line 125 "config-parser.y" /* yacc.c:1646  */
     { (yyval.number) = (yyvsp[-2].number) + (yyvsp[0].number); }
-#line 1663 "config-parser.c" /* yacc.c:1646  */
+#line 1669 "config-parser.c" /* yacc.c:1646  */
     break;
 
   case 24:
-#line 125 "config-parser.y" /* yacc.c:1646  */
+#line 126 "config-parser.y" /* yacc.c:1646  */
     { (yyval.number) = (yyvsp[-2].number) * 1024 + (yyvsp[0].number); }
-#line 1669 "config-parser.c" /* yacc.c:1646  */
+#line 1675 "config-parser.c" /* yacc.c:1646  */
     break;
 
   case 25:
-#line 126 "config-parser.y" /* yacc.c:1646  */
+#line 127 "config-parser.y" /* yacc.c:1646  */
     { (yyval.number) = (yyvsp[-2].number) * 1024 * 1024 + (yyvsp[0].number); }
-#line 1675 "config-parser.c" /* yacc.c:1646  */
+#line 1681 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 35:
-#line 144 "config-parser.y" /* yacc.c:1646  */
+  case 36:
+#line 146 "config-parser.y" /* yacc.c:1646  */
     {
   OptionsItem->negcache = (yyvsp[-1].number);
 }
-#line 1683 "config-parser.c" /* yacc.c:1646  */
+#line 1689 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 36:
-#line 149 "config-parser.y" /* yacc.c:1646  */
+  case 37:
+#line 151 "config-parser.y" /* yacc.c:1646  */
     {
   OptionsItem->negcache_rebuild = (yyvsp[-1].number);
 }
-#line 1691 "config-parser.c" /* yacc.c:1646  */
+#line 1697 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 37:
-#line 154 "config-parser.y" /* yacc.c:1646  */
+  case 38:
+#line 156 "config-parser.y" /* yacc.c:1646  */
     {
   xfree(OptionsItem->pidfile);
   OptionsItem->pidfile = xstrdup((yyvsp[-1].string));
 }
-#line 1700 "config-parser.c" /* yacc.c:1646  */
+#line 1706 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 38:
-#line 160 "config-parser.y" /* yacc.c:1646  */
+  case 39:
+#line 162 "config-parser.y" /* yacc.c:1646  */
     {
   OptionsItem->dns_fdlimit = (yyvsp[-1].number);
 }
-#line 1708 "config-parser.c" /* yacc.c:1646  */
+#line 1714 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 39:
-#line 165 "config-parser.y" /* yacc.c:1646  */
+  case 40:
+#line 167 "config-parser.y" /* yacc.c:1646  */
+    {
+  OptionsItem->dns_timeout = (yyvsp[-1].number);
+}
+#line 1722 "config-parser.c" /* yacc.c:1646  */
+    break;
+
+  case 41:
+#line 172 "config-parser.y" /* yacc.c:1646  */
     {
   xfree(OptionsItem->scanlog);
   OptionsItem->scanlog = xstrdup((yyvsp[-1].string));
 }
-#line 1717 "config-parser.c" /* yacc.c:1646  */
+#line 1731 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 62:
-#line 198 "config-parser.y" /* yacc.c:1646  */
+  case 64:
+#line 205 "config-parser.y" /* yacc.c:1646  */
     {
   xfree(IRCItem->away);
   IRCItem->away = xstrdup((yyvsp[-1].string));
 }
-#line 1726 "config-parser.c" /* yacc.c:1646  */
+#line 1740 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 63:
-#line 204 "config-parser.y" /* yacc.c:1646  */
+  case 65:
+#line 211 "config-parser.y" /* yacc.c:1646  */
     {
   xfree(IRCItem->kline);
   IRCItem->kline = xstrdup((yyvsp[-1].string));
 }
-#line 1735 "config-parser.c" /* yacc.c:1646  */
+#line 1749 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 64:
-#line 210 "config-parser.y" /* yacc.c:1646  */
+  case 66:
+#line 217 "config-parser.y" /* yacc.c:1646  */
     {
   xfree(IRCItem->mode);
   IRCItem->mode = xstrdup((yyvsp[-1].string));
 }
-#line 1744 "config-parser.c" /* yacc.c:1646  */
+#line 1758 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 65:
-#line 216 "config-parser.y" /* yacc.c:1646  */
+  case 67:
+#line 223 "config-parser.y" /* yacc.c:1646  */
     {
   xfree(IRCItem->nick);
   IRCItem->nick = xstrdup((yyvsp[-1].string));
 }
-#line 1753 "config-parser.c" /* yacc.c:1646  */
+#line 1767 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 66:
-#line 222 "config-parser.y" /* yacc.c:1646  */
+  case 68:
+#line 229 "config-parser.y" /* yacc.c:1646  */
     {
   xfree(IRCItem->nickserv);
   IRCItem->nickserv = xstrdup((yyvsp[-1].string));
 }
-#line 1762 "config-parser.c" /* yacc.c:1646  */
+#line 1776 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 67:
-#line 228 "config-parser.y" /* yacc.c:1646  */
+  case 69:
+#line 235 "config-parser.y" /* yacc.c:1646  */
     {
   xfree(IRCItem->oper);
   IRCItem->oper = xstrdup((yyvsp[-1].string));
 }
-#line 1771 "config-parser.c" /* yacc.c:1646  */
+#line 1785 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 68:
-#line 234 "config-parser.y" /* yacc.c:1646  */
+  case 70:
+#line 241 "config-parser.y" /* yacc.c:1646  */
     {
   xfree(IRCItem->password);
   IRCItem->password = xstrdup((yyvsp[-1].string));
 }
-#line 1780 "config-parser.c" /* yacc.c:1646  */
+#line 1794 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 69:
-#line 240 "config-parser.y" /* yacc.c:1646  */
+  case 71:
+#line 247 "config-parser.y" /* yacc.c:1646  */
     {
   node_t *node;
 
   node = node_create(xstrdup((yyvsp[-1].string)));
   list_add(IRCItem->performs, node);
 }
-#line 1791 "config-parser.c" /* yacc.c:1646  */
+#line 1805 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 70:
-#line 248 "config-parser.y" /* yacc.c:1646  */
+  case 72:
+#line 255 "config-parser.y" /* yacc.c:1646  */
     {
   node_t *node;
 
   node = node_create(xstrdup((yyvsp[-1].string)));
   list_add(IRCItem->notices, node);
 }
-#line 1802 "config-parser.c" /* yacc.c:1646  */
+#line 1816 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 71:
-#line 256 "config-parser.y" /* yacc.c:1646  */
+  case 73:
+#line 263 "config-parser.y" /* yacc.c:1646  */
     {
   IRCItem->port = (yyvsp[-1].number);
 }
-#line 1810 "config-parser.c" /* yacc.c:1646  */
+#line 1824 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 72:
-#line 261 "config-parser.y" /* yacc.c:1646  */
+  case 74:
+#line 268 "config-parser.y" /* yacc.c:1646  */
     {
   IRCItem->readtimeout = (yyvsp[-1].number);
 }
-#line 1818 "config-parser.c" /* yacc.c:1646  */
+#line 1832 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 73:
-#line 266 "config-parser.y" /* yacc.c:1646  */
+  case 75:
+#line 273 "config-parser.y" /* yacc.c:1646  */
     {
   IRCItem->reconnectinterval = (yyvsp[-1].number);
 }
-#line 1826 "config-parser.c" /* yacc.c:1646  */
+#line 1840 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 74:
-#line 271 "config-parser.y" /* yacc.c:1646  */
+  case 76:
+#line 278 "config-parser.y" /* yacc.c:1646  */
     {
   xfree(IRCItem->realname);
   IRCItem->realname = xstrdup((yyvsp[-1].string));
 }
-#line 1835 "config-parser.c" /* yacc.c:1646  */
+#line 1849 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 75:
-#line 277 "config-parser.y" /* yacc.c:1646  */
+  case 77:
+#line 284 "config-parser.y" /* yacc.c:1646  */
     {
   xfree(IRCItem->server);
   IRCItem->server = xstrdup((yyvsp[-1].string));
 }
-#line 1844 "config-parser.c" /* yacc.c:1646  */
+#line 1858 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 76:
-#line 283 "config-parser.y" /* yacc.c:1646  */
+  case 78:
+#line 290 "config-parser.y" /* yacc.c:1646  */
     {
   xfree(IRCItem->username);
   IRCItem->username = xstrdup((yyvsp[-1].string));
 }
-#line 1853 "config-parser.c" /* yacc.c:1646  */
+#line 1867 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 77:
-#line 289 "config-parser.y" /* yacc.c:1646  */
+  case 79:
+#line 296 "config-parser.y" /* yacc.c:1646  */
     {
   xfree(IRCItem->vhost);
   IRCItem->vhost = xstrdup((yyvsp[-1].string));
 }
-#line 1862 "config-parser.c" /* yacc.c:1646  */
+#line 1876 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 78:
-#line 295 "config-parser.y" /* yacc.c:1646  */
+  case 80:
+#line 302 "config-parser.y" /* yacc.c:1646  */
     {
   xfree(IRCItem->connregex);
   IRCItem->connregex = xstrdup((yyvsp[-1].string));
 }
-#line 1871 "config-parser.c" /* yacc.c:1646  */
+#line 1885 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 79:
-#line 303 "config-parser.y" /* yacc.c:1646  */
+  case 81:
+#line 310 "config-parser.y" /* yacc.c:1646  */
     {
   node_t *node;
   struct ChannelConf *item;
@@ -1886,44 +1900,44 @@ yyreduce:
   list_add(IRCItem->channels, node);
   tmp = item;
 }
-#line 1890 "config-parser.c" /* yacc.c:1646  */
+#line 1904 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 86:
-#line 327 "config-parser.y" /* yacc.c:1646  */
+  case 88:
+#line 334 "config-parser.y" /* yacc.c:1646  */
     {
   struct ChannelConf *item = tmp;
 
   xfree(item->name);
   item->name = xstrdup((yyvsp[-1].string));
 }
-#line 1901 "config-parser.c" /* yacc.c:1646  */
+#line 1915 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 87:
-#line 335 "config-parser.y" /* yacc.c:1646  */
+  case 89:
+#line 342 "config-parser.y" /* yacc.c:1646  */
     {
   struct ChannelConf *item = tmp;
 
   xfree(item->key);
   item->key = xstrdup((yyvsp[-1].string));
 }
-#line 1912 "config-parser.c" /* yacc.c:1646  */
+#line 1926 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 88:
-#line 343 "config-parser.y" /* yacc.c:1646  */
+  case 90:
+#line 350 "config-parser.y" /* yacc.c:1646  */
     {
   struct ChannelConf *item = tmp;
 
   xfree(item->invite);
   item->invite = xstrdup((yyvsp[-1].string));
 }
-#line 1923 "config-parser.c" /* yacc.c:1646  */
+#line 1937 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 89:
-#line 353 "config-parser.y" /* yacc.c:1646  */
+  case 91:
+#line 360 "config-parser.y" /* yacc.c:1646  */
     {
   node_t *node;
   struct UserConf *item;
@@ -1937,11 +1951,11 @@ yyreduce:
   list_add(UserItemList, node);
   tmp = item;
 }
-#line 1941 "config-parser.c" /* yacc.c:1646  */
+#line 1955 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 96:
-#line 376 "config-parser.y" /* yacc.c:1646  */
+  case 98:
+#line 383 "config-parser.y" /* yacc.c:1646  */
     {
   struct UserConf *item = tmp;
   node_t *node;
@@ -1950,11 +1964,11 @@ yyreduce:
 
   list_add(item->masks, node);
 }
-#line 1954 "config-parser.c" /* yacc.c:1646  */
+#line 1968 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 97:
-#line 386 "config-parser.y" /* yacc.c:1646  */
+  case 99:
+#line 393 "config-parser.y" /* yacc.c:1646  */
     {
   struct UserConf *item = tmp;
   node_t *node;
@@ -1963,11 +1977,11 @@ yyreduce:
 
   list_add(item->scanners, node);
 }
-#line 1967 "config-parser.c" /* yacc.c:1646  */
+#line 1981 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 98:
-#line 398 "config-parser.y" /* yacc.c:1646  */
+  case 100:
+#line 405 "config-parser.y" /* yacc.c:1646  */
     {
   node_t *node;
   struct ScannerConf *item, *olditem;
@@ -2009,44 +2023,44 @@ yyreduce:
   list_add(ScannerItemList, node);
   tmp = item;
 }
-#line 2013 "config-parser.c" /* yacc.c:1646  */
+#line 2027 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 112:
-#line 456 "config-parser.y" /* yacc.c:1646  */
+  case 114:
+#line 463 "config-parser.y" /* yacc.c:1646  */
     {
   struct ScannerConf *item = tmp;
 
   xfree(item->name);
   item->name = xstrdup((yyvsp[-1].string));
 }
-#line 2024 "config-parser.c" /* yacc.c:1646  */
+#line 2038 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 113:
-#line 464 "config-parser.y" /* yacc.c:1646  */
+  case 115:
+#line 471 "config-parser.y" /* yacc.c:1646  */
     {
   struct ScannerConf *item = tmp;
 
   xfree(item->vhost);
   item->vhost = xstrdup((yyvsp[-1].string));
 }
-#line 2035 "config-parser.c" /* yacc.c:1646  */
+#line 2049 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 114:
-#line 472 "config-parser.y" /* yacc.c:1646  */
+  case 116:
+#line 479 "config-parser.y" /* yacc.c:1646  */
     {
   struct ScannerConf *item = tmp;
 
   xfree(item->target_ip);
   item->target_ip = xstrdup((yyvsp[-1].string));
 }
-#line 2046 "config-parser.c" /* yacc.c:1646  */
+#line 2060 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 115:
-#line 480 "config-parser.y" /* yacc.c:1646  */
+  case 117:
+#line 487 "config-parser.y" /* yacc.c:1646  */
     {
   struct ScannerConf *item = tmp;
   node_t *node;
@@ -2061,51 +2075,51 @@ yyreduce:
 
   list_add(item->target_string, node);
 }
-#line 2065 "config-parser.c" /* yacc.c:1646  */
+#line 2079 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 116:
-#line 496 "config-parser.y" /* yacc.c:1646  */
+  case 118:
+#line 503 "config-parser.y" /* yacc.c:1646  */
     {
   struct ScannerConf *item = tmp;
 
   item->fd = (yyvsp[-1].number);
 }
-#line 2075 "config-parser.c" /* yacc.c:1646  */
+#line 2089 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 117:
-#line 503 "config-parser.y" /* yacc.c:1646  */
+  case 119:
+#line 510 "config-parser.y" /* yacc.c:1646  */
     {
   struct ScannerConf *item = tmp;
 
   item->target_port = (yyvsp[-1].number);
 }
-#line 2085 "config-parser.c" /* yacc.c:1646  */
+#line 2099 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 118:
-#line 510 "config-parser.y" /* yacc.c:1646  */
+  case 120:
+#line 517 "config-parser.y" /* yacc.c:1646  */
     {
   struct ScannerConf *item = tmp;
 
   item->timeout = (yyvsp[-1].number);
 }
-#line 2095 "config-parser.c" /* yacc.c:1646  */
+#line 2109 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 119:
-#line 517 "config-parser.y" /* yacc.c:1646  */
+  case 121:
+#line 524 "config-parser.y" /* yacc.c:1646  */
     {
   struct ScannerConf *item = tmp;
 
   item->max_read = (yyvsp[-1].number);
 }
-#line 2105 "config-parser.c" /* yacc.c:1646  */
+#line 2119 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 120:
-#line 524 "config-parser.y" /* yacc.c:1646  */
+  case 122:
+#line 531 "config-parser.y" /* yacc.c:1646  */
     {
   struct ProtocolConf *item;
   struct ScannerConf *item2;
@@ -2120,38 +2134,38 @@ yyreduce:
   node = node_create(item);
   list_add(item2->protocols, node);
 }
-#line 2124 "config-parser.c" /* yacc.c:1646  */
+#line 2138 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 129:
-#line 553 "config-parser.y" /* yacc.c:1646  */
+  case 131:
+#line 560 "config-parser.y" /* yacc.c:1646  */
     {
   xfree(OpmItem->dnsbl_from);
   OpmItem->dnsbl_from = xstrdup((yyvsp[-1].string));
 }
-#line 2133 "config-parser.c" /* yacc.c:1646  */
+#line 2147 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 130:
-#line 559 "config-parser.y" /* yacc.c:1646  */
+  case 132:
+#line 566 "config-parser.y" /* yacc.c:1646  */
     {
   xfree(OpmItem->dnsbl_to);
   OpmItem->dnsbl_to = xstrdup((yyvsp[-1].string));
 }
-#line 2142 "config-parser.c" /* yacc.c:1646  */
+#line 2156 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 131:
-#line 565 "config-parser.y" /* yacc.c:1646  */
+  case 133:
+#line 572 "config-parser.y" /* yacc.c:1646  */
     {
   xfree(OpmItem->sendmail);
   OpmItem->sendmail = xstrdup((yyvsp[-1].string));
 }
-#line 2151 "config-parser.c" /* yacc.c:1646  */
+#line 2165 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 132:
-#line 573 "config-parser.y" /* yacc.c:1646  */
+  case 134:
+#line 580 "config-parser.y" /* yacc.c:1646  */
     {
   node_t *node;
   struct BlacklistConf *item;
@@ -2168,33 +2182,33 @@ yyreduce:
 
   tmp = item;
 }
-#line 2172 "config-parser.c" /* yacc.c:1646  */
+#line 2186 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 142:
-#line 602 "config-parser.y" /* yacc.c:1646  */
+  case 144:
+#line 609 "config-parser.y" /* yacc.c:1646  */
     {
   struct BlacklistConf *item = tmp;
 
   xfree(item->name);
   item->name = xstrdup((yyvsp[-1].string));
 }
-#line 2183 "config-parser.c" /* yacc.c:1646  */
+#line 2197 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 143:
-#line 610 "config-parser.y" /* yacc.c:1646  */
+  case 145:
+#line 617 "config-parser.y" /* yacc.c:1646  */
     {
   struct BlacklistConf *item = tmp;
 
   xfree(item->kline);
   item->kline = xstrdup((yyvsp[-1].string));
 }
-#line 2194 "config-parser.c" /* yacc.c:1646  */
+#line 2208 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 144:
-#line 618 "config-parser.y" /* yacc.c:1646  */
+  case 146:
+#line 625 "config-parser.y" /* yacc.c:1646  */
     {
   struct BlacklistConf *item = tmp;
 
@@ -2205,21 +2219,21 @@ yyreduce:
   else
     yyerror("Unknown blacklist type defined");
 }
-#line 2209 "config-parser.c" /* yacc.c:1646  */
+#line 2223 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 145:
-#line 630 "config-parser.y" /* yacc.c:1646  */
+  case 147:
+#line 637 "config-parser.y" /* yacc.c:1646  */
     {
   struct BlacklistConf *item = tmp;
 
   item->ban_unknown = (yyvsp[-1].number);
 }
-#line 2219 "config-parser.c" /* yacc.c:1646  */
+#line 2233 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 149:
-#line 642 "config-parser.y" /* yacc.c:1646  */
+  case 151:
+#line 649 "config-parser.y" /* yacc.c:1646  */
     {
   struct BlacklistReplyConf *item;
   struct BlacklistConf *blacklist = tmp;
@@ -2232,22 +2246,22 @@ yyreduce:
   node = node_create(item);
   list_add(blacklist->reply, node);
 }
-#line 2236 "config-parser.c" /* yacc.c:1646  */
+#line 2250 "config-parser.c" /* yacc.c:1646  */
     break;
 
-  case 155:
-#line 666 "config-parser.y" /* yacc.c:1646  */
+  case 157:
+#line 673 "config-parser.y" /* yacc.c:1646  */
     {
   node_t *node;
   node = node_create(xstrdup((yyvsp[-1].string)));
 
   list_add(ExemptItem->masks, node);
 }
-#line 2247 "config-parser.c" /* yacc.c:1646  */
+#line 2261 "config-parser.c" /* yacc.c:1646  */
     break;
 
 
-#line 2251 "config-parser.c" /* yacc.c:1646  */
+#line 2265 "config-parser.c" /* yacc.c:1646  */
       default: break;
     }
   /* User semantic actions sometimes alter yychar, and that requires
@@ -2475,5 +2489,5 @@ yyreturn:
 #endif
   return yyresult;
 }
-#line 673 "config-parser.y" /* yacc.c:1906  */
+#line 680 "config-parser.y" /* yacc.c:1906  */
 
index 62b3dbb16d6f9dccaa5de2c24a75737aa0712537..c8b84679375b0a0096bce7afff24be8a188231e9 100644 (file)
@@ -54,57 +54,58 @@ extern int yydebug;
     CHANNEL = 264,
     CONNREGEX = 265,
     DNS_FDLIMIT = 266,
-    DNSBL_FROM = 267,
-    DNSBL_TO = 268,
-    EXEMPT = 269,
-    FD = 270,
-    INVITE = 271,
-    IRC = 272,
-    KLINE = 273,
-    KEY = 274,
-    MASK = 275,
-    MAX_READ = 276,
-    MODE = 277,
-    NAME = 278,
-    NEGCACHE = 279,
-    NEGCACHE_REBUILD = 280,
-    NICK = 281,
-    NICKSERV = 282,
-    NOTICE = 283,
-    OPER = 284,
-    OPM = 285,
-    OPTIONS = 286,
-    PASSWORD = 287,
-    PERFORM = 288,
-    PIDFILE = 289,
-    PORT = 290,
-    PROTOCOL = 291,
-    READTIMEOUT = 292,
-    REALNAME = 293,
-    RECONNECTINTERVAL = 294,
-    REPLY = 295,
-    SCANLOG = 296,
-    SCANNER = 297,
-    SECONDS = 298,
-    MINUTES = 299,
-    HOURS = 300,
-    DAYS = 301,
-    WEEKS = 302,
-    MONTHS = 303,
-    YEARS = 304,
-    SENDMAIL = 305,
-    SERVER = 306,
-    TARGET_IP = 307,
-    TARGET_PORT = 308,
-    TARGET_STRING = 309,
-    TIMEOUT = 310,
-    TYPE = 311,
-    USERNAME = 312,
-    USER = 313,
-    VHOST = 314,
-    NUMBER = 315,
-    STRING = 316,
-    PROTOCOLTYPE = 317
+    DNS_TIMEOUT = 267,
+    DNSBL_FROM = 268,
+    DNSBL_TO = 269,
+    EXEMPT = 270,
+    FD = 271,
+    INVITE = 272,
+    IRC = 273,
+    KLINE = 274,
+    KEY = 275,
+    MASK = 276,
+    MAX_READ = 277,
+    MODE = 278,
+    NAME = 279,
+    NEGCACHE = 280,
+    NEGCACHE_REBUILD = 281,
+    NICK = 282,
+    NICKSERV = 283,
+    NOTICE = 284,
+    OPER = 285,
+    OPM = 286,
+    OPTIONS = 287,
+    PASSWORD = 288,
+    PERFORM = 289,
+    PIDFILE = 290,
+    PORT = 291,
+    PROTOCOL = 292,
+    READTIMEOUT = 293,
+    REALNAME = 294,
+    RECONNECTINTERVAL = 295,
+    REPLY = 296,
+    SCANLOG = 297,
+    SCANNER = 298,
+    SECONDS = 299,
+    MINUTES = 300,
+    HOURS = 301,
+    DAYS = 302,
+    WEEKS = 303,
+    MONTHS = 304,
+    YEARS = 305,
+    SENDMAIL = 306,
+    SERVER = 307,
+    TARGET_IP = 308,
+    TARGET_PORT = 309,
+    TARGET_STRING = 310,
+    TIMEOUT = 311,
+    TYPE = 312,
+    USERNAME = 313,
+    USER = 314,
+    VHOST = 315,
+    NUMBER = 316,
+    STRING = 317,
+    PROTOCOLTYPE = 318
   };
 #endif
 /* Tokens.  */
@@ -117,69 +118,70 @@ extern int yydebug;
 #define CHANNEL 264
 #define CONNREGEX 265
 #define DNS_FDLIMIT 266
-#define DNSBL_FROM 267
-#define DNSBL_TO 268
-#define EXEMPT 269
-#define FD 270
-#define INVITE 271
-#define IRC 272
-#define KLINE 273
-#define KEY 274
-#define MASK 275
-#define MAX_READ 276
-#define MODE 277
-#define NAME 278
-#define NEGCACHE 279
-#define NEGCACHE_REBUILD 280
-#define NICK 281
-#define NICKSERV 282
-#define NOTICE 283
-#define OPER 284
-#define OPM 285
-#define OPTIONS 286
-#define PASSWORD 287
-#define PERFORM 288
-#define PIDFILE 289
-#define PORT 290
-#define PROTOCOL 291
-#define READTIMEOUT 292
-#define REALNAME 293
-#define RECONNECTINTERVAL 294
-#define REPLY 295
-#define SCANLOG 296
-#define SCANNER 297
-#define SECONDS 298
-#define MINUTES 299
-#define HOURS 300
-#define DAYS 301
-#define WEEKS 302
-#define MONTHS 303
-#define YEARS 304
-#define SENDMAIL 305
-#define SERVER 306
-#define TARGET_IP 307
-#define TARGET_PORT 308
-#define TARGET_STRING 309
-#define TIMEOUT 310
-#define TYPE 311
-#define USERNAME 312
-#define USER 313
-#define VHOST 314
-#define NUMBER 315
-#define STRING 316
-#define PROTOCOLTYPE 317
+#define DNS_TIMEOUT 267
+#define DNSBL_FROM 268
+#define DNSBL_TO 269
+#define EXEMPT 270
+#define FD 271
+#define INVITE 272
+#define IRC 273
+#define KLINE 274
+#define KEY 275
+#define MASK 276
+#define MAX_READ 277
+#define MODE 278
+#define NAME 279
+#define NEGCACHE 280
+#define NEGCACHE_REBUILD 281
+#define NICK 282
+#define NICKSERV 283
+#define NOTICE 284
+#define OPER 285
+#define OPM 286
+#define OPTIONS 287
+#define PASSWORD 288
+#define PERFORM 289
+#define PIDFILE 290
+#define PORT 291
+#define PROTOCOL 292
+#define READTIMEOUT 293
+#define REALNAME 294
+#define RECONNECTINTERVAL 295
+#define REPLY 296
+#define SCANLOG 297
+#define SCANNER 298
+#define SECONDS 299
+#define MINUTES 300
+#define HOURS 301
+#define DAYS 302
+#define WEEKS 303
+#define MONTHS 304
+#define YEARS 305
+#define SENDMAIL 306
+#define SERVER 307
+#define TARGET_IP 308
+#define TARGET_PORT 309
+#define TARGET_STRING 310
+#define TIMEOUT 311
+#define TYPE 312
+#define USERNAME 313
+#define USER 314
+#define VHOST 315
+#define NUMBER 316
+#define STRING 317
+#define PROTOCOLTYPE 318
 
 /* Value type.  */
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 
 union YYSTYPE
 {
-#line 85 "config-parser.y" /* yacc.c:1909  */
+#line 86 "config-parser.y" /* yacc.c:1909  */
 
   int number;
   char *string;
 
-#line 183 "config-parser.h" /* yacc.c:1909  */
+#line 185 "config-parser.h" /* yacc.c:1909  */
 };
 
 typedef union YYSTYPE YYSTYPE;