dlog:
   40|    596|void dlog(int level, int flevel, char const *fmt, ...) {}
LLVMFuzzerTestOneInput:
   48|    596|int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
   49|    596|    char filename[] = "/tmp/fuzz-config-XXXXXX";
   50|    596|    int fd = mkstemp(filename);
   51|    596|    if (fd < 0) {
  ------------------
  |  Branch (51:9): [True: 0, False: 596]
  ------------------
   52|      0|        return 0;
   53|      0|    }
   54|    596|    write(fd, data, size);
   55|    596|    close(fd);
   56|       |
   57|    596|    struct Interface *ifaces = readin_config(filename);
   58|       |    
   59|    596|    if (ifaces) {
  ------------------
  |  Branch (59:9): [True: 0, False: 596]
  ------------------
   60|      0|        free_ifaces(ifaces);
   61|      0|    }
   62|       |    
   63|    596|    unlink(filename);
   64|    596|    return 0;
   65|    596|}

yyparse:
 1443|    596|{
 1444|    596|    yy_state_fast_t yystate = 0;
 1445|       |    /* Number of tokens to shift before error messages enabled.  */
 1446|    596|    int yyerrstatus = 0;
 1447|       |
 1448|       |    /* Refer to the stacks through separate pointers, to allow yyoverflow
 1449|       |       to reallocate them elsewhere.  */
 1450|       |
 1451|       |    /* Their size.  */
 1452|    596|    YYPTRDIFF_T yystacksize = YYINITDEPTH;
  ------------------
  |  |  577|    596|#  define YYPTRDIFF_T __PTRDIFF_TYPE__
  ------------------
                  YYPTRDIFF_T yystacksize = YYINITDEPTH;
  ------------------
  |  | 1388|    596|# define YYINITDEPTH 200
  ------------------
 1453|       |
 1454|       |    /* The state stack: array, bottom, top.  */
 1455|    596|    yy_state_t yyssa[YYINITDEPTH];
 1456|    596|    yy_state_t *yyss = yyssa;
 1457|    596|    yy_state_t *yyssp = yyss;
 1458|       |
 1459|       |    /* The semantic value stack: array, bottom, top.  */
 1460|    596|    YYSTYPE yyvsa[YYINITDEPTH];
 1461|    596|    YYSTYPE *yyvs = yyvsa;
 1462|    596|    YYSTYPE *yyvsp = yyvs;
 1463|       |
 1464|    596|  int yyn;
 1465|       |  /* The return value of yyparse.  */
 1466|    596|  int yyresult;
 1467|       |  /* Lookahead symbol kind.  */
 1468|    596|  yysymbol_kind_t yytoken = YYSYMBOL_YYEMPTY;
 1469|       |  /* The variables used to return semantic value and location from the
 1470|       |     action routines.  */
 1471|    596|  YYSTYPE yyval;
 1472|       |
 1473|       |
 1474|       |
 1475|    596|#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
 1476|       |
 1477|       |  /* The number of symbols on the RHS of the reduced rule.
 1478|       |     Keep to zero when no symbol should be popped.  */
 1479|    596|  int yylen = 0;
 1480|       |
 1481|    596|  YYDPRINTF ((stderr, "Starting parse\n"));
  ------------------
  |  | 1379|    596|# define YYDPRINTF(Args) ((void) 0)
  ------------------
 1482|       |
 1483|    596|  yychar = YYEMPTY; /* Cause a token to be read.  */
  ------------------
  |  |  225|    596|#define YYEMPTY -2
  ------------------
 1484|       |
 1485|    596|  goto yysetstate;
 1486|       |
 1487|       |
 1488|       |/*------------------------------------------------------------.
 1489|       || yynewstate -- push a new state, which is found in yystate.  |
 1490|       |`------------------------------------------------------------*/
 1491|      0|yynewstate:
 1492|       |  /* In all cases, when you get here, the value and location stacks
 1493|       |     have just been pushed.  So pushing a state here evens the stacks.  */
 1494|      0|  yyssp++;
 1495|       |
 1496|       |
 1497|       |/*--------------------------------------------------------------------.
 1498|       || yysetstate -- set current state (the top of the stack) to yystate.  |
 1499|       |`--------------------------------------------------------------------*/
 1500|    596|yysetstate:
 1501|    596|  YYDPRINTF ((stderr, "Entering state %d\n", yystate));
  ------------------
  |  | 1379|    596|# define YYDPRINTF(Args) ((void) 0)
  ------------------
 1502|    596|  YY_ASSERT (0 <= yystate && yystate < YYNSTATES);
  ------------------
  |  |  693|    596|#define YY_ASSERT(E) ((void) (0 && (E)))
  |  |  ------------------
  |  |  |  Branch (693:31): [Folded, False: 596]
  |  |  |  Branch (693:37): [True: 0, False: 0]
  |  |  |  Branch (693:37): [True: 0, False: 0]
  |  |  ------------------
  ------------------
 1503|    596|  YY_IGNORE_USELESS_CAST_BEGIN
 1504|    596|  *yyssp = YY_CAST (yy_state_t, yystate);
  ------------------
  |  |  112|    596|#   define YY_CAST(Type, Val) ((Type) (Val))
  ------------------
 1505|    596|  YY_IGNORE_USELESS_CAST_END
 1506|    596|  YY_STACK_PRINT (yyss, yyssp);
 1507|       |
 1508|    596|  if (yyss + yystacksize - 1 <= yyssp)
  ------------------
  |  Branch (1508:7): [True: 0, False: 596]
  ------------------
 1509|       |#if !defined yyoverflow && !defined YYSTACK_RELOCATE
 1510|       |    YYNOMEM;
 1511|       |#else
 1512|      0|    {
 1513|       |      /* Get the current used size of the three stacks, in elements.  */
 1514|      0|      YYPTRDIFF_T yysize = yyssp - yyss + 1;
  ------------------
  |  |  577|      0|#  define YYPTRDIFF_T __PTRDIFF_TYPE__
  ------------------
 1515|       |
 1516|       |# if defined yyoverflow
 1517|       |      {
 1518|       |        /* Give user a chance to reallocate the stack.  Use copies of
 1519|       |           these so that the &'s don't force the real ones into
 1520|       |           memory.  */
 1521|       |        yy_state_t *yyss1 = yyss;
 1522|       |        YYSTYPE *yyvs1 = yyvs;
 1523|       |
 1524|       |        /* Each stack pointer address is followed by the size of the
 1525|       |           data in use in that stack, in bytes.  This used to be a
 1526|       |           conditional around just the two extra args, but that might
 1527|       |           be undefined if yyoverflow is a macro.  */
 1528|       |        yyoverflow (YY_("memory exhausted"),
 1529|       |                    &yyss1, yysize * YYSIZEOF (*yyssp),
 1530|       |                    &yyvs1, yysize * YYSIZEOF (*yyvsp),
 1531|       |                    &yystacksize);
 1532|       |        yyss = yyss1;
 1533|       |        yyvs = yyvs1;
 1534|       |      }
 1535|       |# else /* defined YYSTACK_RELOCATE */
 1536|       |      /* Extend the stack our own way.  */
 1537|      0|      if (YYMAXDEPTH <= yystacksize)
  ------------------
  |  | 1399|      0|# define YYMAXDEPTH 10000
  ------------------
  |  Branch (1537:11): [True: 0, False: 0]
  ------------------
 1538|      0|        YYNOMEM;
  ------------------
  |  | 1232|      0|#define YYNOMEM         goto yyexhaustedlab
  ------------------
 1539|      0|      yystacksize *= 2;
 1540|      0|      if (YYMAXDEPTH < yystacksize)
  ------------------
  |  | 1399|      0|# define YYMAXDEPTH 10000
  ------------------
  |  Branch (1540:11): [True: 0, False: 0]
  ------------------
 1541|      0|        yystacksize = YYMAXDEPTH;
  ------------------
  |  | 1399|      0|# define YYMAXDEPTH 10000
  ------------------
 1542|       |
 1543|      0|      {
 1544|      0|        yy_state_t *yyss1 = yyss;
 1545|      0|        union yyalloc *yyptr =
 1546|      0|          YY_CAST (union yyalloc *,
  ------------------
  |  |  112|      0|#   define YY_CAST(Type, Val) ((Type) (Val))
  ------------------
 1547|      0|                   YYSTACK_ALLOC (YY_CAST (YYSIZE_T, YYSTACK_BYTES (yystacksize))));
 1548|      0|        if (! yyptr)
  ------------------
  |  Branch (1548:13): [True: 0, False: 0]
  ------------------
 1549|      0|          YYNOMEM;
  ------------------
  |  | 1232|      0|#define YYNOMEM         goto yyexhaustedlab
  ------------------
 1550|      0|        YYSTACK_RELOCATE (yyss_alloc, yyss);
  ------------------
  |  |  790|      0|    do                                                                  \
  |  |  791|      0|      {                                                                 \
  |  |  792|      0|        YYPTRDIFF_T yynewbytes;                                         \
  |  |  ------------------
  |  |  |  |  577|      0|#  define YYPTRDIFF_T __PTRDIFF_TYPE__
  |  |  ------------------
  |  |  793|      0|        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
  |  |  ------------------
  |  |  |  |  808|      0|      __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|#   define YY_CAST(Type, Val) ((Type) (Val))
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  794|      0|        Stack = &yyptr->Stack_alloc;                                    \
  |  |  795|      0|        yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
  |  |  ------------------
  |  |  |  |  610|      0|#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|#   define YY_CAST(Type, Val) ((Type) (Val))
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                       yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
  |  |  ------------------
  |  |  |  |  774|      0|# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  610|      0|#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|      0|#   define YY_CAST(Type, Val) ((Type) (Val))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  796|      0|        yyptr += yynewbytes / YYSIZEOF (*yyptr);                        \
  |  |  ------------------
  |  |  |  |  610|      0|#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|#   define YY_CAST(Type, Val) ((Type) (Val))
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  797|      0|      }                                                                 \
  |  |  798|      0|    while (0)
  |  |  ------------------
  |  |  |  Branch (798:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1551|      0|        YYSTACK_RELOCATE (yyvs_alloc, yyvs);
  ------------------
  |  |  790|      0|    do                                                                  \
  |  |  791|      0|      {                                                                 \
  |  |  792|      0|        YYPTRDIFF_T yynewbytes;                                         \
  |  |  ------------------
  |  |  |  |  577|      0|#  define YYPTRDIFF_T __PTRDIFF_TYPE__
  |  |  ------------------
  |  |  793|      0|        YYCOPY (&yyptr->Stack_alloc, Stack, yysize);                    \
  |  |  ------------------
  |  |  |  |  808|      0|      __builtin_memcpy (Dst, Src, YY_CAST (YYSIZE_T, (Count)) * sizeof (*(Src)))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|#   define YY_CAST(Type, Val) ((Type) (Val))
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  794|      0|        Stack = &yyptr->Stack_alloc;                                    \
  |  |  795|      0|        yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
  |  |  ------------------
  |  |  |  |  610|      0|#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|#   define YY_CAST(Type, Val) ((Type) (Val))
  |  |  |  |  ------------------
  |  |  ------------------
  |  |                       yynewbytes = yystacksize * YYSIZEOF (*Stack) + YYSTACK_GAP_MAXIMUM; \
  |  |  ------------------
  |  |  |  |  774|      0|# define YYSTACK_GAP_MAXIMUM (YYSIZEOF (union yyalloc) - 1)
  |  |  |  |  ------------------
  |  |  |  |  |  |  610|      0|#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
  |  |  |  |  |  |  ------------------
  |  |  |  |  |  |  |  |  112|      0|#   define YY_CAST(Type, Val) ((Type) (Val))
  |  |  |  |  |  |  ------------------
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  796|      0|        yyptr += yynewbytes / YYSIZEOF (*yyptr);                        \
  |  |  ------------------
  |  |  |  |  610|      0|#define YYSIZEOF(X) YY_CAST (YYPTRDIFF_T, sizeof (X))
  |  |  |  |  ------------------
  |  |  |  |  |  |  112|      0|#   define YY_CAST(Type, Val) ((Type) (Val))
  |  |  |  |  ------------------
  |  |  ------------------
  |  |  797|      0|      }                                                                 \
  |  |  798|      0|    while (0)
  |  |  ------------------
  |  |  |  Branch (798:12): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1552|      0|#  undef YYSTACK_RELOCATE
 1553|      0|        if (yyss1 != yyssa)
  ------------------
  |  Branch (1553:13): [True: 0, False: 0]
  ------------------
 1554|      0|          YYSTACK_FREE (yyss1);
  ------------------
  |  |  735|      0|#  define YYSTACK_FREE YYFREE
  |  |  ------------------
  |  |  |  |  754|      0|#   define YYFREE free
  |  |  ------------------
  ------------------
 1555|      0|      }
 1556|      0|# endif
 1557|       |
 1558|      0|      yyssp = yyss + yysize - 1;
 1559|      0|      yyvsp = yyvs + yysize - 1;
 1560|       |
 1561|      0|      YY_IGNORE_USELESS_CAST_BEGIN
 1562|      0|      YYDPRINTF ((stderr, "Stack size increased to %ld\n",
  ------------------
  |  | 1379|      0|# define YYDPRINTF(Args) ((void) 0)
  ------------------
 1563|      0|                  YY_CAST (long, yystacksize)));
 1564|      0|      YY_IGNORE_USELESS_CAST_END
 1565|       |
 1566|      0|      if (yyss + yystacksize - 1 <= yyssp)
  ------------------
  |  Branch (1566:11): [True: 0, False: 0]
  ------------------
 1567|      0|        YYABORT;
  ------------------
  |  | 1230|      0|#define YYABORT         goto yyabortlab
  ------------------
 1568|      0|    }
 1569|    596|#endif /* !defined yyoverflow && !defined YYSTACK_RELOCATE */
 1570|       |
 1571|       |
 1572|    596|  if (yystate == YYFINAL)
  ------------------
  |  |  823|    596|#define YYFINAL  7
  ------------------
  |  Branch (1572:7): [True: 0, False: 596]
  ------------------
 1573|      0|    YYACCEPT;
  ------------------
  |  | 1229|      0|#define YYACCEPT        goto yyacceptlab
  ------------------
 1574|       |
 1575|    596|  goto yybackup;
 1576|       |
 1577|       |
 1578|       |/*-----------.
 1579|       || yybackup.  |
 1580|       |`-----------*/
 1581|    596|yybackup:
 1582|       |  /* Do appropriate processing given the current state.  Read a
 1583|       |     lookahead token if we need one and don't already have one.  */
 1584|       |
 1585|       |  /* First try to decide what to do without reference to lookahead token.  */
 1586|    596|  yyn = yypact[yystate];
 1587|    596|  if (yypact_value_is_default (yyn))
  ------------------
  |  |  968|    596|  ((Yyn) == YYPACT_NINF)
  |  |  ------------------
  |  |  |  |  965|    596|#define YYPACT_NINF (-90)
  |  |  ------------------
  |  |  |  Branch (968:3): [True: 0, False: 596]
  |  |  ------------------
  ------------------
 1588|      0|    goto yydefault;
 1589|       |
 1590|       |  /* Not known => get a lookahead token if don't already have one.  */
 1591|       |
 1592|       |  /* YYCHAR is either empty, or end-of-input, or a valid lookahead.  */
 1593|    596|  if (yychar == YYEMPTY)
  ------------------
  |  |  225|    596|#define YYEMPTY -2
  ------------------
  |  Branch (1593:7): [True: 596, False: 0]
  ------------------
 1594|    596|    {
 1595|    596|      YYDPRINTF ((stderr, "Reading a token\n"));
  ------------------
  |  | 1379|    596|# define YYDPRINTF(Args) ((void) 0)
  ------------------
 1596|    596|      yychar = yylex ();
 1597|    596|    }
 1598|       |
 1599|    596|  if (yychar <= YYEOF)
  ------------------
  |  |  226|    596|#define YYEOF 0
  ------------------
  |  Branch (1599:7): [True: 48, False: 548]
  ------------------
 1600|     48|    {
 1601|     48|      yychar = YYEOF;
  ------------------
  |  |  226|     48|#define YYEOF 0
  ------------------
 1602|     48|      yytoken = YYSYMBOL_YYEOF;
 1603|     48|      YYDPRINTF ((stderr, "Now at end of input.\n"));
  ------------------
  |  | 1379|     48|# define YYDPRINTF(Args) ((void) 0)
  ------------------
 1604|     48|    }
 1605|    548|  else if (yychar == YYerror)
  ------------------
  |  |  227|    548|#define YYerror 256
  ------------------
  |  Branch (1605:12): [True: 0, False: 548]
  ------------------
 1606|      0|    {
 1607|       |      /* The scanner already issued an error message, process directly
 1608|       |         to error recovery.  But do not keep the error token as
 1609|       |         lookahead, it is too special and may lead us to an endless
 1610|       |         loop in error recovery. */
 1611|      0|      yychar = YYUNDEF;
  ------------------
  |  |  228|      0|#define YYUNDEF 257
  ------------------
 1612|      0|      yytoken = YYSYMBOL_YYerror;
 1613|      0|      goto yyerrlab1;
 1614|      0|    }
 1615|    548|  else
 1616|    548|    {
 1617|    548|      yytoken = YYTRANSLATE (yychar);
  ------------------
  |  |  843|    548|  (0 <= (YYX) && (YYX) <= YYMAXUTOK                     \
  |  |  ------------------
  |  |  |  |  837|    548|#define YYMAXUTOK   329
  |  |  ------------------
  |  |  |  Branch (843:4): [True: 548, False: 0]
  |  |  |  Branch (843:18): [True: 548, False: 0]
  |  |  ------------------
  |  |  844|    548|   ? YY_CAST (yysymbol_kind_t, yytranslate[YYX])        \
  |  |  ------------------
  |  |  |  |  112|    548|#   define YY_CAST(Type, Val) ((Type) (Val))
  |  |  ------------------
  |  |  845|    548|   : YYSYMBOL_YYUNDEF)
  ------------------
 1618|    548|      YY_SYMBOL_PRINT ("Next token is", yytoken, &yylval, &yylloc);
 1619|    548|    }
 1620|       |
 1621|       |  /* If the proper action on seeing token YYTOKEN is to reduce or to
 1622|       |     detect an error, take that action.  */
 1623|    596|  yyn += yytoken;
 1624|    596|  if (yyn < 0 || YYLAST < yyn || yycheck[yyn] != yytoken)
  ------------------
  |  |  825|    596|#define YYLAST   292
  ------------------
  |  Branch (1624:7): [True: 0, False: 596]
  |  Branch (1624:18): [True: 0, False: 596]
  |  Branch (1624:34): [True: 596, False: 0]
  ------------------
 1625|    596|    goto yydefault;
 1626|      0|  yyn = yytable[yyn];
 1627|      0|  if (yyn <= 0)
  ------------------
  |  Branch (1627:7): [True: 0, False: 0]
  ------------------
 1628|      0|    {
 1629|      0|      if (yytable_value_is_error (yyn))
  ------------------
  |  |  973|      0|  0
  |  |  ------------------
  |  |  |  Branch (973:3): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1630|      0|        goto yyerrlab;
 1631|      0|      yyn = -yyn;
 1632|      0|      goto yyreduce;
 1633|      0|    }
 1634|       |
 1635|       |  /* Count tokens shifted since error; after three, turn off error
 1636|       |     status.  */
 1637|      0|  if (yyerrstatus)
  ------------------
  |  Branch (1637:7): [True: 0, False: 0]
  ------------------
 1638|      0|    yyerrstatus--;
 1639|       |
 1640|       |  /* Shift the lookahead token.  */
 1641|      0|  YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
 1642|      0|  yystate = yyn;
 1643|      0|  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
 1644|      0|  *++yyvsp = yylval;
 1645|      0|  YY_IGNORE_MAYBE_UNINITIALIZED_END
 1646|       |
 1647|       |  /* Discard the shifted token.  */
 1648|      0|  yychar = YYEMPTY;
  ------------------
  |  |  225|      0|#define YYEMPTY -2
  ------------------
 1649|      0|  goto yynewstate;
 1650|       |
 1651|       |
 1652|       |/*-----------------------------------------------------------.
 1653|       || yydefault -- do the default action for the current state.  |
 1654|       |`-----------------------------------------------------------*/
 1655|    596|yydefault:
 1656|    596|  yyn = yydefact[yystate];
 1657|    596|  if (yyn == 0)
  ------------------
  |  Branch (1657:7): [True: 596, False: 0]
  ------------------
 1658|    596|    goto yyerrlab;
 1659|      0|  goto yyreduce;
 1660|       |
 1661|       |
 1662|       |/*-----------------------------.
 1663|       || yyreduce -- do a reduction.  |
 1664|       |`-----------------------------*/
 1665|      0|yyreduce:
 1666|       |  /* yyn is the number of a rule to reduce with.  */
 1667|      0|  yylen = yyr2[yyn];
 1668|       |
 1669|       |  /* If YYLEN is nonzero, implement the default value of the action:
 1670|       |     '$$ = $1'.
 1671|       |
 1672|       |     Otherwise, the following line sets YYVAL to garbage.
 1673|       |     This behavior is undocumented and Bison
 1674|       |     users should not rely upon it.  Assigning to YYVAL
 1675|       |     unconditionally makes the parser a bit smaller, and it avoids a
 1676|       |     GCC warning that YYVAL may be used uninitialized.  */
 1677|      0|  yyval = yyvsp[1-yylen];
 1678|       |
 1679|       |
 1680|      0|  YY_REDUCE_PRINT (yyn);
 1681|      0|  switch (yyn)
 1682|      0|    {
 1683|      0|  case 4: /* ifacedef: ifacehead '{' ifaceparams '}' ';'  */
  ------------------
  |  Branch (1683:3): [True: 0, False: 0]
  ------------------
 1684|      0|#line 192 "gram.y"
 1685|      0|                {
 1686|      0|			dlog(LOG_DEBUG, 4, "%s interface definition ok", iface->props.name);
 1687|       |
 1688|      0|			iface->next = IfaceList;
 1689|      0|			IfaceList = iface;
 1690|       |
 1691|      0|			iface = NULL;
 1692|      0|		}
 1693|      0|#line 1694 "gram.c"
 1694|      0|    break;
 1695|       |
 1696|      0|  case 5: /* ifacehead: T_INTERFACE name  */
  ------------------
  |  Branch (1696:3): [True: 0, False: 0]
  ------------------
 1697|      0|#line 202 "gram.y"
 1698|      0|                {
 1699|      0|			iface = IfaceList;
 1700|       |
 1701|      0|			while (iface)
  ------------------
  |  Branch (1701:11): [True: 0, False: 0]
  ------------------
 1702|      0|			{
 1703|      0|				if (!strcmp((yyvsp[0].str), iface->props.name))
  ------------------
  |  Branch (1703:9): [True: 0, False: 0]
  ------------------
 1704|      0|				{
 1705|      0|					flog(LOG_ERR, "duplicate interface "
 1706|      0|						"definition for %s", (yyvsp[0].str));
 1707|      0|					ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1708|      0|				}
 1709|      0|				iface = iface->next;
 1710|      0|			}
 1711|       |
 1712|      0|			iface = malloc(sizeof(struct Interface));
 1713|       |
 1714|      0|			if (iface == NULL) {
  ------------------
  |  Branch (1714:8): [True: 0, False: 0]
  ------------------
 1715|      0|				flog(LOG_CRIT, "malloc failed: %s", strerror(errno));
 1716|      0|				ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1717|      0|			}
 1718|       |
 1719|      0|			iface_init_defaults(iface);
 1720|      0|			memset(&iface->props.name, 0, sizeof(iface->props.name));
 1721|      0|			strlcpy(iface->props.name, (yyvsp[0].str), sizeof(iface->props.name));
 1722|      0|			iface->lineno = num_lines;
 1723|      0|		}
 1724|      0|#line 1725 "gram.c"
 1725|      0|    break;
 1726|       |
 1727|      0|  case 6: /* name: STRING  */
  ------------------
  |  Branch (1727:3): [True: 0, False: 0]
  ------------------
 1728|      0|#line 231 "gram.y"
 1729|      0|                {
 1730|       |			/* check vality */
 1731|      0|			(yyval.str) = (yyvsp[0].str);
 1732|      0|		}
 1733|      0|#line 1734 "gram.c"
 1734|      0|    break;
 1735|       |
 1736|      0|  case 10: /* ifaceparam: prefixdef  */
  ------------------
  |  Branch (1736:3): [True: 0, False: 0]
  ------------------
 1737|      0|#line 242 "gram.y"
 1738|      0|                                { ADD_TO_LL(struct AdvPrefix, AdvPrefixList, (yyvsp[0].pinfo)); }
  ------------------
  |  |   93|      0|	do { \
  |  |   94|      0|		if (iface->list == NULL) \
  |  |  ------------------
  |  |  |  Branch (94:7): [True: 0, False: 0]
  |  |  ------------------
  |  |   95|      0|			iface->list = value; \
  |  |   96|      0|		else { \
  |  |   97|      0|			type *current = iface->list; \
  |  |   98|      0|			while (current->next != NULL) \
  |  |  ------------------
  |  |  |  Branch (98:11): [True: 0, False: 0]
  |  |  ------------------
  |  |   99|      0|				current = current->next; \
  |  |  100|      0|			current->next = value; \
  |  |  101|      0|		} \
  |  |  102|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (102:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1739|      0|#line 1740 "gram.c"
 1740|      0|    break;
 1741|       |
 1742|      0|  case 11: /* ifaceparam: clientslist  */
  ------------------
  |  Branch (1742:3): [True: 0, False: 0]
  ------------------
 1743|      0|#line 243 "gram.y"
 1744|      0|                                { ADD_TO_LL(struct Clients, ClientList, (yyvsp[0].ainfo)); }
  ------------------
  |  |   93|      0|	do { \
  |  |   94|      0|		if (iface->list == NULL) \
  |  |  ------------------
  |  |  |  Branch (94:7): [True: 0, False: 0]
  |  |  ------------------
  |  |   95|      0|			iface->list = value; \
  |  |   96|      0|		else { \
  |  |   97|      0|			type *current = iface->list; \
  |  |   98|      0|			while (current->next != NULL) \
  |  |  ------------------
  |  |  |  Branch (98:11): [True: 0, False: 0]
  |  |  ------------------
  |  |   99|      0|				current = current->next; \
  |  |  100|      0|			current->next = value; \
  |  |  101|      0|		} \
  |  |  102|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (102:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1745|      0|#line 1746 "gram.c"
 1746|      0|    break;
 1747|       |
 1748|      0|  case 12: /* ifaceparam: routedef  */
  ------------------
  |  Branch (1748:3): [True: 0, False: 0]
  ------------------
 1749|      0|#line 244 "gram.y"
 1750|      0|                                { ADD_TO_LL(struct AdvRoute, AdvRouteList, (yyvsp[0].rinfo)); }
  ------------------
  |  |   93|      0|	do { \
  |  |   94|      0|		if (iface->list == NULL) \
  |  |  ------------------
  |  |  |  Branch (94:7): [True: 0, False: 0]
  |  |  ------------------
  |  |   95|      0|			iface->list = value; \
  |  |   96|      0|		else { \
  |  |   97|      0|			type *current = iface->list; \
  |  |   98|      0|			while (current->next != NULL) \
  |  |  ------------------
  |  |  |  Branch (98:11): [True: 0, False: 0]
  |  |  ------------------
  |  |   99|      0|				current = current->next; \
  |  |  100|      0|			current->next = value; \
  |  |  101|      0|		} \
  |  |  102|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (102:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1751|      0|#line 1752 "gram.c"
 1752|      0|    break;
 1753|       |
 1754|      0|  case 13: /* ifaceparam: rdnssdef  */
  ------------------
  |  Branch (1754:3): [True: 0, False: 0]
  ------------------
 1755|      0|#line 245 "gram.y"
 1756|      0|                                { ADD_TO_LL(struct AdvRDNSS, AdvRDNSSList, (yyvsp[0].rdnssinfo)); }
  ------------------
  |  |   93|      0|	do { \
  |  |   94|      0|		if (iface->list == NULL) \
  |  |  ------------------
  |  |  |  Branch (94:7): [True: 0, False: 0]
  |  |  ------------------
  |  |   95|      0|			iface->list = value; \
  |  |   96|      0|		else { \
  |  |   97|      0|			type *current = iface->list; \
  |  |   98|      0|			while (current->next != NULL) \
  |  |  ------------------
  |  |  |  Branch (98:11): [True: 0, False: 0]
  |  |  ------------------
  |  |   99|      0|				current = current->next; \
  |  |  100|      0|			current->next = value; \
  |  |  101|      0|		} \
  |  |  102|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (102:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1757|      0|#line 1758 "gram.c"
 1758|      0|    break;
 1759|       |
 1760|      0|  case 14: /* ifaceparam: dnssldef  */
  ------------------
  |  Branch (1760:3): [True: 0, False: 0]
  ------------------
 1761|      0|#line 246 "gram.y"
 1762|      0|                                { ADD_TO_LL(struct AdvDNSSL, AdvDNSSLList, (yyvsp[0].dnsslinfo)); }
  ------------------
  |  |   93|      0|	do { \
  |  |   94|      0|		if (iface->list == NULL) \
  |  |  ------------------
  |  |  |  Branch (94:7): [True: 0, False: 0]
  |  |  ------------------
  |  |   95|      0|			iface->list = value; \
  |  |   96|      0|		else { \
  |  |   97|      0|			type *current = iface->list; \
  |  |   98|      0|			while (current->next != NULL) \
  |  |  ------------------
  |  |  |  Branch (98:11): [True: 0, False: 0]
  |  |  ------------------
  |  |   99|      0|				current = current->next; \
  |  |  100|      0|			current->next = value; \
  |  |  101|      0|		} \
  |  |  102|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (102:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1763|      0|#line 1764 "gram.c"
 1764|      0|    break;
 1765|       |
 1766|      0|  case 15: /* ifaceparam: lowpancodef  */
  ------------------
  |  Branch (1766:3): [True: 0, False: 0]
  ------------------
 1767|      0|#line 247 "gram.y"
 1768|      0|                                { ADD_TO_LL(struct AdvLowpanCo, AdvLowpanCoList, (yyvsp[0].lowpancoinfo)); }
  ------------------
  |  |   93|      0|	do { \
  |  |   94|      0|		if (iface->list == NULL) \
  |  |  ------------------
  |  |  |  Branch (94:7): [True: 0, False: 0]
  |  |  ------------------
  |  |   95|      0|			iface->list = value; \
  |  |   96|      0|		else { \
  |  |   97|      0|			type *current = iface->list; \
  |  |   98|      0|			while (current->next != NULL) \
  |  |  ------------------
  |  |  |  Branch (98:11): [True: 0, False: 0]
  |  |  ------------------
  |  |   99|      0|				current = current->next; \
  |  |  100|      0|			current->next = value; \
  |  |  101|      0|		} \
  |  |  102|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (102:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1769|      0|#line 1770 "gram.c"
 1770|      0|    break;
 1771|       |
 1772|      0|  case 16: /* ifaceparam: abrodef  */
  ------------------
  |  Branch (1772:3): [True: 0, False: 0]
  ------------------
 1773|      0|#line 248 "gram.y"
 1774|      0|                                { ADD_TO_LL(struct AdvAbro, AdvAbroList, (yyvsp[0].abroinfo)); }
  ------------------
  |  |   93|      0|	do { \
  |  |   94|      0|		if (iface->list == NULL) \
  |  |  ------------------
  |  |  |  Branch (94:7): [True: 0, False: 0]
  |  |  ------------------
  |  |   95|      0|			iface->list = value; \
  |  |   96|      0|		else { \
  |  |   97|      0|			type *current = iface->list; \
  |  |   98|      0|			while (current->next != NULL) \
  |  |  ------------------
  |  |  |  Branch (98:11): [True: 0, False: 0]
  |  |  ------------------
  |  |   99|      0|				current = current->next; \
  |  |  100|      0|			current->next = value; \
  |  |  101|      0|		} \
  |  |  102|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (102:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1775|      0|#line 1776 "gram.c"
 1776|      0|    break;
 1777|       |
 1778|      0|  case 17: /* ifaceparam: rasrcaddresslist  */
  ------------------
  |  Branch (1778:3): [True: 0, False: 0]
  ------------------
 1779|      0|#line 249 "gram.y"
 1780|      0|                                   { ADD_TO_LL(struct AdvRASrcAddress, AdvRASrcAddressList, (yyvsp[0].rasrcaddressinfo)); }
  ------------------
  |  |   93|      0|	do { \
  |  |   94|      0|		if (iface->list == NULL) \
  |  |  ------------------
  |  |  |  Branch (94:7): [True: 0, False: 0]
  |  |  ------------------
  |  |   95|      0|			iface->list = value; \
  |  |   96|      0|		else { \
  |  |   97|      0|			type *current = iface->list; \
  |  |   98|      0|			while (current->next != NULL) \
  |  |  ------------------
  |  |  |  Branch (98:11): [True: 0, False: 0]
  |  |  ------------------
  |  |   99|      0|				current = current->next; \
  |  |  100|      0|			current->next = value; \
  |  |  101|      0|		} \
  |  |  102|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (102:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1781|      0|#line 1782 "gram.c"
 1782|      0|    break;
 1783|       |
 1784|      0|  case 18: /* ifaceparam: nat64prefixdef  */
  ------------------
  |  Branch (1784:3): [True: 0, False: 0]
  ------------------
 1785|      0|#line 250 "gram.y"
 1786|      0|                                 { ADD_TO_LL(struct NAT64Prefix, NAT64PrefixList, (yyvsp[0].nat64pinfo)); }
  ------------------
  |  |   93|      0|	do { \
  |  |   94|      0|		if (iface->list == NULL) \
  |  |  ------------------
  |  |  |  Branch (94:7): [True: 0, False: 0]
  |  |  ------------------
  |  |   95|      0|			iface->list = value; \
  |  |   96|      0|		else { \
  |  |   97|      0|			type *current = iface->list; \
  |  |   98|      0|			while (current->next != NULL) \
  |  |  ------------------
  |  |  |  Branch (98:11): [True: 0, False: 0]
  |  |  ------------------
  |  |   99|      0|				current = current->next; \
  |  |  100|      0|			current->next = value; \
  |  |  101|      0|		} \
  |  |  102|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (102:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1787|      0|#line 1788 "gram.c"
 1788|      0|    break;
 1789|       |
 1790|      0|  case 19: /* ifaceparam: ignoreprefixlist  */
  ------------------
  |  Branch (1790:3): [True: 0, False: 0]
  ------------------
 1791|      0|#line 251 "gram.y"
 1792|      0|                                   { ADD_TO_LL(struct AutogenIgnorePrefix, IgnorePrefixList, (yyvsp[0].igpinfo)); }
  ------------------
  |  |   93|      0|	do { \
  |  |   94|      0|		if (iface->list == NULL) \
  |  |  ------------------
  |  |  |  Branch (94:7): [True: 0, False: 0]
  |  |  ------------------
  |  |   95|      0|			iface->list = value; \
  |  |   96|      0|		else { \
  |  |   97|      0|			type *current = iface->list; \
  |  |   98|      0|			while (current->next != NULL) \
  |  |  ------------------
  |  |  |  Branch (98:11): [True: 0, False: 0]
  |  |  ------------------
  |  |   99|      0|				current = current->next; \
  |  |  100|      0|			current->next = value; \
  |  |  101|      0|		} \
  |  |  102|      0|	} while (0)
  |  |  ------------------
  |  |  |  Branch (102:11): [Folded, False: 0]
  |  |  ------------------
  ------------------
 1793|      0|#line 1794 "gram.c"
 1794|      0|    break;
 1795|       |
 1796|      0|  case 20: /* ifaceval: T_MinRtrAdvInterval NUMBER ';'  */
  ------------------
  |  Branch (1796:3): [True: 0, False: 0]
  ------------------
 1797|      0|#line 255 "gram.y"
 1798|      0|                {
 1799|      0|			iface->MinRtrAdvInterval = (yyvsp[-1].num);
 1800|      0|		}
 1801|      0|#line 1802 "gram.c"
 1802|      0|    break;
 1803|       |
 1804|      0|  case 21: /* ifaceval: T_MaxRtrAdvInterval NUMBER ';'  */
  ------------------
  |  Branch (1804:3): [True: 0, False: 0]
  ------------------
 1805|      0|#line 259 "gram.y"
 1806|      0|                {
 1807|      0|			iface->MaxRtrAdvInterval = (yyvsp[-1].num);
 1808|      0|		}
 1809|      0|#line 1810 "gram.c"
 1810|      0|    break;
 1811|       |
 1812|      0|  case 22: /* ifaceval: T_MinDelayBetweenRAs NUMBER ';'  */
  ------------------
  |  Branch (1812:3): [True: 0, False: 0]
  ------------------
 1813|      0|#line 263 "gram.y"
 1814|      0|                {
 1815|      0|			iface->MinDelayBetweenRAs = (yyvsp[-1].num);
 1816|      0|		}
 1817|      0|#line 1818 "gram.c"
 1818|      0|    break;
 1819|       |
 1820|      0|  case 23: /* ifaceval: T_MinRtrAdvInterval DECIMAL ';'  */
  ------------------
  |  Branch (1820:3): [True: 0, False: 0]
  ------------------
 1821|      0|#line 267 "gram.y"
 1822|      0|                {
 1823|      0|			iface->MinRtrAdvInterval = (yyvsp[-1].dec);
 1824|      0|		}
 1825|      0|#line 1826 "gram.c"
 1826|      0|    break;
 1827|       |
 1828|      0|  case 24: /* ifaceval: T_MaxRtrAdvInterval DECIMAL ';'  */
  ------------------
  |  Branch (1828:3): [True: 0, False: 0]
  ------------------
 1829|      0|#line 271 "gram.y"
 1830|      0|                {
 1831|      0|			iface->MaxRtrAdvInterval = (yyvsp[-1].dec);
 1832|      0|		}
 1833|      0|#line 1834 "gram.c"
 1834|      0|    break;
 1835|       |
 1836|      0|  case 25: /* ifaceval: T_MinDelayBetweenRAs DECIMAL ';'  */
  ------------------
  |  Branch (1836:3): [True: 0, False: 0]
  ------------------
 1837|      0|#line 275 "gram.y"
 1838|      0|                {
 1839|      0|			iface->MinDelayBetweenRAs = (yyvsp[-1].dec);
 1840|      0|		}
 1841|      0|#line 1842 "gram.c"
 1842|      0|    break;
 1843|       |
 1844|      0|  case 26: /* ifaceval: T_IgnoreIfMissing SWITCH ';'  */
  ------------------
  |  Branch (1844:3): [True: 0, False: 0]
  ------------------
 1845|      0|#line 279 "gram.y"
 1846|      0|                {
 1847|      0|			iface->IgnoreIfMissing = (yyvsp[-1].num);
 1848|      0|		}
 1849|      0|#line 1850 "gram.c"
 1850|      0|    break;
 1851|       |
 1852|      0|  case 27: /* ifaceval: T_AdvSendAdvert SWITCH ';'  */
  ------------------
  |  Branch (1852:3): [True: 0, False: 0]
  ------------------
 1853|      0|#line 283 "gram.y"
 1854|      0|                {
 1855|      0|			iface->AdvSendAdvert = (yyvsp[-1].num);
 1856|      0|		}
 1857|      0|#line 1858 "gram.c"
 1858|      0|    break;
 1859|       |
 1860|      0|  case 28: /* ifaceval: T_AdvManagedFlag SWITCH ';'  */
  ------------------
  |  Branch (1860:3): [True: 0, False: 0]
  ------------------
 1861|      0|#line 287 "gram.y"
 1862|      0|                {
 1863|      0|			iface->ra_header_info.AdvManagedFlag = (yyvsp[-1].num);
 1864|      0|		}
 1865|      0|#line 1866 "gram.c"
 1866|      0|    break;
 1867|       |
 1868|      0|  case 29: /* ifaceval: T_AdvOtherConfigFlag SWITCH ';'  */
  ------------------
  |  Branch (1868:3): [True: 0, False: 0]
  ------------------
 1869|      0|#line 291 "gram.y"
 1870|      0|                {
 1871|      0|			iface->ra_header_info.AdvOtherConfigFlag = (yyvsp[-1].num);
 1872|      0|		}
 1873|      0|#line 1874 "gram.c"
 1874|      0|    break;
 1875|       |
 1876|      0|  case 30: /* ifaceval: T_AdvLinkMTU NUMBER ';'  */
  ------------------
  |  Branch (1876:3): [True: 0, False: 0]
  ------------------
 1877|      0|#line 295 "gram.y"
 1878|      0|                {
 1879|      0|			iface->AdvLinkMTU = (yyvsp[-1].num);
 1880|      0|		}
 1881|      0|#line 1882 "gram.c"
 1882|      0|    break;
 1883|       |
 1884|      0|  case 31: /* ifaceval: T_AdvRAMTU NUMBER ';'  */
  ------------------
  |  Branch (1884:3): [True: 0, False: 0]
  ------------------
 1885|      0|#line 299 "gram.y"
 1886|      0|                {
 1887|      0|			iface->AdvRAMTU = (yyvsp[-1].num);
 1888|      0|			iface->AdvRAMTU = MAX(MIN_AdvLinkMTU, iface->AdvRAMTU);
  ------------------
  |  Branch (1888:22): [True: 0, False: 0]
  ------------------
 1889|      0|			iface->AdvRAMTU = MIN(MAX_AdvLinkMTU, iface->AdvRAMTU);
  ------------------
  |  Branch (1889:22): [True: 0, False: 0]
  ------------------
 1890|      0|		}
 1891|      0|#line 1892 "gram.c"
 1892|      0|    break;
 1893|       |
 1894|      0|  case 32: /* ifaceval: T_AdvReachableTime NUMBER ';'  */
  ------------------
  |  Branch (1894:3): [True: 0, False: 0]
  ------------------
 1895|      0|#line 305 "gram.y"
 1896|      0|                {
 1897|      0|			iface->ra_header_info.AdvReachableTime = (yyvsp[-1].num);
 1898|      0|		}
 1899|      0|#line 1900 "gram.c"
 1900|      0|    break;
 1901|       |
 1902|      0|  case 33: /* ifaceval: T_AdvRetransTimer NUMBER ';'  */
  ------------------
  |  Branch (1902:3): [True: 0, False: 0]
  ------------------
 1903|      0|#line 309 "gram.y"
 1904|      0|                {
 1905|      0|			iface->ra_header_info.AdvRetransTimer = (yyvsp[-1].num);
 1906|      0|		}
 1907|      0|#line 1908 "gram.c"
 1908|      0|    break;
 1909|       |
 1910|      0|  case 34: /* ifaceval: T_AdvDefaultLifetime NUMBER ';'  */
  ------------------
  |  Branch (1910:3): [True: 0, False: 0]
  ------------------
 1911|      0|#line 313 "gram.y"
 1912|      0|                {
 1913|      0|			iface->ra_header_info.AdvDefaultLifetime = (yyvsp[-1].num);
 1914|      0|		}
 1915|      0|#line 1916 "gram.c"
 1916|      0|    break;
 1917|       |
 1918|      0|  case 35: /* ifaceval: T_AdvDefaultPreference SIGNEDNUMBER ';'  */
  ------------------
  |  Branch (1918:3): [True: 0, False: 0]
  ------------------
 1919|      0|#line 317 "gram.y"
 1920|      0|                {
 1921|      0|			iface->ra_header_info.AdvDefaultPreference = (yyvsp[-1].snum);
 1922|      0|		}
 1923|      0|#line 1924 "gram.c"
 1924|      0|    break;
 1925|       |
 1926|      0|  case 36: /* ifaceval: T_AdvCurHopLimit NUMBER ';'  */
  ------------------
  |  Branch (1926:3): [True: 0, False: 0]
  ------------------
 1927|      0|#line 321 "gram.y"
 1928|      0|                {
 1929|      0|			iface->ra_header_info.AdvCurHopLimit = (yyvsp[-1].num);
 1930|      0|		}
 1931|      0|#line 1932 "gram.c"
 1932|      0|    break;
 1933|       |
 1934|      0|  case 37: /* ifaceval: T_RemoveAdvOnExit SWITCH ';'  */
  ------------------
  |  Branch (1934:3): [True: 0, False: 0]
  ------------------
 1935|      0|#line 325 "gram.y"
 1936|      0|                {
 1937|      0|			iface->RemoveAdvOnExit = (yyvsp[-1].num);
 1938|      0|		}
 1939|      0|#line 1940 "gram.c"
 1940|      0|    break;
 1941|       |
 1942|      0|  case 38: /* ifaceval: T_AdvSourceLLAddress SWITCH ';'  */
  ------------------
  |  Branch (1942:3): [True: 0, False: 0]
  ------------------
 1943|      0|#line 329 "gram.y"
 1944|      0|                {
 1945|      0|			iface->AdvSourceLLAddress = (yyvsp[-1].num);
 1946|      0|		}
 1947|      0|#line 1948 "gram.c"
 1948|      0|    break;
 1949|       |
 1950|      0|  case 39: /* ifaceval: T_AdvIntervalOpt SWITCH ';'  */
  ------------------
  |  Branch (1950:3): [True: 0, False: 0]
  ------------------
 1951|      0|#line 333 "gram.y"
 1952|      0|                {
 1953|      0|			iface->mipv6.AdvIntervalOpt = (yyvsp[-1].num);
 1954|      0|		}
 1955|      0|#line 1956 "gram.c"
 1956|      0|    break;
 1957|       |
 1958|      0|  case 40: /* ifaceval: T_AdvHomeAgentInfo SWITCH ';'  */
  ------------------
  |  Branch (1958:3): [True: 0, False: 0]
  ------------------
 1959|      0|#line 337 "gram.y"
 1960|      0|                {
 1961|      0|			iface->mipv6.AdvHomeAgentInfo = (yyvsp[-1].num);
 1962|      0|		}
 1963|      0|#line 1964 "gram.c"
 1964|      0|    break;
 1965|       |
 1966|      0|  case 41: /* ifaceval: T_AdvHomeAgentFlag SWITCH ';'  */
  ------------------
  |  Branch (1966:3): [True: 0, False: 0]
  ------------------
 1967|      0|#line 341 "gram.y"
 1968|      0|                {
 1969|      0|			iface->ra_header_info.AdvHomeAgentFlag = (yyvsp[-1].num);
 1970|      0|		}
 1971|      0|#line 1972 "gram.c"
 1972|      0|    break;
 1973|       |
 1974|      0|  case 42: /* ifaceval: T_HomeAgentPreference NUMBER ';'  */
  ------------------
  |  Branch (1974:3): [True: 0, False: 0]
  ------------------
 1975|      0|#line 345 "gram.y"
 1976|      0|                {
 1977|      0|			iface->mipv6.HomeAgentPreference = (yyvsp[-1].num);
 1978|      0|		}
 1979|      0|#line 1980 "gram.c"
 1980|      0|    break;
 1981|       |
 1982|      0|  case 43: /* ifaceval: T_HomeAgentLifetime NUMBER ';'  */
  ------------------
  |  Branch (1982:3): [True: 0, False: 0]
  ------------------
 1983|      0|#line 349 "gram.y"
 1984|      0|                {
 1985|      0|			iface->mipv6.HomeAgentLifetime = (yyvsp[-1].num);
 1986|      0|		}
 1987|      0|#line 1988 "gram.c"
 1988|      0|    break;
 1989|       |
 1990|      0|  case 44: /* ifaceval: T_UnicastOnly SWITCH ';'  */
  ------------------
  |  Branch (1990:3): [True: 0, False: 0]
  ------------------
 1991|      0|#line 353 "gram.y"
 1992|      0|                {
 1993|      0|			iface->UnicastOnly = (yyvsp[-1].num);
 1994|      0|		}
 1995|      0|#line 1996 "gram.c"
 1996|      0|    break;
 1997|       |
 1998|      0|  case 45: /* ifaceval: T_UnrestrictedUnicast SWITCH ';'  */
  ------------------
  |  Branch (1998:3): [True: 0, False: 0]
  ------------------
 1999|      0|#line 357 "gram.y"
 2000|      0|                {
 2001|      0|			iface->UnrestrictedUnicast = (yyvsp[-1].num);
 2002|      0|		}
 2003|      0|#line 2004 "gram.c"
 2004|      0|    break;
 2005|       |
 2006|      0|  case 46: /* ifaceval: T_AdvRASolicitedUnicast SWITCH ';'  */
  ------------------
  |  Branch (2006:3): [True: 0, False: 0]
  ------------------
 2007|      0|#line 361 "gram.y"
 2008|      0|                {
 2009|      0|			iface->AdvRASolicitedUnicast = (yyvsp[-1].num);
 2010|      0|		}
 2011|      0|#line 2012 "gram.c"
 2012|      0|    break;
 2013|       |
 2014|      0|  case 47: /* ifaceval: T_AdvCaptivePortalAPI STRING ';'  */
  ------------------
  |  Branch (2014:3): [True: 0, False: 0]
  ------------------
 2015|      0|#line 365 "gram.y"
 2016|      0|                {
 2017|      0|			const char *source = (yyvsp[-1].str);
 2018|      0|			size_t len = strlen(source);
 2019|       |
 2020|      0|			if (iface->AdvCaptivePortalAPI) {
  ------------------
  |  Branch (2020:8): [True: 0, False: 0]
  ------------------
 2021|      0|				flog(LOG_WARNING, "warning: AdvCaptivePortalAPI specified twice for interface "
 2022|      0|					"%s in %s, line %d", iface->props.name, filename, num_lines);
 2023|       |
 2024|      0|				free(iface->AdvCaptivePortalAPI);
 2025|      0|				iface->AdvCaptivePortalAPI = NULL;
 2026|      0|			}
 2027|       |
 2028|       |			/* trim double-quotes from start and end of string */
 2029|      0|			if ((len > 0) && (source[0] == '"')) {
  ------------------
  |  Branch (2029:8): [True: 0, False: 0]
  |  Branch (2029:21): [True: 0, False: 0]
  ------------------
 2030|      0|				source++;
 2031|      0|				len--;
 2032|      0|			}
 2033|      0|			if ((len > 0) && (source[len-1] == '"')) {
  ------------------
  |  Branch (2033:8): [True: 0, False: 0]
  |  Branch (2033:21): [True: 0, False: 0]
  ------------------
 2034|      0|				len--;
 2035|      0|			}
 2036|       |
 2037|      0|			if (len <= 0) {
  ------------------
  |  Branch (2037:8): [True: 0, False: 0]
  ------------------
 2038|      0|				flog(LOG_ERR, "AdvCaptivePortalAPI empty URL specified for interface %s.", iface->props.name);
 2039|      0|				ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2040|      0|			}
 2041|       |
 2042|      0|			iface->AdvCaptivePortalAPI = strndup(source, len);
 2043|       |
 2044|      0|			if (!iface->AdvCaptivePortalAPI) {
  ------------------
  |  Branch (2044:8): [True: 0, False: 0]
  ------------------
 2045|      0|				flog(LOG_CRIT, "malloc failed: %s", strerror(errno));
 2046|      0|				ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2047|      0|			}
 2048|      0|		}
 2049|      0|#line 2050 "gram.c"
 2050|      0|    break;
 2051|       |
 2052|      0|  case 48: /* ifaceval: T_AdvMobRtrSupportFlag SWITCH ';'  */
  ------------------
  |  Branch (2052:3): [True: 0, False: 0]
  ------------------
 2053|      0|#line 399 "gram.y"
 2054|      0|                {
 2055|      0|			iface->mipv6.AdvMobRtrSupportFlag = (yyvsp[-1].num);
 2056|      0|		}
 2057|      0|#line 2058 "gram.c"
 2058|      0|    break;
 2059|       |
 2060|      0|  case 49: /* clientslist: T_CLIENTS '{' v6addrlist_clients '}' ';'  */
  ------------------
  |  Branch (2060:3): [True: 0, False: 0]
  ------------------
 2061|      0|#line 405 "gram.y"
 2062|      0|                {
 2063|      0|			(yyval.ainfo) = (yyvsp[-2].ainfo);
 2064|      0|		}
 2065|      0|#line 2066 "gram.c"
 2066|      0|    break;
 2067|       |
 2068|      0|  case 50: /* v6addrlist_clients: IPV6ADDR ';'  */
  ------------------
  |  Branch (2068:3): [True: 0, False: 0]
  ------------------
 2069|      0|#line 411 "gram.y"
 2070|      0|                {
 2071|      0|			struct Clients *new = calloc(1, sizeof(struct Clients));
 2072|      0|			if (new == NULL) {
  ------------------
  |  Branch (2072:8): [True: 0, False: 0]
  ------------------
 2073|      0|				flog(LOG_CRIT, "calloc failed: %s", strerror(errno));
 2074|      0|				ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2075|      0|			}
 2076|       |
 2077|      0|			memcpy(&(new->Address), (yyvsp[-1].addr), sizeof(struct in6_addr));
 2078|      0|			new->ignored = 0;
 2079|      0|			(yyval.ainfo) = new;
 2080|      0|		}
 2081|      0|#line 2082 "gram.c"
 2082|      0|    break;
 2083|       |
 2084|      0|  case 51: /* v6addrlist_clients: NOT_IPV6ADDR ';'  */
  ------------------
  |  Branch (2084:3): [True: 0, False: 0]
  ------------------
 2085|      0|#line 423 "gram.y"
 2086|      0|                {
 2087|      0|			struct Clients *new = calloc(1, sizeof(struct Clients));
 2088|      0|			if (new == NULL) {
  ------------------
  |  Branch (2088:8): [True: 0, False: 0]
  ------------------
 2089|      0|				flog(LOG_CRIT, "calloc failed: %s", strerror(errno));
 2090|      0|				ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2091|      0|			}
 2092|       |
 2093|      0|			memcpy(&(new->Address), (yyvsp[-1].addr), sizeof(struct in6_addr));
 2094|      0|			new->ignored = 1;
 2095|      0|			(yyval.ainfo) = new;
 2096|      0|		}
 2097|      0|#line 2098 "gram.c"
 2098|      0|    break;
 2099|       |
 2100|      0|  case 52: /* v6addrlist_clients: v6addrlist_clients IPV6ADDR ';'  */
  ------------------
  |  Branch (2100:3): [True: 0, False: 0]
  ------------------
 2101|      0|#line 435 "gram.y"
 2102|      0|                {
 2103|      0|			struct Clients *new = calloc(1, sizeof(struct Clients));
 2104|      0|			if (new == NULL) {
  ------------------
  |  Branch (2104:8): [True: 0, False: 0]
  ------------------
 2105|      0|				flog(LOG_CRIT, "calloc failed: %s", strerror(errno));
 2106|      0|				ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2107|      0|			}
 2108|       |
 2109|      0|			memcpy(&(new->Address), (yyvsp[-1].addr), sizeof(struct in6_addr));
 2110|      0|			new->ignored = 0;
 2111|      0|			new->next = (yyvsp[-2].ainfo);
 2112|      0|			(yyval.ainfo) = new;
 2113|      0|		}
 2114|      0|#line 2115 "gram.c"
 2115|      0|    break;
 2116|       |
 2117|      0|  case 53: /* v6addrlist_clients: v6addrlist_clients NOT_IPV6ADDR ';'  */
  ------------------
  |  Branch (2117:3): [True: 0, False: 0]
  ------------------
 2118|      0|#line 448 "gram.y"
 2119|      0|                {
 2120|      0|			struct Clients *new = calloc(1, sizeof(struct Clients));
 2121|      0|			if (new == NULL) {
  ------------------
  |  Branch (2121:8): [True: 0, False: 0]
  ------------------
 2122|      0|				flog(LOG_CRIT, "calloc failed: %s", strerror(errno));
 2123|      0|				ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2124|      0|			}
 2125|       |
 2126|      0|			memcpy(&(new->Address), (yyvsp[-1].addr), sizeof(struct in6_addr));
 2127|      0|			new->ignored = 1;
 2128|      0|			new->next = (yyvsp[-2].ainfo);
 2129|      0|			(yyval.ainfo) = new;
 2130|      0|		}
 2131|      0|#line 2132 "gram.c"
 2132|      0|    break;
 2133|       |
 2134|      0|  case 54: /* rasrcaddresslist: T_RASRCADDRESS '{' v6addrlist_rasrcaddress '}' ';'  */
  ------------------
  |  Branch (2134:3): [True: 0, False: 0]
  ------------------
 2135|      0|#line 463 "gram.y"
 2136|      0|                {
 2137|      0|			(yyval.rasrcaddressinfo) = (yyvsp[-2].rasrcaddressinfo);
 2138|      0|		}
 2139|      0|#line 2140 "gram.c"
 2140|      0|    break;
 2141|       |
 2142|      0|  case 55: /* v6addrlist_rasrcaddress: IPV6ADDR ';'  */
  ------------------
  |  Branch (2142:3): [True: 0, False: 0]
  ------------------
 2143|      0|#line 469 "gram.y"
 2144|      0|                {
 2145|      0|			struct AdvRASrcAddress *new = calloc(1, sizeof(struct AdvRASrcAddress));
 2146|      0|			if (new == NULL) {
  ------------------
  |  Branch (2146:8): [True: 0, False: 0]
  ------------------
 2147|      0|				flog(LOG_CRIT, "calloc failed: %s", strerror(errno));
 2148|      0|				ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2149|      0|			}
 2150|       |
 2151|      0|			memcpy(&(new->address), (yyvsp[-1].addr), sizeof(struct in6_addr));
 2152|      0|			(yyval.rasrcaddressinfo) = new;
 2153|      0|		}
 2154|      0|#line 2155 "gram.c"
 2155|      0|    break;
 2156|       |
 2157|      0|  case 56: /* v6addrlist_rasrcaddress: v6addrlist_rasrcaddress IPV6ADDR ';'  */
  ------------------
  |  Branch (2157:3): [True: 0, False: 0]
  ------------------
 2158|      0|#line 480 "gram.y"
 2159|      0|                {
 2160|      0|			struct AdvRASrcAddress *new = calloc(1, sizeof(struct AdvRASrcAddress));
 2161|      0|			if (new == NULL) {
  ------------------
  |  Branch (2161:8): [True: 0, False: 0]
  ------------------
 2162|      0|				flog(LOG_CRIT, "calloc failed: %s", strerror(errno));
 2163|      0|				ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2164|      0|			}
 2165|       |
 2166|      0|			memcpy(&(new->address), (yyvsp[-1].addr), sizeof(struct in6_addr));
 2167|      0|			new->next = (yyvsp[-2].rasrcaddressinfo);
 2168|      0|			(yyval.rasrcaddressinfo) = new;
 2169|      0|		}
 2170|      0|#line 2171 "gram.c"
 2171|      0|    break;
 2172|       |
 2173|      0|  case 57: /* nat64prefixdef: nat64prefixhead optional_nat64prefixplist ';'  */
  ------------------
  |  Branch (2173:3): [True: 0, False: 0]
  ------------------
 2174|      0|#line 494 "gram.y"
 2175|      0|                {
 2176|      0|			if (nat64prefix) {
  ------------------
  |  Branch (2176:8): [True: 0, False: 0]
  ------------------
 2177|       |
 2178|      0|				if (nat64prefix->AdvValidLifetime > DFLT_NAT64MaxValidLifetime)
  ------------------
  |  |   68|      0|#define DFLT_NAT64MaxValidLifetime 65528 /* seconds */
  ------------------
  |  Branch (2178:9): [True: 0, False: 0]
  ------------------
 2179|      0|				{
 2180|      0|					flog(LOG_ERR, "AdvValidLifetime must be "
 2181|      0|						"smaller or equal to %d in %s, line %d",
 2182|      0|						DFLT_NAT64MaxValidLifetime, filename, num_lines);
  ------------------
  |  |   68|      0|#define DFLT_NAT64MaxValidLifetime 65528 /* seconds */
  ------------------
 2183|      0|					ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2184|      0|				}
 2185|      0|				nat64prefix->curr_validlft = nat64prefix->AdvValidLifetime;
 2186|      0|			}
 2187|      0|			(yyval.nat64pinfo) = nat64prefix;
 2188|      0|			nat64prefix = NULL;
 2189|      0|		}
 2190|      0|#line 2191 "gram.c"
 2191|      0|    break;
 2192|       |
 2193|      0|  case 58: /* nat64prefixhead: T_NAT64PREFIX IPV6ADDR '/' NUMBER  */
  ------------------
  |  Branch (2193:3): [True: 0, False: 0]
  ------------------
 2194|      0|#line 512 "gram.y"
 2195|      0|                {
 2196|      0|			struct in6_addr zeroaddr;
 2197|      0|			memset(&zeroaddr, 0, sizeof(zeroaddr));
 2198|       |
 2199|      0|			if (!memcmp((yyvsp[-2].addr), &zeroaddr, sizeof(struct in6_addr))) {
  ------------------
  |  Branch (2199:8): [True: 0, False: 0]
  ------------------
 2200|      0|				flog(LOG_ERR, "invalid all-zeros nat64prefix in %s, line %d", filename, num_lines);
 2201|      0|				ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2202|      0|			}
 2203|       |
 2204|      0|			nat64prefix = malloc(sizeof(struct NAT64Prefix));
 2205|       |
 2206|      0|			if (nat64prefix == NULL) {
  ------------------
  |  Branch (2206:8): [True: 0, False: 0]
  ------------------
 2207|      0|				flog(LOG_CRIT, "malloc failed: %s", strerror(errno));
 2208|      0|				ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2209|      0|			}
 2210|       |
 2211|      0|			nat64prefix_init_defaults(nat64prefix, iface);
 2212|       |
 2213|      0|			if ((yyvsp[0].num) > MAX_PrefixLen)
  ------------------
  |  |  157|      0|#define MAX_PrefixLen 128
  ------------------
  |  Branch (2213:8): [True: 0, False: 0]
  ------------------
 2214|      0|			{
 2215|      0|				flog(LOG_ERR, "invalid prefix length in %s, line %d", filename, num_lines);
 2216|      0|				ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2217|      0|			}
 2218|       |
 2219|       |			/* RFC8781, section 4: only prefix lengths of 96, 64, 56, 48, 40, and 32 bits are valid */
 2220|      0|			switch ((yyvsp[0].num)) {
 2221|      0|			case 32:
  ------------------
  |  Branch (2221:4): [True: 0, False: 0]
  ------------------
 2222|      0|			case 40:
  ------------------
  |  Branch (2222:4): [True: 0, False: 0]
  ------------------
 2223|      0|			case 48:
  ------------------
  |  Branch (2223:4): [True: 0, False: 0]
  ------------------
 2224|      0|			case 56:
  ------------------
  |  Branch (2224:4): [True: 0, False: 0]
  ------------------
 2225|      0|			case 64:
  ------------------
  |  Branch (2225:4): [True: 0, False: 0]
  ------------------
 2226|      0|			case 96:
  ------------------
  |  Branch (2226:4): [True: 0, False: 0]
  ------------------
 2227|      0|				break;
 2228|      0|			default:
  ------------------
  |  Branch (2228:4): [True: 0, False: 0]
  ------------------
 2229|      0|				flog(LOG_ERR, "only /96, /64, /56, /48, /40 and /32 are allowed for "
 2230|      0|						"nat64prefix in %s:%d", filename, num_lines);
 2231|      0|				ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2232|      0|			}
 2233|      0|			nat64prefix->PrefixLen = (yyvsp[0].num);
 2234|       |
 2235|      0|			memcpy(&nat64prefix->Prefix, (yyvsp[-2].addr), sizeof(struct in6_addr));
 2236|      0|		}
 2237|      0|#line 2238 "gram.c"
 2238|      0|    break;
 2239|       |
 2240|      0|  case 64: /* nat64prefixparms: T_AdvValidLifetime NUMBER ';'  */
  ------------------
  |  Branch (2240:3): [True: 0, False: 0]
  ------------------
 2241|      0|#line 566 "gram.y"
 2242|      0|                {
 2243|      0|			if ((yyvsp[-1].num) > DFLT_NAT64MaxValidLifetime)
  ------------------
  |  |   68|      0|#define DFLT_NAT64MaxValidLifetime 65528 /* seconds */
  ------------------
  |  Branch (2243:8): [True: 0, False: 0]
  ------------------
 2244|      0|			{
 2245|      0|				flog(LOG_ERR, "maximum for NAT64 AdvValidLifetime is %d (in %s, line %d)",
 2246|      0|					DFLT_NAT64MaxValidLifetime, filename, num_lines);
  ------------------
  |  |   68|      0|#define DFLT_NAT64MaxValidLifetime 65528 /* seconds */
  ------------------
 2247|      0|				ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2248|      0|			}
 2249|      0|			if (nat64prefix) {
  ------------------
  |  Branch (2249:8): [True: 0, False: 0]
  ------------------
 2250|      0|				nat64prefix->AdvValidLifetime = (yyvsp[-1].num);
 2251|      0|			}
 2252|      0|		}
 2253|      0|#line 2254 "gram.c"
 2254|      0|    break;
 2255|       |
 2256|      0|  case 65: /* ignoreprefixlist: T_AUTOIGNOREPREFIX '{' ignoreprefixes '}' ';'  */
  ------------------
  |  Branch (2256:3): [True: 0, False: 0]
  ------------------
 2257|      0|#line 580 "gram.y"
 2258|      0|                {
 2259|      0|			(yyval.igpinfo) = (yyvsp[-2].igpinfo);
 2260|      0|		}
 2261|      0|#line 2262 "gram.c"
 2262|      0|    break;
 2263|       |
 2264|      0|  case 66: /* ignoreprefixes: IPV6ADDR '/' NUMBER ';'  */
  ------------------
  |  Branch (2264:3): [True: 0, False: 0]
  ------------------
 2265|      0|#line 586 "gram.y"
 2266|      0|                {
 2267|      0|			struct AutogenIgnorePrefix *new = calloc(1, sizeof(struct AutogenIgnorePrefix));
 2268|      0|			if (new == NULL) {
  ------------------
  |  Branch (2268:8): [True: 0, False: 0]
  ------------------
 2269|      0|				flog(LOG_CRIT, "calloc failed: %s", strerror(errno));
 2270|      0|				ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2271|      0|			}
 2272|       |
 2273|      0|			memcpy(&(new->Prefix), (yyvsp[-3].addr), sizeof(struct in6_addr));
 2274|       |
 2275|       |			// Create subnet mask from CIDR notation
 2276|      0|			int fullOctets = (yyvsp[-1].num) / 8;
 2277|      0|			for (int i = 0; i < fullOctets; ++i) {
  ------------------
  |  Branch (2277:20): [True: 0, False: 0]
  ------------------
 2278|      0|				new->Mask.s6_addr[i] = 0xff;
 2279|      0|			}
 2280|       |
 2281|      0|			if (fullOctets != 16) {
  ------------------
  |  Branch (2281:8): [True: 0, False: 0]
  ------------------
 2282|      0|				new->Mask.s6_addr[fullOctets] = ~(1 << (8 - (yyvsp[-1].num) % 8)) + 1;
 2283|      0|			}
 2284|       |
 2285|      0|			(yyval.igpinfo) = new;
 2286|      0|		}
 2287|      0|#line 2288 "gram.c"
 2288|      0|    break;
 2289|       |
 2290|      0|  case 67: /* ignoreprefixes: ignoreprefixes IPV6ADDR '/' NUMBER ';'  */
  ------------------
  |  Branch (2290:3): [True: 0, False: 0]
  ------------------
 2291|      0|#line 608 "gram.y"
 2292|      0|                {
 2293|      0|			struct AutogenIgnorePrefix *new = calloc(1, sizeof(struct AutogenIgnorePrefix));
 2294|      0|			if (new == NULL) {
  ------------------
  |  Branch (2294:8): [True: 0, False: 0]
  ------------------
 2295|      0|				flog(LOG_CRIT, "calloc failed: %s", strerror(errno));
 2296|      0|				ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2297|      0|			}
 2298|       |
 2299|      0|			memcpy(&(new->Prefix), (yyvsp[-3].addr), sizeof(struct in6_addr));
 2300|       |
 2301|       |			// Create subnet mask from CIDR notation
 2302|      0|			int fullOctets = (yyvsp[-1].num) / 8;
 2303|      0|			for (int i = 0; i < fullOctets; ++i) {
  ------------------
  |  Branch (2303:20): [True: 0, False: 0]
  ------------------
 2304|      0|				new->Mask.s6_addr[i] = 0xff;
 2305|      0|			}
 2306|       |
 2307|      0|			if (fullOctets != 16) {
  ------------------
  |  Branch (2307:8): [True: 0, False: 0]
  ------------------
 2308|      0|				new->Mask.s6_addr[fullOctets] = ~(1 << (8 - (yyvsp[-1].num) % 8)) + 1;
 2309|      0|			}
 2310|       |
 2311|      0|			new->next = (yyvsp[-4].igpinfo);
 2312|      0|			(yyval.igpinfo) = new;
 2313|      0|		}
 2314|      0|#line 2315 "gram.c"
 2315|      0|    break;
 2316|       |
 2317|      0|  case 68: /* prefixdef: prefixhead optional_prefixplist ';'  */
  ------------------
  |  Branch (2317:3): [True: 0, False: 0]
  ------------------
 2318|      0|#line 633 "gram.y"
 2319|      0|                {
 2320|      0|			if (prefix) {
  ------------------
  |  Branch (2320:8): [True: 0, False: 0]
  ------------------
 2321|       |
 2322|      0|				if (prefix->AdvPreferredLifetime > prefix->AdvValidLifetime)
  ------------------
  |  Branch (2322:9): [True: 0, False: 0]
  ------------------
 2323|      0|				{
 2324|      0|					flog(LOG_ERR, "AdvValidLifetime must be "
 2325|      0|						"greater than or equal to AdvPreferredLifetime in %s, line %d",
 2326|      0|						filename, num_lines);
 2327|      0|					ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2328|      0|				}
 2329|       |
 2330|      0|				if ( prefix->if6[0] )
  ------------------
  |  Branch (2330:10): [True: 0, False: 0]
  ------------------
 2331|      0|				{
 2332|      0|					if (prefix->PrefixLen != 64) {
  ------------------
  |  Branch (2332:10): [True: 0, False: 0]
  ------------------
 2333|      0|						flog(LOG_ERR, "only /64 is allowed with Base6Interface.  %s:%d", filename, num_lines);
 2334|      0|						ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2335|      0|					}
 2336|      0|				}
 2337|      0|			}
 2338|      0|			(yyval.pinfo) = prefix;
 2339|      0|			prefix = NULL;
 2340|      0|		}
 2341|      0|#line 2342 "gram.c"
 2342|      0|    break;
 2343|       |
 2344|      0|  case 69: /* prefixhead: T_PREFIX IPV6ADDR '/' NUMBER  */
  ------------------
  |  Branch (2344:3): [True: 0, False: 0]
  ------------------
 2345|      0|#line 658 "gram.y"
 2346|      0|                {
 2347|      0|			struct in6_addr zeroaddr;
 2348|      0|			memset(&zeroaddr, 0, sizeof(zeroaddr));
 2349|       |
 2350|       |#ifndef HAVE_IFADDRS_H	// all-zeros prefix is a way to tell us to get the prefix from the interface config
 2351|       |			if (!memcmp((yyvsp[-2].addr), &zeroaddr, sizeof(struct in6_addr))) {
 2352|       |				flog(LOG_WARNING, "invalid all-zeros prefix in %s, line %d", filename, num_lines);
 2353|       |			}
 2354|       |#endif
 2355|      0|			prefix = malloc(sizeof(struct AdvPrefix));
 2356|       |
 2357|      0|			if (prefix == NULL) {
  ------------------
  |  Branch (2357:8): [True: 0, False: 0]
  ------------------
 2358|      0|				flog(LOG_CRIT, "malloc failed: %s", strerror(errno));
 2359|      0|				ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2360|      0|			}
 2361|       |
 2362|      0|			prefix_init_defaults(prefix);
 2363|       |
 2364|      0|			if ((yyvsp[0].num) > MAX_PrefixLen)
  ------------------
  |  |  157|      0|#define MAX_PrefixLen 128
  ------------------
  |  Branch (2364:8): [True: 0, False: 0]
  ------------------
 2365|      0|			{
 2366|      0|				flog(LOG_ERR, "invalid prefix length in %s, line %d", filename, num_lines);
 2367|      0|				ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2368|      0|			}
 2369|       |
 2370|      0|			prefix->PrefixLen = (yyvsp[0].num);
 2371|       |
 2372|      0|			memcpy(&prefix->Prefix, (yyvsp[-2].addr), sizeof(struct in6_addr));
 2373|      0|		}
 2374|      0|#line 2375 "gram.c"
 2375|      0|    break;
 2376|       |
 2377|      0|  case 75: /* prefixparms: T_AdvOnLink SWITCH ';'  */
  ------------------
  |  Branch (2377:3): [True: 0, False: 0]
  ------------------
 2378|      0|#line 698 "gram.y"
 2379|      0|                {
 2380|      0|			if (prefix) {
  ------------------
  |  Branch (2380:8): [True: 0, False: 0]
  ------------------
 2381|      0|				prefix->AdvOnLinkFlag = (yyvsp[-1].num);
 2382|      0|			}
 2383|      0|		}
 2384|      0|#line 2385 "gram.c"
 2385|      0|    break;
 2386|       |
 2387|      0|  case 76: /* prefixparms: T_AdvAutonomous SWITCH ';'  */
  ------------------
  |  Branch (2387:3): [True: 0, False: 0]
  ------------------
 2388|      0|#line 704 "gram.y"
 2389|      0|                {
 2390|      0|			if (prefix) {
  ------------------
  |  Branch (2390:8): [True: 0, False: 0]
  ------------------
 2391|      0|				prefix->AdvAutonomousFlag = (yyvsp[-1].num);
 2392|      0|			}
 2393|      0|		}
 2394|      0|#line 2395 "gram.c"
 2395|      0|    break;
 2396|       |
 2397|      0|  case 77: /* prefixparms: T_AdvRouterAddr SWITCH ';'  */
  ------------------
  |  Branch (2397:3): [True: 0, False: 0]
  ------------------
 2398|      0|#line 710 "gram.y"
 2399|      0|                {
 2400|      0|			if (prefix) {
  ------------------
  |  Branch (2400:8): [True: 0, False: 0]
  ------------------
 2401|      0|				prefix->AdvRouterAddr = (yyvsp[-1].num);
 2402|      0|			}
 2403|      0|		}
 2404|      0|#line 2405 "gram.c"
 2405|      0|    break;
 2406|       |
 2407|      0|  case 78: /* prefixparms: T_AdvValidLifetime number_or_infinity ';'  */
  ------------------
  |  Branch (2407:3): [True: 0, False: 0]
  ------------------
 2408|      0|#line 716 "gram.y"
 2409|      0|                {
 2410|      0|			if (prefix) {
  ------------------
  |  Branch (2410:8): [True: 0, False: 0]
  ------------------
 2411|      0|				prefix->AdvValidLifetime = (yyvsp[-1].num);
 2412|      0|				prefix->curr_validlft = (yyvsp[-1].num);
 2413|      0|			}
 2414|      0|		}
 2415|      0|#line 2416 "gram.c"
 2416|      0|    break;
 2417|       |
 2418|      0|  case 79: /* prefixparms: T_AdvPreferredLifetime number_or_infinity ';'  */
  ------------------
  |  Branch (2418:3): [True: 0, False: 0]
  ------------------
 2419|      0|#line 723 "gram.y"
 2420|      0|                {
 2421|      0|			if (prefix) {
  ------------------
  |  Branch (2421:8): [True: 0, False: 0]
  ------------------
 2422|      0|				prefix->AdvPreferredLifetime = (yyvsp[-1].num);
 2423|      0|				prefix->curr_preferredlft = (yyvsp[-1].num);
 2424|      0|			}
 2425|      0|		}
 2426|      0|#line 2427 "gram.c"
 2427|      0|    break;
 2428|       |
 2429|      0|  case 80: /* prefixparms: T_DeprecatePrefix SWITCH ';'  */
  ------------------
  |  Branch (2429:3): [True: 0, False: 0]
  ------------------
 2430|      0|#line 730 "gram.y"
 2431|      0|                {
 2432|      0|			if (prefix) {
  ------------------
  |  Branch (2432:8): [True: 0, False: 0]
  ------------------
 2433|      0|				prefix->DeprecatePrefixFlag = (yyvsp[-1].num);
 2434|      0|			}
 2435|      0|		}
 2436|      0|#line 2437 "gram.c"
 2437|      0|    break;
 2438|       |
 2439|      0|  case 81: /* prefixparms: T_DecrementLifetimes SWITCH ';'  */
  ------------------
  |  Branch (2439:3): [True: 0, False: 0]
  ------------------
 2440|      0|#line 736 "gram.y"
 2441|      0|                {
 2442|      0|			if (prefix) {
  ------------------
  |  Branch (2442:8): [True: 0, False: 0]
  ------------------
 2443|      0|				prefix->DecrementLifetimesFlag = (yyvsp[-1].num);
 2444|      0|			}
 2445|      0|		}
 2446|      0|#line 2447 "gram.c"
 2447|      0|    break;
 2448|       |
 2449|      0|  case 82: /* prefixparms: T_Base6Interface name ';'  */
  ------------------
  |  Branch (2449:3): [True: 0, False: 0]
  ------------------
 2450|      0|#line 742 "gram.y"
 2451|      0|                {
 2452|       |#ifndef HAVE_IFADDRS_H
 2453|       |			flog(LOG_ERR, "Base6Interface not supported in %s, line %d", filename, num_lines);
 2454|       |			ABORT;
 2455|       |#else
 2456|      0|			if (prefix) {
  ------------------
  |  Branch (2456:8): [True: 0, False: 0]
  ------------------
 2457|      0|				dlog(LOG_DEBUG, 4, "using prefixes on interface %s for prefixes on interface %s", (yyvsp[-1].str), iface->props.name);
 2458|      0|				memset(&prefix->if6, 0, sizeof(prefix->if6));
 2459|      0|				strlcpy(prefix->if6, (yyvsp[-1].str), sizeof(prefix->if6));
 2460|      0|			}
 2461|      0|#endif
 2462|      0|		}
 2463|      0|#line 2464 "gram.c"
 2464|      0|    break;
 2465|       |
 2466|      0|  case 83: /* prefixparms: T_Base6to4Interface name ';'  */
  ------------------
  |  Branch (2466:3): [True: 0, False: 0]
  ------------------
 2467|      0|#line 756 "gram.y"
 2468|      0|                {
 2469|       |#ifndef HAVE_IFADDRS_H
 2470|       |			flog(LOG_ERR, "Base6to4Interface not supported in %s, line %d", filename, num_lines);
 2471|       |			ABORT;
 2472|       |#else
 2473|      0|			if (prefix) {
  ------------------
  |  Branch (2473:8): [True: 0, False: 0]
  ------------------
 2474|      0|				dlog(LOG_DEBUG, 4, "using interface %s for 6to4 prefixes on interface %s", (yyvsp[-1].str), iface->props.name);
 2475|      0|				memset(&prefix->if6to4, 0, sizeof(prefix->if6to4));
 2476|      0|				strlcpy(prefix->if6to4, (yyvsp[-1].str), sizeof(prefix->if6to4));
 2477|      0|			}
 2478|      0|#endif
 2479|      0|		}
 2480|      0|#line 2481 "gram.c"
 2481|      0|    break;
 2482|       |
 2483|      0|  case 84: /* routedef: routehead '{' optional_routeplist '}' ';'  */
  ------------------
  |  Branch (2483:3): [True: 0, False: 0]
  ------------------
 2484|      0|#line 771 "gram.y"
 2485|      0|                {
 2486|      0|			(yyval.rinfo) = route;
 2487|      0|			route = NULL;
 2488|      0|		}
 2489|      0|#line 2490 "gram.c"
 2490|      0|    break;
 2491|       |
 2492|      0|  case 85: /* routehead: T_ROUTE IPV6ADDR '/' NUMBER  */
  ------------------
  |  Branch (2492:3): [True: 0, False: 0]
  ------------------
 2493|      0|#line 779 "gram.y"
 2494|      0|                {
 2495|      0|			route = malloc(sizeof(struct AdvRoute));
 2496|       |
 2497|      0|			if (route == NULL) {
  ------------------
  |  Branch (2497:8): [True: 0, False: 0]
  ------------------
 2498|      0|				flog(LOG_CRIT, "malloc failed: %s", strerror(errno));
 2499|      0|				ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2500|      0|			}
 2501|       |
 2502|      0|			route_init_defaults(route, iface);
 2503|       |
 2504|      0|			if ((yyvsp[0].num) > MAX_PrefixLen)
  ------------------
  |  |  157|      0|#define MAX_PrefixLen 128
  ------------------
  |  Branch (2504:8): [True: 0, False: 0]
  ------------------
 2505|      0|			{
 2506|      0|				flog(LOG_ERR, "invalid route prefix length in %s, line %d", filename, num_lines);
 2507|      0|				ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2508|      0|			}
 2509|       |
 2510|      0|			route->PrefixLen = (yyvsp[0].num);
 2511|       |
 2512|      0|			memcpy(&route->Prefix, (yyvsp[-2].addr), sizeof(struct in6_addr));
 2513|      0|		}
 2514|      0|#line 2515 "gram.c"
 2515|      0|    break;
 2516|       |
 2517|      0|  case 90: /* routeparms: T_AdvRoutePreference SIGNEDNUMBER ';'  */
  ------------------
  |  Branch (2517:3): [True: 0, False: 0]
  ------------------
 2518|      0|#line 812 "gram.y"
 2519|      0|                {
 2520|      0|			route->AdvRoutePreference = (yyvsp[-1].snum);
 2521|      0|		}
 2522|      0|#line 2523 "gram.c"
 2523|      0|    break;
 2524|       |
 2525|      0|  case 91: /* routeparms: T_AdvRouteLifetime number_or_infinity ';'  */
  ------------------
  |  Branch (2525:3): [True: 0, False: 0]
  ------------------
 2526|      0|#line 816 "gram.y"
 2527|      0|                {
 2528|      0|			route->AdvRouteLifetime = (yyvsp[-1].num);
 2529|      0|		}
 2530|      0|#line 2531 "gram.c"
 2531|      0|    break;
 2532|       |
 2533|      0|  case 92: /* routeparms: T_RemoveRoute SWITCH ';'  */
  ------------------
  |  Branch (2533:3): [True: 0, False: 0]
  ------------------
 2534|      0|#line 820 "gram.y"
 2535|      0|                {
 2536|      0|			route->RemoveRouteFlag = (yyvsp[-1].num);
 2537|      0|		}
 2538|      0|#line 2539 "gram.c"
 2539|      0|    break;
 2540|       |
 2541|      0|  case 93: /* rdnssdef: rdnsshead '{' optional_rdnssplist '}' ';'  */
  ------------------
  |  Branch (2541:3): [True: 0, False: 0]
  ------------------
 2542|      0|#line 826 "gram.y"
 2543|      0|                {
 2544|      0|			(yyval.rdnssinfo) = rdnss;
 2545|      0|			rdnss = NULL;
 2546|      0|		}
 2547|      0|#line 2548 "gram.c"
 2548|      0|    break;
 2549|       |
 2550|      0|  case 96: /* rdnssaddr: IPV6ADDR  */
  ------------------
  |  Branch (2550:3): [True: 0, False: 0]
  ------------------
 2551|      0|#line 837 "gram.y"
 2552|      0|                {
 2553|      0|			if (!rdnss) {
  ------------------
  |  Branch (2553:8): [True: 0, False: 0]
  ------------------
 2554|       |				/* first IP found */
 2555|      0|				rdnss = malloc(sizeof(struct AdvRDNSS));
 2556|       |
 2557|      0|				if (rdnss == NULL) {
  ------------------
  |  Branch (2557:9): [True: 0, False: 0]
  ------------------
 2558|      0|					flog(LOG_CRIT, "malloc failed: %s", strerror(errno));
 2559|      0|					ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2560|      0|				}
 2561|       |
 2562|      0|				rdnss_init_defaults(rdnss, iface);
 2563|      0|			}
 2564|       |
 2565|      0|			rdnss->AdvRDNSSNumber++;
 2566|      0|			if (rdnss->AdvRDNSSNumber > 127) {
  ------------------
  |  Branch (2566:8): [True: 0, False: 0]
  ------------------
 2567|      0|				flog(LOG_CRIT, "Too many RDNSS servers specified - upper limit is 127 based on RDNSSI length field being uint8, RFC8106, section 5.1");
 2568|      0|				ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2569|      0|			}
 2570|      0|			rdnss->AdvRDNSSAddr =
 2571|      0|				realloc(rdnss->AdvRDNSSAddr,
 2572|      0|					rdnss->AdvRDNSSNumber * sizeof(struct in6_addr));
 2573|      0|			if (rdnss->AdvRDNSSAddr == NULL) {
  ------------------
  |  Branch (2573:8): [True: 0, False: 0]
  ------------------
 2574|      0|				flog(LOG_CRIT, "realloc failed: %s", strerror(errno));
 2575|      0|				ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2576|      0|			}
 2577|      0|			memcpy(&rdnss->AdvRDNSSAddr[rdnss->AdvRDNSSNumber - 1], (yyvsp[0].addr), sizeof(struct in6_addr));
 2578|      0|		}
 2579|      0|#line 2580 "gram.c"
 2580|      0|    break;
 2581|       |
 2582|      0|  case 97: /* rdnsshead: T_RDNSS rdnssaddrs  */
  ------------------
  |  Branch (2582:3): [True: 0, False: 0]
  ------------------
 2583|      0|#line 867 "gram.y"
 2584|      0|                {
 2585|      0|			if (!rdnss) {
  ------------------
  |  Branch (2585:8): [True: 0, False: 0]
  ------------------
 2586|      0|				flog(LOG_CRIT, "no address specified in RDNSS section");
 2587|      0|				ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2588|      0|			}
 2589|      0|		}
 2590|      0|#line 2591 "gram.c"
 2591|      0|    break;
 2592|       |
 2593|      0|  case 102: /* rdnssparms: T_AdvRDNSSPreference NUMBER ';'  */
  ------------------
  |  Branch (2593:3): [True: 0, False: 0]
  ------------------
 2594|      0|#line 885 "gram.y"
 2595|      0|                {
 2596|      0|			flog(LOG_WARNING, "ignoring deprecated RDNSS preference");
 2597|      0|		}
 2598|      0|#line 2599 "gram.c"
 2599|      0|    break;
 2600|       |
 2601|      0|  case 103: /* rdnssparms: T_AdvRDNSSOpenFlag SWITCH ';'  */
  ------------------
  |  Branch (2601:3): [True: 0, False: 0]
  ------------------
 2602|      0|#line 889 "gram.y"
 2603|      0|                {
 2604|      0|			flog(LOG_WARNING, "ignoring deprecated RDNSS open flag");
 2605|      0|		}
 2606|      0|#line 2607 "gram.c"
 2607|      0|    break;
 2608|       |
 2609|      0|  case 104: /* rdnssparms: T_AdvRDNSSLifetime number_or_infinity ';'  */
  ------------------
  |  Branch (2609:3): [True: 0, False: 0]
  ------------------
 2610|      0|#line 893 "gram.y"
 2611|      0|                {
 2612|      0|			rdnss->AdvRDNSSLifetime = (yyvsp[-1].num);
 2613|      0|		}
 2614|      0|#line 2615 "gram.c"
 2615|      0|    break;
 2616|       |
 2617|      0|  case 105: /* rdnssparms: T_FlushRDNSS SWITCH ';'  */
  ------------------
  |  Branch (2617:3): [True: 0, False: 0]
  ------------------
 2618|      0|#line 897 "gram.y"
 2619|      0|                {
 2620|      0|			rdnss->FlushRDNSSFlag = (yyvsp[-1].num);
 2621|      0|		}
 2622|      0|#line 2623 "gram.c"
 2623|      0|    break;
 2624|       |
 2625|      0|  case 106: /* dnssldef: dnsslhead '{' optional_dnsslplist '}' ';'  */
  ------------------
  |  Branch (2625:3): [True: 0, False: 0]
  ------------------
 2626|      0|#line 903 "gram.y"
 2627|      0|                {
 2628|      0|			(yyval.dnsslinfo) = dnssl;
 2629|      0|			dnssl = NULL;
 2630|      0|		}
 2631|      0|#line 2632 "gram.c"
 2632|      0|    break;
 2633|       |
 2634|      0|  case 109: /* dnsslsuffix: STRING  */
  ------------------
  |  Branch (2634:3): [True: 0, False: 0]
  ------------------
 2635|      0|#line 914 "gram.y"
 2636|      0|                {
 2637|      0|			char *ch;
 2638|      0|			for (ch = (yyvsp[0].str);*ch != '\0';ch++) {
  ------------------
  |  Branch (2638:29): [True: 0, False: 0]
  ------------------
 2639|      0|				if (*ch >= 'A' && *ch <= 'Z')
  ------------------
  |  Branch (2639:9): [True: 0, False: 0]
  |  Branch (2639:23): [True: 0, False: 0]
  ------------------
 2640|      0|					continue;
 2641|      0|				if (*ch >= 'a' && *ch <= 'z')
  ------------------
  |  Branch (2641:9): [True: 0, False: 0]
  |  Branch (2641:23): [True: 0, False: 0]
  ------------------
 2642|      0|					continue;
 2643|      0|				if (*ch >= '0' && *ch <= '9')
  ------------------
  |  Branch (2643:9): [True: 0, False: 0]
  |  Branch (2643:23): [True: 0, False: 0]
  ------------------
 2644|      0|					continue;
 2645|      0|				if (*ch == '-' || *ch == '.')
  ------------------
  |  Branch (2645:9): [True: 0, False: 0]
  |  Branch (2645:23): [True: 0, False: 0]
  ------------------
 2646|      0|					continue;
 2647|       |
 2648|      0|				flog(LOG_CRIT, "invalid domain suffix specified");
 2649|      0|				ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2650|      0|			}
 2651|       |
 2652|      0|			if (!dnssl) {
  ------------------
  |  Branch (2652:8): [True: 0, False: 0]
  ------------------
 2653|       |				/* first domain found */
 2654|      0|				dnssl = malloc(sizeof(struct AdvDNSSL));
 2655|       |
 2656|      0|				if (dnssl == NULL) {
  ------------------
  |  Branch (2656:9): [True: 0, False: 0]
  ------------------
 2657|      0|					flog(LOG_CRIT, "malloc failed: %s", strerror(errno));
 2658|      0|					ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2659|      0|				}
 2660|       |
 2661|      0|				dnssl_init_defaults(dnssl, iface);
 2662|      0|			}
 2663|       |
 2664|      0|			dnssl->AdvDNSSLNumber++;
 2665|      0|			dnssl->AdvDNSSLSuffixes =
 2666|      0|				realloc(dnssl->AdvDNSSLSuffixes,
 2667|      0|					dnssl->AdvDNSSLNumber * sizeof(char*));
 2668|      0|			if (dnssl->AdvDNSSLSuffixes == NULL) {
  ------------------
  |  Branch (2668:8): [True: 0, False: 0]
  ------------------
 2669|      0|				flog(LOG_CRIT, "realloc failed: %s", strerror(errno));
 2670|      0|				ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2671|      0|			}
 2672|       |
 2673|      0|			dnssl->AdvDNSSLSuffixes[dnssl->AdvDNSSLNumber - 1] = strdup((yyvsp[0].str));
 2674|      0|		}
 2675|      0|#line 2676 "gram.c"
 2676|      0|    break;
 2677|       |
 2678|      0|  case 110: /* dnsslhead: T_DNSSL dnsslsuffixes  */
  ------------------
  |  Branch (2678:3): [True: 0, False: 0]
  ------------------
 2679|      0|#line 956 "gram.y"
 2680|      0|                {
 2681|      0|			if (!dnssl) {
  ------------------
  |  Branch (2681:8): [True: 0, False: 0]
  ------------------
 2682|      0|				flog(LOG_CRIT, "no domain specified in DNSSL section");
 2683|      0|				ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2684|      0|			}
 2685|      0|		}
 2686|      0|#line 2687 "gram.c"
 2687|      0|    break;
 2688|       |
 2689|      0|  case 115: /* dnsslparms: T_AdvDNSSLLifetime number_or_infinity ';'  */
  ------------------
  |  Branch (2689:3): [True: 0, False: 0]
  ------------------
 2690|      0|#line 974 "gram.y"
 2691|      0|                {
 2692|      0|			dnssl->AdvDNSSLLifetime = (yyvsp[-1].num);
 2693|       |
 2694|      0|		}
 2695|      0|#line 2696 "gram.c"
 2696|      0|    break;
 2697|       |
 2698|      0|  case 116: /* dnsslparms: T_FlushDNSSL SWITCH ';'  */
  ------------------
  |  Branch (2698:3): [True: 0, False: 0]
  ------------------
 2699|      0|#line 979 "gram.y"
 2700|      0|                {
 2701|      0|			dnssl->FlushDNSSLFlag = (yyvsp[-1].num);
 2702|      0|		}
 2703|      0|#line 2704 "gram.c"
 2704|      0|    break;
 2705|       |
 2706|      0|  case 117: /* lowpancodef: lowpancohead '{' optional_lowpancoplist '}' ';'  */
  ------------------
  |  Branch (2706:3): [True: 0, False: 0]
  ------------------
 2707|      0|#line 985 "gram.y"
 2708|      0|                {
 2709|      0|			(yyval.lowpancoinfo) = lowpanco;
 2710|      0|			lowpanco = NULL;
 2711|      0|		}
 2712|      0|#line 2713 "gram.c"
 2713|      0|    break;
 2714|       |
 2715|      0|  case 118: /* lowpancohead: T_LOWPANCO  */
  ------------------
  |  Branch (2715:3): [True: 0, False: 0]
  ------------------
 2716|      0|#line 992 "gram.y"
 2717|      0|                {
 2718|      0|			lowpanco = malloc(sizeof(struct AdvLowpanCo));
 2719|       |
 2720|      0|			if (lowpanco == NULL) {
  ------------------
  |  Branch (2720:8): [True: 0, False: 0]
  ------------------
 2721|      0|				flog(LOG_CRIT, "malloc failed: %s", strerror(errno));
 2722|      0|				ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2723|      0|			}
 2724|       |
 2725|      0|			memset(lowpanco, 0, sizeof(struct AdvLowpanCo));
 2726|      0|		}
 2727|      0|#line 2728 "gram.c"
 2728|      0|    break;
 2729|       |
 2730|      0|  case 123: /* lowpancoparms: T_AdvContextLength NUMBER ';'  */
  ------------------
  |  Branch (2730:3): [True: 0, False: 0]
  ------------------
 2731|      0|#line 1013 "gram.y"
 2732|      0|                {
 2733|      0|			lowpanco->ContextLength = (yyvsp[-1].num);
 2734|      0|		}
 2735|      0|#line 2736 "gram.c"
 2736|      0|    break;
 2737|       |
 2738|      0|  case 124: /* lowpancoparms: T_AdvContextCompressionFlag SWITCH ';'  */
  ------------------
  |  Branch (2738:3): [True: 0, False: 0]
  ------------------
 2739|      0|#line 1017 "gram.y"
 2740|      0|                {
 2741|      0|			lowpanco->ContextCompressionFlag = (yyvsp[-1].num);
 2742|      0|		}
 2743|      0|#line 2744 "gram.c"
 2744|      0|    break;
 2745|       |
 2746|      0|  case 125: /* lowpancoparms: T_AdvContextID NUMBER ';'  */
  ------------------
  |  Branch (2746:3): [True: 0, False: 0]
  ------------------
 2747|      0|#line 1021 "gram.y"
 2748|      0|                {
 2749|      0|			lowpanco->AdvContextID = (yyvsp[-1].num);
 2750|      0|		}
 2751|      0|#line 2752 "gram.c"
 2752|      0|    break;
 2753|       |
 2754|      0|  case 126: /* lowpancoparms: T_AdvLifeTime NUMBER ';'  */
  ------------------
  |  Branch (2754:3): [True: 0, False: 0]
  ------------------
 2755|      0|#line 1025 "gram.y"
 2756|      0|                {
 2757|      0|			lowpanco->AdvLifeTime = (yyvsp[-1].num);
 2758|      0|		}
 2759|      0|#line 2760 "gram.c"
 2760|      0|    break;
 2761|       |
 2762|      0|  case 127: /* abrodef: abrohead '{' optional_abroplist '}' ';'  */
  ------------------
  |  Branch (2762:3): [True: 0, False: 0]
  ------------------
 2763|      0|#line 1031 "gram.y"
 2764|      0|                {
 2765|      0|			(yyval.abroinfo) = abro;
 2766|      0|			abro = NULL;
 2767|      0|		}
 2768|      0|#line 2769 "gram.c"
 2769|      0|    break;
 2770|       |
 2771|      0|  case 130: /* abrohead_new: T_ABRO IPV6ADDR  */
  ------------------
  |  Branch (2771:3): [True: 0, False: 0]
  ------------------
 2772|      0|#line 1040 "gram.y"
 2773|      0|                {
 2774|      0|			abro = malloc(sizeof(struct AdvAbro));
 2775|       |
 2776|      0|			if (abro == NULL) {
  ------------------
  |  Branch (2776:8): [True: 0, False: 0]
  ------------------
 2777|      0|				flog(LOG_CRIT, "malloc failed: %s", strerror(errno));
 2778|      0|				ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2779|      0|			}
 2780|       |
 2781|      0|			memset(abro, 0, sizeof(struct AdvAbro));
 2782|      0|			memcpy(&abro->LBRaddress, (yyvsp[0].addr), sizeof(struct in6_addr));
 2783|      0|		}
 2784|      0|#line 2785 "gram.c"
 2785|      0|    break;
 2786|       |
 2787|      0|  case 131: /* abrohead_dep: T_ABRO IPV6ADDR '/' NUMBER  */
  ------------------
  |  Branch (2787:3): [True: 0, False: 0]
  ------------------
 2788|      0|#line 1054 "gram.y"
 2789|      0|                {
 2790|      0|			flog(LOG_WARNING
 2791|      0|				, "%s:%d abro prefix length deprecated, remove trailing '/%d'"
 2792|      0|				, filename
 2793|      0|				, num_lines
 2794|      0|				, (yyvsp[0].num)
 2795|      0|			);
 2796|      0|			abro = malloc(sizeof(struct AdvAbro));
 2797|       |
 2798|      0|			if (abro == NULL) {
  ------------------
  |  Branch (2798:8): [True: 0, False: 0]
  ------------------
 2799|      0|				flog(LOG_CRIT, "malloc failed: %s", strerror(errno));
 2800|      0|				ABORT;
  ------------------
  |  |  498|      0|#define ABORT	do { cleanup(); YYABORT; } while (0);
  |  |  ------------------
  |  |  |  | 1230|      0|#define YYABORT         goto yyabortlab
  |  |  ------------------
  |  |  |  Branch (498:49): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2801|      0|			}
 2802|       |
 2803|      0|			memset(abro, 0, sizeof(struct AdvAbro));
 2804|      0|			memcpy(&abro->LBRaddress, (yyvsp[-2].addr), sizeof(struct in6_addr));
 2805|      0|		}
 2806|      0|#line 2807 "gram.c"
 2807|      0|    break;
 2808|       |
 2809|      0|  case 136: /* abroparms: T_AdvVersionLow NUMBER ';'  */
  ------------------
  |  Branch (2809:3): [True: 0, False: 0]
  ------------------
 2810|      0|#line 1082 "gram.y"
 2811|      0|                {
 2812|      0|			abro->Version[1] = (yyvsp[-1].num);
 2813|      0|		}
 2814|      0|#line 2815 "gram.c"
 2815|      0|    break;
 2816|       |
 2817|      0|  case 137: /* abroparms: T_AdvVersionHigh NUMBER ';'  */
  ------------------
  |  Branch (2817:3): [True: 0, False: 0]
  ------------------
 2818|      0|#line 1086 "gram.y"
 2819|      0|                {
 2820|      0|			abro->Version[0] = (yyvsp[-1].num);
 2821|      0|		}
 2822|      0|#line 2823 "gram.c"
 2823|      0|    break;
 2824|       |
 2825|      0|  case 138: /* abroparms: T_AdvValidLifetime NUMBER ';'  */
  ------------------
  |  Branch (2825:3): [True: 0, False: 0]
  ------------------
 2826|      0|#line 1090 "gram.y"
 2827|      0|                {
 2828|      0|			abro->ValidLifeTime = (yyvsp[-1].num);
 2829|      0|		}
 2830|      0|#line 2831 "gram.c"
 2831|      0|    break;
 2832|       |
 2833|      0|  case 139: /* number_or_infinity: NUMBER  */
  ------------------
  |  Branch (2833:3): [True: 0, False: 0]
  ------------------
 2834|      0|#line 1096 "gram.y"
 2835|      0|                        {
 2836|      0|				(yyval.num) = (yyvsp[0].num);
 2837|      0|			}
 2838|      0|#line 2839 "gram.c"
 2839|      0|    break;
 2840|       |
 2841|      0|  case 140: /* number_or_infinity: INFINITY  */
  ------------------
  |  Branch (2841:3): [True: 0, False: 0]
  ------------------
 2842|      0|#line 1100 "gram.y"
 2843|      0|                        {
 2844|      0|				(yyval.num) = (uint32_t)~0;
 2845|      0|			}
 2846|      0|#line 2847 "gram.c"
 2847|      0|    break;
 2848|       |
 2849|       |
 2850|      0|#line 2851 "gram.c"
 2851|       |
 2852|      0|      default: break;
  ------------------
  |  Branch (2852:7): [True: 0, False: 0]
  ------------------
 2853|      0|    }
 2854|       |  /* User semantic actions sometimes alter yychar, and that requires
 2855|       |     that yytoken be updated with the new translation.  We take the
 2856|       |     approach of translating immediately before every use of yytoken.
 2857|       |     One alternative is translating here after every semantic action,
 2858|       |     but that translation would be missed if the semantic action invokes
 2859|       |     YYABORT, YYACCEPT, or YYERROR immediately after altering yychar or
 2860|       |     if it invokes YYBACKUP.  In the case of YYABORT or YYACCEPT, an
 2861|       |     incorrect destructor might then be invoked immediately.  In the
 2862|       |     case of YYERROR or YYBACKUP, subsequent parser actions might lead
 2863|       |     to an incorrect destructor call or verbose syntax error message
 2864|       |     before the lookahead is translated.  */
 2865|      0|  YY_SYMBOL_PRINT ("-> $$ =", YY_CAST (yysymbol_kind_t, yyr1[yyn]), &yyval, &yyloc);
 2866|       |
 2867|      0|  YYPOPSTACK (yylen);
  ------------------
  |  | 1475|      0|#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
  ------------------
 2868|      0|  yylen = 0;
 2869|       |
 2870|      0|  *++yyvsp = yyval;
 2871|       |
 2872|       |  /* Now 'shift' the result of the reduction.  Determine what state
 2873|       |     that goes to, based on the state we popped back to and the rule
 2874|       |     number reduced by.  */
 2875|      0|  {
 2876|      0|    const int yylhs = yyr1[yyn] - YYNTOKENS;
  ------------------
  |  |  828|      0|#define YYNTOKENS  79
  ------------------
 2877|      0|    const int yyi = yypgoto[yylhs] + *yyssp;
 2878|      0|    yystate = (0 <= yyi && yyi <= YYLAST && yycheck[yyi] == *yyssp
  ------------------
  |  |  825|      0|#define YYLAST   292
  ------------------
  |  Branch (2878:16): [True: 0, False: 0]
  |  Branch (2878:28): [True: 0, False: 0]
  |  Branch (2878:45): [True: 0, False: 0]
  ------------------
 2879|      0|               ? yytable[yyi]
 2880|      0|               : yydefgoto[yylhs]);
 2881|      0|  }
 2882|       |
 2883|      0|  goto yynewstate;
 2884|       |
 2885|       |
 2886|       |/*--------------------------------------.
 2887|       || yyerrlab -- here on detecting error.  |
 2888|       |`--------------------------------------*/
 2889|    596|yyerrlab:
 2890|       |  /* Make sure we have latest lookahead translation.  See comments at
 2891|       |     user semantic actions for why this is necessary.  */
 2892|    596|  yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
  ------------------
  |  |  225|    596|#define YYEMPTY -2
  ------------------
                yytoken = yychar == YYEMPTY ? YYSYMBOL_YYEMPTY : YYTRANSLATE (yychar);
  ------------------
  |  |  843|  1.19k|  (0 <= (YYX) && (YYX) <= YYMAXUTOK                     \
  |  |  ------------------
  |  |  |  |  837|    596|#define YYMAXUTOK   329
  |  |  ------------------
  |  |  |  Branch (843:4): [True: 596, False: 0]
  |  |  |  Branch (843:18): [True: 596, False: 0]
  |  |  ------------------
  |  |  844|  1.19k|   ? YY_CAST (yysymbol_kind_t, yytranslate[YYX])        \
  |  |  ------------------
  |  |  |  |  112|    596|#   define YY_CAST(Type, Val) ((Type) (Val))
  |  |  ------------------
  |  |  845|  1.19k|   : YYSYMBOL_YYUNDEF)
  ------------------
  |  Branch (2892:13): [True: 0, False: 596]
  ------------------
 2893|       |  /* If not already recovering from an error, report this error.  */
 2894|    596|  if (!yyerrstatus)
  ------------------
  |  Branch (2894:7): [True: 596, False: 0]
  ------------------
 2895|    596|    {
 2896|    596|      ++yynerrs;
 2897|    596|      yyerror (YY_("syntax error"));
  ------------------
  |  |  627|    596|#  define YY_(Msgid) Msgid
  ------------------
 2898|    596|    }
 2899|       |
 2900|    596|  if (yyerrstatus == 3)
  ------------------
  |  Branch (2900:7): [True: 0, False: 596]
  ------------------
 2901|      0|    {
 2902|       |      /* If just tried and failed to reuse lookahead token after an
 2903|       |         error, discard it.  */
 2904|       |
 2905|      0|      if (yychar <= YYEOF)
  ------------------
  |  |  226|      0|#define YYEOF 0
  ------------------
  |  Branch (2905:11): [True: 0, False: 0]
  ------------------
 2906|      0|        {
 2907|       |          /* Return failure if at end of input.  */
 2908|      0|          if (yychar == YYEOF)
  ------------------
  |  |  226|      0|#define YYEOF 0
  ------------------
  |  Branch (2908:15): [True: 0, False: 0]
  ------------------
 2909|      0|            YYABORT;
  ------------------
  |  | 1230|      0|#define YYABORT         goto yyabortlab
  ------------------
 2910|      0|        }
 2911|      0|      else
 2912|      0|        {
 2913|      0|          yydestruct ("Error: discarding",
 2914|      0|                      yytoken, &yylval);
 2915|      0|          yychar = YYEMPTY;
  ------------------
  |  |  225|      0|#define YYEMPTY -2
  ------------------
 2916|      0|        }
 2917|      0|    }
 2918|       |
 2919|       |  /* Else will try to reuse lookahead token after shifting the error
 2920|       |     token.  */
 2921|    596|  goto yyerrlab1;
 2922|       |
 2923|       |
 2924|       |/*---------------------------------------------------.
 2925|       || yyerrorlab -- error raised explicitly by YYERROR.  |
 2926|       |`---------------------------------------------------*/
 2927|    596|yyerrorlab:
 2928|       |  /* Pacify compilers when the user code never invokes YYERROR and the
 2929|       |     label yyerrorlab therefore never appears in user code.  */
 2930|      0|  if (0)
  ------------------
  |  Branch (2930:7): [Folded, False: 0]
  ------------------
 2931|      0|    YYERROR;
  ------------------
  |  | 1231|      0|#define YYERROR         goto yyerrorlab
  ------------------
 2932|      0|  ++yynerrs;
 2933|       |
 2934|       |  /* Do not reclaim the symbols of the rule whose action triggered
 2935|       |     this YYERROR.  */
 2936|      0|  YYPOPSTACK (yylen);
  ------------------
  |  | 1475|      0|#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
  ------------------
 2937|      0|  yylen = 0;
 2938|      0|  YY_STACK_PRINT (yyss, yyssp);
 2939|      0|  yystate = *yyssp;
 2940|      0|  goto yyerrlab1;
 2941|       |
 2942|       |
 2943|       |/*-------------------------------------------------------------.
 2944|       || yyerrlab1 -- common code for both syntax error and YYERROR.  |
 2945|       |`-------------------------------------------------------------*/
 2946|    596|yyerrlab1:
 2947|    596|  yyerrstatus = 3;      /* Each real token shifted decrements this.  */
 2948|       |
 2949|       |  /* Pop stack until we find a state that shifts the error token.  */
 2950|    596|  for (;;)
 2951|    596|    {
 2952|    596|      yyn = yypact[yystate];
 2953|    596|      if (!yypact_value_is_default (yyn))
  ------------------
  |  |  968|    596|  ((Yyn) == YYPACT_NINF)
  |  |  ------------------
  |  |  |  |  965|    596|#define YYPACT_NINF (-90)
  |  |  ------------------
  ------------------
  |  Branch (2953:11): [True: 596, False: 0]
  ------------------
 2954|    596|        {
 2955|    596|          yyn += YYSYMBOL_YYerror;
 2956|    596|          if (0 <= yyn && yyn <= YYLAST && yycheck[yyn] == YYSYMBOL_YYerror)
  ------------------
  |  |  825|  1.19k|#define YYLAST   292
  ------------------
  |  Branch (2956:15): [True: 596, False: 0]
  |  Branch (2956:27): [True: 596, False: 0]
  |  Branch (2956:44): [True: 0, False: 596]
  ------------------
 2957|      0|            {
 2958|      0|              yyn = yytable[yyn];
 2959|      0|              if (0 < yyn)
  ------------------
  |  Branch (2959:19): [True: 0, False: 0]
  ------------------
 2960|      0|                break;
 2961|      0|            }
 2962|    596|        }
 2963|       |
 2964|       |      /* Pop the current state because it cannot handle the error token.  */
 2965|    596|      if (yyssp == yyss)
  ------------------
  |  Branch (2965:11): [True: 596, False: 0]
  ------------------
 2966|    596|        YYABORT;
  ------------------
  |  | 1230|    596|#define YYABORT         goto yyabortlab
  ------------------
 2967|       |
 2968|       |
 2969|      0|      yydestruct ("Error: popping",
 2970|      0|                  YY_ACCESSING_SYMBOL (yystate), yyvsp);
  ------------------
  |  |  909|      0|#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
  |  |  ------------------
  |  |  |  |  112|      0|#   define YY_CAST(Type, Val) ((Type) (Val))
  |  |  ------------------
  ------------------
 2971|      0|      YYPOPSTACK (1);
  ------------------
  |  | 1475|      0|#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
  ------------------
 2972|      0|      yystate = *yyssp;
 2973|      0|      YY_STACK_PRINT (yyss, yyssp);
 2974|      0|    }
 2975|       |
 2976|      0|  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
 2977|      0|  *++yyvsp = yylval;
 2978|      0|  YY_IGNORE_MAYBE_UNINITIALIZED_END
 2979|       |
 2980|       |
 2981|       |  /* Shift the error token.  */
 2982|      0|  YY_SYMBOL_PRINT ("Shifting", YY_ACCESSING_SYMBOL (yyn), yyvsp, yylsp);
 2983|       |
 2984|      0|  yystate = yyn;
 2985|      0|  goto yynewstate;
 2986|       |
 2987|       |
 2988|       |/*-------------------------------------.
 2989|       || yyacceptlab -- YYACCEPT comes here.  |
 2990|       |`-------------------------------------*/
 2991|      0|yyacceptlab:
 2992|      0|  yyresult = 0;
 2993|      0|  goto yyreturnlab;
 2994|       |
 2995|       |
 2996|       |/*-----------------------------------.
 2997|       || yyabortlab -- YYABORT comes here.  |
 2998|       |`-----------------------------------*/
 2999|    596|yyabortlab:
 3000|    596|  yyresult = 1;
 3001|    596|  goto yyreturnlab;
 3002|       |
 3003|       |
 3004|       |/*-----------------------------------------------------------.
 3005|       || yyexhaustedlab -- YYNOMEM (memory exhaustion) comes here.  |
 3006|       |`-----------------------------------------------------------*/
 3007|      0|yyexhaustedlab:
 3008|      0|  yyerror (YY_("memory exhausted"));
  ------------------
  |  |  627|      0|#  define YY_(Msgid) Msgid
  ------------------
 3009|      0|  yyresult = 2;
 3010|      0|  goto yyreturnlab;
 3011|       |
 3012|       |
 3013|       |/*----------------------------------------------------------.
 3014|       || yyreturnlab -- parsing is finished, clean up and return.  |
 3015|       |`----------------------------------------------------------*/
 3016|    596|yyreturnlab:
 3017|    596|  if (yychar != YYEMPTY)
  ------------------
  |  |  225|    596|#define YYEMPTY -2
  ------------------
  |  Branch (3017:7): [True: 596, False: 0]
  ------------------
 3018|    596|    {
 3019|       |      /* Make sure we have latest lookahead translation.  See comments at
 3020|       |         user semantic actions for why this is necessary.  */
 3021|    596|      yytoken = YYTRANSLATE (yychar);
  ------------------
  |  |  843|    596|  (0 <= (YYX) && (YYX) <= YYMAXUTOK                     \
  |  |  ------------------
  |  |  |  |  837|    596|#define YYMAXUTOK   329
  |  |  ------------------
  |  |  |  Branch (843:4): [True: 596, False: 0]
  |  |  |  Branch (843:18): [True: 596, False: 0]
  |  |  ------------------
  |  |  844|    596|   ? YY_CAST (yysymbol_kind_t, yytranslate[YYX])        \
  |  |  ------------------
  |  |  |  |  112|    596|#   define YY_CAST(Type, Val) ((Type) (Val))
  |  |  ------------------
  |  |  845|    596|   : YYSYMBOL_YYUNDEF)
  ------------------
 3022|    596|      yydestruct ("Cleanup: discarding lookahead",
 3023|    596|                  yytoken, &yylval);
 3024|    596|    }
 3025|       |  /* Do not reclaim the symbols of the rule whose action triggered
 3026|       |     this YYABORT or YYACCEPT.  */
 3027|    596|  YYPOPSTACK (yylen);
  ------------------
  |  | 1475|    596|#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
  ------------------
 3028|    596|  YY_STACK_PRINT (yyss, yyssp);
 3029|    596|  while (yyssp != yyss)
  ------------------
  |  Branch (3029:10): [True: 0, False: 596]
  ------------------
 3030|      0|    {
 3031|      0|      yydestruct ("Cleanup: popping",
 3032|      0|                  YY_ACCESSING_SYMBOL (+*yyssp), yyvsp);
  ------------------
  |  |  909|      0|#define YY_ACCESSING_SYMBOL(State) YY_CAST (yysymbol_kind_t, yystos[State])
  |  |  ------------------
  |  |  |  |  112|      0|#   define YY_CAST(Type, Val) ((Type) (Val))
  |  |  ------------------
  ------------------
 3033|      0|      YYPOPSTACK (1);
  ------------------
  |  | 1475|      0|#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
  ------------------
 3034|      0|    }
 3035|    596|#ifndef yyoverflow
 3036|    596|  if (yyss != yyssa)
  ------------------
  |  Branch (3036:7): [True: 0, False: 596]
  ------------------
 3037|      0|    YYSTACK_FREE (yyss);
  ------------------
  |  |  735|      0|#  define YYSTACK_FREE YYFREE
  |  |  ------------------
  |  |  |  |  754|      0|#   define YYFREE free
  |  |  ------------------
  ------------------
 3038|    596|#endif
 3039|       |
 3040|    596|  return yyresult;
 3041|    596|}
readin_config:
 3090|    596|{
 3091|    596|	IfaceList = 0;
 3092|    596|	FILE * in = fopen(path, "r");
 3093|    596|	if (in) {
  ------------------
  |  Branch (3093:6): [True: 596, False: 0]
  ------------------
 3094|    596|		filename = path;
 3095|    596|		num_lines = 1;
 3096|    596|		iface = 0;
 3097|       |
 3098|    596|		yyset_in(in);
 3099|    596|		if (yyparse() != 0) {
  ------------------
  |  Branch (3099:7): [True: 596, False: 0]
  ------------------
 3100|    596|			free_ifaces(iface);
 3101|    596|			iface = 0;
 3102|    596|			IfaceList = 0;
 3103|    596|		} else {
 3104|      0|			dlog(LOG_DEBUG, 1, "config file, %s, syntax ok", path);
 3105|      0|		}
 3106|    596|		yylex_destroy();
 3107|    596|		fclose(in);
 3108|    596|	}
 3109|       |
 3110|    596|	return IfaceList;
 3111|    596|}
gram.c:yydestruct:
 1414|    596|{
 1415|    596|  YY_USE (yyvaluep);
  ------------------
  |  |  650|    596|# define YY_USE(E) ((void) (E))
  ------------------
 1416|    596|  if (!yymsg)
  ------------------
  |  Branch (1416:7): [True: 0, False: 596]
  ------------------
 1417|      0|    yymsg = "Deleting";
 1418|    596|  YY_SYMBOL_PRINT (yymsg, yykind, yyvaluep, yylocationp);
 1419|       |
 1420|    596|  YY_IGNORE_MAYBE_UNINITIALIZED_BEGIN
 1421|    596|  YY_USE (yykind);
  ------------------
  |  |  650|    596|# define YY_USE(E) ((void) (E))
  ------------------
 1422|    596|  YY_IGNORE_MAYBE_UNINITIALIZED_END
 1423|    596|}
gram.c:yyerror:
 3114|    596|{
 3115|       |	fprintf(stderr, "%s:%d error: %s\n",
 3116|    596|		filename,
 3117|    596|		num_lines,
 3118|    596|		msg);
 3119|    596|}

free_ifaces:
  466|    596|{
  467|    596|	dlog(LOG_DEBUG, 3, "Freeing Interfaces");
  468|       |
  469|    596|	free_iface_list(ifaces);
  470|    596|}
interface.c:free_iface_list:
  397|    596|{
  398|    596|	while (iface) {
  ------------------
  |  Branch (398:9): [True: 0, False: 596]
  ------------------
  399|      0|		struct Interface *next_iface = iface->next;
  400|       |
  401|      0|		dlog(LOG_DEBUG, 4, "freeing interface %s", iface->props.name);
  402|       |
  403|      0|		struct AdvPrefix *prefix = iface->AdvPrefixList;
  404|      0|		while (prefix) {
  ------------------
  |  Branch (404:10): [True: 0, False: 0]
  ------------------
  405|      0|			struct AdvPrefix *next_prefix = prefix->next;
  406|       |
  407|      0|			free(prefix);
  408|      0|			prefix = next_prefix;
  409|      0|		}
  410|       |
  411|      0|		struct AdvRoute *route = iface->AdvRouteList;
  412|      0|		while (route) {
  ------------------
  |  Branch (412:10): [True: 0, False: 0]
  ------------------
  413|      0|			struct AdvRoute *next_route = route->next;
  414|       |
  415|      0|			free(route);
  416|      0|			route = next_route;
  417|      0|		}
  418|       |
  419|      0|		struct AdvRDNSS *rdnss = iface->AdvRDNSSList;
  420|      0|		while (rdnss) {
  ------------------
  |  Branch (420:10): [True: 0, False: 0]
  ------------------
  421|      0|			struct AdvRDNSS *next_rdnss = rdnss->next;
  422|       |
  423|      0|			free(rdnss->AdvRDNSSAddr);
  424|      0|			free(rdnss);
  425|      0|			rdnss = next_rdnss;
  426|      0|		}
  427|       |
  428|      0|		struct AdvDNSSL *dnssl = iface->AdvDNSSLList;
  429|      0|		while (dnssl) {
  ------------------
  |  Branch (429:10): [True: 0, False: 0]
  ------------------
  430|      0|			struct AdvDNSSL *next_dnssl = dnssl->next;
  431|       |
  432|      0|			for (int i = 0; i < dnssl->AdvDNSSLNumber; i++)
  ------------------
  |  Branch (432:20): [True: 0, False: 0]
  ------------------
  433|      0|				free(dnssl->AdvDNSSLSuffixes[i]);
  434|      0|			free(dnssl->AdvDNSSLSuffixes);
  435|      0|			free(dnssl);
  436|       |
  437|      0|			dnssl = next_dnssl;
  438|      0|		}
  439|       |
  440|      0|		struct AutogenIgnorePrefix *ignore_prefixes = iface->IgnorePrefixList;
  441|      0|		while (ignore_prefixes) {
  ------------------
  |  Branch (441:10): [True: 0, False: 0]
  ------------------
  442|      0|			struct AutogenIgnorePrefix *next_ignore_prefix = ignore_prefixes->next;
  443|       |
  444|      0|			free(ignore_prefixes);
  445|      0|			ignore_prefixes = next_ignore_prefix;
  446|      0|		}
  447|       |
  448|      0|		struct Clients *clients = iface->ClientList;
  449|      0|		while (clients) {
  ------------------
  |  Branch (449:10): [True: 0, False: 0]
  ------------------
  450|      0|			struct Clients *next_client = clients->next;
  451|       |
  452|      0|			free(clients);
  453|      0|			clients = next_client;
  454|      0|		}
  455|       |
  456|      0|		free(iface->props.if_addrs);
  457|       |
  458|      0|		free(iface->AdvCaptivePortalAPI);
  459|       |
  460|      0|		free(iface);
  461|      0|		iface = next_iface;
  462|      0|	}
  463|    596|}

yylex:
 1702|    596|{
 1703|    596|	yy_state_type yy_current_state;
 1704|    596|	char *yy_cp, *yy_bp;
 1705|    596|	int yy_act;
 1706|       |    
 1707|    596|	if ( !(yy_init) )
  ------------------
  |  Branch (1707:7): [True: 596, False: 0]
  ------------------
 1708|    596|		{
 1709|    596|		(yy_init) = 1;
 1710|       |
 1711|       |#ifdef YY_USER_INIT
 1712|       |		YY_USER_INIT;
 1713|       |#endif
 1714|       |
 1715|    596|		if ( ! (yy_start) )
  ------------------
  |  Branch (1715:8): [True: 596, False: 0]
  ------------------
 1716|    596|			(yy_start) = 1;	/* first start state */
 1717|       |
 1718|    596|		if ( ! yyin )
  ------------------
  |  Branch (1718:8): [True: 0, False: 596]
  ------------------
 1719|      0|			yyin = stdin;
 1720|       |
 1721|    596|		if ( ! yyout )
  ------------------
  |  Branch (1721:8): [True: 596, False: 0]
  ------------------
 1722|    596|			yyout = stdout;
 1723|       |
 1724|    596|		if ( ! YY_CURRENT_BUFFER ) {
  ------------------
  |  |  278|    596|#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
  |  |  ------------------
  |  |  |  Branch (278:29): [True: 0, False: 596]
  |  |  ------------------
  |  |  279|    596|                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
  |  |  280|    596|                          : NULL)
  ------------------
  |  Branch (1724:8): [True: 596, False: 0]
  ------------------
 1725|    596|			yyensure_buffer_stack ();
 1726|    596|			YY_CURRENT_BUFFER_LVALUE =
  ------------------
  |  |  284|    596|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 1727|    596|				yy_create_buffer( yyin, YY_BUF_SIZE );
  ------------------
  |  |  139|    596|#define YY_BUF_SIZE 16384
  ------------------
 1728|    596|		}
 1729|       |
 1730|    596|		yy_load_buffer_state(  );
 1731|    596|		}
 1732|       |
 1733|    596|	{
 1734|    596|#line 40 "scanner.l"
 1735|       |
 1736|       |
 1737|    596|#line 1738 "scanner.c"
 1738|       |
 1739|  2.95M|	while ( /*CONSTCOND*/1 )		/* loops until end-of-file is reached */
  ------------------
  |  Branch (1739:23): [True: 2.95M, Folded]
  ------------------
 1740|  2.95M|		{
 1741|  2.95M|		yy_cp = (yy_c_buf_p);
 1742|       |
 1743|       |		/* Support of yytext. */
 1744|  2.95M|		*yy_cp = (yy_hold_char);
 1745|       |
 1746|       |		/* yy_bp points to the position in yy_ch_buf of the start of
 1747|       |		 * the current run.
 1748|       |		 */
 1749|  2.95M|		yy_bp = yy_cp;
 1750|       |
 1751|  2.95M|		yy_current_state = (yy_start);
 1752|  3.00M|yy_match:
 1753|  3.00M|		do
 1754|  15.7M|			{
 1755|  15.7M|			YY_CHAR yy_c = yy_ec[YY_SC_TO_UI(*yy_cp)] ;
  ------------------
  |  |  111|  15.7M|#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
  ------------------
 1756|  15.7M|			if ( yy_accept[yy_current_state] )
  ------------------
  |  Branch (1756:9): [True: 3.78M, False: 11.9M]
  ------------------
 1757|  3.78M|				{
 1758|  3.78M|				(yy_last_accepting_state) = yy_current_state;
 1759|  3.78M|				(yy_last_accepting_cpos) = yy_cp;
 1760|  3.78M|				}
 1761|  26.8M|			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  ------------------
  |  Branch (1761:12): [True: 11.1M, False: 15.7M]
  ------------------
 1762|  11.1M|				{
 1763|  11.1M|				yy_current_state = (int) yy_def[yy_current_state];
 1764|  11.1M|				if ( yy_current_state >= 896 )
  ------------------
  |  Branch (1764:10): [True: 11.0M, False: 66.5k]
  ------------------
 1765|  11.0M|					yy_c = yy_meta[yy_c];
 1766|  11.1M|				}
 1767|  15.7M|			yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
 1768|  15.7M|			++yy_cp;
 1769|  15.7M|			}
 1770|  15.7M|		while ( yy_base[yy_current_state] != 3230 );
  ------------------
  |  Branch (1770:11): [True: 12.6M, False: 3.00M]
  ------------------
 1771|       |
 1772|  3.00M|yy_find_action:
 1773|  3.00M|		yy_act = yy_accept[yy_current_state];
 1774|  3.00M|		if ( yy_act == 0 )
  ------------------
  |  Branch (1774:8): [True: 48.3k, False: 2.95M]
  ------------------
 1775|  48.3k|			{ /* have to back up */
 1776|  48.3k|			yy_cp = (yy_last_accepting_cpos);
 1777|  48.3k|			yy_current_state = (yy_last_accepting_state);
 1778|  48.3k|			yy_act = yy_accept[yy_current_state];
 1779|  48.3k|			}
 1780|       |
 1781|  3.00M|		YY_DO_BEFORE_ACTION;
  ------------------
  |  |  371|  3.00M|	(yytext_ptr) = yy_bp; \
  |  |  ------------------
  |  |  |  |  360|  3.00M|#define yytext_ptr yytext
  |  |  ------------------
  |  |  372|  3.00M|	yyleng = (int) (yy_cp - yy_bp); \
  |  |  373|  3.00M|	(yy_hold_char) = *yy_cp; \
  |  |  374|  3.00M|	*yy_cp = '\0'; \
  |  |  375|  3.00M|	(yy_c_buf_p) = yy_cp;
  ------------------
 1782|       |
 1783|  3.00M|		if ( yy_act != YY_END_OF_BUFFER && yy_rule_can_match_eol[yy_act] )
  ------------------
  |  |  377|  6.01M|#define YY_END_OF_BUFFER 82
  ------------------
  |  Branch (1783:8): [True: 2.95M, False: 46.9k]
  |  Branch (1783:38): [True: 2.94M, False: 11.2k]
  ------------------
 1784|  2.94M|			{
 1785|  2.94M|			int yyl;
 1786|  8.05M|			for ( yyl = 0; yyl < yyleng; ++yyl )
  ------------------
  |  Branch (1786:19): [True: 5.10M, False: 2.94M]
  ------------------
 1787|  5.10M|				if ( yytext[yyl] == '\n' )
  ------------------
  |  Branch (1787:10): [True: 2.94M, False: 2.15M]
  ------------------
 1788|       |					
 1789|  2.94M|    yylineno++;
 1790|  2.94M|;
 1791|  2.94M|			}
 1792|       |
 1793|  3.00M|do_action:	/* This label is used only to access EOF actions. */
 1794|       |
 1795|  3.00M|		switch ( yy_act )
 1796|  3.00M|	{ /* beginning of action switch */
 1797|      0|			case 0: /* must back up */
  ------------------
  |  Branch (1797:4): [True: 0, False: 3.00M]
  ------------------
 1798|       |			/* undo the effects of YY_DO_BEFORE_ACTION */
 1799|      0|			*yy_cp = (yy_hold_char);
 1800|      0|			yy_cp = (yy_last_accepting_cpos);
 1801|      0|			yy_current_state = (yy_last_accepting_state);
 1802|      0|			goto yy_find_action;
 1803|       |
 1804|  9.76k|case 1:
  ------------------
  |  Branch (1804:1): [True: 9.76k, False: 2.99M]
  ------------------
 1805|  9.76k|*yy_cp = (yy_hold_char); /* undo effects of setting up yytext */
 1806|  9.76k|(yy_c_buf_p) = yy_cp -= 1;
 1807|  9.76k|YY_DO_BEFORE_ACTION; /* set up yytext again */
  ------------------
  |  |  371|  9.76k|	(yytext_ptr) = yy_bp; \
  |  |  ------------------
  |  |  |  |  360|  9.76k|#define yytext_ptr yytext
  |  |  ------------------
  |  |  372|  9.76k|	yyleng = (int) (yy_cp - yy_bp); \
  |  |  373|  9.76k|	(yy_hold_char) = *yy_cp; \
  |  |  374|  9.76k|	*yy_cp = '\0'; \
  |  |  375|  9.76k|	(yy_c_buf_p) = yy_cp;
  ------------------
 1808|  9.76k|YY_RULE_SETUP
 1809|  9.76k|#line 42 "scanner.l"
 1810|  9.76k|{/* ignore comments */}
 1811|  9.76k|	YY_BREAK
  ------------------
  |  | 1693|  9.76k|#define YY_BREAK /*LINTED*/break;
  ------------------
 1812|  2.94M|case 2:
  ------------------
  |  Branch (1812:1): [True: 2.94M, False: 58.5k]
  ------------------
 1813|       |/* rule 2 can match eol */
 1814|  2.94M|YY_RULE_SETUP
 1815|  2.94M|#line 43 "scanner.l"
 1816|  2.94M|{num_lines++;}
 1817|  2.94M|	YY_BREAK
  ------------------
  |  | 1693|  2.94M|#define YY_BREAK /*LINTED*/break;
  ------------------
 1818|  1.23k|case 3:
  ------------------
  |  Branch (1818:1): [True: 1.23k, False: 3.00M]
  ------------------
 1819|  1.23k|YY_RULE_SETUP
 1820|  1.23k|#line 44 "scanner.l"
 1821|  1.23k|{}
 1822|  1.23k|	YY_BREAK
  ------------------
  |  | 1693|  1.23k|#define YY_BREAK /*LINTED*/break;
  ------------------
 1823|      0|case 4:
  ------------------
  |  Branch (1823:1): [True: 0, False: 3.00M]
  ------------------
 1824|      0|YY_RULE_SETUP
 1825|      0|#line 46 "scanner.l"
 1826|      0|{ return T_INTERFACE; }
  ------------------
  |  |  137|      0|#define T_INTERFACE 258
  ------------------
 1827|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1828|      2|case 5:
  ------------------
  |  Branch (1828:1): [True: 2, False: 3.00M]
  ------------------
 1829|      2|YY_RULE_SETUP
 1830|      2|#line 47 "scanner.l"
 1831|      2|{ return T_PREFIX; }
  ------------------
  |  |  138|      2|#define T_PREFIX 259
  ------------------
 1832|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1833|      0|case 6:
  ------------------
  |  Branch (1833:1): [True: 0, False: 3.00M]
  ------------------
 1834|      0|YY_RULE_SETUP
 1835|      0|#line 48 "scanner.l"
 1836|      0|{ return T_ROUTE; }
  ------------------
  |  |  139|      0|#define T_ROUTE 260
  ------------------
 1837|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1838|      1|case 7:
  ------------------
  |  Branch (1838:1): [True: 1, False: 3.00M]
  ------------------
 1839|      1|YY_RULE_SETUP
 1840|      1|#line 49 "scanner.l"
 1841|      1|{ return T_RDNSS; }
  ------------------
  |  |  140|      1|#define T_RDNSS 261
  ------------------
 1842|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1843|      2|case 8:
  ------------------
  |  Branch (1843:1): [True: 2, False: 3.00M]
  ------------------
 1844|      2|YY_RULE_SETUP
 1845|      2|#line 50 "scanner.l"
 1846|      2|{ return T_DNSSL; }
  ------------------
  |  |  141|      2|#define T_DNSSL 262
  ------------------
 1847|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1848|      0|case 9:
  ------------------
  |  Branch (1848:1): [True: 0, False: 3.00M]
  ------------------
 1849|      0|YY_RULE_SETUP
 1850|      0|#line 51 "scanner.l"
 1851|      0|{ return T_CLIENTS; }
  ------------------
  |  |  142|      0|#define T_CLIENTS 263
  ------------------
 1852|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1853|      0|case 10:
  ------------------
  |  Branch (1853:1): [True: 0, False: 3.00M]
  ------------------
 1854|      0|YY_RULE_SETUP
 1855|      0|#line 52 "scanner.l"
 1856|      0|{ return T_LOWPANCO; }
  ------------------
  |  |  143|      0|#define T_LOWPANCO 264
  ------------------
 1857|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1858|      1|case 11:
  ------------------
  |  Branch (1858:1): [True: 1, False: 3.00M]
  ------------------
 1859|      1|YY_RULE_SETUP
 1860|      1|#line 53 "scanner.l"
 1861|      1|{ return T_ABRO; }
  ------------------
  |  |  144|      1|#define T_ABRO 265
  ------------------
 1862|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1863|      0|case 12:
  ------------------
  |  Branch (1863:1): [True: 0, False: 3.00M]
  ------------------
 1864|      0|YY_RULE_SETUP
 1865|      0|#line 54 "scanner.l"
 1866|      0|{ return T_NAT64PREFIX; }
  ------------------
  |  |  146|      0|#define T_NAT64PREFIX 267
  ------------------
 1867|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1868|      0|case 13:
  ------------------
  |  Branch (1868:1): [True: 0, False: 3.00M]
  ------------------
 1869|      0|YY_RULE_SETUP
 1870|      0|#line 55 "scanner.l"
 1871|      0|{ return T_AUTOIGNOREPREFIX; }
  ------------------
  |  |  147|      0|#define T_AUTOIGNOREPREFIX 268
  ------------------
 1872|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1873|      0|case 14:
  ------------------
  |  Branch (1873:1): [True: 0, False: 3.00M]
  ------------------
 1874|      0|YY_RULE_SETUP
 1875|      0|#line 57 "scanner.l"
 1876|      0|{ return T_RASRCADDRESS; }
  ------------------
  |  |  145|      0|#define T_RASRCADDRESS 266
  ------------------
 1877|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1878|      0|case 15:
  ------------------
  |  Branch (1878:1): [True: 0, False: 3.00M]
  ------------------
 1879|      0|YY_RULE_SETUP
 1880|      0|#line 59 "scanner.l"
 1881|      0|{ return T_IgnoreIfMissing; }
  ------------------
  |  |  156|      0|#define T_IgnoreIfMissing 277
  ------------------
 1882|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1883|      0|case 16:
  ------------------
  |  Branch (1883:1): [True: 0, False: 3.00M]
  ------------------
 1884|      0|YY_RULE_SETUP
 1885|      0|#line 60 "scanner.l"
 1886|      0|{ return T_AdvSendAdvert; }
  ------------------
  |  |  157|      0|#define T_AdvSendAdvert 278
  ------------------
 1887|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1888|      0|case 17:
  ------------------
  |  Branch (1888:1): [True: 0, False: 3.00M]
  ------------------
 1889|      0|YY_RULE_SETUP
 1890|      0|#line 61 "scanner.l"
 1891|      0|{ return T_MaxRtrAdvInterval; }
  ------------------
  |  |  158|      0|#define T_MaxRtrAdvInterval 279
  ------------------
 1892|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1893|      0|case 18:
  ------------------
  |  Branch (1893:1): [True: 0, False: 3.00M]
  ------------------
 1894|      0|YY_RULE_SETUP
 1895|      0|#line 62 "scanner.l"
 1896|      0|{ return T_MinRtrAdvInterval; }
  ------------------
  |  |  159|      0|#define T_MinRtrAdvInterval 280
  ------------------
 1897|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1898|      0|case 19:
  ------------------
  |  Branch (1898:1): [True: 0, False: 3.00M]
  ------------------
 1899|      0|YY_RULE_SETUP
 1900|      0|#line 63 "scanner.l"
 1901|      0|{ return T_AdvManagedFlag; }
  ------------------
  |  |  161|      0|#define T_AdvManagedFlag 282
  ------------------
 1902|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1903|      0|case 20:
  ------------------
  |  Branch (1903:1): [True: 0, False: 3.00M]
  ------------------
 1904|      0|YY_RULE_SETUP
 1905|      0|#line 64 "scanner.l"
 1906|      0|{ return T_AdvOtherConfigFlag; }
  ------------------
  |  |  162|      0|#define T_AdvOtherConfigFlag 283
  ------------------
 1907|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1908|      0|case 21:
  ------------------
  |  Branch (1908:1): [True: 0, False: 3.00M]
  ------------------
 1909|      0|YY_RULE_SETUP
 1910|      0|#line 65 "scanner.l"
 1911|      0|{ return T_AdvLinkMTU; }
  ------------------
  |  |  163|      0|#define T_AdvLinkMTU 284
  ------------------
 1912|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1913|      0|case 22:
  ------------------
  |  Branch (1913:1): [True: 0, False: 3.00M]
  ------------------
 1914|      0|YY_RULE_SETUP
 1915|      0|#line 66 "scanner.l"
 1916|      0|{ return T_AdvRAMTU; }
  ------------------
  |  |  164|      0|#define T_AdvRAMTU 285
  ------------------
 1917|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1918|      0|case 23:
  ------------------
  |  Branch (1918:1): [True: 0, False: 3.00M]
  ------------------
 1919|      0|YY_RULE_SETUP
 1920|      0|#line 67 "scanner.l"
 1921|      0|{ return T_AdvReachableTime; }
  ------------------
  |  |  165|      0|#define T_AdvReachableTime 286
  ------------------
 1922|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1923|      0|case 24:
  ------------------
  |  Branch (1923:1): [True: 0, False: 3.00M]
  ------------------
 1924|      0|YY_RULE_SETUP
 1925|      0|#line 68 "scanner.l"
 1926|      0|{ return T_AdvRetransTimer; }
  ------------------
  |  |  166|      0|#define T_AdvRetransTimer 287
  ------------------
 1927|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1928|      0|case 25:
  ------------------
  |  Branch (1928:1): [True: 0, False: 3.00M]
  ------------------
 1929|      0|YY_RULE_SETUP
 1930|      0|#line 69 "scanner.l"
 1931|      0|{ return T_AdvCurHopLimit; }
  ------------------
  |  |  167|      0|#define T_AdvCurHopLimit 288
  ------------------
 1932|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1933|      0|case 26:
  ------------------
  |  Branch (1933:1): [True: 0, False: 3.00M]
  ------------------
 1934|      0|YY_RULE_SETUP
 1935|      0|#line 70 "scanner.l"
 1936|      0|{ return T_AdvDefaultLifetime; }
  ------------------
  |  |  168|      0|#define T_AdvDefaultLifetime 289
  ------------------
 1937|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1938|      0|case 27:
  ------------------
  |  Branch (1938:1): [True: 0, False: 3.00M]
  ------------------
 1939|      0|YY_RULE_SETUP
 1940|      0|#line 71 "scanner.l"
 1941|      0|{ return T_AdvDefaultPreference; }
  ------------------
  |  |  169|      0|#define T_AdvDefaultPreference 290
  ------------------
 1942|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1943|      0|case 28:
  ------------------
  |  Branch (1943:1): [True: 0, False: 3.00M]
  ------------------
 1944|      0|YY_RULE_SETUP
 1945|      0|#line 72 "scanner.l"
 1946|      0|{ return T_AdvSourceLLAddress; }
  ------------------
  |  |  170|      0|#define T_AdvSourceLLAddress 291
  ------------------
 1947|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1948|      0|case 29:
  ------------------
  |  Branch (1948:1): [True: 0, False: 3.00M]
  ------------------
 1949|      0|YY_RULE_SETUP
 1950|      0|#line 73 "scanner.l"
 1951|      0|{ return T_RemoveAdvOnExit; }
  ------------------
  |  |  171|      0|#define T_RemoveAdvOnExit 292
  ------------------
 1952|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1953|      0|case 30:
  ------------------
  |  Branch (1953:1): [True: 0, False: 3.00M]
  ------------------
 1954|      0|YY_RULE_SETUP
 1955|      0|#line 75 "scanner.l"
 1956|      0|{ return T_AdvOnLink; }
  ------------------
  |  |  172|      0|#define T_AdvOnLink 293
  ------------------
 1957|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1958|      0|case 31:
  ------------------
  |  Branch (1958:1): [True: 0, False: 3.00M]
  ------------------
 1959|      0|YY_RULE_SETUP
 1960|      0|#line 76 "scanner.l"
 1961|      0|{ return T_AdvAutonomous; }
  ------------------
  |  |  173|      0|#define T_AdvAutonomous 294
  ------------------
 1962|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1963|      0|case 32:
  ------------------
  |  Branch (1963:1): [True: 0, False: 3.00M]
  ------------------
 1964|      0|YY_RULE_SETUP
 1965|      0|#line 77 "scanner.l"
 1966|      0|{ return T_AdvValidLifetime; }
  ------------------
  |  |  174|      0|#define T_AdvValidLifetime 295
  ------------------
 1967|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1968|      0|case 33:
  ------------------
  |  Branch (1968:1): [True: 0, False: 3.00M]
  ------------------
 1969|      0|YY_RULE_SETUP
 1970|      0|#line 78 "scanner.l"
 1971|      0|{ return T_AdvPreferredLifetime; }
  ------------------
  |  |  175|      0|#define T_AdvPreferredLifetime 296
  ------------------
 1972|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1973|      0|case 34:
  ------------------
  |  Branch (1973:1): [True: 0, False: 3.00M]
  ------------------
 1974|      0|YY_RULE_SETUP
 1975|      0|#line 79 "scanner.l"
 1976|      0|{ return T_DeprecatePrefix; }
  ------------------
  |  |  176|      0|#define T_DeprecatePrefix 297
  ------------------
 1977|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1978|      0|case 35:
  ------------------
  |  Branch (1978:1): [True: 0, False: 3.00M]
  ------------------
 1979|      0|YY_RULE_SETUP
 1980|      0|#line 80 "scanner.l"
 1981|      0|{ return T_DecrementLifetimes; }
  ------------------
  |  |  177|      0|#define T_DecrementLifetimes 298
  ------------------
 1982|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1983|      0|case 36:
  ------------------
  |  Branch (1983:1): [True: 0, False: 3.00M]
  ------------------
 1984|      0|YY_RULE_SETUP
 1985|      0|#line 82 "scanner.l"
 1986|      0|{ return T_AdvRouterAddr; }
  ------------------
  |  |  178|      0|#define T_AdvRouterAddr 299
  ------------------
 1987|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1988|      0|case 37:
  ------------------
  |  Branch (1988:1): [True: 0, False: 3.00M]
  ------------------
 1989|      0|YY_RULE_SETUP
 1990|      0|#line 83 "scanner.l"
 1991|      0|{ return T_AdvHomeAgentFlag; }
  ------------------
  |  |  179|      0|#define T_AdvHomeAgentFlag 300
  ------------------
 1992|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1993|      0|case 38:
  ------------------
  |  Branch (1993:1): [True: 0, False: 3.00M]
  ------------------
 1994|      0|YY_RULE_SETUP
 1995|      0|#line 84 "scanner.l"
 1996|      0|{ return T_AdvIntervalOpt; }
  ------------------
  |  |  180|      0|#define T_AdvIntervalOpt 301
  ------------------
 1997|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 1998|      0|case 39:
  ------------------
  |  Branch (1998:1): [True: 0, False: 3.00M]
  ------------------
 1999|      0|YY_RULE_SETUP
 2000|      0|#line 85 "scanner.l"
 2001|      0|{ return T_AdvHomeAgentInfo; }
  ------------------
  |  |  181|      0|#define T_AdvHomeAgentInfo 302
  ------------------
 2002|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2003|      0|case 40:
  ------------------
  |  Branch (2003:1): [True: 0, False: 3.00M]
  ------------------
 2004|      0|YY_RULE_SETUP
 2005|      0|#line 86 "scanner.l"
 2006|      0|{ return T_UnicastOnly; }
  ------------------
  |  |  184|      0|#define T_UnicastOnly 305
  ------------------
 2007|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2008|      0|case 41:
  ------------------
  |  Branch (2008:1): [True: 0, False: 3.00M]
  ------------------
 2009|      0|YY_RULE_SETUP
 2010|      0|#line 87 "scanner.l"
 2011|      0|{ return T_UnrestrictedUnicast; }
  ------------------
  |  |  185|      0|#define T_UnrestrictedUnicast 306
  ------------------
 2012|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2013|      0|case 42:
  ------------------
  |  Branch (2013:1): [True: 0, False: 3.00M]
  ------------------
 2014|      0|YY_RULE_SETUP
 2015|      0|#line 88 "scanner.l"
 2016|      0|{ return T_AdvRASolicitedUnicast; }
  ------------------
  |  |  186|      0|#define T_AdvRASolicitedUnicast 307
  ------------------
 2017|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2018|      0|case 43:
  ------------------
  |  Branch (2018:1): [True: 0, False: 3.00M]
  ------------------
 2019|      0|YY_RULE_SETUP
 2020|      0|#line 89 "scanner.l"
 2021|      0|{ return T_AdvCaptivePortalAPI; }
  ------------------
  |  |  187|      0|#define T_AdvCaptivePortalAPI 308
  ------------------
 2022|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2023|      0|case 44:
  ------------------
  |  Branch (2023:1): [True: 0, False: 3.00M]
  ------------------
 2024|      0|YY_RULE_SETUP
 2025|      0|#line 91 "scanner.l"
 2026|      0|{ return T_Base6Interface; }
  ------------------
  |  |  182|      0|#define T_Base6Interface 303
  ------------------
 2027|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2028|      0|case 45:
  ------------------
  |  Branch (2028:1): [True: 0, False: 3.00M]
  ------------------
 2029|      0|YY_RULE_SETUP
 2030|      0|#line 92 "scanner.l"
 2031|      0|{ return T_Base6to4Interface; }
  ------------------
  |  |  183|      0|#define T_Base6to4Interface 304
  ------------------
 2032|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2033|      0|case 46:
  ------------------
  |  Branch (2033:1): [True: 0, False: 3.00M]
  ------------------
 2034|      0|YY_RULE_SETUP
 2035|      0|#line 94 "scanner.l"
 2036|      0|{ return T_HomeAgentPreference; }
  ------------------
  |  |  188|      0|#define T_HomeAgentPreference 309
  ------------------
 2037|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2038|      0|case 47:
  ------------------
  |  Branch (2038:1): [True: 0, False: 3.00M]
  ------------------
 2039|      0|YY_RULE_SETUP
 2040|      0|#line 95 "scanner.l"
 2041|      0|{ return T_HomeAgentLifetime; }
  ------------------
  |  |  189|      0|#define T_HomeAgentLifetime 310
  ------------------
 2042|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2043|      0|case 48:
  ------------------
  |  Branch (2043:1): [True: 0, False: 3.00M]
  ------------------
 2044|      0|YY_RULE_SETUP
 2045|      0|#line 97 "scanner.l"
 2046|      0|{ return T_AdvRoutePreference; }
  ------------------
  |  |  190|      0|#define T_AdvRoutePreference 311
  ------------------
 2047|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2048|      0|case 49:
  ------------------
  |  Branch (2048:1): [True: 0, False: 3.00M]
  ------------------
 2049|      0|YY_RULE_SETUP
 2050|      0|#line 98 "scanner.l"
 2051|      0|{ return T_AdvRouteLifetime; }
  ------------------
  |  |  191|      0|#define T_AdvRouteLifetime 312
  ------------------
 2052|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2053|      0|case 50:
  ------------------
  |  Branch (2053:1): [True: 0, False: 3.00M]
  ------------------
 2054|      0|YY_RULE_SETUP
 2055|      0|#line 99 "scanner.l"
 2056|      0|{ return T_RemoveRoute; }
  ------------------
  |  |  192|      0|#define T_RemoveRoute 313
  ------------------
 2057|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2058|      0|case 51:
  ------------------
  |  Branch (2058:1): [True: 0, False: 3.00M]
  ------------------
 2059|      0|YY_RULE_SETUP
 2060|      0|#line 101 "scanner.l"
 2061|      0|{ return T_AdvRDNSSPreference; }
  ------------------
  |  |  193|      0|#define T_AdvRDNSSPreference 314
  ------------------
 2062|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2063|      0|case 52:
  ------------------
  |  Branch (2063:1): [True: 0, False: 3.00M]
  ------------------
 2064|      0|YY_RULE_SETUP
 2065|      0|#line 102 "scanner.l"
 2066|      0|{ return T_AdvRDNSSOpenFlag; }
  ------------------
  |  |  194|      0|#define T_AdvRDNSSOpenFlag 315
  ------------------
 2067|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2068|      0|case 53:
  ------------------
  |  Branch (2068:1): [True: 0, False: 3.00M]
  ------------------
 2069|      0|YY_RULE_SETUP
 2070|      0|#line 103 "scanner.l"
 2071|      0|{ return T_AdvRDNSSLifetime; }
  ------------------
  |  |  195|      0|#define T_AdvRDNSSLifetime 316
  ------------------
 2072|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2073|      0|case 54:
  ------------------
  |  Branch (2073:1): [True: 0, False: 3.00M]
  ------------------
 2074|      0|YY_RULE_SETUP
 2075|      0|#line 104 "scanner.l"
 2076|      0|{ return T_FlushRDNSS; }
  ------------------
  |  |  196|      0|#define T_FlushRDNSS 317
  ------------------
 2077|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2078|      0|case 55:
  ------------------
  |  Branch (2078:1): [True: 0, False: 3.00M]
  ------------------
 2079|      0|YY_RULE_SETUP
 2080|      0|#line 106 "scanner.l"
 2081|      0|{ return T_AdvDNSSLLifetime; }
  ------------------
  |  |  197|      0|#define T_AdvDNSSLLifetime 318
  ------------------
 2082|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2083|      0|case 56:
  ------------------
  |  Branch (2083:1): [True: 0, False: 3.00M]
  ------------------
 2084|      0|YY_RULE_SETUP
 2085|      0|#line 107 "scanner.l"
 2086|      0|{ return T_FlushDNSSL; }
  ------------------
  |  |  198|      0|#define T_FlushDNSSL 319
  ------------------
 2087|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2088|      0|case 57:
  ------------------
  |  Branch (2088:1): [True: 0, False: 3.00M]
  ------------------
 2089|      0|YY_RULE_SETUP
 2090|      0|#line 109 "scanner.l"
 2091|      0|{ return T_MinDelayBetweenRAs; }
  ------------------
  |  |  160|      0|#define T_MinDelayBetweenRAs 281
  ------------------
 2092|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2093|      0|case 58:
  ------------------
  |  Branch (2093:1): [True: 0, False: 3.00M]
  ------------------
 2094|      0|YY_RULE_SETUP
 2095|      0|#line 111 "scanner.l"
 2096|      0|{ return T_AdvMobRtrSupportFlag; }
  ------------------
  |  |  199|      0|#define T_AdvMobRtrSupportFlag 320
  ------------------
 2097|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2098|      0|case 59:
  ------------------
  |  Branch (2098:1): [True: 0, False: 3.00M]
  ------------------
 2099|      0|YY_RULE_SETUP
 2100|      0|#line 113 "scanner.l"
 2101|      0|{ return T_AdvContextLength; }
  ------------------
  |  |  200|      0|#define T_AdvContextLength 321
  ------------------
 2102|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2103|      0|case 60:
  ------------------
  |  Branch (2103:1): [True: 0, False: 3.00M]
  ------------------
 2104|      0|YY_RULE_SETUP
 2105|      0|#line 114 "scanner.l"
 2106|      0|{ return T_AdvContextCompressionFlag; }
  ------------------
  |  |  201|      0|#define T_AdvContextCompressionFlag 322
  ------------------
 2107|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2108|      0|case 61:
  ------------------
  |  Branch (2108:1): [True: 0, False: 3.00M]
  ------------------
 2109|      0|YY_RULE_SETUP
 2110|      0|#line 115 "scanner.l"
 2111|      0|{ return T_AdvContextID; }
  ------------------
  |  |  202|      0|#define T_AdvContextID 323
  ------------------
 2112|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2113|      0|case 62:
  ------------------
  |  Branch (2113:1): [True: 0, False: 3.00M]
  ------------------
 2114|      0|YY_RULE_SETUP
 2115|      0|#line 116 "scanner.l"
 2116|      0|{ return T_AdvLifeTime; }
  ------------------
  |  |  203|      0|#define T_AdvLifeTime 324
  ------------------
 2117|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2118|      0|case 63:
  ------------------
  |  Branch (2118:1): [True: 0, False: 3.00M]
  ------------------
 2119|      0|YY_RULE_SETUP
 2120|      0|#line 117 "scanner.l"
 2121|      0|{ return T_AdvContextPrefix; }
  ------------------
  |  |  204|      0|#define T_AdvContextPrefix 325
  ------------------
 2122|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2123|      0|case 64:
  ------------------
  |  Branch (2123:1): [True: 0, False: 3.00M]
  ------------------
 2124|      0|YY_RULE_SETUP
 2125|      0|#line 119 "scanner.l"
 2126|      0|{ return T_AdvVersionLow; }
  ------------------
  |  |  205|      0|#define T_AdvVersionLow 326
  ------------------
 2127|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2128|      0|case 65:
  ------------------
  |  Branch (2128:1): [True: 0, False: 3.00M]
  ------------------
 2129|      0|YY_RULE_SETUP
 2130|      0|#line 120 "scanner.l"
 2131|      0|{ return T_AdvVersionHigh; }
  ------------------
  |  |  206|      0|#define T_AdvVersionHigh 327
  ------------------
 2132|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2133|      0|case 66:
  ------------------
  |  Branch (2133:1): [True: 0, False: 3.00M]
  ------------------
 2134|      0|YY_RULE_SETUP
 2135|      0|#line 121 "scanner.l"
 2136|      0|{ return T_Adv6LBRaddress; }
  ------------------
  |  |  207|      0|#define T_Adv6LBRaddress 328
  ------------------
 2137|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2138|      3|case 67:
  ------------------
  |  Branch (2138:1): [True: 3, False: 3.00M]
  ------------------
 2139|      3|YY_RULE_SETUP
 2140|      3|#line 123 "scanner.l"
 2141|      3|{
 2142|      3|			static struct in6_addr addr;
 2143|      3|			if (inet_pton(AF_INET6, yytext, &addr) < 1) {
  ------------------
  |  Branch (2143:8): [True: 2, False: 1]
  ------------------
 2144|      2|				return T_BAD_TOKEN;
  ------------------
  |  |  208|      2|#define T_BAD_TOKEN 329
  ------------------
 2145|      2|			}
 2146|       |
 2147|      1|			yylval.addr = &addr;
 2148|      1|			return IPV6ADDR;
  ------------------
  |  |  153|      1|#define IPV6ADDR 274
  ------------------
 2149|      3|		}
 2150|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2151|      3|case 68:
  ------------------
  |  Branch (2151:1): [True: 3, False: 3.00M]
  ------------------
 2152|      3|YY_RULE_SETUP
 2153|      3|#line 133 "scanner.l"
 2154|      3|{
 2155|      3|			static struct in6_addr addr;
 2156|      3|			if (inet_pton(AF_INET6, &yytext[1], &addr) < 1) {
  ------------------
  |  Branch (2156:8): [True: 1, False: 2]
  ------------------
 2157|      1|				return T_BAD_TOKEN;
  ------------------
  |  |  208|      1|#define T_BAD_TOKEN 329
  ------------------
 2158|      1|			}
 2159|       |
 2160|      2|			yylval.addr = &addr;
 2161|      2|			return NOT_IPV6ADDR;
  ------------------
  |  |  154|      2|#define NOT_IPV6ADDR 275
  ------------------
 2162|      3|		}
 2163|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2164|    135|case 69:
  ------------------
  |  Branch (2164:1): [True: 135, False: 3.00M]
  ------------------
 2165|    135|YY_RULE_SETUP
 2166|    135|#line 143 "scanner.l"
 2167|    135|{
 2168|    135|			unsigned long lnum;
 2169|    135|			char *endp;
 2170|    135|			lnum = strtoul(yytext, &endp, 10);
 2171|    135|			if (*yytext == '\0' || *endp != '\0')
  ------------------
  |  Branch (2171:8): [True: 0, False: 135]
  |  Branch (2171:27): [True: 0, False: 135]
  ------------------
 2172|      0|				return T_BAD_TOKEN;
  ------------------
  |  |  208|      0|#define T_BAD_TOKEN 329
  ------------------
 2173|    135|			if (lnum > 0xFFFFFFFFUL)
  ------------------
  |  Branch (2173:8): [True: 67, False: 68]
  ------------------
 2174|     67|				return T_BAD_TOKEN;	/* XXX */
  ------------------
  |  |  208|     67|#define T_BAD_TOKEN 329
  ------------------
 2175|     68|			yylval.num = lnum;
 2176|     68|			return NUMBER;
  ------------------
  |  |  149|     68|#define NUMBER 270
  ------------------
 2177|    135|		}
 2178|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2179|      2|case 70:
  ------------------
  |  Branch (2179:1): [True: 2, False: 3.00M]
  ------------------
 2180|      2|YY_RULE_SETUP
 2181|      2|#line 155 "scanner.l"
 2182|      2|{ yylval.snum = atoi(yytext); return SIGNEDNUMBER; }
  ------------------
  |  |  150|      2|#define SIGNEDNUMBER 271
  ------------------
 2183|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2184|      1|case 71:
  ------------------
  |  Branch (2184:1): [True: 1, False: 3.00M]
  ------------------
 2185|      1|YY_RULE_SETUP
 2186|      1|#line 157 "scanner.l"
 2187|      1|{ yylval.dec = atof(yytext); return DECIMAL; }
  ------------------
  |  |  151|      1|#define DECIMAL 272
  ------------------
 2188|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2189|      1|case 72:
  ------------------
  |  Branch (2189:1): [True: 1, False: 3.00M]
  ------------------
 2190|      1|YY_RULE_SETUP
 2191|      1|#line 159 "scanner.l"
 2192|      1|{ return INFINITY; }
  ------------------
  |  |  155|      1|#define INFINITY 276
  ------------------
 2193|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2194|      2|case 73:
  ------------------
  |  Branch (2194:1): [True: 2, False: 3.00M]
  ------------------
 2195|      2|YY_RULE_SETUP
 2196|      2|#line 161 "scanner.l"
 2197|      2|{ yylval.num = 1; return SWITCH; }
  ------------------
  |  |  152|      2|#define SWITCH 273
  ------------------
 2198|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2199|      1|case 74:
  ------------------
  |  Branch (2199:1): [True: 1, False: 3.00M]
  ------------------
 2200|      1|YY_RULE_SETUP
 2201|      1|#line 163 "scanner.l"
 2202|      1|{ yylval.num = 0; return SWITCH; }
  ------------------
  |  |  152|      1|#define SWITCH 273
  ------------------
 2203|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2204|      1|case 75:
  ------------------
  |  Branch (2204:1): [True: 1, False: 3.00M]
  ------------------
 2205|      1|YY_RULE_SETUP
 2206|      1|#line 165 "scanner.l"
 2207|      1|{ yylval.snum = -1; return SIGNEDNUMBER; }
  ------------------
  |  |  150|      1|#define SIGNEDNUMBER 271
  ------------------
 2208|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2209|      0|case 76:
  ------------------
  |  Branch (2209:1): [True: 0, False: 3.00M]
  ------------------
 2210|      0|YY_RULE_SETUP
 2211|      0|#line 167 "scanner.l"
 2212|      0|{ yylval.snum = 0; return SIGNEDNUMBER; }
  ------------------
  |  |  150|      0|#define SIGNEDNUMBER 271
  ------------------
 2213|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2214|      2|case 77:
  ------------------
  |  Branch (2214:1): [True: 2, False: 3.00M]
  ------------------
 2215|      2|YY_RULE_SETUP
 2216|      2|#line 169 "scanner.l"
 2217|      2|{ yylval.snum = 1; return SIGNEDNUMBER; }
  ------------------
  |  |  150|      2|#define SIGNEDNUMBER 271
  ------------------
 2218|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2219|    289|case 78:
  ------------------
  |  Branch (2219:1): [True: 289, False: 3.00M]
  ------------------
 2220|       |/* rule 78 can match eol */
 2221|    289|YY_RULE_SETUP
 2222|    289|#line 171 "scanner.l"
 2223|    289|{
 2224|    289|			static char string[256];
 2225|       |
 2226|    289|			strncpy(string, yytext, sizeof(string));
 2227|    289|			string[sizeof(string)-1] = '\0';
 2228|    289|			yylval.str = string;
 2229|    289|			return STRING;
  ------------------
  |  |  148|    289|#define STRING 269
  ------------------
 2230|    135|		}
 2231|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2232|      4|case 79:
  ------------------
  |  Branch (2232:1): [True: 4, False: 3.00M]
  ------------------
 2233|      4|YY_RULE_SETUP
 2234|      4|#line 180 "scanner.l"
 2235|      4|{ return *yytext; }
 2236|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2237|     98|case 80:
  ------------------
  |  Branch (2237:1): [True: 98, False: 3.00M]
  ------------------
 2238|     98|YY_RULE_SETUP
 2239|     98|#line 182 "scanner.l"
 2240|     98|{ return T_BAD_TOKEN; }
  ------------------
  |  |  208|     98|#define T_BAD_TOKEN 329
  ------------------
 2241|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2242|      0|case 81:
  ------------------
  |  Branch (2242:1): [True: 0, False: 3.00M]
  ------------------
 2243|      0|YY_RULE_SETUP
 2244|      0|#line 183 "scanner.l"
 2245|      0|ECHO;
  ------------------
  |  | 1614|      0|#define ECHO do { if (fwrite( yytext, (size_t) yyleng, 1, yyout )) {} } while (0)
  |  |  ------------------
  |  |  |  Branch (1614:23): [True: 0, False: 0]
  |  |  |  Branch (1614:80): [Folded, False: 0]
  |  |  ------------------
  ------------------
 2246|      0|	YY_BREAK
  ------------------
  |  | 1693|      0|#define YY_BREAK /*LINTED*/break;
  ------------------
 2247|      0|#line 2248 "scanner.c"
 2248|     48|case YY_STATE_EOF(INITIAL):
  ------------------
  |  |  125|     48|#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  |  |  ------------------
  |  |  |  |  377|     48|#define YY_END_OF_BUFFER 82
  |  |  ------------------
  ------------------
  |  Branch (2248:1): [True: 48, False: 3.00M]
  ------------------
 2249|     48|	yyterminate();
  ------------------
  |  | 1658|     48|#define yyterminate() return YY_NULL
  |  |  ------------------
  |  |  |  |  106|     48|#define YY_NULL 0
  |  |  ------------------
  ------------------
 2250|       |
 2251|  46.9k|	case YY_END_OF_BUFFER:
  ------------------
  |  |  377|  46.9k|#define YY_END_OF_BUFFER 82
  ------------------
  |  Branch (2251:2): [True: 46.9k, False: 2.95M]
  ------------------
 2252|  46.9k|		{
 2253|       |		/* Amount of text matched not including the EOB char. */
 2254|  46.9k|		int yy_amount_of_matched_text = (int) (yy_cp - (yytext_ptr)) - 1;
  ------------------
  |  |  360|  46.9k|#define yytext_ptr yytext
  ------------------
 2255|       |
 2256|       |		/* Undo the effects of YY_DO_BEFORE_ACTION. */
 2257|  46.9k|		*yy_cp = (yy_hold_char);
 2258|  46.9k|		YY_RESTORE_YY_MORE_OFFSET
 2259|       |
 2260|  46.9k|		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
  ------------------
  |  |  284|  46.9k|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
              		if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_NEW )
  ------------------
  |  |  250|  46.9k|#define YY_BUFFER_NEW 0
  ------------------
  |  Branch (2260:8): [True: 596, False: 46.3k]
  ------------------
 2261|    596|			{
 2262|       |			/* We're scanning a new file or input source.  It's
 2263|       |			 * possible that this happened because the user
 2264|       |			 * just pointed yyin at a new source and called
 2265|       |			 * yylex().  If so, then we have to assure
 2266|       |			 * consistency between YY_CURRENT_BUFFER and our
 2267|       |			 * globals.  Here is the right place to do so, because
 2268|       |			 * this is the first action (other than possibly a
 2269|       |			 * back-up) that will match for the new input source.
 2270|       |			 */
 2271|    596|			(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
  ------------------
  |  |  284|    596|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2272|    596|			YY_CURRENT_BUFFER_LVALUE->yy_input_file = yyin;
  ------------------
  |  |  284|    596|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2273|    596|			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
  ------------------
  |  |  284|    596|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
              			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status = YY_BUFFER_NORMAL;
  ------------------
  |  |  251|    596|#define YY_BUFFER_NORMAL 1
  ------------------
 2274|    596|			}
 2275|       |
 2276|       |		/* Note that here we test for yy_c_buf_p "<=" to the position
 2277|       |		 * of the first EOB in the buffer, since yy_c_buf_p will
 2278|       |		 * already have been incremented past the NUL character
 2279|       |		 * (since all states make transitions on EOB to the
 2280|       |		 * end-of-buffer state).  Contrast this with the test
 2281|       |		 * in input().
 2282|       |		 */
 2283|  46.9k|		if ( (yy_c_buf_p) <= &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] )
  ------------------
  |  |  284|  46.9k|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
  |  Branch (2283:8): [True: 43.7k, False: 3.18k]
  ------------------
 2284|  43.7k|			{ /* This was really a NUL. */
 2285|  43.7k|			yy_state_type yy_next_state;
 2286|       |
 2287|  43.7k|			(yy_c_buf_p) = (yytext_ptr) + yy_amount_of_matched_text;
  ------------------
  |  |  360|  43.7k|#define yytext_ptr yytext
  ------------------
 2288|       |
 2289|  43.7k|			yy_current_state = yy_get_previous_state(  );
 2290|       |
 2291|       |			/* Okay, we're now positioned to make the NUL
 2292|       |			 * transition.  We couldn't have
 2293|       |			 * yy_get_previous_state() go ahead and do it
 2294|       |			 * for us because it doesn't know how to deal
 2295|       |			 * with the possibility of jamming (and we don't
 2296|       |			 * want to build jamming into it because then it
 2297|       |			 * will run more slowly).
 2298|       |			 */
 2299|       |
 2300|  43.7k|			yy_next_state = yy_try_NUL_trans( yy_current_state );
 2301|       |
 2302|  43.7k|			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
  ------------------
  |  |  360|  43.7k|#define yytext_ptr yytext
  ------------------
              			yy_bp = (yytext_ptr) + YY_MORE_ADJ;
  ------------------
  |  | 1491|  43.7k|#define YY_MORE_ADJ 0
  ------------------
 2303|       |
 2304|  43.7k|			if ( yy_next_state )
  ------------------
  |  Branch (2304:9): [True: 43.6k, False: 81]
  ------------------
 2305|  43.6k|				{
 2306|       |				/* Consume the NUL. */
 2307|  43.6k|				yy_cp = ++(yy_c_buf_p);
 2308|  43.6k|				yy_current_state = yy_next_state;
 2309|  43.6k|				goto yy_match;
 2310|  43.6k|				}
 2311|       |
 2312|     81|			else
 2313|     81|				{
 2314|     81|				yy_cp = (yy_c_buf_p);
 2315|     81|				goto yy_find_action;
 2316|     81|				}
 2317|  43.7k|			}
 2318|       |
 2319|  3.18k|		else switch ( yy_get_next_buffer(  ) )
  ------------------
  |  Branch (2319:17): [True: 3.18k, False: 0]
  ------------------
 2320|  3.18k|			{
 2321|     48|			case EOB_ACT_END_OF_FILE:
  ------------------
  |  |  162|     48|#define EOB_ACT_END_OF_FILE 1
  ------------------
  |  Branch (2321:4): [True: 48, False: 3.13k]
  ------------------
 2322|     48|				{
 2323|     48|				(yy_did_buffer_switch_on_eof) = 0;
 2324|       |
 2325|     48|				if ( yywrap(  ) )
  ------------------
  |  |  345|     48|#define yywrap() (/*CONSTCOND*/1)
  |  |  ------------------
  |  |  |  Branch (345:18): [True: 48, Folded]
  |  |  ------------------
  ------------------
 2326|     48|					{
 2327|       |					/* Note: because we've taken care in
 2328|       |					 * yy_get_next_buffer() to have set up
 2329|       |					 * yytext, we can now set up
 2330|       |					 * yy_c_buf_p so that if some total
 2331|       |					 * hoser (like flex itself) wants to
 2332|       |					 * call the scanner after we return the
 2333|       |					 * YY_NULL, it'll still work - another
 2334|       |					 * YY_NULL will get returned.
 2335|       |					 */
 2336|     48|					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
  ------------------
  |  |  360|     48|#define yytext_ptr yytext
  ------------------
              					(yy_c_buf_p) = (yytext_ptr) + YY_MORE_ADJ;
  ------------------
  |  | 1491|     48|#define YY_MORE_ADJ 0
  ------------------
 2337|       |
 2338|     48|					yy_act = YY_STATE_EOF(YY_START);
  ------------------
  |  |  125|     48|#define YY_STATE_EOF(state) (YY_END_OF_BUFFER + state + 1)
  |  |  ------------------
  |  |  |  |  377|     48|#define YY_END_OF_BUFFER 82
  |  |  ------------------
  ------------------
 2339|     48|					goto do_action;
 2340|     48|					}
 2341|       |
 2342|      0|				else
 2343|      0|					{
 2344|      0|					if ( ! (yy_did_buffer_switch_on_eof) )
  ------------------
  |  Branch (2344:11): [True: 0, False: 0]
  ------------------
 2345|      0|						YY_NEW_FILE;
  ------------------
  |  |  127|      0|#define YY_NEW_FILE yyrestart( yyin  )
  ------------------
 2346|      0|					}
 2347|      0|				break;
 2348|     48|				}
 2349|       |
 2350|  2.66k|			case EOB_ACT_CONTINUE_SCAN:
  ------------------
  |  |  161|  2.66k|#define EOB_ACT_CONTINUE_SCAN 0
  ------------------
  |  Branch (2350:4): [True: 2.66k, False: 527]
  ------------------
 2351|  2.66k|				(yy_c_buf_p) =
 2352|  2.66k|					(yytext_ptr) + yy_amount_of_matched_text;
  ------------------
  |  |  360|  2.66k|#define yytext_ptr yytext
  ------------------
 2353|       |
 2354|  2.66k|				yy_current_state = yy_get_previous_state(  );
 2355|       |
 2356|  2.66k|				yy_cp = (yy_c_buf_p);
 2357|  2.66k|				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
  ------------------
  |  |  360|  2.66k|#define yytext_ptr yytext
  ------------------
              				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
  ------------------
  |  | 1491|  2.66k|#define YY_MORE_ADJ 0
  ------------------
 2358|  2.66k|				goto yy_match;
 2359|       |
 2360|    479|			case EOB_ACT_LAST_MATCH:
  ------------------
  |  |  163|    479|#define EOB_ACT_LAST_MATCH 2
  ------------------
  |  Branch (2360:4): [True: 479, False: 2.70k]
  ------------------
 2361|    479|				(yy_c_buf_p) =
 2362|    479|				&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)];
  ------------------
  |  |  284|    479|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2363|       |
 2364|    479|				yy_current_state = yy_get_previous_state(  );
 2365|       |
 2366|    479|				yy_cp = (yy_c_buf_p);
 2367|    479|				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
  ------------------
  |  |  360|    479|#define yytext_ptr yytext
  ------------------
              				yy_bp = (yytext_ptr) + YY_MORE_ADJ;
  ------------------
  |  | 1491|    479|#define YY_MORE_ADJ 0
  ------------------
 2368|    479|				goto yy_find_action;
 2369|  3.18k|			}
 2370|      0|		break;
 2371|  46.9k|		}
 2372|       |
 2373|      0|	default:
  ------------------
  |  Branch (2373:2): [True: 0, False: 3.00M]
  ------------------
 2374|      0|		YY_FATAL_ERROR(
  ------------------
  |  | 1668|      0|#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
  ------------------
 2375|  3.00M|			"fatal flex scanner internal error--no action found" );
 2376|  3.00M|	} /* end of action switch */
 2377|  3.00M|		} /* end of scanning one token */
 2378|    596|	} /* end of user's declarations */
 2379|    596|} /* end of yylex */
yyrestart:
 2670|     48|{
 2671|       |    
 2672|     48|	if ( ! YY_CURRENT_BUFFER ){
  ------------------
  |  |  278|     48|#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
  |  |  ------------------
  |  |  |  Branch (278:29): [True: 48, False: 0]
  |  |  ------------------
  |  |  279|     48|                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
  |  |  280|     48|                          : NULL)
  ------------------
  |  Branch (2672:7): [True: 0, False: 48]
  ------------------
 2673|      0|        yyensure_buffer_stack ();
 2674|      0|		YY_CURRENT_BUFFER_LVALUE =
  ------------------
  |  |  284|      0|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2675|      0|            yy_create_buffer( yyin, YY_BUF_SIZE );
  ------------------
  |  |  139|      0|#define YY_BUF_SIZE 16384
  ------------------
 2676|      0|	}
 2677|       |
 2678|       |	yy_init_buffer( YY_CURRENT_BUFFER, input_file );
  ------------------
  |  |  278|     48|#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
  |  |  ------------------
  |  |  |  Branch (278:29): [True: 48, False: 0]
  |  |  ------------------
  |  |  279|     48|                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
  |  |  280|     48|                          : NULL)
  ------------------
 2679|     48|	yy_load_buffer_state(  );
 2680|     48|}
yy_create_buffer:
 2732|    596|{
 2733|    596|	YY_BUFFER_STATE b;
 2734|       |    
 2735|    596|	b = (YY_BUFFER_STATE) yyalloc( sizeof( struct yy_buffer_state )  );
 2736|    596|	if ( ! b )
  ------------------
  |  Branch (2736:7): [True: 0, False: 596]
  ------------------
 2737|      0|		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  ------------------
  |  | 1668|      0|#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
  ------------------
 2738|       |
 2739|    596|	b->yy_buf_size = size;
 2740|       |
 2741|       |	/* yy_ch_buf has to be 2 characters longer than the size given because
 2742|       |	 * we need to put in 2 end-of-buffer characters.
 2743|       |	 */
 2744|    596|	b->yy_ch_buf = (char *) yyalloc( (yy_size_t) (b->yy_buf_size + 2)  );
 2745|    596|	if ( ! b->yy_ch_buf )
  ------------------
  |  Branch (2745:7): [True: 0, False: 596]
  ------------------
 2746|      0|		YY_FATAL_ERROR( "out of dynamic memory in yy_create_buffer()" );
  ------------------
  |  | 1668|      0|#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
  ------------------
 2747|       |
 2748|    596|	b->yy_is_our_buffer = 1;
 2749|       |
 2750|    596|	yy_init_buffer( b, file );
 2751|       |
 2752|    596|	return b;
 2753|    596|}
yy_delete_buffer:
 2760|    596|{
 2761|       |    
 2762|    596|	if ( ! b )
  ------------------
  |  Branch (2762:7): [True: 0, False: 596]
  ------------------
 2763|      0|		return;
 2764|       |
 2765|    596|	if ( b == YY_CURRENT_BUFFER ) /* Not sure if we should pop here. */
  ------------------
  |  |  278|    596|#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
  |  |  ------------------
  |  |  |  Branch (278:29): [True: 596, False: 0]
  |  |  ------------------
  |  |  279|    596|                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
  |  |  280|    596|                          : NULL)
  ------------------
  |  Branch (2765:7): [True: 596, False: 0]
  ------------------
 2766|    596|		YY_CURRENT_BUFFER_LVALUE = (YY_BUFFER_STATE) 0;
  ------------------
  |  |  284|    596|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2767|       |
 2768|    596|	if ( b->yy_is_our_buffer )
  ------------------
  |  Branch (2768:7): [True: 596, False: 0]
  ------------------
 2769|    596|		yyfree( (void *) b->yy_ch_buf  );
 2770|       |
 2771|    596|	yyfree( (void *) b  );
 2772|    596|}
yy_flush_buffer:
 2807|    644|{
 2808|    644|    	if ( ! b )
  ------------------
  |  Branch (2808:11): [True: 0, False: 644]
  ------------------
 2809|      0|		return;
 2810|       |
 2811|    644|	b->yy_n_chars = 0;
 2812|       |
 2813|       |	/* We always need two end-of-buffer characters.  The first causes
 2814|       |	 * a transition to the end-of-buffer state.  The second causes
 2815|       |	 * a jam in that state.
 2816|       |	 */
 2817|    644|	b->yy_ch_buf[0] = YY_END_OF_BUFFER_CHAR;
  ------------------
  |  |  128|    644|#define YY_END_OF_BUFFER_CHAR 0
  ------------------
 2818|    644|	b->yy_ch_buf[1] = YY_END_OF_BUFFER_CHAR;
  ------------------
  |  |  128|    644|#define YY_END_OF_BUFFER_CHAR 0
  ------------------
 2819|       |
 2820|    644|	b->yy_buf_pos = &b->yy_ch_buf[0];
 2821|       |
 2822|    644|	b->yy_at_bol = 1;
 2823|    644|	b->yy_buffer_status = YY_BUFFER_NEW;
  ------------------
  |  |  250|    644|#define YY_BUFFER_NEW 0
  ------------------
 2824|       |
 2825|    644|	if ( b == YY_CURRENT_BUFFER )
  ------------------
  |  |  278|    644|#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
  |  |  ------------------
  |  |  |  Branch (278:29): [True: 644, False: 0]
  |  |  ------------------
  |  |  279|    644|                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
  |  |  280|    644|                          : NULL)
  ------------------
  |  Branch (2825:7): [True: 48, False: 596]
  ------------------
 2826|     48|		yy_load_buffer_state(  );
 2827|    644|}
yypop_buffer_state:
 2866|    596|{
 2867|    596|    	if (!YY_CURRENT_BUFFER)
  ------------------
  |  |  278|    596|#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
  |  |  ------------------
  |  |  |  Branch (278:29): [True: 596, False: 0]
  |  |  ------------------
  |  |  279|    596|                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
  |  |  280|    596|                          : NULL)
  ------------------
  |  Branch (2867:10): [True: 596, False: 0]
  ------------------
 2868|    596|		return;
 2869|       |
 2870|      0|	yy_delete_buffer(YY_CURRENT_BUFFER );
  ------------------
  |  |  278|      0|#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
  |  |  ------------------
  |  |  |  Branch (278:29): [True: 0, False: 0]
  |  |  ------------------
  |  |  279|      0|                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
  |  |  280|      0|                          : NULL)
  ------------------
 2871|      0|	YY_CURRENT_BUFFER_LVALUE = NULL;
  ------------------
  |  |  284|      0|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2872|      0|	if ((yy_buffer_stack_top) > 0)
  ------------------
  |  Branch (2872:6): [True: 0, False: 0]
  ------------------
 2873|      0|		--(yy_buffer_stack_top);
 2874|       |
 2875|      0|	if (YY_CURRENT_BUFFER) {
  ------------------
  |  |  278|      0|#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
  |  |  ------------------
  |  |  |  Branch (278:27): [True: 0, False: 0]
  |  |  |  Branch (278:29): [True: 0, False: 0]
  |  |  ------------------
  |  |  279|      0|                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
  |  |  280|      0|                          : NULL)
  ------------------
 2876|      0|		yy_load_buffer_state(  );
 2877|      0|		(yy_did_buffer_switch_on_eof) = 1;
 2878|      0|	}
 2879|      0|}
yyset_in:
 3101|    596|{
 3102|    596|        yyin = _in_str ;
 3103|    596|}
yylex_destroy:
 3153|    596|{
 3154|       |    
 3155|       |    /* Pop the buffer stack, destroying each element. */
 3156|  1.19k|	while(YY_CURRENT_BUFFER){
  ------------------
  |  |  278|  1.19k|#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
  |  |  ------------------
  |  |  |  Branch (278:27): [True: 596, False: 596]
  |  |  |  Branch (278:29): [True: 1.19k, False: 0]
  |  |  ------------------
  |  |  279|  1.19k|                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
  |  |  280|  1.19k|                          : NULL)
  ------------------
 3157|    596|		yy_delete_buffer( YY_CURRENT_BUFFER  );
  ------------------
  |  |  278|    596|#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
  |  |  ------------------
  |  |  |  Branch (278:29): [True: 596, False: 0]
  |  |  ------------------
  |  |  279|    596|                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
  |  |  280|    596|                          : NULL)
  ------------------
 3158|    596|		YY_CURRENT_BUFFER_LVALUE = NULL;
  ------------------
  |  |  284|    596|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 3159|    596|		yypop_buffer_state();
 3160|    596|	}
 3161|       |
 3162|       |	/* Destroy the stack itself. */
 3163|    596|	yyfree((yy_buffer_stack) );
 3164|    596|	(yy_buffer_stack) = NULL;
 3165|       |
 3166|       |    /* Reset the globals. This is important in a non-reentrant scanner so the next time
 3167|       |     * yylex() is called, initialization will occur. */
 3168|    596|    yy_init_globals( );
 3169|       |
 3170|    596|    return 0;
 3171|    596|}
yyalloc:
 3199|  1.78k|{
 3200|  1.78k|			return malloc(size);
 3201|  1.78k|}
yyrealloc:
 3204|    134|{
 3205|       |		
 3206|       |	/* The cast to (char *) in the following accommodates both
 3207|       |	 * implementations that use char* generic pointers, and those
 3208|       |	 * that use void* generic pointers.  It works with the latter
 3209|       |	 * because both ANSI C and C++ allow castless assignment from
 3210|       |	 * any pointer type to void*, and deal with argument conversions
 3211|       |	 * as though doing an assignment.
 3212|       |	 */
 3213|    134|	return realloc(ptr, size);
 3214|    134|}
yyfree:
 3217|  1.78k|{
 3218|  1.78k|			free( (char *) ptr );	/* see yyrealloc() for (char *) cast */
 3219|  1.78k|}
scanner.c:yy_get_next_buffer:
 2389|  3.18k|{
 2390|  3.18k|    	char *dest = YY_CURRENT_BUFFER_LVALUE->yy_ch_buf;
  ------------------
  |  |  284|  3.18k|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2391|  3.18k|	char *source = (yytext_ptr);
  ------------------
  |  |  360|  3.18k|#define yytext_ptr yytext
  ------------------
 2392|  3.18k|	int number_to_move, i;
 2393|  3.18k|	int ret_val;
 2394|       |
 2395|  3.18k|	if ( (yy_c_buf_p) > &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] )
  ------------------
  |  |  284|  3.18k|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
  |  Branch (2395:7): [True: 0, False: 3.18k]
  ------------------
 2396|      0|		YY_FATAL_ERROR(
  ------------------
  |  | 1668|      0|#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
  ------------------
 2397|  3.18k|		"fatal flex scanner internal error--end of buffer missed" );
 2398|       |
 2399|  3.18k|	if ( YY_CURRENT_BUFFER_LVALUE->yy_fill_buffer == 0 )
  ------------------
  |  |  284|  3.18k|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
  |  Branch (2399:7): [True: 0, False: 3.18k]
  ------------------
 2400|      0|		{ /* Don't try to fill the buffer, so this is an EOF. */
 2401|      0|		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
  ------------------
  |  |  360|      0|#define yytext_ptr yytext
  ------------------
              		if ( (yy_c_buf_p) - (yytext_ptr) - YY_MORE_ADJ == 1 )
  ------------------
  |  | 1491|      0|#define YY_MORE_ADJ 0
  ------------------
  |  Branch (2401:8): [True: 0, False: 0]
  ------------------
 2402|      0|			{
 2403|       |			/* We matched a single character, the EOB, so
 2404|       |			 * treat this as a final EOF.
 2405|       |			 */
 2406|      0|			return EOB_ACT_END_OF_FILE;
  ------------------
  |  |  162|      0|#define EOB_ACT_END_OF_FILE 1
  ------------------
 2407|      0|			}
 2408|       |
 2409|      0|		else
 2410|      0|			{
 2411|       |			/* We matched some text prior to the EOB, first
 2412|       |			 * process it.
 2413|       |			 */
 2414|      0|			return EOB_ACT_LAST_MATCH;
  ------------------
  |  |  163|      0|#define EOB_ACT_LAST_MATCH 2
  ------------------
 2415|      0|			}
 2416|      0|		}
 2417|       |
 2418|       |	/* Try to read more data. */
 2419|       |
 2420|       |	/* First move last chars to start of buffer. */
 2421|  3.18k|	number_to_move = (int) ((yy_c_buf_p) - (yytext_ptr) - 1);
  ------------------
  |  |  360|  3.18k|#define yytext_ptr yytext
  ------------------
 2422|       |
 2423|   261M|	for ( i = 0; i < number_to_move; ++i )
  ------------------
  |  Branch (2423:15): [True: 261M, False: 3.18k]
  ------------------
 2424|   261M|		*(dest++) = *(source++);
 2425|       |
 2426|  3.18k|	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
  ------------------
  |  |  284|  3.18k|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
              	if ( YY_CURRENT_BUFFER_LVALUE->yy_buffer_status == YY_BUFFER_EOF_PENDING )
  ------------------
  |  |  262|  3.18k|#define YY_BUFFER_EOF_PENDING 2
  ------------------
  |  Branch (2426:7): [True: 17, False: 3.17k]
  ------------------
 2427|       |		/* don't do the read, it's not guaranteed to return an EOF,
 2428|       |		 * just force an EOF
 2429|       |		 */
 2430|     17|		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars) = 0;
  ------------------
  |  |  284|     17|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2431|       |
 2432|  3.17k|	else
 2433|  3.17k|		{
 2434|  3.17k|			int num_to_read =
 2435|  3.17k|			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
  ------------------
  |  |  284|  3.17k|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2436|       |
 2437|  3.30k|		while ( num_to_read <= 0 )
  ------------------
  |  Branch (2437:11): [True: 134, False: 3.17k]
  ------------------
 2438|    134|			{ /* Not enough room in the buffer - grow it. */
 2439|       |
 2440|       |			/* just a shorter name for the current buffer */
 2441|    134|			YY_BUFFER_STATE b = YY_CURRENT_BUFFER_LVALUE;
  ------------------
  |  |  284|    134|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2442|       |
 2443|    134|			int yy_c_buf_p_offset =
 2444|    134|				(int) ((yy_c_buf_p) - b->yy_ch_buf);
 2445|       |
 2446|    134|			if ( b->yy_is_our_buffer )
  ------------------
  |  Branch (2446:9): [True: 134, False: 0]
  ------------------
 2447|    134|				{
 2448|    134|				int new_size = b->yy_buf_size * 2;
 2449|       |
 2450|    134|				if ( new_size <= 0 )
  ------------------
  |  Branch (2450:10): [True: 0, False: 134]
  ------------------
 2451|      0|					b->yy_buf_size += b->yy_buf_size / 8;
 2452|    134|				else
 2453|    134|					b->yy_buf_size *= 2;
 2454|       |
 2455|    134|				b->yy_ch_buf = (char *)
 2456|       |					/* Include room in for 2 EOB chars. */
 2457|    134|					yyrealloc( (void *) b->yy_ch_buf,
 2458|    134|							 (yy_size_t) (b->yy_buf_size + 2)  );
 2459|    134|				}
 2460|      0|			else
 2461|       |				/* Can't grow it, we don't own it. */
 2462|      0|				b->yy_ch_buf = NULL;
 2463|       |
 2464|    134|			if ( ! b->yy_ch_buf )
  ------------------
  |  Branch (2464:9): [True: 0, False: 134]
  ------------------
 2465|      0|				YY_FATAL_ERROR(
  ------------------
  |  | 1668|      0|#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
  ------------------
 2466|    134|				"fatal error - scanner input buffer overflow" );
 2467|       |
 2468|    134|			(yy_c_buf_p) = &b->yy_ch_buf[yy_c_buf_p_offset];
 2469|       |
 2470|    134|			num_to_read = YY_CURRENT_BUFFER_LVALUE->yy_buf_size -
  ------------------
  |  |  284|    134|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2471|    134|						number_to_move - 1;
 2472|       |
 2473|    134|			}
 2474|       |
 2475|  3.17k|		if ( num_to_read > YY_READ_BUF_SIZE )
  ------------------
  |  | 1605|  3.17k|#define YY_READ_BUF_SIZE 8192
  ------------------
  |  Branch (2475:8): [True: 2.68k, False: 490]
  ------------------
 2476|  2.68k|			num_to_read = YY_READ_BUF_SIZE;
  ------------------
  |  | 1605|  2.68k|#define YY_READ_BUF_SIZE 8192
  ------------------
 2477|       |
 2478|       |		/* Read in more data. */
 2479|  3.17k|		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
  ------------------
  |  | 1622|  3.17k|	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
  |  |  ------------------
  |  |  |  |  284|  3.17k|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  |  |  ------------------
  |  |  |  Branch (1622:7): [True: 0, False: 3.17k]
  |  |  ------------------
  |  | 1623|  3.17k|		{ \
  |  | 1624|      0|		int c = '*'; \
  |  | 1625|      0|		int n; \
  |  | 1626|      0|		for ( n = 0; n < max_size && \
  |  |  ------------------
  |  |  |  Branch (1626:16): [True: 0, False: 0]
  |  |  ------------------
  |  | 1627|      0|			     (c = getc( yyin )) != EOF && c != '\n'; ++n ) \
  |  |  ------------------
  |  |  |  Branch (1627:9): [True: 0, False: 0]
  |  |  |  Branch (1627:38): [True: 0, False: 0]
  |  |  ------------------
  |  | 1628|      0|			buf[n] = (char) c; \
  |  | 1629|      0|		if ( c == '\n' ) \
  |  |  ------------------
  |  |  |  Branch (1629:8): [True: 0, False: 0]
  |  |  ------------------
  |  | 1630|      0|			buf[n++] = (char) c; \
  |  | 1631|      0|		if ( c == EOF && ferror( yyin ) ) \
  |  |  ------------------
  |  |  |  Branch (1631:8): [True: 0, False: 0]
  |  |  |  Branch (1631:20): [True: 0, False: 0]
  |  |  ------------------
  |  | 1632|      0|			YY_FATAL_ERROR( "input in flex scanner failed" ); \
  |  |  ------------------
  |  |  |  | 1668|      0|#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
  |  |  ------------------
  |  | 1633|      0|		result = n; \
  |  | 1634|      0|		} \
  |  | 1635|  3.17k|	else \
  |  | 1636|  3.17k|		{ \
  |  | 1637|  3.17k|		errno=0; \
  |  | 1638|  3.17k|		while ( (result = (int) fread(buf, 1, (yy_size_t) max_size, yyin)) == 0 && ferror(yyin)) \
  |  |  ------------------
  |  |  |  Branch (1638:11): [True: 510, False: 2.66k]
  |  |  |  Branch (1638:78): [True: 0, False: 510]
  |  |  ------------------
  |  | 1639|  3.17k|			{ \
  |  | 1640|      0|			if( errno != EINTR) \
  |  |  ------------------
  |  |  |  Branch (1640:8): [True: 0, False: 0]
  |  |  ------------------
  |  | 1641|      0|				{ \
  |  | 1642|      0|				YY_FATAL_ERROR( "input in flex scanner failed" ); \
  |  |  ------------------
  |  |  |  | 1668|      0|#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
  |  |  ------------------
  |  | 1643|      0|				break; \
  |  | 1644|      0|				} \
  |  | 1645|      0|			errno=0; \
  |  | 1646|      0|			clearerr(yyin); \
  |  | 1647|      0|			} \
  |  | 1648|  3.17k|		}\
  ------------------
 2480|  3.17k|			(yy_n_chars), num_to_read );
 2481|       |
 2482|  3.17k|		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
  ------------------
  |  |  284|  3.17k|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2483|  3.17k|		}
 2484|       |
 2485|  3.18k|	if ( (yy_n_chars) == 0 )
  ------------------
  |  Branch (2485:7): [True: 527, False: 2.66k]
  ------------------
 2486|    527|		{
 2487|    527|		if ( number_to_move == YY_MORE_ADJ )
  ------------------
  |  | 1491|    527|#define YY_MORE_ADJ 0
  ------------------
  |  Branch (2487:8): [True: 48, False: 479]
  ------------------
 2488|     48|			{
 2489|     48|			ret_val = EOB_ACT_END_OF_FILE;
  ------------------
  |  |  162|     48|#define EOB_ACT_END_OF_FILE 1
  ------------------
 2490|     48|			yyrestart( yyin  );
 2491|     48|			}
 2492|       |
 2493|    479|		else
 2494|    479|			{
 2495|    479|			ret_val = EOB_ACT_LAST_MATCH;
  ------------------
  |  |  163|    479|#define EOB_ACT_LAST_MATCH 2
  ------------------
 2496|    479|			YY_CURRENT_BUFFER_LVALUE->yy_buffer_status =
  ------------------
  |  |  284|    479|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2497|    479|				YY_BUFFER_EOF_PENDING;
  ------------------
  |  |  262|    479|#define YY_BUFFER_EOF_PENDING 2
  ------------------
 2498|    479|			}
 2499|    527|		}
 2500|       |
 2501|  2.66k|	else
 2502|  2.66k|		ret_val = EOB_ACT_CONTINUE_SCAN;
  ------------------
  |  |  161|  2.66k|#define EOB_ACT_CONTINUE_SCAN 0
  ------------------
 2503|       |
 2504|  3.18k|	if (((yy_n_chars) + number_to_move) > YY_CURRENT_BUFFER_LVALUE->yy_buf_size) {
  ------------------
  |  |  284|  3.18k|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
  |  Branch (2504:6): [True: 0, False: 3.18k]
  ------------------
 2505|       |		/* Extend the array by 50%, plus the number we really need. */
 2506|      0|		int new_size = (yy_n_chars) + number_to_move + ((yy_n_chars) >> 1);
 2507|      0|		YY_CURRENT_BUFFER_LVALUE->yy_ch_buf = (char *) yyrealloc(
  ------------------
  |  |  284|      0|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2508|      0|			(void *) YY_CURRENT_BUFFER_LVALUE->yy_ch_buf, (yy_size_t) new_size  );
  ------------------
  |  |  284|      0|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2509|      0|		if ( ! YY_CURRENT_BUFFER_LVALUE->yy_ch_buf )
  ------------------
  |  |  284|      0|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
  |  Branch (2509:8): [True: 0, False: 0]
  ------------------
 2510|      0|			YY_FATAL_ERROR( "out of dynamic memory in yy_get_next_buffer()" );
  ------------------
  |  | 1668|      0|#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
  ------------------
 2511|       |		/* "- 2" to take care of EOB's */
 2512|      0|		YY_CURRENT_BUFFER_LVALUE->yy_buf_size = (int) (new_size - 2);
  ------------------
  |  |  284|      0|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2513|      0|	}
 2514|       |
 2515|  3.18k|	(yy_n_chars) += number_to_move;
 2516|  3.18k|	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
  ------------------
  |  |  284|  3.18k|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
              	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars)] = YY_END_OF_BUFFER_CHAR;
  ------------------
  |  |  128|  3.18k|#define YY_END_OF_BUFFER_CHAR 0
  ------------------
 2517|  3.18k|	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
  ------------------
  |  |  284|  3.18k|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
              	YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[(yy_n_chars) + 1] = YY_END_OF_BUFFER_CHAR;
  ------------------
  |  |  128|  3.18k|#define YY_END_OF_BUFFER_CHAR 0
  ------------------
 2518|       |
 2519|  3.18k|	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
  ------------------
  |  |  360|  3.18k|#define yytext_ptr yytext
  ------------------
              	(yytext_ptr) = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[0];
  ------------------
  |  |  284|  3.18k|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2520|       |
 2521|  3.18k|	return ret_val;
 2522|  3.18k|}
scanner.c:yy_get_previous_state:
 2527|  46.9k|{
 2528|  46.9k|	yy_state_type yy_current_state;
 2529|  46.9k|	char *yy_cp;
 2530|       |    
 2531|  46.9k|	yy_current_state = (yy_start);
 2532|       |
 2533|   812M|	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
  ------------------
  |  |  360|  46.9k|#define yytext_ptr yytext
  ------------------
              	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
  ------------------
  |  | 1491|  46.9k|#define YY_MORE_ADJ 0
  ------------------
  |  Branch (2533:44): [True: 812M, False: 46.9k]
  ------------------
 2534|   812M|		{
 2535|   812M|		YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 1);
  ------------------
  |  |  111|   807M|#define YY_SC_TO_UI(c) ((YY_CHAR) (c))
  ------------------
  |  Branch (2535:19): [True: 807M, False: 4.43M]
  ------------------
 2536|   812M|		if ( yy_accept[yy_current_state] )
  ------------------
  |  Branch (2536:8): [True: 177M, False: 634M]
  ------------------
 2537|   177M|			{
 2538|   177M|			(yy_last_accepting_state) = yy_current_state;
 2539|   177M|			(yy_last_accepting_cpos) = yy_cp;
 2540|   177M|			}
 2541|  1.53G|		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  ------------------
  |  Branch (2541:11): [True: 725M, False: 812M]
  ------------------
 2542|   725M|			{
 2543|   725M|			yy_current_state = (int) yy_def[yy_current_state];
 2544|   725M|			if ( yy_current_state >= 896 )
  ------------------
  |  Branch (2544:9): [True: 725M, False: 4.02k]
  ------------------
 2545|   725M|				yy_c = yy_meta[yy_c];
 2546|   725M|			}
 2547|   812M|		yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
 2548|   812M|		}
 2549|       |
 2550|  46.9k|	return yy_current_state;
 2551|  46.9k|}
