#ifndef HB_OT_SHAPER_ARABIC_TABLE_HH
#define HB_OT_SHAPER_ARABIC_TABLE_HH
#define A JOINING_GROUP_ALAPH
#define DR JOINING_GROUP_DALATH_RISH
#define C JOINING_TYPE_C
#define D JOINING_TYPE_D
#define L JOINING_TYPE_L
#define R JOINING_TYPE_R
#define T JOINING_TYPE_T
#define U JOINING_TYPE_U
#define X JOINING_TYPE_X
static const uint8_t joining_table[] =
{
#define joining_offset_0x0600u 0
U,U,U,U,U,U,X,X,U,X,X,U,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
D,U,R,R,R,R,D,R,D,R,D,D,D,D,D,R,R,R,R,D,D,D,D,D,D,D,D,D,D,D,D,D,
C,D,D,D,D,D,D,D,R,D,D,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
X,X,X,X,X,X,X,X,X,X,X,X,X,X,D,D,X,R,R,R,U,R,R,R,D,D,D,D,D,D,D,D,
D,D,D,D,D,D,D,D,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,D,D,D,D,D,D,
D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,
R,D,D,R,R,R,R,R,R,R,R,R,D,R,D,R,D,D,R,R,X,R,X,X,X,X,X,X,X,U,X,X,
X,X,X,X,X,X,X,X,X,X,X,X,X,X,R,R,X,X,X,X,X,X,X,X,X,X,D,D,D,X,X,D,
X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,T,A,X,D,D,D,DR,DR,R,R,R,D,D,D,D,R,D,
D,D,D,D,D,D,D,D,R,D,DR,D,R,D,D,DR,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
X,X,X,X,X,X,X,X,X,X,X,X,X,R,D,D,
D,D,D,D,D,D,D,D,D,R,R,R,D,D,D,D,
D,D,D,D,D,D,D,D,D,D,D,R,R,D,D,D,D,R,D,R,R,D,D,D,R,R,D,D,D,D,D,D,
X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
X,X,X,X,X,X,X,X,X,X,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,
D,D,D,D,D,D,D,D,D,D,D,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,C,X,X,X,X,X,
X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
R,D,D,D,D,D,R,R,D,R,D,D,D,D,D,D,D,D,D,D,R,D,R,R,R,X,X,X,X,X,X,X,
D,U,D,D,D,D,U,R,D,R,R,X,X,X,X,X,
R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,R,
R,R,R,C,C,C,D,U,U,D,D,D,D,D,R,X,U,U,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
D,D,D,D,D,D,D,D,D,D,R,R,R,U,R,D,D,R,R,D,D,D,D,D,D,R,D,D,D,D,D,D,
D,D,D,D,D,D,D,D,D,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
X,X,U,
#define joining_offset_0x1806u 739
U,D,X,X,C,X,X,X,U,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,
D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,
D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,X,X,X,X,X,X,X,
U,U,U,U,U,T,T,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,
D,D,D,D,D,D,D,D,D,X,D,
#define joining_offset_0x200cu 904
U,C,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,U,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
X,X,X,X,X,X,U,U,U,U,
#define joining_offset_0xa840u 998
D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,
D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,L,U,
#define joining_offset_0x10ac0u 1050
D,D,D,D,D,R,U,R,U,R,R,U,U,L,R,R,R,R,R,D,D,D,D,L,D,D,D,D,D,R,D,D,
D,R,U,U,R,X,X,X,X,X,X,D,D,D,D,R,
#define joining_offset_0x10b80u 1098
D,R,D,R,R,R,D,D,D,R,D,D,R,D,R,R,D,R,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
X,X,X,X,X,X,X,X,X,R,R,R,R,D,D,U,
#define joining_offset_0x10d00u 1146
L,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,
D,D,R,D,
#define joining_offset_0x10f30u 1182
D,D,D,R,D,D,D,D,D,D,D,D,D,D,D,D,
D,D,D,D,D,U,X,X,X,X,X,X,X,X,X,X,X,D,D,D,R,X,X,X,X,X,X,X,X,X,X,X,
X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
D,D,D,D,R,R,D,D,D,D,D,D,D,D,D,D,
D,D,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,X,
D,U,D,D,R,R,R,U,D,R,R,D,D,R,D,D,
U,D,R,R,D,U,U,U,U,R,D,L,
#define joining_offset_0x110bdu 1338
U,X,X,
X,X,X,X,X,X,X,X,X,X,X,X,X,U,
#define joining_offset_0x1e900u 1355
D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,
D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,D,
D,D,D,D,X,X,X,X,X,X,X,T,
};
static unsigned int
joining_type (hb_codepoint_t u)
{
switch (u >> 12)
{
case 0x0u:
if (hb_in_range<hb_codepoint_t> (u, 0x0600u, 0x08E2u)) return joining_table[u - 0x0600u + joining_offset_0x0600u];
break;
case 0x1u:
if (hb_in_range<hb_codepoint_t> (u, 0x1806u, 0x18AAu)) return joining_table[u - 0x1806u + joining_offset_0x1806u];
break;
case 0x2u:
if (hb_in_range<hb_codepoint_t> (u, 0x200Cu, 0x2069u)) return joining_table[u - 0x200Cu + joining_offset_0x200cu];
break;
case 0xAu:
if (hb_in_range<hb_codepoint_t> (u, 0xA840u, 0xA873u)) return joining_table[u - 0xA840u + joining_offset_0xa840u];
break;
case 0x10u:
if (hb_in_range<hb_codepoint_t> (u, 0x10AC0u, 0x10AEFu)) return joining_table[u - 0x10AC0u + joining_offset_0x10ac0u];
if (hb_in_range<hb_codepoint_t> (u, 0x10B80u, 0x10BAFu)) return joining_table[u - 0x10B80u + joining_offset_0x10b80u];
if (hb_in_range<hb_codepoint_t> (u, 0x10D00u, 0x10D23u)) return joining_table[u - 0x10D00u + joining_offset_0x10d00u];
if (hb_in_range<hb_codepoint_t> (u, 0x10F30u, 0x10FCBu)) return joining_table[u - 0x10F30u + joining_offset_0x10f30u];
break;
case 0x11u:
if (hb_in_range<hb_codepoint_t> (u, 0x110BDu, 0x110CDu)) return joining_table[u - 0x110BDu + joining_offset_0x110bdu];
break;
case 0x1Eu:
if (hb_in_range<hb_codepoint_t> (u, 0x1E900u, 0x1E94Bu)) return joining_table[u - 0x1E900u + joining_offset_0x1e900u];
break;
default:
break;
}
return X;
}
#undef A
#undef DR
#undef C
#undef D
#undef L
#undef R
#undef T
#undef U
#undef X
static const uint16_t shaping_table[][4] =
{
{0x0000u, 0x0000u, 0x0000u, 0xFE80u},
{0x0000u, 0x0000u, 0xFE82u, 0xFE81u},
{0x0000u, 0x0000u, 0xFE84u, 0xFE83u},
{0x0000u, 0x0000u, 0xFE86u, 0xFE85u},
{0x0000u, 0x0000u, 0xFE88u, 0xFE87u},
{0xFE8Bu, 0xFE8Cu, 0xFE8Au, 0xFE89u},
{0x0000u, 0x0000u, 0xFE8Eu, 0xFE8Du},
{0xFE91u, 0xFE92u, 0xFE90u, 0xFE8Fu},
{0x0000u, 0x0000u, 0xFE94u, 0xFE93u},
{0xFE97u, 0xFE98u, 0xFE96u, 0xFE95u},
{0xFE9Bu, 0xFE9Cu, 0xFE9Au, 0xFE99u},
{0xFE9Fu, 0xFEA0u, 0xFE9Eu, 0xFE9Du},
{0xFEA3u, 0xFEA4u, 0xFEA2u, 0xFEA1u},
{0xFEA7u, 0xFEA8u, 0xFEA6u, 0xFEA5u},
{0x0000u, 0x0000u, 0xFEAAu, 0xFEA9u},
{0x0000u, 0x0000u, 0xFEACu, 0xFEABu},
{0x0000u, 0x0000u, 0xFEAEu, 0xFEADu},
{0x0000u, 0x0000u, 0xFEB0u, 0xFEAFu},
{0xFEB3u, 0xFEB4u, 0xFEB2u, 0xFEB1u},
{0xFEB7u, 0xFEB8u, 0xFEB6u, 0xFEB5u},
{0xFEBBu, 0xFEBCu, 0xFEBAu, 0xFEB9u},
{0xFEBFu, 0xFEC0u, 0xFEBEu, 0xFEBDu},
{0xFEC3u, 0xFEC4u, 0xFEC2u, 0xFEC1u},
{0xFEC7u, 0xFEC8u, 0xFEC6u, 0xFEC5u},
{0xFECBu, 0xFECCu, 0xFECAu, 0xFEC9u},
{0xFECFu, 0xFED0u, 0xFECEu, 0xFECDu},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0xFED3u, 0xFED4u, 0xFED2u, 0xFED1u},
{0xFED7u, 0xFED8u, 0xFED6u, 0xFED5u},
{0xFEDBu, 0xFEDCu, 0xFEDAu, 0xFED9u},
{0xFEDFu, 0xFEE0u, 0xFEDEu, 0xFEDDu},
{0xFEE3u, 0xFEE4u, 0xFEE2u, 0xFEE1u},
{0xFEE7u, 0xFEE8u, 0xFEE6u, 0xFEE5u},
{0xFEEBu, 0xFEECu, 0xFEEAu, 0xFEE9u},
{0x0000u, 0x0000u, 0xFEEEu, 0xFEEDu},
{0xFBE8u, 0xFBE9u, 0xFEF0u, 0xFEEFu},
{0xFEF3u, 0xFEF4u, 0xFEF2u, 0xFEF1u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0xFB51u, 0xFB50u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0xFBDDu},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0xFB68u, 0xFB69u, 0xFB67u, 0xFB66u},
{0xFB60u, 0xFB61u, 0xFB5Fu, 0xFB5Eu},
{0xFB54u, 0xFB55u, 0xFB53u, 0xFB52u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0xFB58u, 0xFB59u, 0xFB57u, 0xFB56u},
{0xFB64u, 0xFB65u, 0xFB63u, 0xFB62u},
{0xFB5Cu, 0xFB5Du, 0xFB5Bu, 0xFB5Au},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0xFB78u, 0xFB79u, 0xFB77u, 0xFB76u},
{0xFB74u, 0xFB75u, 0xFB73u, 0xFB72u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0xFB7Cu, 0xFB7Du, 0xFB7Bu, 0xFB7Au},
{0xFB80u, 0xFB81u, 0xFB7Fu, 0xFB7Eu},
{0x0000u, 0x0000u, 0xFB89u, 0xFB88u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0xFB85u, 0xFB84u},
{0x0000u, 0x0000u, 0xFB83u, 0xFB82u},
{0x0000u, 0x0000u, 0xFB87u, 0xFB86u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0xFB8Du, 0xFB8Cu},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0xFB8Bu, 0xFB8Au},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0xFB6Cu, 0xFB6Du, 0xFB6Bu, 0xFB6Au},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0xFB70u, 0xFB71u, 0xFB6Fu, 0xFB6Eu},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0xFB90u, 0xFB91u, 0xFB8Fu, 0xFB8Eu},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0xFBD5u, 0xFBD6u, 0xFBD4u, 0xFBD3u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0xFB94u, 0xFB95u, 0xFB93u, 0xFB92u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0xFB9Cu, 0xFB9Du, 0xFB9Bu, 0xFB9Au},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0xFB98u, 0xFB99u, 0xFB97u, 0xFB96u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0xFB9Fu, 0xFB9Eu},
{0xFBA2u, 0xFBA3u, 0xFBA1u, 0xFBA0u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0xFBACu, 0xFBADu, 0xFBABu, 0xFBAAu},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0xFBA5u, 0xFBA4u},
{0xFBA8u, 0xFBA9u, 0xFBA7u, 0xFBA6u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0xFBE1u, 0xFBE0u},
{0x0000u, 0x0000u, 0xFBDAu, 0xFBD9u},
{0x0000u, 0x0000u, 0xFBD8u, 0xFBD7u},
{0x0000u, 0x0000u, 0xFBDCu, 0xFBDBu},
{0x0000u, 0x0000u, 0xFBE3u, 0xFBE2u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0xFBDFu, 0xFBDEu},
{0xFBFEu, 0xFBFFu, 0xFBFDu, 0xFBFCu},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0xFBE6u, 0xFBE7u, 0xFBE5u, 0xFBE4u},
{0x0000u, 0x0000u, 0x0000u, 0x0000u},
{0x0000u, 0x0000u, 0xFBAFu, 0xFBAEu},
{0x0000u, 0x0000u, 0xFBB1u, 0xFBB0u},
};
#define SHAPING_TABLE_FIRST 0x0621u
#define SHAPING_TABLE_LAST 0x06D3u
static const struct ligature_set_t {
uint16_t first;
struct ligature_pairs_t {
uint16_t components[1];
uint16_t ligature;
} ligatures[14];
} ligature_table[] =
{
{ 0xFE91u, {
{ {0xFEE2u}, 0xFC08u },
{ {0xFEE4u}, 0xFC9Fu },
{ {0xFEA0u}, 0xFC9Cu },
{ {0xFEA4u}, 0xFC9Du },
{ {0xFEA8u}, 0xFC9Eu },
}},
{ 0xFE92u, {
{ {0xFEAEu}, 0xFC6Au },
{ {0xFEE6u}, 0xFC6Du },
{ {0xFEF2u}, 0xFC6Fu },
}},
{ 0xFE97u, {
{ {0xFEE2u}, 0xFC0Eu },
{ {0xFEE4u}, 0xFCA4u },
{ {0xFEA0u}, 0xFCA1u },
{ {0xFEA4u}, 0xFCA2u },
{ {0xFEA8u}, 0xFCA3u },
}},
{ 0xFE98u, {
{ {0xFEAEu}, 0xFC70u },
{ {0xFEE6u}, 0xFC73u },
{ {0xFEF2u}, 0xFC75u },
}},
{ 0xFE9Bu, {
{ {0xFEE2u}, 0xFC12u },
}},
{ 0xFE9Fu, {
{ {0xFEE4u}, 0xFCA8u },
}},
{ 0xFEA3u, {
{ {0xFEE4u}, 0xFCAAu },
}},
{ 0xFEA7u, {
{ {0xFEE4u}, 0xFCACu },
}},
{ 0xFEB3u, {
{ {0xFEE4u}, 0xFCB0u },
}},
{ 0xFEB7u, {
{ {0xFEE4u}, 0xFD30u },
}},
{ 0xFED3u, {
{ {0xFEF2u}, 0xFC32u },
}},
{ 0xFEDFu, {
{ {0xFE9Eu}, 0xFC3Fu },
{ {0xFEA0u}, 0xFCC9u },
{ {0xFEA2u}, 0xFC40u },
{ {0xFEA4u}, 0xFCCAu },
{ {0xFEA6u}, 0xFC41u },
{ {0xFEA8u}, 0xFCCBu },
{ {0xFEE2u}, 0xFC42u },
{ {0xFEE4u}, 0xFCCCu },
{ {0xFEF2u}, 0xFC44u },
{ {0xFEECu}, 0xFCCDu },
{ {0xFE82u}, 0xFEF5u },
{ {0xFE84u}, 0xFEF7u },
{ {0xFE88u}, 0xFEF9u },
{ {0xFE8Eu}, 0xFEFBu },
}},
{ 0xFEE0u, {
{ {0xFEF0u}, 0xFC86u },
{ {0xFE82u}, 0xFEF6u },
{ {0xFE84u}, 0xFEF8u },
{ {0xFE88u}, 0xFEFAu },
{ {0xFE8Eu}, 0xFEFCu },
}},
{ 0xFEE3u, {
{ {0xFEA0u}, 0xFCCEu },
{ {0xFEA4u}, 0xFCCFu },
{ {0xFEA8u}, 0xFCD0u },
{ {0xFEE4u}, 0xFCD1u },
}},
{ 0xFEE7u, {
{ {0xFEE2u}, 0xFC4Eu },
{ {0xFEE4u}, 0xFCD5u },
{ {0xFEA0u}, 0xFCD2u },
{ {0xFEA4u}, 0xFCD3u },
}},
{ 0xFEE8u, {
{ {0xFEF2u}, 0xFC8Fu },
}},
{ 0xFEF3u, {
{ {0xFEA0u}, 0xFCDAu },
{ {0xFEA4u}, 0xFCDBu },
{ {0xFEA8u}, 0xFCDCu },
{ {0xFEE4u}, 0xFCDDu },
}},
{ 0xFEF4u, {
{ {0xFEAEu}, 0xFC91u },
{ {0xFEE6u}, 0xFC94u },
}},
};
static const struct ligature_mark_set_t {
uint16_t first;
struct ligature_pairs_t {
uint16_t components[1];
uint16_t ligature;
} ligatures[5];
} ligature_mark_table[] =
{
{ 0x0651u, {
{ {0x064Cu}, 0xFC5Eu },
{ {0x064Eu}, 0xFC60u },
{ {0x064Fu}, 0xFC61u },
{ {0x0650u}, 0xFC62u },
{ {0x064Bu}, 0xF2EEu },
}},
};
static const struct ligature_3_set_t {
uint16_t first;
struct ligature_triplets_t {
uint16_t components[2];
uint16_t ligature;
} ligatures[3];
} ligature_3_table[] =
{
{ 0xFEDFu, {
{ {0xFEE4u, 0xFEA4u}, 0xFD88u},
{ {0xFEE0u, 0xFEEAu}, 0xF201u},
{ {0xFEE4u, 0xFEA0u}, 0xF211u},
}},
};
#endif