Diff for /embedaddon/ipsec-tools/src/racoon/cfparse.c between versions 1.1.1.1 and 1.1.1.2

version 1.1.1.1, 2012/02/21 22:39:10 version 1.1.1.2, 2014/06/15 16:37:11
Line 1 Line 1
   /* A Bison parser, made by GNU Bison 2.6.2.  */
   
/* A Bison parser, made by GNU Bison 2.4.1.  *//* Bison implementation for Yacc-like parsers in C
 
/* Skeleton implementation for Bison's Yacc-like parsers in C 
         
      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006      Copyright (C) 1984, 1989-1990, 2000-2012 Free Software Foundation, Inc.
   Free Software Foundation, Inc. 
         
    This program is free software: you can redistribute it and/or modify     This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by     it under the terms of the GNU General Public License as published by
Line 46 Line 44
 #define YYBISON 1  #define YYBISON 1
   
 /* Bison version.  */  /* Bison version.  */
#define YYBISON_VERSION "2.4.1"#define YYBISON_VERSION "2.6.2"
   
 /* Skeleton name.  */  /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"  #define YYSKELETON_NAME "yacc.c"
Line 60 Line 58
 /* Pull parsers.  */  /* Pull parsers.  */
 #define YYPULL 1  #define YYPULL 1
   
 /* Using locations.  */  
 #define YYLSP_NEEDED 0  
   
   
   
 /* Copy the first part of user declarations.  */  /* Copy the first part of user declarations.  */
/* Line 336 of yacc.c  */
/* Line 189 of yacc.c  */ 
 #line 5 "cfparse.y"  #line 5 "cfparse.y"
   
 /*  /*
Line 239  static int load_x509(const char *file, char **filename Line 234  static int load_x509(const char *file, char **filename
         return 0;          return 0;
 }  }
   
   static int process_rmconf()
   {
   
           /* check a exchange mode */
           if (cur_rmconf->etypes == NULL) {
                   yyerror("no exchange mode specified.\n");
                   return -1;
           }
   
/* Line 189 of yacc.c  */        if (cur_rmconf->idvtype == IDTYPE_UNDEFINED)
#line 246 "cfparse.c"                cur_rmconf->idvtype = IDTYPE_ADDRESS;
   
/* Enabling traces.  */        if (cur_rmconf->idvtype == IDTYPE_ASN1DN) {
#ifndef YYDEBUG                if (cur_rmconf->mycertfile) {
# define YYDEBUG 0                        if (cur_rmconf->idv)
#endif                                yywarn("Both CERT and ASN1 ID "
                                        "are set. Hope this is OK.\n");
                         /* TODO: Preparse the DN here */
                 } else if (cur_rmconf->idv) {
                         /* OK, using asn1dn without X.509. */
                 } else {
                         yyerror("ASN1 ID not specified "
                                 "and no CERT defined!\n");
                         return -1;
                 }
         }
   
           if (duprmconf_finish(cur_rmconf))
                   return -1;
   
           if (set_isakmp_proposal(cur_rmconf) != 0)
                   return -1;
   
           /* DH group settting if aggressive mode is there. */
           if (check_etypeok(cur_rmconf, (void*) ISAKMP_ETYPE_AGG)) {
                   struct isakmpsa *p;
                   int b = 0;
   
                   /* DH group */
                   for (p = cur_rmconf->proposal; p; p = p->next) {
                           if (b == 0 || (b && b == p->dh_group)) {
                                   b = p->dh_group;
                                   continue;
                           }
                           yyerror("DH group must be equal "
                                   "in all proposals "
                                   "when aggressive mode is "
                                   "used.\n");
                           return -1;
                   }
                   cur_rmconf->dh_group = b;
   
                   if (cur_rmconf->dh_group == 0) {
                           yyerror("DH group must be set in the proposal.\n");
                           return -1;
                   }
   
                   /* DH group settting if PFS is required. */
                   if (oakley_setdhgroup(cur_rmconf->dh_group,
                                   &cur_rmconf->dhgrp) < 0) {
                           yyerror("failed to set DH value.\n");
                           return -1;
                   }
           }
   
           insrmconf(cur_rmconf);
   
           return 0;
   }
   
   
   /* Line 336 of yacc.c  */
   #line 310 "cfparse.c"
   
   # ifndef YY_NULL
   #  if defined __cplusplus && 201103L <= __cplusplus
   #   define YY_NULL nullptr
   #  else
   #   define YY_NULL 0
   #  endif
   # endif
   
 /* Enabling verbose error messages.  */  /* Enabling verbose error messages.  */
 #ifdef YYERROR_VERBOSE  #ifdef YYERROR_VERBOSE
 # undef YYERROR_VERBOSE  # undef YYERROR_VERBOSE
Line 257  static int load_x509(const char *file, char **filename Line 324  static int load_x509(const char *file, char **filename
 # define YYERROR_VERBOSE 0  # define YYERROR_VERBOSE 0
 #endif  #endif
   
/* Enabling the token table.  *//* In a future release of Bison, this section will be replaced
#ifndef YYTOKEN_TABLE   by #include "y.tab.h".  */
# define YYTOKEN_TABLE 0#ifndef YY_Y_TAB_H
 # define YY_Y_TAB_H
 /* Enabling traces.  */
 #ifndef YYDEBUG
 # define YYDEBUG 0
 #endif  #endif
   #if YYDEBUG
   extern int yydebug;
   #endif
   
   
 /* Tokens.  */  /* Tokens.  */
 #ifndef YYTOKENTYPE  #ifndef YYTOKENTYPE
 # define YYTOKENTYPE  # define YYTOKENTYPE
Line 617  static int load_x509(const char *file, char **filename Line 690  static int load_x509(const char *file, char **filename
   
   
   
   
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED  #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE  typedef union YYSTYPE
 {  {
   /* Line 350 of yacc.c  */
   #line 247 "cfparse.y"
   
 /* Line 214 of yacc.c  */  
 #line 177 "cfparse.y"  
   
         unsigned long num;          unsigned long num;
         vchar_t *val;          vchar_t *val;
         struct remoteconf *rmconf;          struct remoteconf *rmconf;
Line 632  typedef union YYSTYPE Line 703  typedef union YYSTYPE
         struct sainfoalg *alg;          struct sainfoalg *alg;
   
   
/* Line 350 of yacc.c  */
/* Line 214 of yacc.c  */#line 708 "cfparse.c"
#line 638 "cfparse.c" 
 } YYSTYPE;  } YYSTYPE;
 # define YYSTYPE_IS_TRIVIAL 1  # define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */  # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1  # define YYSTYPE_IS_DECLARED 1
 #endif  #endif
   
   extern YYSTYPE yylval;
   
/* Copy the second part of user declarations.  */#ifdef YYPARSE_PARAM
 #if defined __STDC__ || defined __cplusplus
 int yyparse (void *YYPARSE_PARAM);
 #else
 int yyparse ();
 #endif
 #else /* ! YYPARSE_PARAM */
 #if defined __STDC__ || defined __cplusplus
 int yyparse (void);
 #else
 int yyparse ();
 #endif
 #endif /* ! YYPARSE_PARAM */
   
   #endif /* !YY_Y_TAB_H  */
   
/* Line 264 of yacc.c  *//* Copy the second part of user declarations.  */
#line 650 "cfparse.c" 
   
   /* Line 353 of yacc.c  */
   #line 736 "cfparse.c"
   
 #ifdef short  #ifdef short
 # undef short  # undef short
 #endif  #endif
Line 696  typedef short int yytype_int16; Line 782  typedef short int yytype_int16;
 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)  #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
   
 #ifndef YY_  #ifndef YY_
# if YYENABLE_NLS# if defined YYENABLE_NLS && YYENABLE_NLS
 #  if ENABLE_NLS  #  if ENABLE_NLS
 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */  #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
 #   define YY_(msgid) dgettext ("bison-runtime", msgid)  #   define YY_(msgid) dgettext ("bison-runtime", msgid)
Line 749  YYID (yyi) Line 835  YYID (yyi)
 #    define alloca _alloca  #    define alloca _alloca
 #   else  #   else
 #    define YYSTACK_ALLOC alloca  #    define YYSTACK_ALLOC alloca
#    if ! defined _ALLOCA_H && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \#    if ! defined _ALLOCA_H && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)       || defined __cplusplus || defined _MSC_VER)
 #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */  #     include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
#     ifndef _STDLIB_H      /* Use EXIT_SUCCESS as a witness for stdlib.h.  */
#      define _STDLIB_H 1#     ifndef EXIT_SUCCESS
 #      define EXIT_SUCCESS 0
 #     endif  #     endif
 #    endif  #    endif
 #   endif  #   endif
Line 776  YYID (yyi) Line 863  YYID (yyi)
 #  ifndef YYSTACK_ALLOC_MAXIMUM  #  ifndef YYSTACK_ALLOC_MAXIMUM
 #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM  #   define YYSTACK_ALLOC_MAXIMUM YYSIZE_MAXIMUM
 #  endif  #  endif
#  if (defined __cplusplus && ! defined _STDLIB_H \#  if (defined __cplusplus && ! defined EXIT_SUCCESS \
        && ! ((defined YYMALLOC || defined malloc) \         && ! ((defined YYMALLOC || defined malloc) \
              && (defined YYFREE || defined free)))               && (defined YYFREE || defined free)))
 #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */  #   include <stdlib.h> /* INFRINGES ON USER NAME SPACE */
#   ifndef _STDLIB_H#   ifndef EXIT_SUCCESS
#    define _STDLIB_H 1#    define EXIT_SUCCESS 0
 #   endif  #   endif
 #  endif  #  endif
 #  ifndef YYMALLOC  #  ifndef YYMALLOC
 #   define YYMALLOC malloc  #   define YYMALLOC malloc
#   if ! defined malloc && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \#   if ! defined malloc && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)       || defined __cplusplus || defined _MSC_VER)
 void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */  void *malloc (YYSIZE_T); /* INFRINGES ON USER NAME SPACE */
 #   endif  #   endif
 #  endif  #  endif
 #  ifndef YYFREE  #  ifndef YYFREE
 #   define YYFREE free  #   define YYFREE free
#   if ! defined free && ! defined _STDLIB_H && (defined __STDC__ || defined __C99__FUNC__ \#   if ! defined free && ! defined EXIT_SUCCESS && (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)       || defined __cplusplus || defined _MSC_VER)
 void free (void *); /* INFRINGES ON USER NAME SPACE */  void free (void *); /* INFRINGES ON USER NAME SPACE */
 #   endif  #   endif
Line 822  union yyalloc Line 909  union yyalloc
      ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \       ((N) * (sizeof (yytype_int16) + sizeof (YYSTYPE)) \
       + YYSTACK_GAP_MAXIMUM)        + YYSTACK_GAP_MAXIMUM)
   
/* Copy COUNT objects from FROM to TO.  The source and destination do# define YYCOPY_NEEDED 1
   not overlap.  */ 
# ifndef YYCOPY 
#  if defined __GNUC__ && 1 < __GNUC__ 
#   define YYCOPY(To, From, Count) \ 
      __builtin_memcpy (To, From, (Count) * sizeof (*(From))) 
#  else 
#   define YYCOPY(To, From, Count)              \ 
      do                                        \ 
        {                                       \ 
          YYSIZE_T yyi;                         \ 
          for (yyi = 0; yyi < (Count); yyi++)   \ 
            (To)[yyi] = (From)[yyi];            \ 
        }                                       \ 
      while (YYID (0)) 
#  endif 
# endif 
   
 /* Relocate STACK from its old location to the new one.  The  /* Relocate STACK from its old location to the new one.  The
    local variables YYSIZE and YYSTACKSIZE give the old and new number of     local variables YYSIZE and YYSTACKSIZE give the old and new number of
Line 858  union yyalloc Line 929  union yyalloc
   
 #endif  #endif
   
   #if defined YYCOPY_NEEDED && YYCOPY_NEEDED
   /* Copy COUNT objects from SRC to DST.  The source and destination do
      not overlap.  */
   # ifndef YYCOPY
   #  if defined __GNUC__ && 1 < __GNUC__
   #   define YYCOPY(Dst, Src, Count) \
         __builtin_memcpy (Dst, Src, (Count) * sizeof (*(Src)))
   #  else
   #   define YYCOPY(Dst, Src, Count)              \
         do                                        \
           {                                       \
             YYSIZE_T yyi;                         \
             for (yyi = 0; yyi < (Count); yyi++)   \
               (Dst)[yyi] = (Src)[yyi];            \
           }                                       \
         while (YYID (0))
   #  endif
   # endif
   #endif /* !YYCOPY_NEEDED */
   
 /* YYFINAL -- State number of the termination state.  */  /* YYFINAL -- State number of the termination state.  */
 #define YYFINAL  2  #define YYFINAL  2
 /* YYLAST -- Last index in YYTABLE.  */  /* YYLAST -- Last index in YYTABLE.  */
#define YYLAST   548#define YYLAST   534
   
 /* YYNTOKENS -- Number of terminals.  */  /* YYNTOKENS -- Number of terminals.  */
 #define YYNTOKENS  174  #define YYNTOKENS  174
 /* YYNNTS -- Number of nonterminals.  */  /* YYNNTS -- Number of nonterminals.  */
#define YYNNTS  203#define YYNNTS  204
 /* YYNRULES -- Number of rules.  */  /* YYNRULES -- Number of rules.  */
#define YYNRULES  379#define YYNRULES  381
 /* YYNRULES -- Number of states.  */  /* YYNRULES -- Number of states.  */