scanner.c:yy_try_NUL_trans:
 2559|  43.7k|{
 2560|  43.7k|	int yy_is_jam;
 2561|  43.7k|    	char *yy_cp = (yy_c_buf_p);
 2562|       |
 2563|  43.7k|	YY_CHAR yy_c = 1;
 2564|  43.7k|	if ( yy_accept[yy_current_state] )
  ------------------
  |  Branch (2564:7): [True: 7.25k, False: 36.5k]
  ------------------
 2565|  7.25k|		{
 2566|  7.25k|		(yy_last_accepting_state) = yy_current_state;
 2567|  7.25k|		(yy_last_accepting_cpos) = yy_cp;
 2568|  7.25k|		}
 2569|  80.4k|	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
  ------------------
  |  Branch (2569:10): [True: 36.7k, False: 43.7k]
  ------------------
 2570|  36.7k|		{
 2571|  36.7k|		yy_current_state = (int) yy_def[yy_current_state];
 2572|  36.7k|		if ( yy_current_state >= 896 )
  ------------------
  |  Branch (2572:8): [True: 36.5k, False: 160]
  ------------------
 2573|  36.5k|			yy_c = yy_meta[yy_c];
 2574|  36.7k|		}
 2575|  43.7k|	yy_current_state = yy_nxt[yy_base[yy_current_state] + yy_c];
 2576|  43.7k|	yy_is_jam = (yy_current_state == 895);
 2577|       |
 2578|  43.7k|		return yy_is_jam ? 0 : yy_current_state;
  ------------------
  |  Branch (2578:10): [True: 81, False: 43.6k]
  ------------------
 2579|  43.7k|}
