diff --git a/libasn1parser/Makefile.in b/libasn1parser/Makefile.in index 76a6ef23..ef80e29b 100644 --- a/libasn1parser/Makefile.in +++ b/libasn1parser/Makefile.in @@ -447,9 +447,9 @@ distclean-generic: maintainer-clean-generic: @echo "This command is intended for maintainers to use" @echo "it deletes files that may require special tools to rebuild." - -rm -f asn1p_l.c - -rm -f asn1p_y.h -rm -f asn1p_y.c + -rm -f asn1p_y.h + -rm -f asn1p_l.c clean: clean-am clean-am: clean-generic clean-libtool clean-noinstLTLIBRARIES \ diff --git a/libasn1parser/asn1p_l.c b/libasn1parser/asn1p_l.c index 93a12c34..8d4c7f6a 100644 --- a/libasn1parser/asn1p_l.c +++ b/libasn1parser/asn1p_l.c @@ -312,231 +312,225 @@ static void yy_fatal_error YY_PROTO(( yyconst char msg[] )); *yy_cp = '\0'; \ yy_c_buf_p = yy_cp; -#define YY_NUM_RULES 131 -#define YY_END_OF_BUFFER 132 -static yyconst short int yy_acclist[1266] = +#define YY_NUM_RULES 129 +#define YY_END_OF_BUFFER 130 +static yyconst short int yy_acclist[1259] = { 0, - 132, 130, 131, 124, 130, 131, 124, 131, 123, 130, - 131, 15, 130, 131, 123, 130, 131, 130, 131, 123, - 130, 131, 130, 131, 123, 130, 131, 130, 131, 29, - 130, 131, 28, 130, 131, 123, 130, 131, 130, 131, - 118, 119, 130, 131, 118, 119, 130, 131, 118, 119, - 130, 131, 118, 119, 130, 131, 118, 119, 130, 131, - 118, 119, 130, 131, 118, 119, 130, 131, 118, 119, - 130, 131, 118, 119, 130, 131, 118, 119, 130, 131, - 118, 119, 130, 131, 118, 119, 130, 131, 118, 119, - 130, 131, 118, 119, 130, 131, 118, 119, 130, 131, + 130, 128, 129, 121, 128, 129, 121, 129, 122, 128, + 129, 15, 128, 129, 122, 128, 129, 128, 129, 122, + 128, 129, 128, 129, 122, 128, 129, 128, 129, 29, + 128, 129, 28, 128, 129, 122, 128, 129, 128, 129, + 116, 117, 128, 129, 116, 117, 128, 129, 116, 117, + 128, 129, 116, 117, 128, 129, 116, 117, 128, 129, + 116, 117, 128, 129, 116, 117, 128, 129, 116, 117, + 128, 129, 116, 117, 128, 129, 116, 117, 128, 129, + 116, 117, 128, 129, 116, 117, 128, 129, 116, 117, + 128, 129, 116, 117, 128, 129, 116, 117, 128, 129, - 118, 119, 130, 131, 118, 119, 130, 131, 118, 119, - 130, 131, 118, 119, 130, 131, 123, 130, 131, 129, - 130, 131, 117, 130, 131, 123, 129, 130, 131, 5, - 130, 131, 2, 131, 2, 130, 131, 4, 130, 131, - 7, 9, 130, 131, 7, 131, 9, 130, 131, 9, - 130, 131, 17, 130, 131, 17, 131, 18, 130, 131, - 12, 130, 131, 12, 131, 14, 130, 131, 14, 130, - 131, 10, 130, 131, 11, 130, 131, 21, 23, 130, - 131, 23, 130, 131, 24, 131, 21, 22, 23, 130, - 131, 21, 22, 23, 130, 131, 126, 130, 131, 127, + 116, 117, 128, 129, 116, 117, 128, 129, 116, 117, + 128, 129, 116, 117, 128, 129, 127, 128, 129, 115, + 128, 129, 122, 127, 128, 129, 5, 128, 129, 2, + 129, 2, 128, 129, 4, 128, 129, 7, 9, 128, + 129, 7, 129, 9, 128, 129, 9, 128, 129, 17, + 128, 129, 17, 129, 18, 128, 129, 12, 128, 129, + 12, 129, 14, 128, 129, 14, 128, 129, 10, 128, + 129, 11, 128, 129, 21, 23, 128, 129, 23, 128, + 129, 24, 129, 21, 22, 23, 128, 129, 21, 22, + 23, 128, 129, 124, 128, 129, 125, 128, 129, 125, - 130, 131, 127, 131, 130, 131, 128, 130, 131, 124, - 15, 15, 115, 116, 1, 27, 122, 6, 28, 118, - 119, 118, 119, 118, 119, 118, 119, 118, 119, 118, - 119, 119, 118, 119, 118, 119, 118, 119, 118, 119, - 41, 118, 119, 118, 119, 118, 119, 118, 119, 118, - 119, 118, 119, 118, 119, 118, 119, 118, 119, 118, - 119, 119, 119, 118, 119, 118, 119, 118, 119, 118, - 119, 118, 119, 118, 119, 118, 119, 118, 119, 119, - 118, 119, 118, 119, 86, 118, 119, 118, 119, 119, - 118, 119, 118, 119, 118, 119, 118, 119, 119, 118, + 129, 128, 129, 126, 128, 129, 121, 15, 15, 113, + 114, 1, 27, 120, 6, 28, 116, 117, 116, 117, + 116, 117, 116, 117, 116, 117, 116, 117, 117, 116, + 117, 116, 117, 116, 117, 116, 117, 39, 116, 117, + 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, + 116, 117, 116, 117, 116, 117, 116, 117, 117, 117, + 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, + 116, 117, 116, 117, 116, 117, 117, 116, 117, 116, + 117, 84, 116, 117, 116, 117, 117, 116, 117, 116, + 117, 116, 117, 116, 117, 117, 116, 117, 116, 117, - 119, 118, 119, 118, 119, 118, 119, 118, 119, 118, - 119, 118, 119, 118, 119, 118, 119, 119, 118, 119, - 118, 119, 119, 119, 118, 119, 117, 5, 3, 8, - 17, 16, 12, 21, 21, 22, 21, 22, 126, 127, - 125, 115, 116, 27, 121, 120, 118, 119, 33, 118, - 119, 34, 118, 119, 118, 119, 118, 119, 118, 119, - 38, 118, 119, 118, 119, 118, 119, 118, 119, 118, - 119, 118, 119, 118, 119, 118, 119, 118, 119, 118, - 119, 118, 119, 55, 118, 119, 118, 119, 118, 119, - 118, 119, 118, 119, 118, 119, 118, 119, 119, 119, + 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, + 116, 117, 116, 117, 117, 116, 117, 116, 117, 117, + 117, 116, 117, 115, 5, 3, 8, 17, 16, 12, + 21, 21, 22, 21, 22, 124, 125, 123, 113, 114, + 27, 119, 118, 116, 117, 31, 116, 117, 32, 116, + 117, 116, 117, 116, 117, 116, 117, 36, 116, 117, + 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, + 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, + 53, 116, 117, 116, 117, 116, 117, 116, 117, 116, + 117, 116, 117, 116, 117, 117, 117, 116, 117, 116, - 118, 119, 118, 119, 118, 119, 118, 119, 118, 119, - 118, 119, 118, 119, 78, 118, 119, 79, 118, 119, - 118, 119, 119, 118, 119, 118, 119, 118, 119, 119, - 118, 119, 89, 118, 119, 118, 119, 118, 119, 118, - 119, 119, 118, 119, 118, 119, 118, 119, 97, 118, - 119, 118, 119, 118, 119, 118, 119, 118, 119, 118, - 119, 118, 119, 118, 119, 119, 118, 119, 118, 119, - 118, 119, 119, 119, 119, 118, 119, 30, 13, 21, - 22, 20, 21, 22, 26, 25, 118, 119, 118, 119, - 118, 119, 118, 119, 118, 119, 118, 119, 118, 119, + 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, + 117, 76, 116, 117, 77, 116, 117, 116, 117, 117, + 116, 117, 116, 117, 116, 117, 117, 116, 117, 87, + 116, 117, 116, 117, 116, 117, 116, 117, 117, 116, + 117, 116, 117, 116, 117, 95, 116, 117, 116, 117, + 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, + 116, 117, 117, 116, 117, 116, 117, 116, 117, 117, + 117, 117, 116, 117, 13, 21, 22, 20, 21, 22, + 26, 25, 116, 117, 116, 117, 116, 117, 116, 117, + 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, - 118, 119, 118, 119, 118, 119, 118, 119, 118, 119, - 118, 119, 118, 119, 118, 119, 118, 119, 118, 119, - 118, 119, 118, 119, 118, 119, 118, 119, 118, 119, - 63, 118, 119, 119, 119, 118, 119, 118, 119, 118, - 119, 118, 119, 118, 119, 118, 119, 118, 119, 118, - 119, 118, 119, 81, 118, 119, 119, 118, 119, 118, - 119, 118, 119, 119, 118, 119, 118, 119, 118, 119, - 118, 119, 119, 94, 118, 119, 118, 119, 118, 119, - 98, 118, 119, 118, 119, 118, 119, 118, 119, 102, - 118, 119, 104, 118, 119, 118, 119, 119, 118, 119, + 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, + 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, + 116, 117, 116, 117, 116, 117, 61, 116, 117, 117, + 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, + 117, 116, 117, 116, 117, 116, 117, 116, 117, 79, + 116, 117, 117, 116, 117, 116, 117, 116, 117, 117, + 116, 117, 116, 117, 116, 117, 116, 117, 117, 92, + 116, 117, 116, 117, 116, 117, 96, 116, 117, 116, + 117, 116, 117, 116, 117, 100, 116, 117, 102, 116, + 117, 116, 117, 117, 116, 117, 116, 117, 116, 117, - 118, 119, 118, 119, 118, 119, 118, 119, 119, 119, - 119, 114, 118, 119, 21, 22, 118, 119, 118, 119, - 118, 119, 37, 118, 119, 119, 118, 119, 118, 119, - 118, 119, 44, 118, 119, 118, 119, 118, 119, 118, - 119, 118, 119, 118, 119, 118, 119, 118, 119, 118, - 119, 118, 119, 118, 119, 118, 119, 118, 119, 118, - 119, 62, 118, 119, 119, 119, 119, 118, 119, 118, - 119, 118, 119, 118, 119, 118, 119, 118, 119, 118, - 119, 118, 119, 118, 119, 118, 119, 119, 118, 119, - 85, 118, 119, 118, 119, 119, 118, 119, 118, 119, + 116, 117, 116, 117, 117, 117, 117, 112, 116, 117, + 21, 22, 116, 117, 116, 117, 116, 117, 35, 116, + 117, 117, 116, 117, 116, 117, 116, 117, 42, 116, + 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, + 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, + 117, 116, 117, 116, 117, 116, 117, 60, 116, 117, + 117, 117, 117, 116, 117, 116, 117, 116, 117, 116, + 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, + 117, 116, 117, 117, 116, 117, 83, 116, 117, 116, + 117, 117, 116, 117, 116, 117, 116, 117, 116, 117, - 118, 119, 118, 119, 119, 118, 119, 118, 119, 118, - 119, 118, 119, 119, 118, 119, 119, 106, 118, 119, - 118, 119, 118, 119, 119, 118, 119, 119, 119, 119, - 31, 21, 22, 32, 118, 119, 118, 119, 118, 119, - 119, 118, 119, 118, 119, 43, 118, 119, 118, 119, - 118, 119, 118, 119, 118, 119, 118, 119, 118, 119, - 118, 119, 118, 119, 118, 119, 118, 119, 57, 118, - 119, 118, 119, 118, 119, 118, 119, 118, 119, 119, - 119, 119, 118, 119, 118, 119, 118, 119, 118, 119, - 118, 119, 118, 119, 118, 119, 118, 119, 118, 119, + 117, 116, 117, 116, 117, 116, 117, 116, 117, 117, + 116, 117, 117, 104, 116, 117, 116, 117, 116, 117, + 117, 116, 117, 117, 117, 117, 21, 22, 30, 116, + 117, 116, 117, 116, 117, 117, 116, 117, 116, 117, + 41, 116, 117, 116, 117, 116, 117, 116, 117, 116, + 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, + 117, 116, 117, 55, 116, 117, 116, 117, 116, 117, + 116, 117, 116, 117, 117, 117, 117, 116, 117, 116, + 117, 116, 117, 116, 117, 116, 117, 116, 117, 116, + 117, 116, 117, 116, 117, 116, 117, 116, 117, 117, - 118, 119, 118, 119, 119, 83, 118, 119, 118, 119, - 119, 118, 119, 118, 119, 118, 119, 118, 119, 119, - 118, 119, 118, 119, 99, 118, 119, 100, 118, 119, - 119, 118, 119, 119, 107, 118, 119, 118, 119, 119, - 119, 119, 119, 119, 21, 22, 118, 119, 118, 119, - 119, 40, 118, 119, 118, 119, 118, 119, 118, 119, - 118, 119, 49, 118, 119, 50, 118, 119, 118, 119, - 118, 119, 53, 118, 119, 118, 119, 118, 119, 118, - 119, 59, 118, 119, 118, 119, 118, 119, 119, 119, - 119, 118, 119, 118, 119, 70, 118, 119, 71, 118, + 81, 116, 117, 116, 117, 117, 116, 117, 116, 117, + 116, 117, 116, 117, 117, 116, 117, 116, 117, 97, + 116, 117, 98, 116, 117, 117, 116, 117, 117, 105, + 116, 117, 116, 117, 117, 117, 117, 117, 117, 21, + 22, 116, 117, 116, 117, 117, 38, 116, 117, 116, + 117, 116, 117, 116, 117, 116, 117, 47, 116, 117, + 48, 116, 117, 116, 117, 116, 117, 51, 116, 117, + 116, 117, 116, 117, 116, 117, 57, 116, 117, 116, + 117, 116, 117, 117, 117, 117, 116, 117, 116, 117, + 68, 116, 117, 69, 116, 117, 116, 117, 116, 117, - 119, 118, 119, 118, 119, 118, 119, 75, 118, 119, - 118, 119, 118, 119, 118, 119, 119, 118, 119, 119, - 88, 118, 119, 118, 119, 91, 118, 119, 93, 118, - 119, 119, 118, 119, 118, 119, 119, 118, 119, 119, - 118, 119, 110, 119, 119, 119, 119, 119, 21, 22, - 118, 119, 118, 119, 119, 118, 119, 118, 119, 118, - 119, 118, 119, 118, 119, 52, 118, 119, 118, 119, - 118, 119, 58, 118, 119, 118, 119, 61, 118, 119, - 119, 119, 119, 119, 118, 119, 69, 118, 119, 72, - 118, 119, 73, 118, 119, 118, 119, 118, 119, 119, + 116, 117, 73, 116, 117, 116, 117, 116, 117, 116, + 117, 117, 116, 117, 117, 86, 116, 117, 116, 117, + 89, 116, 117, 91, 116, 117, 117, 116, 117, 116, + 117, 117, 116, 117, 117, 116, 117, 108, 117, 117, + 117, 117, 117, 21, 22, 116, 117, 116, 117, 117, + 116, 117, 116, 117, 116, 117, 116, 117, 116, 117, + 50, 116, 117, 116, 117, 116, 117, 56, 116, 117, + 116, 117, 59, 116, 117, 117, 117, 117, 117, 116, + 117, 67, 116, 117, 70, 116, 117, 71, 116, 117, + 116, 117, 116, 117, 117, 116, 117, 117, 85, 116, - 118, 119, 119, 87, 118, 119, 119, 118, 119, 119, - 118, 119, 96, 118, 119, 119, 118, 119, 119, 118, - 119, 119, 119, 119, 119, 21, 22, 118, 119, 36, - 118, 119, 39, 119, 42, 118, 119, 45, 118, 119, - 118, 119, 118, 119, 118, 119, 118, 119, 118, 119, - 118, 119, 119, 119, 119, 67, 119, 118, 119, 118, - 119, 118, 119, 119, 118, 119, 119, 119, 118, 119, - 119, 118, 119, 101, 119, 118, 119, 119, 108, 118, - 119, 119, 119, 119, 119, 21, 118, 119, 46, 118, - 119, 47, 118, 119, 48, 118, 119, 118, 119, 118, + 117, 117, 116, 117, 117, 116, 117, 94, 116, 117, + 117, 116, 117, 117, 116, 117, 117, 117, 117, 117, + 21, 22, 116, 117, 34, 116, 117, 37, 117, 40, + 116, 117, 43, 116, 117, 116, 117, 116, 117, 116, + 117, 116, 117, 116, 117, 116, 117, 117, 117, 117, + 65, 117, 116, 117, 116, 117, 116, 117, 117, 116, + 117, 117, 117, 116, 117, 117, 116, 117, 99, 117, + 116, 117, 117, 106, 116, 117, 117, 117, 117, 117, + 21, 116, 117, 44, 116, 117, 45, 116, 117, 46, + 116, 117, 116, 117, 116, 117, 54, 116, 117, 116, - 119, 56, 118, 119, 118, 119, 119, 119, 119, 68, - 118, 119, 118, 119, 118, 119, 119, 118, 119, 119, - 119, 118, 119, 119, 118, 119, 118, 119, 119, 111, - 119, 119, 119, 119, 21, 35, 118, 119, 51, 118, - 119, 118, 119, 118, 119, 119, 119, 119, 118, 119, - 118, 119, 119, 118, 119, 119, 119, 118, 119, 119, - 118, 119, 118, 119, 119, 119, 119, 119, 30, 31, - 21, 118, 119, 118, 119, 119, 119, 119, 74, 118, - 119, 76, 118, 119, 77, 119, 118, 119, 119, 119, - 118, 119, 119, 95, 118, 119, 118, 119, 119, 119, + 117, 117, 117, 117, 66, 116, 117, 116, 117, 116, + 117, 117, 116, 117, 117, 117, 116, 117, 117, 116, + 117, 116, 117, 117, 109, 117, 117, 117, 117, 21, + 33, 116, 117, 49, 116, 117, 116, 117, 116, 117, + 117, 117, 117, 116, 117, 116, 117, 117, 116, 117, + 117, 117, 116, 117, 117, 116, 117, 116, 117, 117, + 117, 117, 117, 21, 116, 117, 116, 117, 117, 117, + 117, 72, 116, 117, 74, 116, 117, 75, 117, 116, + 117, 117, 117, 116, 117, 117, 93, 116, 117, 116, + 117, 117, 117, 117, 117, 21, 116, 117, 58, 116, - 119, 119, 21, 118, 119, 60, 118, 119, 65, 119, - 119, 66, 119, 118, 119, 82, 119, 119, 90, 118, - 119, 119, 118, 119, 103, 119, 119, 119, 113, 119, - 21, 118, 119, 119, 80, 118, 119, 119, 119, 118, - 119, 119, 112, 119, 21, 118, 119, 64, 119, 119, - 92, 119, 105, 118, 119, 109, 119, 21, 54, 118, - 119, 84, 119, 19, 21 + 117, 63, 117, 117, 64, 117, 116, 117, 80, 117, + 117, 88, 116, 117, 117, 116, 117, 101, 117, 117, + 117, 111, 117, 21, 116, 117, 117, 78, 116, 117, + 117, 117, 116, 117, 117, 110, 117, 21, 116, 117, + 62, 117, 117, 90, 117, 103, 116, 117, 107, 117, + 21, 52, 116, 117, 82, 117, 19, 21 } ; -static yyconst short int yy_accept[710] = +static yyconst short int yy_accept[671] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 4, 7, 9, 12, 15, 18, 20, 23, 25, 28, 30, 33, 36, 39, 41, 45, 49, 53, 57, 61, 65, 69, 73, 77, 81, 85, 89, 93, 97, 101, 105, 109, 113, 117, - 120, 123, 126, 130, 133, 135, 138, 141, 145, 147, - 150, 153, 156, 158, 161, 164, 166, 169, 172, 175, - 178, 182, 185, 187, 192, 197, 200, 203, 205, 207, - 210, 210, 211, 212, 213, 213, 214, 214, 215, 215, - 215, 216, 217, 218, 219, 220, 220, 222, 224, 226, + 120, 123, 127, 130, 132, 135, 138, 142, 144, 147, + 150, 153, 155, 158, 161, 163, 166, 169, 172, 175, + 179, 182, 184, 189, 194, 197, 200, 202, 204, 207, + 207, 208, 209, 210, 210, 211, 211, 212, 212, 212, + 213, 214, 215, 216, 217, 217, 219, 221, 223, 225, - 228, 230, 232, 233, 235, 237, 239, 241, 244, 246, - 248, 250, 252, 254, 256, 258, 260, 262, 263, 264, - 266, 268, 270, 272, 274, 276, 278, 280, 281, 283, - 285, 288, 290, 291, 293, 295, 297, 299, 300, 302, - 304, 306, 308, 310, 312, 314, 316, 318, 319, 321, - 323, 324, 325, 327, 327, 327, 327, 327, 327, 328, - 329, 330, 331, 332, 333, 334, 334, 335, 337, 339, - 340, 341, 342, 342, 343, 344, 344, 344, 345, 346, - 347, 349, 352, 355, 357, 359, 361, 364, 366, 368, - 370, 372, 374, 376, 378, 380, 382, 384, 387, 389, + 227, 229, 230, 232, 234, 236, 238, 241, 243, 245, + 247, 249, 251, 253, 255, 257, 259, 260, 261, 263, + 265, 267, 269, 271, 273, 275, 277, 278, 280, 282, + 285, 287, 288, 290, 292, 294, 296, 297, 299, 301, + 303, 305, 307, 309, 311, 313, 315, 316, 318, 320, + 321, 322, 324, 325, 326, 327, 328, 329, 330, 331, + 331, 332, 334, 336, 337, 338, 339, 339, 340, 341, + 341, 341, 342, 343, 344, 346, 349, 352, 354, 356, + 358, 361, 363, 365, 367, 369, 371, 373, 375, 377, + 379, 381, 384, 386, 388, 390, 392, 394, 396, 397, - 391, 393, 395, 397, 399, 400, 401, 403, 405, 407, - 409, 411, 413, 415, 418, 421, 423, 424, 426, 428, - 430, 431, 433, 436, 438, 440, 442, 443, 445, 447, - 449, 452, 454, 456, 458, 460, 462, 464, 466, 467, - 469, 471, 473, 474, 475, 476, 478, 479, 479, 479, - 479, 479, 480, 482, 485, 485, 486, 487, 489, 491, - 493, 495, 497, 499, 501, 503, 505, 507, 509, 511, - 513, 515, 517, 519, 521, 523, 525, 527, 529, 531, - 534, 535, 536, 538, 540, 542, 544, 546, 548, 550, - 552, 554, 557, 558, 560, 562, 564, 565, 567, 569, + 398, 400, 402, 404, 406, 408, 410, 412, 415, 418, + 420, 421, 423, 425, 427, 428, 430, 433, 435, 437, + 439, 440, 442, 444, 446, 449, 451, 453, 455, 457, + 459, 461, 463, 464, 466, 468, 470, 471, 472, 473, + 475, 476, 478, 481, 481, 482, 483, 485, 487, 489, + 491, 493, 495, 497, 499, 501, 503, 505, 507, 509, + 511, 513, 515, 517, 519, 521, 523, 525, 527, 530, + 531, 532, 534, 536, 538, 540, 542, 544, 546, 548, + 550, 553, 554, 556, 558, 560, 561, 563, 565, 567, + 569, 570, 573, 575, 577, 580, 582, 584, 586, 589, - 571, 573, 574, 577, 579, 581, 584, 586, 588, 590, - 593, 596, 598, 599, 601, 603, 605, 607, 609, 610, - 611, 612, 615, 615, 615, 615, 615, 617, 619, 621, - 623, 626, 627, 629, 631, 633, 636, 638, 640, 642, - 644, 646, 648, 650, 652, 654, 656, 658, 660, 662, - 665, 666, 667, 668, 670, 672, 674, 676, 678, 680, - 682, 684, 686, 688, 689, 691, 694, 696, 697, 699, - 701, 703, 705, 706, 708, 710, 712, 714, 715, 717, - 718, 721, 723, 725, 726, 728, 729, 730, 731, 732, - 732, 732, 732, 734, 737, 739, 741, 742, 744, 746, + 592, 594, 595, 597, 599, 601, 603, 605, 606, 607, + 608, 611, 613, 615, 617, 619, 622, 623, 625, 627, + 629, 632, 634, 636, 638, 640, 642, 644, 646, 648, + 650, 652, 654, 656, 658, 661, 662, 663, 664, 666, + 668, 670, 672, 674, 676, 678, 680, 682, 684, 685, + 687, 690, 692, 693, 695, 697, 699, 701, 702, 704, + 706, 708, 710, 711, 713, 714, 717, 719, 721, 722, + 724, 725, 726, 727, 729, 732, 734, 736, 737, 739, + 741, 744, 746, 748, 750, 752, 754, 756, 758, 760, + 762, 764, 767, 769, 771, 773, 775, 776, 777, 778, - 749, 751, 753, 755, 757, 759, 761, 763, 765, 767, - 769, 772, 774, 776, 778, 780, 781, 782, 783, 785, - 787, 789, 791, 793, 795, 797, 799, 801, 803, 805, - 806, 809, 811, 812, 814, 816, 818, 820, 821, 823, - 825, 828, 831, 832, 834, 835, 838, 840, 841, 842, - 843, 844, 845, 845, 845, 845, 847, 849, 851, 852, - 855, 857, 859, 861, 863, 866, 869, 871, 873, 876, - 878, 880, 882, 885, 887, 889, 890, 891, 892, 894, - 896, 899, 902, 904, 906, 908, 911, 913, 915, 917, - 918, 920, 921, 924, 926, 929, 932, 933, 935, 937, + 780, 782, 784, 786, 788, 790, 792, 794, 796, 798, + 800, 801, 804, 806, 807, 809, 811, 813, 815, 816, + 818, 820, 823, 826, 827, 829, 830, 833, 835, 836, + 837, 838, 839, 840, 842, 844, 846, 847, 850, 852, + 854, 856, 858, 861, 864, 866, 868, 871, 873, 875, + 877, 880, 882, 884, 885, 886, 887, 889, 891, 894, + 897, 899, 901, 903, 906, 908, 910, 912, 913, 915, + 916, 919, 921, 924, 927, 928, 930, 932, 933, 935, + 936, 938, 940, 941, 942, 943, 944, 946, 948, 950, + 951, 953, 955, 957, 959, 961, 964, 966, 968, 971, - 938, 940, 941, 943, 945, 946, 947, 948, 949, 949, - 949, 949, 951, 953, 955, 956, 958, 960, 962, 964, - 966, 969, 971, 973, 976, 978, 981, 982, 983, 984, - 985, 987, 990, 993, 996, 998, 1000, 1001, 1003, 1004, - 1007, 1008, 1010, 1011, 1013, 1016, 1017, 1019, 1020, 1022, - 1023, 1024, 1025, 1026, 1026, 1026, 1026, 1028, 1030, 1033, - 1035, 1038, 1041, 1043, 1045, 1047, 1049, 1051, 1053, 1054, - 1055, 1056, 1058, 1060, 1062, 1064, 1065, 1067, 1068, 1069, - 1071, 1072, 1074, 1076, 1078, 1079, 1082, 1083, 1084, 1085, - 1086, 1086, 1086, 1086, 1087, 1089, 1092, 1095, 1098, 1100, + 973, 976, 977, 978, 979, 980, 982, 985, 988, 991, + 993, 995, 996, 998, 999, 1002, 1003, 1005, 1006, 1008, + 1011, 1012, 1014, 1015, 1017, 1018, 1019, 1020, 1021, 1023, + 1025, 1028, 1030, 1033, 1036, 1038, 1040, 1042, 1044, 1046, + 1048, 1049, 1050, 1051, 1053, 1055, 1057, 1059, 1060, 1062, + 1063, 1064, 1066, 1067, 1069, 1071, 1073, 1074, 1077, 1078, + 1079, 1080, 1081, 1082, 1084, 1087, 1090, 1093, 1095, 1097, + 1100, 1102, 1103, 1104, 1105, 1108, 1110, 1112, 1113, 1115, + 1116, 1117, 1119, 1120, 1122, 1124, 1125, 1127, 1128, 1129, + 1130, 1131, 1134, 1137, 1139, 1141, 1142, 1143, 1144, 1146, - 1102, 1105, 1107, 1108, 1109, 1110, 1113, 1115, 1117, 1118, - 1120, 1121, 1122, 1124, 1125, 1127, 1129, 1130, 1132, 1133, - 1134, 1135, 1135, 1135, 1135, 1136, 1139, 1142, 1144, 1146, - 1147, 1148, 1149, 1151, 1153, 1154, 1156, 1157, 1158, 1160, - 1161, 1163, 1165, 1166, 1167, 1168, 1169, 1169, 1171, 1171, - 1172, 1174, 1176, 1177, 1178, 1179, 1182, 1185, 1187, 1189, - 1190, 1191, 1193, 1194, 1197, 1199, 1200, 1201, 1202, 1203, - 1203, 1204, 1206, 1209, 1211, 1212, 1214, 1216, 1218, 1219, - 1222, 1223, 1225, 1227, 1228, 1229, 1231, 1231, 1232, 1234, - 1235, 1238, 1239, 1240, 1242, 1243, 1245, 1246, 1248, 1250, - - 1251, 1253, 1256, 1258, 1259, 1262, 1264, 1266, 1266 + 1148, 1149, 1151, 1152, 1153, 1155, 1156, 1158, 1160, 1161, + 1162, 1163, 1164, 1165, 1167, 1169, 1170, 1171, 1172, 1175, + 1178, 1180, 1182, 1183, 1184, 1186, 1187, 1190, 1192, 1193, + 1194, 1195, 1196, 1197, 1199, 1202, 1204, 1205, 1207, 1209, + 1211, 1212, 1215, 1216, 1218, 1220, 1221, 1222, 1224, 1225, + 1227, 1228, 1231, 1232, 1233, 1235, 1236, 1238, 1239, 1241, + 1243, 1244, 1246, 1249, 1251, 1252, 1255, 1257, 1259, 1259 } ; static yyconst int yy_ec[256] = @@ -550,11 +544,11 @@ static yyconst int yy_ec[256] = 24, 1, 1, 9, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, - 51, 1, 52, 53, 1, 1, 54, 55, 56, 57, + 9, 1, 51, 52, 1, 1, 53, 54, 55, 56, - 58, 59, 60, 61, 62, 63, 59, 64, 65, 66, - 67, 68, 59, 69, 70, 71, 72, 73, 59, 74, - 59, 75, 76, 77, 78, 1, 1, 1, 1, 1, + 57, 58, 59, 60, 61, 62, 58, 63, 64, 65, + 66, 67, 58, 68, 69, 70, 71, 72, 58, 73, + 58, 74, 75, 76, 77, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -571,684 +565,657 @@ static yyconst int yy_ec[256] = 1, 1, 1, 1, 1 } ; -static yyconst int yy_meta[79] = +static yyconst int yy_meta[78] = { 0, 1, 2, 3, 3, 1, 4, 5, 6, 1, 1, 7, 1, 1, 8, 8, 8, 8, 8, 8, 8, 9, 1, 1, 9, 8, 8, 8, 8, 8, 8, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, - 1, 1, 1, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 11, 12, 1, 12 + 1, 1, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 11, 1, 11 } ; -static yyconst short int yy_base[728] = +static yyconst short int yy_base[688] = { 0, - 0, 0, 76, 78, 80, 81, 82, 89, 83, 93, - 171, 249, 109, 120, 961, 952, 95, 98, 951, 948, - 320, 117, 4405, 118, 933, 100, 4405, 125, 923, 4405, - 385, 176, 194, 120, 239, 267, 435, 163, 293, 441, - 191, 259, 463, 471, 484, 500, 508, 270, 521, 553, - 935, 0, 933, 0, 4405, 4405, 926, 4405, 4405, 922, - 922, 0, 0, 924, 0, 0, 902, 4405, 4405, 4405, - 0, 4405, 4405, 598, 675, 0, 148, 151, 182, 4405, - 915, 160, 0, 913, 912, 0, 135, 0, 573, 908, - 4405, 226, 902, 4405, 598, 886, 556, 597, 598, 618, + 0, 0, 75, 77, 79, 80, 81, 88, 82, 92, + 169, 246, 108, 119, 797, 777, 94, 97, 775, 774, + 316, 116, 4249, 117, 767, 99, 4249, 124, 751, 4249, + 380, 173, 191, 120, 236, 254, 269, 188, 275, 430, + 431, 447, 453, 468, 474, 490, 498, 514, 515, 762, + 0, 760, 0, 4249, 4249, 756, 4249, 4249, 753, 754, + 0, 0, 757, 0, 0, 740, 4249, 4249, 4249, 0, + 4249, 4249, 575, 651, 0, 148, 151, 256, 4249, 746, + 159, 0, 745, 743, 0, 95, 0, 325, 739, 4249, + 223, 733, 4249, 550, 715, 564, 565, 580, 593, 596, - 619, 634, 0, 664, 667, 680, 693, 704, 720, 728, - 741, 744, 757, 772, 778, 775, 793, 842, 852, 808, - 811, 819, 834, 845, 856, 862, 873, 840, 886, 889, - 902, 910, 840, 913, 926, 937, 950, 835, 966, 972, - 983, 989, 1000, 1015, 1016, 1031, 1032, 831, 1047, 1048, - 831, 48, 1063, 1095, 1102, 851, 88, 128, 0, 0, - 4405, 4405, 0, 4405, 0, 865, 0, 849, 253, 0, - 264, 4405, 875, 0, 0, 83, 848, 611, 4405, 4405, - 1098, 1099, 1114, 1115, 1130, 1138, 1141, 1154, 1162, 1170, - 1178, 1191, 1199, 1202, 1223, 1224, 1239, 1245, 1256, 1262, + 609, 0, 640, 643, 656, 669, 680, 696, 704, 717, + 720, 733, 748, 754, 751, 769, 673, 684, 784, 787, + 795, 810, 821, 832, 838, 849, 669, 862, 865, 878, + 886, 669, 889, 902, 913, 926, 667, 942, 948, 959, + 965, 976, 991, 992, 1007, 1008, 663, 1023, 1024, 663, + 58, 1039, 0, 0, 4249, 4249, 0, 4249, 0, 699, + 0, 681, 159, 0, 201, 4249, 706, 0, 0, 163, + 683, 1071, 4249, 4249, 1066, 1067, 1082, 1083, 1098, 1106, + 1109, 1122, 1130, 1138, 1146, 1159, 1167, 1170, 1191, 1192, + 1207, 1213, 1224, 1230, 1241, 1247, 1258, 1269, 656, 645, - 1273, 1279, 1290, 1301, 818, 807, 1314, 1322, 1325, 1340, - 1343, 1346, 1370, 1364, 1367, 1385, 815, 1388, 1403, 1409, - 811, 1420, 1431, 1437, 1448, 1459, 802, 1470, 1476, 1487, - 1493, 1508, 1509, 1524, 1535, 1541, 1556, 1562, 809, 1573, - 1584, 1595, 793, 807, 801, 1606, 4405, 1645, 822, 178, - 250, 4405, 109, 820, 802, 4405, 4405, 1630, 1641, 1647, - 1662, 1663, 1680, 1679, 1695, 1701, 1712, 1723, 1741, 1738, - 1744, 1759, 1762, 1765, 1780, 1786, 1797, 1808, 1823, 1829, - 783, 789, 1840, 1846, 1861, 1862, 1877, 1883, 1898, 1901, - 1909, 1922, 774, 1930, 1933, 1946, 786, 1954, 1970, 1969, + 1282, 1290, 1293, 1308, 1311, 1314, 1338, 1332, 1335, 1353, + 654, 1356, 1371, 1377, 653, 1388, 1399, 1405, 1416, 1427, + 639, 1438, 1444, 1455, 1461, 1476, 1477, 1492, 1503, 1509, + 1524, 1530, 643, 1541, 1552, 1563, 627, 641, 636, 1574, + 4249, 162, 655, 640, 4249, 4249, 1585, 1591, 1602, 1608, + 1619, 1625, 1641, 1642, 1657, 1665, 1673, 1681, 1694, 1697, + 1710, 1721, 1727, 1738, 1744, 1755, 1766, 1781, 1787, 622, + 626, 1798, 1804, 1819, 1820, 1835, 1841, 1856, 1859, 1867, + 1880, 616, 1888, 1891, 1904, 622, 1912, 1928, 1927, 1944, + 600, 1945, 1960, 1973, 1981, 1984, 2002, 1999, 2005, 2020, - 1986, 770, 1987, 2002, 2015, 2023, 2026, 2044, 2041, 2047, - 2062, 2065, 768, 2068, 2083, 2089, 2100, 2106, 778, 768, - 775, 2121, 2153, 170, 151, 242, 200, 2138, 2153, 2159, - 2170, 759, 2176, 2191, 2194, 2202, 2215, 2218, 2226, 2239, - 2247, 2260, 2268, 2276, 2284, 2299, 2305, 2316, 2322, 2337, - 773, 763, 755, 2338, 2358, 2355, 2376, 2375, 2391, 2397, - 2408, 2419, 2430, 759, 2436, 2447, 2453, 738, 2464, 2475, - 2481, 2492, 753, 2505, 2508, 2516, 2529, 737, 2540, 745, - 2546, 2561, 2562, 731, 2577, 725, 721, 727, 4405, 280, - 297, 294, 231, 2583, 2599, 2605, 728, 2616, 2627, 2638, + 2023, 598, 2026, 2041, 2044, 2052, 2065, 610, 599, 601, + 2076, 187, 2089, 2092, 2110, 2113, 582, 2116, 2133, 2136, + 2144, 2157, 2160, 2168, 2181, 2189, 2202, 2210, 2218, 2226, + 2241, 2247, 2258, 2264, 2279, 595, 585, 576, 2280, 2300, + 2297, 2318, 2317, 2333, 2339, 2350, 2361, 2372, 582, 2378, + 2389, 2395, 570, 2406, 2417, 2423, 2434, 586, 2447, 2450, + 2458, 2471, 569, 2482, 573, 2488, 2503, 2504, 564, 2519, + 556, 553, 558, 227, 2525, 2541, 2547, 556, 2558, 2564, + 2575, 2581, 2592, 2598, 2609, 2620, 2626, 2643, 2649, 2660, + 2666, 2677, 2683, 2694, 2700, 2716, 552, 559, 552, 2717, - 2644, 2655, 2661, 2672, 2683, 2689, 2706, 2712, 2723, 2729, - 2740, 2746, 2757, 2763, 2779, 724, 731, 723, 2780, 2795, - 2801, 2812, 2818, 2833, 2839, 2850, 2865, 2871, 2882, 720, - 2893, 2899, 747, 2910, 2916, 2927, 2940, 716, 2948, 2963, - 2966, 2969, 707, 2984, 689, 2987, 2990, 704, 692, 687, - 697, 693, 271, 295, 301, 712, 3005, 3018, 682, 3021, - 3036, 3042, 3053, 3059, 3070, 3076, 3087, 3098, 3104, 3115, - 3121, 3132, 3143, 3149, 3160, 124, 704, 677, 3166, 3177, - 3188, 3194, 3205, 3211, 3226, 3227, 3242, 3248, 3259, 698, - 3265, 681, 3276, 3287, 3298, 3304, 673, 3319, 3325, 658, + 2732, 2738, 2749, 2755, 2770, 2776, 2787, 2802, 2808, 2819, + 557, 2830, 2836, 583, 2847, 2853, 2864, 2877, 553, 2885, + 2900, 2903, 2906, 534, 2921, 521, 2924, 2927, 536, 524, + 520, 522, 521, 539, 2942, 2955, 509, 2958, 2973, 2979, + 2990, 2996, 3007, 3013, 3024, 3035, 3041, 3052, 3058, 3069, + 3080, 3086, 3097, 105, 530, 507, 3103, 3114, 3125, 3131, + 3142, 3148, 3163, 3164, 3179, 3185, 3196, 528, 3202, 505, + 3213, 3224, 3230, 3241, 498, 3247, 3262, 493, 3268, 514, + 3284, 0, 495, 496, 473, 502, 251, 3285, 3300, 485, + 3306, 3317, 3330, 3338, 3341, 3356, 3362, 3377, 3359, 3383, - 3340, 680, 3346, 0, 660, 667, 643, 672, 438, 368, - 366, 286, 3357, 3372, 654, 3378, 3389, 3402, 3410, 3413, - 3428, 3434, 3449, 3431, 3455, 3466, 639, 633, 630, 634, - 3472, 3483, 3489, 3500, 3506, 3517, 623, 3528, 620, 3534, - 619, 3545, 619, 3556, 3562, 613, 3573, 600, 3579, 603, - 604, 623, 594, 300, 466, 447, 360, 3590, 3596, 0, - 3607, 3613, 3629, 3628, 3644, 3645, 3660, 3661, 593, 603, - 584, 0, 3676, 3684, 3699, 590, 3700, 579, 591, 3715, - 603, 3723, 0, 3731, 572, 3744, 579, 589, 531, 528, - 443, 3783, 454, 568, 3768, 3769, 3784, 3785, 3800, 3808, + 3394, 467, 459, 461, 470, 3400, 3411, 3417, 3428, 3434, + 3445, 459, 3456, 455, 3462, 453, 3473, 463, 3484, 3490, + 458, 3501, 441, 3507, 440, 436, 453, 420, 196, 3518, + 3524, 0, 3535, 3541, 3557, 3556, 3572, 3573, 3588, 3589, + 420, 429, 416, 0, 3604, 3612, 3627, 421, 3628, 412, + 417, 3643, 422, 3651, 0, 3659, 396, 3672, 403, 418, + 390, 391, 431, 3675, 3683, 3696, 3699, 3707, 3720, 3728, + 3736, 371, 375, 343, 3744, 3752, 3760, 338, 3768, 341, + 333, 3776, 323, 3784, 3792, 331, 0, 297, 268, 274, + 295, 3800, 3808, 3816, 3824, 267, 287, 265, 3837, 3845, - 3816, 3824, 529, 533, 527, 3832, 3840, 3848, 520, 3856, - 523, 515, 3864, 512, 3872, 3880, 518, 0, 508, 496, - 498, 397, 3912, 560, 517, 3897, 3898, 3913, 3921, 489, - 507, 484, 3934, 3942, 483, 3950, 475, 477, 3958, 468, - 3971, 3974, 469, 462, 468, 461, 424, 4405, 4018, 485, - 4003, 4004, 461, 456, 455, 4019, 4020, 0, 4035, 454, - 444, 4036, 440, 4051, 4057, 438, 434, 429, 432, 732, - 441, 4068, 4079, 0, 419, 0, 4085, 0, 411, 4100, - 399, 4103, 0, 372, 347, 0, 4147, 330, 4132, 258, - 4143, 227, 214, 4149, 177, 0, 180, 4160, 0, 138, - - 0, 4166, 0, 134, 4177, 0, 0, 4405, 4222, 4234, - 4246, 4258, 4270, 4282, 4294, 4305, 4306, 4310, 4321, 4333, - 4345, 4356, 4367, 4378, 4383, 4388, 4393 + 266, 3853, 254, 256, 3861, 248, 3874, 3877, 245, 238, + 243, 237, 255, 3885, 3898, 232, 227, 228, 3901, 3914, + 0, 3922, 227, 218, 3925, 222, 3942, 3943, 218, 210, + 201, 204, 217, 3958, 3959, 0, 171, 0, 3975, 0, + 162, 3976, 154, 3993, 0, 151, 149, 0, 146, 4001, + 127, 4009, 102, 105, 4017, 86, 0, 90, 4025, 0, + 40, 0, 4038, 0, 68, 4041, 0, 0, 4249, 4086, + 4097, 4108, 4119, 4130, 4141, 4152, 4162, 4164, 4174, 4185, + 4196, 4206, 4216, 4226, 4230, 4234, 4238 } ; -static yyconst short int yy_def[728] = +static yyconst short int yy_def[688] = { 0, - 708, 1, 709, 709, 710, 710, 711, 711, 712, 712, - 713, 713, 714, 714, 708, 708, 708, 708, 708, 715, - 708, 716, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, 31, 717, - 708, 718, 708, 719, 708, 708, 708, 708, 708, 708, - 708, 720, 720, 708, 721, 721, 708, 708, 708, 708, - 722, 708, 708, 723, 723, 724, 708, 708, 21, 708, - 708, 708, 715, 715, 708, 725, 708, 726, 716, 716, - 708, 708, 708, 708, 708, 708, 31, 31, 31, 31, + 669, 1, 670, 670, 671, 671, 672, 672, 673, 673, + 674, 674, 675, 675, 669, 669, 669, 669, 669, 676, + 669, 677, 669, 669, 669, 669, 669, 669, 669, 669, + 669, 31, 31, 31, 31, 31, 31, 31, 31, 31, + 31, 31, 31, 31, 31, 31, 31, 31, 31, 669, + 678, 669, 679, 669, 669, 669, 669, 669, 669, 669, + 680, 680, 669, 681, 681, 669, 669, 669, 669, 682, + 669, 669, 683, 683, 684, 669, 669, 21, 669, 669, + 669, 676, 676, 669, 685, 669, 686, 677, 677, 669, + 669, 669, 669, 669, 669, 31, 31, 31, 31, 31, - 31, 31, 727, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 727, 727, 31, - 31, 31, 31, 31, 31, 31, 31, 727, 31, 31, - 31, 31, 727, 31, 31, 31, 31, 727, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 727, 31, 31, - 727, 727, 31, 708, 717, 155, 155, 155, 718, 719, - 708, 708, 720, 708, 721, 708, 722, 75, 75, 724, - 708, 708, 708, 725, 726, 708, 708, 708, 708, 708, + 31, 687, 31, 31, 31, 31, 31, 31, 31, 31, + 31, 31, 31, 31, 31, 31, 687, 687, 31, 31, + 31, 31, 31, 31, 31, 31, 687, 31, 31, 31, + 31, 687, 31, 31, 31, 31, 687, 31, 31, 31, + 31, 31, 31, 31, 31, 31, 687, 31, 31, 687, + 687, 31, 678, 679, 669, 669, 680, 669, 681, 669, + 682, 74, 74, 684, 669, 669, 669, 685, 686, 669, + 669, 669, 669, 669, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - - 31, 31, 31, 31, 727, 727, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 727, 31, 31, 31, - 727, 31, 31, 31, 31, 31, 727, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, 727, 31, - 31, 31, 727, 727, 727, 31, 708, 708, 155, 155, - 155, 708, 75, 75, 708, 708, 708, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 727, 727, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 727, 31, 31, 31, 727, 31, 31, 31, - - 31, 727, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 727, 31, 31, 31, 31, 31, 727, 727, - 727, 31, 708, 155, 155, 155, 75, 31, 31, 31, - 31, 727, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 727, 727, 727, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 727, 31, 31, 31, 727, 31, 31, - 31, 31, 727, 31, 31, 31, 31, 727, 31, 727, - 31, 31, 31, 727, 31, 727, 727, 727, 708, 155, - 155, 155, 75, 31, 31, 31, 727, 31, 31, 31, + 31, 31, 31, 31, 31, 31, 31, 31, 687, 687, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 727, 727, 727, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, 31, 727, - 31, 31, 727, 31, 31, 31, 31, 727, 31, 31, - 31, 31, 727, 31, 727, 31, 31, 727, 727, 727, - 727, 727, 155, 155, 155, 75, 31, 31, 727, 31, + 687, 31, 31, 31, 687, 31, 31, 31, 31, 31, + 687, 31, 31, 31, 31, 31, 31, 31, 31, 31, + 31, 31, 687, 31, 31, 31, 687, 687, 687, 31, + 669, 74, 74, 669, 669, 669, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 727, 727, 727, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, 31, 727, - 31, 727, 31, 31, 31, 31, 727, 31, 31, 727, + 31, 31, 31, 31, 31, 31, 31, 31, 31, 687, + 687, 31, 31, 31, 31, 31, 31, 31, 31, 31, + 31, 687, 31, 31, 31, 687, 31, 31, 31, 31, + 687, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 727, 31, 727, 727, 727, 727, 727, 155, 155, - 155, 75, 31, 31, 727, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 727, 727, 727, 727, - 31, 31, 31, 31, 31, 31, 727, 31, 727, 31, - 727, 31, 727, 31, 31, 727, 31, 727, 31, 727, - 727, 727, 727, 155, 155, 155, 75, 31, 31, 727, - 31, 31, 31, 31, 31, 31, 31, 31, 727, 727, - 727, 727, 31, 31, 31, 727, 31, 727, 727, 31, - 727, 31, 727, 31, 727, 31, 727, 727, 727, 727, - 155, 708, 155, 722, 31, 31, 31, 31, 31, 31, + 31, 687, 31, 31, 31, 31, 31, 687, 687, 687, + 31, 74, 31, 31, 31, 31, 687, 31, 31, 31, + 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, + 31, 31, 31, 31, 31, 687, 687, 687, 31, 31, + 31, 31, 31, 31, 31, 31, 31, 31, 687, 31, + 31, 31, 687, 31, 31, 31, 31, 687, 31, 31, + 31, 31, 687, 31, 687, 31, 31, 31, 687, 31, + 687, 687, 687, 74, 31, 31, 31, 687, 31, 31, + 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, + 31, 31, 31, 31, 31, 31, 687, 687, 687, 31, - 31, 31, 727, 727, 727, 31, 31, 31, 727, 31, - 727, 727, 31, 727, 31, 31, 727, 727, 727, 727, - 727, 155, 708, 155, 722, 31, 31, 31, 31, 727, - 727, 727, 31, 31, 727, 31, 727, 727, 31, 727, - 31, 31, 727, 727, 727, 727, 155, 708, 708, 722, - 31, 31, 727, 727, 727, 31, 31, 727, 31, 727, - 727, 31, 727, 31, 31, 727, 727, 727, 727, 155, - 722, 31, 31, 727, 727, 727, 31, 727, 727, 31, - 727, 31, 727, 727, 727, 727, 708, 722, 31, 727, - 31, 727, 727, 31, 727, 727, 722, 31, 727, 727, + 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, + 687, 31, 31, 687, 31, 31, 31, 31, 687, 31, + 31, 31, 31, 687, 31, 687, 31, 31, 687, 687, + 687, 687, 687, 74, 31, 31, 687, 31, 31, 31, + 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, + 31, 31, 31, 687, 687, 687, 31, 31, 31, 31, + 31, 31, 31, 31, 31, 31, 31, 687, 31, 687, + 31, 31, 31, 31, 687, 31, 31, 687, 31, 687, + 31, 687, 687, 687, 687, 687, 74, 31, 31, 687, + 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 727, 31, 727, 722, 31, 727, 722, 0, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708 + 31, 687, 687, 687, 687, 31, 31, 31, 31, 31, + 31, 687, 31, 687, 31, 687, 31, 687, 31, 31, + 687, 31, 687, 31, 687, 687, 687, 687, 74, 31, + 31, 687, 31, 31, 31, 31, 31, 31, 31, 31, + 687, 687, 687, 687, 31, 31, 31, 687, 31, 687, + 687, 31, 687, 31, 687, 31, 687, 31, 687, 687, + 687, 687, 682, 31, 31, 31, 31, 31, 31, 31, + 31, 687, 687, 687, 31, 31, 31, 687, 31, 687, + 687, 31, 687, 31, 31, 687, 687, 687, 687, 687, + 682, 31, 31, 31, 31, 687, 687, 687, 31, 31, + + 687, 31, 687, 687, 31, 687, 31, 31, 687, 687, + 687, 687, 682, 31, 31, 687, 687, 687, 31, 31, + 687, 31, 687, 687, 31, 687, 31, 31, 687, 687, + 687, 687, 682, 31, 31, 687, 687, 687, 31, 687, + 687, 31, 687, 31, 687, 687, 687, 687, 682, 31, + 687, 31, 687, 687, 31, 687, 687, 682, 31, 687, + 687, 687, 31, 687, 682, 31, 687, 682, 0, 669, + 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, + 669, 669, 669, 669, 669, 669, 669 } ; -static yyconst short int yy_nxt[4484] = +static yyconst short int yy_nxt[4327] = { 0, 16, 17, 18, 17, 19, 20, 21, 22, 23, 16, 24, 25, 26, 27, 28, 28, 28, 28, 28, 28, 29, 19, 30, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 38, 38, 38, 40, 41, 42, 43, 38, 44, 45, 46, 47, 48, 49, 38, 38, 38, - 50, 19, 51, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 52, 52, 52, 52, 52, - 52, 52, 52, 52, 52, 23, 53, 23, 55, 56, - 55, 56, 59, 59, 63, 66, 57, 64, 57, 60, - 60, 63, 61, 61, 64, 66, 82, 82, 82, 82, + 19, 50, 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 51, 51, 51, 51, 51, 51, + 51, 51, 51, 51, 23, 52, 23, 54, 55, 54, + 55, 58, 58, 62, 65, 56, 63, 56, 59, 59, + 62, 60, 60, 63, 65, 81, 81, 81, 81, 81, - 82, 82, 81, 67, 244, 81, 68, 81, 256, 94, - 77, 78, 77, 67, 257, 79, 68, 245, 89, 89, - 89, 77, 78, 77, 81, 81, 79, 156, 91, 250, - 89, 89, 92, 92, 92, 92, 92, 92, 95, 95, - 95, 95, 95, 95, 95, 97, 168, 327, 112, 171, - 171, 171, 171, 171, 171, 97, 85, 97, 69, 97, - 70, 82, 82, 82, 97, 251, 527, 156, 69, 707, - 70, 71, 72, 73, 72, 71, 71, 71, 71, 71, - 71, 71, 71, 71, 30, 528, 80, 87, 97, 708, - 156, 71, 71, 71, 71, 30, 391, 80, 97, 75, + 81, 80, 66, 668, 80, 67, 80, 667, 93, 76, + 77, 76, 66, 238, 78, 67, 84, 88, 88, 88, + 76, 77, 76, 80, 80, 78, 239, 90, 665, 88, + 88, 91, 91, 91, 91, 91, 91, 94, 94, 94, + 94, 94, 94, 94, 664, 96, 86, 502, 111, 165, + 165, 165, 165, 165, 165, 96, 68, 96, 69, 96, + 81, 81, 81, 662, 96, 503, 68, 661, 69, 70, + 71, 72, 71, 70, 70, 70, 70, 70, 70, 70, + 70, 70, 30, 660, 79, 242, 243, 658, 245, 70, + 70, 70, 70, 30, 246, 79, 162, 74, 96, 162, - 97, 97, 97, 708, 104, 390, 706, 97, 105, 156, - 325, 97, 106, 97, 107, 97, 97, 156, 704, 97, - 97, 71, 71, 71, 108, 109, 97, 393, 97, 110, - 97, 97, 111, 97, 708, 127, 703, 168, 97, 178, - 178, 178, 178, 178, 178, 178, 72, 71, 72, 71, - 72, 73, 72, 71, 71, 71, 71, 71, 71, 71, - 71, 71, 128, 456, 97, 171, 171, 171, 168, 71, - 71, 71, 71, 701, 97, 113, 114, 75, 97, 253, - 254, 156, 326, 97, 129, 130, 115, 392, 131, 156, - 168, 116, 97, 700, 97, 97, 97, 509, 132, 71, + 312, 103, 165, 165, 165, 104, 563, 657, 96, 105, + 96, 106, 96, 96, 374, 656, 96, 96, 654, 70, + 70, 107, 108, 96, 162, 96, 109, 96, 96, 110, + 96, 653, 96, 162, 651, 96, 172, 172, 172, 172, + 172, 172, 172, 71, 70, 71, 70, 71, 72, 71, + 70, 70, 70, 70, 70, 70, 70, 70, 70, 434, + 649, 96, 648, 669, 162, 647, 70, 70, 70, 70, + 646, 96, 112, 113, 74, 96, 645, 669, 115, 96, + 96, 529, 643, 114, 641, 640, 638, 637, 162, 96, + 636, 96, 633, 96, 96, 116, 70, 70, 96, 119, - 71, 71, 97, 97, 97, 97, 97, 97, 117, 97, - 156, 97, 453, 133, 97, 699, 557, 120, 97, 156, - 121, 454, 455, 168, 72, 71, 72, 81, 97, 122, - 123, 152, 97, 156, 156, 124, 156, 97, 510, 156, - 156, 85, 511, 591, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 86, 86, 86, 86, 86, 86, 86, 86, 86, 86, - 594, 697, 87, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 88, 88, 88, 88, 88, - 88, 88, 88, 88, 88, 97, 555, 168, 97, 97, + 96, 632, 120, 631, 96, 630, 96, 669, 96, 629, + 96, 121, 122, 96, 96, 626, 624, 123, 623, 96, + 71, 70, 71, 80, 621, 117, 88, 88, 88, 618, + 617, 616, 170, 613, 612, 611, 118, 84, 88, 88, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 85, 85, 85, 85, + 85, 85, 85, 85, 85, 85, 610, 86, 87, 87, + 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, + 87, 87, 87, 87, 87, 87, 87, 87, 87, 87, + 96, 609, 606, 96, 96, 96, 96, 96, 96, 96, - 97, 97, 97, 97, 97, 156, 696, 156, 556, 97, - 98, 97, 97, 97, 97, 97, 97, 97, 97, 97, - 99, 97, 100, 97, 101, 97, 97, 97, 97, 102, - 97, 97, 97, 97, 97, 647, 156, 695, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 103, 103, 103, 103, 103, 103, 103, 103, 103, 103, - 97, 670, 554, 156, 693, 125, 97, 592, 592, 592, - 97, 593, 97, 126, 97, 622, 97, 156, 97, 97, - 97, 692, 156, 690, 688, 97, 156, 134, 97, 624, - 135, 686, 118, 156, 685, 684, 97, 683, 136, 139, + 604, 603, 601, 598, 96, 97, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 98, 96, 99, 96, 100, + 96, 96, 96, 96, 101, 96, 96, 96, 96, 96, + 597, 596, 102, 102, 102, 102, 102, 102, 102, 102, + 102, 102, 102, 102, 102, 102, 102, 102, 102, 102, + 102, 102, 102, 102, 124, 96, 96, 591, 590, 589, + 588, 587, 125, 586, 583, 96, 96, 96, 96, 96, + 96, 581, 128, 129, 96, 126, 130, 133, 96, 580, + 134, 578, 96, 574, 96, 573, 131, 572, 135, 562, + 96, 96, 96, 96, 136, 561, 138, 96, 560, 96, - 97, 681, 97, 119, 137, 156, 97, 97, 97, 97, - 97, 679, 140, 678, 676, 97, 141, 675, 144, 97, - 674, 97, 671, 97, 145, 97, 669, 142, 97, 668, - 667, 138, 143, 97, 666, 97, 663, 97, 661, 97, - 660, 146, 658, 97, 97, 149, 97, 97, 147, 655, - 654, 150, 97, 153, 653, 650, 97, 148, 97, 646, - 97, 649, 649, 649, 645, 97, 154, 154, 154, 154, - 154, 154, 154, 151, 89, 89, 89, 155, 644, 643, - 176, 97, 640, 638, 637, 635, 89, 89, 632, 631, - 630, 97, 157, 97, 625, 97, 621, 158, 167, 156, + 132, 127, 139, 96, 559, 96, 140, 96, 143, 96, + 557, 96, 96, 96, 144, 96, 555, 141, 96, 553, + 137, 551, 142, 96, 550, 96, 548, 96, 544, 96, + 543, 145, 542, 96, 96, 148, 541, 96, 146, 96, + 96, 149, 96, 532, 528, 527, 147, 152, 526, 96, + 96, 96, 96, 96, 96, 525, 523, 521, 96, 96, + 518, 516, 150, 94, 94, 94, 94, 94, 94, 94, + 514, 505, 504, 490, 151, 161, 487, 486, 485, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 484, 96, + 96, 483, 482, 480, 478, 161, 161, 161, 161, 96, - 97, 620, 167, 167, 167, 167, 167, 167, 167, 167, - 167, 95, 95, 95, 95, 95, 95, 95, 167, 167, - 167, 167, 97, 97, 178, 178, 178, 178, 178, 178, - 178, 619, 97, 182, 97, 97, 97, 97, 618, 181, - 617, 97, 97, 97, 97, 614, 612, 611, 167, 167, - 167, 609, 605, 97, 97, 97, 97, 97, 184, 97, - 604, 603, 97, 97, 590, 589, 183, 588, 587, 97, - 585, 97, 583, 97, 167, 167, 581, 185, 97, 167, - 167, 167, 167, 167, 167, 167, 167, 167, 579, 97, - 578, 576, 97, 572, 186, 167, 167, 167, 167, 97, + 96, 96, 96, 96, 96, 96, 475, 175, 96, 96, + 470, 468, 456, 455, 454, 176, 437, 96, 96, 96, + 433, 96, 432, 431, 96, 161, 161, 429, 96, 426, + 96, 96, 96, 96, 96, 178, 424, 96, 419, 414, + 96, 177, 411, 399, 96, 398, 96, 397, 96, 378, + 161, 161, 179, 96, 373, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 372, 96, 371, 365, 96, 358, + 180, 161, 161, 161, 161, 96, 353, 96, 96, 96, + 96, 96, 96, 349, 96, 337, 181, 96, 163, 336, + 166, 96, 162, 96, 96, 182, 310, 309, 308, 302, - 571, 97, 97, 97, 97, 97, 97, 570, 97, 569, - 187, 97, 169, 560, 553, 97, 552, 97, 97, 188, - 551, 550, 548, 546, 97, 167, 167, 167, 97, 97, - 97, 189, 97, 687, 687, 687, 543, 97, 541, 97, - 539, 97, 530, 97, 190, 97, 529, 515, 97, 512, - 508, 167, 192, 97, 507, 97, 506, 97, 191, 97, - 505, 504, 502, 97, 97, 97, 97, 97, 500, 97, - 497, 156, 97, 195, 492, 490, 97, 193, 194, 97, - 97, 97, 196, 97, 478, 97, 477, 476, 97, 459, - 452, 451, 97, 450, 97, 448, 97, 97, 197, 198, + 96, 161, 161, 291, 96, 96, 96, 183, 96, 286, + 282, 271, 270, 96, 246, 96, 244, 96, 162, 96, + 184, 96, 241, 237, 96, 233, 161, 221, 186, 96, + 215, 96, 211, 96, 185, 96, 200, 199, 174, 96, + 96, 96, 96, 96, 173, 96, 171, 167, 96, 189, + 166, 166, 96, 187, 188, 96, 96, 96, 190, 96, + 160, 96, 158, 93, 96, 156, 155, 80, 96, 80, + 96, 95, 96, 96, 191, 192, 96, 96, 92, 96, + 194, 83, 80, 96, 80, 96, 197, 96, 96, 96, + 96, 96, 193, 195, 96, 96, 669, 196, 96, 669, - 97, 97, 445, 97, 200, 443, 438, 97, 433, 97, - 203, 97, 97, 97, 97, 97, 199, 201, 97, 97, - 430, 202, 97, 418, 417, 207, 416, 397, 97, 388, - 97, 204, 97, 97, 387, 386, 97, 97, 380, 208, - 373, 368, 364, 97, 97, 97, 97, 97, 97, 352, - 97, 351, 97, 172, 97, 97, 97, 168, 209, 97, - 210, 324, 321, 97, 320, 319, 313, 302, 297, 97, - 97, 97, 293, 97, 282, 281, 211, 212, 97, 257, - 97, 97, 97, 213, 97, 255, 168, 97, 252, 97, - 156, 97, 243, 97, 239, 97, 227, 97, 97, 215, + 669, 201, 669, 669, 96, 669, 96, 198, 96, 96, + 669, 669, 96, 96, 669, 202, 669, 669, 669, 96, + 96, 96, 96, 96, 96, 669, 96, 669, 96, 669, + 96, 96, 96, 669, 203, 96, 204, 669, 669, 96, + 669, 669, 669, 669, 669, 96, 96, 96, 669, 96, + 669, 669, 205, 206, 96, 669, 96, 96, 96, 207, + 96, 669, 669, 96, 669, 96, 669, 96, 669, 96, + 669, 96, 669, 96, 96, 209, 96, 96, 669, 208, + 669, 669, 96, 669, 210, 669, 96, 96, 96, 669, + 96, 669, 669, 96, 669, 212, 669, 96, 669, 96, - 97, 97, 221, 214, 217, 206, 97, 205, 216, 180, - 97, 97, 97, 179, 97, 177, 173, 97, 172, 218, - 172, 97, 166, 97, 97, 97, 97, 97, 97, 164, - 97, 94, 219, 97, 162, 97, 161, 97, 97, 97, - 81, 97, 81, 96, 93, 97, 97, 97, 97, 97, - 97, 97, 97, 220, 97, 84, 222, 97, 81, 81, - 708, 97, 97, 97, 708, 97, 708, 708, 708, 708, - 97, 223, 97, 708, 97, 97, 97, 708, 225, 708, - 708, 224, 226, 708, 708, 97, 708, 97, 708, 97, - 228, 97, 708, 708, 97, 708, 708, 97, 708, 708, + 96, 96, 96, 96, 96, 669, 96, 669, 213, 96, + 669, 96, 669, 96, 96, 96, 669, 96, 669, 669, + 669, 96, 96, 96, 96, 96, 96, 96, 96, 214, + 96, 669, 216, 96, 669, 669, 669, 96, 96, 96, + 669, 96, 669, 669, 669, 669, 96, 217, 96, 669, + 96, 96, 96, 669, 219, 669, 669, 218, 220, 669, + 669, 96, 669, 96, 669, 96, 222, 96, 669, 669, + 96, 669, 669, 96, 669, 669, 669, 223, 669, 96, + 669, 96, 669, 96, 96, 96, 96, 96, 224, 669, + 96, 225, 96, 669, 96, 669, 96, 669, 96, 669, - 708, 229, 708, 97, 708, 97, 708, 97, 97, 97, - 97, 97, 230, 708, 97, 231, 97, 708, 97, 708, - 97, 708, 97, 708, 97, 97, 97, 97, 97, 235, - 233, 708, 232, 97, 708, 97, 708, 234, 708, 97, - 97, 97, 708, 708, 97, 708, 236, 708, 708, 708, - 97, 97, 97, 97, 97, 97, 97, 97, 708, 97, - 97, 708, 708, 708, 708, 708, 97, 97, 97, 97, - 97, 238, 97, 97, 241, 237, 97, 242, 708, 240, - 708, 708, 97, 97, 97, 97, 97, 97, 97, 708, - 708, 97, 97, 708, 708, 708, 708, 708, 97, 708, + 96, 96, 96, 96, 96, 229, 227, 669, 226, 96, + 669, 96, 669, 228, 669, 96, 96, 96, 669, 669, + 96, 669, 230, 669, 669, 669, 96, 96, 96, 96, + 96, 96, 96, 96, 669, 96, 96, 669, 669, 669, + 669, 669, 96, 96, 96, 96, 96, 232, 96, 96, + 235, 231, 96, 236, 669, 234, 669, 669, 96, 96, + 96, 96, 96, 96, 96, 669, 669, 96, 96, 669, + 669, 669, 669, 669, 96, 669, 96, 669, 96, 669, + 669, 669, 240, 96, 172, 172, 172, 172, 172, 172, + 172, 96, 96, 669, 247, 669, 669, 669, 669, 669, - 97, 708, 97, 248, 248, 248, 246, 97, 154, 154, - 154, 154, 154, 154, 154, 708, 708, 708, 708, 708, - 708, 708, 708, 97, 97, 708, 258, 708, 708, 708, - 708, 708, 708, 97, 97, 97, 97, 97, 97, 97, - 97, 249, 97, 97, 708, 708, 247, 708, 708, 97, - 259, 97, 97, 97, 97, 97, 708, 708, 97, 97, - 708, 708, 708, 97, 708, 97, 97, 97, 260, 97, - 261, 708, 708, 97, 97, 97, 97, 97, 97, 97, - 97, 708, 97, 708, 708, 97, 708, 97, 708, 97, - 708, 97, 708, 97, 708, 97, 262, 263, 97, 97, + 669, 96, 96, 96, 96, 96, 96, 96, 96, 669, + 96, 96, 669, 669, 669, 669, 669, 96, 248, 96, + 96, 96, 96, 96, 669, 669, 96, 96, 669, 669, + 669, 96, 669, 96, 96, 96, 249, 96, 250, 669, + 669, 96, 96, 96, 96, 96, 96, 96, 96, 669, + 96, 669, 669, 96, 669, 96, 669, 96, 669, 96, + 669, 96, 669, 96, 251, 252, 96, 96, 669, 96, + 669, 96, 669, 96, 96, 96, 669, 96, 254, 253, + 669, 96, 96, 96, 96, 96, 669, 669, 669, 669, + 96, 669, 96, 669, 96, 96, 96, 669, 96, 669, - 708, 97, 708, 97, 708, 97, 97, 97, 708, 97, - 265, 264, 708, 97, 97, 97, 97, 97, 708, 708, - 708, 708, 97, 708, 97, 708, 97, 97, 97, 708, - 97, 708, 708, 266, 97, 97, 97, 97, 267, 97, - 708, 97, 708, 97, 268, 269, 97, 270, 97, 97, - 708, 708, 272, 708, 708, 271, 708, 708, 97, 97, - 97, 97, 97, 97, 97, 708, 708, 97, 97, 708, - 97, 708, 708, 708, 97, 708, 97, 273, 97, 708, - 97, 97, 97, 97, 97, 708, 708, 97, 708, 97, - 275, 97, 274, 97, 708, 97, 708, 97, 97, 97, + 669, 255, 96, 96, 96, 96, 256, 96, 669, 96, + 669, 96, 257, 258, 96, 259, 96, 96, 669, 669, + 261, 669, 669, 260, 669, 669, 96, 96, 96, 96, + 96, 96, 96, 669, 669, 96, 96, 669, 96, 669, + 669, 669, 96, 669, 96, 262, 96, 669, 96, 96, + 96, 96, 96, 669, 669, 96, 669, 96, 264, 96, + 263, 96, 669, 96, 669, 96, 96, 96, 96, 96, + 669, 669, 96, 669, 96, 267, 265, 669, 96, 266, + 96, 669, 96, 96, 96, 96, 96, 669, 669, 669, + 669, 96, 669, 96, 96, 96, 669, 96, 669, 669, - 97, 97, 708, 708, 97, 708, 97, 278, 276, 708, - 97, 277, 97, 708, 97, 97, 97, 97, 97, 708, - 708, 708, 708, 97, 708, 97, 97, 97, 708, 97, - 708, 708, 279, 708, 97, 708, 97, 280, 97, 97, - 97, 708, 708, 708, 708, 97, 708, 97, 708, 97, - 97, 97, 708, 97, 708, 708, 283, 97, 97, 284, - 285, 97, 97, 286, 97, 97, 97, 708, 97, 97, - 708, 97, 708, 708, 289, 287, 708, 97, 97, 97, - 97, 97, 97, 97, 97, 97, 288, 97, 290, 97, - 97, 708, 97, 708, 708, 97, 708, 708, 708, 97, + 268, 669, 96, 669, 96, 269, 96, 96, 96, 669, + 669, 669, 669, 96, 669, 96, 669, 96, 96, 96, + 669, 96, 669, 669, 272, 96, 96, 273, 274, 96, + 96, 275, 96, 96, 96, 669, 96, 96, 669, 96, + 669, 669, 278, 276, 669, 96, 96, 96, 96, 96, + 96, 96, 96, 96, 277, 96, 279, 96, 96, 669, + 96, 669, 669, 96, 669, 669, 669, 96, 669, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 280, + 669, 96, 96, 669, 283, 669, 669, 669, 281, 669, + 96, 96, 96, 96, 669, 96, 96, 96, 669, 284, - 708, 97, 97, 97, 97, 97, 97, 97, 97, 97, - 97, 291, 708, 97, 97, 708, 294, 708, 708, 708, - 292, 708, 97, 97, 97, 97, 708, 97, 97, 97, - 708, 295, 97, 708, 97, 708, 708, 708, 97, 708, - 97, 296, 97, 708, 97, 97, 97, 97, 97, 708, - 708, 708, 708, 97, 708, 97, 97, 97, 708, 97, - 708, 708, 97, 298, 97, 708, 97, 708, 97, 708, - 97, 708, 97, 97, 97, 97, 97, 708, 708, 299, - 708, 97, 708, 97, 97, 97, 708, 97, 708, 708, - 300, 708, 97, 708, 97, 97, 97, 708, 97, 708, + 96, 669, 96, 669, 669, 669, 96, 669, 96, 285, + 96, 669, 96, 96, 96, 96, 96, 669, 669, 669, + 669, 96, 669, 96, 96, 96, 669, 96, 669, 669, + 96, 287, 96, 669, 96, 669, 96, 669, 96, 669, + 96, 96, 96, 96, 96, 669, 669, 288, 669, 96, + 669, 96, 96, 96, 669, 96, 669, 669, 289, 669, + 96, 669, 96, 96, 96, 669, 96, 669, 293, 96, + 669, 96, 290, 292, 669, 96, 669, 96, 669, 96, + 96, 96, 96, 96, 669, 669, 96, 669, 96, 669, + 96, 669, 96, 669, 96, 669, 96, 669, 96, 294, - 304, 97, 708, 97, 301, 303, 708, 97, 708, 97, - 708, 97, 97, 97, 97, 97, 708, 708, 97, 708, - 97, 708, 97, 708, 97, 708, 97, 708, 97, 708, - 97, 305, 97, 97, 97, 708, 306, 97, 708, 708, - 708, 307, 708, 97, 97, 97, 97, 97, 97, 97, - 708, 708, 97, 97, 708, 708, 708, 708, 708, 97, - 97, 97, 708, 97, 708, 708, 97, 308, 97, 708, - 97, 708, 97, 708, 97, 708, 97, 309, 97, 97, - 97, 97, 708, 310, 311, 97, 708, 97, 708, 708, - 312, 97, 708, 97, 708, 97, 708, 97, 97, 97, + 96, 96, 96, 669, 295, 96, 669, 669, 669, 296, + 669, 96, 96, 96, 96, 96, 96, 96, 669, 669, + 96, 96, 669, 669, 669, 669, 669, 96, 96, 96, + 669, 96, 669, 669, 96, 297, 96, 669, 96, 669, + 96, 669, 96, 669, 96, 298, 96, 96, 96, 96, + 669, 299, 300, 96, 669, 96, 669, 669, 301, 96, + 669, 96, 669, 96, 669, 96, 96, 96, 96, 96, + 669, 669, 669, 669, 96, 669, 96, 96, 96, 303, + 96, 304, 307, 669, 669, 96, 305, 96, 96, 96, + 669, 96, 669, 669, 669, 306, 96, 669, 96, 96, - 97, 97, 708, 708, 708, 708, 97, 708, 97, 97, - 97, 314, 97, 315, 318, 708, 708, 97, 316, 97, - 97, 97, 708, 97, 708, 708, 708, 317, 97, 708, - 97, 97, 97, 708, 97, 708, 708, 322, 708, 97, - 708, 97, 708, 97, 708, 97, 248, 248, 248, 708, - 97, 708, 708, 708, 708, 97, 708, 708, 323, 323, - 323, 323, 323, 323, 323, 97, 97, 328, 708, 97, - 708, 708, 97, 329, 97, 708, 97, 708, 97, 708, - 97, 708, 97, 330, 97, 97, 97, 97, 97, 708, - 708, 97, 708, 708, 708, 708, 708, 97, 97, 331, + 96, 669, 96, 669, 669, 311, 669, 96, 669, 96, + 96, 96, 669, 96, 669, 669, 96, 669, 96, 669, + 96, 669, 313, 314, 96, 669, 96, 96, 96, 96, + 96, 669, 669, 96, 669, 96, 669, 96, 315, 96, + 669, 96, 669, 96, 96, 316, 96, 96, 669, 669, + 96, 669, 96, 318, 96, 669, 96, 669, 96, 669, + 96, 669, 96, 96, 96, 319, 96, 96, 320, 96, + 669, 669, 669, 669, 669, 669, 96, 96, 96, 96, + 96, 96, 96, 669, 669, 96, 96, 669, 317, 669, + 96, 669, 96, 669, 96, 669, 96, 669, 96, 321, - 97, 97, 97, 334, 97, 97, 97, 97, 333, 708, - 708, 708, 708, 708, 97, 97, 97, 97, 97, 97, - 97, 335, 708, 97, 97, 708, 97, 708, 708, 708, - 97, 708, 97, 332, 97, 708, 97, 97, 97, 97, - 97, 708, 708, 336, 708, 97, 708, 97, 97, 97, - 337, 97, 708, 708, 708, 708, 97, 708, 97, 708, - 97, 708, 97, 97, 338, 339, 97, 97, 708, 97, - 708, 708, 708, 97, 708, 97, 97, 97, 97, 97, - 97, 341, 340, 97, 97, 97, 342, 97, 97, 343, - 97, 708, 708, 344, 97, 708, 97, 97, 97, 97, + 96, 96, 96, 322, 96, 324, 96, 669, 96, 96, + 96, 669, 96, 669, 323, 669, 96, 96, 96, 96, + 96, 669, 96, 669, 669, 96, 669, 669, 669, 96, + 669, 96, 96, 96, 326, 96, 96, 327, 325, 669, + 669, 96, 669, 669, 669, 96, 96, 96, 328, 96, + 669, 669, 96, 669, 96, 329, 96, 669, 96, 669, + 96, 669, 96, 96, 96, 96, 96, 669, 669, 96, + 669, 96, 669, 96, 669, 96, 331, 330, 669, 96, + 96, 96, 96, 96, 669, 669, 669, 669, 96, 669, + 96, 96, 96, 669, 96, 669, 332, 669, 669, 96, - 97, 97, 97, 97, 97, 97, 97, 708, 708, 97, - 708, 97, 708, 708, 708, 97, 708, 97, 346, 345, - 708, 97, 97, 97, 97, 97, 708, 708, 708, 708, - 97, 708, 97, 97, 97, 708, 97, 708, 347, 708, - 708, 97, 708, 97, 708, 348, 708, 97, 97, 349, - 708, 350, 97, 708, 97, 708, 708, 708, 97, 708, - 97, 708, 97, 708, 97, 97, 97, 97, 97, 708, - 708, 97, 708, 97, 708, 97, 708, 97, 708, 97, - 708, 97, 708, 97, 97, 97, 97, 97, 708, 354, - 97, 708, 708, 355, 708, 708, 97, 97, 97, 97, + 669, 96, 669, 333, 669, 96, 96, 334, 669, 335, + 96, 669, 96, 669, 669, 669, 96, 669, 96, 669, + 96, 669, 96, 96, 96, 96, 96, 669, 669, 96, + 669, 96, 669, 96, 669, 96, 669, 96, 669, 96, + 669, 96, 96, 96, 96, 96, 669, 339, 96, 669, + 669, 340, 669, 669, 96, 96, 96, 96, 96, 96, + 96, 341, 669, 96, 96, 343, 96, 338, 669, 669, + 96, 669, 96, 669, 96, 347, 96, 669, 96, 342, + 96, 96, 344, 669, 96, 96, 345, 669, 669, 669, + 669, 96, 96, 96, 96, 96, 96, 346, 96, 669, - 97, 97, 97, 356, 708, 97, 97, 358, 97, 708, - 353, 708, 97, 708, 97, 708, 97, 362, 97, 708, - 97, 357, 97, 97, 359, 708, 97, 97, 360, 708, - 708, 708, 708, 97, 97, 97, 97, 97, 97, 361, - 97, 708, 97, 708, 97, 97, 97, 97, 97, 708, - 708, 363, 708, 97, 708, 97, 365, 97, 97, 97, - 708, 97, 708, 708, 708, 97, 97, 97, 97, 97, - 97, 97, 97, 708, 97, 708, 366, 97, 708, 97, - 370, 97, 369, 97, 367, 97, 708, 708, 708, 97, - 97, 97, 708, 97, 97, 97, 708, 371, 97, 708, + 96, 669, 96, 96, 96, 96, 96, 669, 669, 348, + 669, 96, 669, 96, 350, 96, 96, 96, 669, 96, + 669, 669, 669, 96, 96, 96, 96, 96, 96, 96, + 96, 669, 96, 669, 351, 96, 669, 96, 355, 96, + 354, 96, 352, 96, 669, 669, 669, 96, 96, 96, + 669, 96, 96, 96, 669, 356, 96, 669, 669, 669, + 669, 669, 96, 96, 96, 96, 96, 96, 357, 96, + 96, 96, 96, 669, 669, 669, 669, 669, 669, 96, + 96, 96, 96, 96, 96, 96, 669, 669, 96, 96, + 669, 669, 669, 669, 669, 96, 669, 96, 96, 96, - 708, 708, 708, 708, 97, 97, 97, 97, 97, 97, - 372, 97, 97, 97, 97, 708, 708, 708, 708, 708, - 708, 97, 97, 97, 97, 97, 97, 97, 708, 708, - 97, 97, 708, 708, 708, 708, 708, 97, 708, 97, - 97, 97, 708, 375, 708, 374, 97, 708, 97, 708, - 97, 97, 97, 708, 97, 708, 708, 708, 97, 97, - 97, 97, 97, 376, 708, 97, 97, 97, 377, 97, - 97, 708, 97, 708, 708, 379, 97, 708, 97, 97, - 97, 97, 97, 97, 97, 97, 97, 97, 97, 708, - 97, 97, 708, 97, 708, 708, 708, 97, 708, 97, + 669, 360, 669, 359, 96, 669, 96, 669, 96, 96, + 96, 669, 96, 669, 669, 669, 96, 96, 96, 96, + 96, 361, 669, 96, 96, 96, 362, 96, 96, 669, + 96, 669, 669, 364, 96, 669, 96, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 669, 96, 96, + 669, 96, 669, 669, 669, 96, 669, 96, 96, 96, + 96, 96, 96, 366, 96, 96, 96, 96, 363, 96, + 96, 669, 368, 669, 669, 669, 96, 96, 96, 96, + 96, 96, 669, 96, 669, 367, 669, 96, 96, 96, + 96, 96, 669, 669, 669, 669, 96, 669, 669, 669, - 97, 97, 97, 97, 97, 381, 97, 97, 97, 97, - 708, 378, 97, 708, 97, 708, 708, 383, 97, 708, - 97, 708, 97, 708, 97, 97, 97, 382, 97, 708, - 708, 97, 708, 97, 708, 97, 708, 97, 708, 97, - 708, 97, 708, 97, 97, 97, 97, 708, 385, 708, - 97, 708, 708, 708, 708, 708, 97, 708, 97, 708, - 97, 384, 708, 97, 708, 97, 323, 323, 323, 323, - 323, 323, 323, 97, 708, 97, 708, 97, 97, 395, - 708, 394, 97, 396, 97, 708, 708, 708, 97, 708, - 97, 708, 97, 708, 97, 97, 97, 97, 97, 708, + 96, 96, 96, 669, 96, 669, 669, 370, 669, 96, + 669, 96, 369, 96, 96, 96, 669, 96, 376, 669, + 96, 669, 669, 669, 96, 669, 96, 96, 96, 96, + 669, 96, 375, 96, 377, 96, 96, 669, 96, 669, + 379, 96, 669, 669, 669, 96, 669, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 669, 96, 96, 380, + 96, 96, 669, 669, 381, 669, 669, 669, 96, 96, + 96, 96, 96, 96, 669, 96, 669, 96, 669, 96, + 96, 96, 96, 96, 383, 96, 669, 669, 96, 669, + 669, 669, 96, 96, 382, 96, 96, 96, 669, 96, - 398, 97, 708, 97, 389, 97, 708, 97, 708, 97, - 708, 97, 708, 97, 97, 97, 97, 399, 708, 97, - 97, 708, 400, 708, 708, 708, 97, 97, 97, 97, - 97, 97, 708, 97, 708, 97, 708, 97, 97, 97, - 97, 97, 402, 97, 708, 708, 97, 708, 708, 708, - 97, 97, 401, 97, 97, 97, 708, 97, 403, 97, - 708, 97, 97, 97, 97, 97, 708, 708, 708, 708, - 97, 708, 97, 708, 404, 405, 97, 708, 97, 406, - 708, 708, 97, 97, 97, 97, 97, 407, 708, 708, - 708, 97, 708, 97, 708, 97, 408, 97, 708, 97, + 384, 96, 669, 96, 96, 96, 96, 96, 669, 669, + 669, 669, 96, 669, 96, 669, 385, 386, 96, 669, + 96, 387, 669, 669, 96, 96, 96, 96, 96, 388, + 669, 669, 669, 96, 669, 96, 669, 96, 389, 96, + 669, 96, 390, 96, 669, 96, 96, 96, 669, 96, + 669, 96, 669, 96, 96, 96, 669, 96, 669, 391, + 669, 96, 96, 96, 669, 96, 96, 393, 669, 392, + 96, 669, 96, 669, 669, 669, 96, 669, 96, 669, + 96, 669, 96, 96, 96, 96, 96, 669, 669, 96, + 394, 96, 669, 96, 669, 96, 669, 96, 669, 96, - 409, 97, 708, 97, 97, 97, 708, 97, 708, 97, - 708, 97, 97, 97, 708, 97, 708, 410, 708, 97, - 97, 97, 708, 97, 97, 412, 708, 411, 97, 708, - 97, 708, 708, 708, 97, 708, 97, 708, 97, 708, - 97, 97, 97, 97, 97, 708, 708, 97, 413, 97, - 708, 97, 708, 97, 708, 97, 708, 97, 414, 415, - 97, 97, 97, 97, 708, 708, 97, 708, 708, 708, - 419, 708, 97, 97, 97, 97, 97, 97, 708, 708, - 97, 97, 97, 97, 420, 708, 421, 708, 708, 708, - 97, 708, 97, 97, 97, 97, 708, 97, 422, 97, + 395, 396, 96, 96, 96, 96, 669, 669, 96, 669, + 669, 669, 400, 669, 96, 96, 96, 96, 96, 96, + 669, 669, 96, 96, 96, 96, 401, 669, 402, 669, + 669, 669, 96, 669, 96, 96, 96, 96, 669, 96, + 403, 96, 96, 96, 96, 404, 669, 669, 669, 669, + 669, 669, 96, 96, 405, 96, 96, 96, 96, 669, + 669, 96, 96, 669, 96, 669, 669, 407, 96, 669, + 96, 669, 96, 669, 96, 96, 96, 406, 96, 409, + 669, 669, 410, 96, 669, 96, 96, 96, 669, 96, + 669, 669, 408, 669, 96, 669, 96, 96, 96, 669, - 97, 97, 97, 423, 708, 708, 708, 708, 708, 708, - 97, 97, 424, 97, 97, 97, 97, 708, 708, 97, - 97, 708, 97, 708, 708, 426, 97, 708, 97, 708, - 97, 708, 97, 97, 97, 425, 97, 428, 708, 708, - 429, 97, 708, 97, 97, 97, 708, 97, 708, 708, - 427, 708, 97, 708, 97, 97, 97, 708, 97, 708, - 708, 97, 708, 97, 708, 97, 708, 97, 708, 97, - 708, 97, 97, 97, 97, 97, 708, 708, 97, 431, - 97, 708, 97, 708, 97, 708, 97, 708, 97, 97, - 432, 97, 97, 708, 708, 708, 708, 97, 708, 97, + 96, 669, 669, 96, 669, 96, 669, 96, 669, 96, + 669, 96, 669, 96, 96, 96, 96, 96, 669, 669, + 96, 412, 96, 669, 96, 669, 96, 669, 96, 669, + 96, 96, 413, 96, 96, 669, 669, 669, 669, 96, + 669, 96, 96, 96, 669, 96, 669, 415, 96, 416, + 96, 669, 96, 669, 96, 669, 96, 669, 96, 96, + 417, 96, 96, 669, 669, 669, 669, 96, 669, 96, + 669, 96, 96, 96, 669, 96, 669, 418, 96, 420, + 669, 669, 96, 96, 96, 96, 96, 421, 422, 96, + 669, 96, 669, 96, 96, 96, 96, 96, 669, 669, - 97, 97, 708, 97, 708, 434, 97, 435, 97, 708, - 97, 708, 97, 708, 97, 708, 97, 97, 436, 97, - 97, 708, 708, 708, 708, 97, 708, 97, 708, 97, - 97, 97, 708, 97, 708, 437, 97, 439, 708, 708, - 97, 97, 97, 97, 97, 440, 441, 97, 708, 97, - 708, 97, 97, 97, 97, 97, 708, 708, 708, 708, - 97, 708, 708, 708, 97, 97, 97, 708, 97, 708, - 708, 97, 444, 97, 708, 97, 442, 97, 708, 97, - 708, 97, 708, 97, 97, 97, 97, 97, 708, 446, - 97, 708, 708, 708, 708, 708, 97, 97, 97, 97, + 669, 669, 96, 669, 669, 669, 96, 96, 96, 669, + 96, 669, 669, 96, 425, 96, 669, 96, 423, 96, + 669, 96, 669, 96, 669, 96, 96, 96, 96, 96, + 669, 427, 96, 669, 669, 669, 669, 669, 96, 96, + 96, 96, 96, 96, 96, 428, 669, 96, 96, 669, + 96, 669, 669, 669, 96, 669, 96, 669, 96, 669, + 96, 669, 96, 96, 96, 435, 96, 669, 669, 96, + 669, 669, 96, 669, 669, 669, 96, 669, 96, 669, + 96, 669, 96, 96, 96, 96, 96, 669, 430, 96, + 436, 96, 669, 96, 669, 438, 669, 96, 669, 96, - 97, 97, 97, 447, 708, 97, 97, 708, 97, 708, - 708, 708, 97, 708, 97, 708, 97, 708, 97, 708, - 97, 97, 97, 457, 97, 708, 708, 97, 708, 708, - 97, 708, 708, 708, 97, 708, 97, 708, 97, 708, - 97, 97, 97, 97, 97, 708, 708, 449, 458, 97, - 708, 97, 97, 460, 708, 97, 708, 708, 708, 708, - 97, 708, 97, 97, 97, 708, 97, 708, 708, 97, - 461, 97, 462, 97, 708, 97, 708, 97, 708, 97, - 97, 97, 97, 97, 708, 708, 97, 463, 97, 708, - 97, 708, 97, 708, 97, 708, 97, 97, 464, 97, + 96, 96, 96, 96, 669, 669, 96, 439, 96, 440, + 96, 669, 96, 669, 96, 669, 96, 96, 96, 96, + 96, 669, 669, 96, 441, 96, 669, 96, 669, 96, + 669, 96, 669, 96, 96, 442, 96, 96, 669, 669, + 669, 669, 96, 669, 96, 96, 96, 444, 96, 669, + 669, 96, 443, 96, 669, 96, 669, 96, 669, 96, + 669, 96, 669, 96, 96, 96, 669, 669, 96, 445, + 96, 446, 669, 669, 96, 669, 447, 669, 96, 669, + 96, 669, 96, 669, 96, 96, 96, 96, 96, 669, + 449, 96, 669, 96, 669, 96, 669, 448, 669, 96, - 97, 708, 708, 708, 708, 97, 708, 97, 97, 97, - 466, 97, 708, 708, 97, 465, 97, 708, 97, 708, - 97, 708, 97, 708, 97, 708, 97, 97, 97, 708, - 708, 97, 467, 97, 468, 708, 708, 97, 708, 469, - 708, 97, 708, 97, 708, 97, 708, 97, 97, 97, - 97, 97, 708, 471, 97, 708, 97, 708, 97, 708, - 470, 708, 97, 708, 97, 97, 97, 97, 97, 708, - 708, 97, 708, 97, 708, 97, 708, 97, 472, 97, - 708, 97, 97, 97, 97, 97, 708, 708, 97, 708, - 97, 708, 97, 708, 97, 474, 97, 708, 97, 473, + 669, 96, 96, 96, 96, 96, 669, 669, 96, 669, + 96, 669, 96, 669, 96, 450, 96, 669, 96, 96, + 96, 96, 96, 669, 669, 96, 669, 96, 669, 96, + 669, 96, 452, 96, 669, 96, 451, 96, 96, 96, + 453, 96, 96, 669, 96, 669, 457, 669, 669, 669, + 669, 96, 96, 96, 96, 96, 96, 96, 669, 669, + 96, 96, 669, 96, 458, 459, 669, 96, 669, 96, + 669, 96, 669, 96, 96, 96, 96, 96, 669, 669, + 96, 669, 96, 461, 96, 669, 96, 669, 96, 669, + 96, 460, 96, 96, 96, 96, 462, 669, 669, 96, - 97, 97, 97, 475, 97, 97, 708, 97, 708, 479, - 708, 708, 708, 708, 97, 97, 97, 97, 97, 97, - 97, 708, 708, 97, 97, 708, 97, 480, 481, 708, - 97, 708, 97, 708, 97, 708, 97, 97, 97, 97, - 97, 708, 708, 97, 708, 97, 483, 97, 708, 97, - 708, 97, 708, 97, 482, 97, 97, 97, 97, 484, - 708, 708, 97, 708, 97, 485, 708, 708, 97, 708, - 97, 708, 97, 708, 97, 97, 97, 97, 97, 708, - 708, 708, 708, 97, 708, 97, 708, 97, 708, 97, - 97, 486, 708, 487, 97, 708, 97, 708, 708, 708, + 669, 96, 463, 669, 669, 96, 669, 96, 669, 96, + 669, 96, 96, 96, 96, 96, 669, 669, 669, 669, + 96, 669, 96, 669, 96, 669, 96, 96, 464, 669, + 465, 96, 669, 96, 669, 669, 669, 96, 669, 96, + 669, 96, 669, 96, 96, 96, 96, 96, 669, 669, + 466, 467, 96, 669, 96, 96, 96, 669, 96, 669, + 469, 96, 669, 96, 669, 96, 669, 96, 669, 96, + 669, 96, 96, 96, 96, 96, 669, 669, 96, 669, + 96, 669, 96, 669, 471, 669, 96, 669, 96, 96, + 472, 96, 96, 669, 669, 669, 669, 96, 669, 96, - 97, 708, 97, 708, 97, 708, 97, 97, 97, 97, - 97, 708, 708, 488, 489, 97, 708, 97, 97, 97, - 708, 97, 708, 491, 97, 708, 97, 708, 97, 708, - 97, 708, 97, 708, 97, 97, 97, 97, 97, 708, - 708, 97, 708, 97, 708, 97, 708, 493, 708, 97, - 708, 97, 97, 494, 97, 97, 708, 708, 708, 708, - 97, 708, 97, 708, 97, 97, 97, 708, 496, 708, - 495, 97, 708, 97, 708, 97, 708, 97, 708, 97, - 708, 708, 708, 97, 97, 97, 708, 97, 97, 499, - 708, 97, 97, 498, 97, 708, 708, 708, 97, 708, + 669, 96, 96, 96, 669, 474, 669, 473, 96, 669, + 96, 669, 96, 669, 96, 669, 96, 669, 669, 669, + 96, 96, 96, 669, 96, 96, 477, 669, 96, 96, + 476, 96, 669, 669, 669, 96, 669, 96, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 479, 96, + 96, 669, 96, 669, 669, 669, 96, 669, 96, 96, + 96, 96, 96, 96, 96, 96, 96, 96, 96, 481, + 669, 96, 669, 669, 669, 669, 669, 96, 669, 96, + 96, 96, 669, 96, 669, 488, 96, 489, 669, 669, + 96, 669, 96, 96, 96, 96, 669, 96, 96, 96, - 97, 97, 97, 97, 97, 97, 97, 97, 97, 97, - 97, 501, 97, 97, 708, 97, 708, 708, 708, 97, - 708, 97, 97, 97, 97, 97, 97, 97, 97, 97, - 97, 97, 503, 708, 97, 708, 708, 708, 708, 708, - 97, 708, 97, 97, 97, 708, 97, 708, 513, 97, - 514, 708, 708, 97, 708, 97, 97, 97, 97, 708, - 97, 97, 97, 708, 516, 97, 708, 97, 708, 708, - 708, 97, 708, 97, 708, 97, 708, 97, 97, 517, - 97, 97, 708, 708, 97, 708, 97, 708, 97, 708, - 518, 519, 97, 708, 97, 97, 97, 97, 97, 708, + 669, 491, 96, 669, 96, 669, 669, 669, 96, 669, + 96, 669, 96, 669, 96, 96, 492, 96, 96, 669, + 669, 96, 669, 96, 669, 96, 669, 493, 494, 96, + 669, 96, 96, 96, 96, 96, 669, 669, 96, 669, + 96, 669, 96, 669, 96, 669, 96, 669, 96, 96, + 96, 96, 96, 669, 669, 669, 495, 96, 669, 96, + 96, 96, 496, 96, 669, 669, 96, 669, 96, 669, + 96, 669, 96, 669, 96, 669, 96, 96, 96, 96, + 96, 669, 497, 96, 669, 96, 669, 96, 669, 96, + 669, 96, 669, 96, 96, 96, 96, 96, 669, 669, - 708, 97, 708, 97, 708, 97, 708, 97, 708, 97, - 708, 97, 97, 97, 97, 97, 708, 708, 708, 520, - 97, 708, 97, 97, 97, 521, 97, 708, 708, 97, - 708, 97, 708, 97, 708, 97, 708, 97, 708, 97, - 97, 97, 97, 97, 708, 522, 97, 708, 97, 708, - 97, 708, 97, 708, 97, 708, 97, 97, 97, 97, - 97, 708, 708, 708, 523, 97, 708, 97, 97, 97, - 708, 97, 708, 708, 525, 524, 97, 708, 97, 708, - 97, 708, 97, 708, 97, 97, 97, 97, 97, 708, - 708, 97, 708, 97, 708, 526, 708, 97, 531, 97, + 669, 498, 96, 669, 96, 96, 96, 669, 96, 669, + 669, 500, 499, 96, 669, 96, 669, 96, 669, 96, + 669, 96, 96, 96, 96, 96, 669, 669, 96, 669, + 96, 669, 501, 669, 96, 506, 96, 669, 96, 96, + 96, 96, 96, 669, 669, 669, 669, 96, 669, 96, + 96, 96, 669, 96, 669, 669, 96, 507, 96, 669, + 96, 669, 96, 669, 96, 669, 96, 96, 96, 96, + 96, 669, 669, 96, 669, 96, 509, 96, 669, 96, + 669, 96, 669, 96, 508, 96, 96, 96, 96, 96, + 669, 669, 96, 669, 669, 669, 669, 669, 96, 96, - 708, 97, 97, 97, 97, 97, 708, 708, 708, 708, - 97, 708, 97, 97, 97, 708, 97, 708, 708, 97, - 532, 97, 708, 97, 708, 97, 708, 97, 708, 97, - 97, 97, 97, 97, 708, 708, 97, 708, 97, 534, - 97, 708, 97, 708, 97, 708, 97, 533, 97, 97, - 97, 97, 97, 708, 708, 97, 708, 708, 708, 708, - 708, 97, 97, 97, 97, 97, 97, 97, 536, 535, - 97, 97, 708, 97, 708, 708, 708, 97, 708, 97, - 708, 97, 708, 97, 97, 97, 97, 97, 708, 708, - 97, 708, 97, 708, 97, 708, 538, 708, 97, 708, + 96, 96, 96, 96, 96, 511, 510, 96, 96, 669, + 96, 669, 669, 669, 96, 669, 96, 669, 96, 669, + 96, 96, 96, 96, 96, 669, 669, 96, 669, 96, + 669, 96, 669, 513, 669, 96, 669, 515, 96, 96, + 96, 96, 669, 669, 669, 669, 96, 669, 96, 96, + 96, 669, 96, 517, 512, 96, 669, 96, 669, 96, + 669, 96, 669, 96, 669, 96, 96, 96, 96, 96, + 669, 669, 96, 669, 96, 519, 96, 669, 96, 669, + 96, 669, 96, 669, 96, 96, 96, 96, 669, 669, + 520, 96, 669, 96, 669, 669, 522, 96, 669, 96, - 540, 97, 97, 97, 97, 708, 708, 708, 708, 97, - 708, 97, 97, 97, 708, 97, 542, 708, 537, 708, - 97, 708, 97, 97, 97, 708, 97, 708, 708, 97, - 708, 97, 708, 97, 708, 97, 708, 97, 708, 97, - 708, 97, 97, 97, 97, 708, 708, 544, 97, 708, - 97, 708, 708, 545, 97, 708, 97, 708, 97, 708, - 97, 708, 97, 97, 97, 97, 708, 708, 547, 97, - 549, 97, 708, 708, 708, 97, 708, 97, 708, 97, - 708, 97, 97, 97, 97, 97, 708, 708, 708, 558, - 97, 708, 97, 708, 97, 708, 97, 97, 559, 708, + 669, 96, 669, 96, 669, 96, 96, 96, 524, 96, + 96, 669, 96, 669, 669, 669, 669, 530, 669, 96, + 96, 96, 96, 96, 96, 96, 531, 669, 96, 96, + 669, 96, 669, 669, 669, 96, 669, 96, 669, 96, + 669, 96, 96, 96, 96, 96, 669, 533, 669, 669, + 96, 669, 96, 669, 96, 96, 96, 669, 535, 669, + 534, 96, 669, 96, 669, 96, 96, 96, 669, 96, + 669, 669, 538, 96, 96, 536, 96, 96, 96, 537, + 96, 96, 96, 669, 96, 96, 669, 96, 669, 669, + 669, 96, 669, 96, 96, 96, 96, 96, 96, 96, - 708, 97, 708, 97, 708, 708, 708, 97, 708, 97, - 708, 97, 708, 97, 97, 97, 97, 97, 708, 561, - 708, 708, 97, 708, 97, 708, 97, 97, 97, 708, - 563, 708, 562, 97, 708, 97, 708, 97, 97, 97, - 708, 97, 708, 708, 566, 97, 97, 564, 97, 97, - 97, 565, 97, 97, 97, 708, 97, 97, 708, 97, - 708, 708, 708, 97, 708, 97, 97, 97, 97, 97, - 97, 97, 97, 97, 97, 97, 708, 567, 97, 708, - 97, 708, 708, 708, 97, 708, 97, 568, 97, 708, - 97, 97, 97, 97, 97, 708, 708, 97, 708, 97, + 96, 96, 96, 96, 669, 539, 96, 669, 96, 669, + 669, 669, 96, 669, 96, 540, 96, 669, 96, 96, + 96, 96, 96, 669, 669, 96, 669, 96, 545, 96, + 669, 96, 669, 96, 669, 96, 96, 96, 96, 96, + 669, 669, 96, 669, 96, 669, 96, 669, 96, 669, + 96, 669, 96, 96, 96, 96, 96, 669, 669, 96, + 669, 96, 669, 96, 669, 96, 546, 96, 669, 96, + 96, 96, 96, 96, 669, 669, 669, 669, 96, 669, + 96, 96, 96, 669, 96, 549, 669, 96, 547, 96, + 669, 96, 669, 96, 554, 96, 669, 96, 96, 96, - 573, 97, 708, 97, 708, 97, 708, 97, 97, 97, - 97, 97, 708, 708, 97, 708, 97, 708, 97, 708, - 97, 708, 97, 708, 97, 97, 97, 97, 97, 708, - 708, 97, 708, 97, 708, 97, 708, 97, 574, 97, - 708, 97, 97, 97, 97, 97, 708, 708, 708, 708, - 97, 708, 97, 97, 97, 708, 97, 577, 708, 97, - 575, 97, 708, 97, 708, 97, 582, 97, 708, 97, - 97, 97, 97, 97, 708, 708, 708, 580, 97, 708, - 97, 97, 97, 708, 97, 708, 708, 97, 708, 97, - 708, 97, 708, 97, 708, 97, 708, 97, 97, 97, + 96, 96, 669, 669, 669, 552, 96, 669, 96, 96, + 96, 669, 96, 669, 669, 96, 669, 96, 669, 96, + 669, 96, 669, 96, 669, 96, 96, 96, 96, 96, + 669, 669, 96, 669, 96, 669, 96, 669, 556, 669, + 96, 669, 558, 96, 96, 96, 96, 669, 669, 96, + 669, 96, 669, 96, 669, 96, 564, 96, 669, 96, + 96, 96, 96, 96, 669, 669, 96, 669, 96, 669, + 96, 669, 96, 669, 96, 669, 96, 669, 96, 96, + 96, 96, 96, 565, 566, 96, 567, 669, 669, 669, + 669, 96, 96, 96, 96, 96, 96, 96, 96, 569, - 97, 97, 708, 708, 97, 708, 97, 708, 97, 708, - 584, 708, 97, 708, 586, 97, 97, 97, 97, 708, - 708, 97, 708, 97, 708, 97, 708, 97, 595, 97, - 708, 97, 97, 97, 97, 97, 708, 708, 97, 708, - 97, 708, 97, 708, 97, 708, 97, 708, 97, 708, - 97, 97, 97, 97, 97, 596, 597, 97, 598, 708, - 708, 708, 708, 97, 97, 97, 97, 97, 97, 97, - 97, 600, 97, 97, 708, 708, 708, 708, 708, 97, - 97, 599, 97, 97, 97, 97, 97, 601, 97, 97, - 708, 708, 708, 708, 708, 97, 602, 97, 97, 97, + 96, 96, 669, 669, 669, 669, 669, 96, 96, 568, + 96, 96, 96, 96, 96, 570, 96, 96, 669, 669, + 669, 669, 669, 96, 571, 96, 96, 96, 96, 96, + 669, 669, 96, 96, 669, 669, 669, 96, 669, 96, + 669, 96, 669, 96, 669, 575, 669, 96, 96, 96, + 576, 96, 96, 96, 669, 669, 96, 669, 669, 577, + 579, 669, 96, 96, 96, 96, 96, 96, 96, 669, + 669, 96, 96, 669, 669, 669, 96, 669, 96, 669, + 582, 669, 96, 669, 96, 669, 96, 96, 96, 584, + 96, 669, 669, 669, 96, 96, 96, 96, 96, 669, - 97, 97, 708, 708, 97, 97, 708, 708, 708, 97, - 708, 97, 708, 97, 708, 97, 708, 606, 708, 97, - 97, 97, 607, 97, 97, 97, 708, 708, 97, 708, - 708, 608, 610, 708, 97, 97, 97, 97, 97, 97, - 97, 708, 708, 97, 97, 708, 708, 708, 97, 708, - 97, 708, 613, 708, 97, 708, 97, 708, 97, 97, - 97, 615, 97, 708, 708, 708, 97, 97, 97, 97, - 97, 708, 708, 708, 616, 97, 708, 708, 708, 97, - 708, 97, 708, 97, 592, 592, 592, 708, 97, 708, - 708, 708, 708, 97, 97, 708, 623, 623, 623, 623, + 96, 669, 585, 96, 669, 669, 669, 96, 96, 96, + 96, 96, 592, 669, 96, 669, 96, 669, 96, 96, + 96, 96, 96, 669, 96, 669, 669, 96, 669, 669, + 669, 96, 96, 96, 96, 96, 96, 669, 96, 669, + 96, 669, 96, 96, 96, 96, 96, 669, 669, 593, + 669, 96, 669, 96, 669, 96, 669, 96, 594, 96, + 669, 96, 669, 96, 96, 96, 669, 96, 595, 96, + 669, 96, 96, 96, 669, 96, 669, 96, 669, 96, + 96, 96, 669, 96, 669, 96, 669, 96, 96, 599, + 669, 96, 669, 96, 669, 96, 96, 96, 600, 96, - 623, 623, 623, 97, 97, 626, 97, 97, 97, 97, - 97, 708, 97, 97, 708, 708, 708, 708, 708, 97, - 97, 97, 97, 97, 97, 97, 708, 708, 97, 97, - 708, 708, 708, 97, 708, 97, 708, 97, 708, 97, - 708, 97, 627, 97, 97, 97, 628, 97, 708, 97, - 708, 97, 97, 97, 708, 97, 629, 97, 708, 97, - 97, 97, 708, 97, 708, 97, 708, 97, 97, 97, - 708, 97, 708, 97, 708, 97, 97, 633, 708, 97, - 708, 97, 708, 97, 97, 97, 634, 97, 708, 97, - 708, 97, 97, 636, 708, 97, 639, 97, 708, 97, + 669, 96, 669, 96, 96, 602, 669, 96, 605, 96, + 669, 96, 96, 96, 669, 96, 607, 96, 669, 96, + 96, 96, 669, 96, 608, 96, 669, 96, 96, 96, + 669, 96, 669, 96, 669, 96, 96, 96, 669, 96, + 669, 96, 669, 96, 96, 96, 669, 96, 669, 96, + 669, 96, 96, 614, 669, 96, 669, 669, 669, 96, + 96, 96, 96, 96, 669, 669, 669, 615, 96, 669, + 96, 669, 96, 669, 96, 669, 96, 669, 96, 619, + 96, 96, 620, 669, 96, 622, 96, 669, 96, 96, + 96, 669, 96, 669, 669, 669, 96, 96, 96, 96, - 97, 97, 708, 97, 641, 97, 708, 97, 97, 97, - 708, 97, 642, 708, 708, 97, 97, 97, 708, 97, - 708, 708, 97, 97, 97, 623, 623, 623, 623, 623, - 623, 623, 97, 97, 97, 97, 97, 97, 97, 708, - 708, 97, 97, 708, 708, 708, 97, 708, 97, 708, - 651, 708, 97, 708, 708, 708, 97, 97, 97, 97, - 97, 708, 708, 648, 652, 97, 708, 97, 708, 97, - 708, 97, 708, 97, 708, 97, 656, 97, 97, 657, - 708, 97, 659, 97, 708, 97, 97, 97, 708, 97, - 708, 708, 708, 97, 97, 97, 97, 97, 664, 97, + 96, 627, 96, 669, 625, 96, 628, 669, 669, 96, + 96, 96, 96, 96, 96, 669, 96, 669, 96, 669, + 96, 96, 96, 96, 96, 669, 96, 669, 634, 96, + 669, 669, 669, 96, 669, 96, 96, 96, 96, 96, + 96, 669, 96, 669, 669, 96, 635, 96, 669, 96, + 96, 96, 669, 96, 669, 669, 669, 96, 96, 96, + 96, 96, 96, 669, 96, 639, 96, 96, 96, 96, + 669, 669, 669, 642, 669, 644, 669, 96, 96, 96, + 96, 96, 96, 96, 96, 669, 96, 96, 669, 669, + 669, 669, 669, 96, 96, 96, 96, 96, 96, 650, - 708, 662, 97, 665, 708, 708, 97, 708, 97, 97, - 97, 97, 708, 97, 708, 97, 708, 708, 97, 649, - 649, 649, 708, 708, 708, 708, 708, 708, 97, 97, - 708, 623, 623, 623, 623, 623, 623, 623, 97, 97, - 97, 97, 97, 97, 97, 97, 672, 97, 97, 708, - 708, 708, 673, 708, 97, 97, 97, 97, 97, 97, - 97, 97, 708, 97, 97, 708, 708, 708, 708, 708, - 97, 97, 97, 97, 97, 97, 97, 708, 677, 97, - 97, 708, 97, 708, 680, 708, 97, 708, 97, 682, - 97, 708, 97, 97, 97, 97, 97, 708, 708, 708, + 96, 96, 96, 96, 669, 669, 669, 669, 669, 669, + 96, 96, 96, 96, 96, 96, 669, 669, 96, 96, + 96, 655, 669, 652, 669, 669, 96, 669, 96, 669, + 96, 669, 96, 669, 96, 669, 96, 96, 96, 659, + 96, 669, 96, 669, 96, 96, 96, 669, 96, 669, + 96, 669, 96, 96, 96, 669, 96, 669, 663, 669, + 666, 96, 96, 96, 96, 669, 96, 669, 669, 96, + 669, 669, 669, 96, 669, 96, 96, 96, 96, 669, + 96, 669, 96, 669, 669, 96, 53, 53, 53, 53, + 53, 53, 53, 53, 53, 53, 53, 57, 57, 57, - 708, 97, 708, 97, 97, 97, 708, 97, 708, 689, - 97, 708, 97, 708, 97, 708, 97, 708, 97, 708, - 97, 708, 97, 97, 97, 97, 708, 708, 97, 97, - 708, 694, 708, 691, 708, 97, 708, 97, 97, 97, - 97, 708, 97, 708, 97, 708, 708, 97, 687, 687, - 687, 708, 708, 708, 708, 708, 708, 97, 708, 708, - 623, 623, 623, 623, 623, 623, 623, 97, 97, 97, - 698, 97, 708, 708, 97, 708, 97, 708, 97, 708, - 97, 708, 97, 708, 97, 97, 97, 97, 97, 708, - 702, 97, 708, 97, 708, 705, 708, 97, 708, 97, + 57, 57, 57, 57, 57, 57, 57, 57, 61, 61, + 61, 61, 61, 61, 61, 61, 61, 61, 61, 64, + 64, 64, 64, 64, 64, 64, 64, 64, 64, 64, + 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, + 73, 75, 75, 75, 75, 75, 75, 75, 75, 75, + 75, 75, 82, 82, 82, 669, 82, 82, 82, 82, + 82, 82, 82, 89, 89, 669, 669, 89, 669, 89, + 153, 153, 669, 153, 154, 154, 669, 154, 154, 154, + 669, 154, 154, 154, 154, 157, 157, 157, 669, 157, + 157, 157, 157, 157, 157, 157, 159, 159, 159, 159, - 708, 97, 97, 97, 97, 97, 708, 708, 708, 708, - 97, 708, 97, 708, 97, 708, 97, 708, 708, 708, - 708, 97, 54, 54, 54, 54, 54, 54, 54, 54, - 54, 54, 54, 54, 58, 58, 58, 58, 58, 58, - 58, 58, 58, 58, 58, 58, 62, 62, 62, 62, - 62, 62, 62, 62, 62, 62, 62, 62, 65, 65, - 65, 65, 65, 65, 65, 65, 65, 65, 65, 65, - 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, - 74, 74, 76, 76, 76, 76, 76, 76, 76, 76, - 76, 76, 76, 76, 83, 83, 83, 708, 83, 83, + 159, 159, 159, 159, 669, 159, 161, 669, 669, 161, + 161, 161, 161, 161, 161, 161, 162, 669, 669, 162, + 162, 162, 162, 162, 162, 162, 164, 669, 669, 164, + 669, 164, 164, 164, 164, 164, 168, 168, 669, 168, + 169, 169, 669, 169, 102, 102, 669, 102, 15, 669, + 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, + 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, + 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, + 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, + 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, - 83, 83, 83, 83, 83, 83, 90, 90, 708, 708, - 90, 708, 90, 156, 708, 156, 159, 159, 708, 159, - 159, 160, 160, 708, 160, 160, 160, 708, 160, 160, - 160, 160, 160, 163, 163, 163, 708, 163, 163, 163, - 163, 163, 163, 163, 163, 165, 165, 165, 165, 165, - 165, 165, 165, 708, 165, 165, 167, 708, 708, 167, - 167, 167, 167, 167, 167, 167, 167, 168, 708, 708, - 168, 168, 168, 168, 168, 168, 168, 168, 170, 708, - 708, 170, 708, 170, 170, 170, 170, 170, 170, 174, - 174, 708, 174, 174, 175, 175, 708, 175, 175, 103, - - 103, 708, 103, 103, 15, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708 + 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, + 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, + 669, 669, 669, 669, 669, 669 } ; -static yyconst short int yy_chk[4484] = +static yyconst short int yy_chk[4327] = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, @@ -1257,513 +1224,496 @@ static yyconst short int yy_chk[4484] = 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, - 4, 4, 5, 6, 7, 9, 3, 7, 4, 5, - 6, 8, 5, 6, 8, 10, 17, 17, 17, 18, + 1, 1, 1, 1, 1, 1, 1, 3, 3, 4, + 4, 5, 6, 7, 9, 3, 7, 4, 5, 6, + 8, 5, 6, 8, 10, 17, 17, 17, 18, 18, - 18, 18, 17, 9, 152, 18, 9, 26, 176, 26, - 13, 13, 13, 10, 176, 13, 10, 152, 22, 22, - 22, 14, 14, 14, 22, 24, 14, 157, 24, 157, - 22, 22, 24, 24, 24, 24, 24, 24, 28, 28, - 28, 28, 28, 28, 28, 34, 253, 253, 34, 77, - 77, 77, 78, 78, 78, 34, 87, 34, 9, 34, - 9, 82, 82, 82, 34, 158, 476, 158, 10, 704, - 10, 11, 11, 11, 11, 11, 11, 11, 11, 11, - 11, 11, 11, 11, 13, 476, 13, 87, 38, 79, - 325, 11, 11, 11, 11, 14, 325, 14, 38, 11, + 18, 17, 9, 665, 18, 9, 26, 661, 26, 13, + 13, 13, 10, 151, 13, 10, 86, 22, 22, 22, + 14, 14, 14, 22, 24, 14, 151, 24, 658, 22, + 22, 24, 24, 24, 24, 24, 24, 28, 28, 28, + 28, 28, 28, 28, 656, 34, 86, 454, 34, 76, + 76, 76, 77, 77, 77, 34, 9, 34, 9, 34, + 81, 81, 81, 654, 34, 454, 10, 653, 10, 11, + 11, 11, 11, 11, 11, 11, 11, 11, 11, 11, + 11, 11, 13, 651, 13, 163, 163, 649, 170, 11, + 11, 11, 11, 14, 170, 14, 163, 11, 32, 242, - 38, 32, 38, 79, 32, 324, 700, 38, 32, 324, - 250, 32, 32, 32, 32, 32, 41, 250, 697, 33, - 32, 11, 11, 11, 32, 33, 41, 327, 41, 33, - 41, 33, 33, 33, 79, 41, 695, 327, 33, 92, - 92, 92, 92, 92, 92, 92, 11, 11, 11, 12, - 12, 12, 12, 12, 12, 12, 12, 12, 12, 12, - 12, 12, 41, 393, 35, 171, 171, 171, 393, 12, - 12, 12, 12, 693, 35, 35, 35, 12, 35, 169, - 169, 326, 251, 35, 42, 42, 35, 326, 42, 251, - 169, 36, 36, 692, 42, 48, 42, 453, 42, 12, + 242, 32, 165, 165, 165, 32, 529, 647, 32, 32, + 32, 32, 32, 38, 312, 646, 33, 32, 643, 11, + 11, 32, 33, 38, 312, 38, 33, 38, 33, 33, + 33, 641, 38, 529, 637, 33, 91, 91, 91, 91, + 91, 91, 91, 11, 11, 11, 12, 12, 12, 12, + 12, 12, 12, 12, 12, 12, 12, 12, 12, 374, + 633, 35, 632, 78, 374, 631, 12, 12, 12, 12, + 630, 35, 35, 35, 12, 35, 629, 78, 36, 36, + 35, 487, 626, 35, 624, 623, 618, 617, 487, 36, + 616, 36, 613, 36, 37, 36, 12, 12, 36, 39, - 12, 12, 36, 42, 36, 48, 36, 48, 36, 48, - 453, 36, 390, 42, 48, 690, 512, 39, 39, 390, - 39, 391, 392, 512, 12, 12, 12, 21, 39, 39, - 39, 48, 39, 392, 454, 39, 391, 39, 454, 554, - 455, 21, 455, 554, 21, 21, 21, 21, 21, 21, + 39, 612, 39, 611, 37, 610, 37, 78, 37, 609, + 39, 39, 39, 37, 39, 606, 604, 39, 603, 39, + 12, 12, 12, 21, 601, 37, 88, 88, 88, 598, + 597, 596, 88, 591, 590, 589, 37, 21, 88, 88, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, - 557, 688, 21, 21, 21, 21, 21, 21, 21, 21, + 21, 21, 21, 21, 21, 21, 588, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, - 21, 21, 21, 21, 21, 31, 510, 557, 31, 31, + 21, 21, 21, 21, 21, 21, 21, 21, 21, 21, + 31, 586, 583, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 511, 685, 510, 511, 31, + 581, 580, 578, 574, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 622, 622, 684, 31, 31, + 573, 572, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, - 37, 647, 509, 647, 681, 40, 40, 555, 555, 555, - 37, 556, 37, 40, 37, 591, 40, 509, 40, 37, - 40, 679, 591, 675, 671, 40, 556, 43, 43, 593, - 43, 669, 37, 593, 668, 667, 44, 666, 43, 44, + 31, 31, 31, 31, 40, 40, 41, 563, 562, 561, + 560, 559, 40, 557, 553, 40, 41, 40, 41, 40, + 41, 551, 42, 42, 40, 41, 42, 43, 43, 550, + 43, 548, 42, 543, 42, 542, 42, 541, 43, 528, + 43, 42, 43, 44, 43, 527, 44, 43, 526, 45, - 43, 663, 43, 37, 43, 555, 44, 43, 44, 45, - 44, 661, 45, 660, 655, 44, 45, 654, 46, 45, - 653, 45, 650, 45, 46, 46, 646, 45, 45, 645, - 644, 43, 45, 47, 643, 46, 640, 46, 638, 46, - 637, 46, 635, 47, 46, 47, 49, 47, 46, 632, - 631, 47, 47, 49, 630, 625, 49, 46, 49, 621, - 49, 624, 624, 624, 620, 49, 50, 50, 50, 50, - 50, 50, 50, 47, 89, 89, 89, 50, 619, 617, - 89, 97, 614, 612, 611, 609, 89, 89, 605, 604, - 603, 97, 50, 97, 594, 97, 590, 50, 74, 624, + 42, 41, 45, 44, 525, 44, 45, 44, 46, 45, + 523, 45, 44, 45, 46, 46, 521, 45, 45, 518, + 43, 516, 45, 47, 514, 46, 512, 46, 505, 46, + 504, 46, 503, 47, 46, 47, 502, 47, 46, 48, + 49, 47, 47, 490, 486, 485, 46, 49, 484, 48, + 49, 48, 49, 48, 49, 483, 480, 478, 48, 49, + 475, 470, 47, 94, 94, 94, 94, 94, 94, 94, + 468, 456, 455, 437, 48, 73, 434, 433, 432, 73, + 73, 73, 73, 73, 73, 73, 73, 73, 431, 96, + 97, 430, 429, 426, 424, 73, 73, 73, 73, 96, - 97, 589, 74, 74, 74, 74, 74, 74, 74, 74, - 74, 95, 95, 95, 95, 95, 95, 95, 74, 74, - 74, 74, 98, 99, 178, 178, 178, 178, 178, 178, - 178, 588, 98, 99, 98, 99, 98, 99, 587, 98, - 585, 98, 99, 100, 101, 581, 579, 578, 74, 74, - 74, 576, 571, 100, 101, 100, 101, 100, 101, 102, - 570, 569, 100, 101, 553, 552, 100, 551, 550, 102, - 548, 102, 546, 102, 74, 75, 543, 102, 102, 75, - 75, 75, 75, 75, 75, 75, 75, 75, 541, 104, - 539, 537, 105, 530, 104, 75, 75, 75, 75, 104, + 97, 96, 97, 96, 97, 98, 419, 97, 96, 97, + 414, 411, 399, 398, 397, 98, 378, 98, 99, 98, + 373, 100, 372, 371, 98, 73, 73, 369, 99, 365, + 99, 100, 99, 100, 101, 100, 363, 99, 358, 353, + 100, 99, 349, 338, 101, 337, 101, 336, 101, 317, + 73, 74, 101, 101, 310, 74, 74, 74, 74, 74, + 74, 74, 74, 74, 309, 103, 308, 302, 104, 291, + 103, 74, 74, 74, 74, 103, 286, 103, 104, 103, + 104, 105, 104, 282, 103, 271, 104, 104, 74, 270, + 244, 105, 243, 105, 106, 105, 239, 238, 237, 233, - 529, 104, 105, 104, 105, 106, 105, 528, 104, 527, - 105, 105, 75, 515, 508, 106, 507, 106, 107, 106, - 506, 505, 502, 500, 106, 75, 75, 75, 107, 108, - 107, 107, 107, 670, 670, 670, 497, 107, 492, 108, - 490, 108, 478, 108, 109, 109, 477, 459, 108, 456, - 452, 75, 110, 110, 451, 109, 450, 109, 109, 109, - 449, 448, 445, 110, 109, 110, 111, 110, 443, 112, - 438, 670, 110, 112, 433, 430, 111, 111, 111, 112, - 111, 112, 113, 112, 418, 111, 417, 416, 112, 397, - 388, 387, 113, 386, 113, 384, 113, 114, 114, 114, + 105, 74, 74, 221, 106, 107, 106, 106, 106, 215, + 211, 200, 199, 106, 171, 107, 167, 107, 162, 107, + 108, 108, 160, 150, 107, 147, 74, 137, 109, 109, + 132, 108, 127, 108, 108, 108, 118, 117, 95, 109, + 108, 109, 110, 109, 92, 111, 89, 84, 109, 111, + 83, 80, 110, 110, 110, 111, 110, 111, 112, 111, + 66, 110, 63, 60, 111, 59, 56, 52, 112, 50, + 112, 29, 112, 113, 113, 113, 115, 112, 25, 114, + 114, 20, 19, 113, 16, 113, 115, 113, 115, 114, + 115, 114, 113, 114, 116, 115, 15, 114, 114, 0, - 116, 113, 380, 115, 115, 378, 373, 114, 368, 114, - 116, 114, 116, 115, 116, 115, 114, 115, 117, 116, - 364, 115, 115, 353, 352, 120, 351, 332, 117, 321, - 117, 117, 117, 120, 320, 319, 121, 117, 313, 121, - 302, 297, 293, 120, 122, 120, 121, 120, 121, 282, - 121, 281, 120, 255, 122, 121, 122, 254, 122, 123, - 123, 249, 245, 122, 244, 243, 239, 227, 221, 123, - 124, 123, 217, 123, 206, 205, 123, 123, 123, 177, - 124, 125, 124, 124, 124, 173, 168, 126, 166, 124, - 156, 125, 151, 125, 148, 125, 138, 126, 127, 126, + 0, 119, 0, 0, 116, 0, 116, 116, 116, 119, + 0, 0, 120, 116, 0, 120, 0, 0, 0, 119, + 121, 119, 120, 119, 120, 0, 120, 0, 119, 0, + 121, 120, 121, 0, 121, 122, 122, 0, 0, 121, + 0, 0, 0, 0, 0, 122, 123, 122, 0, 122, + 0, 0, 122, 122, 122, 0, 123, 124, 123, 123, + 123, 0, 0, 125, 0, 123, 0, 124, 0, 124, + 0, 124, 0, 125, 126, 125, 124, 125, 0, 124, + 0, 0, 125, 0, 126, 0, 126, 128, 126, 0, + 129, 0, 0, 126, 0, 128, 0, 128, 0, 128, - 125, 126, 133, 125, 128, 119, 126, 118, 127, 96, - 127, 129, 127, 93, 130, 90, 85, 127, 84, 129, - 81, 129, 67, 129, 130, 129, 130, 131, 130, 64, - 129, 61, 130, 130, 60, 132, 57, 131, 134, 131, - 53, 131, 51, 29, 25, 132, 131, 132, 134, 132, - 134, 135, 134, 132, 132, 20, 134, 134, 19, 16, - 15, 135, 136, 135, 0, 135, 0, 0, 0, 0, - 135, 135, 136, 0, 136, 137, 136, 0, 137, 0, - 0, 136, 137, 0, 0, 137, 0, 137, 0, 137, - 139, 139, 0, 0, 137, 0, 0, 140, 0, 0, + 129, 128, 129, 130, 129, 0, 128, 0, 129, 129, + 0, 131, 0, 130, 133, 130, 0, 130, 0, 0, + 0, 131, 130, 131, 133, 131, 133, 134, 133, 131, + 131, 0, 133, 133, 0, 0, 0, 134, 135, 134, + 0, 134, 0, 0, 0, 0, 134, 134, 135, 0, + 135, 136, 135, 0, 136, 0, 0, 135, 136, 0, + 0, 136, 0, 136, 0, 136, 138, 138, 0, 0, + 136, 0, 0, 139, 0, 0, 0, 138, 0, 138, + 0, 138, 0, 139, 140, 139, 138, 139, 139, 0, + 141, 139, 139, 0, 140, 0, 140, 0, 140, 0, - 0, 139, 0, 139, 0, 139, 0, 140, 141, 140, - 139, 140, 140, 0, 142, 140, 140, 0, 141, 0, - 141, 0, 141, 0, 142, 143, 142, 141, 142, 144, - 142, 0, 141, 142, 0, 143, 0, 143, 0, 143, - 144, 145, 0, 0, 143, 0, 145, 0, 0, 0, - 144, 145, 144, 145, 144, 145, 146, 147, 0, 144, - 145, 0, 0, 0, 0, 0, 146, 147, 146, 147, - 146, 147, 149, 150, 150, 146, 147, 150, 0, 149, - 0, 0, 149, 150, 149, 150, 149, 150, 153, 0, - 0, 149, 150, 0, 0, 0, 0, 0, 153, 0, + 141, 142, 141, 140, 141, 143, 141, 0, 140, 141, + 0, 142, 0, 142, 0, 142, 143, 144, 0, 0, + 142, 0, 144, 0, 0, 0, 143, 144, 143, 144, + 143, 144, 145, 146, 0, 143, 144, 0, 0, 0, + 0, 0, 145, 146, 145, 146, 145, 146, 148, 149, + 149, 145, 146, 149, 0, 148, 0, 0, 148, 149, + 148, 149, 148, 149, 152, 0, 0, 148, 149, 0, + 0, 0, 0, 0, 152, 0, 152, 0, 152, 0, + 0, 0, 152, 152, 172, 172, 172, 172, 172, 172, + 172, 175, 176, 0, 175, 0, 0, 0, 0, 0, - 153, 0, 153, 155, 155, 155, 153, 153, 154, 154, - 154, 154, 154, 154, 154, 155, 155, 155, 155, 155, - 155, 155, 0, 181, 182, 0, 181, 0, 0, 0, - 0, 0, 0, 181, 182, 181, 182, 181, 182, 183, - 184, 155, 181, 182, 0, 0, 154, 0, 0, 183, - 184, 183, 184, 183, 184, 185, 0, 0, 183, 184, - 0, 0, 0, 186, 0, 185, 187, 185, 185, 185, - 186, 0, 0, 186, 185, 186, 187, 186, 187, 188, - 187, 0, 186, 0, 0, 187, 0, 189, 0, 188, - 0, 188, 0, 188, 0, 190, 188, 189, 188, 189, + 0, 175, 176, 175, 176, 175, 176, 177, 178, 0, + 175, 176, 0, 0, 0, 0, 0, 177, 178, 177, + 178, 177, 178, 179, 0, 0, 177, 178, 0, 0, + 0, 180, 0, 179, 181, 179, 179, 179, 180, 0, + 0, 180, 179, 180, 181, 180, 181, 182, 181, 0, + 180, 0, 0, 181, 0, 183, 0, 182, 0, 182, + 0, 182, 0, 184, 182, 183, 182, 183, 0, 183, + 0, 185, 0, 184, 183, 184, 0, 184, 185, 184, + 0, 185, 184, 185, 186, 185, 0, 0, 0, 0, + 185, 0, 187, 0, 186, 188, 186, 0, 186, 0, - 0, 189, 0, 191, 0, 190, 189, 190, 0, 190, - 191, 190, 0, 191, 190, 191, 192, 191, 0, 0, - 0, 0, 191, 0, 193, 0, 192, 194, 192, 0, - 192, 0, 0, 192, 193, 192, 193, 194, 193, 194, - 0, 194, 0, 193, 194, 194, 194, 195, 195, 196, - 0, 0, 196, 0, 0, 195, 0, 0, 195, 196, - 195, 196, 195, 196, 197, 0, 0, 195, 196, 0, - 198, 0, 0, 0, 197, 0, 197, 197, 197, 0, - 198, 199, 198, 197, 198, 0, 0, 200, 0, 198, - 200, 199, 199, 199, 0, 199, 0, 200, 201, 200, + 0, 186, 187, 186, 187, 188, 187, 188, 0, 188, + 0, 187, 188, 188, 188, 189, 189, 190, 0, 0, + 190, 0, 0, 189, 0, 0, 189, 190, 189, 190, + 189, 190, 191, 0, 0, 189, 190, 0, 192, 0, + 0, 0, 191, 0, 191, 191, 191, 0, 192, 193, + 192, 191, 192, 0, 0, 194, 0, 192, 194, 193, + 193, 193, 0, 193, 0, 194, 195, 194, 193, 194, + 0, 0, 196, 0, 194, 196, 195, 0, 195, 195, + 195, 0, 196, 197, 196, 195, 196, 0, 0, 0, + 0, 196, 0, 197, 198, 197, 0, 197, 0, 0, - 199, 200, 0, 0, 202, 0, 200, 202, 201, 0, - 201, 201, 201, 0, 202, 203, 202, 201, 202, 0, - 0, 0, 0, 202, 0, 203, 204, 203, 0, 203, - 0, 0, 203, 0, 203, 0, 204, 204, 204, 207, - 204, 0, 0, 0, 0, 204, 0, 208, 0, 207, - 209, 207, 0, 207, 0, 0, 207, 208, 207, 208, - 209, 208, 209, 209, 209, 210, 208, 0, 211, 209, - 0, 212, 0, 0, 212, 210, 0, 210, 211, 210, - 211, 212, 211, 212, 210, 212, 211, 211, 213, 214, - 212, 0, 215, 0, 0, 213, 0, 0, 0, 214, + 197, 0, 197, 0, 198, 198, 198, 201, 198, 0, + 0, 0, 0, 198, 0, 202, 0, 201, 203, 201, + 0, 201, 0, 0, 201, 202, 201, 202, 203, 202, + 203, 203, 203, 204, 202, 0, 205, 203, 0, 206, + 0, 0, 206, 204, 0, 204, 205, 204, 205, 206, + 205, 206, 204, 206, 205, 205, 207, 208, 206, 0, + 209, 0, 0, 207, 0, 0, 0, 208, 0, 208, + 209, 208, 209, 207, 209, 207, 208, 207, 210, 209, + 0, 212, 207, 0, 212, 0, 0, 0, 210, 0, + 210, 212, 210, 212, 0, 212, 213, 210, 0, 213, - 0, 214, 215, 214, 215, 213, 215, 213, 214, 213, - 216, 215, 0, 218, 213, 0, 218, 0, 0, 0, - 216, 0, 216, 218, 216, 218, 0, 218, 219, 216, - 0, 219, 218, 0, 220, 0, 0, 0, 219, 0, - 219, 220, 219, 0, 220, 222, 220, 219, 220, 0, - 0, 0, 0, 220, 0, 222, 223, 222, 0, 222, - 0, 0, 224, 222, 222, 0, 223, 0, 223, 0, - 223, 0, 224, 225, 224, 223, 224, 0, 0, 224, - 0, 224, 0, 225, 226, 225, 0, 225, 0, 0, - 225, 0, 225, 0, 226, 228, 226, 0, 226, 0, + 212, 0, 214, 0, 0, 0, 213, 0, 213, 214, + 213, 0, 214, 216, 214, 213, 214, 0, 0, 0, + 0, 214, 0, 216, 217, 216, 0, 216, 0, 0, + 218, 216, 216, 0, 217, 0, 217, 0, 217, 0, + 218, 219, 218, 217, 218, 0, 0, 218, 0, 218, + 0, 219, 220, 219, 0, 219, 0, 0, 219, 0, + 219, 0, 220, 222, 220, 0, 220, 0, 223, 223, + 0, 220, 220, 222, 0, 222, 0, 222, 0, 223, + 224, 223, 222, 223, 0, 0, 225, 0, 223, 0, + 224, 0, 224, 0, 224, 0, 225, 0, 225, 224, - 229, 229, 0, 226, 226, 228, 0, 228, 0, 228, - 0, 229, 230, 229, 228, 229, 0, 0, 231, 0, - 229, 0, 230, 0, 230, 0, 230, 0, 231, 0, - 231, 230, 231, 232, 233, 0, 232, 231, 0, 0, - 0, 233, 0, 232, 233, 232, 233, 232, 233, 234, - 0, 0, 232, 233, 0, 0, 0, 0, 0, 234, - 235, 234, 0, 234, 0, 0, 236, 234, 234, 0, - 235, 0, 235, 0, 235, 0, 236, 235, 236, 235, - 236, 237, 0, 236, 237, 236, 0, 238, 0, 0, - 238, 237, 0, 237, 0, 237, 0, 238, 240, 238, + 225, 226, 227, 0, 226, 225, 0, 0, 0, 227, + 0, 226, 227, 226, 227, 226, 227, 228, 0, 0, + 226, 227, 0, 0, 0, 0, 0, 228, 229, 228, + 0, 228, 0, 0, 230, 228, 228, 0, 229, 0, + 229, 0, 229, 0, 230, 229, 230, 229, 230, 231, + 0, 230, 231, 230, 0, 232, 0, 0, 232, 231, + 0, 231, 0, 231, 0, 232, 234, 232, 231, 232, + 0, 0, 0, 0, 232, 0, 234, 235, 234, 234, + 234, 234, 236, 0, 0, 234, 234, 235, 236, 235, + 0, 235, 0, 0, 0, 235, 235, 0, 236, 240, - 237, 238, 0, 0, 0, 0, 238, 0, 240, 241, - 240, 240, 240, 240, 242, 0, 0, 240, 240, 241, - 242, 241, 0, 241, 0, 0, 0, 241, 241, 0, - 242, 246, 242, 0, 242, 0, 0, 246, 0, 242, - 0, 246, 0, 246, 0, 246, 248, 248, 248, 0, - 246, 0, 0, 0, 0, 258, 0, 0, 248, 248, - 248, 248, 248, 248, 248, 258, 259, 258, 0, 258, - 0, 0, 260, 259, 258, 0, 259, 0, 259, 0, - 259, 0, 260, 260, 260, 259, 260, 261, 262, 0, - 0, 260, 0, 0, 0, 0, 0, 261, 262, 261, + 236, 0, 236, 0, 0, 240, 0, 236, 0, 240, + 247, 240, 0, 240, 0, 0, 248, 0, 240, 0, + 247, 0, 247, 248, 247, 0, 248, 249, 248, 247, + 248, 0, 0, 250, 0, 248, 0, 249, 249, 249, + 0, 249, 0, 250, 251, 250, 249, 250, 0, 0, + 252, 0, 250, 252, 251, 0, 251, 0, 251, 0, + 252, 0, 252, 251, 252, 253, 253, 254, 254, 252, + 0, 0, 0, 0, 0, 0, 253, 254, 253, 254, + 253, 254, 255, 0, 0, 253, 254, 0, 251, 0, + 256, 0, 255, 0, 255, 0, 255, 0, 257, 255, - 262, 261, 262, 264, 264, 263, 261, 262, 263, 0, - 0, 0, 0, 0, 264, 263, 264, 263, 264, 263, - 265, 265, 0, 264, 263, 0, 266, 0, 0, 0, - 265, 0, 265, 262, 265, 0, 266, 267, 266, 265, - 266, 0, 0, 266, 0, 266, 0, 267, 268, 267, - 267, 267, 0, 0, 0, 0, 267, 0, 268, 0, - 268, 0, 268, 270, 268, 269, 269, 268, 0, 271, - 0, 0, 0, 270, 0, 270, 269, 270, 269, 271, - 269, 271, 270, 271, 272, 269, 272, 273, 271, 273, - 274, 0, 0, 274, 272, 0, 272, 273, 272, 273, + 256, 255, 256, 256, 256, 258, 258, 0, 257, 256, + 257, 0, 257, 0, 257, 0, 258, 257, 258, 259, + 258, 0, 260, 0, 0, 258, 0, 0, 0, 259, + 0, 259, 260, 259, 260, 261, 260, 261, 259, 0, + 0, 260, 0, 0, 0, 261, 262, 261, 262, 261, + 0, 0, 263, 0, 261, 263, 262, 0, 262, 0, + 262, 0, 263, 264, 263, 262, 263, 0, 0, 265, + 0, 263, 0, 264, 0, 264, 265, 264, 0, 265, + 266, 265, 264, 265, 0, 0, 0, 0, 265, 0, + 266, 267, 266, 0, 266, 0, 266, 0, 0, 266, - 274, 273, 274, 272, 274, 275, 273, 0, 0, 274, - 0, 276, 0, 0, 0, 275, 0, 275, 276, 275, - 0, 276, 277, 276, 275, 276, 0, 0, 0, 0, - 276, 0, 277, 278, 277, 0, 277, 0, 277, 0, - 0, 277, 0, 278, 0, 278, 0, 278, 279, 278, - 0, 279, 278, 0, 280, 0, 0, 0, 279, 0, - 279, 0, 279, 0, 280, 283, 280, 279, 280, 0, - 0, 284, 0, 280, 0, 283, 0, 283, 0, 283, - 0, 284, 0, 284, 283, 284, 285, 286, 0, 284, - 284, 0, 0, 285, 0, 0, 285, 286, 285, 286, + 0, 267, 0, 267, 0, 267, 268, 267, 0, 268, + 267, 0, 269, 0, 0, 0, 268, 0, 268, 0, + 268, 0, 269, 272, 269, 268, 269, 0, 0, 273, + 0, 269, 0, 272, 0, 272, 0, 272, 0, 273, + 0, 273, 272, 273, 274, 275, 0, 273, 273, 0, + 0, 274, 0, 0, 274, 275, 274, 275, 274, 275, + 276, 275, 0, 274, 275, 277, 277, 272, 0, 0, + 276, 0, 276, 0, 276, 279, 277, 0, 277, 276, + 277, 278, 277, 0, 279, 277, 278, 0, 0, 0, + 0, 278, 280, 278, 279, 278, 279, 278, 279, 0, - 285, 286, 287, 286, 0, 285, 286, 288, 288, 0, - 283, 0, 287, 0, 287, 0, 287, 290, 288, 0, - 288, 287, 288, 289, 288, 0, 290, 288, 289, 0, - 0, 0, 0, 289, 291, 289, 290, 289, 290, 289, - 290, 0, 289, 0, 291, 290, 291, 292, 291, 0, - 0, 291, 0, 291, 0, 294, 294, 292, 295, 292, - 0, 292, 0, 0, 0, 294, 292, 294, 295, 294, - 295, 296, 295, 0, 294, 0, 295, 295, 0, 298, - 299, 296, 298, 296, 296, 296, 0, 0, 0, 298, - 296, 298, 0, 298, 300, 299, 0, 300, 298, 0, + 278, 0, 280, 279, 280, 281, 280, 0, 0, 280, + 0, 280, 0, 283, 283, 281, 284, 281, 0, 281, + 0, 0, 0, 283, 281, 283, 284, 283, 284, 285, + 284, 0, 283, 0, 284, 284, 0, 287, 288, 285, + 287, 285, 285, 285, 0, 0, 0, 287, 285, 287, + 0, 287, 289, 288, 0, 289, 287, 0, 0, 0, + 0, 0, 289, 288, 289, 288, 289, 288, 290, 290, + 292, 289, 288, 0, 0, 0, 0, 0, 0, 290, + 292, 290, 292, 290, 292, 293, 0, 0, 290, 292, + 0, 0, 0, 0, 0, 293, 0, 293, 294, 293, - 0, 0, 0, 0, 300, 299, 300, 299, 300, 299, - 301, 301, 303, 300, 299, 0, 0, 0, 0, 0, - 0, 301, 303, 301, 303, 301, 303, 304, 0, 0, - 301, 303, 0, 0, 0, 0, 0, 304, 0, 304, - 305, 304, 0, 305, 0, 304, 304, 0, 306, 0, - 305, 307, 305, 0, 305, 0, 0, 0, 306, 305, - 306, 307, 306, 307, 0, 307, 309, 306, 308, 308, - 307, 0, 310, 0, 0, 312, 309, 0, 309, 308, - 309, 308, 310, 308, 310, 309, 310, 311, 308, 0, - 312, 310, 0, 314, 0, 0, 0, 311, 0, 311, + 0, 294, 0, 293, 293, 0, 295, 0, 294, 296, + 294, 0, 294, 0, 0, 0, 295, 294, 295, 296, + 295, 296, 0, 296, 298, 295, 297, 297, 296, 0, + 299, 0, 0, 301, 298, 0, 298, 297, 298, 297, + 299, 297, 299, 298, 299, 300, 297, 0, 301, 299, + 0, 303, 0, 0, 0, 300, 0, 300, 301, 300, + 301, 303, 301, 303, 300, 303, 304, 301, 298, 305, + 303, 0, 305, 0, 0, 0, 304, 306, 304, 305, + 304, 305, 0, 305, 0, 304, 0, 306, 305, 306, + 307, 306, 0, 0, 0, 0, 306, 0, 0, 0, - 312, 311, 312, 314, 312, 314, 311, 314, 315, 312, - 0, 309, 314, 0, 316, 0, 0, 316, 315, 0, - 315, 0, 315, 0, 316, 317, 316, 315, 316, 0, - 0, 318, 0, 316, 0, 317, 0, 317, 0, 317, - 0, 318, 0, 318, 317, 318, 322, 0, 318, 0, - 318, 0, 0, 0, 0, 0, 322, 0, 322, 0, - 322, 317, 0, 328, 0, 322, 323, 323, 323, 323, - 323, 323, 323, 328, 0, 328, 0, 328, 329, 329, - 0, 328, 328, 330, 330, 0, 0, 0, 329, 0, - 329, 0, 329, 0, 330, 331, 330, 329, 330, 0, + 307, 311, 307, 0, 307, 0, 0, 307, 0, 307, + 0, 311, 306, 311, 313, 311, 0, 314, 314, 0, + 311, 0, 0, 0, 313, 0, 313, 314, 313, 314, + 0, 314, 313, 313, 315, 315, 314, 0, 316, 0, + 318, 318, 0, 0, 0, 315, 0, 315, 316, 315, + 316, 318, 316, 318, 315, 318, 0, 316, 319, 319, + 318, 320, 0, 0, 320, 0, 0, 0, 319, 321, + 319, 320, 319, 320, 0, 320, 0, 319, 0, 321, + 320, 321, 322, 321, 323, 323, 0, 0, 321, 0, + 0, 0, 322, 324, 322, 323, 322, 323, 0, 323, - 333, 333, 0, 330, 323, 331, 0, 331, 0, 331, - 0, 333, 0, 333, 331, 333, 334, 334, 0, 335, - 333, 0, 335, 0, 0, 0, 334, 336, 334, 335, - 334, 335, 0, 335, 0, 334, 0, 336, 335, 336, - 337, 336, 338, 338, 0, 0, 336, 0, 0, 0, - 337, 339, 337, 338, 337, 338, 0, 338, 339, 337, - 0, 339, 338, 339, 340, 339, 0, 0, 0, 0, - 339, 0, 341, 0, 340, 341, 340, 0, 340, 341, - 0, 0, 341, 340, 341, 342, 341, 342, 0, 0, - 0, 341, 0, 343, 0, 342, 343, 342, 0, 342, + 324, 322, 0, 324, 323, 324, 325, 324, 0, 0, + 0, 0, 324, 0, 326, 0, 325, 326, 325, 0, + 325, 326, 0, 0, 326, 325, 326, 327, 326, 327, + 0, 0, 0, 326, 0, 328, 0, 327, 328, 327, + 0, 327, 328, 329, 0, 328, 327, 328, 0, 328, + 0, 330, 0, 329, 328, 329, 0, 329, 0, 329, + 0, 330, 329, 330, 0, 330, 331, 331, 0, 330, + 330, 0, 332, 0, 0, 0, 331, 0, 331, 0, + 331, 0, 332, 333, 332, 331, 332, 0, 0, 334, + 332, 332, 0, 333, 0, 333, 0, 333, 0, 334, - 343, 344, 0, 343, 342, 343, 0, 343, 0, 345, - 0, 344, 343, 344, 0, 344, 0, 344, 0, 345, - 344, 345, 0, 345, 346, 346, 0, 345, 345, 0, - 347, 0, 0, 0, 346, 0, 346, 0, 346, 0, - 347, 348, 347, 346, 347, 0, 0, 349, 347, 347, - 0, 348, 0, 348, 0, 348, 0, 349, 348, 349, - 348, 349, 350, 354, 0, 0, 349, 0, 0, 0, - 354, 0, 350, 354, 350, 354, 350, 354, 0, 0, - 356, 350, 354, 355, 355, 0, 355, 0, 0, 0, - 356, 0, 356, 355, 356, 355, 0, 355, 356, 356, + 333, 334, 333, 334, 335, 339, 0, 0, 334, 0, + 0, 0, 339, 0, 335, 339, 335, 339, 335, 339, + 0, 0, 341, 335, 339, 340, 340, 0, 340, 0, + 0, 0, 341, 0, 341, 340, 341, 340, 0, 340, + 341, 341, 343, 342, 340, 342, 0, 0, 0, 0, + 0, 0, 343, 342, 343, 342, 343, 342, 344, 0, + 0, 343, 342, 0, 345, 0, 0, 345, 344, 0, + 344, 0, 344, 0, 345, 346, 345, 344, 345, 347, + 0, 0, 348, 345, 0, 346, 347, 346, 0, 346, + 0, 0, 346, 0, 346, 0, 347, 348, 347, 0, - 358, 357, 355, 357, 0, 0, 0, 0, 0, 0, - 358, 357, 358, 357, 358, 357, 359, 0, 0, 358, - 357, 0, 360, 0, 0, 360, 359, 0, 359, 0, - 359, 0, 360, 361, 360, 359, 360, 362, 0, 0, - 363, 360, 0, 361, 362, 361, 0, 361, 0, 0, - 361, 0, 361, 0, 362, 363, 362, 0, 362, 0, - 0, 365, 0, 362, 0, 363, 0, 363, 0, 363, - 0, 365, 366, 365, 363, 365, 0, 0, 367, 365, - 365, 0, 366, 0, 366, 0, 366, 0, 367, 369, - 367, 366, 367, 0, 0, 0, 0, 367, 0, 369, + 347, 0, 0, 350, 0, 347, 0, 348, 0, 348, + 0, 348, 0, 350, 351, 350, 348, 350, 0, 0, + 352, 350, 350, 0, 351, 0, 351, 0, 351, 0, + 352, 354, 352, 351, 352, 0, 0, 0, 0, 352, + 0, 354, 355, 354, 0, 354, 0, 354, 356, 355, + 354, 0, 355, 0, 355, 0, 355, 0, 356, 357, + 356, 355, 356, 0, 0, 0, 0, 356, 0, 357, + 0, 357, 359, 357, 0, 360, 0, 357, 357, 359, + 0, 0, 359, 361, 359, 360, 359, 360, 361, 360, + 0, 359, 0, 361, 360, 361, 362, 361, 0, 0, - 370, 369, 0, 369, 0, 369, 371, 370, 369, 0, - 370, 0, 370, 0, 370, 0, 371, 372, 371, 370, - 371, 0, 0, 0, 0, 371, 0, 372, 0, 372, - 374, 372, 0, 375, 0, 372, 372, 374, 0, 0, - 374, 376, 374, 375, 374, 375, 376, 375, 0, 374, - 0, 376, 375, 376, 377, 376, 0, 0, 0, 0, - 376, 0, 0, 0, 377, 379, 377, 0, 377, 0, - 0, 381, 379, 377, 0, 379, 377, 379, 0, 379, - 0, 381, 0, 381, 379, 381, 382, 383, 0, 382, - 381, 0, 0, 0, 0, 0, 382, 383, 382, 383, + 0, 0, 361, 0, 0, 0, 362, 364, 362, 0, + 362, 0, 0, 366, 364, 362, 0, 364, 362, 364, + 0, 364, 0, 366, 0, 366, 364, 366, 367, 368, + 0, 367, 366, 0, 0, 0, 0, 0, 367, 368, + 367, 368, 367, 368, 370, 368, 0, 367, 368, 0, + 375, 0, 0, 0, 370, 0, 370, 0, 370, 0, + 375, 0, 375, 370, 375, 376, 376, 0, 0, 375, + 0, 0, 377, 0, 0, 0, 376, 0, 376, 0, + 376, 0, 377, 379, 377, 376, 377, 0, 370, 380, + 377, 377, 0, 379, 0, 379, 0, 379, 0, 380, - 382, 383, 385, 383, 0, 382, 383, 0, 394, 0, - 0, 0, 385, 0, 385, 0, 385, 0, 394, 0, - 394, 385, 394, 395, 395, 0, 0, 394, 0, 0, - 396, 0, 0, 0, 395, 0, 395, 0, 395, 0, - 396, 398, 396, 395, 396, 0, 0, 385, 396, 396, - 0, 398, 399, 398, 0, 398, 0, 0, 0, 0, - 398, 0, 399, 400, 399, 0, 399, 0, 0, 401, - 399, 399, 401, 400, 0, 400, 0, 400, 0, 401, - 402, 401, 400, 401, 0, 0, 403, 402, 401, 0, - 402, 0, 402, 0, 402, 0, 403, 404, 403, 402, + 381, 380, 379, 380, 0, 0, 382, 380, 380, 382, + 381, 0, 381, 0, 381, 0, 382, 383, 382, 381, + 382, 0, 0, 384, 383, 382, 0, 383, 0, 383, + 0, 383, 0, 384, 385, 384, 383, 384, 0, 0, + 0, 0, 384, 0, 385, 386, 385, 386, 385, 0, + 0, 387, 385, 385, 0, 386, 0, 386, 0, 386, + 0, 387, 0, 387, 386, 387, 0, 0, 388, 387, + 387, 388, 0, 0, 389, 0, 389, 0, 388, 0, + 388, 0, 388, 0, 389, 390, 389, 388, 389, 0, + 391, 391, 0, 389, 0, 390, 0, 390, 0, 390, - 403, 0, 0, 0, 0, 403, 0, 404, 405, 404, - 405, 404, 0, 0, 406, 404, 404, 0, 405, 0, - 405, 0, 405, 0, 406, 0, 406, 405, 406, 0, - 0, 407, 406, 406, 407, 0, 0, 408, 0, 408, - 0, 407, 0, 407, 0, 407, 0, 408, 409, 408, - 407, 408, 0, 410, 410, 0, 408, 0, 409, 0, - 409, 0, 409, 0, 410, 411, 410, 409, 410, 0, - 0, 412, 0, 410, 0, 411, 0, 411, 412, 411, - 0, 412, 413, 412, 411, 412, 0, 0, 414, 0, - 412, 0, 413, 0, 413, 414, 413, 0, 414, 413, + 0, 391, 392, 391, 390, 391, 0, 0, 393, 0, + 391, 0, 392, 0, 392, 393, 392, 0, 393, 394, + 393, 392, 393, 0, 0, 395, 0, 393, 0, 394, + 0, 394, 395, 394, 0, 395, 394, 395, 394, 395, + 396, 396, 400, 0, 395, 0, 400, 0, 0, 0, + 0, 396, 400, 396, 400, 396, 400, 401, 0, 0, + 396, 400, 0, 402, 401, 402, 0, 401, 0, 401, + 0, 401, 0, 402, 403, 402, 401, 402, 0, 0, + 404, 0, 402, 404, 403, 0, 403, 0, 403, 0, + 404, 403, 404, 403, 404, 405, 405, 0, 0, 404, - 414, 413, 414, 415, 415, 419, 0, 414, 0, 419, - 0, 0, 0, 0, 415, 419, 415, 419, 415, 419, - 420, 0, 0, 415, 419, 0, 421, 420, 421, 0, - 420, 0, 420, 0, 420, 0, 421, 422, 421, 420, - 421, 0, 0, 423, 0, 421, 423, 422, 0, 422, - 0, 422, 0, 423, 422, 423, 422, 423, 424, 424, - 0, 0, 423, 0, 425, 425, 0, 0, 424, 0, - 424, 0, 424, 0, 425, 426, 425, 424, 425, 0, - 0, 0, 0, 425, 0, 426, 0, 426, 0, 426, - 427, 426, 0, 427, 426, 0, 428, 0, 0, 0, + 0, 406, 406, 0, 0, 405, 0, 405, 0, 405, + 0, 406, 407, 406, 405, 406, 0, 0, 0, 0, + 406, 0, 407, 0, 407, 0, 407, 408, 407, 0, + 408, 407, 0, 409, 0, 0, 0, 408, 0, 408, + 0, 408, 0, 409, 410, 409, 408, 409, 0, 0, + 409, 410, 409, 0, 410, 412, 410, 0, 410, 0, + 413, 413, 0, 410, 0, 412, 0, 412, 0, 412, + 0, 413, 415, 413, 412, 413, 0, 0, 416, 0, + 413, 0, 415, 0, 415, 0, 415, 0, 416, 417, + 416, 415, 416, 0, 0, 0, 0, 416, 0, 417, - 427, 0, 427, 0, 427, 0, 428, 429, 428, 427, - 428, 0, 0, 428, 429, 428, 0, 429, 431, 429, - 0, 429, 0, 432, 432, 0, 429, 0, 431, 0, - 431, 0, 431, 0, 432, 434, 432, 431, 432, 0, - 0, 435, 0, 432, 0, 434, 0, 434, 0, 434, - 0, 435, 436, 435, 434, 435, 0, 0, 0, 0, - 435, 0, 436, 0, 436, 437, 436, 0, 437, 0, - 436, 436, 0, 439, 0, 437, 0, 437, 0, 437, - 0, 0, 0, 439, 437, 439, 0, 439, 440, 440, - 0, 441, 439, 439, 442, 0, 0, 0, 440, 0, + 0, 417, 418, 417, 0, 418, 0, 417, 417, 0, + 420, 0, 418, 0, 418, 0, 418, 0, 0, 0, + 420, 418, 420, 0, 420, 421, 421, 0, 422, 420, + 420, 423, 0, 0, 0, 421, 0, 421, 422, 421, + 422, 423, 422, 423, 421, 423, 425, 422, 425, 427, + 423, 0, 428, 0, 0, 0, 425, 0, 425, 427, + 425, 427, 428, 427, 428, 425, 428, 435, 427, 428, + 0, 428, 0, 0, 0, 0, 0, 435, 0, 435, + 436, 435, 0, 438, 0, 435, 435, 436, 0, 0, + 436, 0, 436, 438, 436, 438, 0, 438, 439, 436, - 440, 441, 440, 441, 442, 441, 442, 440, 442, 444, - 441, 444, 446, 442, 0, 447, 0, 0, 0, 444, - 0, 444, 446, 444, 446, 447, 446, 447, 444, 447, - 457, 446, 447, 0, 447, 0, 0, 0, 0, 0, - 457, 0, 457, 458, 457, 0, 460, 0, 457, 457, - 458, 0, 0, 458, 0, 458, 460, 458, 460, 0, - 460, 461, 458, 0, 461, 460, 0, 462, 0, 0, - 0, 461, 0, 461, 0, 461, 0, 462, 463, 462, - 461, 462, 0, 0, 464, 0, 462, 0, 463, 0, - 463, 464, 463, 0, 464, 465, 464, 463, 464, 0, + 0, 439, 438, 0, 440, 0, 0, 0, 439, 0, + 439, 0, 439, 0, 440, 441, 440, 439, 440, 0, + 0, 442, 0, 440, 0, 441, 0, 441, 442, 441, + 0, 442, 443, 442, 441, 442, 0, 0, 444, 0, + 442, 0, 443, 0, 443, 0, 443, 0, 444, 445, + 444, 443, 444, 0, 0, 0, 445, 444, 0, 445, + 446, 445, 446, 445, 0, 0, 447, 0, 445, 0, + 446, 0, 446, 0, 446, 0, 447, 448, 447, 446, + 447, 0, 448, 449, 0, 447, 0, 448, 0, 448, + 0, 448, 0, 449, 450, 449, 448, 449, 0, 0, - 0, 466, 0, 464, 0, 465, 0, 465, 0, 465, - 0, 466, 467, 466, 465, 466, 0, 0, 0, 467, - 466, 0, 467, 468, 467, 468, 467, 0, 0, 469, - 0, 467, 0, 468, 0, 468, 0, 468, 0, 469, - 470, 469, 468, 469, 0, 470, 471, 0, 469, 0, - 470, 0, 470, 0, 470, 0, 471, 472, 471, 470, - 471, 0, 0, 0, 471, 471, 0, 472, 473, 472, - 0, 472, 0, 0, 474, 472, 472, 0, 473, 0, - 473, 0, 473, 0, 474, 475, 474, 473, 474, 0, - 0, 479, 0, 474, 0, 475, 0, 475, 479, 475, + 0, 449, 449, 0, 450, 451, 450, 0, 450, 0, + 0, 452, 450, 450, 0, 451, 0, 451, 0, 451, + 0, 452, 453, 452, 451, 452, 0, 0, 457, 0, + 452, 0, 453, 0, 453, 457, 453, 0, 457, 458, + 457, 453, 457, 0, 0, 0, 0, 457, 0, 458, + 459, 458, 0, 458, 0, 0, 460, 458, 458, 0, + 459, 0, 459, 0, 459, 0, 460, 461, 460, 459, + 460, 0, 0, 462, 0, 460, 462, 461, 0, 461, + 0, 461, 0, 462, 461, 462, 461, 462, 463, 464, + 0, 0, 462, 0, 0, 0, 0, 0, 463, 464, - 0, 479, 480, 479, 475, 479, 0, 0, 0, 0, - 479, 0, 480, 481, 480, 0, 480, 0, 0, 482, - 480, 480, 0, 481, 0, 481, 0, 481, 0, 482, - 483, 482, 481, 482, 0, 0, 484, 0, 482, 484, - 483, 0, 483, 0, 483, 0, 484, 483, 484, 483, - 484, 485, 486, 0, 0, 484, 0, 0, 0, 0, - 0, 485, 486, 485, 486, 485, 486, 487, 487, 485, - 485, 486, 0, 488, 0, 0, 0, 487, 0, 487, - 0, 487, 0, 488, 489, 488, 487, 488, 0, 0, - 491, 0, 488, 0, 489, 0, 489, 0, 489, 0, + 463, 464, 463, 464, 465, 465, 463, 463, 464, 0, + 466, 0, 0, 0, 465, 0, 465, 0, 465, 0, + 466, 467, 466, 465, 466, 0, 0, 469, 0, 466, + 0, 467, 0, 467, 0, 467, 0, 469, 471, 469, + 467, 469, 0, 0, 0, 0, 469, 0, 471, 472, + 471, 0, 471, 472, 466, 473, 0, 471, 0, 472, + 0, 472, 0, 472, 0, 473, 474, 473, 472, 473, + 0, 0, 476, 0, 473, 476, 474, 0, 474, 0, + 474, 0, 476, 0, 476, 474, 476, 477, 0, 0, + 477, 476, 0, 479, 0, 0, 479, 477, 0, 477, - 491, 493, 491, 489, 491, 0, 0, 0, 0, 491, - 0, 493, 494, 493, 0, 493, 494, 0, 488, 0, - 493, 0, 494, 495, 494, 0, 494, 0, 0, 496, - 0, 494, 0, 495, 0, 495, 0, 495, 0, 496, - 0, 496, 495, 496, 498, 0, 0, 498, 496, 0, - 499, 0, 0, 499, 498, 0, 498, 0, 498, 0, - 499, 0, 499, 498, 499, 501, 0, 0, 501, 499, - 503, 503, 0, 0, 0, 501, 0, 501, 0, 501, - 0, 503, 513, 503, 501, 503, 0, 0, 0, 513, - 503, 0, 513, 0, 513, 0, 513, 514, 514, 0, + 0, 477, 0, 479, 0, 479, 477, 479, 481, 481, + 488, 0, 479, 0, 0, 0, 0, 488, 0, 481, + 488, 481, 488, 481, 488, 489, 489, 0, 481, 488, + 0, 491, 0, 0, 0, 489, 0, 489, 0, 489, + 0, 491, 492, 491, 489, 491, 0, 491, 0, 0, + 491, 0, 492, 0, 492, 493, 492, 0, 493, 0, + 492, 492, 0, 494, 0, 493, 495, 493, 0, 493, + 0, 0, 497, 494, 493, 494, 495, 494, 495, 495, + 495, 496, 494, 0, 499, 495, 0, 497, 0, 0, + 0, 496, 0, 496, 499, 496, 499, 497, 499, 497, - 0, 513, 0, 516, 0, 0, 0, 514, 0, 514, - 0, 514, 0, 516, 517, 516, 514, 516, 0, 516, - 0, 0, 516, 0, 517, 0, 517, 518, 517, 0, - 518, 0, 517, 517, 0, 519, 0, 518, 520, 518, - 0, 518, 0, 0, 522, 519, 518, 519, 520, 519, - 520, 520, 520, 521, 519, 0, 524, 520, 0, 522, - 0, 0, 0, 521, 0, 521, 524, 521, 524, 522, - 524, 522, 521, 522, 523, 524, 0, 523, 522, 0, - 525, 0, 0, 0, 523, 0, 523, 525, 523, 0, - 525, 526, 525, 523, 525, 0, 0, 531, 0, 525, + 496, 497, 498, 499, 0, 498, 497, 0, 500, 0, + 0, 0, 498, 0, 498, 500, 498, 0, 500, 501, + 500, 498, 500, 0, 0, 506, 0, 500, 506, 501, + 0, 501, 0, 501, 0, 506, 507, 506, 501, 506, + 0, 0, 508, 0, 506, 0, 507, 0, 507, 0, + 507, 0, 508, 509, 508, 507, 508, 0, 0, 510, + 0, 508, 0, 509, 0, 509, 510, 509, 0, 510, + 511, 510, 509, 510, 0, 0, 0, 0, 510, 0, + 511, 513, 511, 0, 511, 513, 0, 515, 511, 511, + 0, 513, 0, 513, 519, 513, 0, 515, 517, 515, - 531, 526, 0, 526, 0, 526, 0, 531, 532, 531, - 526, 531, 0, 0, 533, 0, 531, 0, 532, 0, - 532, 0, 532, 0, 533, 534, 533, 532, 533, 0, - 0, 535, 0, 533, 0, 534, 0, 534, 535, 534, - 0, 535, 536, 535, 534, 535, 0, 0, 0, 0, - 535, 0, 536, 538, 536, 0, 536, 538, 0, 540, - 536, 536, 0, 538, 0, 538, 544, 538, 0, 540, - 542, 540, 538, 540, 0, 0, 0, 542, 540, 0, - 542, 544, 542, 0, 542, 0, 0, 545, 0, 542, - 0, 544, 0, 544, 0, 544, 0, 545, 547, 545, + 513, 515, 0, 0, 0, 517, 515, 0, 517, 519, + 517, 0, 517, 0, 0, 520, 0, 517, 0, 519, + 0, 519, 0, 519, 0, 520, 522, 520, 519, 520, + 0, 0, 524, 0, 520, 0, 522, 0, 522, 0, + 522, 0, 524, 530, 524, 522, 524, 0, 0, 531, + 0, 524, 0, 530, 0, 530, 530, 530, 0, 531, + 533, 531, 530, 531, 0, 0, 534, 0, 531, 0, + 533, 0, 533, 0, 533, 0, 534, 0, 534, 533, + 534, 536, 535, 534, 535, 534, 536, 0, 0, 0, + 0, 536, 535, 536, 535, 536, 535, 537, 538, 538, - 544, 545, 0, 0, 549, 0, 545, 0, 547, 0, - 547, 0, 547, 0, 549, 558, 549, 547, 549, 0, - 0, 559, 0, 549, 0, 558, 0, 558, 558, 558, - 0, 559, 561, 559, 558, 559, 0, 0, 562, 0, - 559, 0, 561, 0, 561, 0, 561, 0, 562, 0, - 562, 561, 562, 564, 563, 562, 563, 562, 564, 0, - 0, 0, 0, 564, 563, 564, 563, 564, 563, 565, - 566, 566, 564, 563, 0, 0, 0, 0, 0, 565, - 566, 565, 566, 565, 566, 567, 568, 567, 565, 566, - 0, 0, 0, 0, 0, 567, 568, 567, 568, 567, + 536, 535, 0, 0, 0, 0, 0, 537, 538, 537, + 538, 537, 538, 539, 540, 539, 537, 538, 0, 0, + 0, 0, 0, 539, 540, 539, 540, 539, 540, 545, + 0, 0, 539, 540, 0, 0, 0, 546, 0, 545, + 0, 545, 0, 545, 0, 545, 0, 546, 545, 546, + 546, 546, 547, 549, 0, 0, 546, 0, 0, 547, + 549, 0, 547, 549, 547, 549, 547, 549, 552, 0, + 0, 547, 549, 0, 0, 0, 554, 0, 552, 0, + 552, 0, 552, 0, 556, 0, 554, 552, 554, 554, + 554, 0, 0, 0, 556, 554, 556, 558, 556, 0, - 568, 573, 0, 0, 567, 568, 0, 0, 0, 574, - 0, 573, 0, 573, 0, 573, 0, 573, 0, 574, - 573, 574, 574, 574, 575, 577, 0, 0, 574, 0, - 0, 575, 577, 0, 575, 577, 575, 577, 575, 577, - 580, 0, 0, 575, 577, 0, 0, 0, 582, 0, - 580, 0, 580, 0, 580, 0, 584, 0, 582, 580, - 582, 582, 582, 0, 0, 0, 584, 582, 584, 586, - 584, 0, 0, 0, 584, 584, 0, 0, 0, 586, - 0, 586, 0, 586, 592, 592, 592, 0, 586, 0, - 0, 0, 0, 595, 596, 0, 592, 592, 592, 592, + 564, 0, 556, 556, 0, 0, 0, 558, 565, 558, + 564, 558, 564, 0, 564, 0, 558, 0, 565, 564, + 565, 566, 565, 0, 567, 0, 0, 565, 0, 0, + 0, 566, 568, 566, 567, 566, 567, 0, 567, 0, + 566, 0, 568, 567, 568, 569, 568, 0, 0, 568, + 0, 568, 0, 570, 0, 569, 0, 569, 569, 569, + 0, 571, 0, 570, 569, 570, 0, 570, 571, 575, + 0, 571, 570, 571, 0, 571, 0, 576, 0, 575, + 571, 575, 0, 575, 0, 577, 0, 576, 575, 576, + 0, 576, 0, 579, 0, 577, 576, 577, 577, 577, - 592, 592, 592, 595, 596, 595, 596, 595, 596, 597, - 598, 0, 595, 596, 0, 0, 0, 0, 0, 597, - 598, 597, 598, 597, 598, 599, 0, 0, 597, 598, - 0, 0, 0, 600, 0, 599, 0, 599, 0, 599, - 0, 601, 599, 600, 599, 600, 600, 600, 0, 602, - 0, 601, 600, 601, 0, 601, 602, 606, 0, 602, - 601, 602, 0, 602, 0, 607, 0, 606, 602, 606, - 0, 606, 0, 608, 0, 607, 606, 607, 0, 607, - 0, 610, 0, 608, 607, 608, 608, 608, 0, 613, - 0, 610, 608, 610, 0, 610, 613, 615, 0, 613, + 0, 582, 0, 579, 577, 579, 0, 579, 582, 584, + 0, 582, 579, 582, 0, 582, 584, 585, 0, 584, + 582, 584, 0, 584, 585, 592, 0, 585, 584, 585, + 0, 585, 0, 593, 0, 592, 585, 592, 0, 592, + 0, 594, 0, 593, 592, 593, 0, 593, 0, 595, + 0, 594, 593, 594, 0, 594, 0, 0, 0, 595, + 594, 595, 599, 595, 0, 0, 0, 595, 595, 0, + 600, 0, 599, 0, 599, 0, 599, 0, 602, 599, + 600, 599, 600, 0, 600, 602, 605, 0, 602, 600, + 602, 0, 602, 0, 0, 0, 605, 602, 605, 607, - 610, 613, 0, 613, 615, 616, 0, 615, 613, 615, - 0, 615, 616, 0, 0, 616, 615, 616, 0, 616, - 0, 0, 626, 627, 616, 623, 623, 623, 623, 623, - 623, 623, 626, 627, 626, 627, 626, 627, 628, 0, - 0, 626, 627, 0, 0, 0, 629, 0, 628, 0, - 628, 0, 628, 0, 0, 0, 629, 628, 629, 633, - 629, 0, 0, 623, 629, 629, 0, 634, 0, 633, - 0, 633, 0, 633, 0, 636, 633, 634, 633, 634, - 0, 634, 636, 639, 0, 636, 634, 636, 0, 636, - 0, 0, 0, 639, 636, 639, 641, 639, 641, 642, + 605, 607, 608, 0, 605, 605, 608, 0, 0, 607, + 614, 607, 608, 607, 608, 0, 608, 0, 607, 0, + 614, 608, 614, 615, 614, 0, 619, 0, 614, 614, + 0, 0, 0, 615, 0, 615, 619, 615, 619, 620, + 619, 0, 615, 0, 0, 619, 615, 622, 0, 620, + 625, 620, 0, 620, 0, 0, 0, 622, 620, 622, + 625, 622, 625, 0, 625, 622, 622, 627, 628, 625, + 0, 0, 0, 625, 0, 628, 0, 627, 628, 627, + 628, 627, 628, 634, 635, 0, 627, 628, 0, 0, + 0, 0, 0, 634, 635, 634, 635, 634, 635, 634, - 0, 639, 639, 642, 0, 0, 641, 0, 641, 642, - 641, 642, 0, 642, 0, 641, 0, 0, 642, 649, - 649, 649, 0, 0, 0, 0, 0, 0, 651, 652, - 0, 649, 649, 649, 649, 649, 649, 649, 651, 652, - 651, 652, 651, 652, 656, 657, 651, 651, 652, 0, - 0, 0, 652, 0, 656, 657, 656, 657, 656, 657, - 659, 662, 0, 656, 657, 0, 0, 0, 0, 0, - 659, 662, 659, 662, 659, 662, 664, 0, 659, 659, - 662, 0, 665, 0, 662, 0, 664, 0, 664, 665, - 664, 0, 665, 672, 665, 664, 665, 0, 0, 0, + 639, 642, 634, 635, 0, 0, 0, 0, 0, 0, + 639, 642, 639, 642, 639, 642, 0, 0, 644, 639, + 642, 644, 0, 639, 0, 0, 650, 0, 644, 0, + 644, 0, 644, 0, 652, 0, 650, 644, 650, 650, + 650, 0, 655, 0, 652, 650, 652, 0, 652, 0, + 659, 0, 655, 652, 655, 0, 655, 0, 655, 0, + 659, 655, 659, 663, 659, 0, 666, 0, 0, 659, + 0, 0, 0, 663, 0, 663, 666, 663, 666, 0, + 666, 0, 663, 0, 0, 666, 670, 670, 670, 670, + 670, 670, 670, 670, 670, 670, 670, 671, 671, 671, - 0, 665, 0, 672, 673, 672, 0, 672, 0, 672, - 677, 0, 672, 0, 673, 0, 673, 0, 673, 0, - 677, 0, 677, 673, 677, 680, 0, 0, 682, 677, - 0, 682, 0, 677, 0, 680, 0, 680, 682, 680, - 682, 0, 682, 0, 680, 0, 0, 682, 687, 687, - 687, 0, 0, 0, 0, 0, 0, 689, 0, 0, - 687, 687, 687, 687, 687, 687, 687, 689, 691, 689, - 689, 689, 0, 0, 694, 0, 689, 0, 691, 0, - 691, 0, 691, 0, 694, 698, 694, 691, 694, 0, - 694, 702, 0, 694, 0, 698, 0, 698, 0, 698, + 671, 671, 671, 671, 671, 671, 671, 671, 672, 672, + 672, 672, 672, 672, 672, 672, 672, 672, 672, 673, + 673, 673, 673, 673, 673, 673, 673, 673, 673, 673, + 674, 674, 674, 674, 674, 674, 674, 674, 674, 674, + 674, 675, 675, 675, 675, 675, 675, 675, 675, 675, + 675, 675, 676, 676, 676, 0, 676, 676, 676, 676, + 676, 676, 676, 677, 677, 0, 0, 677, 0, 677, + 678, 678, 0, 678, 679, 679, 0, 679, 679, 679, + 0, 679, 679, 679, 679, 680, 680, 680, 0, 680, + 680, 680, 680, 680, 680, 680, 681, 681, 681, 681, - 0, 702, 705, 702, 698, 702, 0, 0, 0, 0, - 702, 0, 705, 0, 705, 0, 705, 0, 0, 0, - 0, 705, 709, 709, 709, 709, 709, 709, 709, 709, - 709, 709, 709, 709, 710, 710, 710, 710, 710, 710, - 710, 710, 710, 710, 710, 710, 711, 711, 711, 711, - 711, 711, 711, 711, 711, 711, 711, 711, 712, 712, - 712, 712, 712, 712, 712, 712, 712, 712, 712, 712, - 713, 713, 713, 713, 713, 713, 713, 713, 713, 713, - 713, 713, 714, 714, 714, 714, 714, 714, 714, 714, - 714, 714, 714, 714, 715, 715, 715, 0, 715, 715, + 681, 681, 681, 681, 0, 681, 682, 0, 0, 682, + 682, 682, 682, 682, 682, 682, 683, 0, 0, 683, + 683, 683, 683, 683, 683, 683, 684, 0, 0, 684, + 0, 684, 684, 684, 684, 684, 685, 685, 0, 685, + 686, 686, 0, 686, 687, 687, 0, 687, 669, 669, + 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, + 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, + 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, + 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, + 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, - 715, 715, 715, 715, 715, 715, 716, 716, 0, 0, - 716, 0, 716, 717, 0, 717, 718, 718, 0, 718, - 718, 719, 719, 0, 719, 719, 719, 0, 719, 719, - 719, 719, 719, 720, 720, 720, 0, 720, 720, 720, - 720, 720, 720, 720, 720, 721, 721, 721, 721, 721, - 721, 721, 721, 0, 721, 721, 722, 0, 0, 722, - 722, 722, 722, 722, 722, 722, 722, 723, 0, 0, - 723, 723, 723, 723, 723, 723, 723, 723, 724, 0, - 0, 724, 0, 724, 724, 724, 724, 724, 724, 725, - 725, 0, 725, 725, 726, 726, 0, 726, 726, 727, - - 727, 0, 727, 727, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708, 708, 708, 708, 708, 708, 708, 708, - 708, 708, 708 + 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, + 669, 669, 669, 669, 669, 669, 669, 669, 669, 669, + 669, 669, 669, 669, 669, 669 } ; extern int yy_flex_debug; int yy_flex_debug = 1; -static yyconst short int yy_rule_linenum[131] = +static yyconst short int yy_rule_linenum[129] = { 0, 103, 106, 108, 109, 110, 113, 115, 116, 117, 129, 136, 143, 149, 158, 166, 174, 175, 177, 196, 202, - 203, 204, 205, 206, 209, 215, 222, 229, 236, 246, - 280, 287, 291, 292, 300, 301, 302, 303, 304, 309, - 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, - 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, - 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, - 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, - 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, - 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, + 203, 204, 205, 206, 209, 215, 222, 229, 236, 243, + 247, 248, 256, 257, 258, 259, 260, 265, 266, 267, + 268, 269, 270, 271, 272, 273, 274, 275, 284, 285, + 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, + 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, + 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, + 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, + 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, - 378, 379, 380, 381, 382, 383, 384, 385, 386, 391, - 392, 397, 398, 399, 402, 408, 415, 424, 435, 441, - 443, 444, 446, 448, 450, 463, 469, 475, 482, 484 + 336, 337, 338, 339, 340, 341, 342, 347, 348, 353, + 354, 355, 358, 364, 371, 380, 391, 397, 399, 400, + 402, 404, 406, 419, 425, 431, 438, 440 } ; static yy_state_type yy_state_buf[YY_BUF_SIZE + 2], *yy_state_ptr; @@ -1877,7 +1827,7 @@ static asn1c_integer_t asn1p_atoi(char *ptr); /* errno is either 0 or ERANGE */ /* Newline */ /* White-space */ -#line 1881 "asn1p_l.c" +#line 1831 "asn1p_l.c" /* Macros after this point can all be overridden by user definitions in * section 1. @@ -2031,7 +1981,7 @@ YY_DECL #line 101 "asn1p_l.l" -#line 2035 "asn1p_l.c" +#line 1985 "asn1p_l.c" if ( yy_init ) { @@ -2079,14 +2029,14 @@ yy_match: while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 709 ) + if ( yy_current_state >= 670 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; *yy_state_ptr++ = yy_current_state; ++yy_cp; } - while ( yy_base[yy_current_state] != 4405 ); + while ( yy_base[yy_current_state] != 4249 ); yy_find_action: yy_current_state = *--yy_state_ptr; @@ -2123,13 +2073,13 @@ do_action: /* This label is used only to access EOF actions. */ { if ( yy_act == 0 ) fprintf( stderr, "--scanner backing up\n" ); - else if ( yy_act < 131 ) + else if ( yy_act < 129 ) fprintf( stderr, "--accepting rule at line %d (\"%s\")\n", yy_rule_linenum[yy_act], yytext ); - else if ( yy_act == 131 ) + else if ( yy_act == 129 ) fprintf( stderr, "--accepting default rule (\"%s\")\n", yytext ); - else if ( yy_act == 132 ) + else if ( yy_act == 130 ) fprintf( stderr, "--(end of buffer or a NUL)\n" ); else fprintf( stderr, "--EOF (start condition %d)\n", YY_START ); @@ -2370,72 +2320,22 @@ YY_RULE_SETUP return TOK_number; } YY_BREAK -/* - * Tags - */ case 30: YY_RULE_SETUP -#line 246 "asn1p_l.l" -{ - char *p; - memset(&asn1p_lval.a_tag, 0, sizeof(asn1p_lval.a_tag)); - switch(yytext[1]) { - case 'U': - asn1p_lval.a_tag.tag_class = TC_UNIVERSAL; - p = yytext + sizeof("UNIVERSAL") + 1; - break; - case 'A': - asn1p_lval.a_tag.tag_class = TC_APPLICATION; - p = yytext + sizeof("APPLICATION") + 1; - break; - case 'P': - asn1p_lval.a_tag.tag_class = TC_PRIVATE; - p = yytext + sizeof("PRIVATE") + 1; - break; - default: - assert(yytext[1] >= '0' && yytext[1] <= '9'); - asn1p_lval.a_tag.tag_class = TC_CONTEXT_SPECIFIC; - p = yytext + 1; - break; - } - asn1p_lval.a_tag.tag_value = asn1p_atoi(p); - if(*p == '0' && asn1p_lval.a_tag.tag_value) { - fprintf(stderr, - "Tag value at line %d " - "cannot start with zero " - "and have multiple digits: \"%s\"\n", - yylineno, yytext); - return -1; - } - return TOK_tag; - } - YY_BREAK -case 31: -YY_RULE_SETUP -#line 280 "asn1p_l.l" -{ - fprintf(stderr, - "Unsupported tag syntax at line %d: \"%s\"\n", - yylineno, yytext); - return -1; - } - YY_BREAK -case 32: -YY_RULE_SETUP -#line 287 "asn1p_l.l" +#line 243 "asn1p_l.l" return TOK_ABSENT; YY_BREAK /* ABSTRACT-SYNTAX return TOK_ABSTRACT_SYNTAX; */ -case 33: +case 31: YY_RULE_SETUP -#line 291 "asn1p_l.l" +#line 247 "asn1p_l.l" return TOK_ALL; YY_BREAK -case 34: +case 32: YY_RULE_SETUP -#line 292 "asn1p_l.l" +#line 248 "asn1p_l.l" { /* Appeared in 1990, removed in 1997 */ if(TYPE_LIFETIME(1990, 1997)) @@ -2445,88 +2345,88 @@ YY_RULE_SETUP REJECT; } YY_BREAK +case 33: +YY_RULE_SETUP +#line 256 "asn1p_l.l" +return TOK_APPLICATION; + YY_BREAK +case 34: +YY_RULE_SETUP +#line 257 "asn1p_l.l" +return TOK_AUTOMATIC; + YY_BREAK case 35: YY_RULE_SETUP -#line 300 "asn1p_l.l" -return TOK_APPLICATION; +#line 258 "asn1p_l.l" +return TOK_BEGIN; YY_BREAK case 36: YY_RULE_SETUP -#line 301 "asn1p_l.l" -return TOK_AUTOMATIC; +#line 259 "asn1p_l.l" +return TOK_BIT; YY_BREAK case 37: YY_RULE_SETUP -#line 302 "asn1p_l.l" -return TOK_BEGIN; - YY_BREAK -case 38: -YY_RULE_SETUP -#line 303 "asn1p_l.l" -return TOK_BIT; - YY_BREAK -case 39: -YY_RULE_SETUP -#line 304 "asn1p_l.l" +#line 260 "asn1p_l.l" { if(TYPE_LIFETIME(1994, 0)) return TOK_BMPString; REJECT; } YY_BREAK +case 38: +YY_RULE_SETUP +#line 265 "asn1p_l.l" +return TOK_BOOLEAN; + YY_BREAK +case 39: +YY_RULE_SETUP +#line 266 "asn1p_l.l" +return TOK_BY; + YY_BREAK case 40: YY_RULE_SETUP -#line 309 "asn1p_l.l" -return TOK_BOOLEAN; +#line 267 "asn1p_l.l" +return TOK_CHARACTER; YY_BREAK case 41: YY_RULE_SETUP -#line 310 "asn1p_l.l" -return TOK_BY; +#line 268 "asn1p_l.l" +return TOK_CHOICE; YY_BREAK case 42: YY_RULE_SETUP -#line 311 "asn1p_l.l" -return TOK_CHARACTER; +#line 269 "asn1p_l.l" +return TOK_CLASS; YY_BREAK case 43: YY_RULE_SETUP -#line 312 "asn1p_l.l" -return TOK_CHOICE; +#line 270 "asn1p_l.l" +return TOK_COMPONENT; YY_BREAK case 44: YY_RULE_SETUP -#line 313 "asn1p_l.l" -return TOK_CLASS; +#line 271 "asn1p_l.l" +return TOK_COMPONENTS; YY_BREAK case 45: YY_RULE_SETUP -#line 314 "asn1p_l.l" -return TOK_COMPONENT; +#line 272 "asn1p_l.l" +return TOK_CONSTRAINED; YY_BREAK case 46: YY_RULE_SETUP -#line 315 "asn1p_l.l" -return TOK_COMPONENTS; +#line 273 "asn1p_l.l" +return TOK_CONTAINING; YY_BREAK case 47: YY_RULE_SETUP -#line 316 "asn1p_l.l" -return TOK_CONSTRAINED; +#line 274 "asn1p_l.l" +return TOK_DEFAULT; YY_BREAK case 48: YY_RULE_SETUP -#line 317 "asn1p_l.l" -return TOK_CONTAINING; - YY_BREAK -case 49: -YY_RULE_SETUP -#line 318 "asn1p_l.l" -return TOK_DEFAULT; - YY_BREAK -case 50: -YY_RULE_SETUP -#line 319 "asn1p_l.l" +#line 275 "asn1p_l.l" { /* Appeared in 1990, removed in 1997 */ if(TYPE_LIFETIME(1990, 1997)) @@ -2537,355 +2437,355 @@ YY_RULE_SETUP REJECT; } YY_BREAK +case 49: +YY_RULE_SETUP +#line 284 "asn1p_l.l" +return TOK_DEFINITIONS; + YY_BREAK +case 50: +YY_RULE_SETUP +#line 285 "asn1p_l.l" +return TOK_EMBEDDED; + YY_BREAK case 51: YY_RULE_SETUP -#line 328 "asn1p_l.l" -return TOK_DEFINITIONS; +#line 286 "asn1p_l.l" +return TOK_ENCODED; YY_BREAK case 52: YY_RULE_SETUP -#line 329 "asn1p_l.l" -return TOK_EMBEDDED; +#line 287 "asn1p_l.l" +return TOK_ENCODING_CONTROL; YY_BREAK case 53: YY_RULE_SETUP -#line 330 "asn1p_l.l" -return TOK_ENCODED; +#line 288 "asn1p_l.l" +return TOK_END; YY_BREAK case 54: YY_RULE_SETUP -#line 331 "asn1p_l.l" -return TOK_ENCODING_CONTROL; +#line 289 "asn1p_l.l" +return TOK_ENUMERATED; YY_BREAK case 55: YY_RULE_SETUP -#line 332 "asn1p_l.l" -return TOK_END; +#line 290 "asn1p_l.l" +return TOK_EXCEPT; YY_BREAK case 56: YY_RULE_SETUP -#line 333 "asn1p_l.l" -return TOK_ENUMERATED; +#line 291 "asn1p_l.l" +return TOK_EXPLICIT; YY_BREAK case 57: YY_RULE_SETUP -#line 334 "asn1p_l.l" -return TOK_EXCEPT; +#line 292 "asn1p_l.l" +return TOK_EXPORTS; YY_BREAK case 58: YY_RULE_SETUP -#line 335 "asn1p_l.l" -return TOK_EXPLICIT; +#line 293 "asn1p_l.l" +return TOK_EXTENSIBILITY; YY_BREAK case 59: YY_RULE_SETUP -#line 336 "asn1p_l.l" -return TOK_EXPORTS; +#line 294 "asn1p_l.l" +return TOK_EXTERNAL; YY_BREAK case 60: YY_RULE_SETUP -#line 337 "asn1p_l.l" -return TOK_EXTENSIBILITY; +#line 295 "asn1p_l.l" +return TOK_FALSE; YY_BREAK case 61: YY_RULE_SETUP -#line 338 "asn1p_l.l" -return TOK_EXTERNAL; +#line 296 "asn1p_l.l" +return TOK_FROM; YY_BREAK case 62: YY_RULE_SETUP -#line 339 "asn1p_l.l" -return TOK_FALSE; +#line 297 "asn1p_l.l" +return TOK_GeneralizedTime; YY_BREAK case 63: YY_RULE_SETUP -#line 340 "asn1p_l.l" -return TOK_FROM; +#line 298 "asn1p_l.l" +return TOK_GeneralString; YY_BREAK case 64: YY_RULE_SETUP -#line 341 "asn1p_l.l" -return TOK_GeneralizedTime; +#line 299 "asn1p_l.l" +return TOK_GraphicString; YY_BREAK case 65: YY_RULE_SETUP -#line 342 "asn1p_l.l" -return TOK_GeneralString; +#line 300 "asn1p_l.l" +return TOK_IA5String; YY_BREAK case 66: YY_RULE_SETUP -#line 343 "asn1p_l.l" -return TOK_GraphicString; +#line 301 "asn1p_l.l" +return TOK_IDENTIFIER; YY_BREAK case 67: YY_RULE_SETUP -#line 344 "asn1p_l.l" -return TOK_IA5String; +#line 302 "asn1p_l.l" +return TOK_IMPLICIT; YY_BREAK case 68: YY_RULE_SETUP -#line 345 "asn1p_l.l" -return TOK_IDENTIFIER; +#line 303 "asn1p_l.l" +return TOK_IMPLIED; YY_BREAK case 69: YY_RULE_SETUP -#line 346 "asn1p_l.l" -return TOK_IMPLICIT; +#line 304 "asn1p_l.l" +return TOK_IMPORTS; YY_BREAK case 70: YY_RULE_SETUP -#line 347 "asn1p_l.l" -return TOK_IMPLIED; +#line 305 "asn1p_l.l" +return TOK_INCLUDES; YY_BREAK case 71: YY_RULE_SETUP -#line 348 "asn1p_l.l" -return TOK_IMPORTS; +#line 306 "asn1p_l.l" +return TOK_INSTANCE; YY_BREAK case 72: YY_RULE_SETUP -#line 349 "asn1p_l.l" -return TOK_INCLUDES; +#line 307 "asn1p_l.l" +return TOK_INSTRUCTIONS; YY_BREAK case 73: YY_RULE_SETUP -#line 350 "asn1p_l.l" -return TOK_INSTANCE; +#line 308 "asn1p_l.l" +return TOK_INTEGER; YY_BREAK case 74: YY_RULE_SETUP -#line 351 "asn1p_l.l" -return TOK_INSTRUCTIONS; +#line 309 "asn1p_l.l" +return TOK_INTERSECTION; YY_BREAK case 75: YY_RULE_SETUP -#line 352 "asn1p_l.l" -return TOK_INTEGER; +#line 310 "asn1p_l.l" +return TOK_ISO646String; YY_BREAK case 76: YY_RULE_SETUP -#line 353 "asn1p_l.l" -return TOK_INTERSECTION; +#line 311 "asn1p_l.l" +return TOK_MAX; YY_BREAK case 77: YY_RULE_SETUP -#line 354 "asn1p_l.l" -return TOK_ISO646String; +#line 312 "asn1p_l.l" +return TOK_MIN; YY_BREAK case 78: YY_RULE_SETUP -#line 355 "asn1p_l.l" -return TOK_MAX; +#line 313 "asn1p_l.l" +return TOK_MINUS_INFINITY; YY_BREAK case 79: YY_RULE_SETUP -#line 356 "asn1p_l.l" -return TOK_MIN; +#line 314 "asn1p_l.l" +return TOK_NULL; YY_BREAK case 80: YY_RULE_SETUP -#line 357 "asn1p_l.l" -return TOK_MINUS_INFINITY; +#line 315 "asn1p_l.l" +return TOK_NumericString; YY_BREAK case 81: YY_RULE_SETUP -#line 358 "asn1p_l.l" -return TOK_NULL; +#line 316 "asn1p_l.l" +return TOK_OBJECT; YY_BREAK case 82: YY_RULE_SETUP -#line 359 "asn1p_l.l" -return TOK_NumericString; +#line 317 "asn1p_l.l" +return TOK_ObjectDescriptor; YY_BREAK case 83: YY_RULE_SETUP -#line 360 "asn1p_l.l" -return TOK_OBJECT; +#line 318 "asn1p_l.l" +return TOK_OCTET; YY_BREAK case 84: YY_RULE_SETUP -#line 361 "asn1p_l.l" -return TOK_ObjectDescriptor; +#line 319 "asn1p_l.l" +return TOK_OF; YY_BREAK case 85: YY_RULE_SETUP -#line 362 "asn1p_l.l" -return TOK_OCTET; +#line 320 "asn1p_l.l" +return TOK_OPTIONAL; YY_BREAK case 86: YY_RULE_SETUP -#line 363 "asn1p_l.l" -return TOK_OF; +#line 321 "asn1p_l.l" +return TOK_PATTERN; YY_BREAK case 87: YY_RULE_SETUP -#line 364 "asn1p_l.l" -return TOK_OPTIONAL; +#line 322 "asn1p_l.l" +return TOK_PDV; YY_BREAK case 88: YY_RULE_SETUP -#line 365 "asn1p_l.l" -return TOK_PATTERN; +#line 323 "asn1p_l.l" +return TOK_PLUS_INFINITY; YY_BREAK case 89: YY_RULE_SETUP -#line 366 "asn1p_l.l" -return TOK_PDV; +#line 324 "asn1p_l.l" +return TOK_PRESENT; YY_BREAK case 90: YY_RULE_SETUP -#line 367 "asn1p_l.l" -return TOK_PLUS_INFINITY; +#line 325 "asn1p_l.l" +return TOK_PrintableString; YY_BREAK case 91: YY_RULE_SETUP -#line 368 "asn1p_l.l" -return TOK_PRESENT; +#line 326 "asn1p_l.l" +return TOK_PRIVATE; YY_BREAK case 92: YY_RULE_SETUP -#line 369 "asn1p_l.l" -return TOK_PrintableString; +#line 327 "asn1p_l.l" +return TOK_REAL; YY_BREAK case 93: YY_RULE_SETUP -#line 370 "asn1p_l.l" -return TOK_PRIVATE; +#line 328 "asn1p_l.l" +return TOK_RELATIVE_OID; YY_BREAK case 94: YY_RULE_SETUP -#line 371 "asn1p_l.l" -return TOK_REAL; +#line 329 "asn1p_l.l" +return TOK_SEQUENCE; YY_BREAK case 95: YY_RULE_SETUP -#line 372 "asn1p_l.l" -return TOK_RELATIVE_OID; +#line 330 "asn1p_l.l" +return TOK_SET; YY_BREAK case 96: YY_RULE_SETUP -#line 373 "asn1p_l.l" -return TOK_SEQUENCE; +#line 331 "asn1p_l.l" +return TOK_SIZE; YY_BREAK case 97: YY_RULE_SETUP -#line 374 "asn1p_l.l" -return TOK_SET; +#line 332 "asn1p_l.l" +return TOK_STRING; YY_BREAK case 98: YY_RULE_SETUP -#line 375 "asn1p_l.l" -return TOK_SIZE; +#line 333 "asn1p_l.l" +return TOK_SYNTAX; YY_BREAK case 99: YY_RULE_SETUP -#line 376 "asn1p_l.l" -return TOK_STRING; +#line 334 "asn1p_l.l" +return TOK_T61String; YY_BREAK case 100: YY_RULE_SETUP -#line 377 "asn1p_l.l" -return TOK_SYNTAX; +#line 335 "asn1p_l.l" +return TOK_TAGS; YY_BREAK case 101: YY_RULE_SETUP -#line 378 "asn1p_l.l" -return TOK_T61String; +#line 336 "asn1p_l.l" +return TOK_TeletexString; YY_BREAK case 102: YY_RULE_SETUP -#line 379 "asn1p_l.l" -return TOK_TAGS; +#line 337 "asn1p_l.l" +return TOK_TRUE; YY_BREAK case 103: YY_RULE_SETUP -#line 380 "asn1p_l.l" -return TOK_TeletexString; +#line 338 "asn1p_l.l" +return TOK_TYPE_IDENTIFIER; YY_BREAK case 104: YY_RULE_SETUP -#line 381 "asn1p_l.l" -return TOK_TRUE; +#line 339 "asn1p_l.l" +return TOK_UNION; YY_BREAK case 105: YY_RULE_SETUP -#line 382 "asn1p_l.l" -return TOK_TYPE_IDENTIFIER; +#line 340 "asn1p_l.l" +return TOK_UNIQUE; YY_BREAK case 106: YY_RULE_SETUP -#line 383 "asn1p_l.l" -return TOK_UNION; +#line 341 "asn1p_l.l" +return TOK_UNIVERSAL; YY_BREAK case 107: YY_RULE_SETUP -#line 384 "asn1p_l.l" -return TOK_UNIQUE; - YY_BREAK -case 108: -YY_RULE_SETUP -#line 385 "asn1p_l.l" -return TOK_UNIVERSAL; - YY_BREAK -case 109: -YY_RULE_SETUP -#line 386 "asn1p_l.l" +#line 342 "asn1p_l.l" { if(TYPE_LIFETIME(1994, 0)) return TOK_UniversalString; REJECT; } YY_BREAK -case 110: +case 108: YY_RULE_SETUP -#line 391 "asn1p_l.l" +#line 347 "asn1p_l.l" return TOK_UTCTime; YY_BREAK -case 111: +case 109: YY_RULE_SETUP -#line 392 "asn1p_l.l" +#line 348 "asn1p_l.l" { if(TYPE_LIFETIME(1994, 0)) return TOK_UTF8String; REJECT; } YY_BREAK +case 110: +YY_RULE_SETUP +#line 353 "asn1p_l.l" +return TOK_VideotexString; + YY_BREAK +case 111: +YY_RULE_SETUP +#line 354 "asn1p_l.l" +return TOK_VisibleString; + YY_BREAK case 112: YY_RULE_SETUP -#line 397 "asn1p_l.l" -return TOK_VideotexString; +#line 355 "asn1p_l.l" +return TOK_WITH; YY_BREAK case 113: YY_RULE_SETUP -#line 398 "asn1p_l.l" -return TOK_VisibleString; - YY_BREAK -case 114: -YY_RULE_SETUP -#line 399 "asn1p_l.l" -return TOK_WITH; - YY_BREAK -case 115: -YY_RULE_SETUP -#line 402 "asn1p_l.l" +#line 358 "asn1p_l.l" { CHECK_DASHES; asn1p_lval.tv_str = strdup(yytext); return TOK_typefieldreference; } YY_BREAK -case 116: +case 114: YY_RULE_SETUP -#line 408 "asn1p_l.l" +#line 364 "asn1p_l.l" { CHECK_DASHES; asn1p_lval.tv_str = strdup(yytext); return TOK_valuefieldreference; } YY_BREAK -case 117: +case 115: YY_RULE_SETUP -#line 415 "asn1p_l.l" +#line 371 "asn1p_l.l" { CHECK_DASHES; asn1p_lval.tv_str = strdup(yytext); @@ -2895,9 +2795,9 @@ YY_RULE_SETUP /* * objectclassreference */ -case 118: +case 116: YY_RULE_SETUP -#line 424 "asn1p_l.l" +#line 380 "asn1p_l.l" { CHECK_DASHES; asn1p_lval.tv_str = strdup(yytext); @@ -2909,43 +2809,43 @@ YY_RULE_SETUP * NOTE: TOK_objectclassreference must be combined * with this token to produce true typereference. */ -case 119: +case 117: YY_RULE_SETUP -#line 435 "asn1p_l.l" +#line 391 "asn1p_l.l" { CHECK_DASHES; asn1p_lval.tv_str = strdup(yytext); return TOK_typereference; } YY_BREAK +case 118: +YY_RULE_SETUP +#line 397 "asn1p_l.l" +return TOK_PPEQ; + YY_BREAK +case 119: +YY_RULE_SETUP +#line 399 "asn1p_l.l" +return TOK_ThreeDots; + YY_BREAK case 120: YY_RULE_SETUP -#line 441 "asn1p_l.l" -return TOK_PPEQ; +#line 400 "asn1p_l.l" +return TOK_TwoDots; YY_BREAK case 121: YY_RULE_SETUP -#line 443 "asn1p_l.l" -return TOK_ThreeDots; +#line 402 "asn1p_l.l" +/* Ignore whitespace */ YY_BREAK case 122: YY_RULE_SETUP -#line 444 "asn1p_l.l" -return TOK_TwoDots; +#line 404 "asn1p_l.l" +return yytext[0]; YY_BREAK case 123: YY_RULE_SETUP -#line 446 "asn1p_l.l" -return yytext[0]; - YY_BREAK -case 124: -YY_RULE_SETUP -#line 448 "asn1p_l.l" -/* Ignore whitespace */ - YY_BREAK -case 125: -YY_RULE_SETUP -#line 450 "asn1p_l.l" +#line 406 "asn1p_l.l" { if(TYPE_LIFETIME(1994, 0)) fprintf(stderr, "ERROR: "); @@ -2958,41 +2858,41 @@ YY_RULE_SETUP } YY_BREAK +case 124: +YY_RULE_SETUP +#line 419 "asn1p_l.l" +{ + asn1p_lval.tv_opaque.buf = strdup(yytext); + asn1p_lval.tv_opaque.len = yyleng; + return TOK_opaque; + } + YY_BREAK +case 125: +YY_RULE_SETUP +#line 425 "asn1p_l.l" +{ + asn1p_lval.tv_opaque.buf = strdup(yytext); + asn1p_lval.tv_opaque.len = yyleng; + return TOK_opaque; + } + YY_BREAK case 126: YY_RULE_SETUP -#line 463 "asn1p_l.l" -{ - asn1p_lval.tv_opaque.buf = strdup(yytext); - asn1p_lval.tv_opaque.len = yyleng; - return TOK_opaque; - } - YY_BREAK -case 127: -YY_RULE_SETUP -#line 469 "asn1p_l.l" -{ - asn1p_lval.tv_opaque.buf = strdup(yytext); - asn1p_lval.tv_opaque.len = yyleng; - return TOK_opaque; - } - YY_BREAK -case 128: -YY_RULE_SETUP -#line 475 "asn1p_l.l" +#line 431 "asn1p_l.l" { yy_pop_state(); return '}'; } YY_BREAK -case 129: +case 127: YY_RULE_SETUP -#line 482 "asn1p_l.l" +#line 438 "asn1p_l.l" return yytext[0]; /* Union, Intersection */ YY_BREAK -case 130: +case 128: YY_RULE_SETUP -#line 484 "asn1p_l.l" +#line 440 "asn1p_l.l" { fprintf(stderr, "Unexpected token at line %d: \"%s\"\n", @@ -3013,19 +2913,19 @@ case YY_STATE_EOF(quoted): case YY_STATE_EOF(opaque): case YY_STATE_EOF(encoding_control): case YY_STATE_EOF(with_syntax): -#line 497 "asn1p_l.l" +#line 453 "asn1p_l.l" { while(YYSTATE != INITIAL) yy_pop_state(); yyterminate(); } YY_BREAK -case 131: +case 129: YY_RULE_SETUP -#line 504 "asn1p_l.l" +#line 460 "asn1p_l.l" YY_FATAL_ERROR( "flex scanner jammed" ); YY_BREAK -#line 3029 "asn1p_l.c" +#line 2929 "asn1p_l.c" case YY_END_OF_BUFFER: { @@ -3312,7 +3212,7 @@ static yy_state_type yy_get_previous_state() while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 709 ) + if ( yy_current_state >= 670 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; @@ -3342,11 +3242,11 @@ yy_state_type yy_current_state; while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state ) { yy_current_state = (int) yy_def[yy_current_state]; - if ( yy_current_state >= 709 ) + if ( yy_current_state >= 670 ) yy_c = yy_meta[(unsigned int) yy_c]; } yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c]; - yy_is_jam = (yy_current_state == 708); + yy_is_jam = (yy_current_state == 669); if ( ! yy_is_jam ) *yy_state_ptr++ = yy_current_state; @@ -3907,7 +3807,7 @@ int main() return 0; } #endif -#line 504 "asn1p_l.l" +#line 460 "asn1p_l.l" /* diff --git a/libasn1parser/asn1p_l.l b/libasn1parser/asn1p_l.l index efa4c1a1..07fa6767 100644 --- a/libasn1parser/asn1p_l.l +++ b/libasn1parser/asn1p_l.l @@ -24,7 +24,7 @@ int asn1p_lexer_pedantic_1990 = 0; int asn1p_lexer_types_year = 0; int asn1p_lexer_constructs_year = 0; static int _check_dashes(char *ptr); -static asn1_integer_t asn1p_atoi(char *ptr); /* errno is either 0 or ERANGE */ +static asn1c_integer_t asn1p_atoi(char *ptr); /* errno is either 0 or ERANGE */ /* * Check that the type is defined in the year of the standard choosen. @@ -240,50 +240,6 @@ WSP [\t\r\v\f\n ] return TOK_number; } - /* - * Tags - */ -\[(UNIVERSAL[ \t\r\v\f\n]+|APPLICATION[ \t\r\v\f\n]+|PRIVATE[ \t\r\v\f\n]+)?[0-9]+\] { - char *p; - memset(&asn1p_lval.a_tag, 0, sizeof(asn1p_lval.a_tag)); - switch(yytext[1]) { - case 'U': - asn1p_lval.a_tag.tag_class = TC_UNIVERSAL; - p = yytext + sizeof("UNIVERSAL") + 1; - break; - case 'A': - asn1p_lval.a_tag.tag_class = TC_APPLICATION; - p = yytext + sizeof("APPLICATION") + 1; - break; - case 'P': - asn1p_lval.a_tag.tag_class = TC_PRIVATE; - p = yytext + sizeof("PRIVATE") + 1; - break; - default: - assert(yytext[1] >= '0' && yytext[1] <= '9'); - asn1p_lval.a_tag.tag_class = TC_CONTEXT_SPECIFIC; - p = yytext + 1; - break; - } - asn1p_lval.a_tag.tag_value = asn1p_atoi(p); - if(*p == '0' && asn1p_lval.a_tag.tag_value) { - fprintf(stderr, - "Tag value at line %d " - "cannot start with zero " - "and have multiple digits: \"%s\"\n", - yylineno, yytext); - return -1; - } - return TOK_tag; - } - -\[[A-Z]+[ \t\r\v\f\n]+[0-9]+\] { - fprintf(stderr, - "Unsupported tag syntax at line %d: \"%s\"\n", - yylineno, yytext); - return -1; - } - ABSENT return TOK_ABSENT; /* ABSTRACT-SYNTAX return TOK_ABSTRACT_SYNTAX; @@ -443,10 +399,10 @@ WITH return TOK_WITH; "..." return TOK_ThreeDots; ".." return TOK_TwoDots; -[(){},;:|!.&@\[\]] return yytext[0]; - {WSP}+ /* Ignore whitespace */ +[(){},;:|!.&@\[\]] return yytext[0]; + [^A-Za-z0-9:=,{}<.@()[]'\"|&^*;!-] { if(TYPE_LIFETIME(1994, 0)) fprintf(stderr, "ERROR: "); @@ -550,9 +506,9 @@ _check_dashes(char *ptr) { return 0; } -static asn1_integer_t +static asn1c_integer_t asn1p_atoi(char *ptr) { - asn1_integer_t value; + asn1c_integer_t value; errno = 0; /* Clear the error code */ if(sizeof(value) <= sizeof(int)) { diff --git a/libasn1parser/asn1p_y.c b/libasn1parser/asn1p_y.c index a3af2985..36a7b3b1 100644 --- a/libasn1parser/asn1p_y.c +++ b/libasn1parser/asn1p_y.c @@ -109,7 +109,6 @@ #define TOK_UNION 352 #define TOK_TwoDots 353 #define TOK_ThreeDots 354 -#define TOK_tag 355 #line 1 "asn1p_y.y" @@ -205,26 +204,26 @@ typedef union { -#define YYFINAL 407 +#define YYFINAL 415 #define YYFLAG -32768 -#define YYNTBASE 115 +#define YYNTBASE 116 -#define YYTRANSLATE(x) ((unsigned)(x) <= 355 ? yytranslate[x] : 213) +#define YYTRANSLATE(x) ((unsigned)(x) <= 354 ? yytranslate[x] : 217) static const char yytranslate[] = { 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 111, 2, 2, 2, 2, 2, 2, 106, - 107, 2, 2, 109, 2, 112, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 110, 108, 113, - 2, 2, 2, 114, 2, 2, 2, 2, 2, 2, + 2, 2, 110, 2, 2, 2, 2, 2, 2, 105, + 106, 2, 2, 108, 2, 111, 2, 2, 2, 2, + 2, 2, 2, 2, 2, 2, 2, 109, 107, 112, + 2, 2, 2, 113, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 97, 2, 2, 2, 2, 2, 2, + 114, 2, 115, 97, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 104, 99, 105, 2, 2, 2, 2, 2, + 2, 2, 103, 99, 104, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -247,7 +246,7 @@ static const char yytranslate[] = { 0, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, - 98, 100, 101, 102, 103 + 98, 100, 101, 102 }; #if YYDEBUG != 0 @@ -277,84 +276,86 @@ static const short yyprhs[] = { 0, 631, 633, 635, 637, 639, 641, 643, 647, 652, 654, 658, 661, 665, 667, 671, 672, 674, 676, 679, 682, 686, 688, 692, 694, 699, 704, 706, 708, 710, 712, - 713, 715, 717, 720, 723, 725, 727, 729, 730, 732 + 713, 715, 718, 723, 724, 726, 728, 730, 731, 733, + 735, 737, 739, 741, 742, 744 }; -static const short yyrhs[] = { 116, - 0, 117, 0, 116, 117, 0, 209, 118, 34, 122, - 3, 21, 125, 39, 0, 0, 119, 0, 104, 120, - 105, 0, 104, 105, 0, 121, 0, 120, 121, 0, - 212, 0, 212, 106, 9, 107, 0, 9, 0, 0, - 123, 0, 124, 0, 123, 124, 0, 41, 84, 0, +static const short yyrhs[] = { 117, + 0, 118, 0, 117, 118, 0, 213, 119, 34, 123, + 3, 21, 126, 39, 0, 0, 120, 0, 103, 121, + 104, 0, 103, 104, 0, 122, 0, 121, 122, 0, + 216, 0, 216, 105, 9, 106, 0, 9, 0, 0, + 124, 0, 125, 0, 124, 125, 0, 41, 84, 0, 52, 84, 0, 20, 84, 0, 43, 53, 0, 12, - 57, 0, 0, 126, 0, 127, 0, 126, 127, 0, - 129, 0, 134, 0, 142, 0, 169, 0, 137, 0, - 0, 38, 12, 128, 0, 177, 0, 54, 130, 108, - 0, 54, 46, 0, 131, 0, 130, 131, 0, 132, - 46, 209, 118, 0, 133, 0, 132, 109, 133, 0, - 209, 0, 209, 104, 105, 0, 212, 0, 42, 135, - 108, 0, 42, 17, 108, 0, 42, 108, 0, 136, - 0, 135, 109, 136, 0, 209, 0, 209, 104, 105, - 0, 212, 0, 209, 138, 3, 104, 139, 105, 0, - 164, 0, 174, 0, 0, 140, 0, 141, 0, 140, - 109, 141, 0, 102, 0, 185, 0, 209, 3, 207, - 87, 0, 209, 3, 162, 0, 209, 3, 152, 0, - 209, 104, 143, 105, 3, 162, 0, 144, 0, 143, - 109, 144, 0, 209, 0, 209, 110, 212, 0, 174, - 110, 212, 0, 146, 0, 145, 109, 146, 0, 162, - 0, 212, 0, 0, 148, 0, 149, 0, 148, 109, - 149, 0, 212, 162, 201, 0, 30, 68, 162, 0, - 161, 0, 151, 0, 150, 109, 151, 0, 212, 162, - 0, 161, 0, 28, 104, 154, 105, 156, 0, 0, - 88, 0, 155, 0, 154, 109, 155, 0, 167, 201, - 0, 167, 162, 153, 201, 0, 167, 167, 153, 201, - 0, 0, 157, 0, 0, 95, 82, 104, 158, 159, - 105, 0, 160, 0, 159, 160, 0, 4, 0, 167, - 0, 102, 0, 102, 111, 172, 0, 102, 111, 206, - 0, 207, 163, 181, 0, 176, 0, 177, 0, 27, - 104, 150, 105, 0, 78, 104, 147, 105, 0, 79, - 104, 147, 105, 0, 78, 181, 68, 211, 207, 163, - 0, 79, 181, 68, 211, 207, 163, 0, 18, 0, - 18, 35, 25, 212, 0, 209, 104, 145, 105, 0, - 164, 0, 56, 68, 164, 0, 11, 0, 11, 112, - 209, 0, 210, 112, 209, 0, 11, 112, 212, 0, - 210, 0, 210, 112, 165, 0, 166, 0, 165, 112, - 166, 0, 168, 0, 168, 0, 13, 0, 14, 0, - 212, 138, 3, 170, 0, 212, 110, 170, 0, 0, - 104, 171, 173, 0, 63, 0, 45, 0, 86, 0, - 5, 0, 7, 0, 6, 0, 206, 0, 172, 0, - 212, 0, 209, 112, 212, 0, 4, 0, 173, 4, - 0, 24, 0, 63, 0, 76, 0, 175, 0, 67, + 57, 0, 0, 127, 0, 128, 0, 127, 128, 0, + 130, 0, 135, 0, 143, 0, 170, 0, 138, 0, + 0, 38, 12, 129, 0, 178, 0, 54, 131, 107, + 0, 54, 46, 0, 132, 0, 131, 132, 0, 133, + 46, 213, 119, 0, 134, 0, 133, 108, 134, 0, + 213, 0, 213, 103, 104, 0, 216, 0, 42, 136, + 107, 0, 42, 17, 107, 0, 42, 107, 0, 137, + 0, 136, 108, 137, 0, 213, 0, 213, 103, 104, + 0, 216, 0, 213, 139, 3, 103, 140, 104, 0, + 165, 0, 175, 0, 0, 141, 0, 142, 0, 141, + 108, 142, 0, 102, 0, 186, 0, 213, 3, 208, + 87, 0, 213, 3, 163, 0, 213, 3, 153, 0, + 213, 103, 144, 104, 3, 163, 0, 145, 0, 144, + 108, 145, 0, 213, 0, 213, 109, 216, 0, 175, + 109, 216, 0, 147, 0, 146, 108, 147, 0, 163, + 0, 216, 0, 0, 149, 0, 150, 0, 149, 108, + 150, 0, 216, 163, 202, 0, 30, 68, 163, 0, + 162, 0, 152, 0, 151, 108, 152, 0, 216, 163, + 0, 162, 0, 28, 103, 155, 104, 157, 0, 0, + 88, 0, 156, 0, 155, 108, 156, 0, 168, 202, + 0, 168, 163, 154, 202, 0, 168, 168, 154, 202, + 0, 0, 158, 0, 0, 95, 82, 103, 159, 160, + 104, 0, 161, 0, 160, 161, 0, 4, 0, 168, + 0, 102, 0, 102, 110, 173, 0, 102, 110, 207, + 0, 208, 164, 182, 0, 177, 0, 178, 0, 27, + 103, 151, 104, 0, 78, 103, 148, 104, 0, 79, + 103, 148, 104, 0, 78, 182, 68, 215, 208, 164, + 0, 79, 182, 68, 215, 208, 164, 0, 18, 0, + 18, 35, 25, 216, 0, 213, 103, 146, 104, 0, + 165, 0, 56, 68, 165, 0, 11, 0, 11, 111, + 213, 0, 214, 111, 213, 0, 11, 111, 216, 0, + 214, 0, 214, 111, 166, 0, 167, 0, 166, 111, + 167, 0, 169, 0, 169, 0, 13, 0, 14, 0, + 216, 139, 3, 171, 0, 216, 109, 171, 0, 0, + 103, 172, 174, 0, 63, 0, 45, 0, 86, 0, + 5, 0, 7, 0, 6, 0, 207, 0, 173, 0, + 216, 0, 213, 111, 216, 0, 4, 0, 174, 4, + 0, 24, 0, 63, 0, 76, 0, 176, 0, 67, 81, 0, 65, 51, 0, 77, 0, 44, 0, 36, 71, 0, 26, 81, 0, 91, 0, 47, 0, 58, - 0, 40, 0, 22, 81, 0, 174, 0, 175, 203, + 0, 40, 0, 22, 81, 0, 175, 0, 176, 204, 0, 23, 0, 48, 0, 49, 0, 50, 0, 59, 0, 64, 0, 74, 0, 83, 0, 85, 0, 90, 0, 92, 0, 93, 0, 94, 0, 66, 0, 99, 0, 100, 0, 97, 0, 98, 0, 96, 0, 0, - 182, 0, 183, 0, 80, 106, 184, 107, 0, 106, - 184, 107, 0, 183, 106, 184, 107, 0, 185, 0, - 185, 109, 102, 0, 185, 109, 102, 109, 185, 0, - 186, 0, 185, 178, 186, 0, 185, 179, 186, 0, - 186, 180, 186, 0, 188, 106, 184, 107, 0, 106, - 184, 107, 0, 189, 0, 189, 187, 189, 0, 61, - 187, 189, 0, 189, 187, 60, 0, 61, 187, 60, - 0, 195, 0, 190, 0, 101, 0, 101, 113, 0, - 113, 101, 0, 113, 101, 113, 0, 80, 0, 46, - 0, 206, 0, 212, 0, 6, 0, 45, 0, 86, - 0, 95, 30, 104, 191, 105, 0, 192, 0, 191, - 109, 192, 0, 102, 0, 212, 181, 193, 0, 0, - 194, 0, 73, 0, 15, 0, 69, 0, 196, 0, - 197, 0, 104, 209, 105, 0, 196, 104, 198, 105, - 0, 199, 0, 198, 109, 199, 0, 114, 200, 0, - 114, 112, 200, 0, 212, 0, 200, 112, 212, 0, - 0, 202, 0, 69, 0, 33, 170, 0, 104, 105, - 0, 104, 204, 105, 0, 205, 0, 204, 109, 205, - 0, 212, 0, 212, 106, 206, 107, 0, 212, 106, - 172, 107, 0, 206, 0, 102, 0, 9, 0, 10, - 0, 0, 208, 0, 103, 0, 103, 52, 0, 103, - 41, 0, 11, 0, 12, 0, 12, 0, 0, 212, - 0, 8, 0 + 183, 0, 184, 0, 80, 105, 185, 106, 0, 105, + 185, 106, 0, 184, 105, 185, 106, 0, 186, 0, + 186, 108, 102, 0, 186, 108, 102, 108, 186, 0, + 187, 0, 186, 179, 187, 0, 186, 180, 187, 0, + 187, 181, 187, 0, 189, 105, 185, 106, 0, 105, + 185, 106, 0, 190, 0, 190, 188, 190, 0, 61, + 188, 190, 0, 190, 188, 60, 0, 61, 188, 60, + 0, 196, 0, 191, 0, 101, 0, 101, 112, 0, + 112, 101, 0, 112, 101, 112, 0, 80, 0, 46, + 0, 207, 0, 216, 0, 6, 0, 45, 0, 86, + 0, 95, 30, 103, 192, 104, 0, 193, 0, 192, + 108, 193, 0, 102, 0, 216, 182, 194, 0, 0, + 195, 0, 73, 0, 15, 0, 69, 0, 197, 0, + 198, 0, 103, 213, 104, 0, 197, 103, 199, 104, + 0, 200, 0, 199, 108, 200, 0, 113, 201, 0, + 113, 111, 201, 0, 216, 0, 201, 111, 216, 0, + 0, 203, 0, 69, 0, 33, 171, 0, 103, 104, + 0, 103, 205, 104, 0, 206, 0, 205, 108, 206, + 0, 216, 0, 216, 105, 207, 106, 0, 216, 105, + 173, 106, 0, 207, 0, 102, 0, 9, 0, 10, + 0, 0, 209, 0, 210, 212, 0, 114, 211, 9, + 115, 0, 0, 89, 0, 19, 0, 75, 0, 0, + 52, 0, 41, 0, 11, 0, 12, 0, 12, 0, + 0, 216, 0, 8, 0 }; #endif @@ -386,7 +387,8 @@ static const short yyrline[] = { 0, 1690, 1693, 1697, 1700, 1705, 1709, 1717, 1732, 1738, 1745, 1758, 1770, 1785, 1789, 1806, 1811, 1814, 1819, 1841, 1846, 1851, 1857, 1863, 1871, 1879, 1887, 1894, 1904, 1909, 1939, - 1941, 1944, 1949, 1953, 1959, 1964, 1971, 1978, 1980, 1984 + 1941, 1944, 1951, 1957, 1959, 1960, 1961, 1964, 1966, 1967, + 1970, 1975, 1982, 1989, 1991, 1995 }; #endif @@ -412,7 +414,7 @@ static const char * const yytname[] = { "$","error","$undefined.","TOK_PPEQ", "TOK_TRUE","TOK_TYPE_IDENTIFIER","TOK_UNIQUE","TOK_UNIVERSAL","TOK_UniversalString", "TOK_UTCTime","TOK_UTF8String","TOK_VideotexString","TOK_VisibleString","TOK_WITH", "TOK_EXCEPT","'^'","TOK_INTERSECTION","'|'","TOK_UNION","TOK_TwoDots","TOK_ThreeDots", -"TOK_tag","'{'","'}'","'('","')'","';'","','","':'","'!'","'.'","'<'","'@'", +"'{'","'}'","'('","')'","';'","','","':'","'!'","'.'","'<'","'@'","'['","']'", "ParsedGrammar","ModuleList","ModuleSpecification","optObjectIdentifier","ObjectIdentifier", "ObjectIdentifierBody","ObjectIdentifierElement","optModuleSpecificationFlags", "ModuleSpecificationFlags","ModuleSpecificationFlag","optModuleSpecificationBody", @@ -433,38 +435,39 @@ static const char * const yytname[] = { "$","error","$undefined.","TOK_PPEQ", "WithComponentsElement","optPresenceConstraint","PresenceConstraint","TableConstraint", "SimpleTableConstraint","ComponentRelationConstraint","AtNotationList","AtNotationElement", "ComponentIdList","optMarker","Marker","UniverationDefinition","UniverationList", -"UniverationElement","SignedNumber","optTag","Tag","TypeRefName","ObjectClassReference", -"optIdentifier","Identifier", NULL +"UniverationElement","SignedNumber","optTag","Tag","TagTypeValue","TagClass", +"TagPlicit","TypeRefName","ObjectClassReference","optIdentifier","Identifier", NULL }; #endif static const short yyr1[] = { 0, - 115, 116, 116, 117, 118, 118, 119, 119, 120, 120, - 121, 121, 121, 122, 122, 123, 123, 124, 124, 124, - 124, 124, 125, 125, 126, 126, 127, 127, 127, 127, - 127, 128, 127, 127, 129, 129, 130, 130, 131, 132, - 132, 133, 133, 133, 134, 134, 134, 135, 135, 136, - 136, 136, 137, 138, 138, 139, 139, 140, 140, 141, - 141, 142, 142, 142, 142, 143, 143, 144, 144, 144, - 145, 145, 146, 146, 147, 147, 148, 148, 149, 149, - 149, 150, 150, 151, 151, 152, 153, 153, 154, 154, - 155, 155, 155, 156, 156, 158, 157, 159, 159, 160, - 160, 161, 161, 161, 162, 163, 163, 163, 163, 163, - 163, 163, 163, 163, 163, 163, 163, 164, 164, 164, - 164, 164, 164, 165, 165, 166, 167, 168, 168, 169, - 170, 171, 170, 170, 170, 170, 170, 170, 170, 170, - 170, 172, 172, 173, 173, 174, 174, 174, 174, 174, - 174, 174, 174, 174, 174, 174, 174, 175, 175, 175, - 176, 176, 177, 177, 177, 177, 177, 177, 177, 177, - 177, 177, 177, 177, 177, 177, 178, 178, 179, 179, - 180, 181, 181, 182, 182, 183, 183, 184, 184, 184, - 185, 185, 185, 185, 186, 186, 186, 186, 186, 186, - 186, 186, 186, 187, 187, 187, 187, 188, 188, 189, - 189, 189, 189, 189, 190, 191, 191, 192, 192, 193, - 193, 194, 194, 194, 195, 195, 196, 197, 198, 198, - 199, 199, 200, 200, 201, 201, 202, 202, 203, 203, - 204, 204, 205, 205, 205, 205, 205, 206, 206, 207, - 207, 208, 208, 208, 209, 209, 210, 211, 211, 212 + 116, 117, 117, 118, 119, 119, 120, 120, 121, 121, + 122, 122, 122, 123, 123, 124, 124, 125, 125, 125, + 125, 125, 126, 126, 127, 127, 128, 128, 128, 128, + 128, 129, 128, 128, 130, 130, 131, 131, 132, 133, + 133, 134, 134, 134, 135, 135, 135, 136, 136, 137, + 137, 137, 138, 139, 139, 140, 140, 141, 141, 142, + 142, 143, 143, 143, 143, 144, 144, 145, 145, 145, + 146, 146, 147, 147, 148, 148, 149, 149, 150, 150, + 150, 151, 151, 152, 152, 153, 154, 154, 155, 155, + 156, 156, 156, 157, 157, 159, 158, 160, 160, 161, + 161, 162, 162, 162, 163, 164, 164, 164, 164, 164, + 164, 164, 164, 164, 164, 164, 164, 165, 165, 165, + 165, 165, 165, 166, 166, 167, 168, 169, 169, 170, + 171, 172, 171, 171, 171, 171, 171, 171, 171, 171, + 171, 173, 173, 174, 174, 175, 175, 175, 175, 175, + 175, 175, 175, 175, 175, 175, 175, 176, 176, 176, + 177, 177, 178, 178, 178, 178, 178, 178, 178, 178, + 178, 178, 178, 178, 178, 178, 179, 179, 180, 180, + 181, 182, 182, 183, 183, 184, 184, 185, 185, 185, + 186, 186, 186, 186, 187, 187, 187, 187, 187, 187, + 187, 187, 187, 188, 188, 188, 188, 189, 189, 190, + 190, 190, 190, 190, 191, 192, 192, 193, 193, 194, + 194, 195, 195, 195, 196, 196, 197, 198, 199, 199, + 200, 200, 201, 201, 202, 202, 203, 203, 204, 204, + 205, 205, 206, 206, 206, 206, 206, 207, 207, 208, + 208, 209, 210, 211, 211, 211, 211, 212, 212, 212, + 213, 213, 214, 215, 215, 216 }; static const short yyr2[] = { 0, @@ -493,11 +496,12 @@ static const short yyr2[] = { 0, 1, 1, 1, 1, 1, 1, 3, 4, 1, 3, 2, 3, 1, 3, 0, 1, 1, 2, 2, 3, 1, 3, 1, 4, 4, 1, 1, 1, 1, 0, - 1, 1, 2, 2, 1, 1, 1, 0, 1, 1 + 1, 2, 4, 0, 1, 1, 1, 0, 1, 1, + 1, 1, 1, 0, 1, 1 }; static const short yydefact[] = { 0, - 255, 256, 1, 2, 5, 3, 0, 0, 6, 260, + 261, 262, 1, 2, 5, 3, 0, 0, 6, 266, 13, 8, 0, 9, 11, 14, 7, 10, 0, 0, 0, 0, 0, 0, 0, 15, 16, 0, 22, 20, 18, 21, 19, 0, 17, 12, 23, 163, 0, 0, @@ -505,245 +509,249 @@ static const short yydefact[] = { 0, 172, 173, 174, 175, 0, 24, 25, 27, 28, 31, 29, 30, 34, 0, 0, 32, 0, 47, 0, 48, 50, 52, 36, 0, 37, 0, 40, 42, 44, 4, - 26, 250, 118, 257, 0, 146, 0, 0, 159, 153, + 26, 250, 118, 263, 0, 146, 0, 0, 159, 153, 157, 158, 147, 0, 0, 148, 152, 156, 0, 0, 54, 55, 149, 122, 0, 33, 46, 45, 0, 0, - 35, 38, 0, 0, 0, 0, 252, 64, 63, 0, - 251, 0, 160, 155, 154, 151, 150, 0, 66, 0, - 68, 0, 0, 0, 49, 51, 5, 41, 43, 0, - 254, 253, 118, 257, 113, 0, 0, 182, 182, 62, - 182, 116, 161, 149, 106, 107, 0, 119, 121, 0, - 0, 0, 0, 56, 128, 129, 123, 124, 126, 120, - 137, 139, 138, 248, 249, 135, 134, 136, 132, 130, - 141, 140, 0, 142, 39, 0, 89, 250, 127, 0, - 0, 0, 0, 75, 0, 0, 183, 184, 75, 0, - 105, 0, 162, 250, 250, 67, 70, 69, 212, 213, - 209, 0, 208, 214, 0, 60, 0, 0, 0, 57, - 58, 61, 191, 0, 197, 203, 202, 225, 226, 210, - 211, 0, 0, 0, 0, 94, 0, 0, 237, 87, - 87, 91, 236, 0, 0, 102, 0, 82, 85, 250, - 117, 0, 0, 0, 76, 77, 81, 250, 0, 188, - 258, 0, 0, 258, 247, 239, 0, 241, 246, 243, - 0, 71, 73, 74, 65, 204, 0, 0, 0, 0, - 0, 53, 0, 179, 180, 177, 178, 0, 0, 181, - 0, 0, 0, 0, 125, 144, 133, 143, 131, 0, - 86, 95, 90, 238, 88, 235, 235, 114, 0, 108, - 0, 84, 0, 250, 109, 0, 235, 186, 0, 250, - 259, 0, 110, 250, 240, 0, 0, 115, 250, 205, - 206, 201, 199, 0, 227, 196, 59, 192, 193, 194, - 0, 200, 198, 0, 0, 229, 145, 0, 92, 93, - 103, 104, 142, 83, 185, 80, 78, 79, 189, 0, - 187, 0, 242, 0, 0, 72, 207, 218, 0, 216, - 182, 195, 0, 231, 233, 228, 0, 96, 0, 111, - 112, 245, 244, 215, 0, 220, 232, 0, 230, 0, - 190, 217, 223, 224, 222, 219, 221, 234, 100, 0, - 98, 101, 97, 99, 0, 0, 0 + 35, 38, 0, 0, 0, 0, 254, 64, 63, 0, + 251, 258, 0, 160, 155, 154, 151, 150, 0, 66, + 0, 68, 0, 0, 0, 49, 51, 5, 41, 43, + 0, 256, 257, 255, 0, 118, 263, 113, 0, 0, + 182, 182, 62, 182, 116, 161, 149, 106, 107, 0, + 260, 259, 252, 119, 121, 0, 0, 0, 0, 56, + 128, 129, 123, 124, 126, 120, 137, 139, 138, 248, + 249, 135, 134, 136, 132, 130, 141, 140, 0, 142, + 39, 0, 89, 250, 127, 0, 0, 0, 0, 0, + 75, 0, 0, 183, 184, 75, 0, 105, 0, 162, + 250, 250, 67, 70, 69, 212, 213, 209, 0, 208, + 214, 0, 60, 0, 0, 0, 57, 58, 61, 191, + 0, 197, 203, 202, 225, 226, 210, 211, 0, 0, + 0, 0, 94, 0, 0, 237, 87, 87, 91, 236, + 0, 253, 0, 102, 0, 82, 85, 250, 117, 0, + 0, 0, 76, 77, 81, 250, 0, 188, 264, 0, + 0, 264, 247, 239, 0, 241, 246, 243, 0, 71, + 73, 74, 65, 204, 0, 0, 0, 0, 0, 53, + 0, 179, 180, 177, 178, 0, 0, 181, 0, 0, + 0, 0, 125, 144, 133, 143, 131, 0, 86, 95, + 90, 238, 88, 235, 235, 114, 0, 108, 0, 84, + 0, 250, 109, 0, 235, 186, 0, 250, 265, 0, + 110, 250, 240, 0, 0, 115, 250, 205, 206, 201, + 199, 0, 227, 196, 59, 192, 193, 194, 0, 200, + 198, 0, 0, 229, 145, 0, 92, 93, 103, 104, + 142, 83, 185, 80, 78, 79, 189, 0, 187, 0, + 242, 0, 0, 72, 207, 218, 0, 216, 182, 195, + 0, 231, 233, 228, 0, 96, 0, 111, 112, 245, + 244, 215, 0, 220, 232, 0, 230, 0, 190, 217, + 223, 224, 222, 219, 221, 234, 100, 0, 98, 101, + 97, 99, 0, 0, 0 }; -static const short yydefgoto[] = { 405, +static const short yydefgoto[] = { 413, 3, 4, 8, 9, 13, 14, 25, 26, 27, 55, 56, 57, 106, 58, 74, 75, 76, 77, 59, 69, - 70, 60, 100, 219, 220, 221, 61, 128, 129, 271, - 272, 254, 255, 256, 247, 248, 118, 306, 186, 187, - 301, 302, 390, 400, 401, 257, 273, 151, 152, 167, - 168, 188, 189, 62, 180, 233, 181, 297, 153, 103, - 155, 156, 288, 289, 291, 196, 197, 198, 259, 260, - 223, 278, 224, 225, 226, 369, 370, 396, 397, 227, - 228, 229, 345, 346, 374, 242, 243, 203, 267, 268, - 230, 244, 121, 183, 104, 320, 231 + 70, 60, 100, 226, 227, 228, 61, 129, 130, 279, + 280, 262, 263, 264, 255, 256, 118, 314, 192, 193, + 309, 310, 398, 408, 409, 265, 281, 154, 155, 173, + 174, 194, 195, 62, 186, 240, 187, 305, 156, 103, + 158, 159, 296, 297, 299, 203, 204, 205, 267, 268, + 230, 286, 231, 232, 233, 377, 378, 404, 405, 234, + 235, 236, 353, 354, 382, 249, 250, 210, 275, 276, + 237, 251, 121, 122, 145, 163, 189, 104, 328, 238 }; -static const short yypact[] = { 244, --32768,-32768, 244,-32768, -75,-32768, 5, 42,-32768,-32768, --32768,-32768, 36,-32768, -67, 161,-32768,-32768, 76, 51, - -14, 29, 46, 50, 119, 161,-32768, 39,-32768,-32768, --32768,-32768,-32768, 141,-32768,-32768, 305,-32768, 168, 11, --32768,-32768,-32768, 157,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768,-32768,-32768, 167, 305,-32768,-32768,-32768,-32768, --32768,-32768,-32768, 14, 519,-32768, 75,-32768, 197,-32768, - 121,-32768,-32768, 23,-32768, -22,-32768, 130,-32768,-32768, --32768, -8, 111,-32768, 155,-32768, 166, 171,-32768,-32768, --32768,-32768,-32768, 202, 177,-32768,-32768,-32768, 536, 274, --32768,-32768,-32768, 154, 285,-32768,-32768,-32768, 174, 185, --32768,-32768, 244, 174, 193, 196, 108,-32768,-32768, 382, --32768, 174,-32768,-32768,-32768,-32768,-32768, 58,-32768, 201, - 208, 199, 283, 263,-32768,-32768, -75,-32768,-32768, 310, --32768,-32768, -6, 203, 286, 221, 261, -24, 71,-32768, - -20,-32768,-32768, 235,-32768,-32768, 237,-32768,-32768, 335, - 536, 334, 334, 144,-32768,-32768, 232,-32768,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, --32768,-32768, 233, 236,-32768, 117,-32768, 61,-32768, 323, - 19, 324, 245, 43, 206, 282,-32768, 246, 43, 289, --32768, 38,-32768, 13, 255,-32768,-32768,-32768,-32768,-32768, --32768, -9,-32768,-32768, 330,-32768, 244, 206, 256, 253, --32768, 234, 267, 259, -9,-32768,-32768, 264,-32768,-32768, --32768, 310, 366, 334, 263, 277, 310, 263,-32768, 288, - 288,-32768,-32768, 459, 334, 262, 128,-32768,-32768, 255, --32768, 206, 306, 275, 276,-32768,-32768, 255, 279, 101, - 334, 206, 278, 334,-32768,-32768, 140,-32768,-32768, 281, - 156,-32768,-32768,-32768,-32768, 269, 290, 254, 280, 284, - 294,-32768, 144,-32768,-32768,-32768,-32768, 206, 206,-32768, - 206, 206, 270, 293,-32768,-32768, 388,-32768,-32768, 314, --32768,-32768,-32768,-32768,-32768, 24, 24,-32768, 273,-32768, - 19,-32768, 295, 255,-32768, 43, 24,-32768, 301, 255, --32768, 303,-32768, 255,-32768, 56, 273,-32768, 13,-32768, - 298,-32768,-32768, 45,-32768,-32768,-32768,-32768,-32768,-32768, - 307,-32768,-32768, 0, 182,-32768,-32768, 308,-32768,-32768, --32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 304, 459, --32768, 459,-32768, 309, 312,-32768,-32768,-32768, 184,-32768, - -20,-32768, 334, 311,-32768,-32768, 293,-32768, 206,-32768, --32768,-32768,-32768,-32768, 45, 88, 311, 334,-32768, 207, - 234,-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 28, --32768,-32768,-32768,-32768, 415, 417,-32768 +static const short yypact[] = { 120, +-32768,-32768, 120,-32768, -64,-32768, 38, -5,-32768,-32768, +-32768,-32768, 55,-32768, -25, 165,-32768,-32768, 90, 49, + 60, 73, 74, 82, 136, 165,-32768, 54,-32768,-32768, +-32768,-32768,-32768, 151,-32768,-32768, 314,-32768, 177, 23, +-32768,-32768,-32768, 159,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768, 187, 314,-32768,-32768,-32768,-32768, +-32768,-32768,-32768, 256, 528,-32768, 114,-32768, 76,-32768, + 133,-32768,-32768, 42,-32768, -20,-32768, 147,-32768,-32768, +-32768, -3, 144,-32768, 183,-32768, 185, 198,-32768,-32768, +-32768,-32768,-32768, 232, 212,-32768,-32768,-32768, 545, 292, +-32768,-32768,-32768, 186, 295,-32768,-32768,-32768, 101, 195, +-32768,-32768, 120, 101, 197, 199, 3,-32768,-32768, 391, +-32768, 113, 101,-32768,-32768,-32768,-32768,-32768, 78,-32768, + 200, 202, 210, 263, 279,-32768,-32768, -64,-32768,-32768, + 182,-32768,-32768,-32768, 306, -22, 213, 283, 226, 266, + -12, -8,-32768, -32,-32768,-32768, 228,-32768,-32768, 233, +-32768,-32768,-32768,-32768,-32768, 340, 545, 336, 336, 95, +-32768,-32768, 235,-32768,-32768,-32768,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768,-32768, 238, 239, +-32768, 103,-32768, 29,-32768, 236, 325, 36, 237, 248, + 6, 142, 286,-32768, 250, 6, 289,-32768, 51,-32768, + 5, 244,-32768,-32768,-32768,-32768,-32768,-32768, 57,-32768, +-32768, 330,-32768, 120, 142, 257, 258,-32768, 241, 271, + 265, 57,-32768,-32768, 269,-32768,-32768,-32768, 182, 371, + 336, 279, 281, 182, 279,-32768, 291, 291,-32768,-32768, + 468,-32768, 336, 267, 108,-32768,-32768, 244,-32768, 142, + 313, 280, 275,-32768,-32768, 244, 284, 173, 336, 142, + 287, 336,-32768,-32768, 110,-32768,-32768, 282, 116,-32768, +-32768,-32768,-32768, 273, 293, 170, 290, 288, 294,-32768, + 95,-32768,-32768,-32768,-32768, 142, 142,-32768, 142, 142, + 234, 285,-32768,-32768, 392,-32768,-32768, 319,-32768,-32768, +-32768,-32768,-32768, -17, -17,-32768, 296,-32768, 36,-32768, + 299, 244,-32768, 6, -17,-32768, 308, 244,-32768, 305, +-32768, 244,-32768, 61, 296,-32768, 5,-32768, 300,-32768, +-32768, 43,-32768,-32768,-32768,-32768,-32768,-32768, 310,-32768, +-32768, 11, 123,-32768,-32768, 316,-32768,-32768,-32768,-32768, +-32768,-32768,-32768,-32768,-32768,-32768, 312, 468,-32768, 468, +-32768, 315, 317,-32768,-32768,-32768, 125,-32768, -32,-32768, + 336, 311,-32768,-32768, 285,-32768, 142,-32768,-32768,-32768, +-32768,-32768, 43, 17, 311, 336,-32768, 160, 241,-32768, +-32768,-32768,-32768,-32768,-32768,-32768,-32768, 14,-32768,-32768, +-32768,-32768, 395, 424,-32768 }; static const short yypgoto[] = {-32768, --32768, 418, 287,-32768,-32768, 407,-32768,-32768, 399,-32768, --32768, 371,-32768,-32768,-32768, 354,-32768, 319,-32768,-32768, - 325,-32768, 370,-32768,-32768, 153,-32768,-32768, 291,-32768, - 110, 238,-32768, 126,-32768, 132,-32768, 209,-32768, 214, --32768,-32768,-32768,-32768, 44, -179, -79, -188, -54,-32768, - 222, -183, -90,-32768, -99,-32768, -231,-32768, -2, -119, --32768, 32,-32768,-32768,-32768, -142,-32768,-32768, -74, -160, - -95, 228,-32768, -210,-32768,-32768, 70,-32768,-32768,-32768, --32768,-32768,-32768, 80, 89, -206,-32768,-32768,-32768, 137, - -118, -80,-32768, 15,-32768, 200, -7 +-32768, 422, 298,-32768,-32768, 413,-32768,-32768, 402,-32768, +-32768, 373,-32768,-32768,-32768, 356,-32768, 318,-32768,-32768, + 324,-32768, 369,-32768,-32768, 146,-32768,-32768, 276,-32768, + 105, 240,-32768, 121,-32768, 129,-32768, 196,-32768, 207, +-32768,-32768,-32768,-32768, 44, -183, -65, -129, -53,-32768, + 214, -185, -114,-32768, -160,-32768, -252,-32768, -41, -117, +-32768, 18,-32768,-32768,-32768, -147,-32768,-32768, -204, -168, + -36, 227,-32768, -207,-32768,-32768, 67,-32768,-32768,-32768, +-32768,-32768,-32768, 77, 80, -238,-32768,-32768,-32768, 130, + -125, -74,-32768,-32768,-32768,-32768, 1,-32768, 191, -7 }; -#define YYLAST 627 +#define YYLAST 636 static const short yytable[] = { 15, - 154, 120, 119, 222, 241, 15, 200, 10, 201, 101, - 101, 249, 10, 11, 5, 182, 82, 5, 10, 116, - 10, 1, 2, 113, 83, 84, 10, 67, 7, 65, - 10, 399, 72, 1, 2, 85, 79, 86, 19, 87, - 165, 166, 169, 10, 11, 10, 174, 175, 65, 88, - 10, 64, 10, 89, 71, 193, 238, 90, 78, 193, - 91, 102, 102, 10, 174, 175, 79, 333, 63, 30, - 64, 92, 253, 165, 166, 16, 93, 351, 94, 194, - 95, 195, 343, 269, 28, 195, 114, 63, 78, 96, - 97, 276, 239, 238, 117, 364, 130, -255, 32, 349, - 350, 72, 393, 277, 98, 122, 79, 29, 240, 12, - 358, 373, 31, 131, 159, 117, 182, 99, 68, 182, - 246, 34, 222, 71, 154, 275, 184, 137, 78, 239, - 111, 249, 403, 33, 157, 299, 158, 251, 304, 265, - 17, 169, 266, 281, 246, 36, 368, 170, 141, 209, - 193, 10, 174, 175, 207, 208, 394, 265, 130, 142, - 395, 37, 160, 117, 10, -235, 161, 1, 2, -235, - 312, 380, 20, 381, 199, 131, 195, 313, 317, 66, - 21, 10, 107, 250, 1, 2, 258, 322, 210, 211, - 352, 258, 338, 339, 270, 340, 274, 284, 285, 286, - 287, 22, 73, 23, 212, 80, 402, 269, 365, 319, - 399, 209, 24, 10, 174, 175, 402, 341, 391, 165, - 166, 236, 122, 213, 110, 237, 298, 184, 386, 214, - 184, 280, 310, 115, 356, 123, 311, 308, 215, 360, - 154, 125, 154, 362, 325, 216, 124, 217, 326, 218, - 210, 211, 126, 321, 1, 2, 321, 127, 157, 209, - 328, 10, 174, 175, 329, 133, 212, 171, 172, 173, - 10, 174, 175, 1, 2, 209, 132, 10, 174, 175, - 10, 174, 175, 1, 2, 213, 376, 134, 384, 136, - 377, 214, 385, 1, 2, 165, 166, 139, 210, 140, - 215, 353, 164, 250, 108, 109, -256, 176, 258, 217, - 162, 218, 10, 332, 210, 1, 2, 163, 270, 353, - 190, 274, 165, 166, 191, 177, 371, 38, 192, 342, - 284, 285, 286, 287, 83, 84, 375, 205, 202, 214, - 204, 10, 39, 232, 234, 235, 40, 245, 178, 261, - 252, 262, 41, 42, 43, 214, 264, 117, 44, 279, - 282, 283, 290, 45, 292, 375, 179, 294, 46, 296, - 47, 300, 309, 314, 157, 305, 157, 371, 48, 315, - 398, 330, 323, 334, 316, 318, 327, 49, 335, 50, - 331, 347, 143, 144, 51, 348, 52, 53, 54, 145, - 336, 355, 359, 85, 38, 86, 344, 87, 146, 361, - 367, 378, 379, 372, 406, 382, 407, 88, 383, 18, - 6, 89, 388, 185, 35, 90, 81, 112, 91, 41, - 42, 43, 138, 135, 105, 337, 263, 147, 366, 92, - 45, 357, 354, 404, 93, 46, 94, 47, 95, 307, - 303, 206, 293, 295, 392, 48, 389, 96, 97, 148, - 149, 387, 363, 324, 49, 0, 50, 0, 150, 143, - 144, 51, 98, 52, 53, 54, 145, 0, 0, 0, - 85, 38, 86, 0, 87, 146, 0, 0, 0, 0, - 0, 0, 0, 0, 88, 0, 0, 0, 89, 0, - 0, 0, 90, 0, 0, 91, 41, 42, 43, 0, - 0, 0, 0, 0, 147, 0, 92, 45, 0, 0, - 0, 93, 46, 94, 47, 95, 0, 0, 0, 83, - 84, 0, 48, 0, 96, 97, 148, 149, 0, 0, - 85, 49, 86, 50, 87, 0, 1, 2, 51, 98, - 52, 53, 54, 0, 88, 0, 0, 85, 89, 86, - 0, 87, 90, 0, 0, 91, 0, 0, 0, 0, - 0, 88, 0, 0, 0, 89, 92, 0, 0, 90, - 0, 93, 91, 94, 0, 95, 0, 0, 0, 0, - 0, 0, 0, 92, 96, 97, 0, 0, 93, 0, - 94, 0, 95, 0, 0, 0, 0, 0, 0, 98, - 0, 96, 97, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 98 + 5, 229, 157, 5, 207, 15, 208, 120, 248, 188, + 101, 101, 10, 10, 257, 245, 119, 407, 10, 175, + 289, 142, 102, 102, 116, 113, 171, 172, 16, 65, + 10, 401, 72, 1, 2, 261, 79, 64, 7, 67, + 71, 171, 172, 10, 78, 10, 11, 200, 65, 10, + 10, 246, 1, 2, 63, 321, 64, 131, 10, 180, + 181, 245, 10, 11, 359, 330, 79, 200, 10, 180, + 181, 200, 202, 63, 78, 357, 358, 143, 341, 19, + -261, 307, 372, 277, 312, 402, 366, 114, 123, 403, + 201, 144, 202, 351, 206, 349, 202, 246, 28, 132, + 216, 72, 10, 180, 181, 29, 79, 254, 10, 71, + 117, 1, 2, 138, 78, 165, 188, 411, 117, 188, + 160, 381, 229, 164, 175, 131, 32, 190, 247, 68, + 1, 2, -235, 157, 176, 257, -235, 254, 34, 217, + 218, 12, 117, 30, 376, 259, 283, 216, 111, 10, + 180, 181, 273, 161, 274, 219, 31, 284, 17, 36, + 214, 215, 273, 407, 162, 33, 10, 132, 285, 1, + 2, 37, 171, 172, 220, 216, 20, 10, 180, 181, + 221, 166, 108, 109, 21, 167, 217, 218, 66, 222, + 258, 360, 320, 266, 171, 172, 223, 224, 266, 225, + 325, 278, 219, 282, 73, 22, 243, 23, 277, 373, + 244, 318, 410, 333, 217, 319, 24, 334, 399, 336, + 107, 220, 410, 337, 288, 80, 384, 221, 392, 340, + 385, 394, 393, 306, 190, 110, 222, 190, 388, 216, + 389, 10, 180, 181, 224, 316, 225, 83, 84, 115, + 157, 160, 157, 368, 123, 221, 364, 370, 82, 346, + 347, 329, 348, 124, 329, 125, 83, 84, 126, 292, + 293, 294, 295, 1, 2, 171, 172, 85, 217, 86, + 327, 87, 127, 177, 178, 179, 10, 180, 181, 1, + 2, 88, 128, 350, 133, 89, 134, 135, 137, 90, + 140, 141, 91, 10, 180, 181, 1, 2, 168, 361, + 169, 258, 170, 92, 196, -262, 266, 197, 93, 221, + 94, 10, 95, 182, 1, 2, 278, 361, 198, 282, + 209, 96, 97, 199, 379, 211, 38, 292, 293, 294, + 295, 183, 212, 10, 383, 239, 98, 242, 241, 253, + 252, 39, 260, 269, 270, 40, 272, 117, 99, 287, + 290, 41, 42, 43, 184, 291, 298, 44, 160, 300, + 160, 302, 45, 383, 304, 308, 317, 46, 313, 47, + 322, 185, 324, 323, 338, 379, 335, 48, 406, 326, + 331, 343, 342, 339, 414, 355, 49, 352, 50, 344, + 356, 146, 147, 51, 363, 52, 53, 54, 148, 367, + 369, 375, 85, 38, 86, 380, 87, 149, 386, 387, + 390, 396, 391, 415, 6, 18, 88, 35, 81, 112, + 89, 139, 136, 105, 90, 191, 345, 91, 41, 42, + 43, 374, 213, 315, 365, 271, 150, 362, 92, 45, + 311, 412, 303, 93, 46, 94, 47, 95, 301, 400, + 395, 397, 332, 371, 48, 0, 96, 97, 151, 152, + 0, 0, 0, 49, 0, 50, 0, 153, 146, 147, + 51, 98, 52, 53, 54, 148, 0, 0, 0, 85, + 38, 86, 0, 87, 149, 0, 0, 0, 0, 0, + 0, 0, 0, 88, 0, 0, 0, 89, 0, 0, + 0, 90, 0, 0, 91, 41, 42, 43, 0, 0, + 0, 0, 0, 150, 0, 92, 45, 0, 0, 0, + 93, 46, 94, 47, 95, 0, 0, 0, 83, 84, + 0, 48, 0, 96, 97, 151, 152, 0, 0, 85, + 49, 86, 50, 87, 0, 1, 2, 51, 98, 52, + 53, 54, 0, 88, 0, 0, 85, 89, 86, 0, + 87, 90, 0, 0, 91, 0, 0, 0, 0, 0, + 88, 0, 0, 0, 89, 92, 0, 0, 90, 0, + 93, 91, 94, 0, 95, 0, 0, 0, 0, 0, + 0, 0, 92, 96, 97, 0, 0, 93, 0, 94, + 0, 95, 0, 0, 0, 0, 0, 0, 98, 0, + 96, 97, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 98 }; static const short yycheck[] = { 7, - 120, 82, 82, 164, 188, 13, 149, 8, 151, 64, - 65, 191, 8, 9, 0, 134, 3, 3, 8, 28, - 8, 11, 12, 46, 11, 12, 8, 17, 104, 37, - 8, 4, 40, 11, 12, 22, 44, 24, 106, 26, - 13, 14, 133, 8, 9, 8, 9, 10, 56, 36, - 8, 37, 8, 40, 40, 80, 33, 44, 44, 80, - 47, 64, 65, 8, 9, 10, 74, 278, 37, 84, - 56, 58, 30, 13, 14, 34, 63, 309, 65, 104, - 67, 106, 293, 202, 9, 106, 109, 56, 74, 76, - 77, 101, 69, 33, 103, 327, 99, 104, 53, 306, - 307, 109, 15, 113, 91, 112, 114, 57, 188, 105, - 317, 112, 84, 99, 122, 103, 235, 104, 108, 238, - 102, 3, 283, 109, 244, 205, 134, 113, 114, 69, - 108, 311, 105, 84, 120, 235, 122, 192, 238, 102, - 105, 232, 105, 218, 102, 107, 102, 133, 41, 6, - 80, 8, 9, 10, 162, 163, 69, 102, 161, 52, - 73, 21, 105, 103, 8, 105, 109, 11, 12, 109, - 250, 360, 12, 362, 104, 161, 106, 252, 258, 12, - 20, 8, 108, 191, 11, 12, 194, 262, 45, 46, - 309, 199, 288, 289, 202, 291, 204, 97, 98, 99, - 100, 41, 46, 43, 61, 39, 390, 326, 327, 109, - 4, 6, 52, 8, 9, 10, 400, 292, 379, 13, - 14, 105, 112, 80, 104, 109, 234, 235, 371, 86, - 238, 217, 105, 104, 314, 81, 109, 245, 95, 320, - 360, 71, 362, 324, 105, 102, 81, 104, 109, 106, - 45, 46, 51, 261, 11, 12, 264, 81, 244, 6, - 105, 8, 9, 10, 109, 112, 61, 5, 6, 7, - 8, 9, 10, 11, 12, 6, 3, 8, 9, 10, - 8, 9, 10, 11, 12, 80, 105, 3, 105, 105, - 109, 86, 109, 11, 12, 13, 14, 105, 45, 104, - 95, 309, 104, 311, 108, 109, 104, 45, 316, 104, - 110, 106, 8, 60, 45, 11, 12, 110, 326, 327, - 35, 329, 13, 14, 104, 63, 334, 23, 68, 60, - 97, 98, 99, 100, 11, 12, 344, 3, 104, 86, - 104, 8, 38, 112, 112, 110, 42, 25, 86, 68, - 106, 106, 48, 49, 50, 86, 68, 103, 54, 30, - 105, 109, 96, 59, 106, 373, 104, 104, 64, 4, - 66, 95, 111, 68, 360, 88, 362, 385, 74, 105, - 388, 113, 105, 104, 109, 107, 106, 83, 105, 85, - 101, 4, 11, 12, 90, 82, 92, 93, 94, 18, - 107, 107, 102, 22, 23, 24, 114, 26, 27, 107, - 113, 104, 109, 107, 0, 107, 0, 36, 107, 13, - 3, 40, 112, 137, 26, 44, 56, 74, 47, 48, - 49, 50, 114, 109, 65, 283, 199, 56, 329, 58, - 59, 316, 311, 400, 63, 64, 65, 66, 67, 241, - 237, 161, 225, 232, 385, 74, 377, 76, 77, 78, - 79, 373, 326, 264, 83, -1, 85, -1, 87, 11, - 12, 90, 91, 92, 93, 94, 18, -1, -1, -1, - 22, 23, 24, -1, 26, 27, -1, -1, -1, -1, - -1, -1, -1, -1, 36, -1, -1, -1, 40, -1, - -1, -1, 44, -1, -1, 47, 48, 49, 50, -1, - -1, -1, -1, -1, 56, -1, 58, 59, -1, -1, - -1, 63, 64, 65, 66, 67, -1, -1, -1, 11, - 12, -1, 74, -1, 76, 77, 78, 79, -1, -1, - 22, 83, 24, 85, 26, -1, 11, 12, 90, 91, - 92, 93, 94, -1, 36, -1, -1, 22, 40, 24, - -1, 26, 44, -1, -1, 47, -1, -1, -1, -1, - -1, 36, -1, -1, -1, 40, 58, -1, -1, 44, - -1, 63, 47, 65, -1, 67, -1, -1, -1, -1, - -1, -1, -1, 58, 76, 77, -1, -1, 63, -1, - 65, -1, 67, -1, -1, -1, -1, -1, -1, 91, - -1, 76, 77, -1, -1, -1, -1, -1, -1, -1, - -1, -1, -1, -1, -1, -1, 91 + 0, 170, 120, 3, 152, 13, 154, 82, 194, 135, + 64, 65, 8, 8, 198, 33, 82, 4, 8, 134, + 225, 19, 64, 65, 28, 46, 13, 14, 34, 37, + 8, 15, 40, 11, 12, 30, 44, 37, 103, 17, + 40, 13, 14, 8, 44, 8, 9, 80, 56, 8, + 8, 69, 11, 12, 37, 260, 56, 99, 8, 9, + 10, 33, 8, 9, 317, 270, 74, 80, 8, 9, + 10, 80, 105, 56, 74, 314, 315, 75, 286, 105, + 103, 242, 335, 209, 245, 69, 325, 108, 111, 73, + 103, 89, 105, 301, 103, 300, 105, 69, 9, 99, + 6, 109, 8, 9, 10, 57, 114, 102, 8, 109, + 114, 11, 12, 113, 114, 123, 242, 104, 114, 245, + 120, 111, 291, 123, 239, 167, 53, 135, 194, 107, + 11, 12, 104, 251, 134, 319, 108, 102, 3, 45, + 46, 104, 114, 84, 102, 199, 212, 6, 107, 8, + 9, 10, 102, 41, 104, 61, 84, 101, 104, 106, + 168, 169, 102, 4, 52, 84, 8, 167, 112, 11, + 12, 21, 13, 14, 80, 6, 12, 8, 9, 10, + 86, 104, 107, 108, 20, 108, 45, 46, 12, 95, + 198, 317, 258, 201, 13, 14, 102, 103, 206, 105, + 266, 209, 61, 211, 46, 41, 104, 43, 334, 335, + 108, 104, 398, 104, 45, 108, 52, 108, 387, 104, + 107, 80, 408, 108, 224, 39, 104, 86, 104, 60, + 108, 379, 108, 241, 242, 103, 95, 245, 368, 6, + 370, 8, 9, 10, 103, 253, 105, 11, 12, 103, + 368, 251, 370, 328, 111, 86, 322, 332, 3, 296, + 297, 269, 299, 81, 272, 81, 11, 12, 71, 97, + 98, 99, 100, 11, 12, 13, 14, 22, 45, 24, + 108, 26, 51, 5, 6, 7, 8, 9, 10, 11, + 12, 36, 81, 60, 3, 40, 111, 3, 104, 44, + 104, 103, 47, 8, 9, 10, 11, 12, 109, 317, + 109, 319, 103, 58, 9, 103, 324, 35, 63, 86, + 65, 8, 67, 45, 11, 12, 334, 335, 103, 337, + 103, 76, 77, 68, 342, 103, 23, 97, 98, 99, + 100, 63, 3, 8, 352, 111, 91, 109, 111, 25, + 115, 38, 105, 68, 105, 42, 68, 114, 103, 30, + 104, 48, 49, 50, 86, 108, 96, 54, 368, 105, + 370, 103, 59, 381, 4, 95, 110, 64, 88, 66, + 68, 103, 108, 104, 112, 393, 105, 74, 396, 106, + 104, 104, 103, 101, 0, 4, 83, 113, 85, 106, + 82, 11, 12, 90, 106, 92, 93, 94, 18, 102, + 106, 112, 22, 23, 24, 106, 26, 27, 103, 108, + 106, 111, 106, 0, 3, 13, 36, 26, 56, 74, + 40, 114, 109, 65, 44, 138, 291, 47, 48, 49, + 50, 337, 167, 248, 324, 206, 56, 319, 58, 59, + 244, 408, 239, 63, 64, 65, 66, 67, 232, 393, + 381, 385, 272, 334, 74, -1, 76, 77, 78, 79, + -1, -1, -1, 83, -1, 85, -1, 87, 11, 12, + 90, 91, 92, 93, 94, 18, -1, -1, -1, 22, + 23, 24, -1, 26, 27, -1, -1, -1, -1, -1, + -1, -1, -1, 36, -1, -1, -1, 40, -1, -1, + -1, 44, -1, -1, 47, 48, 49, 50, -1, -1, + -1, -1, -1, 56, -1, 58, 59, -1, -1, -1, + 63, 64, 65, 66, 67, -1, -1, -1, 11, 12, + -1, 74, -1, 76, 77, 78, 79, -1, -1, 22, + 83, 24, 85, 26, -1, 11, 12, 90, 91, 92, + 93, 94, -1, 36, -1, -1, 22, 40, 24, -1, + 26, 44, -1, -1, 47, -1, -1, -1, -1, -1, + 36, -1, -1, -1, 40, 58, -1, -1, 44, -1, + 63, 47, 65, -1, 67, -1, -1, -1, -1, -1, + -1, -1, 58, 76, 77, -1, -1, 63, -1, 65, + -1, 67, -1, -1, -1, -1, -1, -1, 91, -1, + 76, 77, -1, -1, -1, -1, -1, -1, -1, -1, + -1, -1, -1, -1, -1, 91 }; /* -*-C-*- Note some compilers choke on comments on `#line' lines. */ #line 3 "/usr/share/bison.simple" @@ -3228,57 +3236,78 @@ case 251: case 252: #line 1945 "asn1p_y.y" { - yyval.a_tag = yyvsp[0].a_tag; - yyval.a_tag.tag_mode = TM_DEFAULT; + yyval.a_tag = yyvsp[-1].a_tag; + yyval.a_tag.tag_mode = yyvsp[0].a_tag.tag_mode; ; break;} case 253: -#line 1949 "asn1p_y.y" +#line 1952 "asn1p_y.y" { - yyval.a_tag = yyvsp[-1].a_tag; - yyval.a_tag.tag_mode = TM_IMPLICIT; + yyval.a_tag = yyvsp[-2].a_tag; + yyval.a_tag.tag_value = yyvsp[-1].a_int; ; break;} case 254: -#line 1953 "asn1p_y.y" -{ - yyval.a_tag = yyvsp[-1].a_tag; - yyval.a_tag.tag_mode = TM_EXPLICIT; - ; +#line 1958 "asn1p_y.y" +{ yyval.a_tag.tag_class = TC_CONTEXT_SPECIFIC; ; break;} case 255: -#line 1960 "asn1p_y.y" -{ - checkmem(yyvsp[0].tv_str); - yyval.tv_str = yyvsp[0].tv_str; - ; +#line 1959 "asn1p_y.y" +{ yyval.a_tag.tag_class = TC_UNIVERSAL; ; break;} case 256: -#line 1964 "asn1p_y.y" -{ - checkmem(yyvsp[0].tv_str); - yyval.tv_str = yyvsp[0].tv_str; - ; +#line 1960 "asn1p_y.y" +{ yyval.a_tag.tag_class = TC_APPLICATION; ; break;} case 257: -#line 1972 "asn1p_y.y" +#line 1961 "asn1p_y.y" +{ yyval.a_tag.tag_class = TC_PRIVATE; ; + break;} +case 258: +#line 1965 "asn1p_y.y" +{ yyval.a_tag.tag_mode = TM_DEFAULT; ; + break;} +case 259: +#line 1966 "asn1p_y.y" +{ yyval.a_tag.tag_mode = TM_IMPLICIT; ; + break;} +case 260: +#line 1967 "asn1p_y.y" +{ yyval.a_tag.tag_mode = TM_EXPLICIT; ; + break;} +case 261: +#line 1971 "asn1p_y.y" { checkmem(yyvsp[0].tv_str); yyval.tv_str = yyvsp[0].tv_str; ; break;} -case 258: -#line 1979 "asn1p_y.y" +case 262: +#line 1975 "asn1p_y.y" +{ + checkmem(yyvsp[0].tv_str); + yyval.tv_str = yyvsp[0].tv_str; + ; + break;} +case 263: +#line 1983 "asn1p_y.y" +{ + checkmem(yyvsp[0].tv_str); + yyval.tv_str = yyvsp[0].tv_str; + ; + break;} +case 264: +#line 1990 "asn1p_y.y" { yyval.tv_str = 0; ; break;} -case 259: -#line 1980 "asn1p_y.y" +case 265: +#line 1991 "asn1p_y.y" { yyval.tv_str = yyvsp[0].tv_str; ; break;} -case 260: -#line 1985 "asn1p_y.y" +case 266: +#line 1996 "asn1p_y.y" { checkmem(yyvsp[0].tv_str); yyval.tv_str = yyvsp[0].tv_str; @@ -3506,7 +3535,7 @@ yyerrhandle: } return 1; } -#line 1991 "asn1p_y.y" +#line 2002 "asn1p_y.y" diff --git a/libasn1parser/asn1p_y.h b/libasn1parser/asn1p_y.h index e1c581b1..3b8d86de 100644 --- a/libasn1parser/asn1p_y.h +++ b/libasn1parser/asn1p_y.h @@ -128,7 +128,6 @@ typedef union { #define TOK_UNION 352 #define TOK_TwoDots 353 #define TOK_ThreeDots 354 -#define TOK_tag 355 extern YYSTYPE asn1p_lval; diff --git a/libasn1parser/asn1p_y.y b/libasn1parser/asn1p_y.y index 1e77fee2..3eb38c1b 100644 --- a/libasn1parser/asn1p_y.y +++ b/libasn1parser/asn1p_y.y @@ -196,7 +196,6 @@ static asn1p_value_t * /* Misc tags */ %token TOK_TwoDots /* .. */ %token TOK_ThreeDots /* ... */ -%token TOK_tag /* [0] */ /* @@ -266,7 +265,8 @@ static asn1p_value_t * %type BasicString %type Opaque //%type StringValue -%type Tag /* [UNIVERSAL 0] IMPLICIT */ +%type Tag /* [UNIVERSAL 0] IMPLICIT */ +%type TagClass TagTypeValue TagPlicit %type optTag /* [UNIVERSAL 0] IMPLICIT */ %type optConstraints %type Constraints @@ -1942,20 +1942,31 @@ optTag: ; Tag: - TOK_tag { + TagTypeValue TagPlicit { $$ = $1; - $$.tag_mode = TM_DEFAULT; - } - | TOK_tag TOK_IMPLICIT { - $$ = $1; - $$.tag_mode = TM_IMPLICIT; - } - | TOK_tag TOK_EXPLICIT { - $$ = $1; - $$.tag_mode = TM_EXPLICIT; + $$.tag_mode = $2.tag_mode; } ; +TagTypeValue: + '[' TagClass TOK_number ']' { + $$ = $2; + $$.tag_value = $3; + }; + +TagClass: + { $$.tag_class = TC_CONTEXT_SPECIFIC; } + | TOK_UNIVERSAL { $$.tag_class = TC_UNIVERSAL; } + | TOK_APPLICATION { $$.tag_class = TC_APPLICATION; } + | TOK_PRIVATE { $$.tag_class = TC_PRIVATE; } + ; + +TagPlicit: + { $$.tag_mode = TM_DEFAULT; } + | TOK_IMPLICIT { $$.tag_mode = TM_IMPLICIT; } + | TOK_EXPLICIT { $$.tag_mode = TM_EXPLICIT; } + ; + TypeRefName: TOK_typereference { checkmem($1);