| 1 | /* == Start of generated table == */ | 
|---|
| 2 | /* | 
|---|
| 3 | * The following table is generated by running: | 
|---|
| 4 | * | 
|---|
| 5 | *   ./gen-arabic-pua.py | 
|---|
| 6 | * | 
|---|
| 7 | */ | 
|---|
| 8 |  | 
|---|
| 9 | #ifndef HB_OT_SHAPER_ARABIC_PUA_HH | 
|---|
| 10 | #define HB_OT_SHAPER_ARABIC_PUA_HH | 
|---|
| 11 |  | 
|---|
| 12 | static const uint8_t | 
|---|
| 13 | _hb_arabic_u8[464] = | 
|---|
| 14 | { | 
|---|
| 15 | 84, 86, 85, 85, 85, 85, 85,213, 16, 34, 34, 34, 34, 34, 35, 34, | 
|---|
| 16 | 34, 34, 34, 34, 34, 34, 34, 34, 36, 34, 34, 34, 34, 34, 34, 34, | 
|---|
| 17 | 34, 34, 34, 34, 34, 34, 82, 16,  0,  0,  0,  0,  1,  2,  3,  4, | 
|---|
| 18 | 0,  0,  0,  5,  0,  0,  0,  0,  0,  0,  0,  0,  0,  6,  0,  7, | 
|---|
| 19 | 0,  0,  8,  0,  0,  0,  9,  0,  0,  0,  0,  0,  0,  0,  0,  0, | 
|---|
| 20 | 0,  0,  0,  0,  0,  0,  0,  0,  0, 10,  0, 11, 12, 13, 14, 15, | 
|---|
| 21 | 16, 17, 18, 19, 20, 21,  0,  0,  0, 22,  0, 23,  0,  0,  0,  0, | 
|---|
| 22 | 0,  0,  0,  0,  0,  0,  0,  0, 24, 25, 26, 27, 28, 29, 30, 31, | 
|---|
| 23 | 32, 33, 34, 35, 36, 37, 38, 39, 16, 34, 34, 34, 35, 34, 34, 34, | 
|---|
| 24 | 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, | 
|---|
| 25 | 34, 34, 34, 34, 34, 34, 34, 66, 16, 50, 68, 68, 68, 68, 68, 68, | 
|---|
| 26 | 68, 68, 68, 68,101, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, 68, | 
|---|
| 27 | 71, 68, 68, 68, 68, 68, 68, 68,152,186, 76, 77, 68,254, 16, 50, | 
|---|
| 28 | 0,  0,  0,  0,  0,  0,  0,  0,  1,  2,  3,  4,  0,  0,  5,  6, | 
|---|
| 29 | 0,  0,  0,  0,  0,  0,  7,  8,  0,  0,  0,  0,  0,  0,  0,  0, | 
|---|
| 30 | 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  9,  0,  0,  0, 10,  0, | 
|---|
| 31 | 0,  0,  0,  0,  0, 11,  0,  0,  0,  0,  0,  0,  0, 12,  0,  0, | 
|---|
| 32 | 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, | 
|---|
| 33 | 0,  0,  0, 13,  0,  0, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, | 
|---|
| 34 | 24, 25, 26, 27, 28, 23, 23, 29, 30, 31, 32, 33,  0,  0,  0,  0, | 
|---|
| 35 | 0,  0,  0, 34,  0,  0,  0, 35,  0,  0,  0,  0,  0,  0,  0,  0, | 
|---|
| 36 | 0,  0, 36, 37, 38,  0,  0,  0,  0,  0,  0,  0, 39,  0,  0, 40, | 
|---|
| 37 | 41, 42,  0, 43, 44,  0,  0, 45, 46,  0, 47, 48, 49,  0,  0,  0, | 
|---|
| 38 | 0, 50,  0,  0, 51, 52,  0, 53, 54, 55, 56, 57, 58,  0,  0,  0, | 
|---|
| 39 | 0,  0, 59, 60, 61, 62, 63, 64,  0,  0,  0,  0,  0,  0,  0,  0, | 
|---|
| 40 | 0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 65,  0,  0, 66, | 
|---|
| 41 | 0,  0, 67,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, | 
|---|
| 42 | 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, | 
|---|
| 43 | 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, | 
|---|
| 44 | }; | 
|---|
| 45 | static const uint16_t | 
|---|
| 46 | _hb_arabic_u16[720] = | 
|---|
| 47 | { | 
|---|
| 48 | 0,    0,    0,    0,    0,    0,    0,    0,61728,61729,61730,    0,    0,61733,    0,    0, | 
|---|
| 49 | 61736,61737,61738,61739,61790,61741,61742,61743,61872,61873,61874,61875,61876,61877,61878,61879, | 
|---|
| 50 | 61880,61881,61754,61755,    0,61757,    0,61759,    0,    0,    0,61787,61788,61789,    0,    0, | 
|---|
| 51 | 0,    0,    0,61731,    0,    0,    0,    0,    0,    0,    0,61732,    0,    0,    0,    0, | 
|---|
| 52 | 0,    0,    0,    0,    0,    0,    0,61734,    0,    0,    0,    0,    0,    0,    0,61735, | 
|---|
| 53 | 0,    0,    0,    0,61740,    0,    0,    0,    0,    0,    0,61755,    0,    0,    0,61759, | 
|---|
| 54 | 0,61869,61765,61763,61883,61767,61882,61761,61770,61865,61772,61774,61777,61780,61783,61784, | 
|---|
| 55 | 61785,61786,61792,61794,61796,61798,61800,61801,61802,61806,61810,61696,61696,61696,61696,61696, | 
|---|
| 56 | 61791,61813,61816,61818,61820,61822,61921,61860,61861,61868,61864,61895,61896,61899,61892,61893, | 
|---|
| 57 | 61898,61897,61894,61696,61696,61696,61696,61696,61696,61696,61696,61696,61696,61696,61696,    0, | 
|---|
| 58 | 61744,61745,61746,61747,61748,61749,61750,61751,61752,61753,    0,61790,61790,    0,    0,    0, | 
|---|
| 59 | 0,    0,    0,    0,61708,61709,61710,61711,61756,61758,    0,    0,    0,    0,    0,    0, | 
|---|
| 60 | 0,61765,61766,61763,61764,61883,61883,61767,61768,61882,61871,61870,61870,61761,61762,61770, | 
|---|
| 61 | 61770,61769,61769,61865,61866,61772,61772,61771,61771,61774,61774,61773,61773,61777,61776,61775, | 
|---|
| 62 | 61775,61780,61779,61778,61778,61783,61782,61781,61781,61784,61784,61785,61785,61786,61786,61792, | 
|---|
| 63 | 61792,61794,61794,61793,61793,61796,61796,61795,61795,61798,61798,61797,61797,61800,61800,61799, | 
|---|
| 64 | 61799,61801,61801,61801,61801,61802,61802,61802,61802,61806,61805,61803,61804,61810,61809,61807, | 
|---|
| 65 | 61808,61813,61813,61811,61812,61816,61816,61814,61815,61818,61818,61817,61817,61820,61820,61819, | 
|---|
| 66 | 61819,61822,61822,61821,61821,61921,61921,61823,61823,61860,61859,61857,61858,61861,61861,61868, | 
|---|
| 67 | 61867,61864,61863,61862,61862,61888,61889,61886,61887,61890,61891,61885,61884,    0,    0,    0, | 
|---|
| 68 | 0,    0,    0,    0,61984,61985,61986,    0,    0,61989,    0,    0,61992,61993,61994,61995, | 
|---|
| 69 | 62046,61997,61998,61999,    0,    0,62010,62011,    0,62013,    0,62015,    0,    0,    0,62043, | 
|---|
| 70 | 0,62045,    0,    0,    0,    0,    0,61987,    0,    0,    0,61988,    0,    0,    0,61990, | 
|---|
| 71 | 0,    0,    0,61991,61996,    0,    0,    0,    0,    0,    0,62011,    0,    0,    0,62015, | 
|---|
| 72 | 0,62165,62021,62019,62170,62023,62169,62017,62028,62161,62032,62036,62040,62048,62052,62053, | 
|---|
| 73 | 62055,62057,62059,62064,62068,62072,62078,62114,62115,62122,62126,61952,61952,61952,61952,61952, | 
|---|
| 74 | 62047,62130,62134,62138,62142,62146,62150,62154,62155,62164,62160,62183,62184,62187,62180,62181, | 
|---|
| 75 | 62186,62185,62182,61952,61952,61952,61952,    0,62000,62001,62002,62003,62004,62005,62006,62007, | 
|---|
| 76 | 62008,62009,    0,62046,62046,    0,    0,    0,61964,61965,61966,61967,62012,62014,    0,    0, | 
|---|
| 77 | 61954,    0,61981,    0,    0,    0,61955,    0,61982,    0,61956,    0,    0,    0,62111,    0, | 
|---|
| 78 | 0,    0,    0,61970,61971,61972,61957,    0,61980,    0,    0,    0,    0,    0,61958,    0, | 
|---|
| 79 | 61983,    0,    0,    0,    0,    0,62191,    0,62188,62189,62192,    0,    0,    0,61973,    0, | 
|---|
| 80 | 0,62098,    0,    0,61974,    0,    0,62099,    0,    0,62101,    0,    0,61975,    0,    0, | 
|---|
| 81 | 62100,    0,    0,    0,62080,62081,62082,62102,    0,62083,62084,62085,62103,    0,    0,    0, | 
|---|
| 82 | 62106,    0,62107,    0,62108,    0,    0,    0,61976,    0,    0,    0,    0,62086,62087,62088, | 
|---|
| 83 | 62109,61978,62089,62090,62091,62110,62093,62094,    0,62104,    0,    0,    0,    0,62095,62096, | 
|---|
| 84 | 62097,62105,    0,    0,61977,    0,    0,    0,    0,    0,62075,62077,61968,    0,    0,    0, | 
|---|
| 85 | 0,62021,62022,62019,62020,62170,62171,62023,62024,62169,62168,62166,62167,62017,62018,62028, | 
|---|
| 86 | 62027,62025,62026,62161,62162,62032,62031,62029,62030,62036,62035,62033,62034,62040,62039,62037, | 
|---|
| 87 | 62038,62048,62044,62041,62042,62052,62051,62049,62050,62053,62054,62055,62056,62057,62058,62059, | 
|---|
| 88 | 62060,62064,62063,62061,62062,62068,62067,62065,62066,62072,62071,62069,62070,62078,62076,62073, | 
|---|
| 89 | 62074,62114,62113,62079,62193,62118,62117,62115,62116,62122,62121,62119,62120,62126,62125,62123, | 
|---|
| 90 | 62124,62130,62129,62127,62128,62134,62133,62131,62132,62138,62137,62135,62136,62142,62141,62139, | 
|---|
| 91 | 62140,62146,62145,62143,62144,62150,62149,62147,62148,62154,62153,62151,62152,62155,62156,62164, | 
|---|
| 92 | 62163,62160,62159,62157,62158,62176,62177,62174,62175,62178,62179,62172,62173,    0,    0,    0, | 
|---|
| 93 | }; | 
|---|
| 94 |  | 
|---|
| 95 | static inline unsigned | 
|---|
| 96 | _hb_arabic_b2 (const uint8_t* a, unsigned i) | 
|---|
| 97 | { | 
|---|
| 98 | return (a[i>>2]>>((i&3u)<<1))&3u; | 
|---|
| 99 | } | 
|---|
| 100 | static inline unsigned | 
|---|
| 101 | _hb_arabic_b4 (const uint8_t* a, unsigned i) | 
|---|
| 102 | { | 
|---|
| 103 | return (a[i>>1]>>((i&1u)<<2))&15u; | 
|---|
| 104 | } | 
|---|
| 105 | static inline uint_fast16_t | 
|---|
| 106 | _hb_arabic_pua_simp_map (unsigned u) | 
|---|
| 107 | { | 
|---|
| 108 | return u<65277u?_hb_arabic_u16[((_hb_arabic_u8[40+(((_hb_arabic_b4(8+_hb_arabic_u8,((_hb_arabic_b2(_hb_arabic_u8,u>>3>>4>>4))<<4)+((u>>3>>4)&15u)))<<4)+((u>>3)&15u))])<<3)+((u)&7u)]:0; | 
|---|
| 109 | } | 
|---|
| 110 | static inline uint_fast16_t | 
|---|
| 111 | _hb_arabic_pua_trad_map (unsigned u) | 
|---|
| 112 | { | 
|---|
| 113 | return u<65277u?_hb_arabic_u16[320+(((_hb_arabic_u8[208+(((_hb_arabic_b4(168+_hb_arabic_u8,((_hb_arabic_b4(136+_hb_arabic_u8,u>>2>>4>>4))<<4)+((u>>2>>4)&15u)))<<4)+((u>>2)&15u))])<<2)+((u)&3u))]:0; | 
|---|
| 114 | } | 
|---|
| 115 |  | 
|---|
| 116 | #endif /* HB_OT_SHAPER_ARABIC_PUA_HH */ | 
|---|
| 117 |  | 
|---|
| 118 | /* == End of generated table == */ | 
|---|
| 119 |  | 
|---|