scanner.c:yy_load_buffer_state:
 2718|    692|{
 2719|    692|    	(yy_n_chars) = YY_CURRENT_BUFFER_LVALUE->yy_n_chars;
  ------------------
  |  |  284|    692|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2720|    692|	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
  ------------------
  |  |  360|    692|#define yytext_ptr yytext
  ------------------
              	(yytext_ptr) = (yy_c_buf_p) = YY_CURRENT_BUFFER_LVALUE->yy_buf_pos;
  ------------------
  |  |  284|    692|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2721|    692|	yyin = YY_CURRENT_BUFFER_LVALUE->yy_input_file;
  ------------------
  |  |  284|    692|#define YY_CURRENT_BUFFER_LVALUE (yy_buffer_stack)[(yy_buffer_stack_top)]
  ------------------
 2722|    692|	(yy_hold_char) = *(yy_c_buf_p);
 2723|    692|}
scanner.c:yy_init_buffer:
 2780|    644|{
 2781|    644|	int oerrno = errno;
 2782|       |    
 2783|    644|	yy_flush_buffer( b );
 2784|       |
 2785|    644|	b->yy_input_file = file;
 2786|    644|	b->yy_fill_buffer = 1;
 2787|       |
 2788|       |    /* If b is the current buffer, then yy_init_buffer was _probably_
 2789|       |     * called from yyrestart() or through yy_get_next_buffer.
 2790|       |     * In that case, we don't want to reset the lineno or column.
 2791|       |     */
 2792|    644|    if (b != YY_CURRENT_BUFFER){
  ------------------
  |  |  278|    644|#define YY_CURRENT_BUFFER ( (yy_buffer_stack) \
  |  |  ------------------
  |  |  |  Branch (278:29): [True: 644, False: 0]
  |  |  ------------------
  |  |  279|    644|                          ? (yy_buffer_stack)[(yy_buffer_stack_top)] \
  |  |  280|    644|                          : NULL)
  ------------------
  |  Branch (2792:9): [True: 596, False: 48]
  ------------------
 2793|    596|        b->yy_bs_lineno = 1;
 2794|    596|        b->yy_bs_column = 0;
 2795|    596|    }
 2796|       |
 2797|    644|        b->yy_is_interactive = file ? (isatty( fileno(file) ) > 0) : 0;
  ------------------
  |  Branch (2797:32): [True: 644, False: 0]
  ------------------
 2798|       |    
 2799|       |	errno = oerrno;
 2800|    644|}
