novi upstream verzije 2.8.3
[ossec-hids.git] / src / os_regex / os_regex_internal.h
index 299e5c2..11599cb 100755 (executable)
 #define __OS_INTERNAL_H
 
 
+/* Prototype fo the _OsMatch */
+int _OS_Match(const char *pattern, const char *str, size_t str_len, size_t size) __attribute__((nonnull));
+int _os_strncmp(const char *pattern, const char *str, size_t str_len, size_t size) __attribute__((nonnull));
+int _os_strcmp_last(const char *pattern, const char *str, size_t str_len, size_t size) __attribute__((nonnull));
+int _os_strcmp(const char *pattern, const char *str, size_t str_len, size_t size) __attribute__((nonnull));
+int _os_strmatch(const char *pattern, const char *str, size_t str_len, size_t size) __attribute__((nonnull));
+int _os_strstr(const char *pattern, const char *str, size_t str_len, size_t size) __attribute__((nonnull));
+
+
 /*
  * Defining some caracters to be used.
 */
@@ -47,15 +56,15 @@ typedef unsigned char uchar;
  * Returns 1 if true
  */
 #define _IsW(x) ((x >= 48 && x <= 57 )|| \
-                        (x >= 65 && x <= 90 )|| \
-                        (x >= 97 && x <= 122))
+                 (x >= 65 && x <= 90 )|| \
+                 (x >= 97 && x <= 122))
 
 
 /* Is it a ' ' (blank)
  * Ascii 32
  * Returns 1 if true
  */
-#define _IsS(x)        (x == 32)
+#define _IsS(x) (x == 32)
 
 
 /* Check for parenthesis */
@@ -97,38 +106,38 @@ typedef unsigned char uchar;
 
 /* Charmap for case insensitive search */
 static const uchar charmap[] = {
-        '\000', '\001', '\002', '\003', '\004', '\005', '\006', '\007',
-        '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',
-        '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',
-        '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',
-        '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047',
-        '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057',
-        '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',
-        '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077',
-        '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
-        '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
-        '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
-        '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137',
-        '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
-        '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
-        '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
-        '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177',
-        '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',
-        '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',
-        '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',
-        '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',
-        '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247',
-        '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257',
-        '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267',
-        '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277',
-        '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307',
-        '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317',
-        '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327',
-        '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337',
-        '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',
-        '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',
-        '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',
-        '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377',
+        0, 1, 2, 3, 4, 5, 6, 7,
+        8, 9, 10, 11, 12, 13, 14, 15,
+        16, 17, 18, 19, 20, 21, 22, 23,
+        24, 25, 26, 27, 28, 29, 30, 31,
+        32, 33, 34, 35, 36, 37, 38, 39,
+        40, 41, 42, 43, 44, 45, 46, 47,
+        48, 49, 50, 51, 52, 53, 54, 55,
+        56, 57, 58, 59, 60, 61, 62, 63,
+        64, 97, 98, 99, 100, 101, 102, 103,
+        104, 105, 106, 107, 108, 109, 110, 111,
+        112, 113, 114, 115, 116, 117, 118, 119,
+        120, 121, 122, 91, 92, 93, 94, 95,
+        96, 97, 98, 99, 100, 101, 102, 103,
+        104, 105, 106, 107, 108, 109, 110, 111,
+        112, 113, 114, 115, 116, 117, 118, 119,
+        120, 121, 122, 123, 124, 125, 126, 127,
+        128, 129, 130, 131, 132, 133, 134, 135,
+        136, 137, 138, 139, 140, 141, 142, 143,
+        144, 145, 146, 147, 148, 149, 150, 151,
+        152, 153, 154, 155, 156, 157, 158, 159,
+        160, 161, 162, 163, 164, 165, 166, 167,
+        168, 169, 170, 171, 172, 173, 174, 175,
+        176, 177, 178, 179, 180, 181, 182, 183,
+        184, 185, 186, 187, 188, 189, 190, 191,
+        192, 193, 194, 195, 196, 197, 198, 199,
+        200, 201, 202, 203, 204, 205, 206, 207,
+        208, 209, 210, 211, 212, 213, 214, 215,
+        216, 217, 218, 219, 220, 221, 222, 223,
+        224, 225, 226, 227, 228, 229, 230, 231,
+        232, 233, 234, 235, 236, 237, 238, 239,
+        240, 241, 242, 243, 244, 245, 246, 247,
+        248, 249, 250, 251, 252, 253, 254, 255,
     };
 
 
