[indic-generator/myanmar] Move most Myanmar category overrides to generator
This commit is contained in:
parent
c136227f57
commit
37217fc9be
|
@ -245,6 +245,114 @@ category_overrides = {
|
||||||
0x17C8: 'Ygroup',
|
0x17C8: 'Ygroup',
|
||||||
0x17DD: 'Ygroup',
|
0x17DD: 'Ygroup',
|
||||||
0x17D3: 'Ygroup', # Just guessing. Uniscribe doesn't categorize it.
|
0x17D3: 'Ygroup', # Just guessing. Uniscribe doesn't categorize it.
|
||||||
|
|
||||||
|
|
||||||
|
# Myanmar
|
||||||
|
|
||||||
|
# https://docs.microsoft.com/en-us/typography/script-development/myanmar#analyze
|
||||||
|
|
||||||
|
0xFE00: 'VS',
|
||||||
|
0xFE01: 'VS',
|
||||||
|
0xFE02: 'VS',
|
||||||
|
0xFE03: 'VS',
|
||||||
|
0xFE04: 'VS',
|
||||||
|
0xFE05: 'VS',
|
||||||
|
0xFE06: 'VS',
|
||||||
|
0xFE07: 'VS',
|
||||||
|
0xFE08: 'VS',
|
||||||
|
0xFE09: 'VS',
|
||||||
|
0xFE0A: 'VS',
|
||||||
|
0xFE0B: 'VS',
|
||||||
|
0xFE0C: 'VS',
|
||||||
|
0xFE0D: 'VS',
|
||||||
|
0xFE0E: 'VS',
|
||||||
|
0xFE0F: 'VS',
|
||||||
|
|
||||||
|
0x104E: 'C', # The spec says C, IndicSyllableCategory doesn't have.
|
||||||
|
|
||||||
|
0x002D: 'PLACEHOLDER',
|
||||||
|
0x00A0: 'PLACEHOLDER',
|
||||||
|
0x00D7: 'PLACEHOLDER',
|
||||||
|
0x2012: 'PLACEHOLDER',
|
||||||
|
0x2013: 'PLACEHOLDER',
|
||||||
|
0x2014: 'PLACEHOLDER',
|
||||||
|
0x2015: 'PLACEHOLDER',
|
||||||
|
0x2022: 'PLACEHOLDER',
|
||||||
|
0x25FB: 'PLACEHOLDER',
|
||||||
|
0x25FC: 'PLACEHOLDER',
|
||||||
|
0x25FD: 'PLACEHOLDER',
|
||||||
|
0x25FE: 'PLACEHOLDER',
|
||||||
|
|
||||||
|
0x1004: 'Ra',
|
||||||
|
0x101B: 'Ra',
|
||||||
|
0x105A: 'Ra',
|
||||||
|
|
||||||
|
0x1032: 'A',
|
||||||
|
0x1036: 'A',
|
||||||
|
|
||||||
|
0x1039: 'H',
|
||||||
|
|
||||||
|
0x103A: 'As',
|
||||||
|
|
||||||
|
0x1040: 'D', # XXX The spec says D0, but Uniscribe doesn't seem to do.
|
||||||
|
0x1041: 'D',
|
||||||
|
0x1042: 'D',
|
||||||
|
0x1043: 'D',
|
||||||
|
0x1044: 'D',
|
||||||
|
0x1045: 'D',
|
||||||
|
0x1046: 'D',
|
||||||
|
0x1047: 'D',
|
||||||
|
0x1048: 'D',
|
||||||
|
0x1049: 'D',
|
||||||
|
0x1090: 'D',
|
||||||
|
0x1091: 'D',
|
||||||
|
0x1092: 'D',
|
||||||
|
0x1093: 'D',
|
||||||
|
0x1094: 'D',
|
||||||
|
0x1095: 'D',
|
||||||
|
0x1096: 'D',
|
||||||
|
0x1097: 'D',
|
||||||
|
0x1098: 'D',
|
||||||
|
0x1099: 'D',
|
||||||
|
|
||||||
|
0x103E: 'MH',
|
||||||
|
0x1060: 'ML',
|
||||||
|
0x103C: 'MR',
|
||||||
|
0x103D: 'MW',
|
||||||
|
0x1082: 'MW',
|
||||||
|
0x103B: 'MY',
|
||||||
|
0x105E: 'MY',
|
||||||
|
0x105F: 'MY',
|
||||||
|
|
||||||
|
0x1063: 'PT',
|
||||||
|
0x1064: 'PT',
|
||||||
|
0x1069: 'PT',
|
||||||
|
0x106A: 'PT',
|
||||||
|
0x106B: 'PT',
|
||||||
|
0x106C: 'PT',
|
||||||
|
0x106D: 'PT',
|
||||||
|
0xAA7B: 'PT',
|
||||||
|
|
||||||
|
0x1038: 'SM',
|
||||||
|
0x1087: 'SM',
|
||||||
|
0x1088: 'SM',
|
||||||
|
0x1089: 'SM',
|
||||||
|
0x108A: 'SM',
|
||||||
|
0x108B: 'SM',
|
||||||
|
0x108C: 'SM',
|
||||||
|
0x108D: 'SM',
|
||||||
|
0x108F: 'SM',
|
||||||
|
0x109A: 'SM',
|
||||||
|
0x109B: 'SM',
|
||||||
|
0x109C: 'SM',
|
||||||
|
|
||||||
|
0x104A: 'P',
|
||||||
|
0x104B: 'P',
|
||||||
|
|
||||||
|
# https://github.com/harfbuzz/harfbuzz/issues/218
|
||||||
|
0xAA74: 'C',
|
||||||
|
0xAA75: 'C',
|
||||||
|
0xAA76: 'C',
|
||||||
}
|
}
|
||||||
position_overrides = {
|
position_overrides = {
|
||||||
|
|
||||||
|
@ -302,6 +410,7 @@ def position_to_category(pos):
|
||||||
if pos == 'ABOVE_C': return 'VAbv'
|
if pos == 'ABOVE_C': return 'VAbv'
|
||||||
if pos == 'BELOW_C': return 'VBlw'
|
if pos == 'BELOW_C': return 'VBlw'
|
||||||
if pos == 'POST_C': return 'VPst'
|
if pos == 'POST_C': return 'VPst'
|
||||||
|
assert(False)
|
||||||
|
|
||||||
|
|
||||||
defaults = (category_map[defaults[0]], position_map[defaults[1]], defaults[2])
|
defaults = (category_map[defaults[0]], position_map[defaults[1]], defaults[2])
|
||||||
|
@ -391,6 +500,7 @@ short = [{
|
||||||
"Robatic": 'Rt',
|
"Robatic": 'Rt',
|
||||||
"Xgroup": 'Xg',
|
"Xgroup": 'Xg',
|
||||||
"Ygroup": 'Yg',
|
"Ygroup": 'Yg',
|
||||||
|
"As": 'As',
|
||||||
},{
|
},{
|
||||||
"END": 'X',
|
"END": 'X',
|
||||||
"BASE_C": 'C',
|
"BASE_C": 'C',
|
||||||
|
|
|
@ -23,44 +23,54 @@
|
||||||
#pragma GCC diagnostic push
|
#pragma GCC diagnostic push
|
||||||
#pragma GCC diagnostic ignored "-Wunused-macros"
|
#pragma GCC diagnostic ignored "-Wunused-macros"
|
||||||
|
|
||||||
#define ISC_A OT_A /* 51 chars; A */
|
#define ISC_A OT_A /* 53 chars; A */
|
||||||
#define ISC_C OT_C /* 520 chars; C */
|
#define ISC_As OT_As /* 1 chars; As */
|
||||||
#define ISC_CM OT_CM /* 9 chars; CM */
|
#define ISC_C OT_C /* 521 chars; C */
|
||||||
|
#define ISC_CM OT_CM /* 1 chars; CM */
|
||||||
#define ISC_CS OT_CS /* 2 chars; CS */
|
#define ISC_CS OT_CS /* 2 chars; CS */
|
||||||
#define ISC_Co OT_Coeng /* 2 chars; Coeng */
|
#define ISC_Co OT_Coeng /* 1 chars; Coeng */
|
||||||
|
#define ISC_D OT_D /* 20 chars; D */
|
||||||
#define ISC_DC OT_DOTTEDCIRCLE /* 1 chars; DOTTEDCIRCLE */
|
#define ISC_DC OT_DOTTEDCIRCLE /* 1 chars; DOTTEDCIRCLE */
|
||||||
#define ISC_H OT_H /* 10 chars; H */
|
#define ISC_H OT_H /* 11 chars; H */
|
||||||
#define ISC_M OT_M /* 160 chars; M */
|
#define ISC_M OT_M /* 160 chars; M */
|
||||||
#define ISC_N OT_N /* 35 chars; N */
|
#define ISC_MH OT_MH /* 1 chars; MH */
|
||||||
#define ISC_GB OT_PLACEHOLDER /* 168 chars; PLACEHOLDER */
|
#define ISC_ML OT_ML /* 1 chars; ML */
|
||||||
#define ISC_R OT_Ra /* 12 chars; Ra */
|
#define ISC_MR OT_MR /* 1 chars; MR */
|
||||||
|
#define ISC_MW OT_MW /* 2 chars; MW */
|
||||||
|
#define ISC_MY OT_MY /* 3 chars; MY */
|
||||||
|
#define ISC_N OT_N /* 17 chars; N */
|
||||||
|
#define ISC_P OT_P /* 2 chars; P */
|
||||||
|
#define ISC_GB OT_PLACEHOLDER /* 149 chars; PLACEHOLDER */
|
||||||
|
#define ISC_PT OT_PT /* 8 chars; PT */
|
||||||
|
#define ISC_R OT_Ra /* 15 chars; Ra */
|
||||||
#define ISC_Rf OT_Repha /* 1 chars; Repha */
|
#define ISC_Rf OT_Repha /* 1 chars; Repha */
|
||||||
#define ISC_Rt OT_Robatic /* 3 chars; Robatic */
|
#define ISC_Rt OT_Robatic /* 3 chars; Robatic */
|
||||||
#define ISC_SM OT_SM /* 48 chars; SM */
|
#define ISC_SM OT_SM /* 58 chars; SM */
|
||||||
#define ISC_S OT_Symbol /* 22 chars; Symbol */
|
#define ISC_S OT_Symbol /* 22 chars; Symbol */
|
||||||
#define ISC_V OT_V /* 190 chars; V */
|
#define ISC_V OT_V /* 190 chars; V */
|
||||||
#define ISC_VA OT_VAbv /* 20 chars; VAbv */
|
#define ISC_VA OT_VAbv /* 18 chars; VAbv */
|
||||||
#define ISC_VB OT_VBlw /* 7 chars; VBlw */
|
#define ISC_VB OT_VBlw /* 7 chars; VBlw */
|
||||||
#define ISC_VL OT_VPre /* 5 chars; VPre */
|
#define ISC_VL OT_VPre /* 5 chars; VPre */
|
||||||
#define ISC_VR OT_VPst /* 14 chars; VPst */
|
#define ISC_VR OT_VPst /* 13 chars; VPst */
|
||||||
|
#define ISC_VS OT_VS /* 16 chars; VS */
|
||||||
#define ISC_X OT_X /* 2 chars; X */
|
#define ISC_X OT_X /* 2 chars; X */
|
||||||
#define ISC_Xg OT_Xgroup /* 7 chars; Xgroup */
|
#define ISC_Xg OT_Xgroup /* 7 chars; Xgroup */
|
||||||
#define ISC_Yg OT_Ygroup /* 4 chars; Ygroup */
|
#define ISC_Yg OT_Ygroup /* 4 chars; Ygroup */
|
||||||
#define ISC_ZWJ OT_ZWJ /* 1 chars; ZWJ */
|
#define ISC_ZWJ OT_ZWJ /* 1 chars; ZWJ */
|
||||||
#define ISC_ZWNJ OT_ZWNJ /* 1 chars; ZWNJ */
|
#define ISC_ZWNJ OT_ZWNJ /* 1 chars; ZWNJ */
|
||||||
|
|
||||||
#define IMC_T POS_ABOVE_C /* 25 chars; ABOVE_C */
|
#define IMC_T POS_ABOVE_C /* 23 chars; ABOVE_C */
|
||||||
#define IMC_A POS_AFTER_MAIN /* 3 chars; AFTER_MAIN */
|
#define IMC_A POS_AFTER_MAIN /* 3 chars; AFTER_MAIN */
|
||||||
#define IMC_AP POS_AFTER_POST /* 50 chars; AFTER_POST */
|
#define IMC_AP POS_AFTER_POST /* 50 chars; AFTER_POST */
|
||||||
#define IMC_AS POS_AFTER_SUB /* 60 chars; AFTER_SUB */
|
#define IMC_AS POS_AFTER_SUB /* 60 chars; AFTER_SUB */
|
||||||
#define IMC_C POS_BASE_C /* 902 chars; BASE_C */
|
#define IMC_C POS_BASE_C /* 879 chars; BASE_C */
|
||||||
#define IMC_BS POS_BEFORE_SUB /* 31 chars; BEFORE_SUB */
|
#define IMC_BS POS_BEFORE_SUB /* 31 chars; BEFORE_SUB */
|
||||||
#define IMC_B POS_BELOW_C /* 13 chars; BELOW_C */
|
#define IMC_B POS_BELOW_C /* 13 chars; BELOW_C */
|
||||||
#define IMC_X POS_END /* 56 chars; END */
|
#define IMC_X POS_END /* 93 chars; END */
|
||||||
#define IMC_R POS_POST_C /* 14 chars; POST_C */
|
#define IMC_R POS_POST_C /* 13 chars; POST_C */
|
||||||
#define IMC_L POS_PRE_C /* 5 chars; PRE_C */
|
#define IMC_L POS_PRE_C /* 5 chars; PRE_C */
|
||||||
#define IMC_LM POS_PRE_M /* 16 chars; PRE_M */
|
#define IMC_LM POS_PRE_M /* 16 chars; PRE_M */
|
||||||
#define IMC_SM POS_SMVD /* 120 chars; SMVD */
|
#define IMC_SM POS_SMVD /* 132 chars; SMVD */
|
||||||
|
|
||||||
#pragma GCC diagnostic pop
|
#pragma GCC diagnostic pop
|
||||||
|
|
||||||
|
@ -287,26 +297,26 @@ static const uint16_t indic_table[] = {
|
||||||
|
|
||||||
/* Myanmar */
|
/* Myanmar */
|
||||||
|
|
||||||
/* 1000 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C),
|
/* 1000 */ _(C,C), _(C,C), _(C,C), _(C,C), _(R,C), _(C,C), _(C,C), _(C,C),
|
||||||
/* 1008 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C),
|
/* 1008 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C),
|
||||||
/* 1010 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C),
|
/* 1010 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C),
|
||||||
/* 1018 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C),
|
/* 1018 */ _(C,C), _(C,C), _(C,C), _(R,C), _(C,C), _(C,C), _(C,C), _(C,C),
|
||||||
/* 1020 */ _(C,C), _(V,C), _(V,C), _(V,C), _(V,C), _(V,C), _(V,C), _(V,C),
|
/* 1020 */ _(C,C), _(V,C), _(V,C), _(V,C), _(V,C), _(V,C), _(V,C), _(V,C),
|
||||||
/* 1028 */ _(V,C), _(V,C), _(V,C), _(VR,R), _(VR,R), _(VA,T), _(VA,T), _(VB,B),
|
/* 1028 */ _(V,C), _(V,C), _(V,C), _(VR,R), _(VR,R), _(VA,T), _(VA,T), _(VB,B),
|
||||||
/* 1030 */ _(VB,B), _(VL,L), _(VA,T), _(VA,T), _(VA,T), _(VA,T),_(SM,SM), _(N,X),
|
/* 1030 */ _(VB,B), _(VL,L), _(A,SM), _(VA,T), _(VA,T), _(VA,T), _(A,SM), _(N,X),
|
||||||
/* 1038 */_(SM,SM), _(Co,X), _(VA,T), _(CM,C), _(CM,C), _(CM,C), _(CM,C), _(C,C),
|
/* 1038 */_(SM,SM), _(H,X), _(As,X), _(MY,X), _(MR,X), _(MW,X), _(MH,X), _(C,C),
|
||||||
/* 1040 */ _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C),
|
/* 1040 */ _(D,X), _(D,X), _(D,X), _(D,X), _(D,X), _(D,X), _(D,X), _(D,X),
|
||||||
/* 1048 */ _(GB,C), _(GB,C), _(X,X), _(GB,C), _(X,X), _(X,X), _(GB,C), _(X,X),
|
/* 1048 */ _(D,X), _(D,X), _(P,X), _(P,X), _(X,X), _(X,X), _(C,C), _(X,X),
|
||||||
/* 1050 */ _(C,C), _(C,C), _(V,C), _(V,C), _(V,C), _(V,C), _(VR,R), _(VR,R),
|
/* 1050 */ _(C,C), _(C,C), _(V,C), _(V,C), _(V,C), _(V,C), _(VR,R), _(VR,R),
|
||||||
/* 1058 */ _(VB,B), _(VB,B), _(C,C), _(C,C), _(C,C), _(C,C), _(CM,C), _(CM,C),
|
/* 1058 */ _(VB,B), _(VB,B), _(R,C), _(C,C), _(C,C), _(C,C), _(MY,X), _(MY,X),
|
||||||
/* 1060 */ _(CM,C), _(C,C), _(VR,R), _(N,X), _(N,X), _(C,C), _(C,C), _(VR,R),
|
/* 1060 */ _(ML,X), _(C,C), _(VR,R), _(PT,X), _(PT,X), _(C,C), _(C,C), _(VR,R),
|
||||||
/* 1068 */ _(VR,R), _(N,X), _(N,X), _(N,X), _(N,X), _(N,X), _(C,C), _(C,C),
|
/* 1068 */ _(VR,R), _(PT,X), _(PT,X), _(PT,X), _(PT,X), _(PT,X), _(C,C), _(C,C),
|
||||||
/* 1070 */ _(C,C), _(VA,T), _(VA,T), _(VA,T), _(VA,T), _(C,C), _(C,C), _(C,C),
|
/* 1070 */ _(C,C), _(VA,T), _(VA,T), _(VA,T), _(VA,T), _(C,C), _(C,C), _(C,C),
|
||||||
/* 1078 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C),
|
/* 1078 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C),
|
||||||
/* 1080 */ _(C,C), _(C,C), _(CM,C), _(VR,R), _(VL,L), _(VA,T), _(VA,T), _(N,X),
|
/* 1080 */ _(C,C), _(C,C), _(MW,X), _(VR,R), _(VL,L), _(VA,T), _(VA,T),_(SM,SM),
|
||||||
/* 1088 */ _(N,X), _(N,X), _(N,X), _(N,X), _(N,X), _(N,X), _(C,C), _(N,X),
|
/* 1088 */_(SM,SM),_(SM,SM),_(SM,SM),_(SM,SM),_(SM,SM),_(SM,SM), _(C,C),_(SM,SM),
|
||||||
/* 1090 */ _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C),
|
/* 1090 */ _(D,X), _(D,X), _(D,X), _(D,X), _(D,X), _(D,X), _(D,X), _(D,X),
|
||||||
/* 1098 */ _(GB,C), _(GB,C), _(N,X), _(N,X), _(VR,R), _(VA,T), _(X,X), _(X,X),
|
/* 1098 */ _(D,X), _(D,X),_(SM,SM),_(SM,SM),_(SM,SM), _(VA,T), _(X,X), _(X,X),
|
||||||
|
|
||||||
#define indic_offset_0x1780u 1496
|
#define indic_offset_0x1780u 1496
|
||||||
|
|
||||||
|
@ -352,9 +362,14 @@ static const uint16_t indic_table[] = {
|
||||||
/* General Punctuation */
|
/* General Punctuation */
|
||||||
|
|
||||||
/* 2008 */ _(X,X), _(X,X), _(X,X), _(X,X),_(ZWNJ,X),_(ZWJ,X), _(X,X), _(X,X),
|
/* 2008 */ _(X,X), _(X,X), _(X,X), _(X,X),_(ZWNJ,X),_(ZWJ,X), _(X,X), _(X,X),
|
||||||
/* 2010 */ _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(X,X), _(X,X), _(X,X),
|
/* 2010 */ _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(X,X), _(X,X),
|
||||||
|
/* 2018 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
|
||||||
|
|
||||||
#define indic_offset_0x2070u 1672
|
/* No_Block */
|
||||||
|
|
||||||
|
/* 2020 */ _(X,X), _(X,X), _(GB,C), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
|
||||||
|
|
||||||
|
#define indic_offset_0x2070u 1688
|
||||||
|
|
||||||
|
|
||||||
/* Superscripts and Subscripts */
|
/* Superscripts and Subscripts */
|
||||||
|
@ -363,7 +378,14 @@ static const uint16_t indic_table[] = {
|
||||||
/* 2078 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
|
/* 2078 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
|
||||||
/* 2080 */ _(X,X), _(X,X),_(SM,SM),_(SM,SM),_(SM,SM), _(X,X), _(X,X), _(X,X),
|
/* 2080 */ _(X,X), _(X,X),_(SM,SM),_(SM,SM),_(SM,SM), _(X,X), _(X,X), _(X,X),
|
||||||
|
|
||||||
#define indic_offset_0xa8e0u 1696
|
#define indic_offset_0x25f8u 1712
|
||||||
|
|
||||||
|
|
||||||
|
/* No_Block */
|
||||||
|
|
||||||
|
/* 25F8 */ _(X,X), _(X,X), _(X,X), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(X,X),
|
||||||
|
|
||||||
|
#define indic_offset_0xa8e0u 1720
|
||||||
|
|
||||||
|
|
||||||
/* Devanagari Extended */
|
/* Devanagari Extended */
|
||||||
|
@ -373,7 +395,7 @@ static const uint16_t indic_table[] = {
|
||||||
/* A8F0 */ _(A,SM), _(A,SM), _(S,SM), _(S,SM), _(S,SM), _(S,SM), _(S,SM), _(S,SM),
|
/* A8F0 */ _(A,SM), _(A,SM), _(S,SM), _(S,SM), _(S,SM), _(S,SM), _(S,SM), _(S,SM),
|
||||||
/* A8F8 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(V,C), _(M,AS),
|
/* A8F8 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(V,C), _(M,AS),
|
||||||
|
|
||||||
#define indic_offset_0xa9e0u 1728
|
#define indic_offset_0xa9e0u 1752
|
||||||
|
|
||||||
|
|
||||||
/* Myanmar Extended-B */
|
/* Myanmar Extended-B */
|
||||||
|
@ -383,21 +405,26 @@ static const uint16_t indic_table[] = {
|
||||||
/* A9F0 */ _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C),
|
/* A9F0 */ _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C), _(GB,C),
|
||||||
/* A9F8 */ _(GB,C), _(GB,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(X,X),
|
/* A9F8 */ _(GB,C), _(GB,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(X,X),
|
||||||
|
|
||||||
#define indic_offset_0xaa60u 1760
|
#define indic_offset_0xaa60u 1784
|
||||||
|
|
||||||
|
|
||||||
/* Myanmar Extended-A */
|
/* Myanmar Extended-A */
|
||||||
|
|
||||||
/* AA60 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C),
|
/* AA60 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C),
|
||||||
/* AA68 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C),
|
/* AA68 */ _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C),
|
||||||
/* AA70 */ _(X,X), _(C,C), _(C,C), _(C,C), _(GB,C), _(GB,C), _(GB,C), _(X,X),
|
/* AA70 */ _(X,X), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(C,C), _(X,X),
|
||||||
/* AA78 */ _(X,X), _(X,X), _(C,C), _(N,X), _(N,X), _(N,X), _(C,C), _(C,C),
|
/* AA78 */ _(X,X), _(X,X), _(C,C), _(PT,X), _(N,X), _(N,X), _(C,C), _(C,C),
|
||||||
|
|
||||||
#define indic_offset_0x11300u 1792
|
#define indic_offset_0xfe00u 1816
|
||||||
|
|
||||||
|
|
||||||
/* No_Block */
|
/* No_Block */
|
||||||
|
|
||||||
|
/* FE00 */ _(VS,X), _(VS,X), _(VS,X), _(VS,X), _(VS,X), _(VS,X), _(VS,X), _(VS,X),
|
||||||
|
/* FE08 */ _(VS,X), _(VS,X), _(VS,X), _(VS,X), _(VS,X), _(VS,X), _(VS,X), _(VS,X),
|
||||||
|
|
||||||
|
#define indic_offset_0x11300u 1832
|
||||||
|
|
||||||
/* 11300 */ _(X,X),_(SM,SM),_(SM,SM),_(SM,SM), _(X,X), _(X,X), _(X,X), _(X,X),
|
/* 11300 */ _(X,X),_(SM,SM),_(SM,SM),_(SM,SM), _(X,X), _(X,X), _(X,X), _(X,X),
|
||||||
/* 11308 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
|
/* 11308 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
|
||||||
/* 11310 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
|
/* 11310 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
|
||||||
|
@ -407,7 +434,7 @@ static const uint16_t indic_table[] = {
|
||||||
/* 11330 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
|
/* 11330 */ _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X), _(X,X),
|
||||||
/* 11338 */ _(X,X), _(X,X), _(X,X), _(N,X), _(N,X), _(X,X), _(X,X), _(X,X),
|
/* 11338 */ _(X,X), _(X,X), _(X,X), _(N,X), _(N,X), _(X,X), _(X,X), _(X,X),
|
||||||
|
|
||||||
}; /* Table items: 1856; occupancy: 69% */
|
}; /* Table items: 1896; occupancy: 69% */
|
||||||
|
|
||||||
uint16_t
|
uint16_t
|
||||||
hb_indic_get_categories (hb_codepoint_t u)
|
hb_indic_get_categories (hb_codepoint_t u)
|
||||||
|
@ -429,8 +456,9 @@ hb_indic_get_categories (hb_codepoint_t u)
|
||||||
|
|
||||||
case 0x2u:
|
case 0x2u:
|
||||||
if (unlikely (u == 0x25CCu)) return _(DC,C);
|
if (unlikely (u == 0x25CCu)) return _(DC,C);
|
||||||
if (hb_in_range<hb_codepoint_t> (u, 0x2008u, 0x2017u)) return indic_table[u - 0x2008u + indic_offset_0x2008u];
|
if (hb_in_range<hb_codepoint_t> (u, 0x2008u, 0x2027u)) return indic_table[u - 0x2008u + indic_offset_0x2008u];
|
||||||
if (hb_in_range<hb_codepoint_t> (u, 0x2070u, 0x2087u)) return indic_table[u - 0x2070u + indic_offset_0x2070u];
|
if (hb_in_range<hb_codepoint_t> (u, 0x2070u, 0x2087u)) return indic_table[u - 0x2070u + indic_offset_0x2070u];
|
||||||
|
if (hb_in_range<hb_codepoint_t> (u, 0x25F8u, 0x25FFu)) return indic_table[u - 0x25F8u + indic_offset_0x25f8u];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 0xAu:
|
case 0xAu:
|
||||||
|
@ -439,6 +467,10 @@ hb_indic_get_categories (hb_codepoint_t u)
|
||||||
if (hb_in_range<hb_codepoint_t> (u, 0xAA60u, 0xAA7Fu)) return indic_table[u - 0xAA60u + indic_offset_0xaa60u];
|
if (hb_in_range<hb_codepoint_t> (u, 0xAA60u, 0xAA7Fu)) return indic_table[u - 0xAA60u + indic_offset_0xaa60u];
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 0xFu:
|
||||||
|
if (hb_in_range<hb_codepoint_t> (u, 0xFE00u, 0xFE0Fu)) return indic_table[u - 0xFE00u + indic_offset_0xfe00u];
|
||||||
|
break;
|
||||||
|
|
||||||
case 0x11u:
|
case 0x11u:
|
||||||
if (hb_in_range<hb_codepoint_t> (u, 0x11300u, 0x1133Fu)) return indic_table[u - 0x11300u + indic_offset_0x11300u];
|
if (hb_in_range<hb_codepoint_t> (u, 0x11300u, 0x1133Fu)) return indic_table[u - 0x11300u + indic_offset_0x11300u];
|
||||||
break;
|
break;
|
||||||
|
@ -452,15 +484,24 @@ hb_indic_get_categories (hb_codepoint_t u)
|
||||||
#undef _
|
#undef _
|
||||||
|
|
||||||
#undef ISC_A
|
#undef ISC_A
|
||||||
|
#undef ISC_As
|
||||||
#undef ISC_C
|
#undef ISC_C
|
||||||
#undef ISC_CM
|
#undef ISC_CM
|
||||||
#undef ISC_CS
|
#undef ISC_CS
|
||||||
#undef ISC_Co
|
#undef ISC_Co
|
||||||
|
#undef ISC_D
|
||||||
#undef ISC_DC
|
#undef ISC_DC
|
||||||
#undef ISC_H
|
#undef ISC_H
|
||||||
#undef ISC_M
|
#undef ISC_M
|
||||||
|
#undef ISC_MH
|
||||||
|
#undef ISC_ML
|
||||||
|
#undef ISC_MR
|
||||||
|
#undef ISC_MW
|
||||||
|
#undef ISC_MY
|
||||||
#undef ISC_N
|
#undef ISC_N
|
||||||
|
#undef ISC_P
|
||||||
#undef ISC_GB
|
#undef ISC_GB
|
||||||
|
#undef ISC_PT
|
||||||
#undef ISC_R
|
#undef ISC_R
|
||||||
#undef ISC_Rf
|
#undef ISC_Rf
|
||||||
#undef ISC_Rt
|
#undef ISC_Rt
|
||||||
|
@ -471,6 +512,7 @@ hb_indic_get_categories (hb_codepoint_t u)
|
||||||
#undef ISC_VB
|
#undef ISC_VB
|
||||||
#undef ISC_VL
|
#undef ISC_VL
|
||||||
#undef ISC_VR
|
#undef ISC_VR
|
||||||
|
#undef ISC_VS
|
||||||
#undef ISC_X
|
#undef ISC_X
|
||||||
#undef ISC_Xg
|
#undef ISC_Xg
|
||||||
#undef ISC_Yg
|
#undef ISC_Yg
|
||||||
|
|
|
@ -77,15 +77,16 @@ enum indic_category_t {
|
||||||
|
|
||||||
/* Myanmar */
|
/* Myanmar */
|
||||||
OT_As = 32, // Asat
|
OT_As = 32, // Asat
|
||||||
OT_D0 = 33, // Digit zero
|
OT_D = 33, // Digits except zero
|
||||||
OT_MH = 34, // Medial
|
OT_D0 = 34, // Digit zero
|
||||||
OT_MR = 35, // Medial
|
OT_MH = 35, // Medial
|
||||||
OT_MW = 36, // Medial
|
OT_MR = 36, // Medial
|
||||||
OT_MY = 37, // Medial
|
OT_MW = 37, // Medial
|
||||||
OT_PT = 38, // Pwo and other tones
|
OT_MY = 38, // Medial
|
||||||
OT_VS = 39, // Variation selectors
|
OT_PT = 39, // Pwo and other tones
|
||||||
OT_P = 40, // Punctuation
|
OT_VS = 40, // Variation selectors
|
||||||
OT_ML = 41, // Consonant medials
|
OT_P = 41, // Punctuation
|
||||||
|
OT_ML = 42, // Consonant medials
|
||||||
};
|
};
|
||||||
|
|
||||||
#define MEDIAL_FLAGS (FLAG (OT_CM))
|
#define MEDIAL_FLAGS (FLAG (OT_CM))
|
||||||
|
|
|
@ -56,98 +56,100 @@ enum myanmar_syllable_type_t {
|
||||||
#define myanmar_syllable_machine_ex_As 32u
|
#define myanmar_syllable_machine_ex_As 32u
|
||||||
#define myanmar_syllable_machine_ex_C 1u
|
#define myanmar_syllable_machine_ex_C 1u
|
||||||
#define myanmar_syllable_machine_ex_CS 18u
|
#define myanmar_syllable_machine_ex_CS 18u
|
||||||
#define myanmar_syllable_machine_ex_D 10u
|
#define myanmar_syllable_machine_ex_D 33u
|
||||||
#define myanmar_syllable_machine_ex_D0 33u
|
#define myanmar_syllable_machine_ex_D0 34u
|
||||||
#define myanmar_syllable_machine_ex_DB 3u
|
#define myanmar_syllable_machine_ex_DB 3u
|
||||||
|
#define myanmar_syllable_machine_ex_DOTTEDCIRCLE 11u
|
||||||
#define myanmar_syllable_machine_ex_GB 10u
|
#define myanmar_syllable_machine_ex_GB 10u
|
||||||
#define myanmar_syllable_machine_ex_H 4u
|
#define myanmar_syllable_machine_ex_H 4u
|
||||||
#define myanmar_syllable_machine_ex_IV 2u
|
#define myanmar_syllable_machine_ex_IV 2u
|
||||||
#define myanmar_syllable_machine_ex_MH 34u
|
#define myanmar_syllable_machine_ex_MH 35u
|
||||||
#define myanmar_syllable_machine_ex_ML 41u
|
#define myanmar_syllable_machine_ex_ML 42u
|
||||||
#define myanmar_syllable_machine_ex_MR 35u
|
#define myanmar_syllable_machine_ex_MR 36u
|
||||||
#define myanmar_syllable_machine_ex_MW 36u
|
#define myanmar_syllable_machine_ex_MW 37u
|
||||||
#define myanmar_syllable_machine_ex_MY 37u
|
#define myanmar_syllable_machine_ex_MY 38u
|
||||||
#define myanmar_syllable_machine_ex_P 40u
|
#define myanmar_syllable_machine_ex_P 41u
|
||||||
#define myanmar_syllable_machine_ex_PT 38u
|
#define myanmar_syllable_machine_ex_PT 39u
|
||||||
#define myanmar_syllable_machine_ex_Ra 15u
|
#define myanmar_syllable_machine_ex_Ra 15u
|
||||||
#define myanmar_syllable_machine_ex_V 8u
|
#define myanmar_syllable_machine_ex_SM 8u
|
||||||
#define myanmar_syllable_machine_ex_VAbv 20u
|
#define myanmar_syllable_machine_ex_VAbv 20u
|
||||||
#define myanmar_syllable_machine_ex_VBlw 21u
|
#define myanmar_syllable_machine_ex_VBlw 21u
|
||||||
#define myanmar_syllable_machine_ex_VPre 22u
|
#define myanmar_syllable_machine_ex_VPre 22u
|
||||||
#define myanmar_syllable_machine_ex_VPst 23u
|
#define myanmar_syllable_machine_ex_VPst 23u
|
||||||
#define myanmar_syllable_machine_ex_VS 39u
|
#define myanmar_syllable_machine_ex_VS 40u
|
||||||
#define myanmar_syllable_machine_ex_ZWJ 6u
|
#define myanmar_syllable_machine_ex_ZWJ 6u
|
||||||
#define myanmar_syllable_machine_ex_ZWNJ 5u
|
#define myanmar_syllable_machine_ex_ZWNJ 5u
|
||||||
|
|
||||||
|
|
||||||
#line 84 "hb-ot-shaper-myanmar-machine.hh"
|
#line 85 "hb-ot-shaper-myanmar-machine.hh"
|
||||||
static const unsigned char _myanmar_syllable_machine_trans_keys[] = {
|
static const unsigned char _myanmar_syllable_machine_trans_keys[] = {
|
||||||
1u, 41u, 3u, 41u, 5u, 38u, 5u, 8u, 3u, 41u, 3u, 38u, 3u, 38u, 5u, 38u,
|
1u, 42u, 3u, 42u, 5u, 39u, 5u, 8u, 3u, 42u, 3u, 39u, 3u, 39u, 5u, 39u,
|
||||||
5u, 38u, 3u, 38u, 3u, 38u, 3u, 41u, 5u, 38u, 1u, 15u, 3u, 38u, 3u, 38u,
|
5u, 39u, 3u, 39u, 3u, 39u, 3u, 42u, 5u, 39u, 1u, 15u, 3u, 39u, 3u, 39u,
|
||||||
3u, 39u, 3u, 38u, 3u, 41u, 3u, 41u, 3u, 38u, 3u, 41u, 3u, 41u, 3u, 41u,
|
3u, 40u, 3u, 39u, 3u, 42u, 3u, 42u, 3u, 39u, 3u, 42u, 3u, 42u, 3u, 42u,
|
||||||
3u, 41u, 3u, 41u, 5u, 38u, 5u, 8u, 3u, 41u, 3u, 38u, 3u, 38u, 5u, 38u,
|
3u, 42u, 3u, 42u, 5u, 39u, 5u, 8u, 3u, 42u, 3u, 39u, 3u, 39u, 5u, 39u,
|
||||||
5u, 38u, 3u, 38u, 3u, 38u, 3u, 41u, 5u, 38u, 1u, 15u, 3u, 41u, 3u, 38u,
|
5u, 39u, 3u, 39u, 3u, 39u, 3u, 42u, 5u, 39u, 1u, 15u, 3u, 42u, 3u, 39u,
|
||||||
3u, 38u, 3u, 39u, 3u, 38u, 3u, 41u, 3u, 41u, 3u, 38u, 3u, 41u, 3u, 41u,
|
3u, 39u, 3u, 40u, 3u, 39u, 3u, 42u, 3u, 42u, 3u, 39u, 3u, 42u, 3u, 42u,
|
||||||
3u, 41u, 3u, 41u, 3u, 41u, 3u, 41u, 3u, 41u, 1u, 41u, 1u, 15u, 8u, 8u,
|
3u, 42u, 3u, 42u, 3u, 42u, 3u, 42u, 3u, 42u, 1u, 42u, 1u, 33u, 8u, 8u,
|
||||||
0
|
0
|
||||||
};
|
};
|
||||||
|
|
||||||
static const char _myanmar_syllable_machine_key_spans[] = {
|
static const char _myanmar_syllable_machine_key_spans[] = {
|
||||||
41, 39, 34, 4, 39, 36, 36, 34,
|
42, 40, 35, 4, 40, 37, 37, 35,
|
||||||
34, 36, 36, 39, 34, 15, 36, 36,
|
35, 37, 37, 40, 35, 15, 37, 37,
|
||||||
37, 36, 39, 39, 36, 39, 39, 39,
|
38, 37, 40, 40, 37, 40, 40, 40,
|
||||||
39, 39, 34, 4, 39, 36, 36, 34,
|
40, 40, 35, 4, 40, 37, 37, 35,
|
||||||
34, 36, 36, 39, 34, 15, 39, 36,
|
35, 37, 37, 40, 35, 15, 40, 37,
|
||||||
36, 37, 36, 39, 39, 36, 39, 39,
|
37, 38, 37, 40, 40, 37, 40, 40,
|
||||||
39, 39, 39, 39, 39, 41, 15, 1
|
40, 40, 40, 40, 40, 42, 33, 1
|
||||||
};
|
};
|
||||||
|
|
||||||
static const short _myanmar_syllable_machine_index_offsets[] = {
|
static const short _myanmar_syllable_machine_index_offsets[] = {
|
||||||
0, 42, 82, 117, 122, 162, 199, 236,
|
0, 43, 84, 120, 125, 166, 204, 242,
|
||||||
271, 306, 343, 380, 420, 455, 471, 508,
|
278, 314, 352, 390, 431, 467, 483, 521,
|
||||||
545, 583, 620, 660, 700, 737, 777, 817,
|
559, 598, 636, 677, 718, 756, 797, 838,
|
||||||
857, 897, 937, 972, 977, 1017, 1054, 1091,
|
879, 920, 961, 997, 1002, 1043, 1081, 1119,
|
||||||
1126, 1161, 1198, 1235, 1275, 1310, 1326, 1366,
|
1155, 1191, 1229, 1267, 1308, 1344, 1360, 1401,
|
||||||
1403, 1440, 1478, 1515, 1555, 1595, 1632, 1672,
|
1439, 1477, 1516, 1554, 1595, 1636, 1674, 1715,
|
||||||
1712, 1752, 1792, 1832, 1872, 1912, 1954, 1970
|
1756, 1797, 1838, 1879, 1920, 1961, 2004, 2038
|
||||||
};
|
};
|
||||||
|
|
||||||
static const char _myanmar_syllable_machine_indicies[] = {
|
static const char _myanmar_syllable_machine_indicies[] = {
|
||||||
1, 1, 2, 3, 4, 4, 0, 5,
|
1, 1, 2, 3, 4, 4, 0, 5,
|
||||||
6, 1, 0, 0, 0, 0, 7, 0,
|
6, 1, 1, 0, 0, 0, 7, 0,
|
||||||
0, 8, 0, 9, 10, 11, 12, 0,
|
0, 8, 0, 9, 10, 11, 12, 0,
|
||||||
0, 0, 0, 0, 0, 0, 0, 13,
|
0, 0, 0, 0, 0, 0, 0, 13,
|
||||||
0, 14, 15, 16, 17, 18, 19, 20,
|
1, 0, 14, 15, 16, 17, 18, 19,
|
||||||
21, 0, 23, 24, 25, 25, 22, 26,
|
20, 21, 0, 23, 24, 25, 25, 22,
|
||||||
27, 22, 22, 22, 22, 22, 22, 22,
|
26, 27, 22, 22, 22, 22, 22, 22,
|
||||||
22, 22, 22, 28, 29, 30, 31, 22,
|
22, 22, 22, 22, 28, 29, 30, 31,
|
||||||
22, 22, 22, 22, 22, 22, 22, 32,
|
22, 22, 22, 22, 22, 22, 22, 22,
|
||||||
22, 33, 34, 35, 36, 37, 38, 22,
|
32, 22, 22, 33, 34, 35, 36, 37,
|
||||||
39, 22, 25, 25, 22, 26, 22, 22,
|
38, 22, 39, 22, 25, 25, 22, 26,
|
||||||
22, 22, 22, 22, 22, 22, 22, 22,
|
22, 22, 22, 22, 22, 22, 22, 22,
|
||||||
22, 22, 22, 22, 31, 22, 22, 22,
|
|
||||||
22, 22, 22, 22, 22, 40, 22, 22,
|
|
||||||
22, 22, 22, 37, 22, 25, 25, 22,
|
|
||||||
26, 22, 23, 22, 25, 25, 22, 26,
|
|
||||||
27, 22, 22, 22, 22, 22, 22, 22,
|
|
||||||
22, 22, 22, 41, 22, 22, 31, 22,
|
|
||||||
22, 22, 22, 22, 22, 22, 22, 42,
|
|
||||||
22, 43, 22, 22, 22, 37, 22, 22,
|
|
||||||
42, 22, 23, 22, 25, 25, 22, 26,
|
|
||||||
27, 22, 22, 22, 22, 22, 22, 22,
|
|
||||||
22, 22, 22, 22, 22, 22, 31, 22,
|
22, 22, 22, 22, 22, 22, 31, 22,
|
||||||
|
22, 22, 22, 22, 22, 22, 22, 40,
|
||||||
|
22, 22, 22, 22, 22, 22, 37, 22,
|
||||||
|
25, 25, 22, 26, 22, 23, 22, 25,
|
||||||
|
25, 22, 26, 27, 22, 22, 22, 22,
|
||||||
|
22, 22, 22, 22, 22, 22, 41, 22,
|
||||||
|
22, 31, 22, 22, 22, 22, 22, 22,
|
||||||
|
22, 22, 42, 22, 22, 43, 22, 22,
|
||||||
|
22, 37, 22, 22, 42, 22, 23, 22,
|
||||||
|
25, 25, 22, 26, 27, 22, 22, 22,
|
||||||
22, 22, 22, 22, 22, 22, 22, 22,
|
22, 22, 22, 22, 22, 22, 22, 22,
|
||||||
22, 22, 22, 22, 22, 37, 22, 44,
|
22, 22, 31, 22, 22, 22, 22, 22,
|
||||||
22, 25, 25, 22, 26, 37, 22, 22,
|
22, 22, 22, 22, 22, 22, 22, 22,
|
||||||
|
22, 22, 37, 22, 44, 22, 25, 25,
|
||||||
|
22, 26, 37, 22, 22, 22, 22, 22,
|
||||||
22, 22, 22, 22, 22, 22, 22, 22,
|
22, 22, 22, 22, 22, 22, 22, 22,
|
||||||
22, 22, 22, 22, 22, 22, 22, 22,
|
22, 22, 22, 22, 22, 22, 22, 22,
|
||||||
22, 22, 22, 22, 45, 22, 22, 22,
|
22, 45, 22, 22, 22, 22, 22, 22,
|
||||||
22, 22, 37, 22, 25, 25, 22, 26,
|
37, 22, 25, 25, 22, 26, 22, 22,
|
||||||
22, 22, 22, 22, 22, 22, 22, 22,
|
22, 22, 22, 22, 22, 22, 22, 22,
|
||||||
22, 22, 22, 22, 22, 22, 22, 22,
|
22, 22, 22, 22, 22, 22, 22, 22,
|
||||||
22, 22, 22, 22, 22, 22, 22, 45,
|
22, 22, 22, 22, 22, 45, 22, 22,
|
||||||
22, 22, 22, 22, 22, 37, 22, 25,
|
22, 22, 22, 22, 37, 22, 25, 25,
|
||||||
25, 22, 26, 22, 22, 22, 22, 22,
|
22, 26, 22, 22, 22, 22, 22, 22,
|
||||||
22, 22, 22, 22, 22, 22, 22, 22,
|
22, 22, 22, 22, 22, 22, 22, 22,
|
||||||
22, 22, 22, 22, 22, 22, 22, 22,
|
22, 22, 22, 22, 22, 22, 22, 22,
|
||||||
22, 22, 22, 22, 22, 22, 22, 22,
|
22, 22, 22, 22, 22, 22, 22, 22,
|
||||||
|
@ -155,211 +157,219 @@ static const char _myanmar_syllable_machine_indicies[] = {
|
||||||
27, 22, 22, 22, 22, 22, 22, 22,
|
27, 22, 22, 22, 22, 22, 22, 22,
|
||||||
22, 22, 22, 41, 22, 22, 31, 22,
|
22, 22, 22, 41, 22, 22, 31, 22,
|
||||||
22, 22, 22, 22, 22, 22, 22, 22,
|
22, 22, 22, 22, 22, 22, 22, 22,
|
||||||
22, 22, 22, 22, 22, 37, 22, 23,
|
22, 22, 22, 22, 22, 22, 37, 22,
|
||||||
22, 25, 25, 22, 26, 27, 22, 22,
|
23, 22, 25, 25, 22, 26, 27, 22,
|
||||||
22, 22, 22, 22, 22, 22, 22, 22,
|
22, 22, 22, 22, 22, 22, 22, 22,
|
||||||
41, 22, 22, 31, 22, 22, 22, 22,
|
22, 41, 22, 22, 31, 22, 22, 22,
|
||||||
22, 22, 22, 22, 42, 22, 22, 22,
|
22, 22, 22, 22, 22, 42, 22, 22,
|
||||||
22, 22, 37, 22, 23, 22, 25, 25,
|
22, 22, 22, 22, 37, 22, 23, 22,
|
||||||
22, 26, 27, 22, 22, 22, 22, 22,
|
25, 25, 22, 26, 27, 22, 22, 22,
|
||||||
22, 22, 22, 22, 22, 41, 22, 22,
|
22, 22, 22, 22, 22, 22, 22, 41,
|
||||||
31, 22, 22, 22, 22, 22, 22, 22,
|
22, 22, 31, 22, 22, 22, 22, 22,
|
||||||
22, 42, 22, 22, 22, 22, 22, 37,
|
22, 22, 22, 42, 22, 22, 22, 22,
|
||||||
22, 22, 42, 22, 25, 25, 22, 26,
|
22, 22, 37, 22, 22, 42, 22, 25,
|
||||||
|
25, 22, 26, 22, 22, 22, 22, 22,
|
||||||
22, 22, 22, 22, 22, 22, 22, 22,
|
22, 22, 22, 22, 22, 22, 22, 22,
|
||||||
22, 22, 22, 22, 22, 22, 31, 22,
|
22, 31, 22, 22, 22, 22, 22, 22,
|
||||||
22, 22, 22, 22, 22, 22, 22, 22,
|
22, 22, 22, 22, 22, 22, 22, 22,
|
||||||
22, 22, 22, 22, 22, 37, 22, 1,
|
22, 37, 22, 1, 1, 22, 22, 22,
|
||||||
1, 22, 22, 22, 22, 22, 22, 22,
|
|
||||||
22, 22, 22, 22, 22, 1, 22, 23,
|
|
||||||
22, 25, 25, 22, 26, 27, 22, 22,
|
|
||||||
22, 22, 22, 22, 22, 22, 22, 22,
|
22, 22, 22, 22, 22, 22, 22, 22,
|
||||||
28, 29, 22, 31, 22, 22, 22, 22,
|
22, 1, 22, 23, 22, 25, 25, 22,
|
||||||
|
26, 27, 22, 22, 22, 22, 22, 22,
|
||||||
|
22, 22, 22, 22, 28, 29, 22, 31,
|
||||||
22, 22, 22, 22, 22, 22, 22, 22,
|
22, 22, 22, 22, 22, 22, 22, 22,
|
||||||
22, 22, 37, 22, 23, 22, 25, 25,
|
|
||||||
22, 26, 27, 22, 22, 22, 22, 22,
|
|
||||||
22, 22, 22, 22, 22, 22, 29, 22,
|
|
||||||
31, 22, 22, 22, 22, 22, 22, 22,
|
|
||||||
22, 22, 22, 22, 22, 22, 22, 37,
|
22, 22, 22, 22, 22, 22, 22, 37,
|
||||||
22, 23, 22, 25, 25, 22, 26, 27,
|
22, 23, 22, 25, 25, 22, 26, 27,
|
||||||
22, 22, 22, 22, 22, 22, 22, 22,
|
22, 22, 22, 22, 22, 22, 22, 22,
|
||||||
22, 22, 28, 29, 30, 31, 22, 22,
|
22, 22, 22, 29, 22, 31, 22, 22,
|
||||||
22, 22, 22, 22, 22, 22, 22, 22,
|
22, 22, 22, 22, 22, 22, 22, 22,
|
||||||
22, 22, 22, 22, 37, 46, 22, 23,
|
22, 22, 22, 22, 22, 37, 22, 23,
|
||||||
22, 25, 25, 22, 26, 27, 22, 22,
|
22, 25, 25, 22, 26, 27, 22, 22,
|
||||||
22, 22, 22, 22, 22, 22, 22, 22,
|
22, 22, 22, 22, 22, 22, 22, 22,
|
||||||
28, 29, 30, 31, 22, 22, 22, 22,
|
28, 29, 30, 31, 22, 22, 22, 22,
|
||||||
22, 22, 22, 22, 22, 22, 22, 22,
|
22, 22, 22, 22, 22, 22, 22, 22,
|
||||||
|
22, 22, 22, 37, 46, 22, 23, 22,
|
||||||
|
25, 25, 22, 26, 27, 22, 22, 22,
|
||||||
|
22, 22, 22, 22, 22, 22, 22, 28,
|
||||||
|
29, 30, 31, 22, 22, 22, 22, 22,
|
||||||
|
22, 22, 22, 22, 22, 22, 22, 22,
|
||||||
22, 22, 37, 22, 23, 22, 25, 25,
|
22, 22, 37, 22, 23, 22, 25, 25,
|
||||||
22, 26, 27, 22, 22, 22, 22, 22,
|
22, 26, 27, 22, 22, 22, 22, 22,
|
||||||
22, 22, 22, 22, 22, 28, 29, 30,
|
22, 22, 22, 22, 22, 28, 29, 30,
|
||||||
31, 22, 22, 22, 22, 22, 22, 22,
|
31, 22, 22, 22, 22, 22, 22, 22,
|
||||||
22, 32, 22, 33, 34, 35, 36, 37,
|
22, 32, 22, 22, 33, 34, 35, 36,
|
||||||
22, 22, 39, 22, 23, 22, 25, 25,
|
37, 22, 22, 39, 22, 23, 22, 25,
|
||||||
|
25, 22, 26, 27, 22, 22, 22, 22,
|
||||||
|
22, 22, 22, 22, 22, 22, 28, 29,
|
||||||
|
30, 31, 22, 22, 22, 22, 22, 22,
|
||||||
|
22, 22, 46, 22, 22, 22, 22, 22,
|
||||||
|
22, 37, 22, 22, 39, 22, 23, 22,
|
||||||
|
25, 25, 22, 26, 27, 22, 22, 22,
|
||||||
|
22, 22, 22, 22, 22, 22, 22, 28,
|
||||||
|
29, 30, 31, 22, 22, 22, 22, 22,
|
||||||
|
22, 22, 22, 46, 22, 22, 22, 22,
|
||||||
|
22, 22, 37, 22, 23, 22, 25, 25,
|
||||||
22, 26, 27, 22, 22, 22, 22, 22,
|
22, 26, 27, 22, 22, 22, 22, 22,
|
||||||
22, 22, 22, 22, 22, 28, 29, 30,
|
22, 22, 22, 22, 22, 28, 29, 30,
|
||||||
31, 22, 22, 22, 22, 22, 22, 22,
|
31, 22, 22, 22, 22, 22, 22, 22,
|
||||||
22, 46, 22, 22, 22, 22, 22, 37,
|
22, 22, 22, 22, 33, 22, 35, 22,
|
||||||
22, 22, 39, 22, 23, 22, 25, 25,
|
37, 22, 22, 39, 22, 23, 22, 25,
|
||||||
22, 26, 27, 22, 22, 22, 22, 22,
|
25, 22, 26, 27, 22, 22, 22, 22,
|
||||||
22, 22, 22, 22, 22, 28, 29, 30,
|
22, 22, 22, 22, 22, 22, 28, 29,
|
||||||
31, 22, 22, 22, 22, 22, 22, 22,
|
30, 31, 22, 22, 22, 22, 22, 22,
|
||||||
22, 46, 22, 22, 22, 22, 22, 37,
|
22, 22, 46, 22, 22, 33, 22, 22,
|
||||||
22, 23, 22, 25, 25, 22, 26, 27,
|
22, 37, 22, 22, 39, 22, 23, 22,
|
||||||
|
25, 25, 22, 26, 27, 22, 22, 22,
|
||||||
|
22, 22, 22, 22, 22, 22, 22, 28,
|
||||||
|
29, 30, 31, 22, 22, 22, 22, 22,
|
||||||
|
22, 22, 22, 47, 22, 22, 33, 34,
|
||||||
|
35, 22, 37, 22, 22, 39, 22, 23,
|
||||||
|
22, 25, 25, 22, 26, 27, 22, 22,
|
||||||
22, 22, 22, 22, 22, 22, 22, 22,
|
22, 22, 22, 22, 22, 22, 22, 22,
|
||||||
22, 22, 28, 29, 30, 31, 22, 22,
|
28, 29, 30, 31, 22, 22, 22, 22,
|
||||||
|
22, 22, 22, 22, 22, 22, 22, 33,
|
||||||
|
34, 35, 22, 37, 22, 22, 39, 22,
|
||||||
|
23, 24, 25, 25, 22, 26, 27, 22,
|
||||||
22, 22, 22, 22, 22, 22, 22, 22,
|
22, 22, 22, 22, 22, 22, 22, 22,
|
||||||
33, 22, 35, 22, 37, 22, 22, 39,
|
22, 28, 29, 30, 31, 22, 22, 22,
|
||||||
22, 23, 22, 25, 25, 22, 26, 27,
|
22, 22, 22, 22, 22, 32, 22, 22,
|
||||||
22, 22, 22, 22, 22, 22, 22, 22,
|
|
||||||
22, 22, 28, 29, 30, 31, 22, 22,
|
|
||||||
22, 22, 22, 22, 22, 22, 46, 22,
|
|
||||||
33, 22, 22, 22, 37, 22, 22, 39,
|
|
||||||
22, 23, 22, 25, 25, 22, 26, 27,
|
|
||||||
22, 22, 22, 22, 22, 22, 22, 22,
|
|
||||||
22, 22, 28, 29, 30, 31, 22, 22,
|
|
||||||
22, 22, 22, 22, 22, 22, 47, 22,
|
|
||||||
33, 34, 35, 22, 37, 22, 22, 39,
|
|
||||||
22, 23, 22, 25, 25, 22, 26, 27,
|
|
||||||
22, 22, 22, 22, 22, 22, 22, 22,
|
|
||||||
22, 22, 28, 29, 30, 31, 22, 22,
|
|
||||||
22, 22, 22, 22, 22, 22, 22, 22,
|
|
||||||
33, 34, 35, 22, 37, 22, 22, 39,
|
|
||||||
22, 23, 24, 25, 25, 22, 26, 27,
|
|
||||||
22, 22, 22, 22, 22, 22, 22, 22,
|
|
||||||
22, 22, 28, 29, 30, 31, 22, 22,
|
|
||||||
22, 22, 22, 22, 22, 22, 32, 22,
|
|
||||||
33, 34, 35, 36, 37, 22, 22, 39,
|
33, 34, 35, 36, 37, 22, 22, 39,
|
||||||
22, 49, 49, 48, 5, 48, 48, 48,
|
22, 49, 49, 48, 5, 48, 48, 48,
|
||||||
48, 48, 48, 48, 48, 48, 48, 48,
|
48, 48, 48, 48, 48, 48, 48, 48,
|
||||||
48, 48, 48, 12, 48, 48, 48, 48,
|
48, 48, 48, 12, 48, 48, 48, 48,
|
||||||
48, 48, 48, 48, 50, 48, 48, 48,
|
48, 48, 48, 48, 50, 48, 48, 48,
|
||||||
48, 48, 18, 48, 49, 49, 48, 5,
|
48, 48, 48, 18, 48, 49, 49, 48,
|
||||||
48, 2, 48, 49, 49, 48, 5, 6,
|
5, 48, 2, 48, 49, 49, 48, 5,
|
||||||
|
6, 48, 48, 48, 48, 48, 48, 48,
|
||||||
|
48, 48, 48, 51, 48, 48, 12, 48,
|
||||||
|
48, 48, 48, 48, 48, 48, 48, 52,
|
||||||
|
48, 48, 53, 48, 48, 48, 18, 48,
|
||||||
|
48, 52, 48, 2, 48, 49, 49, 48,
|
||||||
|
5, 6, 48, 48, 48, 48, 48, 48,
|
||||||
|
48, 48, 48, 48, 48, 48, 48, 12,
|
||||||
48, 48, 48, 48, 48, 48, 48, 48,
|
48, 48, 48, 48, 48, 48, 48, 48,
|
||||||
48, 48, 51, 48, 48, 12, 48, 48,
|
48, 48, 48, 48, 48, 48, 48, 18,
|
||||||
48, 48, 48, 48, 48, 48, 52, 48,
|
48, 54, 48, 49, 49, 48, 5, 18,
|
||||||
53, 48, 48, 48, 18, 48, 48, 52,
|
|
||||||
48, 2, 48, 49, 49, 48, 5, 6,
|
|
||||||
48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
48, 48, 48, 48, 48, 12, 48, 48,
|
|
||||||
48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
48, 48, 48, 48, 18, 48, 54, 48,
|
|
||||||
49, 49, 48, 5, 18, 48, 48, 48,
|
|
||||||
48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
48, 48, 48, 55, 48, 48, 48, 48,
|
|
||||||
48, 18, 48, 49, 49, 48, 5, 48,
|
|
||||||
48, 48, 48, 48, 48, 48, 48, 48,
|
48, 48, 48, 48, 48, 48, 48, 48,
|
||||||
48, 48, 48, 48, 48, 48, 48, 48,
|
48, 48, 48, 48, 48, 48, 48, 48,
|
||||||
48, 48, 48, 48, 48, 48, 55, 48,
|
48, 48, 48, 48, 48, 48, 55, 48,
|
||||||
48, 48, 48, 48, 18, 48, 49, 49,
|
48, 48, 48, 48, 48, 18, 48, 49,
|
||||||
48, 5, 48, 48, 48, 48, 48, 48,
|
49, 48, 5, 48, 48, 48, 48, 48,
|
||||||
48, 48, 48, 48, 48, 48, 48, 48,
|
48, 48, 48, 48, 48, 48, 48, 48,
|
||||||
48, 48, 48, 48, 48, 48, 48, 48,
|
48, 48, 48, 48, 48, 48, 48, 48,
|
||||||
48, 48, 48, 48, 48, 48, 48, 18,
|
48, 48, 55, 48, 48, 48, 48, 48,
|
||||||
48, 2, 48, 49, 49, 48, 5, 6,
|
48, 18, 48, 49, 49, 48, 5, 48,
|
||||||
48, 48, 48, 48, 48, 48, 48, 48,
|
48, 48, 48, 48, 48, 48, 48, 48,
|
||||||
48, 48, 51, 48, 48, 12, 48, 48,
|
|
||||||
48, 48, 48, 48, 48, 48, 48, 48,
|
48, 48, 48, 48, 48, 48, 48, 48,
|
||||||
48, 48, 48, 48, 18, 48, 2, 48,
|
48, 48, 48, 48, 48, 48, 48, 48,
|
||||||
49, 49, 48, 5, 6, 48, 48, 48,
|
48, 48, 48, 48, 48, 18, 48, 2,
|
||||||
48, 48, 48, 48, 48, 48, 48, 51,
|
48, 49, 49, 48, 5, 6, 48, 48,
|
||||||
48, 48, 12, 48, 48, 48, 48, 48,
|
48, 48, 48, 48, 48, 48, 48, 48,
|
||||||
48, 48, 48, 52, 48, 48, 48, 48,
|
51, 48, 48, 12, 48, 48, 48, 48,
|
||||||
|
48, 48, 48, 48, 48, 48, 48, 48,
|
||||||
|
48, 48, 48, 18, 48, 2, 48, 49,
|
||||||
|
49, 48, 5, 6, 48, 48, 48, 48,
|
||||||
|
48, 48, 48, 48, 48, 48, 51, 48,
|
||||||
|
48, 12, 48, 48, 48, 48, 48, 48,
|
||||||
|
48, 48, 52, 48, 48, 48, 48, 48,
|
||||||
48, 18, 48, 2, 48, 49, 49, 48,
|
48, 18, 48, 2, 48, 49, 49, 48,
|
||||||
5, 6, 48, 48, 48, 48, 48, 48,
|
5, 6, 48, 48, 48, 48, 48, 48,
|
||||||
48, 48, 48, 48, 51, 48, 48, 12,
|
48, 48, 48, 48, 51, 48, 48, 12,
|
||||||
48, 48, 48, 48, 48, 48, 48, 48,
|
48, 48, 48, 48, 48, 48, 48, 48,
|
||||||
52, 48, 48, 48, 48, 48, 18, 48,
|
52, 48, 48, 48, 48, 48, 48, 18,
|
||||||
48, 52, 48, 49, 49, 48, 5, 48,
|
48, 48, 52, 48, 49, 49, 48, 5,
|
||||||
48, 48, 48, 48, 48, 48, 48, 48,
|
48, 48, 48, 48, 48, 48, 48, 48,
|
||||||
48, 48, 48, 48, 48, 12, 48, 48,
|
48, 48, 48, 48, 48, 48, 12, 48,
|
||||||
48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
48, 48, 48, 48, 18, 48, 56, 56,
|
|
||||||
48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
48, 48, 48, 48, 56, 48, 2, 3,
|
|
||||||
49, 49, 48, 5, 6, 48, 48, 48,
|
|
||||||
48, 48, 48, 48, 48, 48, 48, 9,
|
|
||||||
10, 11, 12, 48, 48, 48, 48, 48,
|
|
||||||
48, 48, 48, 13, 48, 14, 15, 16,
|
|
||||||
17, 18, 19, 48, 21, 48, 2, 48,
|
|
||||||
49, 49, 48, 5, 6, 48, 48, 48,
|
|
||||||
48, 48, 48, 48, 48, 48, 48, 9,
|
|
||||||
10, 48, 12, 48, 48, 48, 48, 48,
|
|
||||||
48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
48, 18, 48, 2, 48, 49, 49, 48,
|
|
||||||
5, 6, 48, 48, 48, 48, 48, 48,
|
|
||||||
48, 48, 48, 48, 48, 10, 48, 12,
|
|
||||||
48, 48, 48, 48, 48, 48, 48, 48,
|
48, 48, 48, 48, 48, 48, 48, 48,
|
||||||
48, 48, 48, 48, 48, 48, 18, 48,
|
48, 48, 48, 48, 48, 48, 18, 48,
|
||||||
2, 48, 49, 49, 48, 5, 6, 48,
|
56, 56, 48, 48, 48, 48, 48, 48,
|
||||||
48, 48, 48, 48, 48, 48, 48, 48,
|
48, 48, 48, 48, 48, 48, 56, 48,
|
||||||
48, 9, 10, 11, 12, 48, 48, 48,
|
|
||||||
48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
48, 48, 48, 18, 57, 48, 2, 48,
|
|
||||||
49, 49, 48, 5, 6, 48, 48, 48,
|
|
||||||
48, 48, 48, 48, 48, 48, 48, 9,
|
|
||||||
10, 11, 12, 48, 48, 48, 48, 48,
|
|
||||||
48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
48, 18, 48, 2, 48, 49, 49, 48,
|
|
||||||
5, 6, 48, 48, 48, 48, 48, 48,
|
|
||||||
48, 48, 48, 48, 9, 10, 11, 12,
|
|
||||||
48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
13, 48, 14, 15, 16, 17, 18, 48,
|
|
||||||
48, 21, 48, 2, 48, 49, 49, 48,
|
|
||||||
5, 6, 48, 48, 48, 48, 48, 48,
|
|
||||||
48, 48, 48, 48, 9, 10, 11, 12,
|
|
||||||
48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
57, 48, 48, 48, 48, 48, 18, 48,
|
|
||||||
48, 21, 48, 2, 48, 49, 49, 48,
|
|
||||||
5, 6, 48, 48, 48, 48, 48, 48,
|
|
||||||
48, 48, 48, 48, 9, 10, 11, 12,
|
|
||||||
48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
57, 48, 48, 48, 48, 48, 18, 48,
|
|
||||||
2, 48, 49, 49, 48, 5, 6, 48,
|
|
||||||
48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
48, 9, 10, 11, 12, 48, 48, 48,
|
|
||||||
48, 48, 48, 48, 48, 48, 48, 14,
|
|
||||||
48, 16, 48, 18, 48, 48, 21, 48,
|
|
||||||
2, 48, 49, 49, 48, 5, 6, 48,
|
|
||||||
48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
48, 9, 10, 11, 12, 48, 48, 48,
|
|
||||||
48, 48, 48, 48, 48, 57, 48, 14,
|
|
||||||
48, 48, 48, 18, 48, 48, 21, 48,
|
|
||||||
2, 48, 49, 49, 48, 5, 6, 48,
|
|
||||||
48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
48, 9, 10, 11, 12, 48, 48, 48,
|
|
||||||
48, 48, 48, 48, 48, 58, 48, 14,
|
|
||||||
15, 16, 48, 18, 48, 48, 21, 48,
|
|
||||||
2, 48, 49, 49, 48, 5, 6, 48,
|
|
||||||
48, 48, 48, 48, 48, 48, 48, 48,
|
|
||||||
48, 9, 10, 11, 12, 48, 48, 48,
|
|
||||||
48, 48, 48, 48, 48, 48, 48, 14,
|
|
||||||
15, 16, 48, 18, 48, 48, 21, 48,
|
|
||||||
2, 3, 49, 49, 48, 5, 6, 48,
|
2, 3, 49, 49, 48, 5, 6, 48,
|
||||||
48, 48, 48, 48, 48, 48, 48, 48,
|
48, 48, 48, 48, 48, 48, 48, 48,
|
||||||
48, 9, 10, 11, 12, 48, 48, 48,
|
48, 9, 10, 11, 12, 48, 48, 48,
|
||||||
48, 48, 48, 48, 48, 13, 48, 14,
|
48, 48, 48, 48, 48, 13, 48, 48,
|
||||||
15, 16, 17, 18, 48, 48, 21, 48,
|
14, 15, 16, 17, 18, 19, 48, 21,
|
||||||
23, 24, 25, 25, 22, 26, 27, 22,
|
48, 2, 48, 49, 49, 48, 5, 6,
|
||||||
|
48, 48, 48, 48, 48, 48, 48, 48,
|
||||||
|
48, 48, 9, 10, 48, 12, 48, 48,
|
||||||
|
48, 48, 48, 48, 48, 48, 48, 48,
|
||||||
|
48, 48, 48, 48, 48, 18, 48, 2,
|
||||||
|
48, 49, 49, 48, 5, 6, 48, 48,
|
||||||
|
48, 48, 48, 48, 48, 48, 48, 48,
|
||||||
|
48, 10, 48, 12, 48, 48, 48, 48,
|
||||||
|
48, 48, 48, 48, 48, 48, 48, 48,
|
||||||
|
48, 48, 48, 18, 48, 2, 48, 49,
|
||||||
|
49, 48, 5, 6, 48, 48, 48, 48,
|
||||||
|
48, 48, 48, 48, 48, 48, 9, 10,
|
||||||
|
11, 12, 48, 48, 48, 48, 48, 48,
|
||||||
|
48, 48, 48, 48, 48, 48, 48, 48,
|
||||||
|
48, 18, 57, 48, 2, 48, 49, 49,
|
||||||
|
48, 5, 6, 48, 48, 48, 48, 48,
|
||||||
|
48, 48, 48, 48, 48, 9, 10, 11,
|
||||||
|
12, 48, 48, 48, 48, 48, 48, 48,
|
||||||
|
48, 48, 48, 48, 48, 48, 48, 48,
|
||||||
|
18, 48, 2, 48, 49, 49, 48, 5,
|
||||||
|
6, 48, 48, 48, 48, 48, 48, 48,
|
||||||
|
48, 48, 48, 9, 10, 11, 12, 48,
|
||||||
|
48, 48, 48, 48, 48, 48, 48, 13,
|
||||||
|
48, 48, 14, 15, 16, 17, 18, 48,
|
||||||
|
48, 21, 48, 2, 48, 49, 49, 48,
|
||||||
|
5, 6, 48, 48, 48, 48, 48, 48,
|
||||||
|
48, 48, 48, 48, 9, 10, 11, 12,
|
||||||
|
48, 48, 48, 48, 48, 48, 48, 48,
|
||||||
|
57, 48, 48, 48, 48, 48, 48, 18,
|
||||||
|
48, 48, 21, 48, 2, 48, 49, 49,
|
||||||
|
48, 5, 6, 48, 48, 48, 48, 48,
|
||||||
|
48, 48, 48, 48, 48, 9, 10, 11,
|
||||||
|
12, 48, 48, 48, 48, 48, 48, 48,
|
||||||
|
48, 57, 48, 48, 48, 48, 48, 48,
|
||||||
|
18, 48, 2, 48, 49, 49, 48, 5,
|
||||||
|
6, 48, 48, 48, 48, 48, 48, 48,
|
||||||
|
48, 48, 48, 9, 10, 11, 12, 48,
|
||||||
|
48, 48, 48, 48, 48, 48, 48, 48,
|
||||||
|
48, 48, 14, 48, 16, 48, 18, 48,
|
||||||
|
48, 21, 48, 2, 48, 49, 49, 48,
|
||||||
|
5, 6, 48, 48, 48, 48, 48, 48,
|
||||||
|
48, 48, 48, 48, 9, 10, 11, 12,
|
||||||
|
48, 48, 48, 48, 48, 48, 48, 48,
|
||||||
|
57, 48, 48, 14, 48, 48, 48, 18,
|
||||||
|
48, 48, 21, 48, 2, 48, 49, 49,
|
||||||
|
48, 5, 6, 48, 48, 48, 48, 48,
|
||||||
|
48, 48, 48, 48, 48, 9, 10, 11,
|
||||||
|
12, 48, 48, 48, 48, 48, 48, 48,
|
||||||
|
48, 58, 48, 48, 14, 15, 16, 48,
|
||||||
|
18, 48, 48, 21, 48, 2, 48, 49,
|
||||||
|
49, 48, 5, 6, 48, 48, 48, 48,
|
||||||
|
48, 48, 48, 48, 48, 48, 9, 10,
|
||||||
|
11, 12, 48, 48, 48, 48, 48, 48,
|
||||||
|
48, 48, 48, 48, 48, 14, 15, 16,
|
||||||
|
48, 18, 48, 48, 21, 48, 2, 3,
|
||||||
|
49, 49, 48, 5, 6, 48, 48, 48,
|
||||||
|
48, 48, 48, 48, 48, 48, 48, 9,
|
||||||
|
10, 11, 12, 48, 48, 48, 48, 48,
|
||||||
|
48, 48, 48, 13, 48, 48, 14, 15,
|
||||||
|
16, 17, 18, 48, 48, 21, 48, 23,
|
||||||
|
24, 25, 25, 22, 26, 27, 22, 22,
|
||||||
22, 22, 22, 22, 22, 22, 22, 22,
|
22, 22, 22, 22, 22, 22, 22, 22,
|
||||||
22, 28, 29, 30, 31, 22, 22, 22,
|
28, 29, 30, 31, 22, 22, 22, 22,
|
||||||
22, 22, 22, 22, 22, 59, 22, 33,
|
22, 22, 22, 22, 59, 22, 22, 33,
|
||||||
34, 35, 36, 37, 38, 22, 39, 22,
|
34, 35, 36, 37, 38, 22, 39, 22,
|
||||||
23, 60, 25, 25, 22, 26, 27, 22,
|
23, 60, 25, 25, 22, 26, 27, 22,
|
||||||
22, 22, 22, 22, 22, 22, 22, 22,
|
22, 22, 22, 22, 22, 22, 22, 22,
|
||||||
22, 28, 29, 30, 31, 22, 22, 22,
|
22, 28, 29, 30, 31, 22, 22, 22,
|
||||||
22, 22, 22, 22, 22, 32, 22, 33,
|
22, 22, 22, 22, 22, 32, 22, 22,
|
||||||
34, 35, 36, 37, 22, 22, 39, 22,
|
33, 34, 35, 36, 37, 22, 22, 39,
|
||||||
1, 1, 2, 3, 49, 49, 48, 5,
|
22, 1, 1, 2, 3, 49, 49, 48,
|
||||||
6, 1, 48, 48, 48, 48, 1, 48,
|
5, 6, 1, 1, 48, 48, 48, 1,
|
||||||
48, 48, 48, 9, 10, 11, 12, 48,
|
48, 48, 48, 48, 9, 10, 11, 12,
|
||||||
48, 48, 48, 48, 48, 48, 48, 13,
|
48, 48, 48, 48, 48, 48, 48, 48,
|
||||||
48, 14, 15, 16, 17, 18, 19, 48,
|
13, 1, 48, 14, 15, 16, 17, 18,
|
||||||
21, 48, 1, 1, 61, 61, 61, 61,
|
19, 48, 21, 48, 1, 1, 61, 61,
|
||||||
61, 61, 61, 1, 61, 61, 61, 61,
|
61, 61, 61, 61, 61, 1, 1, 61,
|
||||||
1, 61, 62, 61, 0
|
61, 61, 1, 61, 61, 61, 61, 61,
|
||||||
|
61, 61, 61, 61, 61, 61, 61, 61,
|
||||||
|
61, 61, 61, 61, 1, 61, 62, 61,
|
||||||
|
0
|
||||||
};
|
};
|
||||||
|
|
||||||
static const char _myanmar_syllable_machine_trans_targs[] = {
|
static const char _myanmar_syllable_machine_trans_targs[] = {
|
||||||
|
@ -425,7 +435,7 @@ static const int myanmar_syllable_machine_en_main = 0;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#line 117 "hb-ot-shaper-myanmar-machine.rl"
|
#line 118 "hb-ot-shaper-myanmar-machine.rl"
|
||||||
|
|
||||||
|
|
||||||
#define found_syllable(syllable_type) \
|
#define found_syllable(syllable_type) \
|
||||||
|
@ -444,7 +454,7 @@ find_syllables_myanmar (hb_buffer_t *buffer)
|
||||||
int cs;
|
int cs;
|
||||||
hb_glyph_info_t *info = buffer->info;
|
hb_glyph_info_t *info = buffer->info;
|
||||||
|
|
||||||
#line 448 "hb-ot-shaper-myanmar-machine.hh"
|
#line 458 "hb-ot-shaper-myanmar-machine.hh"
|
||||||
{
|
{
|
||||||
cs = myanmar_syllable_machine_start;
|
cs = myanmar_syllable_machine_start;
|
||||||
ts = 0;
|
ts = 0;
|
||||||
|
@ -452,7 +462,7 @@ find_syllables_myanmar (hb_buffer_t *buffer)
|
||||||
act = 0;
|
act = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#line 137 "hb-ot-shaper-myanmar-machine.rl"
|
#line 138 "hb-ot-shaper-myanmar-machine.rl"
|
||||||
|
|
||||||
|
|
||||||
p = 0;
|
p = 0;
|
||||||
|
@ -460,7 +470,7 @@ find_syllables_myanmar (hb_buffer_t *buffer)
|
||||||
|
|
||||||
unsigned int syllable_serial = 1;
|
unsigned int syllable_serial = 1;
|
||||||
|
|
||||||
#line 464 "hb-ot-shaper-myanmar-machine.hh"
|
#line 474 "hb-ot-shaper-myanmar-machine.hh"
|
||||||
{
|
{
|
||||||
int _slen;
|
int _slen;
|
||||||
int _trans;
|
int _trans;
|
||||||
|
@ -474,7 +484,7 @@ _resume:
|
||||||
#line 1 "NONE"
|
#line 1 "NONE"
|
||||||
{ts = p;}
|
{ts = p;}
|
||||||
break;
|
break;
|
||||||
#line 478 "hb-ot-shaper-myanmar-machine.hh"
|
#line 488 "hb-ot-shaper-myanmar-machine.hh"
|
||||||
}
|
}
|
||||||
|
|
||||||
_keys = _myanmar_syllable_machine_trans_keys + (cs<<1);
|
_keys = _myanmar_syllable_machine_trans_keys + (cs<<1);
|
||||||
|
@ -493,38 +503,38 @@ _eof_trans:
|
||||||
|
|
||||||
switch ( _myanmar_syllable_machine_trans_actions[_trans] ) {
|
switch ( _myanmar_syllable_machine_trans_actions[_trans] ) {
|
||||||
case 6:
|
case 6:
|
||||||
#line 109 "hb-ot-shaper-myanmar-machine.rl"
|
#line 110 "hb-ot-shaper-myanmar-machine.rl"
|
||||||
{te = p+1;{ found_syllable (myanmar_consonant_syllable); }}
|
{te = p+1;{ found_syllable (myanmar_consonant_syllable); }}
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
#line 110 "hb-ot-shaper-myanmar-machine.rl"
|
#line 111 "hb-ot-shaper-myanmar-machine.rl"
|
||||||
{te = p+1;{ found_syllable (myanmar_non_myanmar_cluster); }}
|
{te = p+1;{ found_syllable (myanmar_non_myanmar_cluster); }}
|
||||||
break;
|
break;
|
||||||
case 10:
|
case 10:
|
||||||
#line 111 "hb-ot-shaper-myanmar-machine.rl"
|
#line 112 "hb-ot-shaper-myanmar-machine.rl"
|
||||||
{te = p+1;{ found_syllable (myanmar_punctuation_cluster); }}
|
{te = p+1;{ found_syllable (myanmar_punctuation_cluster); }}
|
||||||
break;
|
break;
|
||||||
case 8:
|
case 8:
|
||||||
#line 112 "hb-ot-shaper-myanmar-machine.rl"
|
#line 113 "hb-ot-shaper-myanmar-machine.rl"
|
||||||
{te = p+1;{ found_syllable (myanmar_broken_cluster); }}
|
{te = p+1;{ found_syllable (myanmar_broken_cluster); }}
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
#line 113 "hb-ot-shaper-myanmar-machine.rl"
|
#line 114 "hb-ot-shaper-myanmar-machine.rl"
|
||||||
{te = p+1;{ found_syllable (myanmar_non_myanmar_cluster); }}
|
{te = p+1;{ found_syllable (myanmar_non_myanmar_cluster); }}
|
||||||
break;
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
#line 109 "hb-ot-shaper-myanmar-machine.rl"
|
#line 110 "hb-ot-shaper-myanmar-machine.rl"
|
||||||
{te = p;p--;{ found_syllable (myanmar_consonant_syllable); }}
|
{te = p;p--;{ found_syllable (myanmar_consonant_syllable); }}
|
||||||
break;
|
break;
|
||||||
case 7:
|
case 7:
|
||||||
#line 112 "hb-ot-shaper-myanmar-machine.rl"
|
#line 113 "hb-ot-shaper-myanmar-machine.rl"
|
||||||
{te = p;p--;{ found_syllable (myanmar_broken_cluster); }}
|
{te = p;p--;{ found_syllable (myanmar_broken_cluster); }}
|
||||||
break;
|
break;
|
||||||
case 9:
|
case 9:
|
||||||
#line 113 "hb-ot-shaper-myanmar-machine.rl"
|
#line 114 "hb-ot-shaper-myanmar-machine.rl"
|
||||||
{te = p;p--;{ found_syllable (myanmar_non_myanmar_cluster); }}
|
{te = p;p--;{ found_syllable (myanmar_non_myanmar_cluster); }}
|
||||||
break;
|
break;
|
||||||
#line 528 "hb-ot-shaper-myanmar-machine.hh"
|
#line 538 "hb-ot-shaper-myanmar-machine.hh"
|
||||||
}
|
}
|
||||||
|
|
||||||
_again:
|
_again:
|
||||||
|
@ -533,7 +543,7 @@ _again:
|
||||||
#line 1 "NONE"
|
#line 1 "NONE"
|
||||||
{ts = 0;}
|
{ts = 0;}
|
||||||
break;
|
break;
|
||||||
#line 537 "hb-ot-shaper-myanmar-machine.hh"
|
#line 547 "hb-ot-shaper-myanmar-machine.hh"
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( ++p != pe )
|
if ( ++p != pe )
|
||||||
|
@ -549,7 +559,7 @@ _again:
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#line 145 "hb-ot-shaper-myanmar-machine.rl"
|
#line 146 "hb-ot-shaper-myanmar-machine.rl"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -63,9 +63,9 @@ export DB = 3; # Dot below = OT_N
|
||||||
export H = 4;
|
export H = 4;
|
||||||
export ZWNJ = 5;
|
export ZWNJ = 5;
|
||||||
export ZWJ = 6;
|
export ZWJ = 6;
|
||||||
export V = 8; # Visarga and Shan tones
|
export SM = 8; # Visarga and Shan tones
|
||||||
export GB = 10; # = OT_PLACEHOLDER
|
export GB = 10; # = OT_PLACEHOLDER
|
||||||
export D = 10; # Digits except zero = GB
|
export DOTTEDCIRCLE = 11;
|
||||||
export A = 9;
|
export A = 9;
|
||||||
export Ra = 15;
|
export Ra = 15;
|
||||||
export CS = 18;
|
export CS = 18;
|
||||||
|
@ -76,15 +76,16 @@ export VPre = 22;
|
||||||
export VPst = 23;
|
export VPst = 23;
|
||||||
|
|
||||||
export As = 32; # Asat
|
export As = 32; # Asat
|
||||||
export D0 = 33; # Digit zero
|
export D = 33; # Digits except zero
|
||||||
export MH = 34; # Medial
|
export D0 = 34; # Digit zero
|
||||||
export MR = 35; # Medial
|
export MH = 35; # Medial
|
||||||
export MW = 36; # Medial
|
export MR = 36; # Medial
|
||||||
export MY = 37; # Medial
|
export MW = 37; # Medial
|
||||||
export PT = 38; # Pwo and other tones
|
export MY = 38; # Medial
|
||||||
export VS = 39; # Variation selectors
|
export PT = 39; # Pwo and other tones
|
||||||
export P = 40; # Punctuation
|
export VS = 40; # Variation selectors
|
||||||
export ML = 41; # Consonant medials
|
export P = 41; # Punctuation
|
||||||
|
export ML = 42; # Consonant medials
|
||||||
|
|
||||||
|
|
||||||
j = ZWJ|ZWNJ; # Joiners
|
j = ZWJ|ZWNJ; # Joiners
|
||||||
|
@ -97,11 +98,11 @@ main_vowel_group = (VPre.VS?)* VAbv* VBlw* A* (DB As?)?;
|
||||||
post_vowel_group = VPst MH? ML? As* VAbv* A* (DB As?)?;
|
post_vowel_group = VPst MH? ML? As* VAbv* A* (DB As?)?;
|
||||||
pwo_tone_group = PT A* DB? As?;
|
pwo_tone_group = PT A* DB? As?;
|
||||||
|
|
||||||
complex_syllable_tail = As* medial_group main_vowel_group post_vowel_group* pwo_tone_group* V* j?;
|
complex_syllable_tail = As* medial_group main_vowel_group post_vowel_group* pwo_tone_group* SM* j?;
|
||||||
syllable_tail = (H (c|IV).VS?)* (H | complex_syllable_tail);
|
syllable_tail = (H (c|IV).VS?)* (H | complex_syllable_tail);
|
||||||
|
|
||||||
consonant_syllable = (k|CS)? (c|IV|D|GB).VS? syllable_tail;
|
consonant_syllable = (k|CS)? (c|IV|D|GB|DOTTEDCIRCLE).VS? syllable_tail;
|
||||||
punctuation_cluster = P V;
|
punctuation_cluster = P SM;
|
||||||
broken_cluster = k? VS? syllable_tail;
|
broken_cluster = k? VS? syllable_tail;
|
||||||
other = any;
|
other = any;
|
||||||
|
|
||||||
|
|
|
@ -68,98 +68,8 @@ set_myanmar_properties (hb_glyph_info_t &info)
|
||||||
{
|
{
|
||||||
hb_codepoint_t u = info.codepoint;
|
hb_codepoint_t u = info.codepoint;
|
||||||
unsigned int type = hb_indic_get_categories (u);
|
unsigned int type = hb_indic_get_categories (u);
|
||||||
unsigned int cat = type & 0xFFu;
|
|
||||||
|
|
||||||
/* Myanmar
|
info.myanmar_category() = (myanmar_category_t) (type & 0xFFu);
|
||||||
* https://docs.microsoft.com/en-us/typography/script-development/myanmar#analyze
|
|
||||||
*/
|
|
||||||
if (unlikely (hb_in_range<hb_codepoint_t> (u, 0xFE00u, 0xFE0Fu)))
|
|
||||||
cat = M_Cat(VS);
|
|
||||||
|
|
||||||
switch (u)
|
|
||||||
{
|
|
||||||
case 0x104Eu:
|
|
||||||
cat = M_Cat(C); /* The spec says C, IndicSyllableCategory doesn't have. */
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 0x002Du: case 0x00A0u: case 0x00D7u: case 0x2012u:
|
|
||||||
case 0x2013u: case 0x2014u: case 0x2015u: case 0x2022u:
|
|
||||||
case 0x25CCu: case 0x25FBu: case 0x25FCu: case 0x25FDu:
|
|
||||||
case 0x25FEu:
|
|
||||||
cat = M_Cat(GB);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 0x1004u: case 0x101Bu: case 0x105Au:
|
|
||||||
cat = M_Cat(Ra);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 0x1032u: case 0x1036u:
|
|
||||||
cat = M_Cat(A);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 0x1039u:
|
|
||||||
cat = M_Cat(H);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 0x103Au:
|
|
||||||
cat = M_Cat(As);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 0x1041u: case 0x1042u: case 0x1043u: case 0x1044u:
|
|
||||||
case 0x1045u: case 0x1046u: case 0x1047u: case 0x1048u:
|
|
||||||
case 0x1049u: case 0x1090u: case 0x1091u: case 0x1092u:
|
|
||||||
case 0x1093u: case 0x1094u: case 0x1095u: case 0x1096u:
|
|
||||||
case 0x1097u: case 0x1098u: case 0x1099u:
|
|
||||||
cat = M_Cat(D);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 0x1040u:
|
|
||||||
cat = M_Cat(D); /* XXX The spec says D0, but Uniscribe doesn't seem to do. */
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 0x103Eu:
|
|
||||||
cat = M_Cat(MH);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 0x1060u:
|
|
||||||
cat = M_Cat(ML);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 0x103Cu:
|
|
||||||
cat = M_Cat(MR);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 0x103Du: case 0x1082u:
|
|
||||||
cat = M_Cat(MW);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 0x103Bu: case 0x105Eu: case 0x105Fu:
|
|
||||||
cat = M_Cat(MY);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 0x1063u: case 0x1064u: case 0x1069u: case 0x106Au:
|
|
||||||
case 0x106Bu: case 0x106Cu: case 0x106Du: case 0xAA7Bu:
|
|
||||||
cat = M_Cat(PT);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 0x1038u: case 0x1087u: case 0x1088u: case 0x1089u:
|
|
||||||
case 0x108Au: case 0x108Bu: case 0x108Cu: case 0x108Du:
|
|
||||||
case 0x108Fu: case 0x109Au: case 0x109Bu: case 0x109Cu:
|
|
||||||
cat = M_Cat(V);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 0x104Au: case 0x104Bu:
|
|
||||||
cat = M_Cat(P);
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 0xAA74u: case 0xAA75u: case 0xAA76u:
|
|
||||||
/* https://github.com/harfbuzz/harfbuzz/issues/218 */
|
|
||||||
cat = M_Cat(C);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
info.myanmar_category() = cat;
|
|
||||||
info.myanmar_position() = 0; /* Doesn't use the existing position info. */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -365,7 +275,7 @@ reorder_myanmar (const hb_ot_shape_plan_t *plan,
|
||||||
{
|
{
|
||||||
hb_syllabic_insert_dotted_circles (font, buffer,
|
hb_syllabic_insert_dotted_circles (font, buffer,
|
||||||
myanmar_broken_cluster,
|
myanmar_broken_cluster,
|
||||||
M_Cat(GB));
|
M_Cat(DOTTEDCIRCLE));
|
||||||
|
|
||||||
foreach_syllable (buffer, start, end)
|
foreach_syllable (buffer, start, end)
|
||||||
reorder_syllable_myanmar (plan, font->face, buffer, start, end);
|
reorder_syllable_myanmar (plan, font->face, buffer, start, end);
|
||||||
|
|
Loading…
Reference in New Issue