[oe-commits] [meta-openembedded] 19/29: php: Security Advisory - php - CVE-2017-16642

git at git.openembedded.org git at git.openembedded.org
Thu Nov 30 17:46:41 UTC 2017


This is an automated email from the git hooks/post-receive script.

armin_kuster pushed a commit to branch master
in repository meta-openembedded.

commit 90f4b75fe7313ada0974df47912d1e3c57256ae3
Author: Li Zhou <li.zhou at windriver.com>
AuthorDate: Thu Nov 23 13:33:48 2017 +0800

    php: Security Advisory - php - CVE-2017-16642
    
    Porting the patch from <https://github.com/php/php-src/commit/
    5c0455bf2c8cd3c25401407f158e820aa3b239e1> to solve CVE-2017-16642.
    
    Signed-off-by: Li Zhou <li.zhou at windriver.com>
    Signed-off-by: Armin Kuster <akuster808 at gmail.com>
---
 .../php/php-7.1.9/CVE-2017-16642.patch             | 5241 ++++++++++++++++++++
 meta-oe/recipes-devtools/php/php_7.1.9.bb          |    1 +
 2 files changed, 5242 insertions(+)

diff --git a/meta-oe/recipes-devtools/php/php-7.1.9/CVE-2017-16642.patch b/meta-oe/recipes-devtools/php/php-7.1.9/CVE-2017-16642.patch
new file mode 100644
index 0000000..41d2a0f
--- /dev/null
+++ b/meta-oe/recipes-devtools/php/php-7.1.9/CVE-2017-16642.patch
@@ -0,0 +1,5241 @@
+From f2f90767311355cafabff604a7a857ca60ee3f01 Mon Sep 17 00:00:00 2001
+From: Li Zhou <li.zhou at windriver.com>
+Date: Wed, 22 Nov 2017 21:14:59 -0800
+Subject: [PATCH] Fixed bug #75055 Out-Of-Bounds Read in timelib_meridian()
+
+Upstream-Status: Backport
+CVE: CVE-2017-16642
+Signed-off-by: Li Zhou <li.zhou at windriver.com>
+---
+ ext/date/lib/parse_date.c         | 1544 +++++++++++++++++++++----------------
+ ext/date/lib/parse_date.re        |    4 +-
+ ext/date/tests/bug53437_var3.phpt |    2 +-
+ ext/wddx/tests/bug75055.phpt      |   20 +
+ ext/wddx/tests/bug75055.wddx      |   13 +
+ 5 files changed, 911 insertions(+), 672 deletions(-)
+ create mode 100644 ext/wddx/tests/bug75055.phpt
+ create mode 100644 ext/wddx/tests/bug75055.wddx
+
+diff --git a/ext/date/lib/parse_date.c b/ext/date/lib/parse_date.c
+index f929619..6b11418 100644
+--- a/ext/date/lib/parse_date.c
++++ b/ext/date/lib/parse_date.c
+@@ -1,4 +1,5 @@
+-/* Generated by re2c 0.15.3 on Tue Jul  4 21:15:17 2017 */
++/* Generated by re2c 0.15.3 on Wed Nov 22 21:14:47 2017 */
++#line 1 "ext/date/lib/parse_date.re"
+ /*
+  * The MIT License (MIT)
+  *
+@@ -837,9 +838,11 @@ static int scan(Scanner *s, timelib_tz_get_wrapper tz_get_wrapper)
+ std:
+ 	s->tok = cursor;
+ 	s->len = 0;
++#line 965 "ext/date/lib/parse_date.re"
+ 
+ 
+ 
++#line 846 "ext/date/lib/parse_date.c"
+ {
+ 	YYCTYPE yych;
+ 	unsigned int yyaccept = 0;
+@@ -962,18 +965,19 @@ yy2:
+ 		} else {
+ 			if (yych <= '@') goto yy3;
+ 			if (yych <= 'D') goto yy165;
+-			goto yy1521;
++			goto yy1523;
+ 		}
+ 	} else {
+ 		if (yych <= 'd') {
+ 			if (yych <= 'Z') goto yy165;
+ 			if (yych >= 'a') goto yy170;
+ 		} else {
+-			if (yych <= 'e') goto yy1530;
++			if (yych <= 'e') goto yy1532;
+ 			if (yych <= 'z') goto yy170;
+ 		}
+ 	}
+ yy3:
++#line 1673 "ext/date/lib/parse_date.re"
+ 	{
+ 		int tz_not_found;
+ 		DEBUG_OUTPUT("tzcorrection | tz");
+@@ -986,6 +990,7 @@ yy3:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_TIMEZONE;
+ 	}
++#line 994 "ext/date/lib/parse_date.c"
+ yy4:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'E') {
+@@ -995,7 +1000,7 @@ yy4:
+ 		} else {
+ 			if (yych <= '@') goto yy3;
+ 			if (yych <= 'D') goto yy165;
+-			goto yy1521;
++			goto yy1523;
+ 		}
+ 	} else {
+ 		if (yych <= 'd') {
+@@ -1003,7 +1008,7 @@ yy4:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy165;
+ 		} else {
+-			if (yych <= 'e') goto yy1521;
++			if (yych <= 'e') goto yy1523;
+ 			if (yych <= 'z') goto yy165;
+ 			goto yy3;
+ 		}
+@@ -1017,12 +1022,12 @@ yy5:
+ 			goto yy165;
+ 		} else {
+ 			if (yych <= 'H') {
+-				if (yych <= 'E') goto yy1492;
++				if (yych <= 'E') goto yy1494;
+ 				goto yy165;
+ 			} else {
+-				if (yych <= 'I') goto yy1493;
++				if (yych <= 'I') goto yy1495;
+ 				if (yych <= 'N') goto yy165;
+-				goto yy1491;
++				goto yy1493;
+ 			}
+ 		}
+ 	} else {
+@@ -1031,15 +1036,15 @@ yy5:
+ 				if (yych <= 'Z') goto yy165;
+ 				goto yy3;
+ 			} else {
+-				if (yych == 'e') goto yy1508;
++				if (yych == 'e') goto yy1510;
+ 				goto yy170;
+ 			}
+ 		} else {
+ 			if (yych <= 'n') {
+-				if (yych <= 'i') goto yy1509;
++				if (yych <= 'i') goto yy1511;
+ 				goto yy170;
+ 			} else {
+-				if (yych <= 'o') goto yy1507;
++				if (yych <= 'o') goto yy1509;
+ 				if (yych <= 'z') goto yy170;
+ 				goto yy3;
+ 			}
+@@ -1054,12 +1059,12 @@ yy6:
+ 			goto yy165;
+ 		} else {
+ 			if (yych <= 'H') {
+-				if (yych <= 'E') goto yy1492;
++				if (yych <= 'E') goto yy1494;
+ 				goto yy165;
+ 			} else {
+-				if (yych <= 'I') goto yy1493;
++				if (yych <= 'I') goto yy1495;
+ 				if (yych <= 'N') goto yy165;
+-				goto yy1491;
++				goto yy1493;
+ 			}
+ 		}
+ 	} else {
+@@ -1068,15 +1073,15 @@ yy6:
+ 				if (yych <= 'Z') goto yy165;
+ 				goto yy3;
+ 			} else {
+-				if (yych == 'e') goto yy1492;
++				if (yych == 'e') goto yy1494;
+ 				goto yy165;
+ 			}
+ 		} else {
+ 			if (yych <= 'n') {
+-				if (yych <= 'i') goto yy1493;
++				if (yych <= 'i') goto yy1495;
+ 				goto yy165;
+ 			} else {
+-				if (yych <= 'o') goto yy1491;
++				if (yych <= 'o') goto yy1493;
+ 				if (yych <= 'z') goto yy165;
+ 				goto yy3;
+ 			}
+@@ -1088,24 +1093,24 @@ yy7:
+ 		if (yych <= 'A') {
+ 			if (yych == ')') goto yy164;
+ 			if (yych <= '@') goto yy3;
+-			goto yy1461;
++			goto yy1463;
+ 		} else {
+-			if (yych == 'I') goto yy1462;
++			if (yych == 'I') goto yy1464;
+ 			if (yych <= 'N') goto yy165;
+-			goto yy1463;
++			goto yy1465;
+ 		}
+ 	} else {
+ 		if (yych <= 'h') {
+ 			if (yych <= 'Z') goto yy165;
+ 			if (yych <= '`') goto yy3;
+-			if (yych <= 'a') goto yy1476;
++			if (yych <= 'a') goto yy1478;
+ 			goto yy170;
+ 		} else {
+ 			if (yych <= 'n') {
+-				if (yych <= 'i') goto yy1477;
++				if (yych <= 'i') goto yy1479;
+ 				goto yy170;
+ 			} else {
+-				if (yych <= 'o') goto yy1478;
++				if (yych <= 'o') goto yy1480;
+ 				if (yych <= 'z') goto yy170;
+ 				goto yy3;
+ 			}
+@@ -1117,24 +1122,24 @@ yy8:
+ 		if (yych <= 'A') {
+ 			if (yych == ')') goto yy164;
+ 			if (yych <= '@') goto yy3;
+-			goto yy1461;
++			goto yy1463;
+ 		} else {
+-			if (yych == 'I') goto yy1462;
++			if (yych == 'I') goto yy1464;
+ 			if (yych <= 'N') goto yy165;
+-			goto yy1463;
++			goto yy1465;
+ 		}
+ 	} else {
+ 		if (yych <= 'h') {
+ 			if (yych <= 'Z') goto yy165;
+ 			if (yych <= '`') goto yy3;
+-			if (yych <= 'a') goto yy1461;
++			if (yych <= 'a') goto yy1463;
+ 			goto yy165;
+ 		} else {
+ 			if (yych <= 'n') {
+-				if (yych <= 'i') goto yy1462;
++				if (yych <= 'i') goto yy1464;
+ 				goto yy165;
+ 			} else {
+-				if (yych <= 'o') goto yy1463;
++				if (yych <= 'o') goto yy1465;
+ 				if (yych <= 'z') goto yy165;
+ 				goto yy3;
+ 			}
+@@ -1146,15 +1151,15 @@ yy9:
+ 	switch (yych) {
+ 	case ')':	goto yy164;
+ 	case '0':
+-	case '1':	goto yy1391;
+-	case '2':	goto yy1392;
++	case '1':	goto yy1393;
++	case '2':	goto yy1394;
+ 	case '3':
+ 	case '4':
+ 	case '5':
+ 	case '6':
+ 	case '7':
+ 	case '8':
+-	case '9':	goto yy1393;
++	case '9':	goto yy1395;
+ 	case 'A':
+ 	case 'B':
+ 	case 'C':
+@@ -1176,11 +1181,11 @@ yy9:
+ 	case 'X':
+ 	case 'Y':
+ 	case 'Z':	goto yy165;
+-	case 'E':	goto yy1386;
+-	case 'H':	goto yy1387;
+-	case 'O':	goto yy1388;
+-	case 'U':	goto yy1389;
+-	case 'W':	goto yy1390;
++	case 'E':	goto yy1388;
++	case 'H':	goto yy1389;
++	case 'O':	goto yy1390;
++	case 'U':	goto yy1391;
++	case 'W':	goto yy1392;
+ 	case 'a':
+ 	case 'b':
+ 	case 'c':
+@@ -1202,11 +1207,11 @@ yy9:
+ 	case 'x':
+ 	case 'y':
+ 	case 'z':	goto yy170;
+-	case 'e':	goto yy1429;
+-	case 'h':	goto yy1430;
+-	case 'o':	goto yy1431;
+-	case 'u':	goto yy1432;
+-	case 'w':	goto yy1433;
++	case 'e':	goto yy1431;
++	case 'h':	goto yy1432;
++	case 'o':	goto yy1433;
++	case 'u':	goto yy1434;
++	case 'w':	goto yy1435;
+ 	default:	goto yy3;
+ 	}
+ yy10:
+@@ -1215,15 +1220,15 @@ yy10:
+ 	switch (yych) {
+ 	case ')':	goto yy164;
+ 	case '0':
+-	case '1':	goto yy1391;
+-	case '2':	goto yy1392;
++	case '1':	goto yy1393;
++	case '2':	goto yy1394;
+ 	case '3':
+ 	case '4':
+ 	case '5':
+ 	case '6':
+ 	case '7':
+ 	case '8':
+-	case '9':	goto yy1393;
++	case '9':	goto yy1395;
+ 	case 'A':
+ 	case 'B':
+ 	case 'C':
+@@ -1267,28 +1272,30 @@ yy10:
+ 	case 'y':
+ 	case 'z':	goto yy165;
+ 	case 'E':
+-	case 'e':	goto yy1386;
++	case 'e':	goto yy1388;
+ 	case 'H':
+-	case 'h':	goto yy1387;
++	case 'h':	goto yy1389;
+ 	case 'O':
+-	case 'o':	goto yy1388;
++	case 'o':	goto yy1390;
+ 	case 'U':
+-	case 'u':	goto yy1389;
++	case 'u':	goto yy1391;
+ 	case 'W':
+-	case 'w':	goto yy1390;
++	case 'w':	goto yy1392;
+ 	default:	goto yy3;
+ 	}
+ yy11:
+ 	yyaccept = 1;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+-	if (yych == '-') goto yy1374;
++	if (yych == '-') goto yy1376;
+ 	if (yych <= '/') goto yy12;
+-	if (yych <= '9') goto yy1375;
++	if (yych <= '9') goto yy1377;
+ yy12:
++#line 1768 "ext/date/lib/parse_date.re"
+ 	{
+ 		add_error(s, "Unexpected character");
+ 		goto std;
+ 	}
++#line 1299 "ext/date/lib/parse_date.c"
+ yy13:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'R') {
+@@ -1299,16 +1306,16 @@ yy13:
+ 			} else {
+ 				if (yych <= '@') goto yy3;
+ 				if (yych <= 'D') goto yy165;
+-				goto yy1310;
++				goto yy1311;
+ 			}
+ 		} else {
+ 			if (yych <= 'N') {
+-				if (yych == 'I') goto yy1311;
++				if (yych == 'I') goto yy1312;
+ 				goto yy165;
+ 			} else {
+-				if (yych <= 'O') goto yy1312;
++				if (yych <= 'O') goto yy1313;
+ 				if (yych <= 'Q') goto yy165;
+-				goto yy1313;
++				goto yy1314;
+ 			}
+ 		}
+ 	} else {
+@@ -1318,16 +1325,16 @@ yy13:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy170;
+ 			} else {
+-				if (yych <= 'e') goto yy1351;
++				if (yych <= 'e') goto yy1353;
+ 				if (yych <= 'h') goto yy170;
+-				goto yy1352;
++				goto yy1354;
+ 			}
+ 		} else {
+ 			if (yych <= 'q') {
+-				if (yych == 'o') goto yy1353;
++				if (yych == 'o') goto yy1355;
+ 				goto yy170;
+ 			} else {
+-				if (yych <= 'r') goto yy1354;
++				if (yych <= 'r') goto yy1356;
+ 				if (yych <= 'z') goto yy170;
+ 				goto yy3;
+ 			}
+@@ -1343,16 +1350,16 @@ yy14:
+ 			} else {
+ 				if (yych <= '@') goto yy3;
+ 				if (yych <= 'D') goto yy165;
+-				goto yy1310;
++				goto yy1311;
+ 			}
+ 		} else {
+ 			if (yych <= 'N') {
+-				if (yych == 'I') goto yy1311;
++				if (yych == 'I') goto yy1312;
+ 				goto yy165;
+ 			} else {
+-				if (yych <= 'O') goto yy1312;
++				if (yych <= 'O') goto yy1313;
+ 				if (yych <= 'Q') goto yy165;
+-				goto yy1313;
++				goto yy1314;
+ 			}
+ 		}
+ 	} else {
+@@ -1362,16 +1369,16 @@ yy14:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy165;
+ 			} else {
+-				if (yych <= 'e') goto yy1310;
++				if (yych <= 'e') goto yy1311;
+ 				if (yych <= 'h') goto yy165;
+-				goto yy1311;
++				goto yy1312;
+ 			}
+ 		} else {
+ 			if (yych <= 'q') {
+-				if (yych == 'o') goto yy1312;
++				if (yych == 'o') goto yy1313;
+ 				goto yy165;
+ 			} else {
+-				if (yych <= 'r') goto yy1313;
++				if (yych <= 'r') goto yy1314;
+ 				if (yych <= 'z') goto yy165;
+ 				goto yy3;
+ 			}
+@@ -1382,13 +1389,13 @@ yy15:
+ 	if (yych <= 'A') {
+ 		if (yych == ')') goto yy164;
+ 		if (yych <= '@') goto yy3;
+-		goto yy1296;
++		goto yy1297;
+ 	} else {
+ 		if (yych <= '`') {
+ 			if (yych <= 'Z') goto yy165;
+ 			goto yy3;
+ 		} else {
+-			if (yych <= 'a') goto yy1307;
++			if (yych <= 'a') goto yy1308;
+ 			if (yych <= 'z') goto yy170;
+ 			goto yy3;
+ 		}
+@@ -1398,13 +1405,13 @@ yy16:
+ 	if (yych <= 'A') {
+ 		if (yych == ')') goto yy164;
+ 		if (yych <= '@') goto yy3;
+-		goto yy1296;
++		goto yy1297;
+ 	} else {
+ 		if (yych <= '`') {
+ 			if (yych <= 'Z') goto yy165;
+ 			goto yy3;
+ 		} else {
+-			if (yych <= 'a') goto yy1296;
++			if (yych <= 'a') goto yy1297;
+ 			if (yych <= 'z') goto yy165;
+ 			goto yy3;
+ 		}
+@@ -1420,7 +1427,7 @@ yy17:
+ 			if (yych <= 'Z') goto yy165;
+ 			goto yy3;
+ 		} else {
+-			if (yych <= 'a') goto yy1293;
++			if (yych <= 'a') goto yy1294;
+ 			if (yych <= 'z') goto yy170;
+ 			goto yy3;
+ 		}
+@@ -2495,18 +2502,22 @@ yy48:
+ 	if (yych <= '/') goto yy49;
+ 	if (yych <= '9') goto yy54;
+ yy49:
++#line 1757 "ext/date/lib/parse_date.re"
+ 	{
+ 		goto std;
+ 	}
++#line 2510 "ext/date/lib/parse_date.c"
+ yy50:
+ 	yych = *++YYCURSOR;
+ 	goto yy49;
+ yy51:
+ 	++YYCURSOR;
++#line 1762 "ext/date/lib/parse_date.re"
+ 	{
+ 		s->pos = cursor; s->line++;
+ 		goto std;
+ 	}
++#line 2521 "ext/date/lib/parse_date.c"
+ yy53:
+ 	yych = *++YYCURSOR;
+ 	goto yy12;
+@@ -2693,23 +2704,23 @@ yy56:
+ 					}
+ 				} else {
+ 					if (yyaccept == 28) {
+-						goto yy1377;
++						goto yy1379;
+ 					} else {
+-						goto yy1415;
++						goto yy1417;
+ 					}
+ 				}
+ 			} else {
+ 				if (yyaccept <= 31) {
+ 					if (yyaccept == 30) {
+-						goto yy1418;
++						goto yy1420;
+ 					} else {
+-						goto yy1498;
++						goto yy1500;
+ 					}
+ 				} else {
+ 					if (yyaccept == 32) {
+-						goto yy1506;
++						goto yy1508;
+ 					} else {
+-						goto yy1529;
++						goto yy1531;
+ 					}
+ 				}
+ 			}
+@@ -2920,6 +2931,7 @@ yy73:
+ 	if (yych == 'S') goto yy75;
+ 	if (yych == 's') goto yy75;
+ yy74:
++#line 1741 "ext/date/lib/parse_date.re"
+ 	{
+ 		timelib_ull i;
+ 		DEBUG_OUTPUT("relative");
+@@ -2934,6 +2946,7 @@ yy74:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_RELATIVE;
+ 	}
++#line 2950 "ext/date/lib/parse_date.c"
+ yy75:
+ 	yych = *++YYCURSOR;
+ 	if (yych == 'D') goto yy76;
+@@ -3719,6 +3732,7 @@ yy190:
+ 		}
+ 	}
+ yy191:
++#line 1604 "ext/date/lib/parse_date.re"
+ 	{
+ 		const timelib_relunit* relunit;
+ 		DEBUG_OUTPUT("daytext");
+@@ -3735,6 +3749,7 @@ yy191:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_WEEKDAY;
+ 	}
++#line 3753 "ext/date/lib/parse_date.c"
+ yy192:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'K') {
+@@ -4227,6 +4242,7 @@ yy217:
+ 		}
+ 	}
+ yy218:
++#line 1663 "ext/date/lib/parse_date.re"
+ 	{
+ 		DEBUG_OUTPUT("monthtext");
+ 		TIMELIB_INIT;
+@@ -4235,6 +4251,7 @@ yy218:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_DATE_TEXT;
+ 	}
++#line 4255 "ext/date/lib/parse_date.c"
+ yy219:
+ 	++YYCURSOR;
+ 	if ((YYLIMIT - YYCURSOR) < 23) YYFILL(23);
+@@ -4469,6 +4486,7 @@ yy231:
+ 	if (yych == 't') goto yy319;
+ 	goto yy237;
+ yy232:
++#line 1409 "ext/date/lib/parse_date.re"
+ 	{
+ 		int length = 0;
+ 		DEBUG_OUTPUT("datetextual | datenoyear");
+@@ -4481,6 +4499,7 @@ yy232:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_DATE_TEXT;
+ 	}
++#line 4503 "ext/date/lib/parse_date.c"
+ yy233:
+ 	yyaccept = 6;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+@@ -4593,6 +4612,7 @@ yy245:
+ 		if (yych <= ':') goto yy248;
+ 	}
+ yy246:
++#line 1711 "ext/date/lib/parse_date.re"
+ 	{
+ 		int tz_not_found;
+ 		DEBUG_OUTPUT("dateshortwithtimeshort | dateshortwithtimelong | dateshortwithtimelongtz");
+@@ -4621,6 +4641,7 @@ yy246:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_SHORTDATE_WITH_TIME;
+ 	}
++#line 4645 "ext/date/lib/parse_date.c"
+ yy247:
+ 	yyaccept = 7;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+@@ -4893,6 +4914,7 @@ yy269:
+ 	}
+ yy270:
+ 	++YYCURSOR;
++#line 1687 "ext/date/lib/parse_date.re"
+ 	{
+ 		DEBUG_OUTPUT("dateshortwithtimeshort12 | dateshortwithtimelong12");
+ 		TIMELIB_INIT;
+@@ -4915,6 +4937,7 @@ yy270:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_SHORTDATE_WITH_TIME;
+ 	}
++#line 4941 "ext/date/lib/parse_date.c"
+ yy272:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 0x1F) {
+@@ -5470,6 +5493,7 @@ yy320:
+ 	if (yych <= '/') goto yy56;
+ 	if (yych >= ':') goto yy56;
+ 	++YYCURSOR;
++#line 1381 "ext/date/lib/parse_date.re"
+ 	{
+ 		int length = 0;
+ 		DEBUG_OUTPUT("datenoday");
+@@ -5482,6 +5506,7 @@ yy320:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_DATE_NO_DAY;
+ 	}
++#line 5510 "ext/date/lib/parse_date.c"
+ yy323:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= '9') {
+@@ -5704,6 +5729,7 @@ yy327:
+ 	if ((yych = *YYCURSOR) <= '/') goto yy330;
+ 	if (yych <= '9') goto yy331;
+ yy330:
++#line 1525 "ext/date/lib/parse_date.re"
+ 	{
+ 		int length = 0;
+ 		DEBUG_OUTPUT("pgtextshort");
+@@ -5716,6 +5742,7 @@ yy330:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_PG_TEXT;
+ 	}
++#line 5746 "ext/date/lib/parse_date.c"
+ yy331:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= '/') goto yy330;
+@@ -6270,6 +6297,7 @@ yy356:
+ 		if (yych <= 'z') goto yy167;
+ 	}
+ yy357:
++#line 1583 "ext/date/lib/parse_date.re"
+ 	{
+ 		DEBUG_OUTPUT("ago");
+ 		TIMELIB_INIT;
+@@ -6289,6 +6317,7 @@ yy357:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_AGO;
+ 	}
++#line 6321 "ext/date/lib/parse_date.c"
+ yy358:
+ 	yyaccept = 5;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+@@ -8009,6 +8038,7 @@ yy417:
+ yy418:
+ 	++YYCURSOR;
+ yy419:
++#line 1286 "ext/date/lib/parse_date.re"
+ 	{
+ 		DEBUG_OUTPUT("iso8601date4 | iso8601date2 | iso8601dateslash | dateslash");
+ 		TIMELIB_INIT;
+@@ -8019,6 +8049,7 @@ yy419:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_ISO_DATE;
+ 	}
++#line 8053 "ext/date/lib/parse_date.c"
+ yy420:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+@@ -8641,6 +8672,7 @@ yy439:
+ 		}
+ 	}
+ yy440:
++#line 1423 "ext/date/lib/parse_date.re"
+ 	{
+ 		DEBUG_OUTPUT("datenoyearrev");
+ 		TIMELIB_INIT;
+@@ -8651,6 +8683,7 @@ yy440:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_DATE_TEXT;
+ 	}
++#line 8687 "ext/date/lib/parse_date.c"
+ yy441:
+ 	yyaccept = 9;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+@@ -8778,6 +8811,7 @@ yy450:
+ 	}
+ yy452:
+ 	++YYCURSOR;
++#line 1141 "ext/date/lib/parse_date.re"
+ 	{
+ 		DEBUG_OUTPUT("timetiny12 | timeshort12 | timelong12");
+ 		TIMELIB_INIT;
+@@ -8793,6 +8827,7 @@ yy452:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_TIME12;
+ 	}
++#line 8831 "ext/date/lib/parse_date.c"
+ yy454:
+ 	yyaccept = 10;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+@@ -8803,6 +8838,7 @@ yy454:
+ 		if (yych <= ':') goto yy457;
+ 	}
+ yy455:
++#line 1178 "ext/date/lib/parse_date.re"
+ 	{
+ 		int tz_not_found;
+ 		DEBUG_OUTPUT("timeshort24 | timelong24 | iso8601long");
+@@ -8827,6 +8863,7 @@ yy455:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_TIME24_WITH_ZONE;
+ 	}
++#line 8867 "ext/date/lib/parse_date.c"
+ yy456:
+ 	yyaccept = 10;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+@@ -9103,6 +9140,7 @@ yy485:
+ 	}
+ yy487:
+ 	++YYCURSOR;
++#line 1158 "ext/date/lib/parse_date.re"
+ 	{
+ 		DEBUG_OUTPUT("mssqltime");
+ 		TIMELIB_INIT;
+@@ -9121,6 +9159,7 @@ yy487:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_TIME24_WITH_ZONE;
+ 	}
++#line 9163 "ext/date/lib/parse_date.c"
+ yy489:
+ 	yyaccept = 10;
+ 	YYMARKER = ++YYCURSOR;
+@@ -9215,6 +9254,7 @@ yy498:
+ 	if ((yych = *YYCURSOR) <= '/') goto yy499;
+ 	if (yych <= '9') goto yy505;
+ yy499:
++#line 1340 "ext/date/lib/parse_date.re"
+ 	{
+ 		int length = 0;
+ 		DEBUG_OUTPUT("datefull");
+@@ -9228,6 +9268,7 @@ yy499:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_DATE_FULL;
+ 	}
++#line 9272 "ext/date/lib/parse_date.c"
+ yy500:
+ 	yych = *++YYCURSOR;
+ 	if (yych == 'M') goto yy501;
+@@ -9891,6 +9932,7 @@ yy569:
+ 	if (yych <= '/') goto yy56;
+ 	if (yych >= ':') goto yy56;
+ 	++YYCURSOR;
++#line 1355 "ext/date/lib/parse_date.re"
+ 	{
+ 		DEBUG_OUTPUT("pointed date YYYY");
+ 		TIMELIB_INIT;
+@@ -9901,6 +9943,7 @@ yy569:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_DATE_FULL_POINTED;
+ 	}
++#line 9947 "ext/date/lib/parse_date.c"
+ yy572:
+ 	yyaccept = 10;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+@@ -9931,6 +9974,7 @@ yy575:
+ 	if (yych <= '/') goto yy576;
+ 	if (yych <= '9') goto yy569;
+ yy576:
++#line 1367 "ext/date/lib/parse_date.re"
+ 	{
+ 		int length = 0;
+ 		DEBUG_OUTPUT("pointed date YY");
+@@ -9943,6 +9987,7 @@ yy576:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_DATE_FULL_POINTED;
+ 	}
++#line 9991 "ext/date/lib/parse_date.c"
+ yy577:
+ 	yyaccept = 10;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+@@ -10538,6 +10583,7 @@ yy620:
+ 		}
+ 	}
+ yy621:
++#line 1326 "ext/date/lib/parse_date.re"
+ 	{
+ 		int length = 0;
+ 		DEBUG_OUTPUT("gnudateshort");
+@@ -10550,6 +10596,7 @@ yy621:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_ISO_DATE;
+ 	}
++#line 10600 "ext/date/lib/parse_date.c"
+ yy622:
+ 	yyaccept = 12;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+@@ -10645,6 +10692,7 @@ yy630:
+ 		}
+ 	}
+ yy631:
++#line 1270 "ext/date/lib/parse_date.re"
+ 	{
+ 		int length = 0;
+ 		DEBUG_OUTPUT("americanshort | american");
+@@ -10659,6 +10707,7 @@ yy631:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_AMERICAN;
+ 	}
++#line 10711 "ext/date/lib/parse_date.c"
+ yy632:
+ 	yyaccept = 13;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+@@ -10857,6 +10906,7 @@ yy664:
+ 	if (yych <= '9') goto yy667;
+ 	if (yych <= ':') goto yy668;
+ yy665:
++#line 1553 "ext/date/lib/parse_date.re"
+ 	{
+ 		int tz_not_found;
+ 		DEBUG_OUTPUT("clf");
+@@ -10876,6 +10926,7 @@ yy665:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_CLF;
+ 	}
++#line 10930 "ext/date/lib/parse_date.c"
+ yy666:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= '5') {
+@@ -11362,6 +11413,7 @@ yy727:
+ 		if (yych <= 't') goto yy627;
+ 	}
+ yy728:
++#line 1298 "ext/date/lib/parse_date.re"
+ 	{
+ 		int length = 0;
+ 		DEBUG_OUTPUT("iso8601date2");
+@@ -11374,6 +11426,7 @@ yy728:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_ISO_DATE;
+ 	}
++#line 11430 "ext/date/lib/parse_date.c"
+ yy729:
+ 	yych = *++YYCURSOR;
+ 	if (yych == 'C') goto yy730;
+@@ -11404,6 +11457,7 @@ yy734:
+ 	if (yych >= '2') goto yy56;
+ yy735:
+ 	++YYCURSOR;
++#line 1539 "ext/date/lib/parse_date.re"
+ 	{
+ 		int length = 0;
+ 		DEBUG_OUTPUT("pgtextreverse");
+@@ -11416,6 +11470,7 @@ yy735:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_PG_TEXT;
+ 	}
++#line 11474 "ext/date/lib/parse_date.c"
+ yy737:
+ 	yych = *++YYCURSOR;
+ 	if (yych == 'V') goto yy730;
+@@ -11568,6 +11623,7 @@ yy747:
+ 		}
+ 	}
+ yy748:
++#line 1574 "ext/date/lib/parse_date.re"
+ 	{
+ 		DEBUG_OUTPUT("year4");
+ 		TIMELIB_INIT;
+@@ -11575,6 +11631,7 @@ yy748:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_CLF;
+ 	}
++#line 11635 "ext/date/lib/parse_date.c"
+ yy749:
+ 	yych = *++YYCURSOR;
+ 	switch (yych) {
+@@ -11769,6 +11826,7 @@ yy757:
+ 		if (yych <= 'X') goto yy848;
+ 	}
+ yy758:
++#line 1395 "ext/date/lib/parse_date.re"
+ 	{
+ 		int length = 0;
+ 		DEBUG_OUTPUT("datenodayrev");
+@@ -11781,6 +11839,7 @@ yy758:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_DATE_NO_DAY;
+ 	}
++#line 11843 "ext/date/lib/parse_date.c"
+ yy759:
+ 	yych = *++YYCURSOR;
+ 	if (yych == 'I') goto yy892;
+@@ -11980,6 +12039,7 @@ yy778:
+ 	if (yych <= '/') goto yy779;
+ 	if (yych <= '7') goto yy781;
+ yy779:
++#line 1506 "ext/date/lib/parse_date.re"
+ 	{
+ 		timelib_sll w, d;
+ 		DEBUG_OUTPUT("isoweek");
+@@ -11997,12 +12057,14 @@ yy779:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_ISO_WEEK;
+ 	}
++#line 12061 "ext/date/lib/parse_date.c"
+ yy780:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= '/') goto yy56;
+ 	if (yych >= '8') goto yy56;
+ yy781:
+ 	++YYCURSOR;
++#line 1487 "ext/date/lib/parse_date.re"
+ 	{
+ 		timelib_sll w, d;
+ 		DEBUG_OUTPUT("isoweekday");
+@@ -12020,6 +12082,7 @@ yy781:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_ISO_WEEK;
+ 	}
++#line 12086 "ext/date/lib/parse_date.c"
+ yy783:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= '/') goto yy60;
+@@ -12085,6 +12148,7 @@ yy785:
+ 		}
+ 	}
+ yy786:
++#line 1473 "ext/date/lib/parse_date.re"
+ 	{
+ 		int length = 0;
+ 		DEBUG_OUTPUT("pgydotd");
+@@ -12097,6 +12161,7 @@ yy786:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_PG_YEARDAY;
+ 	}
++#line 12165 "ext/date/lib/parse_date.c"
+ yy787:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= '/') goto yy60;
+@@ -12178,6 +12243,7 @@ yy805:
+ yy806:
+ 	++YYCURSOR;
+ yy807:
++#line 1447 "ext/date/lib/parse_date.re"
+ 	{
+ 		int tz_not_found;
+ 		DEBUG_OUTPUT("xmlrpc | xmlrpcnocolon | soap | wddx | exif");
+@@ -12202,6 +12268,7 @@ yy807:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_XMLRPC_SOAP;
+ 	}
++#line 12272 "ext/date/lib/parse_date.c"
+ yy808:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= '2') {
+@@ -12490,6 +12557,7 @@ yy812:
+ 		}
+ 	}
+ yy813:
++#line 1435 "ext/date/lib/parse_date.re"
+ 	{
+ 		DEBUG_OUTPUT("datenocolon");
+ 		TIMELIB_INIT;
+@@ -12500,6 +12568,7 @@ yy813:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_DATE_NOCOLON;
+ 	}
++#line 12572 "ext/date/lib/parse_date.c"
+ yy814:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'H') {
+@@ -13293,6 +13362,7 @@ yy937:
+ 	if (yych <= '/') goto yy938;
+ 	if (yych <= '9') goto yy960;
+ yy938:
++#line 1312 "ext/date/lib/parse_date.re"
+ 	{
+ 		int length = 0;
+ 		DEBUG_OUTPUT("gnudateshorter");
+@@ -13305,6 +13375,7 @@ yy938:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_ISO_DATE;
+ 	}
++#line 13379 "ext/date/lib/parse_date.c"
+ yy939:
+ 	yyaccept = 21;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+@@ -14303,6 +14374,7 @@ yy1030:
+ 		}
+ 	}
+ yy1032:
++#line 1204 "ext/date/lib/parse_date.re"
+ 	{
+ 		DEBUG_OUTPUT("gnunocolon");
+ 		TIMELIB_INIT;
+@@ -14324,6 +14396,7 @@ yy1032:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_GNU_NOCOLON;
+ 	}
++#line 14400 "ext/date/lib/parse_date.c"
+ yy1033:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= '/') goto yy60;
+@@ -14413,6 +14486,7 @@ yy1039:
+ 		}
+ 	}
+ yy1040:
++#line 1250 "ext/date/lib/parse_date.re"
+ 	{
+ 		int tz_not_found;
+ 		DEBUG_OUTPUT("iso8601nocolon");
+@@ -14431,6 +14505,7 @@ yy1040:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_ISO_NOCOLON;
+ 	}
++#line 14509 "ext/date/lib/parse_date.c"
+ yy1041:
+ 	yyaccept = 24;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+@@ -15362,6 +15437,7 @@ yy1083:
+ 		}
+ 	}
+ yy1084:
++#line 1646 "ext/date/lib/parse_date.re"
+ 	{
+ 		timelib_sll i;
+ 		int         behavior = 0;
+@@ -15377,6 +15453,7 @@ yy1084:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_RELATIVE;
+ 	}
++#line 15457 "ext/date/lib/parse_date.c"
+ yy1085:
+ 	++YYCURSOR;
+ 	if ((YYLIMIT - YYCURSOR) < 2) YYFILL(2);
+@@ -15418,6 +15495,7 @@ yy1091:
+ 	if (yych != 'f') goto yy56;
+ yy1092:
+ 	++YYCURSOR;
++#line 1119 "ext/date/lib/parse_date.re"
+ 	{
+ 		timelib_sll i;
+ 		int         behavior = 0;
+@@ -15438,6 +15516,7 @@ yy1092:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_WEEK_DAY_OF_MONTH;
+ 	}
++#line 15520 "ext/date/lib/parse_date.c"
+ yy1094:
+ 	yyaccept = 25;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+@@ -15530,6 +15609,7 @@ yy1107:
+ 		}
+ 	}
+ yy1108:
++#line 1622 "ext/date/lib/parse_date.re"
+ 	{
+ 		timelib_sll i;
+ 		int         behavior = 0;
+@@ -15552,6 +15632,7 @@ yy1108:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_RELATIVE;
+ 	}
++#line 15636 "ext/date/lib/parse_date.c"
+ yy1109:
+ 	yych = *++YYCURSOR;
+ 	goto yy1084;
+@@ -18206,10 +18287,25 @@ yy1281:
+ yy1283:
+ 	yyaccept = 27;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+-	if (yych <= '/') goto yy1287;
+-	if (yych <= '9') goto yy1286;
+-	goto yy1287;
++	if (yych <= '@') {
++		if (yych <= 0x1F) {
++			if (yych == '\t') goto yy1287;
++		} else {
++			if (yych <= ' ') goto yy1287;
++			if (yych <= '/') goto yy1284;
++			if (yych <= '9') goto yy1286;
++		}
++	} else {
++		if (yych <= '`') {
++			if (yych <= 'A') goto yy1289;
++			if (yych == 'P') goto yy1289;
++		} else {
++			if (yych <= 'a') goto yy1289;
++			if (yych == 'p') goto yy1289;
++		}
++	}
+ yy1284:
++#line 1096 "ext/date/lib/parse_date.re"
+ 	{
+ 		DEBUG_OUTPUT("backof | frontof");
+ 		TIMELIB_INIT;
+@@ -18231,66 +18327,104 @@ yy1284:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_LF_DAY_OF_MONTH;
+ 	}
++#line 18331 "ext/date/lib/parse_date.c"
+ yy1285:
+ 	yyaccept = 27;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+-	if (yych <= '/') goto yy1287;
+-	if (yych >= '5') goto yy1287;
++	if (yych <= '@') {
++		if (yych <= 0x1F) {
++			if (yych == '\t') goto yy1287;
++			goto yy1284;
++		} else {
++			if (yych <= ' ') goto yy1287;
++			if (yych <= '/') goto yy1284;
++			if (yych >= '5') goto yy1284;
++		}
++	} else {
++		if (yych <= '`') {
++			if (yych <= 'A') goto yy1289;
++			if (yych == 'P') goto yy1289;
++			goto yy1284;
++		} else {
++			if (yych <= 'a') goto yy1289;
++			if (yych == 'p') goto yy1289;
++			goto yy1284;
++		}
++	}
+ yy1286:
+ 	yyaccept = 27;
+-	YYMARKER = ++YYCURSOR;
++	yych = *(YYMARKER = ++YYCURSOR);
++	if (yych <= 'A') {
++		if (yych <= 0x1F) {
++			if (yych != '\t') goto yy1284;
++		} else {
++			if (yych <= ' ') goto yy1287;
++			if (yych <= '@') goto yy1284;
++			goto yy1289;
++		}
++	} else {
++		if (yych <= '`') {
++			if (yych == 'P') goto yy1289;
++			goto yy1284;
++		} else {
++			if (yych <= 'a') goto yy1289;
++			if (yych == 'p') goto yy1289;
++			goto yy1284;
++		}
++	}
++yy1287:
++	++YYCURSOR;
+ 	if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
+ 	yych = *YYCURSOR;
+-yy1287:
+ 	if (yych <= 'A') {
+ 		if (yych <= 0x1F) {
+-			if (yych == '\t') goto yy1286;
+-			goto yy1284;
++			if (yych == '\t') goto yy1287;
++			goto yy56;
+ 		} else {
+-			if (yych <= ' ') goto yy1286;
+-			if (yych <= '@') goto yy1284;
++			if (yych <= ' ') goto yy1287;
++			if (yych <= '@') goto yy56;
+ 		}
+ 	} else {
+ 		if (yych <= '`') {
+-			if (yych != 'P') goto yy1284;
++			if (yych != 'P') goto yy56;
+ 		} else {
+-			if (yych <= 'a') goto yy1288;
+-			if (yych != 'p') goto yy1284;
++			if (yych <= 'a') goto yy1289;
++			if (yych != 'p') goto yy56;
+ 		}
+ 	}
+-yy1288:
++yy1289:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'L') {
+ 		if (yych != '.') goto yy56;
+ 	} else {
+-		if (yych <= 'M') goto yy1290;
+-		if (yych == 'm') goto yy1290;
++		if (yych <= 'M') goto yy1291;
++		if (yych == 'm') goto yy1291;
+ 		goto yy56;
+ 	}
+ 	yych = *++YYCURSOR;
+-	if (yych == 'M') goto yy1290;
++	if (yych == 'M') goto yy1291;
+ 	if (yych != 'm') goto yy56;
+-yy1290:
++yy1291:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 0x1F) {
+-		if (yych <= 0x00) goto yy1292;
+-		if (yych == '\t') goto yy1292;
++		if (yych <= 0x00) goto yy1293;
++		if (yych == '\t') goto yy1293;
+ 		goto yy56;
+ 	} else {
+-		if (yych <= ' ') goto yy1292;
++		if (yych <= ' ') goto yy1293;
+ 		if (yych != '.') goto yy56;
+ 	}
+ 	yych = *++YYCURSOR;
+ 	if (yych <= '\t') {
+-		if (yych <= 0x00) goto yy1292;
++		if (yych <= 0x00) goto yy1293;
+ 		if (yych <= 0x08) goto yy56;
+ 	} else {
+ 		if (yych != ' ') goto yy56;
+ 	}
+-yy1292:
++yy1293:
+ 	yych = *++YYCURSOR;
+ 	goto yy1284;
+-yy1293:
++yy1294:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'B') {
+@@ -18314,13 +18448,13 @@ yy1293:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy171;
+ 			} else {
+-				if (yych <= 'c') goto yy1294;
++				if (yych <= 'c') goto yy1295;
+ 				if (yych <= 'z') goto yy171;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1294:
++yy1295:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'J') {
+@@ -18344,13 +18478,13 @@ yy1294:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy175;
+ 			} else {
+-				if (yych <= 'k') goto yy1295;
++				if (yych <= 'k') goto yy1296;
+ 				if (yych <= 'z') goto yy175;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1295:
++yy1296:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= '.') {
+@@ -18375,7 +18509,7 @@ yy1295:
+ 			goto yy3;
+ 		}
+ 	}
+-yy1296:
++yy1297:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'S') {
+ 		if (yych <= ')') {
+@@ -18391,12 +18525,12 @@ yy1296:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy166;
+ 		} else {
+-			if (yych <= 's') goto yy1297;
++			if (yych <= 's') goto yy1298;
+ 			if (yych <= 'z') goto yy166;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1297:
++yy1298:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'T') {
+ 		if (yych <= ')') {
+@@ -18412,12 +18546,12 @@ yy1297:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy167;
+ 		} else {
+-			if (yych <= 't') goto yy1298;
++			if (yych <= 't') goto yy1299;
+ 			if (yych <= 'z') goto yy167;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1298:
++yy1299:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= '(') {
+@@ -18438,19 +18572,19 @@ yy1298:
+ 			goto yy3;
+ 		}
+ 	}
+-yy1299:
++yy1300:
+ 	yych = *++YYCURSOR;
+-	if (yych == 'D') goto yy1300;
++	if (yych == 'D') goto yy1301;
+ 	if (yych != 'd') goto yy1070;
+-yy1300:
++yy1301:
+ 	yych = *++YYCURSOR;
+-	if (yych == 'A') goto yy1301;
++	if (yych == 'A') goto yy1302;
+ 	if (yych != 'a') goto yy56;
+-yy1301:
++yy1302:
+ 	yych = *++YYCURSOR;
+-	if (yych == 'Y') goto yy1302;
++	if (yych == 'Y') goto yy1303;
+ 	if (yych != 'y') goto yy56;
+-yy1302:
++yy1303:
+ 	yyaccept = 25;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'R') {
+@@ -18461,14 +18595,15 @@ yy1302:
+ 		goto yy1084;
+ 	}
+ 	yych = *++YYCURSOR;
+-	if (yych == 'O') goto yy1304;
++	if (yych == 'O') goto yy1305;
+ 	if (yych != 'o') goto yy56;
+-yy1304:
++yy1305:
+ 	yych = *++YYCURSOR;
+-	if (yych == 'F') goto yy1305;
++	if (yych == 'F') goto yy1306;
+ 	if (yych != 'f') goto yy56;
+-yy1305:
++yy1306:
+ 	++YYCURSOR;
++#line 1079 "ext/date/lib/parse_date.re"
+ 	{
+ 		DEBUG_OUTPUT("firstdayof | lastdayof");
+ 		TIMELIB_INIT;
+@@ -18484,7 +18619,8 @@ yy1305:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_LF_DAY_OF_MONTH;
+ 	}
+-yy1307:
++#line 18623 "ext/date/lib/parse_date.c"
++yy1308:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'R') {
+@@ -18499,7 +18635,7 @@ yy1307:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'S') goto yy1297;
++			if (yych <= 'S') goto yy1298;
+ 			if (yych <= 'Z') goto yy166;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -18508,13 +18644,13 @@ yy1307:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy171;
+ 			} else {
+-				if (yych <= 's') goto yy1308;
++				if (yych <= 's') goto yy1309;
+ 				if (yych <= 'z') goto yy171;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1308:
++yy1309:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'S') {
+@@ -18529,7 +18665,7 @@ yy1308:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'T') goto yy1298;
++			if (yych <= 'T') goto yy1299;
+ 			if (yych <= 'Z') goto yy167;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -18538,20 +18674,20 @@ yy1308:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy175;
+ 			} else {
+-				if (yych <= 't') goto yy1309;
++				if (yych <= 't') goto yy1310;
+ 				if (yych <= 'z') goto yy175;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1309:
++yy1310:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= '-') {
+ 		if (yych <= ' ') {
+ 			if (yych == '\t') goto yy1069;
+ 			if (yych <= 0x1F) goto yy3;
+-			goto yy1299;
++			goto yy1300;
+ 		} else {
+ 			if (yych == ')') goto yy164;
+ 			if (yych <= ',') goto yy3;
+@@ -18573,7 +18709,7 @@ yy1309:
+ 			}
+ 		}
+ 	}
+-yy1310:
++yy1311:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'B') {
+ 		if (yych <= ')') {
+@@ -18582,7 +18718,7 @@ yy1310:
+ 		} else {
+ 			if (yych <= '@') goto yy3;
+ 			if (yych <= 'A') goto yy166;
+-			goto yy1346;
++			goto yy1348;
+ 		}
+ 	} else {
+ 		if (yych <= 'a') {
+@@ -18590,35 +18726,35 @@ yy1310:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy166;
+ 		} else {
+-			if (yych <= 'b') goto yy1346;
++			if (yych <= 'b') goto yy1348;
+ 			if (yych <= 'z') goto yy166;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1311:
++yy1312:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'R') {
+ 		if (yych <= '@') {
+ 			if (yych == ')') goto yy164;
+ 			goto yy3;
+ 		} else {
+-			if (yych == 'F') goto yy1336;
++			if (yych == 'F') goto yy1338;
+ 			if (yych <= 'Q') goto yy166;
+-			goto yy1335;
++			goto yy1337;
+ 		}
+ 	} else {
+ 		if (yych <= 'f') {
+ 			if (yych <= 'Z') goto yy166;
+ 			if (yych <= '`') goto yy3;
+ 			if (yych <= 'e') goto yy166;
+-			goto yy1336;
++			goto yy1338;
+ 		} else {
+-			if (yych == 'r') goto yy1335;
++			if (yych == 'r') goto yy1337;
+ 			if (yych <= 'z') goto yy166;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1312:
++yy1313:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'U') {
+ 		if (yych <= ')') {
+@@ -18627,7 +18763,7 @@ yy1312:
+ 		} else {
+ 			if (yych <= '@') goto yy3;
+ 			if (yych <= 'T') goto yy166;
+-			goto yy1332;
++			goto yy1334;
+ 		}
+ 	} else {
+ 		if (yych <= 't') {
+@@ -18635,19 +18771,19 @@ yy1312:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy166;
+ 		} else {
+-			if (yych <= 'u') goto yy1332;
++			if (yych <= 'u') goto yy1334;
+ 			if (yych <= 'z') goto yy166;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1313:
++yy1314:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'O') {
+ 		if (yych <= '@') {
+ 			if (yych == ')') goto yy164;
+ 			goto yy3;
+ 		} else {
+-			if (yych == 'I') goto yy1315;
++			if (yych == 'I') goto yy1316;
+ 			if (yych <= 'N') goto yy166;
+ 		}
+ 	} else {
+@@ -18655,14 +18791,14 @@ yy1313:
+ 			if (yych <= 'Z') goto yy166;
+ 			if (yych <= '`') goto yy3;
+ 			if (yych <= 'h') goto yy166;
+-			goto yy1315;
++			goto yy1316;
+ 		} else {
+-			if (yych == 'o') goto yy1314;
++			if (yych == 'o') goto yy1315;
+ 			if (yych <= 'z') goto yy166;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1314:
++yy1315:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'N') {
+ 		if (yych <= ')') {
+@@ -18671,7 +18807,7 @@ yy1314:
+ 		} else {
+ 			if (yych <= '@') goto yy3;
+ 			if (yych <= 'M') goto yy167;
+-			goto yy1318;
++			goto yy1319;
+ 		}
+ 	} else {
+ 		if (yych <= 'm') {
+@@ -18679,12 +18815,12 @@ yy1314:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy167;
+ 		} else {
+-			if (yych <= 'n') goto yy1318;
++			if (yych <= 'n') goto yy1319;
+ 			if (yych <= 'z') goto yy167;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1315:
++yy1316:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'D') {
+ 		if (yych <= ')') {
+@@ -18700,12 +18836,12 @@ yy1315:
+ 			if (yych <= '`') goto yy191;
+ 			goto yy167;
+ 		} else {
+-			if (yych <= 'd') goto yy1316;
++			if (yych <= 'd') goto yy1317;
+ 			if (yych <= 'z') goto yy167;
+ 			goto yy191;
+ 		}
+ 	}
+-yy1316:
++yy1317:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'A') {
+ 		if (yych == ')') goto yy164;
+@@ -18715,12 +18851,12 @@ yy1316:
+ 			if (yych <= 'Z') goto yy168;
+ 			goto yy3;
+ 		} else {
+-			if (yych <= 'a') goto yy1317;
++			if (yych <= 'a') goto yy1318;
+ 			if (yych <= 'z') goto yy168;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1317:
++yy1318:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'Y') {
+ 		if (yych <= ')') {
+@@ -18742,7 +18878,7 @@ yy1317:
+ 			goto yy3;
+ 		}
+ 	}
+-yy1318:
++yy1319:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'T') {
+ 		if (yych <= ')') {
+@@ -18758,16 +18894,16 @@ yy1318:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy168;
+ 		} else {
+-			if (yych <= 't') goto yy1319;
++			if (yych <= 't') goto yy1320;
+ 			if (yych <= 'z') goto yy168;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1319:
++yy1320:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= ')') {
+-		if (yych == ' ') goto yy1320;
++		if (yych == ' ') goto yy1321;
+ 		if (yych <= '(') goto yy3;
+ 		goto yy164;
+ 	} else {
+@@ -18780,88 +18916,143 @@ yy1319:
+ 			goto yy3;
+ 		}
+ 	}
+-yy1320:
++yy1321:
+ 	yych = *++YYCURSOR;
+-	if (yych == 'O') goto yy1321;
++	if (yych == 'O') goto yy1322;
+ 	if (yych != 'o') goto yy56;
+-yy1321:
++yy1322:
+ 	yych = *++YYCURSOR;
+-	if (yych == 'F') goto yy1322;
++	if (yych == 'F') goto yy1323;
+ 	if (yych != 'f') goto yy56;
+-yy1322:
++yy1323:
+ 	yych = *++YYCURSOR;
+ 	if (yych != ' ') goto yy56;
+ 	yych = *++YYCURSOR;
+ 	if (yych <= '/') goto yy56;
+-	if (yych <= '1') goto yy1324;
+-	if (yych <= '2') goto yy1325;
+-	if (yych <= '9') goto yy1326;
++	if (yych <= '1') goto yy1325;
++	if (yych <= '2') goto yy1326;
++	if (yych <= '9') goto yy1327;
+ 	goto yy56;
+-yy1324:
+-	yyaccept = 27;
+-	yych = *(YYMARKER = ++YYCURSOR);
+-	if (yych <= '/') goto yy1327;
+-	if (yych <= '9') goto yy1326;
+-	goto yy1327;
+ yy1325:
+ 	yyaccept = 27;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+-	if (yych <= '/') goto yy1327;
+-	if (yych >= '5') goto yy1327;
++	if (yych <= '@') {
++		if (yych <= 0x1F) {
++			if (yych == '\t') goto yy1328;
++			goto yy1284;
++		} else {
++			if (yych <= ' ') goto yy1328;
++			if (yych <= '/') goto yy1284;
++			if (yych <= '9') goto yy1327;
++			goto yy1284;
++		}
++	} else {
++		if (yych <= '`') {
++			if (yych <= 'A') goto yy1330;
++			if (yych == 'P') goto yy1330;
++			goto yy1284;
++		} else {
++			if (yych <= 'a') goto yy1330;
++			if (yych == 'p') goto yy1330;
++			goto yy1284;
++		}
++	}
+ yy1326:
+ 	yyaccept = 27;
+-	YYMARKER = ++YYCURSOR;
+-	if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
+-	yych = *YYCURSOR;
++	yych = *(YYMARKER = ++YYCURSOR);
++	if (yych <= '@') {
++		if (yych <= 0x1F) {
++			if (yych == '\t') goto yy1328;
++			goto yy1284;
++		} else {
++			if (yych <= ' ') goto yy1328;
++			if (yych <= '/') goto yy1284;
++			if (yych >= '5') goto yy1284;
++		}
++	} else {
++		if (yych <= '`') {
++			if (yych <= 'A') goto yy1330;
++			if (yych == 'P') goto yy1330;
++			goto yy1284;
++		} else {
++			if (yych <= 'a') goto yy1330;
++			if (yych == 'p') goto yy1330;
++			goto yy1284;
++		}
++	}
+ yy1327:
++	yyaccept = 27;
++	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'A') {
+ 		if (yych <= 0x1F) {
+-			if (yych == '\t') goto yy1326;
+-			goto yy1284;
++			if (yych != '\t') goto yy1284;
+ 		} else {
+-			if (yych <= ' ') goto yy1326;
++			if (yych <= ' ') goto yy1328;
+ 			if (yych <= '@') goto yy1284;
++			goto yy1330;
+ 		}
+ 	} else {
+ 		if (yych <= '`') {
+-			if (yych != 'P') goto yy1284;
++			if (yych == 'P') goto yy1330;
++			goto yy1284;
+ 		} else {
+-			if (yych <= 'a') goto yy1328;
+-			if (yych != 'p') goto yy1284;
++			if (yych <= 'a') goto yy1330;
++			if (yych == 'p') goto yy1330;
++			goto yy1284;
+ 		}
+ 	}
+ yy1328:
++	++YYCURSOR;
++	if ((YYLIMIT - YYCURSOR) < 5) YYFILL(5);
++	yych = *YYCURSOR;
++	if (yych <= 'A') {
++		if (yych <= 0x1F) {
++			if (yych == '\t') goto yy1328;
++			goto yy56;
++		} else {
++			if (yych <= ' ') goto yy1328;
++			if (yych <= '@') goto yy56;
++		}
++	} else {
++		if (yych <= '`') {
++			if (yych != 'P') goto yy56;
++		} else {
++			if (yych <= 'a') goto yy1330;
++			if (yych != 'p') goto yy56;
++		}
++	}
++yy1330:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'L') {
+ 		if (yych != '.') goto yy56;
+ 	} else {
+-		if (yych <= 'M') goto yy1330;
+-		if (yych == 'm') goto yy1330;
++		if (yych <= 'M') goto yy1332;
++		if (yych == 'm') goto yy1332;
+ 		goto yy56;
+ 	}
+ 	yych = *++YYCURSOR;
+-	if (yych == 'M') goto yy1330;
++	if (yych == 'M') goto yy1332;
+ 	if (yych != 'm') goto yy56;
+-yy1330:
++yy1332:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 0x1F) {
+-		if (yych <= 0x00) goto yy1292;
+-		if (yych == '\t') goto yy1292;
++		if (yych <= 0x00) goto yy1293;
++		if (yych == '\t') goto yy1293;
+ 		goto yy56;
+ 	} else {
+-		if (yych <= ' ') goto yy1292;
++		if (yych <= ' ') goto yy1293;
+ 		if (yych != '.') goto yy56;
+ 	}
+ 	yych = *++YYCURSOR;
+ 	if (yych <= '\t') {
+-		if (yych <= 0x00) goto yy1292;
++		if (yych <= 0x00) goto yy1293;
+ 		if (yych <= 0x08) goto yy56;
+-		goto yy1292;
++		goto yy1293;
+ 	} else {
+-		if (yych == ' ') goto yy1292;
++		if (yych == ' ') goto yy1293;
+ 		goto yy56;
+ 	}
+-yy1332:
++yy1334:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'R') {
+ 		if (yych <= ')') {
+@@ -18877,12 +19068,12 @@ yy1332:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy167;
+ 		} else {
+-			if (yych <= 'r') goto yy1333;
++			if (yych <= 'r') goto yy1335;
+ 			if (yych <= 'z') goto yy167;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1333:
++yy1335:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'T') {
+ 		if (yych <= ')') {
+@@ -18898,12 +19089,12 @@ yy1333:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy168;
+ 		} else {
+-			if (yych <= 't') goto yy1334;
++			if (yych <= 't') goto yy1336;
+ 			if (yych <= 'z') goto yy168;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1334:
++yy1336:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'H') {
+ 		if (yych <= ')') {
+@@ -18925,7 +19116,7 @@ yy1334:
+ 			goto yy3;
+ 		}
+ 	}
+-yy1335:
++yy1337:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'S') {
+ 		if (yych <= ')') {
+@@ -18934,7 +19125,7 @@ yy1335:
+ 		} else {
+ 			if (yych <= '@') goto yy3;
+ 			if (yych <= 'R') goto yy167;
+-			goto yy1338;
++			goto yy1340;
+ 		}
+ 	} else {
+ 		if (yych <= 'r') {
+@@ -18942,12 +19133,12 @@ yy1335:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy167;
+ 		} else {
+-			if (yych <= 's') goto yy1338;
++			if (yych <= 's') goto yy1340;
+ 			if (yych <= 'z') goto yy167;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1336:
++yy1338:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'T') {
+ 		if (yych <= ')') {
+@@ -18963,12 +19154,12 @@ yy1336:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy167;
+ 		} else {
+-			if (yych <= 't') goto yy1337;
++			if (yych <= 't') goto yy1339;
+ 			if (yych <= 'z') goto yy167;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1337:
++yy1339:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'H') {
+ 		if (yych <= ')') {
+@@ -18990,7 +19181,7 @@ yy1337:
+ 			goto yy3;
+ 		}
+ 	}
+-yy1338:
++yy1340:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'T') {
+ 		if (yych <= ')') {
+@@ -19006,12 +19197,12 @@ yy1338:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy168;
+ 		} else {
+-			if (yych <= 't') goto yy1339;
++			if (yych <= 't') goto yy1341;
+ 			if (yych <= 'z') goto yy168;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1339:
++yy1341:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= '(') {
+@@ -19032,19 +19223,19 @@ yy1339:
+ 			goto yy3;
+ 		}
+ 	}
+-yy1340:
++yy1342:
+ 	yych = *++YYCURSOR;
+-	if (yych == 'D') goto yy1341;
++	if (yych == 'D') goto yy1343;
+ 	if (yych != 'd') goto yy1197;
+-yy1341:
++yy1343:
+ 	yych = *++YYCURSOR;
+-	if (yych == 'A') goto yy1342;
++	if (yych == 'A') goto yy1344;
+ 	if (yych != 'a') goto yy56;
+-yy1342:
++yy1344:
+ 	yych = *++YYCURSOR;
+-	if (yych == 'Y') goto yy1343;
++	if (yych == 'Y') goto yy1345;
+ 	if (yych != 'y') goto yy56;
+-yy1343:
++yy1345:
+ 	yyaccept = 25;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'R') {
+@@ -19055,14 +19246,14 @@ yy1343:
+ 		goto yy1084;
+ 	}
+ 	yych = *++YYCURSOR;
+-	if (yych == 'O') goto yy1345;
++	if (yych == 'O') goto yy1347;
+ 	if (yych != 'o') goto yy56;
+-yy1345:
++yy1347:
+ 	yych = *++YYCURSOR;
+-	if (yych == 'F') goto yy1305;
+-	if (yych == 'f') goto yy1305;
++	if (yych == 'F') goto yy1306;
++	if (yych == 'f') goto yy1306;
+ 	goto yy56;
+-yy1346:
++yy1348:
+ 	yyaccept = 5;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= '/') {
+@@ -19097,13 +19288,13 @@ yy1346:
+ 				if (yych <= '`') goto yy218;
+ 				goto yy167;
+ 			} else {
+-				if (yych <= 'r') goto yy1347;
++				if (yych <= 'r') goto yy1349;
+ 				if (yych <= 'z') goto yy167;
+ 				goto yy218;
+ 			}
+ 		}
+ 	}
+-yy1347:
++yy1349:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'U') {
+ 		if (yych <= ')') {
+@@ -19119,12 +19310,12 @@ yy1347:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy168;
+ 		} else {
+-			if (yych <= 'u') goto yy1348;
++			if (yych <= 'u') goto yy1350;
+ 			if (yych <= 'z') goto yy168;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1348:
++yy1350:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'A') {
+ 		if (yych == ')') goto yy164;
+@@ -19134,27 +19325,27 @@ yy1348:
+ 			if (yych <= 'Z') goto yy169;
+ 			goto yy3;
+ 		} else {
+-			if (yych <= 'a') goto yy1349;
++			if (yych <= 'a') goto yy1351;
+ 			if (yych <= 'z') goto yy169;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1349:
++yy1351:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'Q') {
+ 		if (yych == ')') goto yy164;
+ 		goto yy3;
+ 	} else {
+-		if (yych <= 'R') goto yy1350;
++		if (yych <= 'R') goto yy1352;
+ 		if (yych != 'r') goto yy3;
+ 	}
+-yy1350:
++yy1352:
+ 	yych = *++YYCURSOR;
+ 	if (yych == 'Y') goto yy229;
+ 	if (yych == 'y') goto yy229;
+ 	goto yy56;
+-yy1351:
++yy1353:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'A') {
+@@ -19169,7 +19360,7 @@ yy1351:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'B') goto yy1346;
++			if (yych <= 'B') goto yy1348;
+ 			if (yych <= 'Z') goto yy166;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -19178,13 +19369,13 @@ yy1351:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy171;
+ 			} else {
+-				if (yych <= 'b') goto yy1369;
++				if (yych <= 'b') goto yy1371;
+ 				if (yych <= 'z') goto yy171;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1352:
++yy1354:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'Q') {
+@@ -19201,14 +19392,14 @@ yy1352:
+ 				if (yych <= '/') goto yy172;
+ 				goto yy3;
+ 			} else {
+-				if (yych == 'F') goto yy1336;
++				if (yych == 'F') goto yy1338;
+ 				goto yy166;
+ 			}
+ 		}
+ 	} else {
+ 		if (yych <= '`') {
+ 			if (yych <= 'Z') {
+-				if (yych <= 'R') goto yy1335;
++				if (yych <= 'R') goto yy1337;
+ 				goto yy166;
+ 			} else {
+ 				if (yych == '_') goto yy172;
+@@ -19216,16 +19407,16 @@ yy1352:
+ 			}
+ 		} else {
+ 			if (yych <= 'q') {
+-				if (yych == 'f') goto yy1365;
++				if (yych == 'f') goto yy1367;
+ 				goto yy171;
+ 			} else {
+-				if (yych <= 'r') goto yy1364;
++				if (yych <= 'r') goto yy1366;
+ 				if (yych <= 'z') goto yy171;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1353:
++yy1355:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'T') {
+@@ -19240,7 +19431,7 @@ yy1353:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'U') goto yy1332;
++			if (yych <= 'U') goto yy1334;
+ 			if (yych <= 'Z') goto yy166;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -19249,13 +19440,13 @@ yy1353:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy171;
+ 			} else {
+-				if (yych <= 'u') goto yy1361;
++				if (yych <= 'u') goto yy1363;
+ 				if (yych <= 'z') goto yy171;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1354:
++yy1356:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'N') {
+@@ -19272,14 +19463,14 @@ yy1354:
+ 				if (yych <= '/') goto yy172;
+ 				goto yy3;
+ 			} else {
+-				if (yych == 'I') goto yy1315;
++				if (yych == 'I') goto yy1316;
+ 				goto yy166;
+ 			}
+ 		}
+ 	} else {
+ 		if (yych <= '`') {
+ 			if (yych <= 'Z') {
+-				if (yych <= 'O') goto yy1314;
++				if (yych <= 'O') goto yy1315;
+ 				goto yy166;
+ 			} else {
+ 				if (yych == '_') goto yy172;
+@@ -19287,16 +19478,16 @@ yy1354:
+ 			}
+ 		} else {
+ 			if (yych <= 'n') {
+-				if (yych == 'i') goto yy1356;
++				if (yych == 'i') goto yy1358;
+ 				goto yy171;
+ 			} else {
+-				if (yych <= 'o') goto yy1355;
++				if (yych <= 'o') goto yy1357;
+ 				if (yych <= 'z') goto yy171;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1355:
++yy1357:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'M') {
+@@ -19311,7 +19502,7 @@ yy1355:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'N') goto yy1318;
++			if (yych <= 'N') goto yy1319;
+ 			if (yych <= 'Z') goto yy167;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -19320,13 +19511,13 @@ yy1355:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy175;
+ 			} else {
+-				if (yych <= 'n') goto yy1359;
++				if (yych <= 'n') goto yy1361;
+ 				if (yych <= 'z') goto yy175;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1356:
++yy1358:
+ 	yyaccept = 4;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'C') {
+@@ -19341,7 +19532,7 @@ yy1356:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'D') goto yy1316;
++			if (yych <= 'D') goto yy1317;
+ 			if (yych <= 'Z') goto yy167;
+ 			if (yych <= '^') goto yy191;
+ 			goto yy172;
+@@ -19350,13 +19541,13 @@ yy1356:
+ 				if (yych <= '`') goto yy191;
+ 				goto yy175;
+ 			} else {
+-				if (yych <= 'd') goto yy1357;
++				if (yych <= 'd') goto yy1359;
+ 				if (yych <= 'z') goto yy175;
+ 				goto yy191;
+ 			}
+ 		}
+ 	}
+-yy1357:
++yy1359:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= '@') {
+@@ -19370,18 +19561,18 @@ yy1357:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'A') goto yy1317;
++			if (yych <= 'A') goto yy1318;
+ 			if (yych <= 'Z') goto yy168;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+ 		} else {
+ 			if (yych <= '`') goto yy3;
+-			if (yych <= 'a') goto yy1358;
++			if (yych <= 'a') goto yy1360;
+ 			if (yych <= 'z') goto yy176;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1358:
++yy1360:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'X') {
+@@ -19411,7 +19602,7 @@ yy1358:
+ 			}
+ 		}
+ 	}
+-yy1359:
++yy1361:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'S') {
+@@ -19426,7 +19617,7 @@ yy1359:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'T') goto yy1319;
++			if (yych <= 'T') goto yy1320;
+ 			if (yych <= 'Z') goto yy168;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -19435,18 +19626,18 @@ yy1359:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy176;
+ 			} else {
+-				if (yych <= 't') goto yy1360;
++				if (yych <= 't') goto yy1362;
+ 				if (yych <= 'z') goto yy176;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1360:
++yy1362:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= '.') {
+ 		if (yych <= '(') {
+-			if (yych == ' ') goto yy1320;
++			if (yych == ' ') goto yy1321;
+ 			goto yy3;
+ 		} else {
+ 			if (yych <= ')') goto yy164;
+@@ -19466,7 +19657,7 @@ yy1360:
+ 			goto yy3;
+ 		}
+ 	}
+-yy1361:
++yy1363:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'Q') {
+@@ -19481,7 +19672,7 @@ yy1361:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'R') goto yy1333;
++			if (yych <= 'R') goto yy1335;
+ 			if (yych <= 'Z') goto yy167;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -19490,13 +19681,13 @@ yy1361:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy175;
+ 			} else {
+-				if (yych <= 'r') goto yy1362;
++				if (yych <= 'r') goto yy1364;
+ 				if (yych <= 'z') goto yy175;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1362:
++yy1364:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'S') {
+@@ -19511,7 +19702,7 @@ yy1362:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'T') goto yy1334;
++			if (yych <= 'T') goto yy1336;
+ 			if (yych <= 'Z') goto yy168;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -19520,13 +19711,13 @@ yy1362:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy176;
+ 			} else {
+-				if (yych <= 't') goto yy1363;
++				if (yych <= 't') goto yy1365;
+ 				if (yych <= 'z') goto yy176;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1363:
++yy1365:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'G') {
+@@ -19556,7 +19747,7 @@ yy1363:
+ 			}
+ 		}
+ 	}
+-yy1364:
++yy1366:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'R') {
+@@ -19571,7 +19762,7 @@ yy1364:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'S') goto yy1338;
++			if (yych <= 'S') goto yy1340;
+ 			if (yych <= 'Z') goto yy167;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -19580,13 +19771,13 @@ yy1364:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy175;
+ 			} else {
+-				if (yych <= 's') goto yy1367;
++				if (yych <= 's') goto yy1369;
+ 				if (yych <= 'z') goto yy175;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1365:
++yy1367:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'S') {
+@@ -19601,7 +19792,7 @@ yy1365:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'T') goto yy1337;
++			if (yych <= 'T') goto yy1339;
+ 			if (yych <= 'Z') goto yy167;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -19610,13 +19801,13 @@ yy1365:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy175;
+ 			} else {
+-				if (yych <= 't') goto yy1366;
++				if (yych <= 't') goto yy1368;
+ 				if (yych <= 'z') goto yy175;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1366:
++yy1368:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'G') {
+@@ -19646,7 +19837,7 @@ yy1366:
+ 			}
+ 		}
+ 	}
+-yy1367:
++yy1369:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'S') {
+@@ -19661,7 +19852,7 @@ yy1367:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'T') goto yy1339;
++			if (yych <= 'T') goto yy1341;
+ 			if (yych <= 'Z') goto yy168;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -19670,20 +19861,20 @@ yy1367:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy176;
+ 			} else {
+-				if (yych <= 't') goto yy1368;
++				if (yych <= 't') goto yy1370;
+ 				if (yych <= 'z') goto yy176;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1368:
++yy1370:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= '-') {
+ 		if (yych <= ' ') {
+ 			if (yych == '\t') goto yy1196;
+ 			if (yych <= 0x1F) goto yy3;
+-			goto yy1340;
++			goto yy1342;
+ 		} else {
+ 			if (yych == ')') goto yy164;
+ 			if (yych <= ',') goto yy3;
+@@ -19705,7 +19896,7 @@ yy1368:
+ 			}
+ 		}
+ 	}
+-yy1369:
++yy1371:
+ 	yyaccept = 5;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= '9') {
+@@ -19733,7 +19924,7 @@ yy1369:
+ 				if (yych <= '@') goto yy218;
+ 				goto yy167;
+ 			} else {
+-				if (yych <= 'R') goto yy1347;
++				if (yych <= 'R') goto yy1349;
+ 				if (yych <= 'Z') goto yy167;
+ 				goto yy218;
+ 			}
+@@ -19743,13 +19934,13 @@ yy1369:
+ 				if (yych <= '`') goto yy218;
+ 				goto yy175;
+ 			} else {
+-				if (yych <= 'r') goto yy1370;
++				if (yych <= 'r') goto yy1372;
+ 				if (yych <= 'z') goto yy175;
+ 				goto yy218;
+ 			}
+ 		}
+ 	}
+-yy1370:
++yy1372:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'T') {
+@@ -19764,7 +19955,7 @@ yy1370:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'U') goto yy1348;
++			if (yych <= 'U') goto yy1350;
+ 			if (yych <= 'Z') goto yy168;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -19773,13 +19964,13 @@ yy1370:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy176;
+ 			} else {
+-				if (yych <= 'u') goto yy1371;
++				if (yych <= 'u') goto yy1373;
+ 				if (yych <= 'z') goto yy176;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1371:
++yy1373:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= '@') {
+@@ -19793,18 +19984,18 @@ yy1371:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'A') goto yy1349;
++			if (yych <= 'A') goto yy1351;
+ 			if (yych <= 'Z') goto yy169;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+ 		} else {
+ 			if (yych <= '`') goto yy3;
+-			if (yych <= 'a') goto yy1372;
++			if (yych <= 'a') goto yy1374;
+ 			if (yych <= 'z') goto yy177;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1372:
++yy1374:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'Q') {
+@@ -19818,33 +20009,34 @@ yy1372:
+ 		}
+ 	} else {
+ 		if (yych <= '`') {
+-			if (yych <= 'R') goto yy1350;
++			if (yych <= 'R') goto yy1352;
+ 			if (yych == '_') goto yy172;
+ 			goto yy3;
+ 		} else {
+-			if (yych == 'r') goto yy1373;
++			if (yych == 'r') goto yy1375;
+ 			if (yych <= 'z') goto yy178;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1373:
++yy1375:
+ 	yych = *++YYCURSOR;
+ 	if (yych == 'Y') goto yy229;
+ 	if (yych == 'y') goto yy341;
+ 	goto yy179;
+-yy1374:
++yy1376:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= '/') goto yy56;
+ 	if (yych >= ':') goto yy56;
+-yy1375:
++yy1377:
+ 	yyaccept = 28;
+ 	YYMARKER = ++YYCURSOR;
+ 	if ((YYLIMIT - YYCURSOR) < 7) YYFILL(7);
+ 	yych = *YYCURSOR;
+-	if (yych == '.') goto yy1378;
+-	if (yych <= '/') goto yy1377;
+-	if (yych <= '9') goto yy1375;
+-yy1377:
++	if (yych == '.') goto yy1380;
++	if (yych <= '/') goto yy1379;
++	if (yych <= '9') goto yy1377;
++yy1379:
++#line 1025 "ext/date/lib/parse_date.re"
+ 	{
+ 		timelib_ull i;
+ 
+@@ -19869,7 +20061,8 @@ yy1377:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_RELATIVE;
+ 	}
+-yy1378:
++#line 20065 "ext/date/lib/parse_date.c"
++yy1380:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= '/') goto yy56;
+ 	if (yych >= ':') goto yy56;
+@@ -19889,6 +20082,7 @@ yy1378:
+ 	if (yych <= '/') goto yy56;
+ 	if (yych >= ':') goto yy56;
+ 	++YYCURSOR;
++#line 1051 "ext/date/lib/parse_date.re"
+ 	{
+ 		timelib_ull i, ms;
+ 
+@@ -19915,7 +20109,8 @@ yy1378:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_RELATIVE;
+ 	}
+-yy1386:
++#line 20113 "ext/date/lib/parse_date.c"
++yy1388:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'N') {
+ 		if (yych <= ')') {
+@@ -19924,7 +20119,7 @@ yy1386:
+ 		} else {
+ 			if (yych <= '@') goto yy3;
+ 			if (yych <= 'M') goto yy166;
+-			goto yy1427;
++			goto yy1429;
+ 		}
+ 	} else {
+ 		if (yych <= 'm') {
+@@ -19932,58 +20127,58 @@ yy1386:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy166;
+ 		} else {
+-			if (yych <= 'n') goto yy1427;
++			if (yych <= 'n') goto yy1429;
+ 			if (yych <= 'z') goto yy166;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1387:
++yy1389:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'U') {
+ 		if (yych <= '@') {
+ 			if (yych == ')') goto yy164;
+ 			goto yy3;
+ 		} else {
+-			if (yych == 'I') goto yy1419;
++			if (yych == 'I') goto yy1421;
+ 			if (yych <= 'T') goto yy166;
+-			goto yy1420;
++			goto yy1422;
+ 		}
+ 	} else {
+ 		if (yych <= 'i') {
+ 			if (yych <= 'Z') goto yy166;
+ 			if (yych <= '`') goto yy3;
+ 			if (yych <= 'h') goto yy166;
+-			goto yy1419;
++			goto yy1421;
+ 		} else {
+-			if (yych == 'u') goto yy1420;
++			if (yych == 'u') goto yy1422;
+ 			if (yych <= 'z') goto yy166;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1388:
++yy1390:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'M') {
+ 		if (yych <= '@') {
+ 			if (yych == ')') goto yy164;
+ 			goto yy3;
+ 		} else {
+-			if (yych == 'D') goto yy1408;
++			if (yych == 'D') goto yy1410;
+ 			if (yych <= 'L') goto yy166;
+-			goto yy1409;
++			goto yy1411;
+ 		}
+ 	} else {
+ 		if (yych <= 'd') {
+ 			if (yych <= 'Z') goto yy166;
+ 			if (yych <= '`') goto yy3;
+ 			if (yych <= 'c') goto yy166;
+-			goto yy1408;
++			goto yy1410;
+ 		} else {
+-			if (yych == 'm') goto yy1409;
++			if (yych == 'm') goto yy1411;
+ 			if (yych <= 'z') goto yy166;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1389:
++yy1391:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'E') {
+ 		if (yych <= ')') {
+@@ -19992,7 +20187,7 @@ yy1389:
+ 		} else {
+ 			if (yych <= '@') goto yy3;
+ 			if (yych <= 'D') goto yy166;
+-			goto yy1404;
++			goto yy1406;
+ 		}
+ 	} else {
+ 		if (yych <= 'd') {
+@@ -20000,12 +20195,12 @@ yy1389:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy166;
+ 		} else {
+-			if (yych <= 'e') goto yy1404;
++			if (yych <= 'e') goto yy1406;
+ 			if (yych <= 'z') goto yy166;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1390:
++yy1392:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'E') {
+ 		if (yych <= ')') {
+@@ -20014,7 +20209,7 @@ yy1390:
+ 		} else {
+ 			if (yych <= '@') goto yy3;
+ 			if (yych <= 'D') goto yy166;
+-			goto yy1400;
++			goto yy1402;
+ 		}
+ 	} else {
+ 		if (yych <= 'd') {
+@@ -20022,68 +20217,68 @@ yy1390:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy166;
+ 		} else {
+-			if (yych <= 'e') goto yy1400;
++			if (yych <= 'e') goto yy1402;
+ 			if (yych <= 'z') goto yy166;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1391:
++yy1393:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= '/') {
+ 		if (yych == '.') goto yy1029;
+ 		goto yy56;
+ 	} else {
+-		if (yych <= '9') goto yy1394;
++		if (yych <= '9') goto yy1396;
+ 		if (yych <= ':') goto yy1029;
+ 		goto yy56;
+ 	}
+-yy1392:
++yy1394:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= '/') {
+ 		if (yych == '.') goto yy1029;
+ 		goto yy56;
+ 	} else {
+-		if (yych <= '4') goto yy1394;
++		if (yych <= '4') goto yy1396;
+ 		if (yych == ':') goto yy1029;
+ 		goto yy56;
+ 	}
+-yy1393:
++yy1395:
+ 	yych = *++YYCURSOR;
+ 	if (yych == '.') goto yy1029;
+ 	if (yych == ':') goto yy1029;
+ 	goto yy56;
+-yy1394:
++yy1396:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= '/') {
+ 		if (yych == '.') goto yy1029;
+ 		goto yy56;
+ 	} else {
+-		if (yych <= '5') goto yy1395;
++		if (yych <= '5') goto yy1397;
+ 		if (yych == ':') goto yy1029;
+ 		goto yy56;
+ 	}
+-yy1395:
++yy1397:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= '/') goto yy56;
+ 	if (yych >= ':') goto yy56;
+ 	yyaccept = 23;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= '/') goto yy1032;
+-	if (yych <= '5') goto yy1397;
+-	if (yych <= '6') goto yy1398;
++	if (yych <= '5') goto yy1399;
++	if (yych <= '6') goto yy1400;
+ 	goto yy1032;
+-yy1397:
++yy1399:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= '/') goto yy56;
+-	if (yych <= '9') goto yy1399;
++	if (yych <= '9') goto yy1401;
+ 	goto yy56;
+-yy1398:
++yy1400:
+ 	yych = *++YYCURSOR;
+ 	if (yych != '0') goto yy56;
+-yy1399:
++yy1401:
+ 	yych = *++YYCURSOR;
+ 	goto yy1040;
+-yy1400:
++yy1402:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'L') {
+ 		if (yych <= ')') {
+@@ -20099,12 +20294,12 @@ yy1400:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy167;
+ 		} else {
+-			if (yych <= 'l') goto yy1401;
++			if (yych <= 'l') goto yy1403;
+ 			if (yych <= 'z') goto yy167;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1401:
++yy1403:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'F') {
+ 		if (yych <= ')') {
+@@ -20120,12 +20315,12 @@ yy1401:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy168;
+ 		} else {
+-			if (yych <= 'f') goto yy1402;
++			if (yych <= 'f') goto yy1404;
+ 			if (yych <= 'z') goto yy168;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1402:
++yy1404:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'T') {
+ 		if (yych <= ')') {
+@@ -20141,12 +20336,12 @@ yy1402:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy169;
+ 		} else {
+-			if (yych <= 't') goto yy1403;
++			if (yych <= 't') goto yy1405;
+ 			if (yych <= 'z') goto yy169;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1403:
++yy1405:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'G') {
+@@ -20157,7 +20352,7 @@ yy1403:
+ 		if (yych == 'h') goto yy1195;
+ 		goto yy3;
+ 	}
+-yy1404:
++yy1406:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'S') {
+ 		if (yych <= ')') {
+@@ -20173,12 +20368,12 @@ yy1404:
+ 			if (yych <= '`') goto yy191;
+ 			goto yy167;
+ 		} else {
+-			if (yych <= 's') goto yy1405;
++			if (yych <= 's') goto yy1407;
+ 			if (yych <= 'z') goto yy167;
+ 			goto yy191;
+ 		}
+ 	}
+-yy1405:
++yy1407:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'D') {
+ 		if (yych <= ')') {
+@@ -20194,12 +20389,12 @@ yy1405:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy168;
+ 		} else {
+-			if (yych <= 'd') goto yy1406;
++			if (yych <= 'd') goto yy1408;
+ 			if (yych <= 'z') goto yy168;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1406:
++yy1408:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'A') {
+ 		if (yych == ')') goto yy164;
+@@ -20209,12 +20404,12 @@ yy1406:
+ 			if (yych <= 'Z') goto yy169;
+ 			goto yy3;
+ 		} else {
+-			if (yych <= 'a') goto yy1407;
++			if (yych <= 'a') goto yy1409;
+ 			if (yych <= 'z') goto yy169;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1407:
++yy1409:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'X') {
+ 		if (yych == ')') goto yy164;
+@@ -20224,23 +20419,23 @@ yy1407:
+ 		if (yych == 'y') goto yy197;
+ 		goto yy3;
+ 	}
+-yy1408:
++yy1410:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'A') {
+ 		if (yych == ')') goto yy164;
+ 		if (yych <= '@') goto yy3;
+-		goto yy1416;
++		goto yy1418;
+ 	} else {
+ 		if (yych <= '`') {
+ 			if (yych <= 'Z') goto yy167;
+ 			goto yy3;
+ 		} else {
+-			if (yych <= 'a') goto yy1416;
++			if (yych <= 'a') goto yy1418;
+ 			if (yych <= 'z') goto yy167;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1409:
++yy1411:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'O') {
+ 		if (yych <= ')') {
+@@ -20256,12 +20451,12 @@ yy1409:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy167;
+ 		} else {
+-			if (yych <= 'o') goto yy1410;
++			if (yych <= 'o') goto yy1412;
+ 			if (yych <= 'z') goto yy167;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1410:
++yy1412:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'R') {
+ 		if (yych <= ')') {
+@@ -20277,12 +20472,12 @@ yy1410:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy168;
+ 		} else {
+-			if (yych <= 'r') goto yy1411;
++			if (yych <= 'r') goto yy1413;
+ 			if (yych <= 'z') goto yy168;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1411:
++yy1413:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'R') {
+ 		if (yych <= ')') {
+@@ -20298,28 +20493,29 @@ yy1411:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy169;
+ 		} else {
+-			if (yych <= 'r') goto yy1412;
++			if (yych <= 'r') goto yy1414;
+ 			if (yych <= 'z') goto yy169;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1412:
++yy1414:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'N') {
+ 		if (yych == ')') goto yy164;
+ 		goto yy3;
+ 	} else {
+-		if (yych <= 'O') goto yy1413;
++		if (yych <= 'O') goto yy1415;
+ 		if (yych != 'o') goto yy3;
+ 	}
+-yy1413:
++yy1415:
+ 	yych = *++YYCURSOR;
+-	if (yych == 'W') goto yy1414;
++	if (yych == 'W') goto yy1416;
+ 	if (yych != 'w') goto yy56;
+-yy1414:
++yy1416:
+ 	++YYCURSOR;
+-yy1415:
++yy1417:
++#line 1013 "ext/date/lib/parse_date.re"
+ 	{
+ 		DEBUG_OUTPUT("tomorrow");
+ 		TIMELIB_INIT;
+@@ -20330,7 +20526,8 @@ yy1415:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_RELATIVE;
+ 	}
+-yy1416:
++#line 20530 "ext/date/lib/parse_date.c"
++yy1418:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'Y') {
+ 		if (yych <= ')') {
+@@ -20346,21 +20543,22 @@ yy1416:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy168;
+ 		} else {
+-			if (yych <= 'y') goto yy1417;
++			if (yych <= 'y') goto yy1419;
+ 			if (yych <= 'z') goto yy168;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1417:
++yy1419:
+ 	++YYCURSOR;
+ 	if ((yych = *YYCURSOR) <= '@') {
+ 		if (yych == ')') goto yy164;
+ 	} else {
+ 		if (yych <= 'Z') goto yy169;
+-		if (yych <= '`') goto yy1418;
++		if (yych <= '`') goto yy1420;
+ 		if (yych <= 'z') goto yy169;
+ 	}
+-yy1418:
++yy1420:
++#line 1003 "ext/date/lib/parse_date.re"
+ 	{
+ 		DEBUG_OUTPUT("midnight | today");
+ 		TIMELIB_INIT;
+@@ -20369,7 +20567,8 @@ yy1418:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_RELATIVE;
+ 	}
+-yy1419:
++#line 20571 "ext/date/lib/parse_date.c"
++yy1421:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'S') {
+ 		if (yych <= '@') {
+@@ -20377,8 +20576,8 @@ yy1419:
+ 			goto yy3;
+ 		} else {
+ 			if (yych <= 'Q') goto yy167;
+-			if (yych <= 'R') goto yy1425;
+-			goto yy1426;
++			if (yych <= 'R') goto yy1427;
++			goto yy1428;
+ 		}
+ 	} else {
+ 		if (yych <= 'q') {
+@@ -20386,13 +20585,13 @@ yy1419:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy167;
+ 		} else {
+-			if (yych <= 'r') goto yy1425;
+-			if (yych <= 's') goto yy1426;
++			if (yych <= 'r') goto yy1427;
++			if (yych <= 's') goto yy1428;
+ 			if (yych <= 'z') goto yy167;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1420:
++yy1422:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'R') {
+ 		if (yych <= ')') {
+@@ -20408,12 +20607,12 @@ yy1420:
+ 			if (yych <= '`') goto yy191;
+ 			goto yy167;
+ 		} else {
+-			if (yych <= 'r') goto yy1421;
++			if (yych <= 'r') goto yy1423;
+ 			if (yych <= 'z') goto yy167;
+ 			goto yy191;
+ 		}
+ 	}
+-yy1421:
++yy1423:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'S') {
+ 		if (yych <= ')') {
+@@ -20429,12 +20628,12 @@ yy1421:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy168;
+ 		} else {
+-			if (yych <= 's') goto yy1422;
++			if (yych <= 's') goto yy1424;
+ 			if (yych <= 'z') goto yy168;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1422:
++yy1424:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'D') {
+ 		if (yych <= ')') {
+@@ -20450,27 +20649,27 @@ yy1422:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy169;
+ 		} else {
+-			if (yych <= 'd') goto yy1423;
++			if (yych <= 'd') goto yy1425;
+ 			if (yych <= 'z') goto yy169;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1423:
++yy1425:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= '@') {
+ 		if (yych == ')') goto yy164;
+ 		goto yy3;
+ 	} else {
+-		if (yych <= 'A') goto yy1424;
++		if (yych <= 'A') goto yy1426;
+ 		if (yych != 'a') goto yy3;
+ 	}
+-yy1424:
++yy1426:
+ 	yych = *++YYCURSOR;
+ 	if (yych == 'Y') goto yy197;
+ 	if (yych == 'y') goto yy197;
+ 	goto yy56;
+-yy1425:
++yy1427:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'D') {
+ 		if (yych <= ')') {
+@@ -20492,7 +20691,7 @@ yy1425:
+ 			goto yy3;
+ 		}
+ 	}
+-yy1426:
++yy1428:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= '(') {
+@@ -20514,7 +20713,7 @@ yy1426:
+ 			goto yy3;
+ 		}
+ 	}
+-yy1427:
++yy1429:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'T') {
+ 		if (yych <= ')') {
+@@ -20530,12 +20729,12 @@ yy1427:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy167;
+ 		} else {
+-			if (yych <= 't') goto yy1428;
++			if (yych <= 't') goto yy1430;
+ 			if (yych <= 'z') goto yy167;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1428:
++yy1430:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'H') {
+ 		if (yych <= ')') {
+@@ -20557,7 +20756,7 @@ yy1428:
+ 			goto yy3;
+ 		}
+ 	}
+-yy1429:
++yy1431:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'M') {
+@@ -20572,7 +20771,7 @@ yy1429:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'N') goto yy1427;
++			if (yych <= 'N') goto yy1429;
+ 			if (yych <= 'Z') goto yy166;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -20581,13 +20780,13 @@ yy1429:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy171;
+ 			} else {
+-				if (yych <= 'n') goto yy1459;
++				if (yych <= 'n') goto yy1461;
+ 				if (yych <= 'z') goto yy171;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1430:
++yy1432:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'T') {
+@@ -20604,14 +20803,14 @@ yy1430:
+ 				if (yych <= '/') goto yy172;
+ 				goto yy3;
+ 			} else {
+-				if (yych == 'I') goto yy1419;
++				if (yych == 'I') goto yy1421;
+ 				goto yy166;
+ 			}
+ 		}
+ 	} else {
+ 		if (yych <= '`') {
+ 			if (yych <= 'Z') {
+-				if (yych <= 'U') goto yy1420;
++				if (yych <= 'U') goto yy1422;
+ 				goto yy166;
+ 			} else {
+ 				if (yych == '_') goto yy172;
+@@ -20619,16 +20818,16 @@ yy1430:
+ 			}
+ 		} else {
+ 			if (yych <= 't') {
+-				if (yych == 'i') goto yy1451;
++				if (yych == 'i') goto yy1453;
+ 				goto yy171;
+ 			} else {
+-				if (yych <= 'u') goto yy1452;
++				if (yych <= 'u') goto yy1454;
+ 				if (yych <= 'z') goto yy171;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1431:
++yy1433:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'L') {
+@@ -20645,14 +20844,14 @@ yy1431:
+ 				if (yych <= '/') goto yy172;
+ 				goto yy3;
+ 			} else {
+-				if (yych == 'D') goto yy1408;
++				if (yych == 'D') goto yy1410;
+ 				goto yy166;
+ 			}
+ 		}
+ 	} else {
+ 		if (yych <= '`') {
+ 			if (yych <= 'Z') {
+-				if (yych <= 'M') goto yy1409;
++				if (yych <= 'M') goto yy1411;
+ 				goto yy166;
+ 			} else {
+ 				if (yych == '_') goto yy172;
+@@ -20660,16 +20859,16 @@ yy1431:
+ 			}
+ 		} else {
+ 			if (yych <= 'l') {
+-				if (yych == 'd') goto yy1442;
++				if (yych == 'd') goto yy1444;
+ 				goto yy171;
+ 			} else {
+-				if (yych <= 'm') goto yy1443;
++				if (yych <= 'm') goto yy1445;
+ 				if (yych <= 'z') goto yy171;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1432:
++yy1434:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'D') {
+@@ -20684,7 +20883,7 @@ yy1432:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'E') goto yy1404;
++			if (yych <= 'E') goto yy1406;
+ 			if (yych <= 'Z') goto yy166;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -20693,13 +20892,13 @@ yy1432:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy171;
+ 			} else {
+-				if (yych <= 'e') goto yy1438;
++				if (yych <= 'e') goto yy1440;
+ 				if (yych <= 'z') goto yy171;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1433:
++yy1435:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'D') {
+@@ -20714,7 +20913,7 @@ yy1433:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'E') goto yy1400;
++			if (yych <= 'E') goto yy1402;
+ 			if (yych <= 'Z') goto yy166;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -20723,13 +20922,13 @@ yy1433:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy171;
+ 			} else {
+-				if (yych <= 'e') goto yy1434;
++				if (yych <= 'e') goto yy1436;
+ 				if (yych <= 'z') goto yy171;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1434:
++yy1436:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'K') {
+@@ -20744,7 +20943,7 @@ yy1434:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'L') goto yy1401;
++			if (yych <= 'L') goto yy1403;
+ 			if (yych <= 'Z') goto yy167;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -20753,13 +20952,13 @@ yy1434:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy175;
+ 			} else {
+-				if (yych <= 'l') goto yy1435;
++				if (yych <= 'l') goto yy1437;
+ 				if (yych <= 'z') goto yy175;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1435:
++yy1437:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'E') {
+@@ -20774,7 +20973,7 @@ yy1435:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'F') goto yy1402;
++			if (yych <= 'F') goto yy1404;
+ 			if (yych <= 'Z') goto yy168;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -20783,13 +20982,13 @@ yy1435:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy176;
+ 			} else {
+-				if (yych <= 'f') goto yy1436;
++				if (yych <= 'f') goto yy1438;
+ 				if (yych <= 'z') goto yy176;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1436:
++yy1438:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'S') {
+@@ -20804,7 +21003,7 @@ yy1436:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'T') goto yy1403;
++			if (yych <= 'T') goto yy1405;
+ 			if (yych <= 'Z') goto yy169;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -20813,13 +21012,13 @@ yy1436:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy177;
+ 			} else {
+-				if (yych <= 't') goto yy1437;
++				if (yych <= 't') goto yy1439;
+ 				if (yych <= 'z') goto yy177;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1437:
++yy1439:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'G') {
+@@ -20842,7 +21041,7 @@ yy1437:
+ 			goto yy3;
+ 		}
+ 	}
+-yy1438:
++yy1440:
+ 	yyaccept = 4;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'R') {
+@@ -20857,7 +21056,7 @@ yy1438:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'S') goto yy1405;
++			if (yych <= 'S') goto yy1407;
+ 			if (yych <= 'Z') goto yy167;
+ 			if (yych <= '^') goto yy191;
+ 			goto yy172;
+@@ -20866,13 +21065,13 @@ yy1438:
+ 				if (yych <= '`') goto yy191;
+ 				goto yy175;
+ 			} else {
+-				if (yych <= 's') goto yy1439;
++				if (yych <= 's') goto yy1441;
+ 				if (yych <= 'z') goto yy175;
+ 				goto yy191;
+ 			}
+ 		}
+ 	}
+-yy1439:
++yy1441:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'C') {
+@@ -20887,7 +21086,7 @@ yy1439:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'D') goto yy1406;
++			if (yych <= 'D') goto yy1408;
+ 			if (yych <= 'Z') goto yy168;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -20896,13 +21095,13 @@ yy1439:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy176;
+ 			} else {
+-				if (yych <= 'd') goto yy1440;
++				if (yych <= 'd') goto yy1442;
+ 				if (yych <= 'z') goto yy176;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1440:
++yy1442:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= '@') {
+@@ -20916,18 +21115,18 @@ yy1440:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'A') goto yy1407;
++			if (yych <= 'A') goto yy1409;
+ 			if (yych <= 'Z') goto yy169;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+ 		} else {
+ 			if (yych <= '`') goto yy3;
+-			if (yych <= 'a') goto yy1441;
++			if (yych <= 'a') goto yy1443;
+ 			if (yych <= 'z') goto yy177;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1441:
++yy1443:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'X') {
+@@ -20950,7 +21149,7 @@ yy1441:
+ 			goto yy3;
+ 		}
+ 	}
+-yy1442:
++yy1444:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= '@') {
+@@ -20964,18 +21163,18 @@ yy1442:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'A') goto yy1416;
++			if (yych <= 'A') goto yy1418;
+ 			if (yych <= 'Z') goto yy167;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+ 		} else {
+ 			if (yych <= '`') goto yy3;
+-			if (yych <= 'a') goto yy1449;
++			if (yych <= 'a') goto yy1451;
+ 			if (yych <= 'z') goto yy175;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1443:
++yy1445:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'N') {
+@@ -20990,7 +21189,7 @@ yy1443:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'O') goto yy1410;
++			if (yych <= 'O') goto yy1412;
+ 			if (yych <= 'Z') goto yy167;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -20999,13 +21198,13 @@ yy1443:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy175;
+ 			} else {
+-				if (yych <= 'o') goto yy1444;
++				if (yych <= 'o') goto yy1446;
+ 				if (yych <= 'z') goto yy175;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1444:
++yy1446:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'Q') {
+@@ -21020,7 +21219,7 @@ yy1444:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'R') goto yy1411;
++			if (yych <= 'R') goto yy1413;
+ 			if (yych <= 'Z') goto yy168;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -21029,13 +21228,13 @@ yy1444:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy176;
+ 			} else {
+-				if (yych <= 'r') goto yy1445;
++				if (yych <= 'r') goto yy1447;
+ 				if (yych <= 'z') goto yy176;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1445:
++yy1447:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'Q') {
+@@ -21050,7 +21249,7 @@ yy1445:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'R') goto yy1412;
++			if (yych <= 'R') goto yy1414;
+ 			if (yych <= 'Z') goto yy169;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -21059,13 +21258,13 @@ yy1445:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy177;
+ 			} else {
+-				if (yych <= 'r') goto yy1446;
++				if (yych <= 'r') goto yy1448;
+ 				if (yych <= 'z') goto yy177;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1446:
++yy1448:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'N') {
+@@ -21079,18 +21278,18 @@ yy1446:
+ 		}
+ 	} else {
+ 		if (yych <= '`') {
+-			if (yych <= 'O') goto yy1413;
++			if (yych <= 'O') goto yy1415;
+ 			if (yych == '_') goto yy172;
+ 			goto yy3;
+ 		} else {
+-			if (yych == 'o') goto yy1447;
++			if (yych == 'o') goto yy1449;
+ 			if (yych <= 'z') goto yy178;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1447:
++yy1449:
+ 	yych = *++YYCURSOR;
+-	if (yych == 'W') goto yy1414;
++	if (yych == 'W') goto yy1416;
+ 	if (yych != 'w') goto yy179;
+ 	yyaccept = 29;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+@@ -21099,13 +21298,13 @@ yy1447:
+ 	}
+ 	if (yych <= '.') {
+ 		if (yych == '-') goto yy172;
+-		goto yy1415;
++		goto yy1417;
+ 	} else {
+ 		if (yych <= '/') goto yy172;
+ 		if (yych == '_') goto yy172;
+-		goto yy1415;
++		goto yy1417;
+ 	}
+-yy1449:
++yy1451:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'X') {
+@@ -21120,7 +21319,7 @@ yy1449:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'Y') goto yy1417;
++			if (yych <= 'Y') goto yy1419;
+ 			if (yych <= 'Z') goto yy168;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -21129,36 +21328,36 @@ yy1449:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy176;
+ 			} else {
+-				if (yych <= 'y') goto yy1450;
++				if (yych <= 'y') goto yy1452;
+ 				if (yych <= 'z') goto yy176;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1450:
++yy1452:
+ 	yyaccept = 30;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= '/') {
+ 		if (yych <= ',') {
+ 			if (yych == ')') goto yy164;
+-			goto yy1418;
++			goto yy1420;
+ 		} else {
+-			if (yych == '.') goto yy1418;
++			if (yych == '.') goto yy1420;
+ 			goto yy172;
+ 		}
+ 	} else {
+ 		if (yych <= '^') {
+-			if (yych <= '@') goto yy1418;
++			if (yych <= '@') goto yy1420;
+ 			if (yych <= 'Z') goto yy169;
+-			goto yy1418;
++			goto yy1420;
+ 		} else {
+ 			if (yych <= '_') goto yy172;
+-			if (yych <= '`') goto yy1418;
++			if (yych <= '`') goto yy1420;
+ 			if (yych <= 'z') goto yy177;
+-			goto yy1418;
++			goto yy1420;
+ 		}
+ 	}
+-yy1451:
++yy1453:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'R') {
+@@ -21173,13 +21372,13 @@ yy1451:
+ 			} else {
+ 				if (yych <= '@') goto yy3;
+ 				if (yych <= 'Q') goto yy167;
+-				goto yy1425;
++				goto yy1427;
+ 			}
+ 		}
+ 	} else {
+ 		if (yych <= '`') {
+ 			if (yych <= 'Z') {
+-				if (yych <= 'S') goto yy1426;
++				if (yych <= 'S') goto yy1428;
+ 				goto yy167;
+ 			} else {
+ 				if (yych == '_') goto yy172;
+@@ -21188,15 +21387,15 @@ yy1451:
+ 		} else {
+ 			if (yych <= 'r') {
+ 				if (yych <= 'q') goto yy175;
+-				goto yy1457;
++				goto yy1459;
+ 			} else {
+-				if (yych <= 's') goto yy1458;
++				if (yych <= 's') goto yy1460;
+ 				if (yych <= 'z') goto yy175;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1452:
++yy1454:
+ 	yyaccept = 4;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'Q') {
+@@ -21211,7 +21410,7 @@ yy1452:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'R') goto yy1421;
++			if (yych <= 'R') goto yy1423;
+ 			if (yych <= 'Z') goto yy167;
+ 			if (yych <= '^') goto yy191;
+ 			goto yy172;
+@@ -21220,13 +21419,13 @@ yy1452:
+ 				if (yych <= '`') goto yy191;
+ 				goto yy175;
+ 			} else {
+-				if (yych <= 'r') goto yy1453;
++				if (yych <= 'r') goto yy1455;
+ 				if (yych <= 'z') goto yy175;
+ 				goto yy191;
+ 			}
+ 		}
+ 	}
+-yy1453:
++yy1455:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'R') {
+@@ -21241,7 +21440,7 @@ yy1453:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'S') goto yy1422;
++			if (yych <= 'S') goto yy1424;
+ 			if (yych <= 'Z') goto yy168;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -21250,13 +21449,13 @@ yy1453:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy176;
+ 			} else {
+-				if (yych <= 's') goto yy1454;
++				if (yych <= 's') goto yy1456;
+ 				if (yych <= 'z') goto yy176;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1454:
++yy1456:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'C') {
+@@ -21271,7 +21470,7 @@ yy1454:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'D') goto yy1423;
++			if (yych <= 'D') goto yy1425;
+ 			if (yych <= 'Z') goto yy169;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -21280,13 +21479,13 @@ yy1454:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy177;
+ 			} else {
+-				if (yych <= 'd') goto yy1455;
++				if (yych <= 'd') goto yy1457;
+ 				if (yych <= 'z') goto yy177;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1455:
++yy1457:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= '@') {
+@@ -21300,22 +21499,22 @@ yy1455:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'A') goto yy1424;
++			if (yych <= 'A') goto yy1426;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+ 		} else {
+ 			if (yych <= '`') goto yy3;
+-			if (yych <= 'a') goto yy1456;
++			if (yych <= 'a') goto yy1458;
+ 			if (yych <= 'z') goto yy178;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1456:
++yy1458:
+ 	yych = *++YYCURSOR;
+ 	if (yych == 'Y') goto yy197;
+ 	if (yych == 'y') goto yy210;
+ 	goto yy179;
+-yy1457:
++yy1459:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'C') {
+@@ -21345,7 +21544,7 @@ yy1457:
+ 			}
+ 		}
+ 	}
+-yy1458:
++yy1460:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= '-') {
+@@ -21374,7 +21573,7 @@ yy1458:
+ 			}
+ 		}
+ 	}
+-yy1459:
++yy1461:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'S') {
+@@ -21389,7 +21588,7 @@ yy1459:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'T') goto yy1428;
++			if (yych <= 'T') goto yy1430;
+ 			if (yych <= 'Z') goto yy167;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -21398,13 +21597,13 @@ yy1459:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy175;
+ 			} else {
+-				if (yych <= 't') goto yy1460;
++				if (yych <= 't') goto yy1462;
+ 				if (yych <= 'z') goto yy175;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1460:
++yy1462:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'G') {
+@@ -21434,30 +21633,30 @@ yy1460:
+ 			}
+ 		}
+ 	}
+-yy1461:
++yy1463:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'Y') {
+ 		if (yych <= '@') {
+ 			if (yych == ')') goto yy164;
+ 			goto yy3;
+ 		} else {
+-			if (yych == 'R') goto yy1473;
++			if (yych == 'R') goto yy1475;
+ 			if (yych <= 'X') goto yy166;
+-			goto yy1474;
++			goto yy1476;
+ 		}
+ 	} else {
+ 		if (yych <= 'r') {
+ 			if (yych <= 'Z') goto yy166;
+ 			if (yych <= '`') goto yy3;
+ 			if (yych <= 'q') goto yy166;
+-			goto yy1473;
++			goto yy1475;
+ 		} else {
+-			if (yych == 'y') goto yy1474;
++			if (yych == 'y') goto yy1476;
+ 			if (yych <= 'z') goto yy166;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1462:
++yy1464:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'D') {
+ 		if (yych <= ')') {
+@@ -21466,7 +21665,7 @@ yy1462:
+ 		} else {
+ 			if (yych <= '@') goto yy3;
+ 			if (yych <= 'C') goto yy166;
+-			goto yy1467;
++			goto yy1469;
+ 		}
+ 	} else {
+ 		if (yych <= 'c') {
+@@ -21474,12 +21673,12 @@ yy1462:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy166;
+ 		} else {
+-			if (yych <= 'd') goto yy1467;
++			if (yych <= 'd') goto yy1469;
+ 			if (yych <= 'z') goto yy166;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1463:
++yy1465:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'N') {
+ 		if (yych <= ')') {
+@@ -21495,12 +21694,12 @@ yy1463:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy166;
+ 		} else {
+-			if (yych <= 'n') goto yy1464;
++			if (yych <= 'n') goto yy1466;
+ 			if (yych <= 'z') goto yy166;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1464:
++yy1466:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'D') {
+ 		if (yych <= ')') {
+@@ -21516,12 +21715,12 @@ yy1464:
+ 			if (yych <= '`') goto yy191;
+ 			goto yy167;
+ 		} else {
+-			if (yych <= 'd') goto yy1465;
++			if (yych <= 'd') goto yy1467;
+ 			if (yych <= 'z') goto yy167;
+ 			goto yy191;
+ 		}
+ 	}
+-yy1465:
++yy1467:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'A') {
+ 		if (yych == ')') goto yy164;
+@@ -21531,12 +21730,12 @@ yy1465:
+ 			if (yych <= 'Z') goto yy168;
+ 			goto yy3;
+ 		} else {
+-			if (yych <= 'a') goto yy1466;
++			if (yych <= 'a') goto yy1468;
+ 			if (yych <= 'z') goto yy168;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1466:
++yy1468:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'Y') {
+ 		if (yych <= ')') {
+@@ -21558,7 +21757,7 @@ yy1466:
+ 			goto yy3;
+ 		}
+ 	}
+-yy1467:
++yy1469:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'N') {
+ 		if (yych <= ')') {
+@@ -21574,12 +21773,12 @@ yy1467:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy167;
+ 		} else {
+-			if (yych <= 'n') goto yy1468;
++			if (yych <= 'n') goto yy1470;
+ 			if (yych <= 'z') goto yy167;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1468:
++yy1470:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'I') {
+ 		if (yych <= ')') {
+@@ -21595,12 +21794,12 @@ yy1468:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy168;
+ 		} else {
+-			if (yych <= 'i') goto yy1469;
++			if (yych <= 'i') goto yy1471;
+ 			if (yych <= 'z') goto yy168;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1469:
++yy1471:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'G') {
+ 		if (yych <= ')') {
+@@ -21616,29 +21815,29 @@ yy1469:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy169;
+ 		} else {
+-			if (yych <= 'g') goto yy1470;
++			if (yych <= 'g') goto yy1472;
+ 			if (yych <= 'z') goto yy169;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1470:
++yy1472:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'G') {
+ 		if (yych == ')') goto yy164;
+ 		goto yy3;
+ 	} else {
+-		if (yych <= 'H') goto yy1471;
++		if (yych <= 'H') goto yy1473;
+ 		if (yych != 'h') goto yy3;
+ 	}
+-yy1471:
++yy1473:
+ 	yych = *++YYCURSOR;
+-	if (yych == 'T') goto yy1472;
++	if (yych == 'T') goto yy1474;
+ 	if (yych != 't') goto yy56;
+-yy1472:
++yy1474:
+ 	yych = *++YYCURSOR;
+-	goto yy1418;
+-yy1473:
++	goto yy1420;
++yy1475:
+ 	yyaccept = 5;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= '/') {
+@@ -21666,7 +21865,7 @@ yy1473:
+ 				if (yych <= '9') goto yy220;
+ 				goto yy218;
+ 			} else {
+-				if (yych == 'C') goto yy1475;
++				if (yych == 'C') goto yy1477;
+ 				goto yy167;
+ 			}
+ 		} else {
+@@ -21674,13 +21873,13 @@ yy1473:
+ 				if (yych <= '`') goto yy218;
+ 				goto yy167;
+ 			} else {
+-				if (yych <= 'c') goto yy1475;
++				if (yych <= 'c') goto yy1477;
+ 				if (yych <= 'z') goto yy167;
+ 				goto yy218;
+ 			}
+ 		}
+ 	}
+-yy1474:
++yy1476:
+ 	yyaccept = 5;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= '-') {
+@@ -21705,7 +21904,7 @@ yy1474:
+ 			goto yy218;
+ 		}
+ 	}
+-yy1475:
++yy1477:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'H') {
+ 		if (yych <= ')') {
+@@ -21727,7 +21926,7 @@ yy1475:
+ 			goto yy3;
+ 		}
+ 	}
+-yy1476:
++yy1478:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'X') {
+@@ -21744,14 +21943,14 @@ yy1476:
+ 				if (yych <= '/') goto yy172;
+ 				goto yy3;
+ 			} else {
+-				if (yych == 'R') goto yy1473;
++				if (yych == 'R') goto yy1475;
+ 				goto yy166;
+ 			}
+ 		}
+ 	} else {
+ 		if (yych <= '`') {
+ 			if (yych <= 'Z') {
+-				if (yych <= 'Y') goto yy1474;
++				if (yych <= 'Y') goto yy1476;
+ 				goto yy166;
+ 			} else {
+ 				if (yych == '_') goto yy172;
+@@ -21759,16 +21958,16 @@ yy1476:
+ 			}
+ 		} else {
+ 			if (yych <= 'x') {
+-				if (yych == 'r') goto yy1488;
++				if (yych == 'r') goto yy1490;
+ 				goto yy171;
+ 			} else {
+-				if (yych <= 'y') goto yy1489;
++				if (yych <= 'y') goto yy1491;
+ 				if (yych <= 'z') goto yy171;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1477:
++yy1479:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'C') {
+@@ -21783,7 +21982,7 @@ yy1477:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'D') goto yy1467;
++			if (yych <= 'D') goto yy1469;
+ 			if (yych <= 'Z') goto yy166;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -21792,13 +21991,13 @@ yy1477:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy171;
+ 			} else {
+-				if (yych <= 'd') goto yy1482;
++				if (yych <= 'd') goto yy1484;
+ 				if (yych <= 'z') goto yy171;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1478:
++yy1480:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'M') {
+@@ -21813,7 +22012,7 @@ yy1478:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'N') goto yy1464;
++			if (yych <= 'N') goto yy1466;
+ 			if (yych <= 'Z') goto yy166;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -21822,13 +22021,13 @@ yy1478:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy171;
+ 			} else {
+-				if (yych <= 'n') goto yy1479;
++				if (yych <= 'n') goto yy1481;
+ 				if (yych <= 'z') goto yy171;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1479:
++yy1481:
+ 	yyaccept = 4;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'C') {
+@@ -21843,7 +22042,7 @@ yy1479:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'D') goto yy1465;
++			if (yych <= 'D') goto yy1467;
+ 			if (yych <= 'Z') goto yy167;
+ 			if (yych <= '^') goto yy191;
+ 			goto yy172;
+@@ -21852,13 +22051,13 @@ yy1479:
+ 				if (yych <= '`') goto yy191;
+ 				goto yy175;
+ 			} else {
+-				if (yych <= 'd') goto yy1480;
++				if (yych <= 'd') goto yy1482;
+ 				if (yych <= 'z') goto yy175;
+ 				goto yy191;
+ 			}
+ 		}
+ 	}
+-yy1480:
++yy1482:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= '@') {
+@@ -21872,18 +22071,18 @@ yy1480:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'A') goto yy1466;
++			if (yych <= 'A') goto yy1468;
+ 			if (yych <= 'Z') goto yy168;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+ 		} else {
+ 			if (yych <= '`') goto yy3;
+-			if (yych <= 'a') goto yy1481;
++			if (yych <= 'a') goto yy1483;
+ 			if (yych <= 'z') goto yy176;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1481:
++yy1483:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'X') {
+@@ -21913,7 +22112,7 @@ yy1481:
+ 			}
+ 		}
+ 	}
+-yy1482:
++yy1484:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'M') {
+@@ -21928,7 +22127,7 @@ yy1482:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'N') goto yy1468;
++			if (yych <= 'N') goto yy1470;
+ 			if (yych <= 'Z') goto yy167;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -21937,13 +22136,13 @@ yy1482:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy175;
+ 			} else {
+-				if (yych <= 'n') goto yy1483;
++				if (yych <= 'n') goto yy1485;
+ 				if (yych <= 'z') goto yy175;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1483:
++yy1485:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'H') {
+@@ -21958,7 +22157,7 @@ yy1483:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'I') goto yy1469;
++			if (yych <= 'I') goto yy1471;
+ 			if (yych <= 'Z') goto yy168;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -21967,13 +22166,13 @@ yy1483:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy176;
+ 			} else {
+-				if (yych <= 'i') goto yy1484;
++				if (yych <= 'i') goto yy1486;
+ 				if (yych <= 'z') goto yy176;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1484:
++yy1486:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'F') {
+@@ -21988,7 +22187,7 @@ yy1484:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'G') goto yy1470;
++			if (yych <= 'G') goto yy1472;
+ 			if (yych <= 'Z') goto yy169;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -21997,13 +22196,13 @@ yy1484:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy177;
+ 			} else {
+-				if (yych <= 'g') goto yy1485;
++				if (yych <= 'g') goto yy1487;
+ 				if (yych <= 'z') goto yy177;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1485:
++yy1487:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'G') {
+@@ -22017,18 +22216,18 @@ yy1485:
+ 		}
+ 	} else {
+ 		if (yych <= '`') {
+-			if (yych <= 'H') goto yy1471;
++			if (yych <= 'H') goto yy1473;
+ 			if (yych == '_') goto yy172;
+ 			goto yy3;
+ 		} else {
+-			if (yych == 'h') goto yy1486;
++			if (yych == 'h') goto yy1488;
+ 			if (yych <= 'z') goto yy178;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1486:
++yy1488:
+ 	yych = *++YYCURSOR;
+-	if (yych == 'T') goto yy1472;
++	if (yych == 'T') goto yy1474;
+ 	if (yych != 't') goto yy179;
+ 	yyaccept = 30;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+@@ -22037,13 +22236,13 @@ yy1486:
+ 	}
+ 	if (yych <= '.') {
+ 		if (yych == '-') goto yy172;
+-		goto yy1418;
++		goto yy1420;
+ 	} else {
+ 		if (yych <= '/') goto yy172;
+ 		if (yych == '_') goto yy172;
+-		goto yy1418;
++		goto yy1420;
+ 	}
+-yy1488:
++yy1490:
+ 	yyaccept = 5;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= '9') {
+@@ -22071,7 +22270,7 @@ yy1488:
+ 				if (yych <= '@') goto yy218;
+ 				goto yy167;
+ 			} else {
+-				if (yych <= 'C') goto yy1475;
++				if (yych <= 'C') goto yy1477;
+ 				if (yych <= 'Z') goto yy167;
+ 				goto yy218;
+ 			}
+@@ -22081,13 +22280,13 @@ yy1488:
+ 				if (yych <= '`') goto yy218;
+ 				goto yy175;
+ 			} else {
+-				if (yych <= 'c') goto yy1490;
++				if (yych <= 'c') goto yy1492;
+ 				if (yych <= 'z') goto yy175;
+ 				goto yy218;
+ 			}
+ 		}
+ 	}
+-yy1489:
++yy1491:
+ 	yyaccept = 5;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= '.') {
+@@ -22122,7 +22321,7 @@ yy1489:
+ 			}
+ 		}
+ 	}
+-yy1490:
++yy1492:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'G') {
+@@ -22152,7 +22351,7 @@ yy1490:
+ 			}
+ 		}
+ 	}
+-yy1491:
++yy1493:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'W') {
+ 		if (yych <= 'N') {
+@@ -22160,29 +22359,29 @@ yy1491:
+ 			if (yych <= '@') goto yy3;
+ 			goto yy166;
+ 		} else {
+-			if (yych <= 'O') goto yy1499;
++			if (yych <= 'O') goto yy1501;
+ 			if (yych <= 'U') goto yy166;
+-			if (yych <= 'V') goto yy1500;
+-			goto yy1497;
++			if (yych <= 'V') goto yy1502;
++			goto yy1499;
+ 		}
+ 	} else {
+ 		if (yych <= 'o') {
+ 			if (yych <= 'Z') goto yy166;
+ 			if (yych <= '`') goto yy3;
+ 			if (yych <= 'n') goto yy166;
+-			goto yy1499;
++			goto yy1501;
+ 		} else {
+ 			if (yych <= 'v') {
+ 				if (yych <= 'u') goto yy166;
+-				goto yy1500;
++				goto yy1502;
+ 			} else {
+-				if (yych <= 'w') goto yy1497;
++				if (yych <= 'w') goto yy1499;
+ 				if (yych <= 'z') goto yy166;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1492:
++yy1494:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'X') {
+ 		if (yych <= ')') {
+@@ -22191,7 +22390,7 @@ yy1492:
+ 		} else {
+ 			if (yych <= '@') goto yy3;
+ 			if (yych <= 'W') goto yy166;
+-			goto yy1496;
++			goto yy1498;
+ 		}
+ 	} else {
+ 		if (yych <= 'w') {
+@@ -22199,12 +22398,12 @@ yy1492:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy166;
+ 		} else {
+-			if (yych <= 'x') goto yy1496;
++			if (yych <= 'x') goto yy1498;
+ 			if (yych <= 'z') goto yy166;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1493:
++yy1495:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'N') {
+ 		if (yych <= ')') {
+@@ -22220,12 +22419,12 @@ yy1493:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy166;
+ 		} else {
+-			if (yych <= 'n') goto yy1494;
++			if (yych <= 'n') goto yy1496;
+ 			if (yych <= 'z') goto yy166;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1494:
++yy1496:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'T') {
+ 		if (yych <= ')') {
+@@ -22241,12 +22440,12 @@ yy1494:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy167;
+ 		} else {
+-			if (yych <= 't') goto yy1495;
++			if (yych <= 't') goto yy1497;
+ 			if (yych <= 'z') goto yy167;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1495:
++yy1497:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'H') {
+ 		if (yych <= ')') {
+@@ -22268,7 +22467,7 @@ yy1495:
+ 			goto yy3;
+ 		}
+ 	}
+-yy1496:
++yy1498:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'T') {
+ 		if (yych <= ')') {
+@@ -22277,7 +22476,7 @@ yy1496:
+ 		} else {
+ 			if (yych <= '@') goto yy3;
+ 			if (yych <= 'S') goto yy167;
+-			goto yy1426;
++			goto yy1428;
+ 		}
+ 	} else {
+ 		if (yych <= 's') {
+@@ -22285,21 +22484,22 @@ yy1496:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy167;
+ 		} else {
+-			if (yych <= 't') goto yy1426;
++			if (yych <= 't') goto yy1428;
+ 			if (yych <= 'z') goto yy167;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1497:
++yy1499:
+ 	++YYCURSOR;
+ 	if ((yych = *YYCURSOR) <= '@') {
+ 		if (yych == ')') goto yy164;
+ 	} else {
+ 		if (yych <= 'Z') goto yy167;
+-		if (yych <= '`') goto yy1498;
++		if (yych <= '`') goto yy1500;
+ 		if (yych <= 'z') goto yy167;
+ 	}
+-yy1498:
++yy1500:
++#line 982 "ext/date/lib/parse_date.re"
+ 	{
+ 		DEBUG_OUTPUT("now");
+ 		TIMELIB_INIT;
+@@ -22307,7 +22507,8 @@ yy1498:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_RELATIVE;
+ 	}
+-yy1499:
++#line 22511 "ext/date/lib/parse_date.c"
++yy1501:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'N') {
+ 		if (yych <= ')') {
+@@ -22316,7 +22517,7 @@ yy1499:
+ 		} else {
+ 			if (yych <= '@') goto yy3;
+ 			if (yych <= 'M') goto yy167;
+-			goto yy1505;
++			goto yy1507;
+ 		}
+ 	} else {
+ 		if (yych <= 'm') {
+@@ -22324,12 +22525,12 @@ yy1499:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy167;
+ 		} else {
+-			if (yych <= 'n') goto yy1505;
++			if (yych <= 'n') goto yy1507;
+ 			if (yych <= 'z') goto yy167;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1500:
++yy1502:
+ 	yyaccept = 5;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= '/') {
+@@ -22364,13 +22565,13 @@ yy1500:
+ 				if (yych <= '`') goto yy218;
+ 				goto yy167;
+ 			} else {
+-				if (yych <= 'e') goto yy1501;
++				if (yych <= 'e') goto yy1503;
+ 				if (yych <= 'z') goto yy167;
+ 				goto yy218;
+ 			}
+ 		}
+ 	}
+-yy1501:
++yy1503:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'M') {
+ 		if (yych <= ')') {
+@@ -22386,12 +22587,12 @@ yy1501:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy168;
+ 		} else {
+-			if (yych <= 'm') goto yy1502;
++			if (yych <= 'm') goto yy1504;
+ 			if (yych <= 'z') goto yy168;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1502:
++yy1504:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'B') {
+ 		if (yych <= ')') {
+@@ -22407,36 +22608,37 @@ yy1502:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy169;
+ 		} else {
+-			if (yych <= 'b') goto yy1503;
++			if (yych <= 'b') goto yy1505;
+ 			if (yych <= 'z') goto yy169;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1503:
++yy1505:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'D') {
+ 		if (yych == ')') goto yy164;
+ 		goto yy3;
+ 	} else {
+-		if (yych <= 'E') goto yy1504;
++		if (yych <= 'E') goto yy1506;
+ 		if (yych != 'e') goto yy3;
+ 	}
+-yy1504:
++yy1506:
+ 	yych = *++YYCURSOR;
+ 	if (yych == 'R') goto yy229;
+ 	if (yych == 'r') goto yy229;
+ 	goto yy56;
+-yy1505:
++yy1507:
+ 	++YYCURSOR;
+ 	if ((yych = *YYCURSOR) <= '@') {
+ 		if (yych == ')') goto yy164;
+ 	} else {
+ 		if (yych <= 'Z') goto yy168;
+-		if (yych <= '`') goto yy1506;
++		if (yych <= '`') goto yy1508;
+ 		if (yych <= 'z') goto yy168;
+ 	}
+-yy1506:
++yy1508:
++#line 991 "ext/date/lib/parse_date.re"
+ 	{
+ 		DEBUG_OUTPUT("noon");
+ 		TIMELIB_INIT;
+@@ -22447,7 +22649,8 @@ yy1506:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_RELATIVE;
+ 	}
+-yy1507:
++#line 22653 "ext/date/lib/parse_date.c"
++yy1509:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'V') {
+@@ -22465,15 +22668,15 @@ yy1507:
+ 				if (yych <= '@') goto yy3;
+ 				goto yy166;
+ 			} else {
+-				if (yych <= 'O') goto yy1499;
++				if (yych <= 'O') goto yy1501;
+ 				if (yych <= 'U') goto yy166;
+-				goto yy1500;
++				goto yy1502;
+ 			}
+ 		}
+ 	} else {
+ 		if (yych <= 'n') {
+ 			if (yych <= '^') {
+-				if (yych <= 'W') goto yy1497;
++				if (yych <= 'W') goto yy1499;
+ 				if (yych <= 'Z') goto yy166;
+ 				goto yy3;
+ 			} else {
+@@ -22483,17 +22686,17 @@ yy1507:
+ 			}
+ 		} else {
+ 			if (yych <= 'v') {
+-				if (yych <= 'o') goto yy1514;
++				if (yych <= 'o') goto yy1516;
+ 				if (yych <= 'u') goto yy171;
+-				goto yy1515;
++				goto yy1517;
+ 			} else {
+-				if (yych <= 'w') goto yy1513;
++				if (yych <= 'w') goto yy1515;
+ 				if (yych <= 'z') goto yy171;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1508:
++yy1510:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'W') {
+@@ -22508,7 +22711,7 @@ yy1508:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'X') goto yy1496;
++			if (yych <= 'X') goto yy1498;
+ 			if (yych <= 'Z') goto yy166;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -22517,13 +22720,13 @@ yy1508:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy171;
+ 			} else {
+-				if (yych <= 'x') goto yy1512;
++				if (yych <= 'x') goto yy1514;
+ 				if (yych <= 'z') goto yy171;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1509:
++yy1511:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'M') {
+@@ -22538,7 +22741,7 @@ yy1509:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'N') goto yy1494;
++			if (yych <= 'N') goto yy1496;
+ 			if (yych <= 'Z') goto yy166;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -22547,13 +22750,13 @@ yy1509:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy171;
+ 			} else {
+-				if (yych <= 'n') goto yy1510;
++				if (yych <= 'n') goto yy1512;
+ 				if (yych <= 'z') goto yy171;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1510:
++yy1512:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'S') {
+@@ -22568,7 +22771,7 @@ yy1510:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'T') goto yy1495;
++			if (yych <= 'T') goto yy1497;
+ 			if (yych <= 'Z') goto yy167;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -22577,13 +22780,13 @@ yy1510:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy175;
+ 			} else {
+-				if (yych <= 't') goto yy1511;
++				if (yych <= 't') goto yy1513;
+ 				if (yych <= 'z') goto yy175;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1511:
++yy1513:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'G') {
+@@ -22613,7 +22816,7 @@ yy1511:
+ 			}
+ 		}
+ 	}
+-yy1512:
++yy1514:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'S') {
+@@ -22628,7 +22831,7 @@ yy1512:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'T') goto yy1426;
++			if (yych <= 'T') goto yy1428;
+ 			if (yych <= 'Z') goto yy167;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -22637,36 +22840,36 @@ yy1512:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy175;
+ 			} else {
+-				if (yych <= 't') goto yy1458;
++				if (yych <= 't') goto yy1460;
+ 				if (yych <= 'z') goto yy175;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1513:
++yy1515:
+ 	yyaccept = 31;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= '/') {
+ 		if (yych <= ',') {
+ 			if (yych == ')') goto yy164;
+-			goto yy1498;
++			goto yy1500;
+ 		} else {
+-			if (yych == '.') goto yy1498;
++			if (yych == '.') goto yy1500;
+ 			goto yy172;
+ 		}
+ 	} else {
+ 		if (yych <= '^') {
+-			if (yych <= '@') goto yy1498;
++			if (yych <= '@') goto yy1500;
+ 			if (yych <= 'Z') goto yy167;
+-			goto yy1498;
++			goto yy1500;
+ 		} else {
+ 			if (yych <= '_') goto yy172;
+-			if (yych <= '`') goto yy1498;
++			if (yych <= '`') goto yy1500;
+ 			if (yych <= 'z') goto yy175;
+-			goto yy1498;
++			goto yy1500;
+ 		}
+ 	}
+-yy1514:
++yy1516:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'M') {
+@@ -22681,7 +22884,7 @@ yy1514:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'N') goto yy1505;
++			if (yych <= 'N') goto yy1507;
+ 			if (yych <= 'Z') goto yy167;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -22690,13 +22893,13 @@ yy1514:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy175;
+ 			} else {
+-				if (yych <= 'n') goto yy1520;
++				if (yych <= 'n') goto yy1522;
+ 				if (yych <= 'z') goto yy175;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1515:
++yy1517:
+ 	yyaccept = 5;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= '9') {
+@@ -22724,7 +22927,7 @@ yy1515:
+ 				if (yych <= '@') goto yy218;
+ 				goto yy167;
+ 			} else {
+-				if (yych <= 'E') goto yy1501;
++				if (yych <= 'E') goto yy1503;
+ 				if (yych <= 'Z') goto yy167;
+ 				goto yy218;
+ 			}
+@@ -22734,13 +22937,13 @@ yy1515:
+ 				if (yych <= '`') goto yy218;
+ 				goto yy175;
+ 			} else {
+-				if (yych <= 'e') goto yy1516;
++				if (yych <= 'e') goto yy1518;
+ 				if (yych <= 'z') goto yy175;
+ 				goto yy218;
+ 			}
+ 		}
+ 	}
+-yy1516:
++yy1518:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'L') {
+@@ -22755,7 +22958,7 @@ yy1516:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'M') goto yy1502;
++			if (yych <= 'M') goto yy1504;
+ 			if (yych <= 'Z') goto yy168;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -22764,13 +22967,13 @@ yy1516:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy176;
+ 			} else {
+-				if (yych <= 'm') goto yy1517;
++				if (yych <= 'm') goto yy1519;
+ 				if (yych <= 'z') goto yy176;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1517:
++yy1519:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'A') {
+@@ -22785,7 +22988,7 @@ yy1517:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'B') goto yy1503;
++			if (yych <= 'B') goto yy1505;
+ 			if (yych <= 'Z') goto yy169;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -22794,13 +22997,13 @@ yy1517:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy177;
+ 			} else {
+-				if (yych <= 'b') goto yy1518;
++				if (yych <= 'b') goto yy1520;
+ 				if (yych <= 'z') goto yy177;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1518:
++yy1520:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'D') {
+@@ -22814,44 +23017,44 @@ yy1518:
+ 		}
+ 	} else {
+ 		if (yych <= '`') {
+-			if (yych <= 'E') goto yy1504;
++			if (yych <= 'E') goto yy1506;
+ 			if (yych == '_') goto yy172;
+ 			goto yy3;
+ 		} else {
+-			if (yych == 'e') goto yy1519;
++			if (yych == 'e') goto yy1521;
+ 			if (yych <= 'z') goto yy178;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1519:
++yy1521:
+ 	yych = *++YYCURSOR;
+ 	if (yych == 'R') goto yy229;
+ 	if (yych == 'r') goto yy341;
+ 	goto yy179;
+-yy1520:
++yy1522:
+ 	yyaccept = 32;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= '/') {
+ 		if (yych <= ',') {
+ 			if (yych == ')') goto yy164;
+-			goto yy1506;
++			goto yy1508;
+ 		} else {
+-			if (yych == '.') goto yy1506;
++			if (yych == '.') goto yy1508;
+ 			goto yy172;
+ 		}
+ 	} else {
+ 		if (yych <= '^') {
+-			if (yych <= '@') goto yy1506;
++			if (yych <= '@') goto yy1508;
+ 			if (yych <= 'Z') goto yy168;
+-			goto yy1506;
++			goto yy1508;
+ 		} else {
+ 			if (yych <= '_') goto yy172;
+-			if (yych <= '`') goto yy1506;
++			if (yych <= '`') goto yy1508;
+ 			if (yych <= 'z') goto yy176;
+-			goto yy1506;
++			goto yy1508;
+ 		}
+ 	}
+-yy1521:
++yy1523:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'S') {
+ 		if (yych <= ')') {
+@@ -22867,12 +23070,12 @@ yy1521:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy166;
+ 		} else {
+-			if (yych <= 's') goto yy1522;
++			if (yych <= 's') goto yy1524;
+ 			if (yych <= 'z') goto yy166;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1522:
++yy1524:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'T') {
+ 		if (yych <= ')') {
+@@ -22888,12 +23091,12 @@ yy1522:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy167;
+ 		} else {
+-			if (yych <= 't') goto yy1523;
++			if (yych <= 't') goto yy1525;
+ 			if (yych <= 'z') goto yy167;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1523:
++yy1525:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'E') {
+ 		if (yych <= ')') {
+@@ -22909,12 +23112,12 @@ yy1523:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy168;
+ 		} else {
+-			if (yych <= 'e') goto yy1524;
++			if (yych <= 'e') goto yy1526;
+ 			if (yych <= 'z') goto yy168;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1524:
++yy1526:
+ 	yych = *++YYCURSOR;
+ 	if (yych <= 'R') {
+ 		if (yych <= ')') {
+@@ -22930,32 +23133,33 @@ yy1524:
+ 			if (yych <= '`') goto yy3;
+ 			goto yy169;
+ 		} else {
+-			if (yych <= 'r') goto yy1525;
++			if (yych <= 'r') goto yy1527;
+ 			if (yych <= 'z') goto yy169;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1525:
++yy1527:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'C') {
+ 		if (yych == ')') goto yy164;
+ 		goto yy3;
+ 	} else {
+-		if (yych <= 'D') goto yy1526;
++		if (yych <= 'D') goto yy1528;
+ 		if (yych != 'd') goto yy3;
+ 	}
+-yy1526:
++yy1528:
+ 	yych = *++YYCURSOR;
+-	if (yych == 'A') goto yy1527;
++	if (yych == 'A') goto yy1529;
+ 	if (yych != 'a') goto yy56;
+-yy1527:
++yy1529:
+ 	yych = *++YYCURSOR;
+-	if (yych == 'Y') goto yy1528;
++	if (yych == 'Y') goto yy1530;
+ 	if (yych != 'y') goto yy56;
+-yy1528:
++yy1530:
+ 	++YYCURSOR;
+-yy1529:
++yy1531:
++#line 970 "ext/date/lib/parse_date.re"
+ 	{
+ 		DEBUG_OUTPUT("yesterday");
+ 		TIMELIB_INIT;
+@@ -22966,7 +23170,8 @@ yy1529:
+ 		TIMELIB_DEINIT;
+ 		return TIMELIB_RELATIVE;
+ 	}
+-yy1530:
++#line 23174 "ext/date/lib/parse_date.c"
++yy1532:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'R') {
+@@ -22981,7 +23186,7 @@ yy1530:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'S') goto yy1522;
++			if (yych <= 'S') goto yy1524;
+ 			if (yych <= 'Z') goto yy166;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -22990,13 +23195,13 @@ yy1530:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy171;
+ 			} else {
+-				if (yych <= 's') goto yy1531;
++				if (yych <= 's') goto yy1533;
+ 				if (yych <= 'z') goto yy171;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1531:
++yy1533:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'S') {
+@@ -23011,7 +23216,7 @@ yy1531:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'T') goto yy1523;
++			if (yych <= 'T') goto yy1525;
+ 			if (yych <= 'Z') goto yy167;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -23020,13 +23225,13 @@ yy1531:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy175;
+ 			} else {
+-				if (yych <= 't') goto yy1532;
++				if (yych <= 't') goto yy1534;
+ 				if (yych <= 'z') goto yy175;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1532:
++yy1534:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'D') {
+@@ -23041,7 +23246,7 @@ yy1532:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'E') goto yy1524;
++			if (yych <= 'E') goto yy1526;
+ 			if (yych <= 'Z') goto yy168;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -23050,13 +23255,13 @@ yy1532:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy176;
+ 			} else {
+-				if (yych <= 'e') goto yy1533;
++				if (yych <= 'e') goto yy1535;
+ 				if (yych <= 'z') goto yy176;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1533:
++yy1535:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'Q') {
+@@ -23071,7 +23276,7 @@ yy1533:
+ 		}
+ 	} else {
+ 		if (yych <= '_') {
+-			if (yych <= 'R') goto yy1525;
++			if (yych <= 'R') goto yy1527;
+ 			if (yych <= 'Z') goto yy169;
+ 			if (yych <= '^') goto yy3;
+ 			goto yy172;
+@@ -23080,13 +23285,13 @@ yy1533:
+ 				if (yych <= '`') goto yy3;
+ 				goto yy177;
+ 			} else {
+-				if (yych <= 'r') goto yy1534;
++				if (yych <= 'r') goto yy1536;
+ 				if (yych <= 'z') goto yy177;
+ 				goto yy3;
+ 			}
+ 		}
+ 	}
+-yy1534:
++yy1536:
+ 	yyaccept = 0;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+ 	if (yych <= 'C') {
+@@ -23100,21 +23305,21 @@ yy1534:
+ 		}
+ 	} else {
+ 		if (yych <= '`') {
+-			if (yych <= 'D') goto yy1526;
++			if (yych <= 'D') goto yy1528;
+ 			if (yych == '_') goto yy172;
+ 			goto yy3;
+ 		} else {
+-			if (yych == 'd') goto yy1535;
++			if (yych == 'd') goto yy1537;
+ 			if (yych <= 'z') goto yy178;
+ 			goto yy3;
+ 		}
+ 	}
+-yy1535:
++yy1537:
+ 	yych = *++YYCURSOR;
+-	if (yych == 'A') goto yy1527;
++	if (yych == 'A') goto yy1529;
+ 	if (yych != 'a') goto yy179;
+ 	yych = *++YYCURSOR;
+-	if (yych == 'Y') goto yy1528;
++	if (yych == 'Y') goto yy1530;
+ 	if (yych != 'y') goto yy179;
+ 	yyaccept = 33;
+ 	yych = *(YYMARKER = ++YYCURSOR);
+@@ -23123,13 +23328,14 @@ yy1535:
+ 	}
+ 	if (yych <= '.') {
+ 		if (yych == '-') goto yy172;
+-		goto yy1529;
++		goto yy1531;
+ 	} else {
+ 		if (yych <= '/') goto yy172;
+ 		if (yych == '_') goto yy172;
+-		goto yy1529;
++		goto yy1531;
+ 	}
+ }
++#line 1772 "ext/date/lib/parse_date.re"
+ 
+ }
+ 
+diff --git a/ext/date/lib/parse_date.re b/ext/date/lib/parse_date.re
+index 74d9ea3..f26e276 100644
+--- a/ext/date/lib/parse_date.re
++++ b/ext/date/lib/parse_date.re
+@@ -931,8 +931,8 @@ isoweek          = year4 "-"? "W" weekofyear;
+ exif             = year4 ":" monthlz ":" daylz " " hour24lz ":" minutelz ":" secondlz;
+ firstdayof       = 'first day of';
+ lastdayof        = 'last day of';
+-backof           = 'back of ' hour24 space? meridian?;
+-frontof          = 'front of ' hour24 space? meridian?;
++backof           = 'back of ' hour24 (space? meridian)?;
++frontof          = 'front of ' hour24 (space? meridian)?;
+ 
+ /* Common Log Format: 10/Oct/2000:13:55:36 -0700 */
+ clf              = day "/" monthabbr "/" year4 ":" hour24lz ":" minutelz ":" secondlz space tzcorrection;
+diff --git a/ext/date/tests/bug53437_var3.phpt b/ext/date/tests/bug53437_var3.phpt
+index 8f48b1b..8dcd4c8 100644
+--- a/ext/date/tests/bug53437_var3.phpt
++++ b/ext/date/tests/bug53437_var3.phpt
+@@ -40,7 +40,7 @@ object(DateInterval)#%d (16) {
+   ["special_amount"]=>
+   int(-1)
+   ["have_weekday_relative"]=>
+-  int(9)
++  int(0)
+   ["have_special_relative"]=>
+   int(0)
+   ["f"]=>
+diff --git a/ext/wddx/tests/bug75055.phpt b/ext/wddx/tests/bug75055.phpt
+new file mode 100644
+index 0000000..2956284
+--- /dev/null
++++ b/ext/wddx/tests/bug75055.phpt
+@@ -0,0 +1,20 @@
++--TEST--
++Bug #75055 Out-Of-Bounds Read in timelib_meridian()
++--SKIPIF--
++<?php if (!extension_loaded("wddx")) print "skip"; ?>
++--FILE--
++<?php
++
++$file_str = dirname(__FILE__) . "/bug75055.wddx";
++
++$wddx_str = file_get_contents($file_str);
++print strlen($wddx_str) . " bytes read.\n";
++
++var_dump(wddx_deserialize($wddx_str));
++?>
++--EXPECT--
++323 bytes read.
++array(1) {
++  ["aDateTime"]=>
++  string(12) "frONt of 0 0"
++}
+diff --git a/ext/wddx/tests/bug75055.wddx b/ext/wddx/tests/bug75055.wddx
+new file mode 100644
+index 0000000..6493352
+--- /dev/null
++++ b/ext/wddx/tests/bug75055.wddx
+@@ -0,0 +1,13 @@
++<?xml version='1.0'?>
++<!DOCTYPE wddxPacket SYSTEM 'wddx_0100.dtd'>
++<wddxPacket version='1.0'>
++<header/>
++	<data>
++        	<struct>
++                    <var name='aDateTime'>
++                         <dateTime>frONt of 0 0</dateTime>
++                     </var>
++                </struct>
++	</data>
++</wddxPacket>
++
+-- 
+2.11.0
+
diff --git a/meta-oe/recipes-devtools/php/php_7.1.9.bb b/meta-oe/recipes-devtools/php/php_7.1.9.bb
index 157369e..acf68a0 100644
--- a/meta-oe/recipes-devtools/php/php_7.1.9.bb
+++ b/meta-oe/recipes-devtools/php/php_7.1.9.bb
@@ -4,6 +4,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=c0af599f66d0461c5837c695fcbc5c1e"
 
 SRC_URI += "file://change-AC_TRY_RUN-to-AC_TRY_LINK.patch \
             file://0001-Specify-tag-with-libtool.patch \
+            file://CVE-2017-16642.patch \
            "
 SRC_URI[md5sum] = "2397be54f3281cdf30c7ef076b28f7d0"
 SRC_URI[sha256sum] = "314dcc10dfdd7c4443edb4fe1e133a44f2b2a8351be8c9eb6ab9222d45fd9bae"

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list