#define YYNSTATES  689#define YYNSTATES  691
   
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */  /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2  #define YYUNDEFTOK  2
Line 957  static const yytype_uint16 yyprhs[] = Line 1048  static const yytype_uint16 yyprhs[] =
      656,   657,   662,   663,   670,   671,   678,   679,   684,   686,       656,   657,   662,   663,   670,   671,   678,   679,   684,   686,
      687,   692,   695,   696,   698,   699,   701,   703,   705,   707,       687,   692,   695,   696,   698,   699,   701,   703,   705,   707,
      709,   710,   712,   713,   720,   721,   726,   727,   734,   735,       709,   710,   712,   713,   720,   721,   726,   727,   734,   735,
     740,   744,   747,   749,   750,   753,   754,   759,   760,   765,     740,   742,   744,   748,   751,   753,   754,   757,   758,   763,
     766,   771,   772,   777,   780,   781,   786,   787,   793,   794,     764,   769,   770,   775,   776,   781,   784,   785,   790,   791,
     800,   801,   806,   807,   813,   814,   819,   820,   825,   826,     797,   798,   804,   805,   810,   811,   817,   818,   823,   824,
     831,   832,   837,   838,   844,   845,   852,   853,   858,   859,     829,   830,   835,   836,   841,   842,   848,   849,   856,   857,
     865,   866,   873,   874,   879,   880,   885,   886,   891,   892,     862,   863,   869,   870,   877,   878,   883,   884,   889,   890,
     897,   898,   903,   904,   909,   910,   915,   916,   922,   923,     895,   896,   901,   902,   907,   908,   913,   914,   919,   920,
     929,   930,   936,   937,   942,   943,   948,   949,   954,   955,     926,   927,   933,   934,   940,   941,   946,   947,   952,   953,
     960,   961,   966,   967,   972,   973,   978,   979,   984,   985,     958,   959,   964,   965,   970,   971,   976,   977,   982,   983,
     990,   991,   996,   997,  1002,  1003,  1008,  1009,  1014,  1015,     988,   989,   994,   995,  1000,  1001,  1006,  1007,  1012,  1013,
    1020,  1021,  1026,  1027,  1034,  1035,  1040,  1041,  1048,  1049,    1018,  1019,  1024,  1025,  1030,  1031,  1038,  1039,  1044,  1045,
    1055,  1056,  1059,  1060,  1066,  1067,  1072,  1074,  1076,  1077,    1052,  1053,  1059,  1060,  1063,  1064,  1070,  1071,  1076,  1078,
    1079,  1081,  1082,  1085,  1086,  1093,  1094,  1101,  1102,  1107,    1080,  1081,  1083,  1085,  1086,  1089,  1090,  1097,  1098,  1105,
    1108,  1113,  1114,  1120,  1122,  1124,  1126,  1128,  1130,  1132    1106,  1111,  1112,  1117,  1118,  1124,  1126,  1128,  1130,  1132,
     1134,  1136
 };  };
   
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */  /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
Line 1031  static const yytype_int16 yyrhs[] = Line 1123  static const yytype_int16 yyrhs[] =
       -1,   274,   173,   273,    -1,   160,    -1,   276,    -1,   276,        -1,   274,   173,   273,    -1,   160,    -1,   276,    -1,   276,
      173,   275,    -1,   160,    -1,    70,   171,   278,   172,    -1,       173,   275,    -1,   160,    -1,    70,   171,   278,   172,    -1,
       -1,   278,   279,    -1,    -1,    71,   156,   280,   170,    -1,        -1,   278,   279,    -1,    -1,    71,   156,   280,   170,    -1,
      -1,    72,   156,   375,   281,   170,    -1,    -1,    73,   156,      -1,    72,   156,   376,   281,   170,    -1,    -1,    73,   156,
     282,   170,    -1,    -1,    74,   156,   375,   283,   170,    -1,     282,   170,    -1,    -1,    74,   156,   376,   283,   170,    -1,
      -1,    75,   156,   375,   284,   170,    -1,    -1,    76,   156,      -1,    75,   156,   376,   284,   170,    -1,    -1,    76,   156,
     375,   285,   170,    -1,    -1,    -1,    80,   287,   289,   291,     376,   285,   170,    -1,    -1,    -1,    80,   287,   289,   291,
      171,   292,   288,   172,    -1,    83,    -1,    83,    84,    -1,       171,   292,   288,   172,    -1,    83,    -1,    83,    84,    -1,
       83,   290,    -1,   290,    83,    -1,   290,    84,    -1,   290,        83,   290,    -1,   290,    83,    -1,   290,    84,    -1,   290,
      290,    -1,   101,   161,   302,   303,   304,    -1,   101,   161,       290,    -1,   101,   161,   302,   303,   304,    -1,   101,   161,
      162,   302,   303,   304,    -1,   101,   160,    -1,    -1,    81,       162,   302,   303,   304,    -1,   101,   160,    -1,    -1,    81,
     101,   367,    -1,     5,   160,    -1,    -1,   292,   293,    -1,     101,   368,    -1,     5,   160,    -1,    -1,   292,   293,    -1,
      -1,   146,   366,   294,   170,    -1,    -1,   151,   156,   295,      -1,   146,   367,   294,   170,    -1,    -1,   151,   156,   295,
     170,    -1,    -1,   147,   148,   156,   375,   296,   170,    -1,     170,    -1,    -1,   147,   148,   156,   376,   296,   170,    -1,
      -1,   147,   149,   156,   376,   297,   170,    -1,    -1,    77,      -1,   147,   149,   156,   377,   297,   170,    -1,    -1,    77,
      298,   299,   170,    -1,   301,    -1,    -1,   301,   300,   173,       298,   299,   170,    -1,   301,    -1,    -1,   301,   300,   173,
      299,    -1,    78,   305,    -1,    -1,   138,    -1,    -1,   139,       299,    -1,    78,   305,    -1,    -1,   138,    -1,    -1,   139,
       -1,   140,    -1,   156,    -1,   141,    -1,   142,    -1,    -1,        -1,   140,    -1,   156,    -1,   141,    -1,   142,    -1,    -1,
      156,    -1,    -1,    82,   160,    85,   160,   307,   311,    -1,       156,    -1,    -1,    82,   160,    85,   160,   307,   311,    -1,
      -1,    82,   160,   308,   311,    -1,    -1,    82,   312,    85,      -1,    82,   160,   308,   312,    -1,    -1,    82,   313,    85,
     312,   309,   311,    -1,    -1,    82,   312,   310,   311,    -1,     313,   309,   311,    -1,    -1,    82,   313,   310,   312,    -1,
     171,   313,   172,    -1,    83,   212,    -1,   211,    -1,    -1,     312,    -1,   170,    -1,   171,   314,   172,    -1,    83,   212,
     313,   314,    -1,    -1,    86,   211,   315,   170,    -1,    -1,      -1,   211,    -1,    -1,   314,   315,    -1,    -1,    86,   211,
      87,   316,   362,   170,    -1,    -1,    89,    90,   317,   170,     316,   170,    -1,    -1,    87,   317,   363,   170,    -1,    -1,
      -1,    -1,    91,    92,   318,   170,    -1,    93,   363,    -1,      89,    90,   318,   170,    -1,    -1,    91,    92,   319,   170,
      -1,    95,   160,   319,   170,    -1,    -1,    95,   107,   160,      -1,    93,   364,    -1,    -1,    95,   160,   320,   170,    -1,
     320,   170,    -1,    -1,    95,   108,   160,   321,   170,    -1,      -1,    95,   107,   160,   321,   170,    -1,    -1,    95,   108,
      -1,    95,   106,   322,   170,    -1,    -1,    96,   107,   160,     160,   322,   170,    -1,    -1,    95,   106,   323,   170,    -1,
     323,   170,    -1,    -1,    97,   157,   324,   170,    -1,    -1,      -1,    96,   107,   160,   324,   170,    -1,    -1,    97,   157,
      98,   157,   325,   170,    -1,    -1,    99,   157,   326,   170,     325,   170,    -1,    -1,    98,   157,   326,   170,    -1,    -1,
      -1,    -1,   100,   157,   327,   170,    -1,    -1,   103,   101,      99,   157,   327,   170,    -1,    -1,   100,   157,   328,   170,
     367,   328,   170,    -1,    -1,   103,   101,   102,   367,   329,      -1,    -1,   103,   101,   368,   329,   170,    -1,    -1,   103,
     170,    -1,    -1,   135,   367,   330,   170,    -1,    -1,   104,     101,   102,   368,   330,   170,    -1,    -1,   135,   368,   331,
     101,   367,   331,   170,    -1,    -1,   104,   101,   102,   367,     170,    -1,    -1,   104,   101,   368,   332,   170,    -1,    -1,
     332,   170,    -1,    -1,   105,   157,   333,   170,    -1,    -1,     104,   101,   102,   368,   333,   170,    -1,    -1,   105,   157,
     109,   156,   334,   170,    -1,    -1,   110,   335,   366,   170,     334,   170,    -1,    -1,   109,   156,   335,   170,    -1,    -1,
      -1,    -1,   112,   157,   336,   170,    -1,    -1,   143,   157,     110,   336,   367,   170,    -1,    -1,   112,   157,   337,   170,
     337,   170,    -1,    -1,   143,   115,   338,   170,    -1,    -1,      -1,    -1,   143,   157,   338,   170,    -1,    -1,   143,   115,
     144,   156,   339,   170,    -1,    -1,   152,   160,   153,   340,     339,   170,    -1,    -1,   144,   156,   340,   170,    -1,    -1,
     170,    -1,    -1,   152,   160,   154,   341,   170,    -1,    -1,     152,   160,   153,   341,   170,    -1,    -1,   152,   160,   154,
     152,   160,   155,   342,   170,    -1,    -1,   145,   157,   343,     342,   170,    -1,    -1,   152,   160,   155,   343,   170,    -1,
     170,    -1,    -1,   136,   157,   344,   170,    -1,    -1,   118,      -1,   145,   157,   344,   170,    -1,    -1,   136,   157,   345,
     157,   345,   170,    -1,    -1,   118,   119,   346,   170,    -1,     170,    -1,    -1,   118,   157,   346,   170,    -1,    -1,   118,
      -1,   120,   157,   347,   170,    -1,    -1,   113,   157,   348,     119,   347,   170,    -1,    -1,   120,   157,   348,   170,    -1,
     170,    -1,    -1,   114,   157,   349,   170,    -1,    -1,   114,      -1,   113,   157,   349,   170,    -1,    -1,   114,   157,   350,
     115,   350,   170,    -1,    -1,   130,   157,   351,   170,    -1,     170,    -1,    -1,   114,   115,   351,   170,    -1,    -1,   130,
      -1,   131,   156,   352,   170,    -1,    -1,   132,   156,   353,     157,   352,   170,    -1,    -1,   131,   156,   353,   170,    -1,
     170,    -1,    -1,   133,   156,   354,   170,    -1,    -1,   137,      -1,   132,   156,   354,   170,    -1,    -1,   133,   156,   355,
     157,   355,   170,    -1,    -1,   137,   115,   356,   170,    -1,     170,    -1,    -1,   137,   157,   356,   170,    -1,    -1,   137,
      -1,   134,   156,   357,   170,    -1,    -1,   147,   148,   156,     115,   357,   170,    -1,    -1,   134,   156,   358,   170,    -1,
     375,   358,   170,    -1,    -1,   116,   117,   359,   170,    -1,      -1,   147,   148,   156,   376,   359,   170,    -1,    -1,   116,
      -1,   147,   149,   156,   376,   360,   170,    -1,    -1,   121,     117,   360,   170,    -1,    -1,   147,   149,   156,   377,   361,
     361,   171,   368,   172,    -1,    -1,   362,    88,    -1,    -1,     170,    -1,    -1,   121,   362,   171,   369,   172,    -1,    -1,
     107,   160,   160,   364,   170,    -1,    -1,   108,   160,   365,     363,    88,    -1,    -1,   107,   160,   160,   365,   170,    -1,
     170,    -1,    78,    -1,   156,    -1,    -1,   161,    -1,   160,      -1,   108,   160,   366,   170,    -1,    78,    -1,   156,    -1,
      -1,    -1,   368,   369,    -1,    -1,   147,   148,   156,   375,      -1,   161,    -1,   160,    -1,    -1,   369,   370,    -1,    -1,
     370,   170,    -1,    -1,   147,   149,   156,   376,   371,   170,     147,   148,   156,   376,   371,   170,    -1,    -1,   147,   149,
      -1,    -1,   110,   366,   372,   170,    -1,    -1,   126,   160,     156,   377,   372,   170,    -1,    -1,   110,   367,   373,   170,
     373,   170,    -1,    -1,    77,    78,   305,   374,   170,    -1,      -1,    -1,   126,   160,   374,   170,    -1,    -1,    77,    78,
     167,    -1,   168,    -1,   169,    -1,   163,    -1,   164,    -1,     305,   375,   170,    -1,   167,    -1,   168,    -1,   169,    -1,
     165,    -1,   166,    -1     163,    -1,   164,    -1,   165,    -1,   166,    -1
 };  };
   
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */  /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
 static const yytype_uint16 yyrline[] =  static const yytype_uint16 yyrline[] =
 {  {
       0,   266,   266,   268,   271,   272,   273,   274,   275,   276,       0,   336,   336,   338,   341,   342,   343,   344,   345,   346,
     277,   278,   279,   280,   281,   282,   283,   284,   285,   290,     347,   348,   349,   350,   351,   352,   353,   354,   355,   360,
     292,   294,   298,   297,   308,   308,   310,   309,   320,   320,     362,   364,   368,   367,   378,   378,   380,   379,   390,   390,
     321,   321,   327,   326,   347,   347,   352,   366,   373,   385,     391,   391,   397,   396,   417,   417,   422,   436,   443,   455,
     388,   402,   404,   406,   409,   409,   410,   410,   411,   411,     458,   472,   474,   476,   479,   479,   480,   480,   481,   481,
     412,   412,   413,   413,   418,   420,   422,   426,   425,   432,     482,   482,   483,   483,   488,   490,   492,   496,   495,   502,
     431,   443,   442,   452,   451,   461,   460,   469,   469,   472,     501,   513,   512,   522,   521,   531,   530,   539,   539,   542,
     484,   485,   490,   490,   507,   509,   513,   512,   531,   530,     554,   555,   560,   560,   577,   579,   583,   582,   601,   600,
     549,   548,   567,   566,   585,   584,   594,   593,   606,   606,     619,   618,   637,   636,   655,   654,   664,   663,   676,   676,
     617,   619,   623,   622,   634,   633,   645,   644,   654,   653,     687,   689,   693,   692,   704,   703,   715,   714,   724,   723,
     665,   664,   674,   673,   685,   684,   696,   695,   707,   706,     735,   734,   744,   743,   755,   754,   766,   765,   777,   776,
     718,   717,   729,   728,   740,   739,   754,   756,   758,   762,     788,   787,   799,   798,   810,   809,   824,   826,   828,   832,
     761,   773,   772,   783,   785,   788,   787,   797,   796,   806,     831,   843,   842,   853,   855,   858,   857,   867,   866,   876,
     805,   813,   812,   825,   824,   834,   833,   847,   846,   860,     875,   883,   882,   895,   894,   904,   903,   917,   916,   930,
     859,   873,   872,   880,   879,   889,   888,   902,   901,   911,     929,   943,   942,   950,   949,   959,   958,   972,   971,   981,
     910,   920,   919,   933,   932,   946,   945,   956,   955,   965,     980,   990,   989,  1003,  1002,  1016,  1015,  1026,  1025,  1035,
     964,   974,   973,   983,   982,   992,   991,  1005,  1004,  1018,    1034,  1044,  1043,  1053,  1052,  1062,  1061,  1075,  1074,  1088,
    1017,  1031,  1032,  1035,  1052,  1053,  1056,  1073,  1074,  1077,    1087,  1101,  1102,  1105,  1122,  1123,  1126,  1143,  1144,  1147,
    1100,  1101,  1104,  1138,  1139,  1142,  1179,  1181,  1183,  1187,    1170,  1171,  1174,  1208,  1209,  1212,  1249,  1251,  1253,  1257,
    1186,  1192,  1191,  1197,  1196,  1202,  1201,  1207,  1206,  1212,    1256,  1262,  1261,  1267,  1266,  1272,  1271,  1277,  1276,  1282,
    1211,  1228,  1236,  1227,  1275,  1280,  1285,  1290,  1295,  1300,    1281,  1298,  1306,  1297,  1345,  1350,  1355,  1360,  1365,  1370,
    1307,  1356,  1421,  1450,  1453,  1478,  1491,  1493,  1497,  1496,    1377,  1426,  1491,  1520,  1523,  1548,  1561,  1563,  1567,  1566,
    1502,  1501,  1507,  1506,  1512,  1511,  1523,  1523,  1530,  1535,    1572,  1571,  1577,  1576,  1582,  1581,  1593,  1593,  1600,  1605,
    1534,  1541,  1597,  1598,  1601,  1602,  1603,  1606,  1607,  1608,    1604,  1611,  1667,  1668,  1671,  1672,  1673,  1676,  1677,  1678,
    1611,  1612,  1618,  1617,  1648,  1647,  1668,  1667,  1691,  1690,    1681,  1682,  1688,  1687,  1718,  1717,  1738,  1737,  1761,  1760,
    1707,  1784,  1790,  1799,  1801,  1805,  1804,  1814,  1813,  1818,    1777,  1778,  1786,  1793,  1799,  1808,  1810,  1814,  1813,  1823,
    1818,  1819,  1819,  1820,  1822,  1821,  1842,  1841,  1859,  1858,    1822,  1827,  1827,  1828,  1828,  1829,  1831,  1830,  1851,  1850,
    1889,  1888,  1903,  1902,  1919,  1919,  1920,  1920,  1921,  1921,    1868,  1867,  1898,  1897,  1912,  1911,  1928,  1928,  1929,  1929,
    1922,  1922,  1924,  1923,  1933,  1932,  1942,  1941,  1959,  1958,    1930,  1930,  1931,  1931,  1933,  1932,  1942,  1941,  1951,  1950,
    1976,  1975,  1992,  1992,  1993,  1993,  1995,  1994,  2000,  2000,    1968,  1967,  1985,  1984,  2001,  2001,  2002,  2002,  2004,  2003,
    2001,  2001,  2002,  2002,  2003,  2003,  2013,  2013,  2020,  2020,    2009,  2009,  2010,  2010,  2011,  2011,  2012,  2012,  2022,  2022,
    2027,  2027,  2034,  2034,  2035,  2035,  2038,  2038,  2039,  2039,    2029,  2029,  2036,  2036,  2043,  2043,  2044,  2044,  2047,  2047,
    2040,  2040,  2041,  2041,  2043,  2042,  2054,  2053,  2065,  2064,    2048,  2048,  2049,  2049,  2050,  2050,  2052,  2051,  2063,  2062,
    2073,  2072,  2082,  2081,  2091,  2090,  2099,  2099,  2100,  2100,    2074,  2073,  2082,  2081,  2091,  2090,  2100,  2099,  2108,  2108,
    2102,  2101,  2107,  2106,  2111,  2111,  2113,  2112,  2127,  2126,    2109,  2109,  2111,  2110,  2116,  2115,  2120,  2120,  2122,  2121,
    2137,  2139,  2163,  2162,  2184,  2183,  2217,  2225,  2237,  2238,    2136,  2135,  2146,  2148,  2172,  2171,  2193,  2192,  2226,  2234,
    2239,  2241,  2243,  2247,  2246,  2252,  2251,  2264,  2263,  2269,    2246,  2247,  2248,  2250,  2252,  2256,  2255,  2261,  2260,  2273,
    2268,  2282,  2281,  2379,  2380,  2381,  2384,  2385,  2386,  2387    2272,  2278,  2277,  2291,  2290,  2388,  2389,  2390,  2393,  2394,
     2395,  2396
 };  };
 #endif  #endif
   
#if YYDEBUG || YYERROR_VERBOSE || YYTOKEN_TABLE#if YYDEBUG || YYERROR_VERBOSE || 0
 /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.  /* YYTNAME[SYMBOL-NUM] -- String name of the symbol SYMBOL-NUM.
    First, the terminals, then, starting at YYNTOKENS, nonterminals.  */     First, the terminals, then, starting at YYNTOKENS, nonterminals.  */
 static const char *const yytname[] =  static const char *const yytname[] =
Line 1199  static const char *const yytname[] = Line 1292  static const char *const yytname[] =
   "sainfo_name", "sainfo_id", "sainfo_param", "sainfo_specs",    "sainfo_name", "sainfo_id", "sainfo_param", "sainfo_specs",
   "sainfo_spec", "$@72", "$@73", "$@74", "$@75", "$@76", "algorithms",    "sainfo_spec", "$@72", "$@73", "$@74", "$@75", "$@76", "algorithms",
   "$@77", "algorithm", "prefix", "port", "ul_proto", "keylength",    "$@77", "algorithm", "prefix", "port", "ul_proto", "keylength",
  "remote_statement", "$@78", "$@79", "$@80", "$@81", "remote_specs_block",  "remote_statement", "$@78", "$@79", "$@80", "$@81",
  "remote_index", "remote_specs", "remote_spec", "$@82", "$@83", "$@84",  "remote_specs_inherit_block", "remote_specs_block", "remote_index",
  "$@85", "$@86", "$@87", "$@88", "$@89", "$@90", "$@91", "$@92", "$@93",  "remote_specs", "remote_spec", "$@82", "$@83", "$@84", "$@85", "$@86",
  "$@94", "$@95", "$@96", "$@97", "$@98", "$@99", "$@100", "$@101",  "$@87", "$@88", "$@89", "$@90", "$@91", "$@92", "$@93", "$@94", "$@95",
  "$@102", "$@103", "$@104", "$@105", "$@106", "$@107", "$@108", "$@109",  "$@96", "$@97", "$@98", "$@99", "$@100", "$@101", "$@102", "$@103",
  "$@110", "$@111", "$@112", "$@113", "$@114", "$@115", "$@116", "$@117",  "$@104", "$@105", "$@106", "$@107", "$@108", "$@109", "$@110", "$@111",
  "$@118", "$@119", "$@120", "$@121", "$@122", "$@123", "$@124", "$@125",  "$@112", "$@113", "$@114", "$@115", "$@116", "$@117", "$@118", "$@119",
  "$@126", "$@127", "$@128", "exchange_types", "cert_spec", "$@129",  "$@120", "$@121", "$@122", "$@123", "$@124", "$@125", "$@126", "$@127",
  "$@130", "dh_group_num", "identifierstring", "isakmpproposal_specs",  "$@128", "exchange_types", "cert_spec", "$@129", "$@130", "dh_group_num",
  "isakmpproposal_spec", "$@131", "$@132", "$@133", "$@134", "$@135",  "identifierstring", "isakmpproposal_specs", "isakmpproposal_spec",
  "unittype_time", "unittype_byte", 0  "$@131", "$@132", "$@133", "$@134", "$@135", "unittype_time",
   "unittype_byte", YY_NULL
 };  };
 #endif  #endif
   
Line 1267  static const yytype_uint16 yyr1[] = Line 1361  static const yytype_uint16 yyr1[] =
      295,   293,   296,   293,   297,   293,   298,   293,   299,   300,       295,   293,   296,   293,   297,   293,   298,   293,   299,   300,
      299,   301,   302,   302,   303,   303,   303,   304,   304,   304,       299,   301,   302,   302,   303,   303,   303,   304,   304,   304,
      305,   305,   307,   306,   308,   306,   309,   306,   310,   306,       305,   305,   307,   306,   308,   306,   309,   306,   310,   306,
     311,   312,   312,   313,   313,   315,   314,   316,   314,   317,     311,   311,   312,   313,   313,   314,   314,   316,   315,   317,
     314,   318,   314,   314,   319,   314,   320,   314,   321,   314,     315,   318,   315,   319,   315,   315,   320,   315,   321,   315,
     322,   314,   323,   314,   324,   314,   325,   314,   326,   314,     322,   315,   323,   315,   324,   315,   325,   315,   326,   315,
     327,   314,   328,   314,   329,   314,   330,   314,   331,   314,     327,   315,   328,   315,   329,   315,   330,   315,   331,   315,
     332,   314,   333,   314,   334,   314,   335,   314,   336,   314,     332,   315,   333,   315,   334,   315,   335,   315,   336,   315,
     337,   314,   338,   314,   339,   314,   340,   314,   341,   314,     337,   315,   338,   315,   339,   315,   340,   315,   341,   315,
     342,   314,   343,   314,   344,   314,   345,   314,   346,   314,     342,   315,   343,   315,   344,   315,   345,   315,   346,   315,
     347,   314,   348,   314,   349,   314,   350,   314,   351,   314,     347,   315,   348,   315,   349,   315,   350,   315,   351,   315,
     352,   314,   353,   314,   354,   314,   355,   314,   356,   314,     352,   315,   353,   315,   354,   315,   355,   315,   356,   315,
     357,   314,   358,   314,   359,   314,   360,   314,   361,   314,     357,   315,   358,   315,   359,   315,   360,   315,   361,   315,
     362,   362,   364,   363,   365,   363,   366,   366,   367,   367,     362,   315,   363,   363,   365,   364,   366,   364,   367,   367,
     367,   368,   368,   370,   369,   371,   369,   372,   369,   373,     368,   368,   368,   369,   369,   371,   370,   372,   370,   373,
     369,   374,   369,   375,   375,   375,   376,   376,   376,   376     370,   374,   370,   375,   370,   376,   376,   376,   377,   377,
      377,   377
 };  };
   
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */  /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
Line 1310  static const yytype_uint8 yyr2[] = Line 1405  static const yytype_uint8 yyr2[] =
        0,     4,     0,     6,     0,     6,     0,     4,     1,     0,         0,     4,     0,     6,     0,     6,     0,     4,     1,     0,
        4,     2,     0,     1,     0,     1,     1,     1,     1,     1,         4,     2,     0,     1,     0,     1,     1,     1,     1,     1,
        0,     1,     0,     6,     0,     4,     0,     6,     0,     4,         0,     1,     0,     6,     0,     4,     0,     6,     0,     4,
       3,     2,     1,     0,     2,     0,     4,     0,     4,     0,       1,     1,     3,     2,     1,     0,     2,     0,     4,     0,
       4,     0,     4,     2,     0,     4,     0,     5,     0,     5,       4,     0,     4,     0,     4,     2,     0,     4,     0,     5,
       0,     4,     0,     5,     0,     4,     0,     4,     0,     4,       0,     5,     0,     4,     0,     5,     0,     4,     0,     4,
       0,     4,     0,     5,     0,     6,     0,     4,     0,     5,       0,     4,     0,     4,     0,     5,     0,     6,     0,     4,
       0,     6,     0,     4,     0,     4,     0,     4,     0,     4,       0,     5,     0,     6,     0,     4,     0,     4,     0,     4,
       0,     4,     0,     4,     0,     4,     0,     5,     0,     5,       0,     4,     0,     4,     0,     4,     0,     4,     0,     5,
       0,     5,     0,     4,     0,     4,     0,     4,     0,     4,       0,     5,     0,     5,     0,     4,     0,     4,     0,     4,
        0,     4,     0,     4,     0,     4,     0,     4,     0,     4,         0,     4,     0,     4,     0,     4,     0,     4,     0,     4,
        0,     4,     0,     4,     0,     4,     0,     4,     0,     4,         0,     4,     0,     4,     0,     4,     0,     4,     0,     4,
       0,     4,     0,     6,     0,     4,     0,     6,     0,     5,       0,     4,     0,     4,     0,     6,     0,     4,     0,     6,
       0,     2,     0,     5,     0,     4,     1,     1,     0,     1,       0,     5,     0,     2,     0,     5,     0,     4,     1,     1,
       1,     0,     2,     0,     6,     0,     6,     0,     4,     0,       0,     1,     1,     0,     2,     0,     6,     0,     6,     0,
       4,     0,     5,     1,     1,     1,     1,     1,     1,     1       4,     0,     4,     0,     5,     1,     1,     1,     1,     1,
        1,     1
 };  };
   
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state/* YYDEFACT[STATE-NAME] -- Default reduction number in state STATE-NUM.
   STATE-NUM when YYTABLE doesn't specify something else to do.  Zero   Performed when YYTABLE doesn't specify something else to do.  Zero
    means the default is an error.  */     means the default is an error.  */
 static const yytype_uint16 yydefact[] =  static const yytype_uint16 yydefact[] =
 {  {
Line 1335  static const yytype_uint16 yydefact[] = Line 1431  static const yytype_uint16 yydefact[] =
        5,    18,     6,     7,     8,     9,    10,    11,    13,    12,         5,    18,     6,     7,     8,     9,    10,    11,    13,    12,
       14,    15,    16,    17,    20,     0,     0,     0,    40,     0,        14,    15,    16,    17,    20,     0,     0,     0,    40,     0,
       42,    55,     0,     0,   117,   187,     0,    70,   244,    70,        42,    55,     0,     0,   117,   187,     0,    70,   244,    70,
     252,   248,     0,    34,     0,    32,    36,    37,    39,     0,     254,   248,     0,    34,     0,    32,    36,    37,    39,     0,
        0,    90,    74,     0,     0,   204,     0,   213,     0,    71,         0,    90,    74,     0,     0,   204,     0,   213,     0,    71,
     251,     0,     0,    69,     0,     0,    38,     0,     0,     0,     253,     0,     0,    69,     0,     0,    38,     0,     0,     0,
        0,    19,    21,     0,     0,     0,     0,     0,     0,    41,         0,    19,    21,     0,     0,     0,     0,     0,     0,    41,
       43,     0,     0,    67,     0,    54,    56,     0,     0,     0,        43,     0,     0,    67,     0,    54,    56,     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,     0,     0,     0,   116,   118,     0,     0,         0,     0,     0,     0,     0,     0,   116,   118,     0,     0,
        0,     0,     0,     0,   186,   188,   205,   206,   212,   232,         0,     0,     0,     0,   186,   188,   205,   206,   212,   232,
       0,     0,     0,   207,   208,   209,   242,   253,   245,   246,       0,     0,     0,   207,   208,   209,   242,   255,   245,   246,
      249,    35,    24,    22,    28,    26,    30,    33,    44,    46,       249,    35,    24,    22,    28,    26,    30,    33,    44,    46,
       48,    50,    52,    57,    59,     0,    65,    63,     0,     0,        48,    50,    52,    57,    59,     0,    65,    63,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,         0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
Line 1352  static const yytype_uint16 yydefact[] = Line 1448  static const yytype_uint16 yydefact[] =
      139,   182,   141,   180,   143,   145,   149,   151,   153,   147,       139,   182,   141,   180,   143,   145,   149,   151,   153,   147,
      165,   167,   163,   169,   155,   161,     0,     0,   185,   129,       165,   167,   163,   169,   155,   161,     0,     0,   185,   129,
      183,   157,   159,   189,     0,   193,     0,     0,     0,   233,       183,   157,   159,   189,     0,   193,     0,     0,     0,   233,
     232,   234,   215,   358,   216,     0,     0,     0,     0,     0,     232,   234,   215,   360,   216,     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,
       68,     0,     0,     0,    94,    96,    92,    98,   102,   104,        68,     0,     0,     0,    94,    96,    92,    98,   102,   104,
      100,   106,   108,   110,   112,   114,     0,     0,    84,    86,       100,   106,   108,   110,   112,   114,     0,     0,    84,    86,
        0,     0,   123,     0,   124,     0,     0,     0,     0,     0,         0,     0,   123,     0,   124,     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,     0,     0,     0,     0,     0,   125,   177,   127,     0,         0,     0,     0,     0,     0,     0,   125,   177,   127,     0,
       0,     0,     0,     0,   373,   374,   375,   191,     0,   195,       0,     0,     0,     0,   375,   376,   377,   191,     0,   195,
     197,   199,   234,   235,   236,     0,   360,   359,   214,   202,     197,   199,   234,   235,   236,     0,   362,   361,   214,   202,
     243,     0,   257,     0,     0,     0,     0,     0,     0,     0,     251,   243,   250,     0,   259,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,   296,     0,     0,     0,       0,     0,     0,     0,     0,     0,     0,     0,   298,     0,
       0,     0,     0,   348,     0,     0,     0,     0,     0,   358,       0,     0,     0,     0,     0,   350,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,   250,   254,   247,       0,   360,     0,     0,     0,     0,     0,     0,     0,   252,
      25,    23,    29,    27,    31,    45,    47,    49,    51,    53,     256,   247,    25,    23,    29,    27,    31,    45,    47,    49,
      58,    60,    66,     0,    64,     0,     0,     0,     0,     0,      51,    53,    58,    60,    66,     0,    64,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,    76,     0,       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
      80,     0,     0,   120,   122,   172,   175,   132,   134,   136,      76,     0,    80,     0,     0,   120,   122,   172,   175,   132,
     138,   140,   142,   181,   144,   146,   150,   152,   154,   148,     134,   136,   138,   140,   142,   181,   144,   146,   150,   152,
     166,   168,   164,   170,   156,   162,   179,     0,     0,     0,     154,   148,   166,   168,   164,   170,   156,   162,   179,     0,
     130,   184,   158,   160,   190,     0,   194,     0,     0,     0,       0,     0,   130,   184,   158,   160,   190,     0,   194,     0,
       0,   238,   239,   237,   210,   226,     0,     0,     0,     0,       0,     0,     0,   238,   239,   237,   210,   226,     0,     0,
     217,   255,   350,   259,   261,     0,     0,   263,   270,     0,       0,     0,   217,   257,   352,   261,   263,     0,     0,   265,
       0,   264,     0,   274,   276,   278,   280,   358,   358,   292,     272,     0,     0,   266,     0,   276,   278,   280,   282,   360,
     294,     0,   298,   322,   326,   324,   344,   318,   316,   320,     360,   294,   296,     0,   300,   324,   328,   326,   346,   320,
       0,   328,   330,   332,   334,   340,   286,   314,   338,   336,     318,   322,     0,   330,   332,   334,   336,   342,   288,   316,
     302,   300,   304,   312,     0,     0,     0,    61,    95,    97,     340,   338,   304,   302,   306,   314,     0,     0,     0,    61,
      93,    99,   103,   105,   101,   107,   109,   111,   113,   115,      95,    97,    93,    99,   103,   105,   101,   107,   109,   111,
      78,     0,    82,     0,    85,    87,   178,   126,   128,   192,     113,   115,    78,     0,    82,     0,    85,    87,   178,   126,
     196,   198,   200,   211,     0,   356,   357,   218,     0,     0,     128,   192,   196,   198,   200,   211,     0,   358,   359,   218,
     220,   203,     0,     0,     0,     0,     0,   354,     0,   266,       0,     0,   220,   203,     0,     0,     0,     0,     0,   356,
     268,     0,   272,     0,     0,     0,     0,   358,   282,   358,       0,   268,   270,     0,   274,     0,     0,     0,     0,   360,
     288,     0,     0,     0,     0,     0,     0,     0,     0,     0,     284,   360,   290,     0,     0,     0,     0,     0,     0,     0,
       0,     0,   361,     0,     0,     0,     0,     0,     0,     0,       0,     0,     0,     0,   363,     0,     0,     0,     0,     0,
       0,     0,     0,     0,     0,     0,     0,     0,   306,   308,       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
     310,     0,     0,    77,     0,    81,   240,     0,   228,     0,     308,   310,   312,     0,     0,    77,     0,    81,   240,     0,
       0,     0,     0,   256,   351,   258,   260,   262,   352,     0,     228,     0,     0,     0,     0,   258,   353,   260,   262,   264,
     271,     0,     0,   265,     0,   275,   277,   279,   281,   284,     354,     0,   273,     0,     0,   267,     0,   277,   279,   281,
       0,   290,     0,   293,   295,   297,   299,   323,   327,   325,     283,   286,     0,   292,     0,   295,   297,   299,   301,   325,
     345,   319,   317,   321,     0,   329,   331,   333,   335,   341,     329,   327,   347,   321,   319,   323,     0,   331,   333,   335,
     287,   315,   339,   337,   303,   301,   305,   313,   342,   376,     337,   343,   289,   317,   341,   339,   305,   303,   307,   315,
     377,   378,   379,   346,     0,     0,     0,    62,    79,    83,     344,   378,   379,   380,   381,   348,     0,     0,     0,    62,
     241,   231,   227,     0,   219,   222,   224,   221,     0,   355,      79,    83,   241,   231,   227,     0,   219,   222,   224,   221,
     267,   269,   273,     0,   283,     0,   289,     0,     0,     0,       0,   357,   269,   271,   275,     0,   285,     0,   291,     0,
       0,   349,   362,     0,     0,   307,   309,   311,     0,     0,       0,     0,     0,   351,   364,     0,     0,   309,   311,   313,
       0,   353,   285,   291,   240,   367,   369,     0,     0,   343,       0,     0,     0,   355,   287,   293,   240,   369,   371,     0,
     347,   230,   223,   225,   371,     0,     0,     0,     0,     0,       0,   345,   349,   230,   223,   225,   373,     0,     0,     0,
     368,   370,   363,   365,   372,     0,     0,   364,   366       0,     0,   370,   372,   365,   367,   374,     0,     0,   366,
      368
 };  };
   
 /* YYDEFGOTO[NTERM-NUM].  */  /* YYDEFGOTO[NTERM-NUM].  */