scanner.c:yyensure_buffer_stack:
 2885|    596|{
 2886|    596|	yy_size_t num_to_alloc;
 2887|       |    
 2888|    596|	if (!(yy_buffer_stack)) {
  ------------------
  |  Branch (2888:6): [True: 596, False: 0]
  ------------------
 2889|       |
 2890|       |		/* First allocation is just for 2 elements, since we don't know if this
 2891|       |		 * scanner will even need a stack. We use 2 instead of 1 to avoid an
 2892|       |		 * immediate realloc on the next call.
 2893|       |         */
 2894|    596|      num_to_alloc = 1; /* After all that talk, this was set to 1 anyways... */
 2895|    596|		(yy_buffer_stack) = (struct yy_buffer_state**)yyalloc
 2896|    596|								(num_to_alloc * sizeof(struct yy_buffer_state*)
 2897|    596|								);
 2898|    596|		if ( ! (yy_buffer_stack) )
  ------------------
  |  Branch (2898:8): [True: 0, False: 596]
  ------------------
 2899|      0|			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
  ------------------
  |  | 1668|      0|#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
  ------------------
 2900|       |
 2901|    596|		memset((yy_buffer_stack), 0, num_to_alloc * sizeof(struct yy_buffer_state*));
 2902|       |
 2903|    596|		(yy_buffer_stack_max) = num_to_alloc;
 2904|    596|		(yy_buffer_stack_top) = 0;
 2905|    596|		return;
 2906|    596|	}
 2907|       |
 2908|      0|	if ((yy_buffer_stack_top) >= ((yy_buffer_stack_max)) - 1){
  ------------------
  |  Branch (2908:6): [True: 0, False: 0]
  ------------------
 2909|       |
 2910|       |		/* Increase the buffer to prepare for a possible push. */
 2911|      0|		yy_size_t grow_size = 8 /* arbitrary grow size */;
 2912|       |
 2913|      0|		num_to_alloc = (yy_buffer_stack_max) + grow_size;
 2914|      0|		(yy_buffer_stack) = (struct yy_buffer_state**)yyrealloc
 2915|      0|								((yy_buffer_stack),
 2916|      0|								num_to_alloc * sizeof(struct yy_buffer_state*)
 2917|      0|								);
 2918|      0|		if ( ! (yy_buffer_stack) )
  ------------------
  |  Branch (2918:8): [True: 0, False: 0]
  ------------------
 2919|      0|			YY_FATAL_ERROR( "out of dynamic memory in yyensure_buffer_stack()" );
  ------------------
  |  | 1668|      0|#define YY_FATAL_ERROR(msg) yy_fatal_error( msg )
  ------------------
 2920|       |
 2921|       |		/* zero only the new slots.*/
 2922|      0|		memset((yy_buffer_stack) + (yy_buffer_stack_max), 0, grow_size * sizeof(struct yy_buffer_state*));
 2923|      0|		(yy_buffer_stack_max) = num_to_alloc;
 2924|      0|	}
 2925|      0|}
scanner.c:yy_init_globals:
 3121|    596|{
 3122|       |        /* Initialization is the same as for the non-reentrant scanner.
 3123|       |     * This function is called from yylex_destroy(), so don't allocate here.
 3124|       |     */
 3125|       |
 3126|       |    /* We do not touch yylineno unless the option is enabled. */
 3127|    596|    yylineno =  1;
 3128|       |    
 3129|    596|    (yy_buffer_stack) = NULL;
 3130|    596|    (yy_buffer_stack_top) = 0;
 3131|    596|    (yy_buffer_stack_max) = 0;
 3132|    596|    (yy_c_buf_p) = NULL;
 3133|    596|    (yy_init) = 0;
 3134|    596|    (yy_start) = 0;
 3135|       |
 3136|       |/* Defined in main.c */
 3137|       |#ifdef YY_STDINIT
 3138|       |    yyin = stdin;
 3139|       |    yyout = stdout;
 3140|       |#else
 3141|    596|    yyin = NULL;
 3142|    596|    yyout = NULL;
 3143|    596|#endif
 3144|       |
 3145|       |    /* For future reference: Set errno on error, since we are called by
 3146|       |     * yylex_init()
 3147|       |     */
 3148|    596|    return 0;
 3149|    596|}