@@ -154,550 +163,550 @@ static const uchar charmap[] = {
 static const uchar regexmap[][256] =
 {
     {
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\000', '\073', '\074', '\075', '\076', '\077',
-        '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
-        '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
-        '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
-        '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137',
-        '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
-        '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
-        '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
-        '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177',
-        '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',
-        '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',
-        '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',
-        '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',
-        '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247',
-        '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257',
-        '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267',
-        '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277',
-        '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307',
-        '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317',
-        '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327',
-        '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337',
-        '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',
-        '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',
-        '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',
-        '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377',
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 0, 59, 60, 61, 62, 63,
+        64, 97, 98, 99, 100, 101, 102, 103,
+        104, 105, 106, 107, 108, 109, 110, 111,
+        112, 113, 114, 115, 116, 117, 118, 119,
+        120, 121, 122, 91, 92, 93, 94, 95,
+        96, 97, 98, 99, 100, 101, 102, 103,
+        104, 105, 106, 107, 108, 109, 110, 111,
+        112, 113, 114, 115, 116, 117, 118, 119,
+        120, 121, 122, 123, 124, 125, 126, 127,
+        128, 129, 130, 131, 132, 133, 134, 135,
+        136, 137, 138, 139, 140, 141, 142, 143,
+        144, 145, 146, 147, 148, 149, 150, 151,
+        152, 153, 154, 155, 156, 157, 158, 159,
+        160, 161, 162, 163, 164, 165, 166, 167,
+        168, 169, 170, 171, 172, 173, 174, 175,
+        176, 177, 178, 179, 180, 181, 182, 183,
+        184, 185, 186, 187, 188, 189, 190, 191,
+        192, 193, 194, 195, 196, 197, 198, 199,
+        200, 201, 202, 203, 204, 205, 206, 207,
+        208, 209, 210, 211, 212, 213, 214, 215,
+        216, 217, 218, 219, 220, 221, 222, 223,
+        224, 225, 226, 227, 228, 229, 230, 231,
+        232, 233, 234, 235, 236, 237, 238, 239,
+        240, 241, 242, 243, 244, 245, 246, 247,
+        248, 249, 250, 251, 252, 253, 254, 255,
     },
     {
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\000', '\073', '\074', '\075', '\076', '\077',
-        '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
-        '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
-        '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
-        '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137',
-        '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
-        '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
-        '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
-        '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177',
-        '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',
-        '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',
-        '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',
-        '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',
-        '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247',
-        '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257',
-        '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267',
-        '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277',
-        '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307',
-        '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317',
-        '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327',
-        '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337',
-        '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',
-        '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',
-        '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',
-        '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377',
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 0, 59, 60, 61, 62, 63,
+        64, 97, 98, 99, 100, 101, 102, 103,
+        104, 105, 106, 107, 108, 109, 110, 111,
+        112, 113, 114, 115, 116, 117, 118, 119,
+        120, 121, 122, 91, 92, 93, 94, 95,
+        96, 97, 98, 99, 100, 101, 102, 103,
+        104, 105, 106, 107, 108, 109, 110, 111,
+        112, 113, 114, 115, 116, 117, 118, 119,
+        120, 121, 122, 123, 124, 125, 126, 127,
+        128, 129, 130, 131, 132, 133, 134, 135,
+        136, 137, 138, 139, 140, 141, 142, 143,
+        144, 145, 146, 147, 148, 149, 150, 151,
+        152, 153, 154, 155, 156, 157, 158, 159,
+        160, 161, 162, 163, 164, 165, 166, 167,
+        168, 169, 170, 171, 172, 173, 174, 175,
+        176, 177, 178, 179, 180, 181, 182, 183,
+        184, 185, 186, 187, 188, 189, 190, 191,
+        192, 193, 194, 195, 196, 197, 198, 199,
+        200, 201, 202, 203, 204, 205, 206, 207,
+        208, 209, 210, 211, 212, 213, 214, 215,
+        216, 217, 218, 219, 220, 221, 222, 223,
+        224, 225, 226, 227, 228, 229, 230, 231,
+        232, 233, 234, 235, 236, 237, 238, 239,
+        240, 241, 242, 243, 244, 245, 246, 247,
+        248, 249, 250, 251, 252, 253, 254, 255,
     },
     {
-        '\000', '\000', '\002', '\003', '\004', '\005', '\006', '\007',
-        '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',
-        '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',
-        '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',
-        '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047',
-        '\050', '\051', '\052', '\053', '\054', '\001', '\056', '\057',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\072', '\073', '\074', '\075', '\076', '\077',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\133', '\134', '\135', '\136', '\001',
-        '\140', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\173', '\174', '\175', '\176', '\177',
-        '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',
-        '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',
-        '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',
-        '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',
-        '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247',
-        '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257',
-        '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267',
-        '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277',
-        '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307',
-        '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317',
-        '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327',
-        '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337',
-        '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',
-        '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',
-        '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',
-        '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',
+        0, 0, 2, 3, 4, 5, 6, 7,
+        8, 9, 10, 11, 12, 13, 14, 15,
+        16, 17, 18, 19, 20, 21, 22, 23,
+        24, 25, 26, 27, 28, 29, 30, 31,
+        32, 33, 34, 35, 36, 37, 38, 39,
+        40, 41, 42, 43, 44, 1, 46, 47,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 58, 59, 60, 61, 62, 63,
+        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, 91, 92, 93, 94, 1,
+        96, 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, 123, 124, 125, 126, 127,
+        128, 129, 130, 131, 132, 133, 134, 135,
+        136, 137, 138, 139, 140, 141, 142, 143,
+        144, 145, 146, 147, 148, 149, 150, 151,
+        152, 153, 154, 155, 156, 157, 158, 159,
+        160, 161, 162, 163, 164, 165, 166, 167,
+        168, 169, 170, 171, 172, 173, 174, 175,
+        176, 177, 178, 179, 180, 181, 182, 183,
+        184, 185, 186, 187, 188, 189, 190, 191,
+        192, 193, 194, 195, 196, 197, 198, 199,
+        200, 201, 202, 203, 204, 205, 206, 207,
+        208, 209, 210, 211, 212, 213, 214, 215,
+        216, 217, 218, 219, 220, 221, 222, 223,
+        224, 225, 226, 227, 228, 229, 230, 231,
+        232, 233, 234, 235, 236, 237, 238, 239,
+        240, 241, 242, 243, 244, 245, 246, 247,
+        240, 241, 242, 243, 244, 245, 246, 247,
     },
     {
-        '\000', '\000', '\002', '\003', '\004', '\005', '\006', '\007',
-        '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',
-        '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',
-        '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',
-        '\001', '\041', '\042', '\043', '\044', '\045', '\046', '\047',
-        '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057',
-        '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',
-        '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077',
-        '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
-        '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
-        '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
-        '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137',
-        '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
-        '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
-        '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
-        '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177',
-        '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',
-        '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',
-        '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',
-        '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',
-        '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247',
-        '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257',
-        '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267',
-        '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277',
-        '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307',
-        '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317',
-        '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327',
-        '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337',
-        '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',
-        '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',
-        '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',
-        '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377',
+        0, 0, 2, 3, 4, 5, 6, 7,
+        8, 9, 10, 11, 12, 13, 14, 15,
+        16, 17, 18, 19, 20, 21, 22, 23,
+        24, 25, 26, 27, 28, 29, 30, 31,
+        1, 33, 34, 35, 36, 37, 38, 39,
+        40, 41, 42, 43, 44, 45, 46, 47,
+        48, 49, 50, 51, 52, 53, 54, 55,
+        56, 57, 58, 59, 60, 61, 62, 63,
+        64, 97, 98, 99, 100, 101, 102, 103,
+        104, 105, 106, 107, 108, 109, 110, 111,
+        112, 113, 114, 115, 116, 117, 118, 119,
+        120, 121, 122, 91, 92, 93, 94, 95,
+        96, 97, 98, 99, 100, 101, 102, 103,
+        104, 105, 106, 107, 108, 109, 110, 111,
+        112, 113, 114, 115, 116, 117, 118, 119,
+        120, 121, 122, 123, 124, 125, 126, 127,
+        128, 129, 130, 131, 132, 133, 134, 135,
+        136, 137, 138, 139, 140, 141, 142, 143,
+        144, 145, 146, 147, 148, 149, 150, 151,
+        152, 153, 154, 155, 156, 157, 158, 159,
+        160, 161, 162, 163, 164, 165, 166, 167,
+        168, 169, 170, 171, 172, 173, 174, 175,
+        176, 177, 178, 179, 180, 181, 182, 183,
+        184, 185, 186, 187, 188, 189, 190, 191,
+        192, 193, 194, 195, 196, 197, 198, 199,
+        200, 201, 202, 203, 204, 205, 206, 207,
+        208, 209, 210, 211, 212, 213, 214, 215,
+        216, 217, 218, 219, 220, 221, 222, 223,
+        224, 225, 226, 227, 228, 229, 230, 231,
+        232, 233, 234, 235, 236, 237, 238, 239,
+        240, 241, 242, 243, 244, 245, 246, 247,
+        248, 249, 250, 251, 252, 253, 254, 255,
     },
     {
-        '\000', '\000', '\002', '\003', '\004', '\005', '\006', '\007',
-        '\010', '\011', '\012', '\013', '\014', '\015', '\016', '\017',
-        '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',
-        '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',
-        '\040', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\057',
-        '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',
-        '\070', '\071', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
-        '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
-        '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
-        '\170', '\171', '\172', '\001', '\000', '\001', '\136', '\137',
-        '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
-        '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
-        '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
-        '\170', '\171', '\172', '\001', '\001', '\001', '\176', '\177',
-        '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',
-        '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',
-        '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',
-        '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',
-        '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247',
-        '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257',
-        '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267',
-        '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277',
-        '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307',
-        '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317',
-        '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327',
-        '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337',
-        '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',
-        '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',
-        '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',
-        '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377',
+        0, 0, 2, 3, 4, 5, 6, 7,
+        8, 9, 10, 11, 12, 13, 14, 15,
+        16, 17, 18, 19, 20, 21, 22, 23,
+        24, 25, 26, 27, 28, 29, 30, 31,
+        32, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 47,
+        48, 49, 50, 51, 52, 53, 54, 55,
+        56, 57, 1, 1, 1, 1, 1, 1,
+        64, 97, 98, 99, 100, 101, 102, 103,
+        104, 105, 106, 107, 108, 109, 110, 111,
+        112, 113, 114, 115, 116, 117, 118, 119,
+        120, 121, 122, 1, 0, 1, 94, 95,
+        96, 97, 98, 99, 100, 101, 102, 103,
+        104, 105, 106, 107, 108, 109, 110, 111,
+        112, 113, 114, 115, 116, 117, 118, 119,
+        120, 121, 122, 1, 1, 1, 126, 127,
+        128, 129, 130, 131, 132, 133, 134, 135,
+        136, 137, 138, 139, 140, 141, 142, 143,
+        144, 145, 146, 147, 148, 149, 150, 151,
+        152, 153, 154, 155, 156, 157, 158, 159,
+        160, 161, 162, 163, 164, 165, 166, 167,
+        168, 169, 170, 171, 172, 173, 174, 175,
+        176, 177, 178, 179, 180, 181, 182, 183,
+        184, 185, 186, 187, 188, 189, 190, 191,
+        192, 193, 194, 195, 196, 197, 198, 199,
+        200, 201, 202, 203, 204, 205, 206, 207,
+        208, 209, 210, 211, 212, 213, 214, 215,
+        216, 217, 218, 219, 220, 221, 222, 223,
+        224, 225, 226, 227, 228, 229, 230, 231,
+        232, 233, 234, 235, 236, 237, 238, 239,
+        240, 241, 242, 243, 244, 245, 246, 247,
+        248, 249, 250, 251, 252, 253, 254, 255,
     },
     {
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\001', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        1, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
     },
     {
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\001', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 1, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
     },
     {
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\001', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 1, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
     },
     {
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 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,
     },
     {
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\001', '\001', '\001', '\001', '\000',
-        '\001', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\000', '\000', '\000', '\000', '\000',
-        '\000', '\000', '\000', '\001', '\001', '\001', '\001', '\000',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 1, 1, 1, 1, 1, 1,
+        1, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 1, 1, 1, 0,
+        1, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 0, 0, 0, 0, 0,
+        0, 0, 0, 1, 1, 1, 1, 0,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
     },
     {
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\000', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
+        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,
+        0, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
     },
     {
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
-        '\001', '\001', '\001', '\001', '\001', '\001', '\001', '\001',
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
+        1, 1, 1, 1, 1, 1, 1, 1,
     },
     {
-        '\000', '\000', '\002', '\003', '\004', '\005', '\006', '\007',
-        '\010', '\001', '\012', '\013', '\014', '\015', '\016', '\017',
-        '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',
-        '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',
-        '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047',
-        '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057',
-        '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',
-        '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077',
-        '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
-        '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
-        '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
-        '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137',
-        '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
-        '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
-        '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
-        '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177',
-        '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',
-        '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',
-        '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',
-        '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',
-        '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247',
-        '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257',
-        '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267',
-        '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277',
-        '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307',
-        '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317',
-        '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327',
-        '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337',
-        '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',
-        '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',
-        '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',
-        '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377',
+        0, 0, 2, 3, 4, 5, 6, 7,
+        8, 1, 10, 11, 12, 13, 14, 15,
+        16, 17, 18, 19, 20, 21, 22, 23,
+        24, 25, 26, 27, 28, 29, 30, 31,
+        32, 33, 34, 35, 36, 37, 38, 39,
+        40, 41, 42, 43, 44, 45, 46, 47,
+        48, 49, 50, 51, 52, 53, 54, 55,
+        56, 57, 58, 59, 60, 61, 62, 63,
+        64, 97, 98, 99, 100, 101, 102, 103,
+        104, 105, 106, 107, 108, 109, 110, 111,
+        112, 113, 114, 115, 116, 117, 118, 119,
+        120, 121, 122, 91, 92, 93, 94, 95,
+        96, 97, 98, 99, 100, 101, 102, 103,
+        104, 105, 106, 107, 108, 109, 110, 111,
+        112, 113, 114, 115, 116, 117, 118, 119,
+        120, 121, 122, 123, 124, 125, 126, 127,
+        128, 129, 130, 131, 132, 133, 134, 135,
+        136, 137, 138, 139, 140, 141, 142, 143,
+        144, 145, 146, 147, 148, 149, 150, 151,
+        152, 153, 154, 155, 156, 157, 158, 159,
+        160, 161, 162, 163, 164, 165, 166, 167,
+        168, 169, 170, 171, 172, 173, 174, 175,
+        176, 177, 178, 179, 180, 181, 182, 183,
+        184, 185, 186, 187, 188, 189, 190, 191,
+        192, 193, 194, 195, 196, 197, 198, 199,
+        200, 201, 202, 203, 204, 205, 206, 207,
+        208, 209, 210, 211, 212, 213, 214, 215,
+        216, 217, 218, 219, 220, 221, 222, 223,
+        224, 225, 226, 227, 228, 229, 230, 231,
+        232, 233, 234, 235, 236, 237, 238, 239,
+        240, 241, 242, 243, 244, 245, 246, 247,
+        248, 249, 250, 251, 252, 253, 254, 255,
     },
     {
-        '\000', '\000', '\002', '\003', '\004', '\005', '\006', '\007',
-        '\010', '\012', '\012', '\013', '\014', '\015', '\016', '\017',
-        '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',
-        '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',
-        '\040', '\041', '\042', '\043', '\001', '\045', '\046', '\047',
-        '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057',
-        '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',
-        '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077',
-        '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
-        '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
-        '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
-        '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137',
-        '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
-        '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
-        '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
-        '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177',
-        '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',
-        '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',
-        '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',
-        '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',
-        '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247',
-        '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257',
-        '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267',
-        '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277',
-        '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307',
-        '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317',
-        '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327',
-        '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337',
-        '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',
-        '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',
-        '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',
-        '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377',
+        0, 0, 2, 3, 4, 5, 6, 7,
+        8, 10, 10, 11, 12, 13, 14, 15,
+        16, 17, 18, 19, 20, 21, 22, 23,
+        24, 25, 26, 27, 28, 29, 30, 31,
+        32, 33, 34, 35, 1, 37, 38, 39,
+        40, 41, 42, 43, 44, 45, 46, 47,
+        48, 49, 50, 51, 52, 53, 54, 55,
+        56, 57, 58, 59, 60, 61, 62, 63,
+        64, 97, 98, 99, 100, 101, 102, 103,
+        104, 105, 106, 107, 108, 109, 110, 111,
+        112, 113, 114, 115, 116, 117, 118, 119,
+        120, 121, 122, 91, 92, 93, 94, 95,
+        96, 97, 98, 99, 100, 101, 102, 103,
+        104, 105, 106, 107, 108, 109, 110, 111,
+        112, 113, 114, 115, 116, 117, 118, 119,
+        120, 121, 122, 123, 124, 125, 126, 127,
+        128, 129, 130, 131, 132, 133, 134, 135,
+        136, 137, 138, 139, 140, 141, 142, 143,
+        144, 145, 146, 147, 148, 149, 150, 151,
+        152, 153, 154, 155, 156, 157, 158, 159,
+        160, 161, 162, 163, 164, 165, 166, 167,
+        168, 169, 170, 171, 172, 173, 174, 175,
+        176, 177, 178, 179, 180, 181, 182, 183,
+        184, 185, 186, 187, 188, 189, 190, 191,
+        192, 193, 194, 195, 196, 197, 198, 199,
+        200, 201, 202, 203, 204, 205, 206, 207,
+        208, 209, 210, 211, 212, 213, 214, 215,
+        216, 217, 218, 219, 220, 221, 222, 223,
+        224, 225, 226, 227, 228, 229, 230, 231,
+        232, 233, 234, 235, 236, 237, 238, 239,
+        240, 241, 242, 243, 244, 245, 246, 247,
+        248, 249, 250, 251, 252, 253, 254, 255,
     },
     {
-        '\000', '\000', '\002', '\003', '\004', '\005', '\006', '\007',
-        '\010', '\012', '\012', '\013', '\014', '\015', '\016', '\017',
-        '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',
-        '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',
-        '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047',
-        '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057',
-        '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',
-        '\070', '\071', '\072', '\073', '\074', '\075', '\076', '\077',
-        '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
-        '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
-        '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
-        '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137',
-        '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
-        '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
-        '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
-        '\170', '\171', '\172', '\173', '\001', '\175', '\176', '\177',
-        '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',
-        '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',
-        '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',
-        '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',
-        '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247',
-        '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257',
-        '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267',
-        '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277',
-        '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307',
-        '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317',
-        '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327',
-        '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337',
-        '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',
-        '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',
-        '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',
-        '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377',
+        0, 0, 2, 3, 4, 5, 6, 7,
+        8, 10, 10, 11, 12, 13, 14, 15,
+        16, 17, 18, 19, 20, 21, 22, 23,
+        24, 25, 26, 27, 28, 29, 30, 31,
+        32, 33, 34, 35, 36, 37, 38, 39,
+        40, 41, 42, 43, 44, 45, 46, 47,
+        48, 49, 50, 51, 52, 53, 54, 55,
+        56, 57, 58, 59, 60, 61, 62, 63,
+        64, 97, 98, 99, 100, 101, 102, 103,
+        104, 105, 106, 107, 108, 109, 110, 111,
+        112, 113, 114, 115, 116, 117, 118, 119,
+        120, 121, 122, 91, 92, 93, 94, 95,
+        96, 97, 98, 99, 100, 101, 102, 103,
+        104, 105, 106, 107, 108, 109, 110, 111,
+        112, 113, 114, 115, 116, 117, 118, 119,
+        120, 121, 122, 123, 1, 125, 126, 127,
+        128, 129, 130, 131, 132, 133, 134, 135,
+        136, 137, 138, 139, 140, 141, 142, 143,
+        144, 145, 146, 147, 148, 149, 150, 151,
+        152, 153, 154, 155, 156, 157, 158, 159,
+        160, 161, 162, 163, 164, 165, 166, 167,
+        168, 169, 170, 171, 172, 173, 174, 175,
+        176, 177, 178, 179, 180, 181, 182, 183,
+        184, 185, 186, 187, 188, 189, 190, 191,
+        192, 193, 194, 195, 196, 197, 198, 199,
+        200, 201, 202, 203, 204, 205, 206, 207,
+        208, 209, 210, 211, 212, 213, 214, 215,
+        216, 217, 218, 219, 220, 221, 222, 223,
+        224, 225, 226, 227, 228, 229, 230, 231,
+        232, 233, 234, 235, 236, 237, 238, 239,
+        240, 241, 242, 243, 244, 245, 246, 247,
+        248, 249, 250, 251, 252, 253, 254, 255,
     },
 
 
     {
-        '\000', '\000', '\002', '\003', '\004', '\005', '\006', '\007',
-        '\010', '\012', '\012', '\013', '\014', '\015', '\016', '\017',
-        '\020', '\021', '\022', '\023', '\024', '\025', '\026', '\027',
-        '\030', '\031', '\032', '\033', '\034', '\035', '\036', '\037',
-        '\040', '\041', '\042', '\043', '\044', '\045', '\046', '\047',
-        '\050', '\051', '\052', '\053', '\054', '\055', '\056', '\057',
-        '\060', '\061', '\062', '\063', '\064', '\065', '\066', '\067',
-        '\070', '\071', '\072', '\073', '\001', '\075', '\076', '\077',
-        '\100', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
-        '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
-        '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
-        '\170', '\171', '\172', '\133', '\134', '\135', '\136', '\137',
-        '\140', '\141', '\142', '\143', '\144', '\145', '\146', '\147',
-        '\150', '\151', '\152', '\153', '\154', '\155', '\156', '\157',
-        '\160', '\161', '\162', '\163', '\164', '\165', '\166', '\167',
-        '\170', '\171', '\172', '\173', '\174', '\175', '\176', '\177',
-        '\200', '\201', '\202', '\203', '\204', '\205', '\206', '\207',
-        '\210', '\211', '\212', '\213', '\214', '\215', '\216', '\217',
-        '\220', '\221', '\222', '\223', '\224', '\225', '\226', '\227',
-        '\230', '\231', '\232', '\233', '\234', '\235', '\236', '\237',
-        '\240', '\241', '\242', '\243', '\244', '\245', '\246', '\247',
-        '\250', '\251', '\252', '\253', '\254', '\255', '\256', '\257',
-        '\260', '\261', '\262', '\263', '\264', '\265', '\266', '\267',
-        '\270', '\271', '\272', '\273', '\274', '\275', '\276', '\277',
-        '\300', '\301', '\302', '\303', '\304', '\305', '\306', '\307',
-        '\310', '\311', '\312', '\313', '\314', '\315', '\316', '\317',
-        '\320', '\321', '\322', '\323', '\324', '\325', '\326', '\327',
-        '\330', '\331', '\332', '\333', '\334', '\335', '\336', '\337',
-        '\340', '\341', '\342', '\343', '\344', '\345', '\346', '\347',
-        '\350', '\351', '\352', '\353', '\354', '\355', '\356', '\357',
-        '\360', '\361', '\362', '\363', '\364', '\365', '\366', '\367',
-        '\370', '\371', '\372', '\373', '\374', '\375', '\376', '\377',
+        0, 0, 2, 3, 4, 5, 6, 7,
+        8, 10, 10, 11, 12, 13, 14, 15,
+        16, 17, 18, 19, 20, 21, 22, 23,
+        24, 25, 26, 27, 28, 29, 30, 31,
+        32, 33, 34, 35, 36, 37, 38, 39,
+        40, 41, 42, 43, 44, 45, 46, 47,
+        48, 49, 50, 51, 52, 53, 54, 55,
+        56, 57, 58, 59, 1, 61, 62, 63,
+        64, 97, 98, 99, 100, 101, 102, 103,
+        104, 105, 106, 107, 108, 109, 110, 111,
+        112, 113, 114, 115, 116, 117, 118, 119,
+        120, 121, 122, 91, 92, 93, 94, 95,
+        96, 97, 98, 99, 100, 101, 102, 103,
+        104, 105, 106, 107, 108, 109, 110, 111,
+        112, 113, 114, 115, 116, 117, 118, 119,
+        120, 121, 122, 123, 124, 125, 126, 127,
+        128, 129, 130, 131, 132, 133, 134, 135,
+        136, 137, 138, 139, 140, 141, 142, 143,
+        144, 145, 146, 147, 148, 149, 150, 151,
+        152, 153, 154, 155, 156, 157, 158, 159,
+        160, 161, 162, 163, 164, 165, 166, 167,
+        168, 169, 170, 171, 172, 173, 174, 175,
+        176, 177, 178, 179, 180, 181, 182, 183,
+        184, 185, 186, 187, 188, 189, 190, 191,
+        192, 193, 194, 195, 196, 197, 198, 199,
+        200, 201, 202, 203, 204, 205, 206, 207,
+        208, 209, 210, 211, 212, 213, 214, 215,
+        216, 217, 218, 219, 220, 221, 222, 223,
+        224, 225, 226, 227, 228, 229, 230, 231,
+        232, 233, 234, 235, 236, 237, 238, 239,
+        240, 241, 242, 243, 244, 245, 246, 247,
+        248, 249, 250, 251, 252, 253, 254, 255,
     },