Line 1407  static const yytype_int16 yydefgoto[] = Line 1504  static const yytype_int16 yydefgoto[] =
       -1,     1,    18,    19,    54,    82,   229,   228,   231,   230,        -1,     1,    18,    19,    54,    82,   229,   228,   231,   230,
      232,    20,    83,    21,    77,    22,    23,    24,    25,    39,       232,    20,    83,    21,    77,    22,    23,    24,    25,    39,
       26,    59,    90,   233,   234,   235,   236,   237,    27,    60,        26,    59,    90,   233,   234,   235,   236,   237,    27,    60,
      96,   238,   239,   561,   243,   241,   155,    50,    70,    28,      96,   238,   239,   563,   243,   241,   155,    50,    70,    28,
      43,    98,   177,   491,   562,   493,   564,   381,   382,    29,      43,    98,   177,   493,   564,   495,   566,   383,   384,    29,
      42,    97,   171,   367,   365,   366,   368,   371,   369,   370,      42,    97,   171,   369,   367,   368,   370,   373,   371,   372,
     372,   373,   374,   375,   376,    30,    63,   117,   260,   261,     374,   375,   376,   377,   378,    30,    63,   117,   260,   261,
     408,   409,   289,   266,   267,   268,   269,   270,   271,   273,     410,   411,   289,   266,   267,   268,   269,   270,   271,   273,
      274,   278,   275,   276,   277,   283,   291,   292,   284,   281,       274,   278,   275,   276,   277,   283,   291,   292,   284,   281,
      279,   280,   282,   181,   182,   184,   185,   286,   287,   192,       279,   280,   282,   181,   182,   184,   185,   286,   287,   192,
     193,   209,   210,    31,    64,   125,   293,   415,   298,   417,     193,   209,   210,    31,    64,   125,   293,   417,   298,   419,
     418,   419,    32,    46,   429,    67,    68,   132,   309,   430,     420,   421,    32,    46,   431,    67,    68,   132,   309,   432,
     569,   572,   659,   660,   504,   567,   633,   568,   221,   305,     571,   574,   661,   662,   506,   569,   635,   570,   221,   305,
     424,   631,    33,   225,    72,   227,    75,   138,    51,   226,     426,   633,    33,   225,    72,   227,    75,   311,   312,    51,
     348,   512,   432,   514,   515,   521,   581,   582,   518,   584,     226,   350,   514,   434,   516,   517,   523,   583,   584,   520,
     523,   524,   525,   526,   590,   643,   548,   592,   645,   531,     586,   525,   526,   527,   528,   592,   645,   550,   594,   647,
     532,   451,   534,   553,   552,   554,   624,   625,   626,   555,     533,   534,   453,   536,   555,   554,   556,   626,   627,   628,
     549,   540,   539,   541,   535,   537,   536,   543,   544,   545,     557,   551,   542,   541,   543,   537,   539,   538,   545,   546,
     546,   551,   550,   547,   653,   538,   654,   460,   513,   437,     547,   548,   553,   552,   549,   655,   540,   656,   462,   515,
     638,   579,   507,   308,   604,   652,   685,   686,   675,   676,     439,   640,   581,   509,   308,   606,   654,   687,   688,   677,
     679,   297,   623     678,   681,   297,   625
 };  };
   
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */     STATE-NUM.  */
#define YYPACT_NINF -535#define YYPACT_NINF -542
 static const yytype_int16 yypact[] =  static const yytype_int16 yypact[] =
 {  {
    -535,    42,  -535,  -101,    87,   -53,   -14,   144,     9,    24,    -542,    42,  -542,  -124,    46,   -87,   -72,    82,   -63,   -39,
    -535,  -535,    26,    36,  -535,   -43,    65,     7,  -535,  -535,    -542,  -542,   -29,   -15,  -542,   -50,    34,     7,  -542,  -542,
    -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,    -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,
    -535,  -535,  -535,  -535,  -535,    40,    35,    39,  -535,    48,    -542,  -542,  -542,  -542,  -542,    12,    10,    21,  -542,    25,
    -535,  -535,    53,    54,  -535,  -535,     2,    72,   134,    72,    -542,  -542,    38,    40,  -542,  -542,    30,    66,    89,    66,
    -535,   143,    62,  -535,     3,  -535,  -535,  -535,  -535,    -4,    -542,   143,    37,  -542,     3,  -542,  -542,  -542,  -542,    -4,
      -5,  -535,  -535,    29,    -9,    22,  -113,    49,    45,  -535,      -5,  -542,  -542,    29,    -9,    35,   -11,    36,    45,  -542,
    -535,    74,    68,  -535,   -45,    68,  -535,    66,   -23,   -13,    -542,    72,    63,  -542,   -45,    63,  -542,    71,   -53,   -13,
      81,  -535,  -535,    70,    85,    86,    88,    89,    98,  -535,      76,  -542,  -542,    73,    85,    87,    90,    88,    99,  -542,
    -535,    84,    84,  -535,    -8,  -535,  -535,    -6,    -7,    95,    -542,    94,    94,  -542,    -8,  -542,  -542,    -7,    -6,    96,
      97,   102,   104,    99,    96,   106,     4,    56,    79,   107,      97,   102,   104,   107,   106,   108,    54,    81,     4,   110,
     101,   112,    75,   110,   115,   116,  -535,  -535,   118,   119,     103,   115,   122,   112,   118,   109,  -542,  -542,   119,   120,
     120,   121,   122,   123,  -535,  -535,  -535,  -535,  -535,   -78,     121,   123,   124,   125,  -542,  -542,  -542,  -542,  -542,   -90,
     124,   171,   109,  -535,  -535,  -535,  -535,  -535,  -535,  -535,     113,   177,   111,  -542,  -542,  -542,  -542,  -542,  -542,  -542,
    -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,    -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,
    -535,  -535,  -535,  -535,  -535,   111,  -535,   125,   126,   127,    -542,  -542,  -542,  -542,  -542,   114,  -542,   126,   127,   129,
     131,   128,   130,   132,   136,   135,   137,   138,   139,   140,     132,   130,   131,   133,   135,   134,   136,   137,   138,   139,
    -535,  -535,   141,   142,   147,   148,  -535,  -535,  -535,  -535,    -542,  -542,   140,   141,   146,   147,  -542,  -542,  -542,  -542,
    -535,   145,   133,  -535,   146,   149,  -535,  -535,  -535,  -535,    -542,   142,   144,  -542,   145,   148,  -542,  -542,  -542,  -542,
    -535,  -535,  -535,   150,  -535,  -535,  -535,  -535,  -535,  -535,    -542,  -542,  -542,   149,  -542,  -542,  -542,  -542,  -542,  -542,
    -535,  -535,  -535,  -535,  -535,  -535,   151,   151,  -535,  -535,    -542,  -542,  -542,  -542,  -542,  -542,   150,   150,  -542,  -542,
     152,  -535,  -535,  -535,    14,  -535,    14,    14,    14,  -535,     151,  -542,  -542,  -542,    14,  -542,    14,    14,    14,  -542,
     153,    34,  -535,     1,  -535,    68,   117,    68,   154,   156,     157,    50,  -542,    32,  -542,    27,   117,    27,   153,   155,
     157,   158,   159,   160,   161,   162,   163,   164,   165,   166,     156,   158,   159,   160,   161,   162,   163,   164,   165,   166,
    -535,   167,   178,   169,  -535,  -535,  -535,  -535,  -535,  -535,    -542,   167,   154,   168,  -542,  -542,  -542,  -542,  -542,  -542,
    -535,  -535,  -535,  -535,  -535,  -535,    -2,    -1,  -535,  -535,    -542,  -542,  -542,  -542,  -542,  -542,   -12,    -3,  -542,  -542,
     172,   173,  -535,   102,  -535,   104,   174,   175,   176,   177,     169,   170,  -542,   102,  -542,   104,   171,   173,   174,   175,
     179,   180,   106,   181,   182,   183,   185,   186,   187,   188,     176,   178,   108,   179,   180,   181,   182,   183,   184,   185,
     189,   190,   191,   192,   193,   170,   168,  -535,   168,   194,     187,   188,   189,   190,   191,   172,   192,  -542,   192,   193,
     110,   195,   196,   197,  -535,  -535,  -535,  -535,   198,  -535,     112,   194,   196,   197,  -542,  -542,  -542,  -542,   198,  -542,
    -535,  -535,    34,  -535,  -535,    -3,  -535,  -535,  -535,   -20,    -542,  -542,    50,  -542,  -542,    -1,  -542,  -542,  -542,   -21,
    -535,    84,  -535,   204,   213,    80,   -35,   200,   212,   214,    -542,  -542,  -542,    94,  -542,   214,   213,    92,   -37,   199,
     215,   216,   208,   209,   217,   155,  -535,   218,   219,   -57,     152,   205,   212,   215,   206,   207,   216,   218,  -542,   219,
     201,   -75,   220,  -535,   221,   223,   224,   225,   226,     1,     220,   -57,   201,   -75,   221,  -542,   222,   224,   225,   226,
     227,   -46,   -21,   229,   230,    41,   210,  -535,  -535,  -535,     227,    32,   228,   -30,   -20,   230,   231,    70,   210,  -542,
    -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,    -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,
    -535,  -535,  -535,   232,  -535,   222,   228,   231,   233,   234,    -542,  -542,  -542,  -542,  -542,   233,  -542,   217,   223,   229,
     235,   236,   237,   238,   239,   240,   241,   242,  -535,   252,     232,   234,   235,   236,   237,   238,   239,   240,   241,   211,
    -535,   243,   244,  -535,  -535,  -535,  -535,  -535,  -535,  -535,    -542,   243,  -542,   242,   244,  -542,  -542,  -542,  -542,  -542,
    -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,    -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,
    -535,  -535,  -535,  -535,  -535,  -535,  -535,   151,   245,   246,    -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,   150,
    -535,  -535,  -535,  -535,  -535,   247,  -535,   248,   249,   250,     245,   246,  -542,  -542,  -542,  -542,  -542,   247,  -542,   248,
      -3,  -535,  -535,  -535,  -535,  -535,   -37,    43,   265,   211,     249,   250,    -1,  -542,  -542,  -542,  -542,  -542,   -38,    75,
    -535,  -535,  -535,  -535,  -535,   262,   263,  -535,  -535,   264,     257,   203,  -542,  -542,  -542,  -542,  -542,   261,   262,  -542,
     266,  -535,   267,  -535,  -535,  -535,  -535,   -59,   -56,  -535,    -542,   263,   264,  -542,   265,  -542,  -542,  -542,  -542,   -59,
    -535,   -37,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,     -56,  -542,  -542,   -38,  -542,  -542,  -542,  -542,  -542,  -542,
     254,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,    -542,  -542,   255,  -542,  -542,  -542,  -542,  -542,  -542,  -542,
    -535,  -535,  -535,  -535,   272,   273,    31,  -535,  -535,  -535,    -542,  -542,  -542,  -542,  -542,  -542,   271,   272,    31,  -542,
    -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,    -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,
    -535,   260,  -535,   261,  -535,  -535,  -535,  -535,  -535,  -535,    -542,  -542,  -542,   259,  -542,   260,  -542,  -542,  -542,  -542,
    -535,  -535,  -535,  -535,   270,  -535,  -535,  -535,   276,   277,    -542,  -542,  -542,  -542,  -542,  -542,   269,  -542,  -542,  -542,
    -535,  -535,   268,   -49,   269,   271,   274,  -535,   275,  -535,     275,   276,  -542,  -542,   266,   -49,   267,   268,   273,  -542,
    -535,   278,  -535,   279,   280,   281,   282,     1,  -535,     1,     270,  -542,  -542,   274,  -542,   277,   278,   279,   280,    32,
    -535,   283,   284,   285,   286,   287,   288,   289,   290,   292,    -542,    32,  -542,   281,   282,   283,   284,   285,   286,   287,
     293,   294,  -535,   295,   296,   297,   298,   299,   300,   301,     288,   289,   290,   291,  -542,   292,   294,   295,   296,   297,
     302,   303,   304,   305,   306,   307,    14,    13,  -535,  -535,     298,   299,   300,   301,   302,   303,   304,   305,    14,    13,
    -535,   308,   309,  -535,   310,  -535,   291,   311,   312,   313,    -542,  -542,  -542,   306,   307,  -542,   308,  -542,   323,   310,
      14,    13,   314,  -535,  -535,  -535,  -535,  -535,  -535,   316,     309,   311,    14,    13,   313,  -542,  -542,  -542,  -542,  -542,
    -535,   317,   318,  -535,   319,  -535,  -535,  -535,  -535,  -535,    -542,   314,  -542,   315,   316,  -542,   317,  -542,  -542,  -542,
     320,  -535,   321,  -535,  -535,  -535,  -535,  -535,  -535,  -535,    -542,  -542,   318,  -542,   319,  -542,  -542,  -542,  -542,  -542,
    -535,  -535,  -535,  -535,   -27,  -535,  -535,  -535,  -535,  -535,    -542,  -542,  -542,  -542,  -542,  -542,   -27,  -542,  -542,  -542,
    -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,    -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,
    -535,  -535,  -535,  -535,   322,   323,   324,  -535,  -535,  -535,    -542,  -542,  -542,  -542,  -542,  -542,   320,   321,   322,  -542,
    -535,  -535,  -535,   325,  -535,  -535,  -535,  -535,   326,  -535,    -542,  -542,  -542,  -542,  -542,   324,  -542,  -542,  -542,  -542,
    -535,  -535,  -535,   327,  -535,   329,  -535,   315,   -37,   335,     325,  -542,  -542,  -542,  -542,   326,  -542,   328,  -542,   312,
      50,  -535,  -535,   330,   331,  -535,  -535,  -535,   270,   332,     -38,   333,    91,  -542,  -542,   329,   330,  -542,  -542,  -542,
     333,  -535,  -535,  -535,   291,  -535,  -535,   348,   349,  -535,     269,   331,   332,  -542,  -542,  -542,   323,  -542,  -542,   338,
    -535,  -535,  -535,  -535,  -535,   336,   337,    14,    13,   338,     347,  -542,  -542,  -542,  -542,  -542,  -542,   334,   335,    14,
    -535,  -535,  -535,  -535,  -535,   339,   340,  -535,  -535      13,   336,  -542,  -542,  -542,  -542,  -542,   337,   339,  -542,
     -542
 };  };
   
 /* YYPGOTO[NTERM-NUM].  */  /* YYPGOTO[NTERM-NUM].  */
 static const yytype_int16 yypgoto[] =  static const yytype_int16 yypgoto[] =
 {  {
    -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,    -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,
    -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,    -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,
    -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,    -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,
    -535,  -535,  -535,  -535,  -535,  -535,  -535,   -88,   341,  -535,    -542,  -542,  -542,  -542,  -542,  -542,  -542,   -88,   342,  -542,
    -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,    -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,
    -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,    -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,
    -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,    -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,
    -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,    -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,
    -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,    -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,
    -535,  -535,  -535,    19,  -535,    52,  -535,   113,  -111,    47,    -542,  -542,  -542,    20,  -542,    48,  -542,   327,   -93,    47,
    -535,    23,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,    -542,   105,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,
    -535,  -535,  -535,  -535,  -535,  -535,    92,  -535,  -535,  -535,    -542,  -542,  -542,  -542,  -542,  -542,    86,  -542,  -542,  -542,
    -535,  -535,  -535,  -535,  -535,  -344,  -535,  -535,   328,    93,    -542,  -542,  -542,  -542,  -542,  -340,  -542,  -542,   293,    95,
     -99,  -278,  -535,  -535,  -535,  -535,  -535,   -55,   361,  -535,     -95,  -282,  -542,  -542,  -542,  -542,  -542,   208,    98,   360,
    -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,    -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,
    -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,    -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,
    -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,    -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,
    -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,    -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,
    -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,  -535,    -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,  -542,
    -535,  -535,  -446,  -333,  -535,  -535,  -535,  -535,  -535,  -535,    -542,  -542,  -542,  -448,  -335,  -542,  -542,  -542,  -542,  -542,
    -535,  -216,  -534    -542,  -542,  -216,  -541
 };  };
   
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If  /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
    positive, shift that token.  If negative, reduce the rule which     positive, shift that token.  If negative, reduce the rule which
   number is the opposite.  If zero, do what YYDEFACT says.   number is the opposite.  If YYTABLE_NINF, syntax error.  */
   If YYTABLE_NINF, syntax error.  */ 
 #define YYTABLE_NINF -230  #define YYTABLE_NINF -230
 static const yytype_int16 yytable[] =  static const yytype_int16 yytable[] =
 {  {
     299,   300,   301,   153,   154,   533,   466,    78,    79,    80,     299,   300,   301,   153,   154,   535,   468,    78,    79,    80,
       84,    85,    86,    87,    88,    91,    92,   156,    93,    94,        84,    85,    86,    87,    88,    91,    92,   156,    93,    94,
     140,   158,   159,   160,   161,   162,   163,   164,   165,   166,     158,   159,   160,   161,   162,   163,   164,   165,   166,   167,
     167,   168,   169,   172,   173,   174,   175,   636,    47,   574,     168,   169,   638,    47,   172,   173,   174,   175,    47,   576,
      47,   505,     2,   527,   457,     3,   529,   128,   129,     4,     507,   130,     2,   529,   459,     3,   531,    34,   219,     4,
     647,     5,     6,     7,   130,     8,   194,   425,   454,   195,     649,     5,     6,     7,    35,     8,   427,   200,   456,   201,
     219,     9,   118,   119,   120,   121,   122,   123,    10,   468,     202,     9,   118,   119,   120,   121,   122,   123,    10,   440,
      34,   438,   439,   440,    99,   100,   101,   102,   103,   104,     441,   442,   220,    36,    99,   100,   101,   102,   103,   104,
     105,    11,   458,   648,   220,    65,    12,   106,   107,   108,     105,    11,   460,   650,    37,   470,    12,   106,   107,   108,
     109,   110,   111,   112,   470,    35,   113,   114,   115,   649,     109,   110,   111,   112,    38,   472,   113,   114,   115,   651,
     455,   306,   307,    66,   306,   307,   126,    36,   196,   197,     457,   306,   307,   142,   306,   307,   194,   143,    40,   195,
     198,   469,    13,   199,   528,   530,    49,    48,    49,   506,      48,    49,    13,    65,   530,   532,    49,   131,   508,   126,
     650,   575,    14,    66,    15,   441,   426,   427,   133,   134,     652,   577,    14,   443,    15,   428,   429,   471,   133,   134,
     131,   428,   200,   142,   201,   202,   471,   143,   421,   422,     430,    66,    41,   196,   197,   198,    66,   473,   199,   685,
     206,   207,    37,   144,   683,   651,    66,   145,   187,   188,     423,   424,    44,   144,   379,   653,    66,   145,   380,   128,
     189,   190,   157,   423,   377,   379,    38,   127,   378,   380,     129,   127,   157,   381,   135,   425,    45,   382,   187,   188,
     135,   306,   307,   124,    53,   176,   170,    95,    89,    16,     189,   190,    52,   124,    53,   170,   176,    95,    89,    16,
     310,    17,   349,   303,   304,    81,   619,   620,   621,   622,     138,    17,    55,   140,    71,    81,   621,   622,   623,   624,
      40,   294,   295,   296,   558,   559,   560,   435,   436,   474,      56,   294,   295,   296,   560,   561,   562,   206,   207,   303,
     475,   508,   509,    52,   589,    41,   591,    44,   667,   668,     304,    57,   306,   307,   591,    58,   593,   310,   137,   437,
      55,   116,   665,   311,   312,    56,   313,    45,   314,    57,     438,   116,   667,   313,   314,    69,   315,    76,   316,    61,
     315,    69,   316,   317,   318,   319,   320,   321,    58,    71,     317,    62,   318,   319,   320,   321,   322,   323,   476,   477,
     322,   323,   324,   431,    61,    62,   325,   326,    74,   327,     324,   325,   326,   510,   511,   433,   327,   328,    74,   329,
     328,   329,    76,   330,   136,   331,   141,   332,   333,   137,     330,   331,   136,   332,   137,   333,   146,   334,   335,   669,
     147,   146,   148,   149,   150,    49,   151,   334,   335,   336,     670,   141,   148,   147,   149,   151,   150,   336,   337,   338,
     337,   338,   339,   340,   341,   152,   178,   204,   179,   186,     339,   340,   341,   342,   343,    49,   152,   178,   179,   204,
     342,   343,   344,   180,   345,   183,   191,   203,   205,   346,     344,   345,   346,   180,   347,   183,   212,   186,   191,   348,
     208,   211,   223,   212,   213,   214,   215,   216,   217,   218,     203,   205,   208,   222,   211,   213,   214,   215,   223,   216,
     224,   240,   385,   245,   222,   242,   244,   246,   247,   347,     217,   218,   224,   387,   240,   245,   242,   244,   246,   349,
     248,   219,   249,   250,   433,   251,   496,   252,   253,   254,     247,   248,   250,   249,   251,   219,   252,   253,   254,   255,
     255,   256,   257,   258,   259,   434,   263,   442,   406,   447,     256,   257,   258,   259,   435,   436,   444,   449,   450,   445,
     448,   450,   285,   411,   671,   262,   264,   386,   456,   393,     408,   285,   262,   388,   365,   264,   498,   263,   458,   395,
     288,   503,   265,   272,   350,   290,   351,   352,   353,   354,     673,   265,   272,   352,   290,   353,   354,   505,   355,   356,
     355,   356,   357,   358,   359,   360,   361,   362,   363,   364,     357,   358,   359,   360,   361,   362,   363,   364,   366,   385,
     618,   407,   383,   384,   387,   388,   389,   390,   566,   391,     386,   389,   620,   390,   391,   392,   393,   568,   394,   396,
     392,   394,   395,   396,   635,   397,   398,   399,   400,   401,     397,   398,   399,   400,   401,   402,   637,   403,   404,   405,
     402,   403,   404,   405,   410,   412,   413,   414,   416,   443,     406,   407,   446,   412,   414,   409,   415,   416,   418,   447,
     476,   444,   445,   446,   449,   452,   453,   459,   461,   462,     478,   492,   448,   451,   452,   513,   454,   455,   461,   463,
     463,   464,   465,   511,   467,   472,   674,   473,   477,     0,     464,   465,   466,   467,   676,   469,   474,   480,   475,   479,
      73,     0,   478,   664,     0,   420,     0,     0,   479,     0,     666,    73,     0,   481,     0,   413,     0,   422,     0,   482,
       0,   480,   490,   481,   482,   483,   484,   485,   486,   487,       0,     0,   483,   494,   484,   485,   486,   487,   488,   489,
     488,   489,   492,   494,   495,   497,   498,   499,   500,   501,     490,   491,   496,   512,   497,   499,   500,   501,   502,   503,
     502,   510,   516,   517,   519,   542,   520,   522,   556,   557,     504,   518,   519,   521,   522,   524,   544,   558,   559,   565,
     563,   565,   570,   571,   578,   139,     0,     0,   573,   576,     567,   572,   573,   580,   139,   351,   575,   578,   579,     0,
       0,   577,     0,     0,     0,   580,     0,   630,   583,   585,     582,     0,     0,     0,   585,     0,     0,   587,   588,   589,
     586,   587,   588,   593,   594,   595,   596,   597,   598,   599,     590,   595,   596,   597,   598,   599,   600,   601,   602,   603,
     600,   682,   601,   602,   603,   605,   606,   607,   608,   609,     604,   605,   607,   684,   608,   609,   610,   611,   612,   613,
     610,   611,   612,   613,   614,   615,   616,   617,   627,   628,     614,   615,   616,   617,   618,   619,   629,   630,   631,   632,
     629,   632,     0,   634,   637,  -229,   639,   640,   641,   642,     634,   636,  -229,   639,   641,   642,   643,   644,   646,   648,
     644,   646,   655,   656,   657,   666,   661,   662,   658,   663,     657,   658,   659,   668,   679,   663,   664,   660,   665,   671,
     669,   670,   672,   673,   677,   678,   680,   681,   684,   687,     672,   674,   675,   680,   682,   683,   686,   689,     0,   690,
     688,     0,     0,     0,     0,     0,     0,     0,     0,     0,       0,     0,     0,   302,     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,
       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,       0,     0,     0,     0,   288
       0,     0,     0,     0,     0,     0,     0,     0,   302 
 };  };
   
   #define yypact_value_is_default(yystate) \
     ((yystate) == (-542))
   
   #define yytable_value_is_error(yytable_value) \
     YYID (0)
   
 static const yytype_int16 yycheck[] =  static const yytype_int16 yycheck[] =
 {  {
     216,   217,   218,    91,    92,   451,   339,     4,     5,     6,     216,   217,   218,    91,    92,   453,   341,     4,     5,     6,
       14,    15,    16,    17,    18,    20,    21,    25,    23,    24,        14,    15,    16,    17,    18,    20,    21,    25,    23,    24,
      75,    27,    28,    29,    30,    31,    32,    33,    34,    35,      27,    28,    29,    30,    31,    32,    33,    34,    35,    36,
      36,    37,    38,    40,    41,    42,    43,   571,    83,    88,      37,    38,   573,    83,    40,    41,    42,    43,    83,    88,
      83,    78,     0,   102,   119,     3,   102,   160,   161,     7,      78,     5,     0,   102,   119,     3,   102,   171,   138,     7,
      77,     9,    10,    11,     5,    13,    52,    77,   115,    55,      77,     9,    10,    11,     8,    13,    77,    53,   115,    55,
     138,    19,    71,    72,    73,    74,    75,    76,    26,   115,      56,    19,    71,    72,    73,    74,    75,    76,    26,   106,
     171,   106,   107,   108,    45,    46,    47,    48,    49,    50,     107,   108,   162,   160,    45,    46,    47,    48,    49,    50,
      51,    39,   157,   110,   162,    83,    44,    58,    59,    60,      51,    39,   157,   110,   156,   115,    44,    58,    59,    60,
      61,    62,    63,    64,   115,     8,    67,    68,    69,   126,      61,    62,    63,    64,    12,   115,    67,    68,    69,   126,
     157,   160,   161,   101,   160,   161,    84,   160,    52,    53,     157,   160,   161,   156,   160,   161,    52,   160,   171,    55,
      54,   157,    70,    57,   447,   448,   161,   160,   161,   156,     160,   161,    70,    83,   449,   450,   161,    81,   156,    84,
     147,   170,    80,   101,    82,   160,   146,   147,    83,    84,     147,   170,    80,   160,    82,   146,   147,   157,    83,    84,
      81,   151,    53,   156,    55,    56,   157,   160,   141,   142,     151,   101,   171,    52,    53,    54,   101,   157,    57,   680,
      65,    66,   156,   156,   678,   172,   101,   160,    52,    53,     141,   142,   171,   156,   156,   172,   101,   160,   160,   160,
      54,    55,   160,   156,   156,   156,    12,    65,   160,   160,     161,    65,   160,   156,    68,   156,   171,   160,    52,    53,
      68,   160,   161,   172,   157,   172,   172,   172,   172,   127,      54,    55,   128,   172,   157,   172,   172,   172,   172,   127,
     225,   129,   227,   139,   140,   172,   163,   164,   165,   166,      72,   129,   160,    75,    85,   172,   163,   164,   165,   166,
     171,   167,   168,   169,   153,   154,   155,   107,   108,   148,     170,   167,   168,   169,   153,   154,   155,    65,    66,   139,
     149,   148,   149,   128,   527,   171,   529,   171,   148,   149,     140,   170,   160,   161,   529,   170,   531,   170,   171,   107,
     160,   172,   648,    86,    87,   170,    89,   171,    91,   170,     108,   172,   650,    86,    87,   139,    89,   170,    91,   171,
      93,   139,    95,    96,    97,    98,    99,   100,   170,    85,      93,   171,    95,    96,    97,    98,    99,   100,   148,   149,
     103,   104,   105,   311,   171,   171,   109,   110,    85,   112,     103,   104,   105,   148,   149,   313,   109,   110,    85,   112,
     113,   114,   170,   116,   160,   118,   170,   120,   121,   171,     113,   114,   160,   116,   171,   118,   160,   120,   121,   148,
     170,   160,   157,   157,   156,   161,   157,   130,   131,   132,     149,   170,   157,   170,   157,   157,   156,   130,   131,   132,
     133,   134,   135,   136,   137,   157,   161,   156,   161,   160,     133,   134,   135,   136,   137,   161,   157,   161,   161,   156,
     143,   144,   145,   161,   147,   161,   160,   160,   156,   152,     143,   144,   145,   161,   147,   161,   157,   160,   160,   152,
     160,   156,   101,   157,   156,   156,   156,   156,   156,   156,     160,   156,   160,   160,   156,   156,   156,   156,   101,   156,
     171,   170,   263,   156,   160,   160,   160,   156,   160,   172,     156,   156,   171,   263,   170,   156,   160,   160,   156,   172,
     160,   138,   160,   157,    90,   160,   407,   160,   160,   160,     160,   160,   157,   160,   160,   138,   160,   160,   160,   160,
     160,   160,   160,   156,   156,    92,   173,   107,   138,   101,     160,   160,   156,   156,    90,    92,   107,   101,   101,   157,
     101,   156,   161,   290,   658,   170,   170,   265,   117,   272,     138,   161,   170,   265,   160,   170,   409,   173,   117,   272,
     207,   420,   173,   173,   170,   173,   170,   170,   170,   170,     660,   173,   173,   170,   173,   170,   170,   422,   170,   170,
     170,   170,   170,   170,   170,   170,   170,   170,   160,   170, 
     556,   173,   170,   170,   170,   170,   170,   170,    78,   170, 
     170,   170,   170,   170,   570,   170,   170,   170,   170,   170, 
     170,   170,   170,   170,   170,   170,   170,   170,   170,   157, 
     160,   157,   157,   157,   157,   157,   157,   157,   157,   156, 
     156,   156,   156,   172,   157,   156,   664,   157,   156,    -1, 
      49,    -1,   170,    78,    -1,   302,    -1,    -1,   170,    -1, 
      -1,   170,   160,   170,   170,   170,   170,   170,   170,   170, 
     170,   170,   160,   170,   170,   170,   170,   170,   170,   170, 
     170,   156,   160,   160,   160,   171,   160,   160,   156,   156, 
     170,   170,   156,   156,   160,    74,    -1,    -1,   170,   170, 
      -1,   170,    -1,    -1,    -1,   170,    -1,   156,   170,   170, 
      170,   170,   170,   170,   170,   170,   170,   170,   170,   170,       170,   170,   170,   170,   170,   170,   170,   170,   170,   170,
     170,   677,   170,   170,   170,   170,   170,   170,   170,   170,     170,   170,   558,   170,   170,   170,   170,    78,   170,   170,
      170,   170,   170,   170,   170,   170,   572,   170,   170,   170,
      170,   170,   157,   170,   170,   173,   170,   170,   170,   157,
      160,   160,   157,   157,   156,   172,   157,   157,   157,   157,
      156,   156,   156,   156,   666,   157,   156,   170,   157,   156,
       78,    49,    -1,   170,    -1,   290,    -1,   302,    -1,   170,
       -1,    -1,   170,   160,   170,   170,   170,   170,   170,   170,
      170,   170,   170,   156,   170,   170,   170,   170,   170,   170,
      170,   160,   160,   160,   160,   160,   171,   156,   156,   170,
      170,   156,   156,   160,    74,   227,   170,   170,   170,    -1,
      170,    -1,    -1,    -1,   170,    -1,    -1,   170,   170,   170,
      170,   170,   170,   170,   170,   170,   170,   170,   170,   170,       170,   170,   170,   170,   170,   170,   170,   170,   170,   170,
     170,   170,    -1,   170,   170,   173,   170,   170,   170,   170,     170,   170,   170,   679,   170,   170,   170,   170,   170,   170,
     170,   170,   170,   170,   170,   160,   170,   170,   173,   170,     170,   170,   170,   170,   170,   170,   170,   170,   170,   156,
     170,   170,   170,   170,   156,   156,   170,   170,   170,   170,     170,   170,   173,   170,   170,   170,   170,   170,   170,   170,
     170,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,     170,   170,   170,   160,   156,   170,   170,   173,   170,   170,
      170,   170,   170,   156,   170,   170,   170,   170,    -1,   170,
       -1,    -1,    -1,   220,    -1,    -1,    -1,    -1,    -1,    -1,
       -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,        -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,      -1,    -1,    -1,    -1,   207
      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -1,   220 
 };  };
   
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
Line 1661  static const yytype_uint16 yystos[] = Line 1762  static const yytype_uint16 yystos[] =
      185,   187,   189,   190,   191,   192,   194,   202,   213,   223,       185,   187,   189,   190,   191,   192,   194,   202,   213,   223,
      239,   277,   286,   306,   171,     8,   160,   156,    12,   193,       239,   277,   286,   306,   171,     8,   160,   156,    12,   193,
      171,   171,   224,   214,   171,   171,   287,    83,   160,   161,       171,   171,   224,   214,   171,   171,   287,    83,   160,   161,
     211,   312,   128,   157,   178,   160,   170,   170,   170,   195,     211,   313,   128,   157,   178,   160,   170,   170,   170,   195,
      203,   171,   171,   240,   278,    83,   101,   289,   290,   139,       203,   171,   171,   240,   278,    83,   101,   289,   290,   139,
      212,    85,   308,   212,    85,   310,   170,   188,     4,     5,       212,    85,   308,   212,    85,   310,   170,   188,     4,     5,
        6,   172,   179,   186,    14,    15,    16,    17,    18,   172,         6,   172,   179,   186,    14,    15,    16,    17,    18,   172,
Line 1669  static const yytype_uint16 yystos[] = Line 1770  static const yytype_uint16 yystos[] =
       46,    47,    48,    49,    50,    51,    58,    59,    60,    61,        46,    47,    48,    49,    50,    51,    58,    59,    60,    61,
       62,    63,    64,    67,    68,    69,   172,   241,    71,    72,        62,    63,    64,    67,    68,    69,   172,   241,    71,    72,
       73,    74,    75,    76,   172,   279,    84,   290,   160,   161,        73,    74,    75,    76,   172,   279,    84,   290,   160,   161,
       5,    81,   291,    83,    84,   290,   160,   171,   311,   312,       5,    81,   291,    83,    84,   290,   160,   171,   312,   313,
     311,   170,   156,   160,   156,   160,   160,   170,   157,   157,     312,   170,   156,   160,   156,   160,   160,   170,   157,   157,
      156,   157,   157,   211,   211,   210,    25,   160,    27,    28,       156,   157,   157,   211,   211,   210,    25,   160,    27,    28,
       29,    30,    31,    32,    33,    34,    35,    36,    37,    38,        29,    30,    31,    32,    33,    34,    35,    36,    37,    38,
      172,   226,    40,    41,    42,    43,   172,   216,   161,   161,       172,   226,    40,    41,    42,    43,   172,   216,   161,   161,
Line 1678  static const yytype_uint16 yystos[] = Line 1779  static const yytype_uint16 yystos[] =
       55,   160,   273,   274,    52,    55,    52,    53,    54,    57,        55,   160,   273,   274,    52,    55,    52,    53,    54,    57,
       53,    55,    56,   160,   156,   156,    65,    66,   160,   275,        53,    55,    56,   160,   156,   156,    65,    66,   160,   275,
      276,   156,   157,   156,   156,   156,   156,   156,   156,   138,       276,   156,   157,   156,   156,   156,   156,   156,   156,   138,
     162,   302,   160,   101,   171,   307,   313,   309,   181,   180,     162,   302,   160,   101,   171,   307,   314,   309,   181,   180,
      183,   182,   184,   197,   198,   199,   200,   201,   205,   206,       183,   182,   184,   197,   198,   199,   200,   201,   205,   206,
      170,   209,   160,   208,   160,   156,   156,   160,   160,   160,       170,   209,   160,   208,   160,   156,   156,   160,   160,   160,
      157,   160,   160,   160,   160,   160,   160,   160,   156,   156,       157,   160,   160,   160,   160,   160,   160,   160,   156,   156,
      242,   243,   170,   173,   170,   173,   247,   248,   249,   250,       242,   243,   170,   173,   170,   173,   247,   248,   249,   250,
      251,   252,   173,   253,   254,   256,   257,   258,   255,   264,       251,   252,   173,   253,   254,   256,   257,   258,   255,   264,
      265,   263,   266,   259,   262,   161,   271,   272,   271,   246,       265,   263,   266,   259,   262,   161,   271,   272,   271,   246,
     173,   260,   261,   280,   167,   168,   169,   375,   282,   375,     173,   260,   261,   280,   167,   168,   169,   376,   282,   376,
     375,   375,   302,   139,   140,   303,   160,   161,   367,   292,     376,   376,   302,   139,   140,   303,   160,   161,   368,   292,
     311,    86,    87,    89,    91,    93,    95,    96,    97,    98,     170,   311,   312,    86,    87,    89,    91,    93,    95,    96,
      99,   100,   103,   104,   105,   109,   110,   112,   113,   114,      97,    98,    99,   100,   103,   104,   105,   109,   110,   112,
     116,   118,   120,   121,   130,   131,   132,   133,   134,   135,     113,   114,   116,   118,   120,   121,   130,   131,   132,   133,
     136,   137,   143,   144,   145,   147,   152,   172,   314,   311,     134,   135,   136,   137,   143,   144,   145,   147,   152,   172,
      315,   311,   170,   170,   170,   170,   170,   170,   170,   170,
      170,   170,   170,   170,   170,   160,   170,   228,   229,   227,
      230,   232,   233,   231,   234,   235,   236,   237,   238,   156,
      160,   156,   160,   221,   222,   170,   170,   267,   269,   170,
      170,   170,   170,   170,   170,   273,   170,   170,   170,   170,
      170,   170,   170,   170,   170,   170,   170,   170,   138,   173,
      244,   245,   170,   275,   170,   170,   170,   281,   170,   283,
      284,   285,   303,   141,   142,   156,   304,    77,   146,   147,
      151,   288,   293,   211,   317,    90,    92,   107,   108,   364,
      106,   107,   108,   160,   107,   157,   157,   157,   157,   101,
      101,   157,   156,   336,   157,   157,   115,   157,   117,   119,
      157,   157,   362,   157,   156,   156,   156,   156,   368,   157,
      115,   157,   115,   157,   156,   157,   148,   149,   160,   156,
      170,   170,   170,   170,   170,   170,   170,   170,   170,   170,       170,   170,   170,   170,   170,   170,   170,   170,   170,   170,
     170,   170,   170,   160,   170,   228,   229,   227,   230,   232,     170,   170,   160,   217,   160,   219,   170,   170,   272,   170,
     233,   231,   234,   235,   236,   237,   238,   156,   160,   156,     170,   170,   170,   170,   170,   304,   298,    78,   156,   367,
     160,   221,   222,   170,   170,   267,   269,   170,   170,   170,     148,   149,   156,   172,   316,   363,   318,   319,   160,   160,
     170,   170,   170,   273,   170,   170,   170,   170,   170,   170,     323,   160,   160,   320,   160,   325,   326,   327,   328,   102,
     170,   170,   170,   170,   170,   170,   138,   173,   244,   245,     368,   102,   368,   334,   335,   367,   337,   349,   351,   350,
     170,   275,   170,   170,   170,   281,   170,   283,   284,   285,     360,   347,   346,   348,   171,   352,   353,   354,   355,   358,
     303,   141,   142,   156,   304,    77,   146,   147,   151,   288,     331,   345,   357,   356,   339,   338,   340,   344,   156,   156,
     293,   211,   316,    90,    92,   107,   108,   363,   106,   107,     153,   154,   155,   207,   218,   170,   220,   170,    78,   299,
     108,   160,   107,   157,   157,   157,   157,   101,   101,   157,     301,   294,   156,   156,   295,   170,    88,   170,   170,   170,
     156,   335,   157,   157,   115,   157,   117,   119,   157,   157,     160,   366,   170,   321,   322,   170,   324,   170,   170,   170,
     361,   157,   156,   156,   156,   156,   367,   157,   115,   157,     170,   368,   329,   368,   332,   170,   170,   170,   170,   170,
     115,   157,   156,   157,   148,   149,   160,   156,   170,   170,     170,   170,   170,   170,   170,   170,   369,   170,   170,   170,
      170,   170,   170,   170,   170,   170,   170,   170,   170,   170,       170,   170,   170,   170,   170,   170,   170,   170,   170,   170,
     160,   217,   160,   219,   170,   170,   272,   170,   170,   170,     376,   163,   164,   165,   166,   377,   341,   342,   343,   170,
     170,   170,   170,   304,   298,    78,   156,   366,   148,   149,     170,   170,   156,   305,   170,   300,   170,   376,   377,   170,
     156,   172,   315,   362,   317,   318,   160,   160,   322,   160,     365,   170,   170,   170,   170,   330,   170,   333,   170,    77,
     160,   319,   160,   324,   325,   326,   327,   102,   367,   102,     110,   126,   147,   172,   370,   359,   361,   170,   170,   170,
     367,   333,   334,   366,   336,   348,   350,   349,   359,   346,     173,   296,   297,   170,   170,   170,    78,   367,   160,   148,
     345,   347,   171,   351,   352,   353,   354,   357,   330,   344,     149,   170,   170,   299,   170,   170,   305,   373,   374,   156,
     356,   355,   338,   337,   339,   343,   156,   156,   153,   154,     156,   375,   170,   170,   376,   377,   170,   371,   372,   170,
     155,   207,   218,   170,   220,   170,    78,   299,   301,   294,     170
     156,   156,   295,   170,    88,   170,   170,   170,   160,   365, 
     170,   320,   321,   170,   323,   170,   170,   170,   170,   367, 
     328,   367,   331,   170,   170,   170,   170,   170,   170,   170, 
     170,   170,   170,   170,   368,   170,   170,   170,   170,   170, 
     170,   170,   170,   170,   170,   170,   170,   170,   375,   163, 
     164,   165,   166,   376,   340,   341,   342,   170,   170,   170, 
     156,   305,   170,   300,   170,   375,   376,   170,   364,   170, 
     170,   170,   170,   329,   170,   332,   170,    77,   110,   126, 
     147,   172,   369,   358,   360,   170,   170,   170,   173,   296, 
     297,   170,   170,   170,    78,   366,   160,   148,   149,   170, 
     170,   299,   170,   170,   305,   372,   373,   156,   156,   374, 
     170,   170,   375,   376,   170,   370,   371,   170,   170 
 };  };
   
 #define yyerrok         (yyerrstatus = 0)  #define yyerrok         (yyerrstatus = 0)
Line 1739  static const yytype_uint16 yystos[] = Line 1841  static const yytype_uint16 yystos[] =
   
 /* Like YYERROR except do call yyerror.  This remains here temporarily  /* Like YYERROR except do call yyerror.  This remains here temporarily
    to ease the transition to the new meaning of YYERROR, for GCC.     to ease the transition to the new meaning of YYERROR, for GCC.
   Once GCC version 2 has supplanted version 1, this can go.  */   Once GCC version 2 has supplanted version 1, this can go.  However,
    YYFAIL appears to be in use.  Nevertheless, it is formally deprecated
    in Bison 2.4.2's NEWS entry, where a plan to phase it out is
    discussed.  */
   
 #define YYFAIL          goto yyerrlab  #define YYFAIL          goto yyerrlab
   #if defined YYFAIL
     /* This is here to suppress warnings from the GCC cpp's
        -Wunused-macros.  Normally we don't worry about that warning, but
        some users do, and we want to make it easy for users to remove
        YYFAIL uses, which will produce warnings from Bison 2.5.  */
   #endif
   
 #define YYRECOVERING()  (!!yyerrstatus)  #define YYRECOVERING()  (!!yyerrstatus)
   
#define YYBACKUP(Token, Value)                                  \#define YYBACKUP(Token, Value)                                  \
do                                                                \do                                                              \
  if (yychar == YYEMPTY && yylen == 1)                          \  if (yychar == YYEMPTY)                                        \
    {                                                                \    {                                                           \
      yychar = (Token);                                         \      yychar = (Token);                                         \
      yylval = (Value);                                         \      yylval = (Value);                                         \
      yytoken = YYTRANSLATE (yychar);                                \      YYPOPSTACK (yylen);                                       \
      YYPOPSTACK (1);                                                \      yystate = *yyssp;                                         \
      goto yybackup;                                            \      goto yybackup;                                            \
    }                                                                \    }                                                           \
  else                                                          \  else                                                          \
    {                                                           \    {                                                           \
       yyerror (YY_("syntax error: cannot back up")); \        yyerror (YY_("syntax error: cannot back up")); \
       YYERROR;                                                  \        YYERROR;                                                  \
     }                                                           \      }                                                           \
Line 1766  while (YYID (0)) Line 1877  while (YYID (0))
 #define YYTERROR        1  #define YYTERROR        1
 #define YYERRCODE       256  #define YYERRCODE       256
   
   
 /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].  /* YYLLOC_DEFAULT -- Set CURRENT to span from RHS[1] to RHS[N].
    If N is 0, then set CURRENT to the empty location which ends     If N is 0, then set CURRENT to the empty location which ends
    the previous symbol: RHS[0] (always defined).  */     the previous symbol: RHS[0] (always defined).  */
   
 #define YYRHSLOC(Rhs, K) ((Rhs)[K])  
 #ifndef YYLLOC_DEFAULT  #ifndef YYLLOC_DEFAULT
# define YYLLOC_DEFAULT(Current, Rhs, N)                                \# define YYLLOC_DEFAULT(Current, Rhs, N)                                \
    do                                                                        \    do                                                                  \
      if (YYID (N))                                                    \      if (YYID (N))                                                     \
        {                                                                \        {                                                               \
          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \          (Current).first_line   = YYRHSLOC (Rhs, 1).first_line;        \
          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \          (Current).first_column = YYRHSLOC (Rhs, 1).first_column;      \
          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \          (Current).last_line    = YYRHSLOC (Rhs, N).last_line;         \
          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \          (Current).last_column  = YYRHSLOC (Rhs, N).last_column;       \
        }                                                                \        }                                                               \
      else                                                              \      else                                                              \
        {                                                                \        {                                                               \
          (Current).first_line   = (Current).last_line   =              \          (Current).first_line   = (Current).last_line   =              \
            YYRHSLOC (Rhs, 0).last_line;                                \            YYRHSLOC (Rhs, 0).last_line;                                \
          (Current).first_column = (Current).last_column =              \          (Current).first_column = (Current).last_column =              \
            YYRHSLOC (Rhs, 0).last_column;                              \            YYRHSLOC (Rhs, 0).last_column;                              \
        }                                                               \        }                                                               \
     while (YYID (0))      while (YYID (0))
 #endif  #endif
   
   #define YYRHSLOC(Rhs, K) ((Rhs)[K])
   
 /* YY_LOCATION_PRINT -- Print the location on the stream.  
    This macro was not mandated originally: define only if we know  
    we won't break user code: when these are the locations we know.  */  
   
   
   /* This macro is provided for backward compatibility. */
   
 #ifndef YY_LOCATION_PRINT  #ifndef YY_LOCATION_PRINT
# if YYLTYPE_IS_TRIVIAL# define YY_LOCATION_PRINT(File, Loc) ((void) 0)
#  define YY_LOCATION_PRINT(File, Loc)                  \ 
     fprintf (File, "%d.%d-%d.%d",                      \ 
              (Loc).first_line, (Loc).first_column,     \ 
              (Loc).last_line,  (Loc).last_column) 
# else 
#  define YY_LOCATION_PRINT(File, Loc) ((void) 0) 
# endif 
 #endif  #endif
   
   
Line 1860  yy_symbol_value_print (yyoutput, yytype, yyvaluep) Line 1963  yy_symbol_value_print (yyoutput, yytype, yyvaluep)
     YYSTYPE const * const yyvaluep;      YYSTYPE const * const yyvaluep;
 #endif  #endif
 {  {
     FILE *yyo = yyoutput;
     YYUSE (yyo);
   if (!yyvaluep)    if (!yyvaluep)
     return;      return;
 # ifdef YYPRINT  # ifdef YYPRINT
Line 1997  int yydebug; Line 2102  int yydebug;
 # define YYMAXDEPTH 10000  # define YYMAXDEPTH 10000
 #endif  #endif
   
   
   
 #if YYERROR_VERBOSE  #if YYERROR_VERBOSE
   
Line 2100  yytnamerr (char *yyres, const char *yystr) Line 2204  yytnamerr (char *yyres, const char *yystr)
 }  }
 # endif  # endif
   
/* Copy into YYRESULT an error message about the unexpected token/* Copy into *YYMSG, which is of size *YYMSG_ALLOC, an error message
   YYCHAR while in state YYSTATE.  Return the number of bytes copied,   about the unexpected token YYTOKEN for the state stack whose top is
   including the terminating null byte.  If YYRESULT is null, do not   YYSSP.
   copy anything; just return the number of bytes that would be
   copied.  As a special case, return 0 if an ordinary "syntax error"   Return 0 if *YYMSG was successfully written.  Return 1 if *YYMSG is
   message will do.  Return YYSIZE_MAXIMUM if overflow occurs during   not large enough to hold the message.  In that case, also set
   size calculation.  */   *YYMSG_ALLOC to the required number of bytes.  Return 2 if the
static YYSIZE_T   required number of bytes is too large to store.  */
yysyntax_error (char *yyresult, int yystate, int yychar)static int
 yysyntax_error (YYSIZE_T *yymsg_alloc, char **yymsg,
                 yytype_int16 *yyssp, int yytoken)
 {  {
  int yyn = yypact[yystate];  YYSIZE_T yysize0 = yytnamerr (YY_NULL, yytname[yytoken]);
   YYSIZE_T yysize = yysize0;
   YYSIZE_T yysize1;
   enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };
   /* Internationalized format string. */
   const char *yyformat = YY_NULL;
   /* Arguments of yyformat. */
   char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];
   /* Number of reported tokens (one for the "unexpected", one per
      "expected"). */
   int yycount = 0;
   
  if (! (YYPACT_NINF < yyn && yyn <= YYLAST))  /* There are many possibilities here to consider:
    return 0;     - Assume YYFAIL is not used.  It's too flawed to consider.  See
  else       <http://lists.gnu.org/archive/html/bison-patches/2009-12/msg00024.html>
        for details.  YYERROR is fine as it does not invoke this
        function.
      - If this state is a consistent state with a default action, then
        the only way this function was invoked is if the default action
        is an error action.  In that case, don't check for expected
        tokens because there are none.
      - The only way there can be no lookahead present (in yychar) is if
        this state is a consistent state with a default action.  Thus,
        detecting the absence of a lookahead is sufficient to determine
        that there is no unexpected or expected token to report.  In that
        case, just report a simple "syntax error".
      - Don't assume there isn't a lookahead just because this state is a
        consistent state with a default action.  There might have been a
        previous inconsistent state, consistent state with a non-default
        action, or user semantic action that manipulated yychar.
      - Of course, the expected token list depends on states to have
        correct lookahead information, and it depends on the parser not
        to perform extra reductions after fetching a lookahead from the
        scanner and before detecting a syntax error.  Thus, state merging
        (from LALR or IELR) and default reductions corrupt the expected
        token list.  However, the list is correct for canonical LR with
        one exception: it will still contain any token that will not be
        accepted due to an error action in a later state.
   */
   if (yytoken != YYEMPTY)
     {      {
      int yytype = YYTRANSLATE (yychar);      int yyn = yypact[*yyssp];
      YYSIZE_T yysize0 = yytnamerr (0, yytname[yytype]);      yyarg[yycount++] = yytname[yytoken];
      YYSIZE_T yysize = yysize0;      if (!yypact_value_is_default (yyn))
      YYSIZE_T yysize1;        {
      int yysize_overflow = 0;          /* Start YYX at -YYN if negative to avoid negative indexes in
      enum { YYERROR_VERBOSE_ARGS_MAXIMUM = 5 };             YYCHECK.  In other words, skip the first -YYN actions for
      char const *yyarg[YYERROR_VERBOSE_ARGS_MAXIMUM];             this state because they are default actions.  */
      int yyx;          int yyxbegin = yyn < 0 ? -yyn : 0;
           /* Stay within bounds of both yycheck and yytname.  */
           int yychecklim = YYLAST - yyn + 1;
           int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;
           int yyx;
   
# if 0          for (yyx = yyxbegin; yyx < yyxend; ++yyx)
      /* This is so xgettext sees the translatable formats that are            if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR
         constructed on the fly.  */                && !yytable_value_is_error (yytable[yyx + yyn]))
      YY_("syntax error, unexpected %s");              {
      YY_("syntax error, unexpected %s, expecting %s");                if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)
      YY_("syntax error, unexpected %s, expecting %s or %s");                  {
      YY_("syntax error, unexpected %s, expecting %s or %s or %s");                    yycount = 1;
      YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s");                    yysize = yysize0;
# endif                    break;
      char *yyfmt;                  }
      char const *yyf;                yyarg[yycount++] = yytname[yyx];
      static char const yyunexpected[] = "syntax error, unexpected %s";                yysize1 = yysize + yytnamerr (YY_NULL, yytname[yyx]);
      static char const yyexpecting[] = ", expecting %s";                if (! (yysize <= yysize1
      static char const yyor[] = " or %s";                       && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
      char yyformat[sizeof yyunexpected                  return 2;
                    + sizeof yyexpecting - 1                yysize = yysize1;
                    + ((YYERROR_VERBOSE_ARGS_MAXIMUM - 2)              }
                       * (sizeof yyor - 1))];        }
      char const *yyprefix = yyexpecting;    }
   
      /* Start YYX at -YYN if negative to avoid negative indexes in  switch (yycount)
         YYCHECK.  */    {
      int yyxbegin = yyn < 0 ? -yyn : 0;# define YYCASE_(N, S)                      \
       case N:                               \
         yyformat = S;                       \
       break
       YYCASE_(0, YY_("syntax error"));
       YYCASE_(1, YY_("syntax error, unexpected %s"));
       YYCASE_(2, YY_("syntax error, unexpected %s, expecting %s"));
       YYCASE_(3, YY_("syntax error, unexpected %s, expecting %s or %s"));
       YYCASE_(4, YY_("syntax error, unexpected %s, expecting %s or %s or %s"));
       YYCASE_(5, YY_("syntax error, unexpected %s, expecting %s or %s or %s or %s"));
 # undef YYCASE_
     }
   
      /* Stay within bounds of both yycheck and yytname.  */  yysize1 = yysize + yystrlen (yyformat);
      int yychecklim = YYLAST - yyn + 1;  if (! (yysize <= yysize1 && yysize1 <= YYSTACK_ALLOC_MAXIMUM))
      int yyxend = yychecklim < YYNTOKENS ? yychecklim : YYNTOKENS;    return 2;
      int yycount = 1;  yysize = yysize1;
   
      yyarg[0] = yytname[yytype];  if (*yymsg_alloc < yysize)
      yyfmt = yystpcpy (yyformat, yyunexpected);    {
      *yymsg_alloc = 2 * yysize;
      for (yyx = yyxbegin; yyx < yyxend; ++yyx)      if (! (yysize <= *yymsg_alloc
        if (yycheck[yyx + yyn] == yyx && yyx != YYTERROR)             && *yymsg_alloc <= YYSTACK_ALLOC_MAXIMUM))
          {        *yymsg_alloc = YYSTACK_ALLOC_MAXIMUM;
            if (yycount == YYERROR_VERBOSE_ARGS_MAXIMUM)      return 1;
              { 
                yycount = 1; 
                yysize = yysize0; 
                yyformat[sizeof yyunexpected - 1] = '\0'; 
                break; 
              } 
            yyarg[yycount++] = yytname[yyx]; 
            yysize1 = yysize + yytnamerr (0, yytname[yyx]); 
            yysize_overflow |= (yysize1 < yysize); 
            yysize = yysize1; 
            yyfmt = yystpcpy (yyfmt, yyprefix); 
            yyprefix = yyor; 
          } 
 
      yyf = YY_(yyformat); 
      yysize1 = yysize + yystrlen (yyf); 
      yysize_overflow |= (yysize1 < yysize); 
      yysize = yysize1; 
 
      if (yysize_overflow) 
        return YYSIZE_MAXIMUM; 
 
      if (yyresult) 
        { 
          /* Avoid sprintf, as that infringes on the user's name space. 
             Don't have undefined behavior even if the translation 
             produced a string with the wrong number of "%s"s.  */ 
          char *yyp = yyresult; 
          int yyi = 0; 
          while ((*yyp = *yyf) != '\0') 
            { 
              if (*yyp == '%' && yyf[1] == 's' && yyi < yycount) 
                { 
                  yyp += yytnamerr (yyp, yyarg[yyi++]); 
                  yyf += 2; 
                } 
              else 
                { 
                  yyp++; 
                  yyf++; 
                } 
            } 
        } 
      return yysize; 
     }      }
   
     /* Avoid sprintf, as that infringes on the user's name space.
        Don't have undefined behavior even if the translation
        produced a string with the wrong number of "%s"s.  */
     {
       char *yyp = *yymsg;
       int yyi = 0;
       while ((*yyp = *yyformat) != '\0')
         if (*yyp == '%' && yyformat[1] == 's' && yyi < yycount)
           {
             yyp += yytnamerr (yyp, yyarg[yyi++]);
             yyformat += 2;
           }
         else
           {
             yyp++;
             yyformat++;
           }
     }
     return 0;
 }  }
 #endif /* YYERROR_VERBOSE */  #endif /* YYERROR_VERBOSE */
   
   
 /*-----------------------------------------------.  /*-----------------------------------------------.
 | Release the memory associated to this symbol.  |  | Release the memory associated to this symbol.  |
Line 2241  yydestruct (yymsg, yytype, yyvaluep) Line 2372  yydestruct (yymsg, yytype, yyvaluep)
     }      }
 }  }
   
 /* Prevent warnings from -Wmissing-prototypes.  */  
 #ifdef YYPARSE_PARAM  
 #if defined __STDC__ || defined __cplusplus  
 int yyparse (void *YYPARSE_PARAM);  
 #else  
 int yyparse ();  
 #endif  
 #else /* ! YYPARSE_PARAM */  
 #if defined __STDC__ || defined __cplusplus  
 int yyparse (void);  
 #else  
 int yyparse ();  
 #endif  
 #endif /* ! YYPARSE_PARAM */  
   
   
   
 /* The lookahead symbol.  */  /* The lookahead symbol.  */
 int yychar;  int yychar;
   
Line 2267  YYSTYPE yylval; Line 2385  YYSTYPE yylval;
 int yynerrs;  int yynerrs;
   
   
   /*----------.
   | yyparse.  |
   `----------*/
   
 /*-------------------------.  
 | yyparse or yypush_parse.  |  
 `-------------------------*/  
   
 #ifdef YYPARSE_PARAM  #ifdef YYPARSE_PARAM
 #if (defined __STDC__ || defined __C99__FUNC__ \  #if (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)       || defined __cplusplus || defined _MSC_VER)
Line 2294  yyparse () Line 2411  yyparse ()
 #endif  #endif
 #endif  #endif
 {  {
   
   
     int yystate;      int yystate;
     /* Number of tokens to shift before error messages enabled.  */      /* Number of tokens to shift before error messages enabled.  */
     int yyerrstatus;      int yyerrstatus;
Line 2304  yyparse () Line 2419  yyparse ()
        `yyss': related to states.         `yyss': related to states.
        `yyvs': related to semantic values.         `yyvs': related to semantic values.
   
       Refer to the stacks thru separate pointers, to allow yyoverflow       Refer to the stacks through separate pointers, to allow yyoverflow
        to reallocate them elsewhere.  */         to reallocate them elsewhere.  */
   
     /* The state stack.  */      /* The state stack.  */
Line 2358  yyparse () Line 2473  yyparse ()
      The wasted elements are never initialized.  */       The wasted elements are never initialized.  */
   yyssp = yyss;    yyssp = yyss;
   yyvsp = yyvs;    yyvsp = yyvs;
   
   goto yysetstate;    goto yysetstate;
   
 /*------------------------------------------------------------.  /*------------------------------------------------------------.
Line 2450  yybackup: Line 2564  yybackup:
   
   /* First try to decide what to do without reference to lookahead token.  */    /* First try to decide what to do without reference to lookahead token.  */
   yyn = yypact[yystate];    yyn = yypact[yystate];
  if (yyn == YYPACT_NINF)  if (yypact_value_is_default (yyn))
     goto yydefault;      goto yydefault;
   
   /* Not known => get a lookahead token if don't already have one.  */    /* Not known => get a lookahead token if don't already have one.  */
Line 2481  yybackup: Line 2595  yybackup:
   yyn = yytable[yyn];    yyn = yytable[yyn];
   if (yyn <= 0)    if (yyn <= 0)
     {      {
      if (yyn == 0 || yyn == YYTABLE_NINF)      if (yytable_value_is_error (yyn))
        goto yyerrlab;        goto yyerrlab;
       yyn = -yyn;        yyn = -yyn;
       goto yyreduce;        goto yyreduce;
     }      }
Line 2536  yyreduce: Line 2650  yyreduce:
   switch (yyn)    switch (yyn)
     {      {
         case 22:          case 22:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 368 "cfparse.y"
#line 298 "cfparse.y" 
     {      {
                         struct passwd *pw;                          struct passwd *pw;
   
Line 2551  yyreduce: Line 2664  yyreduce:
     break;      break;
   
   case 24:    case 24:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 378 "cfparse.y"
#line 308 "cfparse.y" 
     { lcconf->uid = (yyvsp[(2) - (2)].num); }      { lcconf->uid = (yyvsp[(2) - (2)].num); }
     break;      break;
   
   case 26:    case 26:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 380 "cfparse.y"
#line 310 "cfparse.y" 
     {      {
                         struct group *gr;                          struct group *gr;
   
Line 2573  yyreduce: Line 2684  yyreduce:
     break;      break;
   
   case 28:    case 28:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 390 "cfparse.y"
#line 320 "cfparse.y" 
     { lcconf->gid = (yyvsp[(2) - (2)].num); }      { lcconf->gid = (yyvsp[(2) - (2)].num); }
     break;      break;
   
   case 30:    case 30:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 391 "cfparse.y"
#line 321 "cfparse.y" 
     { lcconf->chroot = (yyvsp[(2) - (2)].val)->v; }      { lcconf->chroot = (yyvsp[(2) - (2)].val)->v; }
     break;      break;
   
   case 32:    case 32:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 397 "cfparse.y"
#line 327 "cfparse.y" 
     {      {
                         if ((yyvsp[(2) - (3)].num) >= LC_PATHTYPE_MAX) {                          if ((yyvsp[(2) - (3)].num) >= LC_PATHTYPE_MAX) {
                                 yyerror("invalid path type %d", (yyvsp[(2) - (3)].num));                                  yyerror("invalid path type %d", (yyvsp[(2) - (3)].num));
Line 2608  yyreduce: Line 2716  yyreduce:
     break;      break;
   
   case 34:    case 34:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 417 "cfparse.y"
#line 347 "cfparse.y" 
     { lcconf->complex_bundle = (yyvsp[(2) - (2)].num); }      { lcconf->complex_bundle = (yyvsp[(2) - (2)].num); }
     break;      break;
   
   case 36:    case 36:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 423 "cfparse.y"
#line 353 "cfparse.y" 
     {      {
                         char path[MAXPATHLEN];                          char path[MAXPATHLEN];
   
Line 2630  yyreduce: Line 2736  yyreduce:
     break;      break;
   
   case 37:    case 37:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 437 "cfparse.y"
#line 367 "cfparse.y" 
     {      {
                         lcconf->pfkey_buffer_size = (yyvsp[(2) - (3)].num);                          lcconf->pfkey_buffer_size = (yyvsp[(2) - (3)].num);
         }          }
     break;      break;
   
   case 38:    case 38:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 444 "cfparse.y"
#line 374 "cfparse.y" 
     {      {
                         if ((yyvsp[(2) - (3)].num) >= LC_GSSENC_MAX) {                          if ((yyvsp[(2) - (3)].num) >= LC_GSSENC_MAX) {
                                 yyerror("invalid GSS ID encoding %d", (yyvsp[(2) - (3)].num));                                  yyerror("invalid GSS ID encoding %d", (yyvsp[(2) - (3)].num));
Line 2652  yyreduce: Line 2756  yyreduce:
     break;      break;
   
   case 40:    case 40:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 459 "cfparse.y"
#line 389 "cfparse.y" 
     {      {
                         /*                          /*
                          * set the loglevel to the value specified                           * set the loglevel to the value specified
Line 2667  yyreduce: Line 2770  yyreduce:
     break;      break;
   
   case 44:    case 44:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 479 "cfparse.y"
#line 409 "cfparse.y" 
     { lcconf->pad_random = (yyvsp[(2) - (2)].num); }      { lcconf->pad_random = (yyvsp[(2) - (2)].num); }
     break;      break;
   
   case 46:    case 46:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 480 "cfparse.y"
#line 410 "cfparse.y" 
     { lcconf->pad_randomlen = (yyvsp[(2) - (2)].num); }      { lcconf->pad_randomlen = (yyvsp[(2) - (2)].num); }
     break;      break;
   
   case 48:    case 48:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 481 "cfparse.y"
#line 411 "cfparse.y" 
     { lcconf->pad_maxsize = (yyvsp[(2) - (2)].num); }      { lcconf->pad_maxsize = (yyvsp[(2) - (2)].num); }
     break;      break;
   
   case 50:    case 50:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 482 "cfparse.y"
#line 412 "cfparse.y" 
     { lcconf->pad_strict = (yyvsp[(2) - (2)].num); }      { lcconf->pad_strict = (yyvsp[(2) - (2)].num); }
     break;      break;
   
   case 52:    case 52:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 483 "cfparse.y"
#line 413 "cfparse.y" 
     { lcconf->pad_excltail = (yyvsp[(2) - (2)].num); }      { lcconf->pad_excltail = (yyvsp[(2) - (2)].num); }
     break;      break;
   
   case 57:    case 57:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 496 "cfparse.y"
#line 426 "cfparse.y" 
     {      {
                         myaddr_listen((yyvsp[(2) - (2)].saddr), FALSE);                          myaddr_listen((yyvsp[(2) - (2)].saddr), FALSE);
                         racoon_free((yyvsp[(2) - (2)].saddr));                          racoon_free((yyvsp[(2) - (2)].saddr));
Line 2712  yyreduce: Line 2809  yyreduce:
     break;      break;
   
   case 59:    case 59:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 502 "cfparse.y"
#line 432 "cfparse.y" 
     {      {
 #ifdef ENABLE_NATT  #ifdef ENABLE_NATT
                         myaddr_listen((yyvsp[(2) - (2)].saddr), TRUE);                          myaddr_listen((yyvsp[(2) - (2)].saddr), TRUE);
Line 2727  yyreduce: Line 2823  yyreduce:
     break;      break;
   
   case 61:    case 61:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 513 "cfparse.y"
#line 443 "cfparse.y" 
     {      {
 #ifdef ENABLE_ADMINPORT  #ifdef ENABLE_ADMINPORT
                         adminsock_conf((yyvsp[(2) - (5)].val), (yyvsp[(3) - (5)].val), (yyvsp[(4) - (5)].val), (yyvsp[(5) - (5)].num));                          adminsock_conf((yyvsp[(2) - (5)].val), (yyvsp[(3) - (5)].val), (yyvsp[(4) - (5)].val), (yyvsp[(5) - (5)].num));
Line 2740  yyreduce: Line 2835  yyreduce:
     break;      break;
   
   case 63:    case 63:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 522 "cfparse.y"
#line 452 "cfparse.y" 
     {      {
 #ifdef ENABLE_ADMINPORT  #ifdef ENABLE_ADMINPORT
                         adminsock_conf((yyvsp[(2) - (2)].val), NULL, NULL, -1);                          adminsock_conf((yyvsp[(2) - (2)].val), NULL, NULL, -1);
Line 2753  yyreduce: Line 2847  yyreduce:
     break;      break;
   
   case 65:    case 65:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 531 "cfparse.y"
#line 461 "cfparse.y" 
     {      {
 #ifdef ENABLE_ADMINPORT  #ifdef ENABLE_ADMINPORT
                         adminsock_path = NULL;                          adminsock_path = NULL;
Line 2766  yyreduce: Line 2859  yyreduce:
     break;      break;
   
   case 67:    case 67:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 539 "cfparse.y"
#line 469 "cfparse.y" 
     { lcconf->strict_address = TRUE; }      { lcconf->strict_address = TRUE; }
     break;      break;
   
   case 69:    case 69:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 543 "cfparse.y"
#line 473 "cfparse.y" 
     {      {
                         char portbuf[10];                          char portbuf[10];
   
Line 2788  yyreduce: Line 2879  yyreduce:
     break;      break;
   
   case 70:    case 70:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 554 "cfparse.y"
#line 484 "cfparse.y" 
     { (yyval.num) = PORT_ISAKMP; }      { (yyval.num) = PORT_ISAKMP; }
     break;      break;
   
   case 71:    case 71:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 555 "cfparse.y"
#line 485 "cfparse.y" 
     { (yyval.num) = (yyvsp[(1) - (1)].num); }      { (yyval.num) = (yyvsp[(1) - (1)].num); }
     break;      break;
   
   case 72:    case 72:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 560 "cfparse.y"
#line 490 "cfparse.y" 
     {      {
 #ifndef ENABLE_HYBRID  #ifndef ENABLE_HYBRID
                         yyerror("racoon not configured with --enable-hybrid");                          yyerror("racoon not configured with --enable-hybrid");
Line 2824  yyreduce: Line 2912  yyreduce:
     break;      break;
   
   case 76:    case 76:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 583 "cfparse.y"
#line 513 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
 #ifdef HAVE_LIBRADIUS  #ifdef HAVE_LIBRADIUS
Line 2846  yyreduce: Line 2933  yyreduce:
     break;      break;
   
   case 78:    case 78:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 601 "cfparse.y"
#line 531 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
 #ifdef HAVE_LIBRADIUS  #ifdef HAVE_LIBRADIUS
Line 2868  yyreduce: Line 2954  yyreduce:
     break;      break;
   
   case 80:    case 80:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 619 "cfparse.y"
#line 549 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
 #ifdef HAVE_LIBRADIUS  #ifdef HAVE_LIBRADIUS
Line 2890  yyreduce: Line 2975  yyreduce:
     break;      break;
   
   case 82:    case 82:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 637 "cfparse.y"
#line 567 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
 #ifdef HAVE_LIBRADIUS  #ifdef HAVE_LIBRADIUS
Line 2912  yyreduce: Line 2996  yyreduce:
     break;      break;
   
   case 84:    case 84:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 655 "cfparse.y"
#line 585 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
 #ifdef HAVE_LIBRADIUS  #ifdef HAVE_LIBRADIUS
Line 2925  yyreduce: Line 3008  yyreduce:
     break;      break;
   
   case 86:    case 86:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 664 "cfparse.y"
#line 594 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
 #ifdef HAVE_LIBRADIUS  #ifdef HAVE_LIBRADIUS
Line 2938  yyreduce: Line 3020  yyreduce:
     break;      break;
   
   case 88:    case 88:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 676 "cfparse.y"
#line 606 "cfparse.y" 
     {      {
 #ifndef ENABLE_HYBRID  #ifndef ENABLE_HYBRID
                         yyerror("racoon not configured with --enable-hybrid");                          yyerror("racoon not configured with --enable-hybrid");
Line 2954  yyreduce: Line 3035  yyreduce:
     break;      break;
   
   case 92:    case 92:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 693 "cfparse.y"
#line 623 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
 #ifdef HAVE_LIBLDAP  #ifdef HAVE_LIBLDAP
Line 2969  yyreduce: Line 3049  yyreduce:
     break;      break;
   
   case 94:    case 94:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 704 "cfparse.y"
#line 634 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
 #ifdef HAVE_LIBLDAP  #ifdef HAVE_LIBLDAP
Line 2984  yyreduce: Line 3063  yyreduce:
     break;      break;
   
   case 96:    case 96:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 715 "cfparse.y"
#line 645 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
 #ifdef HAVE_LIBLDAP  #ifdef HAVE_LIBLDAP
Line 2997  yyreduce: Line 3075  yyreduce:
     break;      break;
   
   case 98:    case 98:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 724 "cfparse.y"
#line 654 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
 #ifdef HAVE_LIBLDAP  #ifdef HAVE_LIBLDAP
Line 3012  yyreduce: Line 3089  yyreduce:
     break;      break;
   
   case 100:    case 100:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 735 "cfparse.y"
#line 665 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
 #ifdef HAVE_LIBLDAP  #ifdef HAVE_LIBLDAP
Line 3025  yyreduce: Line 3101  yyreduce:
     break;      break;
   
   case 102:    case 102:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 744 "cfparse.y"
#line 674 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
 #ifdef HAVE_LIBLDAP  #ifdef HAVE_LIBLDAP
Line 3040  yyreduce: Line 3115  yyreduce:
     break;      break;
   
   case 104:    case 104:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 755 "cfparse.y"
#line 685 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
 #ifdef HAVE_LIBLDAP  #ifdef HAVE_LIBLDAP
Line 3055  yyreduce: Line 3129  yyreduce:
     break;      break;
   
   case 106:    case 106:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 766 "cfparse.y"
#line 696 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
 #ifdef HAVE_LIBLDAP  #ifdef HAVE_LIBLDAP
Line 3070  yyreduce: Line 3143  yyreduce:
     break;      break;
   
   case 108:    case 108:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 777 "cfparse.y"
#line 707 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
 #ifdef HAVE_LIBLDAP  #ifdef HAVE_LIBLDAP
Line 3085  yyreduce: Line 3157  yyreduce:
     break;      break;
   
   case 110:    case 110:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 788 "cfparse.y"
#line 718 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
 #ifdef HAVE_LIBLDAP  #ifdef HAVE_LIBLDAP
Line 3100  yyreduce: Line 3171  yyreduce:
     break;      break;
   
   case 112:    case 112:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 799 "cfparse.y"
#line 729 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
 #ifdef HAVE_LIBLDAP  #ifdef HAVE_LIBLDAP
Line 3115  yyreduce: Line 3185  yyreduce:
     break;      break;
   
   case 114:    case 114:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 810 "cfparse.y"
#line 740 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
 #ifdef HAVE_LIBLDAP  #ifdef HAVE_LIBLDAP
Line 3130  yyreduce: Line 3199  yyreduce:
     break;      break;
   
   case 119:    case 119:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 832 "cfparse.y"
#line 762 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
                         if (inet_pton(AF_INET, (yyvsp[(2) - (2)].val)->v,                          if (inet_pton(AF_INET, (yyvsp[(2) - (2)].val)->v,
Line 3145  yyreduce: Line 3213  yyreduce:
     break;      break;
   
   case 121:    case 121:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 843 "cfparse.y"
#line 773 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
                         if (inet_pton(AF_INET, (yyvsp[(2) - (2)].val)->v,                          if (inet_pton(AF_INET, (yyvsp[(2) - (2)].val)->v,
Line 3160  yyreduce: Line 3227  yyreduce:
     break;      break;
   
   case 125:    case 125:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 858 "cfparse.y"
#line 788 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
                         isakmp_cfg_config.splitnet_type = UNITY_LOCAL_LAN;                          isakmp_cfg_config.splitnet_type = UNITY_LOCAL_LAN;
Line 3173  yyreduce: Line 3239  yyreduce:
     break;      break;
   
   case 127:    case 127:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 867 "cfparse.y"
#line 797 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
                         isakmp_cfg_config.splitnet_type = UNITY_SPLIT_INCLUDE;                          isakmp_cfg_config.splitnet_type = UNITY_SPLIT_INCLUDE;
Line 3186  yyreduce: Line 3251  yyreduce:
     break;      break;
   
   case 129:    case 129:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 876 "cfparse.y"
#line 806 "cfparse.y" 
     {      {
 #ifndef ENABLE_HYBRID  #ifndef ENABLE_HYBRID
                         yyerror("racoon not configured with --enable-hybrid");                          yyerror("racoon not configured with --enable-hybrid");
Line 3197  yyreduce: Line 3261  yyreduce:
     break;      break;
   
   case 131:    case 131:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 883 "cfparse.y"
#line 813 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
                         strncpy(&isakmp_cfg_config.default_domain[0],                           strncpy(&isakmp_cfg_config.default_domain[0], 
Line 3213  yyreduce: Line 3276  yyreduce:
     break;      break;
   
   case 133:    case 133:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 895 "cfparse.y"
#line 825 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
                         isakmp_cfg_config.authsource = ISAKMP_CFG_AUTH_SYSTEM;                          isakmp_cfg_config.authsource = ISAKMP_CFG_AUTH_SYSTEM;
Line 3226  yyreduce: Line 3288  yyreduce:
     break;      break;
   
   case 135:    case 135:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 904 "cfparse.y"
#line 834 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
 #ifdef HAVE_LIBRADIUS  #ifdef HAVE_LIBRADIUS
Line 3243  yyreduce: Line 3304  yyreduce:
     break;      break;
   
   case 137:    case 137:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 917 "cfparse.y"
#line 847 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
 #ifdef HAVE_LIBPAM  #ifdef HAVE_LIBPAM
Line 3260  yyreduce: Line 3320  yyreduce:
     break;      break;
   
   case 139:    case 139:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 930 "cfparse.y"
#line 860 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
 #ifdef HAVE_LIBLDAP  #ifdef HAVE_LIBLDAP
Line 3277  yyreduce: Line 3336  yyreduce:
     break;      break;
   
   case 141:    case 141:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 943 "cfparse.y"
#line 873 "cfparse.y" 
     {      {
 #ifndef ENABLE_HYBRID  #ifndef ENABLE_HYBRID
                         yyerror("racoon not configured with --enable-hybrid");                          yyerror("racoon not configured with --enable-hybrid");
Line 3288  yyreduce: Line 3346  yyreduce:
     break;      break;
   
   case 143:    case 143:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 950 "cfparse.y"
#line 880 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
                         isakmp_cfg_config.groupsource = ISAKMP_CFG_GROUP_SYSTEM;                          isakmp_cfg_config.groupsource = ISAKMP_CFG_GROUP_SYSTEM;
Line 3301  yyreduce: Line 3358  yyreduce:
     break;      break;
   
   case 145:    case 145:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 959 "cfparse.y"
#line 889 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
 #ifdef HAVE_LIBLDAP  #ifdef HAVE_LIBLDAP
Line 3318  yyreduce: Line 3374  yyreduce:
     break;      break;
   
   case 147:    case 147:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 972 "cfparse.y"
#line 902 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
                         isakmp_cfg_config.accounting = ISAKMP_CFG_ACCT_NONE;                          isakmp_cfg_config.accounting = ISAKMP_CFG_ACCT_NONE;
Line 3331  yyreduce: Line 3386  yyreduce:
     break;      break;
   
   case 149:    case 149:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 981 "cfparse.y"
#line 911 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
                         isakmp_cfg_config.accounting = ISAKMP_CFG_ACCT_SYSTEM;                          isakmp_cfg_config.accounting = ISAKMP_CFG_ACCT_SYSTEM;
Line 3344  yyreduce: Line 3398  yyreduce:
     break;      break;
   
   case 151:    case 151:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 990 "cfparse.y"
#line 920 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
 #ifdef HAVE_LIBRADIUS  #ifdef HAVE_LIBRADIUS
Line 3361  yyreduce: Line 3414  yyreduce:
     break;      break;
   
   case 153:    case 153:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1003 "cfparse.y"
#line 933 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
 #ifdef HAVE_LIBPAM  #ifdef HAVE_LIBPAM
Line 3378  yyreduce: Line 3430  yyreduce:
     break;      break;
   
   case 155:    case 155:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1016 "cfparse.y"
#line 946 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
                         if (isakmp_cfg_resize_pool((yyvsp[(2) - (2)].num)) != 0)                          if (isakmp_cfg_resize_pool((yyvsp[(2) - (2)].num)) != 0)
Line 3392  yyreduce: Line 3443  yyreduce:
     break;      break;
   
   case 157:    case 157:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1026 "cfparse.y"
#line 956 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
                         isakmp_cfg_config.pfs_group = (yyvsp[(2) - (2)].num);                          isakmp_cfg_config.pfs_group = (yyvsp[(2) - (2)].num);
Line 3405  yyreduce: Line 3455  yyreduce:
     break;      break;
   
   case 159:    case 159:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1035 "cfparse.y"
#line 965 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
                         isakmp_cfg_config.save_passwd = (yyvsp[(2) - (2)].num);                          isakmp_cfg_config.save_passwd = (yyvsp[(2) - (2)].num);
Line 3418  yyreduce: Line 3467  yyreduce:
     break;      break;
   
   case 161:    case 161:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1044 "cfparse.y"
#line 974 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
                         isakmp_cfg_config.auth_throttle = (yyvsp[(2) - (2)].num);                          isakmp_cfg_config.auth_throttle = (yyvsp[(2) - (2)].num);
Line 3431  yyreduce: Line 3479  yyreduce:
     break;      break;
   
   case 163:    case 163:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1053 "cfparse.y"
#line 983 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
                         isakmp_cfg_config.confsource = ISAKMP_CFG_CONF_LOCAL;                          isakmp_cfg_config.confsource = ISAKMP_CFG_CONF_LOCAL;
Line 3444  yyreduce: Line 3491  yyreduce:
     break;      break;
   
   case 165:    case 165:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1062 "cfparse.y"
#line 992 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
 #ifdef HAVE_LIBRADIUS  #ifdef HAVE_LIBRADIUS
Line 3461  yyreduce: Line 3507  yyreduce:
     break;      break;
   
   case 167:    case 167:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1075 "cfparse.y"
#line 1005 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
 #ifdef HAVE_LIBLDAP  #ifdef HAVE_LIBLDAP
Line 3478  yyreduce: Line 3523  yyreduce:
     break;      break;
   
   case 169:    case 169:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1088 "cfparse.y"
#line 1018 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
                         strncpy(&isakmp_cfg_config.motd[0], (yyvsp[(2) - (2)].val)->v, MAXPATHLEN);                          strncpy(&isakmp_cfg_config.motd[0], (yyvsp[(2) - (2)].val)->v, MAXPATHLEN);
Line 3493  yyreduce: Line 3537  yyreduce:
     break;      break;
   
   case 173:    case 173:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1106 "cfparse.y"
#line 1036 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
                         struct isakmp_cfg_config *icc = &isakmp_cfg_config;                          struct isakmp_cfg_config *icc = &isakmp_cfg_config;
Line 3512  yyreduce: Line 3555  yyreduce:
     break;      break;
   
   case 176:    case 176:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1127 "cfparse.y"
#line 1057 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
                         struct isakmp_cfg_config *icc = &isakmp_cfg_config;                          struct isakmp_cfg_config *icc = &isakmp_cfg_config;
Line 3531  yyreduce: Line 3573  yyreduce:
     break;      break;
   
   case 179:    case 179:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1148 "cfparse.y"
#line 1078 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
                         struct isakmp_cfg_config *icc = &isakmp_cfg_config;                          struct isakmp_cfg_config *icc = &isakmp_cfg_config;
Line 3556  yyreduce: Line 3597  yyreduce:
     break;      break;
   
   case 182:    case 182:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1175 "cfparse.y"
#line 1105 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
                         char * groupname = NULL;                          char * groupname = NULL;
Line 3592  yyreduce: Line 3632  yyreduce:
     break;      break;
   
   case 185:    case 185:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1213 "cfparse.y"
#line 1143 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
                         struct isakmp_cfg_config *icc = &isakmp_cfg_config;                          struct isakmp_cfg_config *icc = &isakmp_cfg_config;
Line 3629  yyreduce: Line 3668  yyreduce:
     break;      break;
   
   case 189:    case 189:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1257 "cfparse.y"
#line 1187 "cfparse.y" 
     {      {
                         lcconf->retry_counter = (yyvsp[(2) - (2)].num);                          lcconf->retry_counter = (yyvsp[(2) - (2)].num);
                 }                  }
     break;      break;
   
   case 191:    case 191:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1262 "cfparse.y"
#line 1192 "cfparse.y" 
     {      {
                         lcconf->retry_interval = (yyvsp[(2) - (3)].num) * (yyvsp[(3) - (3)].num);                          lcconf->retry_interval = (yyvsp[(2) - (3)].num) * (yyvsp[(3) - (3)].num);
                 }                  }
     break;      break;
   
   case 193:    case 193:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1267 "cfparse.y"
#line 1197 "cfparse.y" 
     {      {
                         lcconf->count_persend = (yyvsp[(2) - (2)].num);                          lcconf->count_persend = (yyvsp[(2) - (2)].num);
                 }                  }
     break;      break;
   
   case 195:    case 195:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1272 "cfparse.y"
#line 1202 "cfparse.y" 
     {      {
                         lcconf->retry_checkph1 = (yyvsp[(2) - (3)].num) * (yyvsp[(3) - (3)].num);                          lcconf->retry_checkph1 = (yyvsp[(2) - (3)].num) * (yyvsp[(3) - (3)].num);
                 }                  }
     break;      break;
   
   case 197:    case 197:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1277 "cfparse.y"
#line 1207 "cfparse.y" 
     {      {
                         lcconf->wait_ph2complete = (yyvsp[(2) - (3)].num) * (yyvsp[(3) - (3)].num);                          lcconf->wait_ph2complete = (yyvsp[(2) - (3)].num) * (yyvsp[(3) - (3)].num);
                 }                  }
     break;      break;
   
   case 199:    case 199:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1282 "cfparse.y"
#line 1212 "cfparse.y" 
     {      {
 #ifdef ENABLE_NATT  #ifdef ENABLE_NATT
                         if (libipsec_opt & LIBIPSEC_OPT_NATT)                          if (libipsec_opt & LIBIPSEC_OPT_NATT)
Line 3690  yyreduce: Line 3723  yyreduce:
     break;      break;
   
   case 201:    case 201:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1298 "cfparse.y"
#line 1228 "cfparse.y" 
     {      {
                         cur_sainfo = newsainfo();                          cur_sainfo = newsainfo();
                         if (cur_sainfo == NULL) {                          if (cur_sainfo == NULL) {
Line 3703  yyreduce: Line 3735  yyreduce:
     break;      break;
   
   case 202:    case 202:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1306 "cfparse.y"
#line 1236 "cfparse.y" 
     {      {
                         struct sainfo *check;                          struct sainfo *check;
   
Line 3745  yyreduce: Line 3776  yyreduce:
     break;      break;
   
   case 204:    case 204:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1346 "cfparse.y"
#line 1276 "cfparse.y" 
     {      {
                         cur_sainfo->idsrc = SAINFO_ANONYMOUS;                          cur_sainfo->idsrc = SAINFO_ANONYMOUS;
                         cur_sainfo->iddst = SAINFO_ANONYMOUS;                          cur_sainfo->iddst = SAINFO_ANONYMOUS;
Line 3755  yyreduce: Line 3785  yyreduce:
     break;      break;
   
   case 205:    case 205:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1351 "cfparse.y"
#line 1281 "cfparse.y" 
     {      {
                         cur_sainfo->idsrc = SAINFO_ANONYMOUS;                          cur_sainfo->idsrc = SAINFO_ANONYMOUS;
                         cur_sainfo->iddst = SAINFO_CLIENTADDR;                          cur_sainfo->iddst = SAINFO_CLIENTADDR;
Line 3765  yyreduce: Line 3794  yyreduce:
     break;      break;
   
   case 206:    case 206:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1356 "cfparse.y"
#line 1286 "cfparse.y" 
     {      {
                         cur_sainfo->idsrc = SAINFO_ANONYMOUS;                          cur_sainfo->idsrc = SAINFO_ANONYMOUS;
                         cur_sainfo->iddst = (yyvsp[(2) - (2)].val);                          cur_sainfo->iddst = (yyvsp[(2) - (2)].val);
Line 3775  yyreduce: Line 3803  yyreduce:
     break;      break;
   
   case 207:    case 207:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1361 "cfparse.y"
#line 1291 "cfparse.y" 
     {      {
                         cur_sainfo->idsrc = (yyvsp[(1) - (2)].val);                          cur_sainfo->idsrc = (yyvsp[(1) - (2)].val);
                         cur_sainfo->iddst = SAINFO_ANONYMOUS;                          cur_sainfo->iddst = SAINFO_ANONYMOUS;
Line 3785  yyreduce: Line 3812  yyreduce:
     break;      break;
   
   case 208:    case 208:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1366 "cfparse.y"
#line 1296 "cfparse.y" 
     {      {
                         cur_sainfo->idsrc = (yyvsp[(1) - (2)].val);                          cur_sainfo->idsrc = (yyvsp[(1) - (2)].val);
                         cur_sainfo->iddst = SAINFO_CLIENTADDR;                          cur_sainfo->iddst = SAINFO_CLIENTADDR;
Line 3795  yyreduce: Line 3821  yyreduce:
     break;      break;
   
   case 209:    case 209:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1371 "cfparse.y"
#line 1301 "cfparse.y" 
     {      {
                         cur_sainfo->idsrc = (yyvsp[(1) - (2)].val);                          cur_sainfo->idsrc = (yyvsp[(1) - (2)].val);
                         cur_sainfo->iddst = (yyvsp[(2) - (2)].val);                          cur_sainfo->iddst = (yyvsp[(2) - (2)].val);
Line 3805  yyreduce: Line 3830  yyreduce:
     break;      break;
   
   case 210:    case 210:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1378 "cfparse.y"
#line 1308 "cfparse.y" 
     {      {
                         char portbuf[10];                          char portbuf[10];
                         struct sockaddr *saddr;                          struct sockaddr *saddr;
Line 3859  yyreduce: Line 3883  yyreduce:
     break;      break;
   
   case 211:    case 211:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1427 "cfparse.y"
#line 1357 "cfparse.y" 
     {      {
                         char portbuf[10];                          char portbuf[10];
                         struct sockaddr *laddr = NULL, *haddr = NULL;                          struct sockaddr *laddr = NULL, *haddr = NULL;
Line 3929  yyreduce: Line 3952  yyreduce:
     break;      break;
   
   case 212:    case 212:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1492 "cfparse.y"
#line 1422 "cfparse.y" 
     {      {
                         struct ipsecdoi_id_b *id_b;                          struct ipsecdoi_id_b *id_b;
   
Line 3960  yyreduce: Line 3982  yyreduce:
     break;      break;
   
   case 213:    case 213:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1520 "cfparse.y"
#line 1450 "cfparse.y" 
     {      {
                         cur_sainfo->id_i = NULL;                          cur_sainfo->id_i = NULL;
                 }                  }
     break;      break;
   
   case 214:    case 214:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1524 "cfparse.y"
#line 1454 "cfparse.y" 
     {      {
                         struct ipsecdoi_id_b *id_b;                          struct ipsecdoi_id_b *id_b;
                         vchar_t *idv;                          vchar_t *idv;
Line 3999  yyreduce: Line 4019  yyreduce:
     break;      break;
   
   case 215:    case 215:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1549 "cfparse.y"
#line 1479 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
                         if ((cur_sainfo->group = vdup((yyvsp[(2) - (2)].val))) == NULL) {                          if ((cur_sainfo->group = vdup((yyvsp[(2) - (2)].val))) == NULL) {
Line 4016  yyreduce: Line 4035  yyreduce:
     break;      break;
   
   case 218:    case 218:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1567 "cfparse.y"
#line 1497 "cfparse.y" 
     {      {
                         cur_sainfo->pfs_group = (yyvsp[(2) - (2)].num);                          cur_sainfo->pfs_group = (yyvsp[(2) - (2)].num);
                 }                  }
     break;      break;
   
   case 220:    case 220:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1572 "cfparse.y"
#line 1502 "cfparse.y" 
     {      {
                         cur_sainfo->remoteid = (yyvsp[(2) - (2)].num);                          cur_sainfo->remoteid = (yyvsp[(2) - (2)].num);
                 }                  }
     break;      break;
   
   case 222:    case 222:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1577 "cfparse.y"
#line 1507 "cfparse.y" 
     {      {
                         cur_sainfo->lifetime = (yyvsp[(3) - (4)].num) * (yyvsp[(4) - (4)].num);                          cur_sainfo->lifetime = (yyvsp[(3) - (4)].num) * (yyvsp[(4) - (4)].num);
                 }                  }
     break;      break;
   
   case 224:    case 224:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1582 "cfparse.y"
#line 1512 "cfparse.y" 
     {      {
 #if 1  #if 1
                         yyerror("byte lifetime support is deprecated");                          yyerror("byte lifetime support is deprecated");
Line 4059  yyreduce: Line 4074  yyreduce:
     break;      break;
   
   case 226:    case 226:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1593 "cfparse.y"
#line 1523 "cfparse.y" 
     {      {
                         cur_algclass = (yyvsp[(1) - (1)].num);                          cur_algclass = (yyvsp[(1) - (1)].num);
                 }                  }
     break;      break;
   
   case 228:    case 228:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1601 "cfparse.y"
#line 1531 "cfparse.y" 
     {      {
                         inssainfoalg(&cur_sainfo->algs[cur_algclass], (yyvsp[(1) - (1)].alg));                          inssainfoalg(&cur_sainfo->algs[cur_algclass], (yyvsp[(1) - (1)].alg));
                 }                  }
     break;      break;
   
   case 229:    case 229:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1605 "cfparse.y"
#line 1535 "cfparse.y" 
     {      {
                         inssainfoalg(&cur_sainfo->algs[cur_algclass], (yyvsp[(1) - (1)].alg));                          inssainfoalg(&cur_sainfo->algs[cur_algclass], (yyvsp[(1) - (1)].alg));
                 }                  }
     break;      break;
   
   case 231:    case 231:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1612 "cfparse.y"
#line 1542 "cfparse.y" 
     {      {
                         int defklen;                          int defklen;
   
Line 4145  yyreduce: Line 4156  yyreduce:
     break;      break;
   
   case 232:    case 232:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1667 "cfparse.y"
#line 1597 "cfparse.y" 
     { (yyval.num) = ~0; }      { (yyval.num) = ~0; }
     break;      break;
   
   case 233:    case 233:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1668 "cfparse.y"
#line 1598 "cfparse.y" 
     { (yyval.num) = (yyvsp[(1) - (1)].num); }      { (yyval.num) = (yyvsp[(1) - (1)].num); }
     break;      break;
   
   case 234:    case 234:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1671 "cfparse.y"
#line 1601 "cfparse.y" 
     { (yyval.num) = IPSEC_PORT_ANY; }      { (yyval.num) = IPSEC_PORT_ANY; }
     break;      break;
   
   case 235:    case 235:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1672 "cfparse.y"
#line 1602 "cfparse.y" 
     { (yyval.num) = (yyvsp[(1) - (1)].num); }      { (yyval.num) = (yyvsp[(1) - (1)].num); }
     break;      break;
   
   case 236:    case 236:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1673 "cfparse.y"
#line 1603 "cfparse.y" 
     { (yyval.num) = IPSEC_PORT_ANY; }      { (yyval.num) = IPSEC_PORT_ANY; }
     break;      break;
   
   case 237:    case 237:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1676 "cfparse.y"
#line 1606 "cfparse.y" 
     { (yyval.num) = (yyvsp[(1) - (1)].num); }      { (yyval.num) = (yyvsp[(1) - (1)].num); }
     break;      break;
   
   case 238:    case 238:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1677 "cfparse.y"
#line 1607 "cfparse.y" 
     { (yyval.num) = (yyvsp[(1) - (1)].num); }      { (yyval.num) = (yyvsp[(1) - (1)].num); }
     break;      break;
   
   case 239:    case 239:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1678 "cfparse.y"
#line 1608 "cfparse.y" 
     { (yyval.num) = IPSEC_ULPROTO_ANY; }      { (yyval.num) = IPSEC_ULPROTO_ANY; }
     break;      break;
   
   case 240:    case 240:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1681 "cfparse.y"
#line 1611 "cfparse.y" 
     { (yyval.num) = 0; }      { (yyval.num) = 0; }
     break;      break;
   
   case 241:    case 241:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1682 "cfparse.y"
#line 1612 "cfparse.y" 
     { (yyval.num) = (yyvsp[(1) - (1)].num); }      { (yyval.num) = (yyvsp[(1) - (1)].num); }
     break;      break;
   
   case 242:    case 242:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1688 "cfparse.y"
#line 1618 "cfparse.y" 
     {      {
                         struct remoteconf *from, *new;                          struct remoteconf *from, *new;
   
Line 4249  yyreduce: Line 4249  yyreduce:
     break;      break;
   
   case 244:    case 244:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1718 "cfparse.y"
#line 1648 "cfparse.y" 
     {      {
                         struct remoteconf *new;                          struct remoteconf *new;
   
Line 4273  yyreduce: Line 4272  yyreduce:
     break;      break;
   
   case 246:    case 246:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1738 "cfparse.y"
#line 1668 "cfparse.y" 
     {      {
                         struct remoteconf *from, *new;                          struct remoteconf *from, *new;
   
Line 4300  yyreduce: Line 4298  yyreduce:
     break;      break;
   
   case 248:    case 248:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1761 "cfparse.y"
#line 1691 "cfparse.y" 
     {      {
                         struct remoteconf *new;                          struct remoteconf *new;
   
Line 4317  yyreduce: Line 4314  yyreduce:
                 }                  }
     break;      break;
   
  case 250:  case 251:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1779 "cfparse.y"
#line 1708 "cfparse.y" 
     {      {
                        /* check a exchange mode */                        if (process_rmconf() != 0)
                        if (cur_rmconf->etypes == NULL) { 
                                yyerror("no exchange mode specified.\n"); 
                                 return -1;                                  return -1;
                        }                }
     break;
   
                        if (cur_rmconf->idvtype == IDTYPE_UNDEFINED)  case 252:
                                cur_rmconf->idvtype = IDTYPE_ADDRESS;/* Line 1787 of yacc.c  */
#line 1787 "cfparse.y"
                        if (cur_rmconf->idvtype == IDTYPE_ASN1DN) {    {
                                if (cur_rmconf->mycertfile) {                        if (process_rmconf() != 0)
                                        if (cur_rmconf->idv) 
                                                yywarn("Both CERT and ASN1 ID " 
                                                       "are set. Hope this is OK.\n"); 
                                        /* TODO: Preparse the DN here */ 
                                } else if (cur_rmconf->idv) { 
                                        /* OK, using asn1dn without X.509. */ 
                                } else { 
                                        yyerror("ASN1 ID not specified " 
                                                "and no CERT defined!\n"); 
                                        return -1; 
                                } 
                        } 
 
                        if (duprmconf_finish(cur_rmconf)) 
                                 return -1;                                  return -1;
   
 #if 0  
                         /* this pointer copy will never happen, because duprmconf_shallow  
                          * already copied all pointers.  
                          */  
                         if (cur_rmconf->spspec == NULL &&  
                             cur_rmconf->inherited_from != NULL) {  
                                 cur_rmconf->spspec = cur_rmconf->inherited_from->spspec;  
                         }  
 #endif  
                         if (set_isakmp_proposal(cur_rmconf) != 0)  
                                 return -1;  
   
                         /* DH group settting if aggressive mode is there. */  
                         if (check_etypeok(cur_rmconf, (void*) ISAKMP_ETYPE_AGG)) {  
                                 struct isakmpsa *p;  
                                 int b = 0;  
   
                                 /* DH group */  
                                 for (p = cur_rmconf->proposal; p; p = p->next) {  
                                         if (b == 0 || (b && b == p->dh_group)) {  
                                                 b = p->dh_group;  
                                                 continue;  
                                         }  
                                         yyerror("DH group must be equal "  
                                                 "in all proposals "  
                                                 "when aggressive mode is "  
                                                 "used.\n");  
                                         return -1;  
                                 }  
                                 cur_rmconf->dh_group = b;  
   
                                 if (cur_rmconf->dh_group == 0) {  
                                         yyerror("DH group must be set in the proposal.\n");  
                                         return -1;  
                                 }  
   
                                 /* DH group settting if PFS is required. */  
                                 if (oakley_setdhgroup(cur_rmconf->dh_group,  
                                                 &cur_rmconf->dhgrp) < 0) {  
                                         yyerror("failed to set DH value.\n");  
                                         return -1;  
                                 }  
                         }  
   
                         insrmconf(cur_rmconf);  
                 }                  }
     break;      break;
   
  case 251:  case 253:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1794 "cfparse.y"
#line 1785 "cfparse.y" 
     {      {
                         (yyval.saddr) = newsaddr(sizeof(struct sockaddr));                          (yyval.saddr) = newsaddr(sizeof(struct sockaddr));
                         (yyval.saddr)->sa_family = AF_UNSPEC;                          (yyval.saddr)->sa_family = AF_UNSPEC;
Line 4408  yyreduce: Line 4342  yyreduce:
                 }                  }
     break;      break;
   
  case 252:  case 254:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1800 "cfparse.y"
#line 1791 "cfparse.y" 
     {      {
                         (yyval.saddr) = (yyvsp[(1) - (1)].saddr);                          (yyval.saddr) = (yyvsp[(1) - (1)].saddr);
                         if ((yyval.saddr) == NULL) {                          if ((yyval.saddr) == NULL) {
Line 4421  yyreduce: Line 4354  yyreduce:
                 }                  }
     break;      break;
   
  case 255:  case 257:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1814 "cfparse.y"
#line 1805 "cfparse.y" 
     {      {
                         if (cur_rmconf->remote != NULL) {                          if (cur_rmconf->remote != NULL) {
                                 yyerror("remote_address already specified");                                  yyerror("remote_address already specified");
Line 4434  yyreduce: Line 4366  yyreduce:
                 }                  }
     break;      break;
   
  case 257:  case 259:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1823 "cfparse.y"
#line 1814 "cfparse.y" 
     {      {
                         cur_rmconf->etypes = NULL;                          cur_rmconf->etypes = NULL;
                 }                  }
     break;      break;
   
  case 259:  case 261:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1827 "cfparse.y"
#line 1818 "cfparse.y" 
     { cur_rmconf->doitype = (yyvsp[(2) - (2)].num); }      { cur_rmconf->doitype = (yyvsp[(2) - (2)].num); }
     break;      break;
   
  case 261:  case 263:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1828 "cfparse.y"
#line 1819 "cfparse.y" 
     { cur_rmconf->sittype = (yyvsp[(2) - (2)].num); }      { cur_rmconf->sittype = (yyvsp[(2) - (2)].num); }
     break;      break;
   
  case 264:  case 266:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1831 "cfparse.y"
#line 1822 "cfparse.y" 
     {      {
                         yywarn("This directive without certtype will be removed!\n");                          yywarn("This directive without certtype will be removed!\n");
                         yywarn("Please use 'peers_certfile x509 \"%s\";' instead\n", (yyvsp[(2) - (2)].val)->v);                          yywarn("Please use 'peers_certfile x509 \"%s\";' instead\n", (yyvsp[(2) - (2)].val)->v);
Line 4481  yyreduce: Line 4409  yyreduce:
                 }                  }
     break;      break;
   
  case 266:  case 268:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1851 "cfparse.y"
#line 1842 "cfparse.y" 
     {      {
                         if (cur_rmconf->peerscert != NULL) {                          if (cur_rmconf->peerscert != NULL) {
                                 yyerror("peers_certfile already defined\n");                                  yyerror("peers_certfile already defined\n");
Line 4502  yyreduce: Line 4429  yyreduce:
                 }                  }
     break;      break;
   
  case 268:  case 270:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1868 "cfparse.y"
#line 1859 "cfparse.y" 
     {      {
                         char path[MAXPATHLEN];                          char path[MAXPATHLEN];
                         int ret = 0;                          int ret = 0;
Line 4536  yyreduce: Line 4462  yyreduce:
                 }                  }
     break;      break;
   
  case 270:  case 272:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1898 "cfparse.y"
#line 1889 "cfparse.y" 
     {      {
                         if (cur_rmconf->peerscert != NULL) {                          if (cur_rmconf->peerscert != NULL) {
                                 yyerror("peers_certfile already defined\n");                                  yyerror("peers_certfile already defined\n");
Line 4554  yyreduce: Line 4479  yyreduce:
                 }                  }
     break;      break;
   
  case 272:  case 274:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1912 "cfparse.y"
#line 1903 "cfparse.y" 
     {      {
                         if (cur_rmconf->cacert != NULL) {                          if (cur_rmconf->cacert != NULL) {
                                 yyerror("ca_type already defined\n");                                  yyerror("ca_type already defined\n");
Line 4575  yyreduce: Line 4499  yyreduce:
                 }                  }
     break;      break;
   
  case 274:  case 276:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1928 "cfparse.y"
#line 1919 "cfparse.y" 
     { cur_rmconf->verify_cert = (yyvsp[(2) - (2)].num); }      { cur_rmconf->verify_cert = (yyvsp[(2) - (2)].num); }
     break;      break;
   
  case 276:  case 278:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1929 "cfparse.y"
#line 1920 "cfparse.y" 
     { cur_rmconf->send_cert = (yyvsp[(2) - (2)].num); }      { cur_rmconf->send_cert = (yyvsp[(2) - (2)].num); }
     break;      break;
   
  case 278:  case 280:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1930 "cfparse.y"
#line 1921 "cfparse.y" 
     { cur_rmconf->send_cr = (yyvsp[(2) - (2)].num); }      { cur_rmconf->send_cr = (yyvsp[(2) - (2)].num); }
     break;      break;
   
  case 280:  case 282:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1931 "cfparse.y"
#line 1922 "cfparse.y" 
     { cur_rmconf->match_empty_cr = (yyvsp[(2) - (2)].num); }      { cur_rmconf->match_empty_cr = (yyvsp[(2) - (2)].num); }
     break;      break;
   
  case 282:  case 284:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1933 "cfparse.y"
#line 1924 "cfparse.y" 
     {      {
                         if (set_identifier(&cur_rmconf->idv, (yyvsp[(2) - (3)].num), (yyvsp[(3) - (3)].val)) != 0) {                          if (set_identifier(&cur_rmconf->idv, (yyvsp[(2) - (3)].num), (yyvsp[(3) - (3)].val)) != 0) {
                                 yyerror("failed to set identifer.\n");                                  yyerror("failed to set identifer.\n");
Line 4616  yyreduce: Line 4535  yyreduce:
                 }                  }
     break;      break;
   
  case 284:  case 286:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1942 "cfparse.y"
#line 1933 "cfparse.y" 
     {      {
                         if (set_identifier_qual(&cur_rmconf->idv, (yyvsp[(2) - (4)].num), (yyvsp[(4) - (4)].val), (yyvsp[(3) - (4)].num)) != 0) {                          if (set_identifier_qual(&cur_rmconf->idv, (yyvsp[(2) - (4)].num), (yyvsp[(4) - (4)].val), (yyvsp[(3) - (4)].num)) != 0) {
                                 yyerror("failed to set identifer.\n");                                  yyerror("failed to set identifer.\n");
Line 4629  yyreduce: Line 4547  yyreduce:
                 }                  }
     break;      break;
   
  case 286:  case 288:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1951 "cfparse.y"
#line 1942 "cfparse.y" 
     {      {
 #ifdef ENABLE_HYBRID  #ifdef ENABLE_HYBRID
                         /* formerly identifier type login */                          /* formerly identifier type login */
Line 4650  yyreduce: Line 4567  yyreduce:
                 }                  }
     break;      break;
   
  case 288:  case 290:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1968 "cfparse.y"
#line 1959 "cfparse.y" 
     {      {
                         struct idspec  *id;                          struct idspec  *id;
                         id = newidspec();                          id = newidspec();
Line 4671  yyreduce: Line 4587  yyreduce:
                 }                  }
     break;      break;
   
  case 290:  case 292:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 1985 "cfparse.y"
#line 1976 "cfparse.y" 
     {      {
                         struct idspec  *id;                          struct idspec  *id;
                         id = newidspec();                          id = newidspec();
Line 4692  yyreduce: Line 4607  yyreduce:
                 }                  }
     break;      break;
   
  case 292:  case 294:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2001 "cfparse.y"
#line 1992 "cfparse.y" 
     { cur_rmconf->verify_identifier = (yyvsp[(2) - (2)].num); }      { cur_rmconf->verify_identifier = (yyvsp[(2) - (2)].num); }
     break;      break;
   
  case 294:  case 296:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2002 "cfparse.y"
#line 1993 "cfparse.y" 
     { cur_rmconf->nonce_size = (yyvsp[(2) - (2)].num); }      { cur_rmconf->nonce_size = (yyvsp[(2) - (2)].num); }
     break;      break;
   
  case 296:  case 298:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2004 "cfparse.y"
#line 1995 "cfparse.y" 
     {      {
                         yyerror("dh_group cannot be defined here.");                          yyerror("dh_group cannot be defined here.");
                         return -1;                          return -1;
                 }                  }
     break;      break;
   
  case 298:  case 300:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2009 "cfparse.y"
#line 2000 "cfparse.y" 
     { cur_rmconf->passive = (yyvsp[(2) - (2)].num); }      { cur_rmconf->passive = (yyvsp[(2) - (2)].num); }
     break;      break;
   
  case 300:  case 302:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2010 "cfparse.y"
#line 2001 "cfparse.y" 
     { cur_rmconf->ike_frag = (yyvsp[(2) - (2)].num); }      { cur_rmconf->ike_frag = (yyvsp[(2) - (2)].num); }
     break;      break;
   
  case 302:  case 304:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2011 "cfparse.y"
#line 2002 "cfparse.y" 
     { cur_rmconf->ike_frag = ISAKMP_FRAG_FORCE; }      { cur_rmconf->ike_frag = ISAKMP_FRAG_FORCE; }
     break;      break;
   
  case 304:  case 306:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2012 "cfparse.y"
#line 2003 "cfparse.y" 
     {       { 
 #ifdef SADB_X_EXT_NAT_T_FRAG  #ifdef SADB_X_EXT_NAT_T_FRAG
                         if (libipsec_opt & LIBIPSEC_OPT_FRAG)                          if (libipsec_opt & LIBIPSEC_OPT_FRAG)
Line 4753  yyreduce: Line 4661  yyreduce:
                 }                  }
     break;      break;
   
  case 306:  case 308:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2022 "cfparse.y"
#line 2013 "cfparse.y" 
     {       { 
                         if (cur_rmconf->script[SCRIPT_PHASE1_UP] != NULL)                          if (cur_rmconf->script[SCRIPT_PHASE1_UP] != NULL)
                                 vfree(cur_rmconf->script[SCRIPT_PHASE1_UP]);                                  vfree(cur_rmconf->script[SCRIPT_PHASE1_UP]);
Line 4766  yyreduce: Line 4673  yyreduce:
                 }                  }
     break;      break;
   
  case 308:  case 310:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2029 "cfparse.y"
#line 2020 "cfparse.y" 
     {       { 
                         if (cur_rmconf->script[SCRIPT_PHASE1_DOWN] != NULL)                          if (cur_rmconf->script[SCRIPT_PHASE1_DOWN] != NULL)
                                 vfree(cur_rmconf->script[SCRIPT_PHASE1_DOWN]);                                  vfree(cur_rmconf->script[SCRIPT_PHASE1_DOWN]);
Line 4779  yyreduce: Line 4685  yyreduce:
                 }                  }
     break;      break;
   
  case 310:  case 312:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2036 "cfparse.y"
#line 2027 "cfparse.y" 
     {       { 
                         if (cur_rmconf->script[SCRIPT_PHASE1_DEAD] != NULL)                          if (cur_rmconf->script[SCRIPT_PHASE1_DEAD] != NULL)
                                 vfree(cur_rmconf->script[SCRIPT_PHASE1_DEAD]);                                  vfree(cur_rmconf->script[SCRIPT_PHASE1_DEAD]);
Line 4792  yyreduce: Line 4697  yyreduce:
                 }                  }
     break;      break;
   
  case 312:  case 314:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2043 "cfparse.y"
#line 2034 "cfparse.y" 
     { cur_rmconf->mode_cfg = (yyvsp[(2) - (2)].num); }      { cur_rmconf->mode_cfg = (yyvsp[(2) - (2)].num); }
     break;      break;
   
  case 314:  case 316:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2044 "cfparse.y"
#line 2035 "cfparse.y" 
     {      {
                         cur_rmconf->weak_phase1_check = (yyvsp[(2) - (2)].num);                          cur_rmconf->weak_phase1_check = (yyvsp[(2) - (2)].num);
                 }                  }
     break;      break;
   
  case 316:  case 318:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2047 "cfparse.y"
#line 2038 "cfparse.y" 
     { cur_rmconf->gen_policy = (yyvsp[(2) - (2)].num); }      { cur_rmconf->gen_policy = (yyvsp[(2) - (2)].num); }
     break;      break;
   
  case 318:  case 320:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2048 "cfparse.y"
#line 2039 "cfparse.y" 
     { cur_rmconf->gen_policy = (yyvsp[(2) - (2)].num); }      { cur_rmconf->gen_policy = (yyvsp[(2) - (2)].num); }
     break;      break;
   
  case 320:  case 322:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2049 "cfparse.y"
#line 2040 "cfparse.y" 
     { cur_rmconf->support_proxy = (yyvsp[(2) - (2)].num); }      { cur_rmconf->support_proxy = (yyvsp[(2) - (2)].num); }
     break;      break;
   
  case 322:  case 324:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2050 "cfparse.y"
#line 2041 "cfparse.y" 
     { cur_rmconf->ini_contact = (yyvsp[(2) - (2)].num); }      { cur_rmconf->ini_contact = (yyvsp[(2) - (2)].num); }
     break;      break;
   
  case 324:  case 326:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2052 "cfparse.y"
#line 2043 "cfparse.y" 
     {      {
 #ifdef ENABLE_NATT  #ifdef ENABLE_NATT
                         if (libipsec_opt & LIBIPSEC_OPT_NATT)                          if (libipsec_opt & LIBIPSEC_OPT_NATT)
Line 4852  yyreduce: Line 4750  yyreduce:
                 }                  }
     break;      break;
   
  case 326:  case 328:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2063 "cfparse.y"
#line 2054 "cfparse.y" 
     {      {
 #ifdef ENABLE_NATT  #ifdef ENABLE_NATT
                         if (libipsec_opt & LIBIPSEC_OPT_NATT)                          if (libipsec_opt & LIBIPSEC_OPT_NATT)
Line 4868  yyreduce: Line 4765  yyreduce:
                 }                  }
     break;      break;
   
  case 328:  case 330:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2074 "cfparse.y"
#line 2065 "cfparse.y" 
     {      {
 #ifdef ENABLE_DPD  #ifdef ENABLE_DPD
                         cur_rmconf->dpd = (yyvsp[(2) - (2)].num);                          cur_rmconf->dpd = (yyvsp[(2) - (2)].num);
Line 4881  yyreduce: Line 4777  yyreduce:
                 }                  }
     break;      break;
   
  case 330:  case 332:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2082 "cfparse.y"
#line 2073 "cfparse.y" 
     {      {
 #ifdef ENABLE_DPD  #ifdef ENABLE_DPD
                         cur_rmconf->dpd_interval = (yyvsp[(2) - (2)].num);                          cur_rmconf->dpd_interval = (yyvsp[(2) - (2)].num);
Line 4894  yyreduce: Line 4789  yyreduce:
                 }                  }
     break;      break;
   
  case 332:  case 334:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2091 "cfparse.y"
#line 2082 "cfparse.y" 
     {      {
 #ifdef ENABLE_DPD  #ifdef ENABLE_DPD
                         cur_rmconf->dpd_retry = (yyvsp[(2) - (2)].num);                          cur_rmconf->dpd_retry = (yyvsp[(2) - (2)].num);
Line 4907  yyreduce: Line 4801  yyreduce:
                 }                  }
     break;      break;
   
  case 334:  case 336:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2100 "cfparse.y"
#line 2091 "cfparse.y" 
     {      {
 #ifdef ENABLE_DPD  #ifdef ENABLE_DPD
                         cur_rmconf->dpd_maxfails = (yyvsp[(2) - (2)].num);                          cur_rmconf->dpd_maxfails = (yyvsp[(2) - (2)].num);
Line 4920  yyreduce: Line 4813  yyreduce:
                 }                  }
     break;      break;
   
  case 336:  case 338:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2108 "cfparse.y"
#line 2099 "cfparse.y" 
     { cur_rmconf->rekey = (yyvsp[(2) - (2)].num); }      { cur_rmconf->rekey = (yyvsp[(2) - (2)].num); }
     break;      break;
   
  case 338:  case 340:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2109 "cfparse.y"
#line 2100 "cfparse.y" 
     { cur_rmconf->rekey = REKEY_FORCE; }      { cur_rmconf->rekey = REKEY_FORCE; }
     break;      break;
   
  case 340:  case 342:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2111 "cfparse.y"
#line 2102 "cfparse.y" 
     {      {
                         cur_rmconf->ph1id = (yyvsp[(2) - (2)].num);                          cur_rmconf->ph1id = (yyvsp[(2) - (2)].num);
                 }                  }
     break;      break;
   
  case 342:  case 344:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2116 "cfparse.y"
#line 2107 "cfparse.y" 
     {      {
                         cur_rmconf->lifetime = (yyvsp[(3) - (4)].num) * (yyvsp[(4) - (4)].num);                          cur_rmconf->lifetime = (yyvsp[(3) - (4)].num) * (yyvsp[(4) - (4)].num);
                 }                  }
     break;      break;
   
  case 344:  case 346:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2120 "cfparse.y"
#line 2111 "cfparse.y" 
     { cur_rmconf->pcheck_level = (yyvsp[(2) - (2)].num); }      { cur_rmconf->pcheck_level = (yyvsp[(2) - (2)].num); }
     break;      break;
   
  case 346:  case 348:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2122 "cfparse.y"
#line 2113 "cfparse.y" 
     {      {
 #if 1  #if 1
                         yyerror("byte lifetime support is deprecated in Phase1");                          yyerror("byte lifetime support is deprecated in Phase1");
Line 4977  yyreduce: Line 4864  yyreduce:
                 }                  }
     break;      break;
   
  case 348:  case 350:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2136 "cfparse.y"
#line 2127 "cfparse.y" 
     {      {
                         struct secprotospec *spspec;                          struct secprotospec *spspec;
   
Line 4991  yyreduce: Line 4877  yyreduce:
                 }                  }
     break;      break;
   
  case 351:  case 353:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2149 "cfparse.y"
#line 2140 "cfparse.y" 
     {      {
                         struct etypes *new;                          struct etypes *new;
                         new = racoon_malloc(sizeof(struct etypes));                          new = racoon_malloc(sizeof(struct etypes));
Line 5017  yyreduce: Line 4902  yyreduce:
                 }                  }
     break;      break;
   
  case 352:  case 354:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2172 "cfparse.y"
#line 2163 "cfparse.y" 
     {      {
                         if (cur_rmconf->mycert != NULL) {                          if (cur_rmconf->mycert != NULL) {
                                 yyerror("certificate_type already defined\n");                                  yyerror("certificate_type already defined\n");
Line 5042  yyreduce: Line 4926  yyreduce:
                 }                  }
     break;      break;
   
  case 354:  case 356:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2193 "cfparse.y"
#line 2184 "cfparse.y" 
     {      {
                         char path[MAXPATHLEN];                          char path[MAXPATHLEN];
                         int ret = 0;                          int ret = 0;
Line 5078  yyreduce: Line 4961  yyreduce:
                 }                  }
     break;      break;
   
  case 356:  case 358:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2227 "cfparse.y"
#line 2218 "cfparse.y" 
     {      {
                         (yyval.num) = algtype2doi(algclass_isakmp_dh, (yyvsp[(1) - (1)].num));                          (yyval.num) = algtype2doi(algclass_isakmp_dh, (yyvsp[(1) - (1)].num));
                         if ((yyval.num) == -1) {                          if ((yyval.num) == -1) {
Line 5091  yyreduce: Line 4973  yyreduce:
                 }                  }
     break;      break;
   
  case 357:  case 359:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2235 "cfparse.y"
#line 2226 "cfparse.y" 
     {      {
                         if (ARRAYLEN(num2dhgroup) > (yyvsp[(1) - (1)].num) && num2dhgroup[(yyvsp[(1) - (1)].num)] != 0) {                          if (ARRAYLEN(num2dhgroup) > (yyvsp[(1) - (1)].num) && num2dhgroup[(yyvsp[(1) - (1)].num)] != 0) {
                                 (yyval.num) = num2dhgroup[(yyvsp[(1) - (1)].num)];                                  (yyval.num) = num2dhgroup[(yyvsp[(1) - (1)].num)];
Line 5106  yyreduce: Line 4987  yyreduce:
                 }                  }
     break;      break;
   
  case 358:  case 360:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2246 "cfparse.y"
#line 2237 "cfparse.y" 
     { (yyval.val) = NULL; }      { (yyval.val) = NULL; }
     break;      break;
   
  case 359:  case 361:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2247 "cfparse.y"
#line 2238 "cfparse.y" 
     { (yyval.val) = (yyvsp[(1) - (1)].val); }      { (yyval.val) = (yyvsp[(1) - (1)].val); }
     break;      break;
   
  case 360:  case 362:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2248 "cfparse.y"
#line 2239 "cfparse.y" 
     { (yyval.val) = (yyvsp[(1) - (1)].val); }      { (yyval.val) = (yyvsp[(1) - (1)].val); }
     break;      break;
   
  case 363:  case 365:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2256 "cfparse.y"
#line 2247 "cfparse.y" 
     {      {
                         cur_rmconf->spspec->lifetime = (yyvsp[(3) - (4)].num) * (yyvsp[(4) - (4)].num);                          cur_rmconf->spspec->lifetime = (yyvsp[(3) - (4)].num) * (yyvsp[(4) - (4)].num);
                 }                  }
     break;      break;
   
  case 365:  case 367:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2261 "cfparse.y"
#line 2252 "cfparse.y" 
     {      {
 #if 1  #if 1
                         yyerror("byte lifetime support is deprecated");                          yyerror("byte lifetime support is deprecated");
Line 5152  yyreduce: Line 5028  yyreduce:
                 }                  }
     break;      break;
   
  case 367:  case 369:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2273 "cfparse.y"
#line 2264 "cfparse.y" 
     {      {
                         cur_rmconf->spspec->algclass[algclass_isakmp_dh] = (yyvsp[(2) - (2)].num);                          cur_rmconf->spspec->algclass[algclass_isakmp_dh] = (yyvsp[(2) - (2)].num);
                 }                  }
     break;      break;
   
  case 369:  case 371:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2278 "cfparse.y"
#line 2269 "cfparse.y" 
     {      {
                         if (cur_rmconf->spspec->vendorid != VENDORID_GSSAPI) {                          if (cur_rmconf->spspec->vendorid != VENDORID_GSSAPI) {
                                 yyerror("wrong Vendor ID for gssapi_id");                                  yyerror("wrong Vendor ID for gssapi_id");
Line 5178  yyreduce: Line 5052  yyreduce:
                 }                  }
     break;      break;
   
  case 371:  case 373:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2291 "cfparse.y"
#line 2282 "cfparse.y" 
     {      {
                         int doi;                          int doi;
                         int defklen;                          int defklen;
Line 5277  yyreduce: Line 5150  yyreduce:
                 }                  }
     break;      break;
   
  case 373:  case 375:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2388 "cfparse.y"
#line 2379 "cfparse.y" 
     { (yyval.num) = 1; }      { (yyval.num) = 1; }
     break;      break;
   
  case 374:  case 376:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2389 "cfparse.y"
#line 2380 "cfparse.y" 
     { (yyval.num) = 60; }      { (yyval.num) = 60; }
     break;      break;
   
  case 375:  case 377:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2390 "cfparse.y"
#line 2381 "cfparse.y" 
     { (yyval.num) = (60 * 60); }      { (yyval.num) = (60 * 60); }
     break;      break;
   
  case 376:  case 378:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2393 "cfparse.y"
#line 2384 "cfparse.y" 
     { (yyval.num) = 1; }      { (yyval.num) = 1; }
     break;      break;
   
  case 377:  case 379:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2394 "cfparse.y"
#line 2385 "cfparse.y" 
     { (yyval.num) = 1024; }      { (yyval.num) = 1024; }
     break;      break;
   
  case 378:  case 380:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2395 "cfparse.y"
#line 2386 "cfparse.y" 
     { (yyval.num) = (1024 * 1024); }      { (yyval.num) = (1024 * 1024); }
     break;      break;
   
  case 379:  case 381:
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 2396 "cfparse.y"
#line 2387 "cfparse.y" 
     { (yyval.num) = (1024 * 1024 * 1024); }      { (yyval.num) = (1024 * 1024 * 1024); }
     break;      break;
   
   
/* Line 1787 of yacc.c  */
/* Line 1455 of yacc.c  */#line 5198 "cfparse.c"
#line 5333 "cfparse.c" 
       default: break;        default: break;
     }      }
     /* User semantic actions sometimes alter yychar, and that requires
        that yytoken be updated with the new translation.  We take the
        approach of translating immediately before every use of yytoken.
        One alternative is translating here after every semantic action,
        but that translation would be missed if the semantic action invokes
        YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
        if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
        incorrect destructor might then be invoked immediately.  In the
        case of YYERROR or YYBACKUP, subsequent parser actions might lead
        to an incorrect destructor call or verbose syntax error message
        before the lookahead is translated.  */
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);    YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
   
   YYPOPSTACK (yylen);    YYPOPSTACK (yylen);
Line 5359  yyreduce: Line 5235  yyreduce:
 | yyerrlab -- here on detecting error |  | yyerrlab -- here on detecting error |
 `------------------------------------*/  `------------------------------------*/
 yyerrlab:  yyerrlab:
     /* Make sure we have latest lookahead translation.  See comments at
        user semantic actions for why this is necessary.  */
     yytoken = yychar == YYEMPTY ? YYEMPTY : YYTRANSLATE (yychar);
   
   /* If not already recovering from an error, report this error.  */    /* If not already recovering from an error, report this error.  */
   if (!yyerrstatus)    if (!yyerrstatus)
     {      {
Line 5366  yyerrlab: Line 5246  yyerrlab:
 #if ! YYERROR_VERBOSE  #if ! YYERROR_VERBOSE
       yyerror (YY_("syntax error"));        yyerror (YY_("syntax error"));
 #else  #else
   # define YYSYNTAX_ERROR yysyntax_error (&yymsg_alloc, &yymsg, \
                                           yyssp, yytoken)
       {        {
        YYSIZE_T yysize = yysyntax_error (0, yystate, yychar);        char const *yymsgp = YY_("syntax error");
        if (yymsg_alloc < yysize && yymsg_alloc < YYSTACK_ALLOC_MAXIMUM)        int yysyntax_error_status;
          {        yysyntax_error_status = YYSYNTAX_ERROR;
            YYSIZE_T yyalloc = 2 * yysize;        if (yysyntax_error_status == 0)
            if (! (yysize <= yyalloc && yyalloc <= YYSTACK_ALLOC_MAXIMUM))          yymsgp = yymsg;
              yyalloc = YYSTACK_ALLOC_MAXIMUM;        else if (yysyntax_error_status == 1)
            if (yymsg != yymsgbuf)          {
              YYSTACK_FREE (yymsg);            if (yymsg != yymsgbuf)
            yymsg = (char *) YYSTACK_ALLOC (yyalloc);              YYSTACK_FREE (yymsg);
            if (yymsg)            yymsg = (char *) YYSTACK_ALLOC (yymsg_alloc);
              yymsg_alloc = yyalloc;            if (!yymsg)
            else              {
              {                yymsg = yymsgbuf;
                yymsg = yymsgbuf;                yymsg_alloc = sizeof yymsgbuf;
                yymsg_alloc = sizeof yymsgbuf;                yysyntax_error_status = 2;
              }              }
          }            else
              {
        if (0 < yysize && yysize <= yymsg_alloc)                yysyntax_error_status = YYSYNTAX_ERROR;
          {                yymsgp = yymsg;
            (void) yysyntax_error (yymsg, yystate, yychar);              }
            yyerror (yymsg);          }
          }        yyerror (yymsgp);
        else        if (yysyntax_error_status == 2)
          {          goto yyexhaustedlab;
            yyerror (YY_("syntax error")); 
            if (yysize != 0) 
              goto yyexhaustedlab; 
          } 
       }        }
   # undef YYSYNTAX_ERROR
 #endif  #endif
     }      }
   
Line 5455  yyerrlab1: Line 5334  yyerrlab1:
   for (;;)    for (;;)
     {      {
       yyn = yypact[yystate];        yyn = yypact[yystate];
      if (yyn != YYPACT_NINF)      if (!yypact_value_is_default (yyn))
         {          {
           yyn += YYTERROR;            yyn += YYTERROR;
           if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)            if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYTERROR)
Line 5502  yyabortlab: Line 5381  yyabortlab:
   yyresult = 1;    yyresult = 1;
   goto yyreturn;    goto yyreturn;
   
#if !defined(yyoverflow) || YYERROR_VERBOSE#if !defined yyoverflow || YYERROR_VERBOSE
 /*-------------------------------------------------.  /*-------------------------------------------------.
 | yyexhaustedlab -- memory exhaustion comes here.  |  | yyexhaustedlab -- memory exhaustion comes here.  |
 `-------------------------------------------------*/  `-------------------------------------------------*/
Line 5514  yyexhaustedlab: Line 5393  yyexhaustedlab:
   
 yyreturn:  yyreturn:
   if (yychar != YYEMPTY)    if (yychar != YYEMPTY)
     yydestruct ("Cleanup: discarding lookahead",    {
                 yytoken, &yylval);      /* Make sure we have latest lookahead translation.  See comments at
          user semantic actions for why this is necessary.  */
       yytoken = YYTRANSLATE (yychar);
       yydestruct ("Cleanup: discarding lookahead",
                   yytoken, &yylval);
     }
   /* Do not reclaim the symbols of the rule which action triggered    /* Do not reclaim the symbols of the rule which action triggered
      this YYABORT or YYACCEPT.  */       this YYABORT or YYACCEPT.  */
   YYPOPSTACK (yylen);    YYPOPSTACK (yylen);
Line 5539  yyreturn: Line 5423  yyreturn:
 }  }
   
   
   /* Line 2048 of yacc.c  */
   #line 2398 "cfparse.y"
   
 /* Line 1675 of yacc.c  */  
 #line 2389 "cfparse.y"  
   
   
 static struct secprotospec *  static struct secprotospec *
 newspspec()  newspspec()
 {  {
Line 5986  adminsock_conf(path, owner, group, mode_dec) Line 5869  adminsock_conf(path, owner, group, mode_dec)
         return;          return;
 }  }
 #endif  #endif
   

Removed from v.1.1.1.1  
changed lines
  Added in v.1.1.1.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>